打印
[技术问答]

M484高速USB同步端点的问题,没设置TXCNT,但是会触发TXPKIF

[复制链接]
837|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vsfopen|  楼主 | 2019-5-22 16:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 vsfopen 于 2019-5-22 17:35 编辑

实现的是一个UVC,主机打开视频流的时候,EPA寄存器如图。这里TXCNT并没有设置。
然后运行一下,这里由于关了中断死循环,所以无法执行其他代码,但是,TXPKIF会置位。
文档里,不是说好的,MANUAL VALIDATION METHOD下,写了TXCNT才会触发IN传输的吗?
还是我哪里寄存器设置了不对?

使用特权

评论回复
沙发
vsfopen|  楼主 | 2019-5-22 17:32 | 只看该作者
是因为同步传输,没有handshake的关系吧?
同步传输是需要用DMA实现的吗?

使用特权

评论回复
板凳
zhuotuzi| | 2019-5-22 19:03 | 只看该作者
还没使用过这个系列,你看看BSP里面的几个USB例子怎么搞的。

使用特权

评论回复
地板
vsfopen|  楼主 | 2019-5-22 21:19 | 只看该作者
本帖最后由 vsfopen 于 2019-5-22 22:19 编辑
zhuotuzi 发表于 2019-5-22 19:03
还没使用过这个系列,你看看BSP里面的几个USB例子怎么搞的。

有同步端点的例子吗?我看一下
看了一下,UAC demo使用DMA做的,新塘的文档里,同步端点下的行为说明了并不清楚,这个应该没办法开发的吧?

使用特权

评论回复
5
vsfopen|  楼主 | 2019-5-23 00:22 | 只看该作者
本帖最后由 vsfopen 于 2019-5-23 00:32 编辑

目前已经可以传输一帧UVC的完整画面,不过貌似USB的EP处理,对于同步传输有BUG。

这里有官方的人吗?能看一下这个问题吗?注意:打印的ep0其实是EPA。
这个是传输正常的,写数据之后(写TXCNT没打印),中断里,就是发送完成,DATCNT=0表示缓冲里没数据了。
这里虽然也正常,但是,会多收到一次中断,而这次中断里,DATCNT还是514,表示数据并没有发送走,为啥要给中断?后面一次中断里,数据才发送走了,DATCNT为0.
这里就是错误的情况了,一直产生中断,但是数据一直没发送走。

使用特权

评论回复
6
vsfopen|  楼主 | 2019-5-23 13:46 | 只看该作者
Workaround:
                if (status & HSUSBD_EPINTSTS_TXPKIF_Msk) {
                    M480_USBD_EP_REG(idx, EP[0].EPINTSTS) = HSUSBD_EPINTSTS_TXPKIF_Msk;

#if VSF_HAL_USBD_TRACE_EN == ENABLED
                    vsf_trace(0, "ep%d txpkif interrupt.\r\n", idx);
                    vsf_trace(0, "EPTXCNT=%d,EPDATCNT=%d\r\n",
                              M480_USBD_EP_REG(idx, EP[0].EPTXCNT),
                              M480_USBD_EP_REG(idx, EP[0].EPDATCNT) & 0xFFFF);
#endif
                    // TODO: BUG on ISO EP, will receive TCPKIF even if no data is sent
                    if (0 == M480_USBD_EP_REG(idx, EP[0].EPDATCNT)) {
                        m480_usbd_hs_notify(usbd_hs, USB_ON_IN, ep);
                    }
                }
TXPKIF中断里,判断数据缓存是否是空的,是空的才表示发送走了。这里,对于ISO端点,可能没发送走也会触发中断的。

UVC搞定,show一下效果:貌似不能发视频效果

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

325

帖子

8

粉丝