AM335X的开发板,将USB0 设置成HOST模式,插着U盘启动开发板的时候,可以正常识别U盘,只要不断电,多次拔插U盘都能正常识别和工作;
但是,上电启动如果没有插着U盘的话,就没有办法识别到U盘,无论怎么拔插,都没有办法识别;
跳过板子的USB0VBUS的电源控制开关,直接给USB0VBUS直接供5V的话,无论上电的时候有没有插U盘,都可以正常识别到U盘;
这个问题很蹊跷,不知道是哪里设置不对造成,在编译内核的时候也去掉了OTG模式的支持;
读过TI的文章,说是有可能电源处的电容太大,或者保护管子的原因,导致保护电路启动,而关掉USB0DRV,但是我把电容什么的都拿掉,就留下一个104pF的小电容意思一下,感觉不像是这个原因;
将USB0修改成HOST的地方如下;
static struct omap_musb_board_data musb_board_data = {
.interface_type = MUSB_INTERFACE_ULPI,
/*
* mode[0:3] = USB0PORT's mode
* mode[4:7] = USB1PORT's mode
* AM335X beta EVM has USB0 in OTG mode and USB1 in host mode.
*/
.mode = (MUSB_HOST << 4) | MUSB_HOST,
//.mode = (MUSB_HOST << 4) | MUSB_OTG,
.power = 500,
.instances = 1,
};
只改了这个地方,其他地方没有动过,一直找不到原因,望有大侠指点;
zhijun wang:
回复 Gary Wu:
是硬件的问题,USB接口的电源的电容太小,说是要120UF以上,我用得太小了,谢了啊
Gary Wu:
回复 zhijun wang:
谢谢你的分享
user4619179:
回复 Gary Wu:
请问要把 OTG这个USB口配制成HOST模式只能重新修改内核吗,能不能把ID脚接地?