RK29USBApplicationNote_V1.1

RK29USBApplicationNote_V1.1
RK29 USB Application Note
版本⽇期描述作者审核V1.0 2010-12-18 USB⼦系统应⽤⽂档杨凯
V1.1 2011-6-8 添加OTG⽀持,添加FAQ 杨凯
⽬录
概述 (2)
⼀硬件电路及信号说明 (3)
1.1USB
2.0OTG控制器相关信号 (3)
1.2USB
2.0&1.1HOST控制器相关信号 (4)
⼆ KERNEL模块配置说明 (5)
2.1USB HOST相关配置 (5)
2.1.1 USB Mass Storage (6)
2.1.2 USB Serial Converter (7)
2.1.3 USB ⿏标键盘等HID设备 (7)
2.1.4其他USB设备 (7)
2.2USB GADGET配置 (7)
2.3芯⽚USB控制器配置 (8)
三 SYSFS接⼝ (9)
3.1MSC连接状态 (9)
3.2VBUS状态 (10)
3.3设备主动连接PC使能 (10)
3.4USB GADGET (10)
3.5OTG控制器⾓⾊强制切换 (10)
3.6查询OTG控制器当前⾓⾊ (10)
3.7控制器调试接⼝ (11)
3.8控制器使能 (11)
四 USB常见问题DEBUG (11)
4.1USB正常⼯作LOG (11)
4.1.1 OTG正常切换log (11)
4.1.2 Device状态log (12)
4.1.3 Host状态log (12)
4.2USB常见问题排查步骤 (13)
4.2.1 软件配置 (13)
4.2.2 硬件电路 (13)
4.2.3 Device功能异常排查步骤 (14)
4.2.4 Host功能排查步骤 (15)
4.3USB问题上报 (15)
五设备描述符、ID配置 (15)
六测试要求 (16)
6.1USB D EVICE测试 (16)
6.2USB HOST测试 (16)
6.3测试报告要求 (17)
概述
RK2918内置3个USB控制器,均挂在RK29 periph_ahb总线上。⼀个USB2.0 OTG控制器,⽀持作为host或device,⼀为USB 2.0 host控制器,⼀个USB1.1 host控制器。由于host2.0控制器上只有3个host mode channel,所以建议USB2.0 HOST 控制器不⽀持HUB。
RK29SDK提供的USB⼦系统⽀持所有linux所提供的标准接⼝,包括各种传输类型,协议规范内的休眠唤醒等,对设备没有限制,⽤户⽀持新的设备只需调试usbcore层以上的class驱动即可。
屋面拉条USB1.1 Host
Compatible with usb host1.1 specification
Only supports full-speed transfer up to 12Mbps
Provides 6 host mode channels
Support periodic out channel
USB2.0 Host
Compatible with usb host2.0 specification
Supports high-speed(480Mbps), full-speed(12Mbps) and low-speed(1.5Mbps) mode
Provides 3 host mode channels
USB2.0 OTG
Compatible with usb otg2.0 specification
Supports high-speed(480Mbps), full-speed(12Mbps) and low-speed(1.5Mbps) mode
Support up to 6 device mode endpoints in addition to control endpoint 0
Support up to 4 device mode IN endpoints including control endpoint 0
Endpoints 1/3/5 can be used only as data IN endpoint
Endpoints 2/4/6 can be used only as data OUT endpoint
Provides 6 host mode channels
Support periodic out channel in host mode
Full speed(usb 1.1)bulk理论最⾼数据传输速率:1216K byte/second
High speed(usb2.0)bulk理论最⾼数据传输速率:53248K byte/second
⼀硬件电路及信号说明
USB2.0的⼯作时钟⾼达480MHz,所以layout时需要特别注意,USB⾛线宽度为7-8MIL,做90R阻抗差分⾛线,最好在表层⾛线并有包地,边上⽆⼲扰源,正对的上下层不能有其他信号⾛线。
实际使⽤中,经常会使⽤电⼦开关在不同的控制器和不同的USB⼝之间切换信号,所以调试时必须明⽩,RK29的3个控制器是完全独⽴的,必须保证通过电⼦开关切换后的电路是正确的。
RK29⽚上USB相关信号如下图所⽰,下⾯以USB2.0 OTG控制器为例对各个信号⼀⼀解释:
1.1 USB
2.0 OTG控制器相关信号
USB 2.0控制器可以作为host或者device,芯⽚上与USB 2.0模块相关的信号如下图:
VBUS_DET:该信号⼀般为VBUS分压后到芯⽚的输⼊信号,⽤于USB DEVICE检测VBUS 电平,0:低电平约0V,1:⾼电平约3V。默认⽆连接时电平为低,连接⾄PC或充电器时电平为⾼。
USB_ID:该信号由USB OTG协议定义,输⼊信号,⽤于识别USB⼝所接设备的默认⾓⾊(host or device)。⼀般控制器默认⼯作于device,USB_ID电平为⾼(上拉),如果需使控制器进⼊host状态,则需外接mini-A⼝或micro-A⼝将USB_ID接地。RKELVIN:该信号外部默认接44.2欧电阻到地,在需要时可以调节该电阻阻值来调节USB信号质量。
OTG_DRVVBUS:该信号由USB控制器的host寄存器控制,硬件上通过该信号来控制host所
mogii
需5V VBUS输出。RK29中该信号与GPIO复⽤,也可直接通过GPIO来控制电平。棉花剥壳机
DP/DM:即Data+, Data-,USB的两根差分信号线。
HOST典型供电电路及信号连接如下图,实际使⽤可能⽐下图复杂:
1.2 USB
透明填充母料2.0&1.1 HOST控制器相关信号
USB 1.1 HOST控制器仅能作为host使⽤,仅有DP, DM两根信号线,⽆任何其他控制信号。RK29外围电路需要把USB1.1 HOST DP/DM通过15KΩ电阻下拉。
USB 2.0 HOST控制器信号中,VBUS和ID信号不⽤,其他信号⽤法与USB2.0 OTG相同。
局部镀锡
⼆ kernel模块配置说明
USB模块的配置位于kernel的
make menuconfig
[ ] Device Drivers
[ ] USB support -
必须选上USB support项后才能⽀持USB模块并进⾏进⼀步的配置。
USB support选项如下,后⾯详细说明每⼀项的具体配置。
2.1 USB host相关配置
需要⽀持USB host,⾸先需要选上< >Support for Host-side USB项,然后会有出现很多host相关的配置,我们应根据实际需求来配置。如产品不需⽀持host,应不选中该项。
常⽤USB设备有:
U盘/CDROM /USB硬盘(USB Mass Storage support )
3G modem (USB Serial Converter support -- >)
USB⿏标键盘(HID)
2.1.1 USB Mass Storage
U盘属于SCSI设备,所以在配置USB模块之前需要配置Device Drivers-- >SCSI device support。
U盘属于SCSI disk设备,另外有些U盘可能有多个盘符,需要注意选上相关选项,如下图
配置完SCSI device support后,可以在USB support中到如下选项,选上即可。
2.1.2 USB Serial Converter
USB 3G modem使⽤的是USB转串⼝,使⽤是需要选上如下选项
进⼊该项配置,选上如下选项:
2.1.3 USB ⿏标键盘等HID设备
USB键⿏的配置位于
[ ] Device Drivers
[ ] HID Devices -
聚烯烃弹性体选上后内核即可⽀持USB键盘和⿏标。
2.1.4其他USB设备
其他有可能⽤到的USB设备还有很多,如以太⽹卡,web camera,printer等,有可能需要vendor 定制的驱动,也有可能是标准的class驱动,如需⽀持,可直接在⽹络上搜索linux对该设备⽀持要做的⼯作,RK29平台并⽆特殊要求,可直接参考。
2.2 USB gadget配置
控制器作为device使⽤时,需要配置USB gadget:
进⼊选项后配置如下,默认⽀持MSC和ADB:
2.3 芯⽚USB控制器配置
三个控制器的默认配置如下:
其中host控制器选项需要完成2.1的配置后才能出现。
如果项⽬中没有使⽤USB1.1 host控制器或者USB2.0 host控制器,请在这去掉对相应控制器的⽀持。
USB2.0 OTG控制器可选为HOST ONLY MODE,DEVICE ONLY MODE或BOTH HOST AND SLA VE。
[*] ---usb2.0/1.1 host controller enable
该选项⽤于使能控制器作为host,默认是否enable,可利⽤sysfs接⼝对控制器进⾏开关。
[ ] connect to PC when vbus detect
该选项只有在USB2.0 OTG⼯作于DEVICE ONLY MODE才会出现,⽤于确定默认情况当控制器检测到VBUS时,设备是否主动进⾏连接。如果该项没有选上,控制器检测到VBUS后并不会主动连接PC,sysfs提供选项⽤于该选项的开关。
Controller default status (depends on USB_ID) --->
该选项只有在USB2.0 OTG控制器选为BOTH HOST AND SLA VE项是出现,⽤于选择系统开机后OTG控制器的默认⾓⾊,系统开机后可通过sysfs接⼝切换。选项如下。
Depends on USB_ID:
由硬件信号USB_ID来确定USB2.0 OTG控制器⾓⾊,该信号⼀般默认为上拉,即device;
HOST:
开机默认为host功能;
DEVICE:
开机默认为device功能。
三 sysfs接⼝
Linux kernel通过sysfs接⼝完成与android层的交互,某些节点只存在于USB2.0 OTG控制器⼯作在device的状态,某些节点只有⽀持BOTH HOST AND SLA VE模式才有。
3.1 MSC连接状态
控制器⼯作于device模式且⽀持mass storage时,mass storage会在系统初始化过程中建⽴节点⽤于连接状态查询。
only)
/sys/class/power_supply/usb/online (read
Online可能的值为: 0 没有USB连接;
1 设备已经连接到PC。
3.2 VBUS状态
控制器作为device功能时,⼀直通过VBUS_DET信号监控VBUS状态,VBUS如果为⾼,⼀般是设备通过USB线连接到PC。VBUS状态查询节点:
/sys/bus/platform/drivers/usb20_otg/vbus_status (read only)

本文发布于:2024-09-21 18:46:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/261684.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控制器   信号   配置   设备
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议