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

AM3354 CPPI DMA RX 不能正常工作

大家好:

最近在做板子时发现一个奇怪的问题,捣鼓好久都没有解决,在此贴出来希望大家给家意见、建议

1.硬件:AM3354+HUB芯片(HUB2514)

2.问题:对U盘进行长时间拷贝、删除文件操作(同一个文件来回拷贝、删除),一段时间之后usb RX无法正常工作,追代码发现此时已经将对应的PD push到queue中,但是没有触发USBSSINT中断(从芯片手册上来看,CPPI DMA完成操作之后会触发该中断),所以目前猜测是虽然地址已经push到queue中了但是DMA没有启动传输,所以请教一下各位 从哪里可以检测到DMA传输的中间过程(比如datasheet中提到的DMA_req[8])

3.2中提到的问题在Kingston U盘上不存在,Sandisk的会出问题。

yongqing wang:

Sandisk 别的型号有测试一下吗

user5821401:

回复 yongqing wang:

目前我手上有的5个u盘都是这样(32G、64G、16G)

yongqing wang:

我估计是触发中断后又有别的push ,会造成数据被打断

yongqing wang:

回复 yongqing wang:

类似这个帖子中的解释,你可以按这个方向查查:e2e.ti.com/…/668709

yongqing wang:

回复 yongqing wang:

另外你的SDK是最新的吗?如果不是建议更新最新的版本看看

user5821401:

回复 yongqing wang:

我检测数据发现 最开始push到queue16中的数据始终没有被DMA读取(正常情况下queue16中的地址会被DMA读取,然后就变为0,现在读出来的还是原来写进去的值),你所说的触发中断之后又有别的push操作?(这个操作是DMA做的?我代码中检测了所有的push动作 没有看到有对应的调用),

user5821401:

回复 yongqing wang:

是的,
从CPPI DMA的描述来看,只要我的PD push到相应的queue中之后(RXSQ) 会触发一个DMA_req[8] 这个请求我可以再哪里检测到吗?

yongqing wang:

回复 user5821401:

意思是启动DMA之前有连续的push,造成传输丢弃

user5821401:

回复 yongqing wang:

这一点之前也怀疑过,检测发现没有多次push

yongqing wang:

回复 user5821401:

多试试别的牌子的,单一种出现问题,估计适配的驱动可能没做好

赞(0)
未经允许不得转载:TI中文支持网 » AM3354 CPPI DMA RX 不能正常工作
分享到: 更多 (0)