现在用C6748,写USB主机驱动遇到问题了,看了好几天没找到问题,求大神指教。问题是这样的,USB做主机,初始化后,拿个U盘插拔USB口,6748只能响应第一个中断,后面再怎么插拔都不能再进中断了。打印出来的INTSRCR寄存器的标志位和INTMSKR寄存器的位也是正常的,INTRUSBE中断使能寄存器也是正常的。实在是找不到哪里有问题。初始化的过程也是按照数据手册中User Case 1:Examp of How to Initialize the Usb Controller的步骤来写的。
调过USB做设备的,中断啥的都正常,不知道为什么切换到做主的就不行
Denny%20Yang99373:
可以先用starterware demo测试一下,怀疑中断处理部分有问题。
ton xie:
回复 Denny%20Yang99373:
已经发现问题了,确实是中断处理的问题,USB中断处理要先读中断标志寄存器INTSCRR,再清除INTCLRR,再进入中断解析处理,最后还要向EOIR中写0,我把EOIR寄存器的地址弄错了,所以没有成功,被这么一个小细节坑了我也是醉了。谢谢你!
haidong qiu:
回复 ton xie:
你好,我最近也在搞C6748 USB0,使用的是usb_dev_bulk,可是现在连识别都识别不出来,可以把您使用的USB0通讯成功的发给我吗?如果不行,可以指导我一下吗?我的QQ496603471,万分感谢。
Denny%20Yang99373:
回复 haidong qiu:
http://software-dl.ti.com/dsps/dsps_public_sw/c6000/starterware/01_20_04_01/index_FDS.html