在许多的低功耗工业设备里面,需要有串口通信的要求。为了保持设备的低功耗,只能工作LPM3,这个时候也只能有32K晶振在活动。
但是看到32K产生的9600波特率错误偏差这么大,达到44%了,到底还能不能用呢?
现实情况是,过去这样一直使用,好像也还可以的。
那么问题又来了,如果这样可以使用的话,有些单片机内部带有REFO,也是32K的,不过误差大了点,全温度范围电压范围下,3.5%误差,这个误差比44%,要小多了啊,是不是可以直接使用它作为aclk,进而省下一个外部晶体,从而降低成本和空间?
灰小子:
44%这个误差是最坏的情况。实际上没有那么大的误差的。
另外,msp430配置的时候有小数波特率,会调整相应位宽的,也就是说每一位的误差更小。
如果楼主觉得误差大,可以采用软件方式确认数据的完整性,或者降低频率,误差也会变小
没见有人用REFO做串口时钟信号源的,这个稳定性不如32K晶振
Susan Yang:
请问您现在使用的是哪一款的430芯片?在32.768khz下来配置UART好还是采用高频的内部时钟好。一般根据数据手册内的说明,在32K时钟9600的波特率下错误偏差都不低。
user1866843:
回复 Susan Yang:
使用的是MSP430F5528,里面含有REFO,曾经使用过,作为ACLK,只是处在调试状态,没有实际应用过产品,感觉通讯没有什么问题。
REFO的功耗为3uA,感觉还可以。
使用高频晶振,进入不了LPM3,功耗太高了啊。
gaoyang9992006:
必须用9600波特率吗,这个晶振做2400是非常完美的,9600有人做过,但是误差是有的。
Hao Mengzhen:
回复 user1866843:
实验室条件下可以用REFO,应用到产品上就需要做大量测试检测性能了
Loops:
你好.一个是44%的数据不准确,我们用户手册里面有具体的数值. 如图
第二个是,REFO的误差和上面的误差不是一个概念. 一个是时钟精度, 一个是应用层的误包率. 使用REFO的结果肯定更差.
你可能需要考虑的一个问题是, 有数据后,是不是应该唤醒处理数据而不是在LPM3下用UART.
user1866843:
回复 Loops:
您好
可能不同系列的数据不太一样:
F55XX和G2XXX系列的都是这样的:
而FR系列的数据则是:
而且这个上面的error也不是误包率吧,否则即使1%,也是非常严重的了,通讯质量非常差了。
这个error应该是进行一个byte传输,实际扫描与理想之间的积累时间差,对应到一个bit上的时间误差百分比(我描述能力有限):
而在实际中,我使用32K产生9600波特率,传输上兆的数据,几乎没有误码。所以我才提了这问题。
Loops
你好.一个是44%的数据不准确,我们用户手册里面有具体的数值. 如图
第二个是,REFO的误差和上面的误差不是一个概念. 一个是时钟精度, 一个是应用层的误包率. 使用REFO的结果肯定更差.
你可能需要考虑的一个问题是, 有数据后,是不是应该唤醒处理数据而不是在LPM3下用UART.
user1621256:
回复 user1866843:
您好,使用内部DCO,波特率115200,这样用量产的话可行吗,我现在的应用是不希望它出现误码率(百万分之十以内)。不知道内部DCO会不会受温度影响或者个体差异较大
灰小子:
回复 user1621256:
可行的。完全没问题。
另外,还要看你的dco设置的是多少,只要频率不是太小,常用的1MHz、8MHz等都没问题
user1621256:
回复 灰小子:
我用的是内部的16MHz,那在115200波特率下传输误码率会是多少呢?如果把波特率提升到406800呢
TI中文支持网







