0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

嵌入式USB开发 2023-05-17 09:49 次阅读

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

微信公众平台 (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个全局硬件配置寄存器中查看。通过查看这些寄存器可以知道控制器当前的配置,知道具备哪些能力,以便后续驱动编写。

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

    关注

    31

    文章

    5343

    浏览量

    120341
  • usb
    usb
    +关注

    关注

    60

    文章

    7945

    浏览量

    264612
  • IP
    IP
    +关注

    关注

    5

    文章

    1708

    浏览量

    149541
  • USB驱动
    +关注

    关注

    1

    文章

    136

    浏览量

    20197
  • DWC2
    +关注

    关注

    0

    文章

    35

    浏览量

    128
收藏 人收藏

    评论

    相关推荐

    基于DWC2USB驱动开发-0x01开篇介绍与新思DWC2 USB2.0控制器简介

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-0x01开篇介绍与新思DWC2
    的头像 发表于 05-08 18:10 4609次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>0x</b>01开篇介绍与新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b>控制器简介

    基于DWC2USB驱动开发-0x02 DWC2 USB2.0 IP功能特征介绍

    DWC2即新思(Synopsys )的DesignWare® Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。从linux的内核源码
    的头像 发表于 05-09 10:09 9405次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>0x</b>02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> <b class='flag-5'>IP</b>功能特征介绍

    基于DWC2USB驱动开发-0x04 DWC2 USB2.0 IP 架构介绍

    这一篇先对IP的架构进行一些介绍,内容比较多所以重点关注和软件相关的内容。后续编程具体涉及时,可能再返回过来详读某一个部分。
    的头像 发表于 05-12 12:50 4244次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>0x</b>04 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> <b class='flag-5'>IP</b> 架构介绍

    基于DWC2USB驱动开发-IAD描述符详解

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-IAD描述符详解 (qq.com) 一.  前言 IAD描述符用于一个设备功能关联多个接口,可以用于实现组合设备。 二.参考文档
    的头像 发表于 06-27 08:45 14.5w次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-IAD描述符详解

    基于DWC2USB驱动开发-USB复位详解

    本文转自公众号欢迎关注 基于DWC2USB驱动开发-USB复位详解 (qq.com) 一.前言          上一篇我们详细介绍了
    的头像 发表于 07-07 11:18 6.6w次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>USB</b>复位详解

    基于DWC2USB驱动开发-USB连接详解

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-USB连接详解 (qq.com) 一.前言   之前一直在阅读手册,规格书,练习招式
    的头像 发表于 07-07 08:46 3709次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>USB</b>连接详解

    基于DWC2USB驱动开发-高速设备枚举为全速设备问题案例分析

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-高速设备枚举为全速设备问题案例分析 (qq.com) 一.前言   本文分享一个高速设备被枚举为全速的问题。     高速设备速
    的头像 发表于 07-10 17:12 1419次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-高速设备枚举为全速设备问题案例分析

    基于DWC2USB驱动开发-设备类驱动框架

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-设备类驱动框架 (qq.com) 一.前言 从软件顶层,从数据流的角度来看
    的头像 发表于 07-16 15:56 1321次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-设备类<b class='flag-5'>驱动</b>框架

    基于DWC2USB驱动开发-发送相关的寄存器DMA寄存器详解

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-发送相关的寄存器DMA寄存器详解 (qq.com) 前言 如下寄存器DIEPxxx,对应IN端点,和发送数据相关,这一篇先介绍和
    的头像 发表于 07-16 16:42 1655次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-发送相关的寄存器DMA寄存器详解

    基于DWC2USB驱动开发-USB包详解

    不管什么通讯协议,比如UART,SPI,USB等等,不管是并口还是串口,不管是同步还是异步,我们从抽象的角度去看,其本质都是一样的。都是先定义物理信号,物理信号可能是差分,单端,电流驱动电压驱动等等
    的头像 发表于 07-23 17:11 2599次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>USB</b>包详解

    基于DWC2USB驱动开发-数据不能发送问题分析案例

    本文转自公众号欢迎关注 基于DWC2USB驱动开发-数据不能发送问题分析案例 (qq.com)   一.前言        对于驱动
    的头像 发表于 08-08 09:43 2309次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-数据不能发送问题分析案例

    RK3399平台上USB控制器和PHY的连接方式和配置说明

    。向外接到USB2.0 PHY。EHCI和OHCI Rockchip采用Linux 内核Generic驱动,一般开发 时只需要对DT作相应配置,即可正常工作。Driver代码路径:dr
    发表于 05-12 17:46

    如何对基于hal库的DWC2 USB IP进行调试呢

    背景之前适配 DWC2 USB IP 的时候,主要是基于 st 的 hal 库来走的,当时我就对他们的 hal 库代码不满,只是无奈,迫于时间就没重构,果不其然,usb bug 一堆,
    发表于 06-14 15:23

    无法让USB主机正常工作是我做错了什么吗?

    bus registered, assigned bus number 3[ 2.986093] dwc2 49000000.usb-otg: irq 51, io mem 0x
    发表于 12-02 06:06

    基于DWC2USB驱动开发-抽丝剥茧再论切换到状态阶段标志DOEPINTn.StsPhseRcvd

    本文转自公众号系列文章,欢迎关注 基于DWC2USB驱动开发-USB包详解 (qq.com) 一.前言 前面我们对SETUP完成标志DOE
    的头像 发表于 07-24 18:04 1595次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-抽丝剥茧再论切换到状态阶段标志DOEPINTn.StsPhseRcvd