OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5174|回复: 7

如何读出或是计算出内部8M晶振实际值

[复制链接]

20

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2011-7-5
在线时间
43 小时
发表于 2016-6-2 23:16:30 | 显示全部楼层 |阅读模式
1金钱
板子没有接外部晶振,使用的是默认的内部8M晶振,但是在使用中每个芯片的8M值会有偏差,请问如何读出或是计算出内部8M晶振的实际值?

因为板子需要与外界通信时,各个速率的设定值和晶振的实际值有关系。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

58

帖子

0

精华

高级会员

Rank: 4

积分
542
金钱
542
注册时间
2016-2-24
在线时间
61 小时
发表于 2016-6-3 08:18:14 | 显示全部楼层
出厂检测时往单片机输入一个标准时钟信号,然后看单片机读到的信号周期,就是单片机内部晶振的实际值了
回复

使用道具 举报

8

主题

571

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2922
金钱
2922
注册时间
2016-5-13
在线时间
185 小时
发表于 2016-6-3 17:43:38 | 显示全部楼层
本身没有别的参考值无法算出来的,通过串口通信和外部的时间进行比较估计可行。
虽然不明白你们在说什么,但感觉很厉害的样子。
回复

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2253
金钱
2253
注册时间
2010-12-16
在线时间
204 小时
发表于 2016-6-4 23:22:53 | 显示全部楼层
标定了意义也不大 , 受温度和电源电压影响 , 厂家只保证了 1% 的分布 , 即使自己标定了也只能降级使用 , 还要测试降级水平 , 这个成本不如上个晶振 .

关于标定本身 , ST 是有通过外部晶振标定内部低频振荡器的 AN 的 , 可以反过来用低速晶振标定内部高频振荡器 .
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2016-6-5 11:03:16 | 显示全部楼层
一般这个偏差值是确定的,如果通讯要求很高一方面选用带有温补的有源晶振,另外一方面需要在通讯协议兼容性或是容错性上下功夫
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-5-10
在线时间
1 小时
发表于 2016-6-5 15:36:33 | 显示全部楼层
内部8M的是RC震荡产生的,有一点小误差,能不用尽量不用吧。真要测就是跟楼上说的一样接外部标准时钟比较
回复

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2253
金钱
2253
注册时间
2010-12-16
在线时间
204 小时
发表于 2016-6-5 19:35:34 | 显示全部楼层
本帖最后由 shihantu 于 2016-6-5 20:02 编辑
ricefat 发表于 2016-6-5 11:03
一般这个偏差值是确定的,如果通讯要求很高一方面选用带有温补的有源晶振,另外一方面需要在通讯协议兼容性 ...

< 一般 > 这两个字比较坑 LZ .
在 STM32的硬件接口里 , 需要高于 RC 振荡器但低于石英振荡器的异步通信接口 , 没弄错只有 USB , 当然自定义接口另算 , STM32F072 的 CRS 也是需要从外部提取修正信息的 .

串口通信的双机误差叠加 , 是内部 RC 可以满足的 , 除非设置的理论波特率已经与实际波特率有一定的误差 .

在 OnChip RC 振荡器的设计里 , 出厂时只标定振荡器的溢出值 , 可以实现 20% 的全范围误差 , 针对版图设计进行温度和电压的线性校正 , 可以做到 5% 的误差 , 现在主流的 1% 已经是做了高次修正的结果 , 剩余的误差需要做二维标定 , 或者限制维度比如固定工作电压 , 再做一维标定 , 这个标定成本不一定比加个零件低 .

有个类似 STM32F072 的 CRS 的方案 , 某些系列的串口有很难用的自动波特率侦测的功能 , 或者自己使用其他方式从外部提取同步时钟 .

个人已知需要上温补晶振的通信领域是电台和万兆网 .
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

20

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2011-7-5
在线时间
43 小时
 楼主| 发表于 2016-6-7 16:35:41 | 显示全部楼层
感谢楼上各位回复,我的情况是这样的,CPU是STM32F103TB,用于CAN通信,外部晶振也加了,但是发现外部晶振都没有起振(应该和匹配电容有关系)。然后我现在的做法是:外面给目标板发送数据,目标板的CAN_BS1、CAN_BS2、CAN_Prescaler依次变大扫描,接收到数据就存下这三个值,最后取采样点接近87%(100K)的值,因为这个东西运行环境的温度基本不变,所以可以认为温度对内部晶振影响不大。
当然要想解决根本问题,就要使用外部晶振。
另外发现,能配合此CPU的CAN通信芯片只有VP233。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 01:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表