具体情况是这样:我用lpc2148做usb通讯,采用bulk模式传输.现在pc发送读数据后,就一直等待数据.我的理解是,在固件里面,应该是在收到IN令牌包后,立刻给pc返回数据.而pc收到数据后会返回ACK,lpc2148收到ACK后才产生中断.问题是:我想知道的是lpc2148...
全文
回复(5) 2008-01-11 13:06 来自版块 - USB驱动开发
表情
yang_zi_jiang谢谢楼上几位,几天没来看.这个问题我已经解决了.我用的是DMA传输方式,就是缓冲区的数据没有准备好,导致IN令牌收到后返回NAK,而2148的dma模式下传输不成功是不会产生中断的,所以感觉没进去.顺便问一下,这里怎么给分,我找了好久都没找到啊?(2008-01-31 08:43)
IoManagerHOST 发出IN后,USB接口芯片首先擦看缓冲区中是否有数据,如果有数据,那么传输数据,然后通知MCU中断;否则返回NAK,不通知MCU中断。所以问题可能在Host发送IN之前,你的缓冲区没有刷新。(2008-01-20 12:25)
jinghuiren设置该端点的中端使能了吗? 没有的话就查询中断相关寄存器,查询到有该IN端点的中断就进入处理数据程序(2008-01-18 16:02)
liaojf收到IN令牌后应该能进中断的,可能没有设置好USB中断(2008-01-16 13:56)
yang_zi_jiang我没有usb分析仪,所以都不知道IN令牌是否收到.但是,当我把发送数据放到循环里面不停的发给pc时,pc那边的应用程序就能收到数据.这说明之前pc端应用程序死等应该收到了IN令牌,实际上是由于固件里没有返回数据.但是我的发送函数肯定不能一直放到循环里面发送的,我是想等收到IN令牌...(2008-01-11 13:14)

返回顶部