This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X USB0 设置成HOST 识别U盘问题



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,
};

只改了这个地方,其他地方没有动过,一直找不到原因,望有大侠指点;