[STM32F2] 电路板上两个STM32 USART通信对时钟精度的要求

[复制链接]
12282|45
forrest11 发表于 2015-3-17 15:56 | 显示全部楼层
本帖最后由 forrest11 于 2015-3-17 15:59 编辑
icecut 发表于 2015-3-17 13:38
uart不需要时钟同步.

UART虽然不需要时钟同步,但对时钟的精度有要求。理论上应该是3%,考虑到温漂和长期漂移,要求时钟的精度为:误差<2%.
 楼主| tom_xu 发表于 2015-3-17 15:59 | 显示全部楼层
acguy 发表于 2015-3-17 14:35
另外似乎陶振不比普通晶振便宜啊。
49S两毛钱,


村田一般陶振精度可以在0.8%内,
高精度的陶振可以在3000PPM(0.3%)之内.
-40度到125度全温度范围.
 楼主| tom_xu 发表于 2015-3-17 16:01 | 显示全部楼层
陶振的优点是尺寸小, 而且稳定.
forrest11 发表于 2015-3-17 16:01 | 显示全部楼层
PIGYONG801 发表于 2015-3-17 13:53
是误差5%就可以了,晶振的误差不用考虑

5%误差太大了,会导致生产不良的。
yhn1973 发表于 2015-3-17 16:02 | 显示全部楼层
误差还跟位数有关,10位最大理论误差是5%,11位的话是4.5%,都是两端误差之和,实际应用中按这个误差做肯定不可靠,尤其是高波特率下,两端误差之和要在3%以内才可靠。
runningwzf 发表于 2015-3-17 16:17 | 显示全部楼层
晶振的误差是会引起的波特率的误差,但是几乎可以忽略
戈卫东 发表于 2015-3-17 16:30 | 显示全部楼层
理论上好于5%就可以
le062 发表于 2015-3-17 16:36 | 显示全部楼层
总误差5%,需计算时钟误差及分频误差
forrest11 发表于 2015-3-17 17:52 | 显示全部楼层
tom_xu 发表于 2015-3-17 12:38
STM32的内部时钟精度是+/-5%在-40~85度范围内。

算算就知道你这样的参数,会出问题的。
zh113214 发表于 2015-3-17 18:40 | 显示全部楼层
这个不会有什么问题,用普通晶振就可以满足要求了吧
飞行员 发表于 2015-3-17 20:20 | 显示全部楼层
本帖最后由 飞行员 于 2015-3-19 08:34 编辑

理论上,时钟精度导致的偏差 不得超过波特率接收方所容忍的误差。8M, 百分之5的误差
对于115.2K的波特率,是可以接受的。所以不必担心。
ilikerome 发表于 2015-3-17 22:40 | 显示全部楼层
UART的速率相对对bit的准确性要求还是很低的,速率这么低
forrest11 发表于 2015-3-18 00:53 | 显示全部楼层
飞行员 发表于 2015-3-17 20:20
理论上,时钟精度导致的偏差 不得超过波特率接收方所容忍的误差。8M, 百分之5的误差晶振
对于115.2K的波特 ...

1. 5%误差和8M没有绝对关系。
2. 8M时钟,5%的误差,达400KHz,你觉得这个误差小吗?

我认为你不知道怎么计算误差。
飞行员 发表于 2015-3-18 07:46 | 显示全部楼层
本帖最后由 飞行员 于 2015-3-19 08:34 编辑
forrest11 发表于 2015-3-18 00:53
1. 5%误差和8M没有绝对关系。
2. 8M时钟,5%的误差,达400KHz,你觉得这个误差小吗?

要搞清楚楼主没有说清的的一些问题。理论上是可以”计算“的。没有必要钻这牛角尖。

我的说法就是经验和测试。
forrest11 发表于 2015-3-18 08:24 | 显示全部楼层
飞行员 发表于 2015-3-18 07:46
8M晶振在”STM32"应用环境下,它的误差是要传导的。经过锁相环,分频,还有用户自己的具体设定等,计算它 ...

只能说你不会计算,也不知道测试,更不知道从设计到量产还要走多少路。拿着手上的一块板子测试了几个小时,就说好了,没有误码,没问题。

如果你不会计算,提示你一下:
找到一个8M-5%的板子,一个8M+5%的板子,拿这两块板子互发数据,看看有没有乱码。
飞行员 发表于 2015-3-18 08:37 | 显示全部楼层
本帖最后由 飞行员 于 2015-3-18 09:03 编辑
forrest11 发表于 2015-3-18 08:24
只能说你不会计算,也不知道测试,更不知道从设计到量产还要走多少路。拿着手上的一块板子测试了几个小时 ...

你有点自以为是。那就给出你的计算让我看看吧。而不是又扯出我提出的测试。
 楼主| tom_xu 发表于 2015-3-18 09:41 | 显示全部楼层
大家互相探讨,分享观点,没有绝对的对错.
所以不要互相指责.
 楼主| tom_xu 发表于 2015-3-18 09:44 | 显示全部楼层
飞行员 发表于 2015-3-17 20:20
理论上,时钟精度导致的偏差 不得超过波特率接收方所容忍的误差。8M, 百分之5的误差晶振
对于115.2K的波特 ...

STM32的手册上给出了波特率接受方所容忍的误差, 但是不知道从晶振的误差到波特率的误差是怎么传导计算得.
NE5532 发表于 2015-3-18 10:59 | 显示全部楼层
tom_xu 发表于 2015-3-18 09:44
STM32的手册上给出了波特率接受方所容忍的误差, 但是不知道从晶振的误差到波特率的误差是怎么传导计算得. ...

串口波特率误差来源于两个地方:晶体频率误差和波特率发生器不能整除时发生的尾数误差,两个误差叠加起来算就可以了。

评论

一出口就知道有没有。  发表于 2015-3-18 11:06

评分

参与人数 1威望 +1 收起 理由
forrest11 + 1 赞一个!

查看全部评分

 楼主| tom_xu 发表于 2015-3-18 13:14 | 显示全部楼层
NE5532 发表于 2015-3-18 10:59
串口波特率误差来源于两个地方:晶体频率误差和波特率发生器不能整除时发生的尾数误差,两个误差叠加起来 ...

我查了下STM32手册,
波特率发生器不能整除的误差在8M HSE /115.2K 是0.64%。
村田陶振在全温度范围,考虑温漂老化的误差是0.8%。
两个相加是1.44% <2%,
所以通讯是稳定可靠得,
可以这样下结论吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部