基于DWC2的USB驱动开发-0x07 DWC2 USB2.0 IP 配置参数

描述

本问转自公众号,欢迎关注

微信公众平台 (qq.com)

前言

本IP是一个灵活的可配置的IP,有很多参数可以配置以满足不同的需求,这里的配置参数值得IP的配置参数,不要和软件通过寄存器去配置的参数混淆,IP的配置参数固定之后就不能改了,就决定了IP所具有的能力。对于软件开发者来说也要了解其具体的配置,因为只有知道当前IP的配置,知道支持哪些功能,哪些是软件可以配置的哪些是硬件固定了无法配置的,等等这些,后面写驱动才心中有数。

配置相关寄存器

前面我们介绍了控制器的寄存器,其中有四个只读寄存器GHWCFG1,GHWCFG2,GHWCFG3,GHWCFG4用来显示IP和的相应的配置参数,从名字全局硬件配置寄存器也可以看出其作用,从这四个寄存器可以知道控制器的具体能力。

偏移0x44 名字GHWCFG1
位域 符号 描述
31:0 EpDir 两个bit表示一个端点的方向,低位表示低端点号,b[1:0]表示端点0的方向,其他类推b00: BIDIR (IN和 OUT)双向端点b01: IN端点b10: OUT端点b11: Reserved
偏移0x48 名字GHWCFG2
位域 符号 描述
31 OTG_ENABLE_IC_USB 0:不支持IC_USB全速串行收发接口1:支持OTG_FSPHY_INTERFACE == 1 &&OTG_ENABLE_IC_USB == 1时为1
30:26 TknQDepth 设备IN令牌序列队列深度 0~30
25:24 PTxQDepth 主机模式,周期请求队列深度00: 201: 410: 811:16
23:22 NPTxQDepth 非周期请求队列深度00: 201: 410: 811:保留
21 保留
20 MultiProcIntrpt 0:不支持多处理器中断1:支持
19 DynFifoSizing 0:不支持动态调整FIFO大小1:支持
18 PerioSupport 主机模式是否支持周期OUT通道0:不支持1:支持
17:14 NumHstChnl 主机支持的通道数0代表支持1个通道...15代表支持16个通道
13:10 NumDevEps 设备模式支持的端点数,不包括端点00代表支持0个端点...15代表支持15个端点
9:8 FSPhyType 全速PHY接口类型00:不支持全速接口01:独立的全速接口10:全速接口和UTMI+引脚共享11:全速接口和ULPI引脚共享
7:6 HSPhyType 高速PHY接口类型00:不支持高速PHY接口01: UTMI+10: ULPI11: UTMI+和 ULPI这种模式软件可以配置选择UTMI+还是ULPI
5 SingPnt 0:多点应用 (支持hub和split传输)1:单点应用 (不支持hub和 split传输)
4:3 OtgArch 00: Slave-Only模式01: External DMA10: Internal DMAOthers: Reserved
2:0 OtgMode 000:支持HNP和SRP的OTG (Host & Device)001:支持SRP的OTG (Host & Device)010:不支持HNP和SRP的(Host and Device)011: 支持SRP的Device100: Non-OTG Device101:支持SRP的Host110: Non-OTG Host其他: 保留
偏移0x4C 名字GHWCFG3
位域 符号 描述
31:16 DfifoDepth DFIFO深度 (DfifoDepth - EP_LOC_CNT)最小32,最大32768,单位是32位(4字节)注意DfifoDepth是总的DFIFO大小,还有一部分EP_LOC_CNT做端点状态寄存器用,所以真正用于数据传输的只有DfifoDepth - EP_LOC_CNT
15 LPMMode 0:不支持LPM1:支持
14 BCSupport 0:不支持电池充电器1:支持
13 HSICMode 1:支持HSIC接口,和UTMI PHY接口共享0:不支持HSIC接口
12 ADPSupport 0:不支持ADP1:支持
11 RstType 复位方式0:内核使用异步复位方式1:内核使用同步复位方式
10 OptFeature 0: 不移除用户ID寄存器,GPIO接口,SOF翻转和计数端口。1: 移除上述功能
9 VndctlSupt 0:不支持厂商控制接口1:支持
8 I2CIntSel 0:无IC接口1:有
7 OtgEn 0:不支持OTG1:支持
6:4 PktSizeWidth 包大小计数器的位宽,最大10位,可表示0~1023 1K000: 4 bits001: 5 bits010: 6 bits011: 7 bits100: 8 bits101: 9 bits110: 10 bitsOthers: Reserved
3:0 XferSizeWidth 传输大小计数器位宽,最大19位,可以表示0~524287 512K0000: 11 bits0001: 12 bits...1000: 19 bitsOthers: Reserved
偏移0x50 名字GHWCFG4
位域 符号 描述
31 DescDMA 0:Scatter/Gather DMA不可由软件动态配置使能1:可以由软件动态配置使能
30 DescDMAEnabled 0:不支持Scatter/Gather DMA1:支持
29:26 INEps 设备模式包括控制端点的IN端点数0: 1 IN端点1: 2 IN端点....15: 16 IN端点
25 DedFifoMode 是否支持设备模式IN端点使用独立的FIFO0:不支持1:支持
24 SessEndFltr 0:无session_end滤波1:有
23 BValidFltr 0:无b_valid滤波1:有
22 AValidFltr 0:无a_valid滤波1:有
21 VBusValidFltr 0:不使能VBUS Valid滤波1:使能
20 IddgFltr 0:不支持IDDIG滤波1:支持
19:16 NumCtlEps 设备模式除了控制端点0以外的控制端点数0-15
15:14 PhyDataWidth PHY接口的总线宽度00: 8 bits01: 16 bits10: 8/16 bits,软件配置其他:保留
13 EnhancedLPMSupt 是否支持增强的LPM,1使能基于FIFO状态的进入L1行为TX FIFO相关ISOC IN TX FIFO非空时也支持接受L1请求Non-Periodic TX FIFO非空时拒绝L1请求在L1状态时确保应用可以Flush TX FIFORX FIFO相关非周期和周期RX FIFO非空时接受L1请求接受L1请求,但延迟SLEEPM,直到RX SINK缓冲区为空。任何控制端点在传输时阻止进入L1,PHY时钟被门控关闭也可以Flush TxFIFO。
12 ACGSupt 是否支持,控制器在没有USB和AHB之间的数据流时支持动态时钟门控降低功耗。0:不支持1:支持
11 ipgisocSupt ISOC OUT内部包间隙最坏情况支持。根据UTMI规范,最坏场景,RX紧接着RX数据包即任意令牌包后紧接着ISOC OUT令牌时的场景,包间间隙(IPG)为32-bittimes。如果不是能这种场景会检测不到后面的令牌包。默认IPG是使能支持的。如果不支持该功能则取决于AHB 和 PHY 的频率。0:不支持1:支持
10 ServIntFlow 是否支持ISO In端点的基于服务间隔Service-Interval的调度
9 EnhancedLPMSupt1 增强的LPM支持是否支持基于FIFO状态的L1进入条件0:决绝Bulk/Interrupt TxFIFO非空时的L1请求1:接受
8 保留
7 ExtendedHibernation 0:不支持扩展休眠功能1:支持
6 Hibernation 0:不支持休眠功能1:支持
5 AhbFreq 最小AHB频率是否小于60MHz0:否1:是
4 PartialPwrDn 0:不支持分区掉电1:支持
3:0 NumDevPerioEps 设备模式支持的周期IN端点数

基本配置参数

Mode of Operation GHWCFG2寄存器的b[2:0]查看配置值OtgMode 支持OTG, HNP, 和 SRP的可以由软件配置不使用。不支持Non-HNP/SRP的OTG不可以动态切换角色,但是可以根据连接的是A还是B连接去决定是主机还是设备。如果要支持micro AB插座的嵌入式主机需要配置为0,1,5
Architecture GHWCFG2寄存器的b[4:3]查看配置值OtgArch
Point-to-Point ApplicationOnly? GHWCFG2的b5查看配置值SingPnt
LPM Mode of Operation GHWCFG3的b15查看配置值
Enable descriptor basedscatter/gather DMA GHWCFG4的b30查看配置值是否使能b31查看是否软件可动态 使能
Enable Dedicated TransmitFIFO for device IN Endpoints? GHWCFG4的b25查看配置值
Enable option for endpointspecific interrupt GHWCFG2的b20查看配置值

USB物理层接口参数

High-Speed PHY Interface(s) GHWCFG2的b[7:6]查看配置值
Data Width of the UTMI+Interface GHWCFG4的b[15:14]查看配置值
USB 1.1 Full-Speed SerialTransceiver Interface GHWCFG2的b[9:8]查看配置值
USB IC_USB TransceiverInterface GHWCFG2的b31查看配置值
Default (Power on) Interfaceselection: FS_USB/IC_USB GUSBCFG的b26初始值依赖该配置
HSIC Mode of Operation GHWCFG3的b13查看配置值
Enable I2C Interface? GHWCFG3的b8查看配置值
Enable ULPI Carkit? OTG_HSPHY_INTERFACE==2OTG_HSPHY_INTERFACE==3时使能支持ULPI接口读PHY寄存器
ADP Controller Support GHWCFG3的b12查看配置值
Battery Charger Support GHWCFG3的b14查看配置值
Enable PHY Vendor ControlInterface? GHWCFG3的b9查看配置值

设备端点配置参数

Number of Device ModeEndpoints in Addition toControl Endpoint 0 GHWCFG2的b[13:10]查看配置值
Number of Device ModePeriodic IN Endpoints GHWCFG4的b[3:0]查看配置值
Number of Device Mode activeIN Endpoints Including ControlEndpoint 0 GHWCFG4的b[29:26]
Number of Device ModeControl Endpoints in Additionto Endpoint 0 GHWCFG4的b[19:16]

主机端点配置参数

Number of Host ModeChannels GHWCFG2的b[17:14]
Is Periodic OUT ChannelSupport Needed in HostMode?

端点通道FIFO配置参数

Total Data FIFO RAM Depth(64 to 32768) GHWCFG3的b[31:16]
Enable Dynamic FIFO Sizing? GHWCFG2的b19
Largest Rx Data FIFO Depth(16 to 32768)
Largest Non-Periodic Host TxData FIFO Depth (16 to 32768)
Largest Non-Periodic Tx DataFIFO Depth (16 to 32768)
Largest Host Mode Periodic TxData FIFO Depth (16 to 32768)
Non-Periodic Request QueueDepth GHWCFG2的[23:22]
Host Mode Periodic RequestQueue Depth GHWCFG2的[25:24]
Device Mode IN TokenSequence Learning QueueDepth (0 to 30) GHWCFG2的b[30:26]

可添加的配置选项参数

Enable Service Interval BasedScheduling for ISOC INEndpoints GHWCFG4的b10
Width of Transfer SizeCounters GHWCFG3的[3:0]
Width of Packet Counters GHWCFG3的b[6:4]
Remove Optional Features? GHWCFG3的b10
Power-on Value of User IDRegister
Enable Power Optimization? GHWCFG4的b7 b6 b4
Is Minimum AHB OperatingFrequency less than 60 MHz? GHWCFG4的b5
Reset Style for Clocked alwaysBlocks in RTL? GHWCFG3的b11
Enable Filter on "iddig" signalfrom PHY? GHWCFG4的b20
Enable Filter on "vbus_valid"signal from PHY? GHWCFG4的b21
Enable Filter on "a_valid"signal from PHY? GHWCFG4的b22
Enable Filter on "b_valid"signal from PHY? GHWCFG4的b23
Enable Filter on "session_end"signal from PHY? GHWCFG4的b24
Enable Exceptional ControlTransfer Flow Support?
Enable Dynamic PowerReduction?
Enable UPF Power Clamps?
Enable UPF Power SwitchPolarity?

端点方向参数

Direction of Endpoint n(for n = 1; n <=OTG_NUM_EPS) GHWCFG1

设备周期FIFO深度参数

Largest Device Mode PeriodicTx Data FIFO n Depth (4 to768)(for n = 1; n <=OTG_NUM_PERIO_EPS)

设备IN端点FIFO深度参数

Largest Device Mode Tx DataFIFO n Depth (16 to 32768)(for n = 0; n <=OTG_NUM_IN_EPS-1)

UTMI-To-UTMI桥组件参数

Enable UTMI-To-UTMI BridgeComponent? OTG_HSPHY_INTERFACE == 1 && OTG_HSPHY_DWIDTH != 2&& OTG_MODE > 2

总结

以上列举了所有相关配置参数,大部分参数都可以通过4个全局硬件配置寄存器中查看。通过查看这些寄存器可以知道控制器当前的配置,知道具备哪些能力,以便后续驱动编写。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分