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

【求助】AM3352 USB0 工作HOST,能用软件方式设置USB0 OTG ID为低电平吗?

用软件方式将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_OTG,*/
.mode = (MUSB_HOST << 4) | MUSB_HOST,
.power = 500,
.instances = 1,

};

由于硬件限制,boot room启动时, 支持USB RNDIS模式升级,及USB0 OTG ID硬件必须为悬空。

现在硬件没有将USB0 的OTG ID引出到EVK板,没法通过插入U盘的方式,将OTG ID管脚连接到地。

现在需求:

1、USB0 OTG ID悬空,能实现Boot room usb rndis升级;

2、在Linux操作系统下,USB0作为HOST,能访问U盘。

现在调试发现:

1、当将USB0 OTG ID管脚接地,可以正常访问U盘。

在没插入U盘的情况下:

root@am335x-evm:~# cat /proc/driver/musb_hdrc.0
Status: MHDRC, Mode=Host (Power=e0, DevCtl=19) #####USB0 工作在A device模式下
OTG state: a_idle; inactive
Options: ?dma?, otg (peripheral+host), [eps=16]
Peripheral address: 00
Root port status: 00000100
CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

2、如果USB0 OTG ID管脚接地,不识别访问U盘。

在没插入U盘的情况下:

root@am335x-evm:~# cat /proc/driver/musb_hdrc.0
Status: MHDRC, Mode=Host (Power=e0, DevCtl=99) ###USB0 工作在B Device下;
OTG state: a_idle; inactive
Options: ?dma?, otg (peripheral+host), [eps=16]
Peripheral address: 00
Root port status: 00000100
CPPI: txcr=0 txsrc=0 txena=0; rxcr发表=0 rxsrc=280de80 rxena=0

3、如果USB0 OTG ID悬空,强行通过命令,将USB0改为A device,发现立即变回B device;

感觉USB 控制器有firmware在一直监控OTG ID。

请问有没有软件方法,设置OTG ID 接地状态,这样,我就可以不需要修改硬件,将USB0 OTG ID管脚拉到EVK底板上。

请求FAE帮忙指导一下,谢谢。

Jian Zhou:

请问有参考过USB原理图设计的规范么:

http://processors.wiki.ti.com/index.php/AM335x_Schematic_Checklist#USB

Yaoming Qin:

首先有点,ID脚不应该是悬空的,而是应该接到USB接插件的ID脚上的。

在linux中,您最开始提到的修改的方法,可以把usb固定在host模式下,这个修改,对于rndis烧写没有影响。

赞(0)
未经允许不得转载:TI中文支持网 » 【求助】AM3352 USB0 工作HOST,能用软件方式设置USB0 OTG ID为低电平吗?
分享到: 更多 (0)