stm32stm32 8m晶振不起振8m是什么意思

查看: 952|回复: 7
如何读出或是计算出内部8M晶振实际值
主题帖子精华
初级会员, 积分 134, 距离下一级还需 66 积分
在线时间26 小时
板子没有接外部晶振,使用的是默认的内部8M晶振,但是在使用中每个芯片的8M值会有偏差,请问如何读出或是计算出内部8M晶振的实际值?
因为板子需要与外界通信时,各个速率的设定值和晶振的实际值有关系。
主题帖子精华
高级会员, 积分 530, 距离下一级还需 470 积分
在线时间59 小时
出厂检测时往单片机输入一个标准时钟信号,然后看单片机读到的信号周期,就是单片机内部晶振的实际值了
主题帖子精华
金牌会员, 积分 1992, 距离下一级还需 1008 积分
在线时间99 小时
本身没有别的参考值无法算出来的,通过串口通信和外部的时间进行比较估计可行。
虽然不明白你们在说什么,但感觉很厉害的样子。
主题帖子精华
金牌会员, 积分 1858, 距离下一级还需 1142 积分
在线时间97 小时
标定了意义也不大 , 受温度和电源电压影响 , 厂家只保证了 1% 的分布 , 即使自己标定了也只能降级使用 , 还要测试降级水平 , 这个成本不如上个晶振 .
关于标定本身 , ST 是有通过外部晶振标定内部低频振荡器的 AN 的 , 可以反过来用低速晶振标定内部高频振荡器 .
技术讨论请发帖 , 需要我回复请点左下的
让系统通知我 .
本人不通过其他方式返回任何参数.
主题帖子精华
在线时间137 小时
一般这个偏差值是确定的,如果通讯要求很高一方面选用带有温补的有源晶振,另外一方面需要在通讯协议兼容性或是容错性上下功夫
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间1 小时
内部8M的是RC震荡产生的,有一点小误差,能不用尽量不用吧。真要测就是跟楼上说的一样接外部标准时钟比较
主题帖子精华
金牌会员, 积分 1858, 距离下一级还需 1142 积分
在线时间97 小时
本帖最后由 shihantu 于
20:02 编辑
一般这个偏差值是确定的,如果通讯要求很高一方面选用带有温补的有源晶振,另外一方面需要在通讯协议兼容性 ...
& 一般 & 这两个字比较坑 LZ .
在 STM32的硬件接口里 , 需要高于 RC 振荡器但低于石英振荡器的异步通信接口 , 没弄错只有 USB , 当然自定义接口另算 , STM32F072 的 CRS 也是需要从外部提取修正信息的 .
串口通信的双机误差叠加 , 是内部 RC 可以满足的 , 除非设置的理论波特率已经与实际波特率有一定的误差 .
在 OnChip RC 振荡器的设计里 , 出厂时只标定振荡器的溢出值 , 可以实现 20% 的全范围误差 , 针对版图设计进行温度和电压的线性校正 , 可以做到 5% 的误差 , 现在主流的 1% 已经是做了高次修正的结果 , 剩余的误差需要做二维标定 , 或者限制维度比如固定工作电压 , 再做一维标定 , 这个标定成本不一定比加个零件低 .
有个类似 STM32F072 的 CRS 的方案 , 某些系列的串口有很难用的自动波特率侦测的功能 , 或者自己使用其他方式从外部提取同步时钟 .
个人已知需要上温补晶振的通信领域是电台和万兆网 .
技术讨论请发帖 , 需要我回复请点左下的
让系统通知我 .
本人不通过其他方式返回任何参数.
主题帖子精华
初级会员, 积分 134, 距离下一级还需 66 积分
在线时间26 小时
感谢楼上各位回复,我的情况是这样的,CPU是STM32F103TB,用于CAN通信,外部晶振也加了,但是发现外部晶振都没有起振(应该和匹配电容有关系)。然后我现在的做法是:外面给目标板发送数据,目标板的CAN_BS1、CAN_BS2、CAN_Prescaler依次变大扫描,接收到数据就存下这三个值,最后取采样点接近87%(100K)的值,因为这个东西运行环境的温度基本不变,所以可以认为温度对内部晶振影响不大。
当然要想解决根本问题,就要使用外部晶振。
另外发现,能配合此CPU的CAN通信芯片只有VP233。
Powered bystm32外部时钟源8M晶振换成12M晶振后程序修改说明
程序运行时突然发现CPU速度变慢了,用示波器观察发现晶振未起振。果断换了个12M(4~16M皆可)的晶振,经测试判断是原来8M晶振坏了。(网上查到说国产晶振容易出问题,真要做产品还是用进口的有保证些)
8M晶振换成12M晶振后(注意焊接晶振管脚很容易短路,最好在晶振管脚垫一个云母片),倍频系数需改变。
追踪启动文件startup_stm32f10x_hd.s(stm32不同型号该启动函数不同)的 LDR
& & R0, =SystemInit
(系统时钟设置)
由于STM32F10x库官方采用的是默认的外接8MHz晶振,因此造成很多用户也采用了8MHz的晶振,但是,8MHz的晶振不是必须的,其他频点的晶振也是可行的,只需要在库中做相应的修改就行。&
&在论坛上看到很多用户反映,使用外接12MHz的晶振,会造成很多的问题,如USART的波特率不正确,Systick走时不准等问题,在无论是在实际调试还是在软件模拟中都会发现这个情况,其实,这不能怪ST官方,我们必须肯定ST官方为方便用户开发所做的努力,下面我们就通过简单的三个步骤就可以让你随意的使用4—16MHz之内任何频点的晶振,我们以STM32F10x_StdPeriph_Lib_V3.4.0为例说明。
&第一步,打开stm32f10x.h,将&
&#define HSE_VALUE &
&((uint32_t)8000000)
&修改为:&
&#define HSE_VALUE &
&((uint32_t)) &
&第二步,打开system_stm32f10x.c,修改PLL参数,将&
&RCC-&CFGR &=
(uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
&RCC_CFGR_PLLMULL));&
&RCC-&CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE |
RCC_CFGR_PLLMULL9); &修改为:
&RCC-&CFGR &=
(uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
&RCC_CFGR_PLLMULL));&
&RCC-&CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE |
RCC_CFGR_PLLMULL6); & &
&至此,原文件已经修改完成,如果你想将主频修改至其他频率,请自行修改。但是,到现在,如果您直接编译调试的话,就会出现上文所说的USART的波特率不正确,Systick走时不准等问题,原因就是我们需要进行第三部的修改,这个修改不是在原文件中,而是在编译环境中。我们已Keil
MDK为例说明。&
&第三步,打开你已经建立的STM32工程,选择Projects-〉Options for
***,找到Target标签,你会发现,外接的晶振默认还是8MHz,我们将外接的晶振参数修改为12MHz,确定保存,再编译,调试,你就会发现,所有的参数都回归的正常轨道,设置波特率为9600,它也不会跑到14400,设置Systick为1ms中断,它不会1.5ms中断。&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。关于STM32外部晶振的一个问题 - STM32/STM8技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
Hot [直播]
关于STM32外部晶振的一个问题
助理工程师
17:42:46  
& &&&由于现在外部晶振为8M,不能满足输出波形的高频,想把晶振换为16M,想问一下16M晶振稳定不,会不会对别的地方有影响,比如说USART的波特率不正确,Systick走时不准等问题,需要有哪些地方需要注意一下,谢谢大家了!
21:31:41  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
STM32不是有内部晶振吗?怎么不自己用内部的?
助理工程师
08:05:42  
STM32不是有内部晶振吗?怎么不自己用内部的?
高速内部时钟HSI频率为8M,而且不稳定
12:49:40  
正好顶顶顶顶顶。。。。。。。。。。。。。。。。
19:43:51  
STM32不是72MHZ吗?
助理工程师
15:13:13  
72M是指的最高频率,芯片里面有PLL。能将8m倍上去~引脚输出最高是72M,你换成16的晶振也是72M
15:56:33  
如果只是把外部晶振换成16M的话,需要改寄存器的设置。但是并不能提高系统的最高运行时钟频率 不能改善输出波形的高频信号。
助理工程师
17:17:25  
可以换的 换成25M都可以 但是还是不能满足你的要求 并且寄存器要改一些地方 有点麻烦
助理工程师
09:35:02  
可以换的 换成25M都可以 但是还是不能满足你的要求 并且寄存器要改一些地方 有点麻烦 ...
换了以后,启动都启动不了了!后来把延时调为了1/9us,稍微改善了点
21:50:59  
最稳定的是72M,,貌似可以使用16M晶振8倍频到128M,,勉强可以工作
感谢您的参与,您的支持是我们最大的动力..
20:54:23  
超过72Mhz,系统应该会不稳定吧
感谢您的参与,您的支持是我们最大的动力..
22:16:38  
要想使USART的波特率正确无误,最好使用11.0592M、22.1184M等频率的晶振。而stm32中都有pll锁相环的,可以实现想要的频率
10个问题&&&&&&&&3469个浏览
20个问题&&&&&&&&20333个浏览
32个问题&&&&&&&&7282个浏览
通过本次直播,你将学到:
1.理解mbed操作系统的结构是什么样的
2.mbed功能模块与其他嵌入式操作系统有什么不同
3.工具链使用以及开发流程实操演练
即日起至6月15日,参与英蓓特NXP产品知识小测验,即有机会赢取最新系列开发板。特别奖SBC-EC9100开发板1套,幸运奖FRDM系列最新开发板(型号随机,共10套)。快来参加吧! >> 立即参加
Powered by查看: 1648|回复: 1
STM32芯片+8M+32.768Khz晶振 设计思路、参考方案
在线时间1 小时
01.png (143.27 KB, 下载次数: 0)
10:02 上传
02.png (94.22 KB, 下载次数: 0)
10:02 上传
03.png (274.2 KB, 下载次数: 0)
10:02 上传
04.png (162.37 KB, 下载次数: 0)
10:02 上传
05.png (225.03 KB, 下载次数: 0)
10:02 上传
06.png (149.64 KB, 下载次数: 0)
10:02 上传
07.png (191.99 KB, 下载次数: 0)
10:02 上传
08.png (232.14 KB, 下载次数: 0)
10:02 上传
09.png (14.72 KB, 下载次数: 0)
10:02 上传
10.png (179.71 KB, 下载次数: 0)
10:02 上传
11.png (173.1 KB, 下载次数: 0)
10:02 上传
在线时间2 小时
实习生, 积分 6, 距离下一级还需 94 积分
发表于 4&天前
STM32很强大啊
Powered by

我要回帖

更多关于 stm32 8m晶振封装库 的文章

 

随机推荐