linux 串口接收PSAM 复位响应数据不正确原因分析
背景信息
1、在分析之前串口程序A已经准备好了,且该串口程序A在1月前测试硬件PSAM环境B下,
可以正确接收到环境B下的PSAM复位信息。
2、今天同样使用串口程序A在新PSAM硬件环境C下,不能接收到正确的PSAM复位信息。
3、PSAM卡的复位波特率都为 9600
正确的复位信息为:
3b 7f 96 0 0 56 28 9 25 5a 2 0 79 ca ff 54 50 16 3c 14
收到的错误信息为:
7b 0 96 0 0 56 0 0 25 5a 0 0 f9 ca 0 0 0 0 0 0
原因分析
分析两种硬件环境下的复位信息的示波器抓图(每bit 时间图):
1)收到正确的复位信息时,每bit 时间图如下:
2)收到错误的复位信息时,每bit 时间图如下:
3)在理论情况下, 9600bps 条件下,每bit的理论时间值为: 104.17us 。因此,可确认该问题是由时钟引起的。
时钟引起的两种情况是:1)分频不当 2)晶体不当
通过重新焊接一块 14.3181Mhz 的晶体,并对其 4 分频 (结果是3579525Hz 3579525 / 372 = 9622.38 即为 psam
提供的复位时钟,这个实际的时钟已经非常接近理论值了。) 可收到正常复位信息了。