IMX6Q串口的接收引脚收到一个时长为微妙级别的下拉后,驱动就会一直读取数据

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6Q串口的接收引脚收到一个时长为微妙级别的下拉后,驱动就会一直读取数据

1,276 Views
liuyue
Contributor I

IMX6Q串口的接收引脚收到一个时长为微妙级别的下拉后,驱动就会一直读取数据,读取到的数据是0xFF,直到有正常串口数据接收后才会停止。

原因分析,短暂的下拉导致(也可以是干扰)IMX6Q串口接收端检测到数据起始位,就开始去读取数据,此时一直为高电平,所以解析一直是0xFF,即便把串口处理程序停止也无效,只有正常串口数据接收时,因为有停止位所以接收就正常了。

问题:如何在驱动内部解决这个问题。

Labels (1)
0 Kudos
Reply
2 Replies

1,156 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Liuyue,

      只要是通信进行数据传送,就会存在 接收或者发送不正常的问题,无论什么样的通信,都有这个问题。除了在硬件电路上进行ESD & EMC之外,软件里面通信协议(自己的协议)设计中,也必须要做 “容错”设计。而驱动程序中,要做的是FIFO中有什么数据,就传给上层什么数据,因此,请不要在驱动中做修改,而是在应用层协议中做容错处理。

Have a nice day!

TIC Weidong Sun

0 Kudos
Reply

1,156 Views
liuyue
Contributor I

hello Wigros Sun:

      这个问题应该是由于底层没有做好导致的,有垃圾数据是可以理解的,但是底层应该有容错机制才对,同样的情况用三星的处理器,windwos平台的usb转串口,都只会出现一个0xFF就马上停止,所以在底层做才能够根本解决这个问题。靠应用层来弥补这个问题是不合理的。只能临时解决这个问题。

0 Kudos
Reply