TI中文支持网
TI专业的中文技术问题搜集分享网站

关于am335x usb的通信问题

我在实现am335x (usb host)与stm32( usb device)通信时遇到如下问题:

1.正常情况下,host与device能正常通信。

2.假如stm32死掉,即device死掉,这时am335x通过usb发送1帧数据给device后,linux控制台就会卡住,要等15秒左右后才正常。

   自己的推测:当device死掉后,host发送的1帧数据将发不出去(因为device没有给host应答响应),此时host硬件或者linux usb核心层会重复发送这1帧数据(此时依然是发送失败),当发送的次数或者是时间到达后,将不再尝试发送,此时控制台就会恢复正常。

问题:请问如何修改am335x的usb驱动来减少上述的重发次数或超时时间,从而达到减少am335x linux被卡住的时间。

目的:当device死掉时,减小对host的影响。

谢谢!

hongwan weng:

我是利用linux下通用的usb转串口驱动实现am335x与stm32通信的。应用层通过/dev/ttyUSB0设备文件来向device发送数据的。

hongwan weng:

回复 hongwan weng:

经过验证,当不使用usb的dma模式将不会出现上述情况。

有一个新的疑问:如果am335x 一个usb包第1次发送失败,那么usb驱动中有没有重发机制或超时机制?如果有,实在那个函数中实现的?谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 关于am335x usb的通信问题
分享到: 更多 (0)