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

提供的复位时钟,这个实际的时钟已经非常接近理论值了。) 可收到正常复位信息了。

 

posted @ 2015-05-27 15:23  阿青1987  阅读(510)  评论(0编辑  收藏  举报