AM3354 手册里USB CORE没有提供介绍吗?
我需要实现U盘识别的功能,使用的是USB1接口,在usb_lowlevel_init函数里有下列语句:
do{
if(musb_readb(mbase,MUSB_DEVCTL) & MUSB_DEVCTL_HM)
break;
}while(–timeout);
mbase指向USB1 CORE,MUSB_DEVCTL=0x60,MUSB_DEVCTL_HM=0x04。
do循环之前读取的寄存器值是0x81,然后等待bit2=1,但是一直得不到,最终超时。
想请问下,这个寄存器具体的作用,还有什么情况可能导致bit2一直不等于1?
Jian Zhou:
AM335x的USB core是不公开的,需要联系代理商签NDA才能公开。
lu wei:
回复 Jian Zhou:
可以先解释下这个寄存器表示的是什么吗?这种情况说明哪里出问题了?
Jian Zhou:
回复 lu wei:
这个寄存器的这个位是判断USB是否工作在host mode的,如果等待超时,说明USB没有工作在HOST mode
lu wei:
回复 Jian Zhou:
和外部电路有关吗?
Jian Zhou:
回复 lu wei:
请检查下USB做为HOST的原理图设计:
http://processors.wiki.ti.com/index.php/AM335x_Schematic_Checklist#USB