完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
用软件方式将USB0强制设置为HOST工作模式,代码修改如下:
static struct omap_mu***_board_data mu***_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 u*** rndis升级; 2、在Linux操作系统下,USB0作为HOST,能访问U盘。 现在调试发现: 1、当将USB0 OTG ID管脚接地,可以正常访问U盘。 在没插入U盘的情况下: root@am335x-evm:~# cat /proc/driver/mu***_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/mu***_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帮忙指导一下,谢谢。 |
|
相关推荐
1个回答
|
|
根据《AM335x Sitara™ Processors Technical Reference Manual.pdf》描述,USB控制器通过设置USB0MODE寄存器实现软件控制OTG ID的电平,选择A Ddevice或B Device
The USB controller assumes the role of a host when the USBx_ID pin state is grounded or USB Mode Register[iddig=bit8] is cleared to 0 (provided that iddig_mux, which is bit7 of USBnMODE is also set to 1) by the user application prior to the controller goes into session. When the USB controller go into session, application/firmware sets the DEVCTL[SESSION] bit to 1, it will assume the role of a host. 具体修改代码如下: ti81xx_mu***_set_mode函数,增加下面代码: if (mu***_mode == MUSB_HOST) [ regval = mu***_readl(reg_base, USB_MODE_REG); regval &= ~USBMODE_USBID_HIGH; if (u***id_sw_ctrl && cpu_is_ti816x()) regval |= USBMODE_USBID_MUXSEL; if(mu***->id == 0) [ regval = 0x080; //IDDIG=0,IDDIG_MUX=1 增加代码,配置为A Device ] 通过上面配置,可以识别U盘,并可以操作。 |
|
|
|
只有小组成员才能发言,加入小组>>
279 浏览 1 评论
494 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
730 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
630 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1096 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
204浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
166浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
40浏览 13评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
142浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
140浏览 12评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 05:44 , Processed in 0.746571 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号