打印
[STM32F2]

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

[复制链接]
楼主: tom_xu
手机看帖
扫描二维码
随时随地手机跟帖
21
forrest11| | 2015-3-17 15:56 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 forrest11 于 2015-3-17 15:59 编辑
icecut 发表于 2015-3-17 13:38
uart不需要时钟同步.

UART虽然不需要时钟同步,但对时钟的精度有要求。理论上应该是3%,考虑到温漂和长期漂移,要求时钟的精度为:误差<2%.

使用特权

评论回复
22
tom_xu|  楼主 | 2015-3-17 15:59 | 只看该作者
acguy 发表于 2015-3-17 14:35
另外似乎陶振不比普通晶振便宜啊。
49S两毛钱,


村田一般陶振精度可以在0.8%内,
高精度的陶振可以在3000PPM(0.3%)之内.
-40度到125度全温度范围.

使用特权

评论回复
23
tom_xu|  楼主 | 2015-3-17 16:01 | 只看该作者
陶振的优点是尺寸小, 而且稳定.

使用特权

评论回复
24
forrest11| | 2015-3-17 16:01 | 只看该作者
PIGYONG801 发表于 2015-3-17 13:53
是误差5%就可以了,晶振的误差不用考虑

5%误差太大了,会导致生产不良的。

使用特权

评论回复
25
yhn1973| | 2015-3-17 16:02 | 只看该作者
误差还跟位数有关,10位最大理论误差是5%,11位的话是4.5%,都是两端误差之和,实际应用中按这个误差做肯定不可靠,尤其是高波特率下,两端误差之和要在3%以内才可靠。

使用特权

评论回复
26
runningwzf| | 2015-3-17 16:17 | 只看该作者
晶振的误差是会引起的波特率的误差,但是几乎可以忽略

使用特权

评论回复
27
戈卫东| | 2015-3-17 16:30 | 只看该作者
理论上好于5%就可以

使用特权

评论回复
28
le062| | 2015-3-17 16:36 | 只看该作者
总误差5%,需计算时钟误差及分频误差

使用特权

评论回复
29
forrest11| | 2015-3-17 17:52 | 只看该作者
tom_xu 发表于 2015-3-17 12:38
STM32的内部时钟精度是+/-5%在-40~85度范围内。

算算就知道你这样的参数,会出问题的。

使用特权

评论回复
30
zh113214| | 2015-3-17 18:40 | 只看该作者
这个不会有什么问题,用普通晶振就可以满足要求了吧

使用特权

评论回复
31
飞行员| | 2015-3-17 20:20 | 只看该作者
本帖最后由 飞行员 于 2015-3-19 08:34 编辑

理论上,时钟精度导致的偏差 不得超过波特率接收方所容忍的误差。8M, 百分之5的误差
对于115.2K的波特率,是可以接受的。所以不必担心。

使用特权

评论回复
32
ilikerome| | 2015-3-17 22:40 | 只看该作者
UART的速率相对对bit的准确性要求还是很低的,速率这么低

使用特权

评论回复
33
forrest11| | 2015-3-18 00:53 | 只看该作者
飞行员 发表于 2015-3-17 20:20
理论上,时钟精度导致的偏差 不得超过波特率接收方所容忍的误差。8M, 百分之5的误差晶振
对于115.2K的波特 ...

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

我认为你不知道怎么计算误差。

使用特权

评论回复
34
飞行员| | 2015-3-18 07:46 | 只看该作者
本帖最后由 飞行员 于 2015-3-19 08:34 编辑
forrest11 发表于 2015-3-18 00:53
1. 5%误差和8M没有绝对关系。
2. 8M时钟,5%的误差,达400KHz,你觉得这个误差小吗?

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

我的说法就是经验和测试。

使用特权

评论回复
35
forrest11| | 2015-3-18 08:24 | 只看该作者
飞行员 发表于 2015-3-18 07:46
8M晶振在”STM32"应用环境下,它的误差是要传导的。经过锁相环,分频,还有用户自己的具体设定等,计算它 ...

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

如果你不会计算,提示你一下:
找到一个8M-5%的板子,一个8M+5%的板子,拿这两块板子互发数据,看看有没有乱码。

使用特权

评论回复
36
飞行员| | 2015-3-18 08:37 | 只看该作者
本帖最后由 飞行员 于 2015-3-18 09:03 编辑
forrest11 发表于 2015-3-18 08:24
只能说你不会计算,也不知道测试,更不知道从设计到量产还要走多少路。拿着手上的一块板子测试了几个小时 ...

你有点自以为是。那就给出你的计算让我看看吧。而不是又扯出我提出的测试。

使用特权

评论回复
37
tom_xu|  楼主 | 2015-3-18 09:41 | 只看该作者
大家互相探讨,分享观点,没有绝对的对错.
所以不要互相指责.

使用特权

评论回复
38
tom_xu|  楼主 | 2015-3-18 09:44 | 只看该作者
飞行员 发表于 2015-3-17 20:20
理论上,时钟精度导致的偏差 不得超过波特率接收方所容忍的误差。8M, 百分之5的误差晶振
对于115.2K的波特 ...

STM32的手册上给出了波特率接受方所容忍的误差, 但是不知道从晶振的误差到波特率的误差是怎么传导计算得.

使用特权

评论回复
39
NE5532| | 2015-3-18 10:59 | 只看该作者
tom_xu 发表于 2015-3-18 09:44
STM32的手册上给出了波特率接受方所容忍的误差, 但是不知道从晶振的误差到波特率的误差是怎么传导计算得. ...

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

使用特权

评论回复
评论
forrest11 2015-3-18 11:06 回复TA
一出口就知道有没有。 
评分
参与人数 1威望 +1 收起 理由
forrest11 + 1 赞一个!
40
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%,
所以通讯是稳定可靠得,
可以这样下结论吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则