This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
使用 TI 的 usb library, 版本v210,使用 USBHCDPipeSchedule 函数 ,向 输入端点发送 IN包,请求设备数据。
测试发现,执行一次 USBHCDPipeSchedule(g_psCDCDevice.ui32BulkInPipe ,(uint8_t*)arry,2); 后 ,USB总线上持续有 数据通过。解析波形发现,host 一直在发送 IN包,而设备回复 NACK。
下图为 示波器波形,:USB host 持续发送IN包,设备持续回复 NACK。
请问:
当前的 USB library 中,当设备回复 NACK时,
1、该 USB library是否会持续发送 IN包请求数据,直到设备回复正确数据,不收到设备回复DATA包,就不停止发送 IN包请求? 是否有让 主机停止发送的条件,比如发送一定次数,自动放弃发送?
2、如果多次请求,设备回复均为 NACK, 是否会触发错误事件,如果会触发错误,则 该错误事件是什么?
28377D 为主机,UB设备为一个 USB转网口模块,USB虚拟为串口。28377D 在 中断端点中 255ms发送一次IN包,请求模块设备数据。USBHCDPipeSchedule 函数负责发送IN包,不不阻塞接收,所以返回值为0 。 在设备有数据回复时,HOST 会不再发送IN包,直到255ms一次的中断端点发送IN包请求。
目前 28377D主机与模块设备的USB 通信是成功的。但是设备不会时时都有数据上报,像设备返回NACK,后host持续有IN包发送,是不是有些浪费?或者说 USB通信本就是如此设计的。