前言
本IP是一個(gè)靈活的可配置的IP,有很多參數(shù)可以配置以滿足不同的需求,這里的配置參數(shù)值得IP的配置參數(shù),不要和軟件通過寄存器去配置的參數(shù)混淆,IP的配置參數(shù)固定之后就不能改了,就決定了IP所具有的能力。對于軟件開發(fā)者來說也要了解其具體的配置,因?yàn)橹挥兄喇?dāng)前IP的配置,知道支持哪些功能,哪些是軟件可以配置的哪些是硬件固定了無法配置的,等等這些,后面寫驅(qū)動才心中有數(shù)。
配置相關(guān)寄存器
前面我們介紹了控制器的寄存器,其中有四個(gè)只讀寄存器GHWCFG1,GHWCFG2,GHWCFG3,GHWCFG4用來顯示IP和的相應(yīng)的配置參數(shù),從名字全局硬件配置寄存器也可以看出其作用,從這四個(gè)寄存器可以知道控制器的具體能力。
偏移0x44 名字GHWCFG1 | ||
---|---|---|
位域 | 符號 | 描述 |
31:0 | EpDir | 兩個(gè)bit表示一個(gè)端點(diǎn)的方向,低位表示低端點(diǎn)號,b[1:0]表示端點(diǎn)0的方向,其他類推b00: BIDIR (IN和 OUT)雙向端點(diǎn)b01: IN端點(diǎn)b10: OUT端點(diǎn)b11: Reserved |
偏移0x48 名字GHWCFG2 | ||
---|---|---|
位域 | 符號 | 描述 |
31 | OTG_ENABLE_IC_USB | 0:不支持IC_USB全速串行收發(fā)接口1:支持OTG_FSPHY_INTERFACE == 1 &&OTG_ENABLE_IC_USB == 1時(shí)為1 |
30:26 | TknQDepth | 設(shè)備IN令牌序列隊(duì)列深度 0~30 |
25:24 | PTxQDepth | 主機(jī)模式,周期請求隊(duì)列深度00: 201: 410: 811:16 |
23:22 | NPTxQDepth | 非周期請求隊(duì)列深度00: 201: 410: 811:保留 |
21 | 保留 | |
20 | MultiProcIntrpt | 0:不支持多處理器中斷1:支持 |
19 | DynFifoSizing | 0:不支持動態(tài)調(diào)整FIFO大小1:支持 |
18 | PerioSupport | 主機(jī)模式是否支持周期OUT通道0:不支持1:支持 |
17:14 | NumHstChnl | 主機(jī)支持的通道數(shù)0代表支持1個(gè)通道...15代表支持16個(gè)通道 |
13:10 | NumDevEps | 設(shè)備模式支持的端點(diǎn)數(shù),不包括端點(diǎn)00代表支持0個(gè)端點(diǎn)...15代表支持15個(gè)端點(diǎn) |
9:8 | FSPhyType | 全速PHY接口類型00:不支持全速接口01:獨(dú)立的全速接口10:全速接口和UTMI+引腳共享11:全速接口和ULPI引腳共享 |
7:6 | HSPhyType | 高速PHY接口類型00:不支持高速PHY接口01: UTMI+10: ULPI11: UTMI+和 ULPI這種模式軟件可以配置選擇UTMI+還是ULPI |
5 | SingPnt | 0:多點(diǎn)應(yīng)用 (支持hub和split傳輸)1:單點(diǎn)應(yīng)用 (不支持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字節(jié))注意DfifoDepth是總的DFIFO大小,還有一部分EP_LOC_CNT做端點(diǎn)狀態(tài)寄存器用,所以真正用于數(shù)據(jù)傳輸?shù)闹挥蠨fifoDepth - 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 | 復(fù)位方式0:內(nèi)核使用異步復(fù)位方式1:內(nèi)核使用同步復(fù)位方式 |
10 | OptFeature | 0: 不移除用戶ID寄存器,GPIO接口,SOF翻轉(zhuǎn)和計(jì)數(shù)端口。1: 移除上述功能 |
9 | VndctlSupt | 0:不支持廠商控制接口1:支持 |
8 | I2CIntSel | 0:無IC接口1:有 |
7 | OtgEn | 0:不支持OTG1:支持 |
6:4 | PktSizeWidth | 包大小計(jì)數(shù)器的位寬,最大10位,可表示0~1023 1K000: 4 bits001: 5 bits010: 6 bits011: 7 bits100: 8 bits101: 9 bits110: 10 bitsOthers: Reserved |
3:0 | XferSizeWidth | 傳輸大小計(jì)數(shù)器位寬,最大19位,可以表示0~524287 512K0000: 11 bits0001: 12 bits...1000: 19 bitsOthers: Reserved |
偏移0x50 名字GHWCFG4 | ||
---|---|---|
位域 | 符號 | 描述 |
31 | DescDMA | 0:Scatter/Gather DMA不可由軟件動態(tài)配置使能1:可以由軟件動態(tài)配置使能 |
30 | DescDMAEnabled | 0:不支持Scatter/Gather DMA1:支持 |
29:26 | INEps | 設(shè)備模式包括控制端點(diǎn)的IN端點(diǎn)數(shù)0: 1 IN端點(diǎn)1: 2 IN端點(diǎn)....15: 16 IN端點(diǎn) |
25 | DedFifoMode | 是否支持設(shè)備模式IN端點(diǎn)使用獨(dú)立的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 | 設(shè)備模式除了控制端點(diǎn)0以外的控制端點(diǎn)數(shù)0-15 |
15:14 | PhyDataWidth | PHY接口的總線寬度00: 8 bits01: 16 bits10: 8/16 bits,軟件配置其他:保留 |
13 | EnhancedLPMSupt | 是否支持增強(qiáng)的LPM,1使能基于FIFO狀態(tài)的進(jìn)入L1行為TX FIFO相關(guān)ISOC IN TX FIFO非空時(shí)也支持接受L1請求Non-Periodic TX FIFO非空時(shí)拒絕L1請求在L1狀態(tài)時(shí)確保應(yīng)用可以Flush TX FIFORX FIFO相關(guān)非周期和周期RX FIFO非空時(shí)接受L1請求接受L1請求,但延遲SLEEPM,直到RX SINK緩沖區(qū)為空。任何控制端點(diǎn)在傳輸時(shí)阻止進(jìn)入L1,PHY時(shí)鐘被門控關(guān)閉也可以Flush TxFIFO。 |
12 | ACGSupt | 是否支持,控制器在沒有USB和AHB之間的數(shù)據(jù)流時(shí)支持動態(tài)時(shí)鐘門控降低功耗。0:不支持1:支持 |
11 | ipgisocSupt | ISOC OUT內(nèi)部包間隙最壞情況支持。根據(jù)UTMI規(guī)范,最壞場景,RX緊接著RX數(shù)據(jù)包即任意令牌包后緊接著ISOC OUT令牌時(shí)的場景,包間間隙(IPG)為32-bittimes。如果不是能這種場景會檢測不到后面的令牌包。默認(rèn)IPG是使能支持的。如果不支持該功能則取決于AHB 和 PHY 的頻率。0:不支持1:支持 |
10 | ServIntFlow | 是否支持ISO In端點(diǎn)的基于服務(wù)間隔Service-Interval的調(diào)度 |
9 | EnhancedLPMSupt1 | 增強(qiáng)的LPM支持是否支持基于FIFO狀態(tài)的L1進(jìn)入條件0:決絕Bulk/Interrupt TxFIFO非空時(shí)的L1請求1:接受 |
8 | 保留 | |
7 | ExtendedHibernation | 0:不支持?jǐn)U展休眠功能1:支持 |
6 | Hibernation | 0:不支持休眠功能1:支持 |
5 | AhbFreq | 最小AHB頻率是否小于60MHz0:否1:是 |
4 | PartialPwrDn | 0:不支持分區(qū)掉電1:支持 |
3:0 | NumDevPerioEps | 設(shè)備模式支持的周期IN端點(diǎn)數(shù) |
基本配置參數(shù)
Mode of Operation | GHWCFG2寄存器的b[2:0]查看配置值OtgMode | 支持OTG, HNP, 和 SRP的可以由軟件配置不使用。不支持Non-HNP/SRP的OTG不可以動態(tài)切換角色,但是可以根據(jù)連接的是A還是B連接去決定是主機(jī)還是設(shè)備。如果要支持micro AB插座的嵌入式主機(jī)需要配置為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查看是否軟件可動態(tài) 使能 | |
Enable Dedicated TransmitFIFO for device IN Endpoints? | GHWCFG4的b25查看配置值 | |
Enable option for endpointspecific interrupt | GHWCFG2的b20查看配置值 |
USB物理層接口參數(shù)
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==2 或OTG_HSPHY_INTERFACE==3 時(shí)使能支持ULPI接口讀PHY寄存器 |
|
ADP Controller Support | GHWCFG3的b12查看配置值 | |
Battery Charger Support | GHWCFG3的b14查看配置值 | |
Enable PHY Vendor ControlInterface? | GHWCFG3的b9查看配置值 | |
設(shè)備端點(diǎn)配置參數(shù)
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] | |
主機(jī)端點(diǎn)配置參數(shù)
Number of Host ModeChannels | GHWCFG2的b[17:14] | |
---|---|---|
Is Periodic OUT ChannelSupport Needed in HostMode? | ||
端點(diǎn)通道FIFO配置參數(shù)
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] |
可添加的配置選項(xiàng)參數(shù)
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? |
端點(diǎn)方向參數(shù)
Direction of Endpoint n(for n = 1; n <=OTG_NUM_EPS) | GHWCFG1 | |
---|---|---|
設(shè)備周期FIFO深度參數(shù)
Largest Device Mode PeriodicTx Data FIFO n Depth (4 to768)(for n = 1; n <=OTG_NUM_PERIO_EPS) | ||
---|---|---|
設(shè)備IN端點(diǎn)FIFO深度參數(shù)
Largest Device Mode Tx DataFIFO n Depth (16 to 32768)(for n = 0; n <=OTG_NUM_IN_EPS-1) | ||
---|---|---|
UTMI-To-UTMI橋組件參數(shù)
Enable UTMI-To-UTMI BridgeComponent? | OTG_HSPHY_INTERFACE == 1 && OTG_HSPHY_DWIDTH != 2&& OTG_MODE > 2 |
總結(jié)
以上列舉了所有相關(guān)配置參數(shù),大部分參數(shù)都可以通過4個(gè)全局硬件配置寄存器中查看。通過查看這些寄存器可以知道控制器當(dāng)前的配置,知道具備哪些能力,以便后續(xù)驅(qū)動編寫。
-
寄存器
+關(guān)注
關(guān)注
31文章
5295瀏覽量
119823 -
usb
+關(guān)注
關(guān)注
60文章
7878瀏覽量
263724 -
IP
+關(guān)注
關(guān)注
5文章
1613瀏覽量
149252 -
USB驅(qū)動
+關(guān)注
關(guān)注
1文章
136瀏覽量
20158 -
DWC2
+關(guān)注
關(guān)注
0文章
35瀏覽量
118
發(fā)布評論請先 登錄
相關(guān)推薦
評論