0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DWC2的USB驅(qū)動開發(fā)-0x04 DWC2 USB2.0 IP 架構(gòu)介紹

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-05-12 12:50 ? 次閱讀

| 嵌入式USB開發(fā) |

| ------------------------------------------------------------------------------------------ |本文轉(zhuǎn)自公眾號,歡迎關(guān)注

基于DWC2的USB驅(qū)動開發(fā)-0x04 DWC2 USB2.0 IP 架構(gòu)介紹 (qq.com)

話說上傳圖片限制的數(shù)量也太小了,后面還有幾張圖片傳不上去沒辦法只能空著了。

前言

這一篇先對IP的架構(gòu)進行一些介紹,內(nèi)容比較多所以重點關(guān)注和軟件相關(guān)的內(nèi)容。后續(xù)編程具體涉及時,可能再返回過來詳讀某一個部分。

系統(tǒng)級架構(gòu)

IP可以配置為Slave-Only模式,Internal DMA模式,External模式。如果配置為DMA模式則也支持Slave模式可以軟件禁用DMA,而配置為Slave-Only模式則不支持DMA模式。只能在初始化時要么選擇DMA要么選擇Slave模式,不能動態(tài)修改。

Slave-Only模式

該模式可以減少IP的面積,此時需要CPU去執(zhí)行memory到DWC-otg之間的數(shù)據(jù)搬運,占用CPU的帶寬效率比較低。

此時CPU是AHB的主設(shè)備,CPU負責搬運數(shù)據(jù)。

image.png

Internal DMA模式

使用DWC-otg內(nèi)部的DMA,由其進行memory到DWC-otg之間的數(shù)據(jù)搬運,不占用CPU的帶寬,CPU只需要負責完成中斷和錯誤等處理。

此時內(nèi)部DMA是AHB的主設(shè)備,負責搬運數(shù)據(jù)。

該模式又分為

Buffer DMA和Scatter/Gather DMA模式兩種。

前者一次只能處理一個緩沖區(qū),而后者一次處理一個鏈表的緩沖區(qū)效率更高。

image.png

注意使能了內(nèi)部DMA模式還是可以使用Slave模式的,所以上圖由AHB Slave和AHB Master兩個接口。而Slave-Only的配置只有AHB Slave接口。

External DMA Controller 模式

類似于內(nèi)部DMA模式,只是使用的外部的DMA,此時DWC_otg和AHB之間只有AHB Slave接口。

如下圖使用的是DW_ahb_dmac的DMA,和DWC_otg之間有一個Gasket中間接口轉(zhuǎn)換。

DW_ahb_dmac也可以換為其他的DMA。

同樣使能外部DMA模式還是可以使用Slave模式的。

image.png

PMU模塊

實現(xiàn)以下功能

  • 休眠Hibernation:suspend期間完全關(guān)閉DWC_otg

支持以下配置:OTG 模式, OTG 和 Non-OTG的主機設(shè)備模式。

UTMI+, ULPI, HSIC, IC_USB 和FS 專用接口

內(nèi)部Buffer DMA

內(nèi)部Descriptor Based DMA

External DMA

External DMA

SPRAM控制器必須處于同一電源域。

image.png

層次結(jié)構(gòu)

框圖如下

image.png

功能框圖

image.png

主機架構(gòu)

主機的非周期OUT傳輸使用一個發(fā)送FIFO

所有的周期OUT傳輸使用另一個發(fā)送FIFO

這些FIFO用于緩存USB的數(shù)據(jù)包的payload。

主機通過請求隊列(一個用于周期性隊列,一個用于非周期性隊列)傳輸USB事務(wù)。

請求隊列中的每個條目都保存in或OUT通道號以及在USB上執(zhí)行事務(wù)的其他信息。

將請求寫入隊列的順序決定了USB上的事務(wù)順序。

主機首先處理周期性請求隊列,然后在每個(微)幀的開頭處理非周期性請求排隊。

主機的所有周期和非周期接收到只使用同一個FIFO,用于緩存接收的USB數(shù)據(jù)包的payload,接收到的每個數(shù)據(jù)包的狀態(tài)也進入FIFO,狀態(tài)條目保存IN信道號以及其他信息,例如接收的字節(jié)計數(shù)和有效性狀態(tài),以在AHB上執(zhí)行事務(wù)。

設(shè)備架構(gòu)

發(fā)送支持共享緩沖區(qū)和獨立緩沖區(qū)兩種方式

由IP配置參數(shù)OTG_EN_DED_TX_FIFO配置

Shared Transmit FIFO

配置OTG_EN_DED_TX_FIFO=0為該模式

該方式減少了IP的門數(shù),適用于同一時間只有一個非周期IN端點工作的場景,因為非周期端點只有一個緩沖區(qū)。需要軟件去管理當前緩沖區(qū)給哪個端點使用。并且一旦出現(xiàn)錯誤軟件需要進行處理重新使能端點,這一點需要注意。

注意的是這里是非周期端點公用一個發(fā)送緩沖區(qū),對于非周期端點需要管理當前給哪一個端點使用。對于周期端點還是每一個周期端點獨享一個發(fā)送緩沖區(qū)的。

FIFO由DMA或者由CPU寫入數(shù)據(jù)。在收到IN令牌后硬件自動從FIFO中搬運數(shù)據(jù)到USB總線中去。

設(shè)備模式周期FIFO(FIFO-1),和主機模式周期FIFO (PTxF 1)共用。根據(jù)實際周期IN個數(shù)后面使用FIFOs 2 到 n。

Dedicated Transmit FIFO

配置OTG_EN_DED_TX_FIFO = 1

不需要處理FIFO的錯誤。

FIFOs 2 到 n給所有IN端點使用,不管是周期還是非周期端點每個都獨立使用一個,和Shared模式只有周期端點才獨立擁有FIFO不一樣。

當選擇DMA模式時,控制器還支持發(fā)送和接收方向上的閾值設(shè)置,此時FIFO可以設(shè)置為小于一個USB包的大小。

閾值設(shè)置:

支持同步和非同步發(fā)送閾值分別使能;

支持AHB 和MAC傳輸設(shè)置兩種閾值值。

控制器自動管理溢出,發(fā)送下溢時,即控制器想要從FIFO中取數(shù)據(jù)發(fā)送時發(fā)現(xiàn)沒有數(shù)據(jù)可取產(chǎn)生下溢出underrun,此時會反轉(zhuǎn)CRC值使得其變?yōu)殄e誤數(shù)據(jù)包。

而在接收上溢時overflow,接接收到USB數(shù)據(jù)往FIFO里寫時發(fā)現(xiàn)FIFO滿了,此時自動產(chǎn)生NAK,并且指針繞回。所以最好設(shè)置FIFO是兩倍閾值大小,進行ping-pang。

Single Receive FIFO

以上介紹的是發(fā)送FIFO,對于接收FIFO只有一個。即所有OUT端點都是使用一個FIFO。

接收FIFO保存接收數(shù)據(jù)包的狀態(tài),例如字節(jié)計數(shù)、數(shù)據(jù)PID和接收數(shù)據(jù)的有效性。

DMA或CPU在接收數(shù)據(jù)時從接收FIFO中讀取數(shù)據(jù)。

DWC_otg_core

使能 Dynamic FIFO Sizing時可以動態(tài)修改FIFO的大小。

image.png

AHB總線接口單元BIU

即AHB總線接口單元

主機模式

image.png

設(shè)備模式

image.png

分為AHB主和AHB從接口。

AHB從總線接口單元 (BIUS)

AHB從接口單元將AHB cycles轉(zhuǎn)換為CSR寫入/讀取、數(shù)據(jù)FIFO讀取/寫入和DFIFO push/pop信號。DFIFO讀/寫訪問僅用于測試目的。

完全兼容AMBA 2.0-Compliant AHB Slave

支持INCR4, INCR8, INCR16, INCR 和 SINGLE

支持忙和提前終止

CSR和DFIFO讀取/寫入必須始終為32位;8位和16位寫訪問將未知值寫入DFIFO。

僅生成OK響應(yīng)

不生成SPLIT、RETRY或ERROR響應(yīng)

站在CPU軟件角度,作為AHB主,可以看到如下地址空間

CSR寄存器部分

DFIFO部分,Slave模式CPU直接訪問,DMA模式由DMA復(fù)制和系統(tǒng)memory之間搬運數(shù)據(jù)。

還有最后一部分用于調(diào)試的直接訪問DFIFO地址空間

image.png

注意在SPRAM中還會存儲一些寄存器信息

Scatter/Gather DMA模式每個端點需要占用4x35位的空間(SRAM中WORD單位是35位的,因為要存其他信息),

DMA 和 Slave模式,每個端點占用1x35位空間。

以上每個4k空間對應(yīng)一個端點的FIFO數(shù)據(jù)。

讀這些4k空間實際就是讀RXFIFO

寫設(shè)備的非周期IN端點和主機的非周期OUT通道對應(yīng)TxFIFO

主機模式寫任意周期OUT通道也是寫公用的TxFIFO

在設(shè)備模式訪問周期IN端點或者Dedicated FIFO模式的所有IN端點映射到對應(yīng)的周期 (Dedicated FIFO的周期或非周期 ) Tx FIFO。設(shè)備端點控制寄存器的位30:27將端點映射到特定周期FIFO。

Shared FIFO模式IN INTERRUPT可以映射到Non-periodic Tx FIFO或者單獨的Periodic Tx FIFO。

SRAM映射

image.png

image.png

image.png

AHB主總線接口單元 (BIUM)

即控制器deDMA作為AHB主,負責控制器內(nèi)部RAM和系統(tǒng)memory之間搬運數(shù)據(jù)。

完全兼容AMBA 2.0-compliant AHB Master

支持burst類型:SINGLE, INCR, INC4, INC8,和 INC8

選擇INC4, INC8, 或 INC16 時可能使用SINGLE 和 INCR

剩余長度不足burst長度,SPLIT后的數(shù)據(jù)傳輸,RETRY后的數(shù)據(jù)傳輸時使用INCR

處理AHB拆分、RETRY、ERROR條件和提前終止

應(yīng)用程序需要時可插入BUSY cycle

處理AHB 1KB邊界

AHB傳輸數(shù)據(jù)地址總線都是32位對齊,控制器可以傳輸2字節(jié)和1字節(jié)。

控制和狀態(tài)寄存器CSR

軟件的角度需要注意

寄存器PCGCCTL和GINTSTS的b[31:29]不位于AHB時鐘域,所以 Power Down模式這些寄存器還是有效的。

主機和從機共享寄存器地址節(jié)省空間,但是如果入籍模式訪問設(shè)備寄存器或者反之則會產(chǎn)生GINTSTS.ModeMis中斷。

應(yīng)用接口單元AIU

包括AHB主,AHB哦那個 包FIFO控制,CSR

包括DMA調(diào)度DSCH等功能

包FIFO控制器PFC

實現(xiàn)USB數(shù)據(jù)包的管理,以及包到內(nèi)部SRAM的傳輸?shù)取?/p>

需要注意下在SPRAM的最后,有一個EPINFO_CTL用于管理端點的信息。

MAC

該模塊處理USB傳輸,設(shè)別,主機,OTG的協(xié)議才是真正的核心部分。

PHY接口單元PIU

支持不同的PHY接口

喚醒和功耗控制WPC

用于Suspend喚醒管理等

鏈表處理器

實現(xiàn)Descriptor-Based Scatter/Gather DMA的處理

電源管理單元架構(gòu)

DWC_otg_pmu模塊支持休眠,

包括

  1. PMU Slave,支持CPU通過AHB控制PMU的邏輯,即作為AHB的從接口。即訪問寄存器GPWRDN。
  2. PMU Logic模塊,實現(xiàn)不同PHY類型的喚醒邏輯。

UTMI+ 和HSIC 接口

IC_USB 和 FS專用接口

ULPI接口

控制器休眠時驅(qū)動PHY接口信號,

為DWC_otg_pmu_ifmux模塊解碼lineestate

  1. PMU IfMux 模塊 該模塊實現(xiàn)多路line_state復(fù)用,檢測line_state改變,多路復(fù)用不同接口的狀態(tài),檢測狀態(tài)的改變,OTG Revision 2.0 和 OTG Revision 1.3 SRP的檢測。
  2. PMU Sync 模塊 用于同步DWC_otg_pmu_ahb_slv和PMU接口邏輯的時鐘域信號。
  3. ADP模塊 支持ADP:Attach Detection Protocol探測和活動感知,需要IP配置OTG_ADP_SUPPORT=1

對于軟件來說其細節(jié)可以稍微看一下即可。

需要注意有幾個寄存器是位于pmu域的:

GPWRDN

系統(tǒng)時鐘和復(fù)位

DWC_otg有以下輸入時鐘

Hclk:AHB域的時鐘。

Pmu_hclk:PMU域的時鐘,休眠和/或ADP 時使用。

utmi_clk:選擇UTMI PHY時使用。

ulpi_clk:選擇ULPI PHY時使用。ULPI使用DDR模式時 負邊沿也使用。

utmifs_clk48: OTG_FSPHY_INTERFACE != 0時才有。

ref_clk:OTG_SERV_INT_ENH使能時才有。

DWC_otg_clkrst模塊還會產(chǎn)生以下輸出時鐘

phy_clk: 受門控,從ULPI, UTMI+, USB 1.1 FS 時鐘, USB 1.1FS 時鐘/8 中選擇。

wpc_clk:不受門控,OTG_EN_PWROPT不為0時才有。從ULPI, UTMI+, USB 1.1 FS 時鐘中選擇。

hclk_gated: OTG_EN_PWROPT不為0才有,hclk門控后的輸出,以優(yōu)化功耗。

utmifs_clk6:ULPI, UTMI+, 或 USB 1.1 FS 時鐘/8,USB 1.1 FS Serial Transceiver 接口使能才有。

系統(tǒng)時鐘速度配置如下

系統(tǒng)時鐘對最小包間間隙和設(shè)備支持的級聯(lián)集線器數(shù)量的影響

當DWC_otg控制器充當設(shè)備時,根據(jù)UTMI規(guī)范,對于接收后緊接著的接收,有最壞情況下的響應(yīng)時間。這種最壞情況下的響應(yīng)時間取決于AHB時鐘頻率。AHB時鐘快處理的快,這個時間就小。

控制器寄存器在AHB域中,并且在更新這些寄存器值之前,控制器不接受另一個令牌。

當AHB時鐘與PHY時鐘相同時,此最壞情況值為七個PHY時鐘。當AHB時鐘較快時,該值較小。

以下場景可能產(chǎn)生接收后緊接著接收的情況:

  • 來自主機的任何響應(yīng)令牌(ACK/NAK/NYET/STALL),后跟一個令牌。
  • 作為一種特殊情況,ISOC OUT數(shù)據(jù)包,后面緊跟著下一個令牌。

系統(tǒng)級影響

在系統(tǒng)級別,上述這種限制可能會降低設(shè)備控制器的性能,因為當令牌太靠近前面的ISOC OUT令牌的末尾時,控制器會丟棄或向主機發(fā)送NAK。

對于批量、中斷和控制事務(wù),系統(tǒng)會隨著主機重試令牌而恢復(fù),事務(wù)最終會完成。

而對于等時ISO事務(wù),因為沒有重發(fā)機制,主機進行到為間隔bInterval安排的下一個事務(wù)。

在以下情況下會出現(xiàn)顯著的性能下降:

該設(shè)備連接到一個主機,該主機能夠在88-96位時間內(nèi)一致地發(fā)送令牌,也就是說,從前面的ISOC OUT令牌結(jié)束算起,有六到七個PHY時鐘

該設(shè)備通過多層集線器連接到主機,使得ISOC OUT令牌和后續(xù)令牌之間的數(shù)據(jù)包間間隙縮小到小于七個PHY時鐘

但是,在這兩種情況下,系統(tǒng)都不會停止響應(yīng)或進入不可恢復(fù)狀態(tài),只會影響性能。

此時控制器的行為

以下是ISOC OUT Token緊接著下一個Token時的控制器信號

(缺圖)

  1. 在PHY時鐘域 (PCLK) 處理ISOC OUT token。
  2. 更新AHB時鐘(HCLK)域中的相關(guān)寄存器。
  3. 在處理UTMI接口上接收的下一個令牌之前,等待從AHB時鐘域到PHY時鐘域的完成握手。
  • ti_trans_done信號是在PHY時鐘域中生成的用于更新AHB時鐘域寄存器的觸發(fā)信號??刂破鞯却齺碜訟HB時鐘域的握手,以便此寄存器更新接受下一個令牌
  • sh2pt_reg_vld信號是來自AHB時鐘域的握手信號,其指示寄存器更新在AHB時鐘域中完成。
  • txrx_state信號在將接收到的數(shù)據(jù)推送到RxFIFO時處于RCVD_DATA狀態(tài),在計算CRC時處于CHKCRC16狀態(tài),以及在推送包的接收狀態(tài)時處于DATA_to_STS狀態(tài)。
  • 在解碼接收到的令牌時,tkn_state信號處于tkn_DECODE狀態(tài)

M5-M3:RX開始延遲,DP/DM線上SYNC域的第一位與RXACTIVE有效之間的時間。

M2-M1:RX結(jié)束延遲,EOP的最后一位和RXACTIVE無效之間的時間

M3-M1:在DP/DM線路上測量的RX到RX數(shù)據(jù)包間延遲

M4-M2:

對于16位UTMI模式:從rx_active無效到CRC計算的一個PHY時鐘周期

對于8位UTMI模式:從rx_active無效到CRC計算的三個PHY時鐘周期

從RXACTIVE無效到txrx_state之間的時間為CHK_CRC16

M5-M4:接收數(shù)據(jù)包狀態(tài)推送的三個PHY時鐘周期,DATA_TO_STS狀態(tài)下txrx_state信號所用的時間.

M6-M5:寄存器更新觸發(fā)脈沖同步延遲+寄存器更新tog脈沖握手同步延遲。ti_trans_done信號切換到sh2pt_reg_vld脈沖之間的時間。

M6-M5:在PIE接收和解碼令牌的七個PHY時鐘周期。RXACTIVE有效和tkn_state之間的時間為tkn_END。

計算所需的最低AHB時鐘頻率

為了計算克服ISOC OUT包間間隙限制所需的最小AHB時鐘頻率,需要確定控制器完成以下兩個過程所需的時間:

接收到ISOC OUT令牌后,更新AHB時鐘域中的控制器寄存器

解碼下一個接收到的令牌

為了克服這一限制,使得控制器不會丟棄在ISOC OUT令牌之后太近接收到的任何令牌

更新AHB時鐘域中的控制器寄存器所需的時間應(yīng)該小于或等于解碼下一個接收到的令牌所需的時刻。此條件構(gòu)成計算所需最小AHB時鐘頻率的基礎(chǔ)。

給定UTMI PHY 位寬和最小包見間隙,下表列出了AHB 為了滿足不丟棄任何包必須達到的最小頻率。

(缺圖)

對于32 HS bit 時間間隙,UTMI8位寬時,最少要96-MHz HCLK。

系統(tǒng)時鐘對設(shè)備支持的級聯(lián)集線器數(shù)量的影響

(缺圖)

對于在多層集線器上使用等時OUT端點的設(shè)備,建議使用8位UTMI模式和96MHz或更高的AHB時鐘頻率。

系統(tǒng)時鐘和復(fù)位產(chǎn)生

有兩個外部復(fù)位輸入,復(fù)位是軟件初始化時需要做的。

hreset_n: hclk 和pmu_hclk域復(fù)位

prst_n: phy_clk 域復(fù)位

DWC_otg控制器的所有輸入復(fù)位都可以異步復(fù)位,但解除復(fù)位必須與配置中選擇的時鐘同步。

每當軟件在重置后更改PHY選擇位(USB 1.1 FS收發(fā)器、UTMI+或ULPI)時,它必須復(fù)位軟件重置,因為PHY部分位會更改PHY接口單元的時鐘。

USB 1.1 FS收發(fā)器接口

發(fā)送數(shù)據(jù)

(缺圖)

接收數(shù)據(jù)

(缺圖)

支持Micro-AB 插座的嵌入式主機

IP參數(shù)配置OTG_MODE=0,1, 或者 5支持該功能.

在不支持SRP的配置中,需要外部邏輯來基于ID值控制PHY DRVVBUS,因為控制器內(nèi)部不含OTG狀態(tài)機,并且PHY DRVBUS沒有連接到DWC_OTG控制器。

在這種配置為了支持Micro-AB插座,當ID對應(yīng)于主機時, DRVVBUS必須asserted,當ID對應(yīng)于設(shè)備時,必須de-asserted。

為了在控制器充當嵌入式主機時啟用Micro-AB 插座支持,utmiotg_idig輸入信號也僅存在于支持SRP的主機模式(OTG_mode=5)中。如果嵌入式主機僅支持標準A連接器,則將DWC_otg控制器的utmiotg_idig輸入信號線硬連接到零。

總結(jié)

以上從整體框架上去了解了IP,先不必要全部理解,內(nèi)容很多大概知道框架即可,后面編程有需要再回過頭來參考。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7773

    瀏覽量

    262404
  • USB2.0
    +關(guān)注

    關(guān)注

    2

    文章

    186

    瀏覽量

    45916
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1541

    瀏覽量

    148926
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    552

    瀏覽量

    99937
  • USB驅(qū)動
    +關(guān)注

    關(guān)注

    1

    文章

    136

    瀏覽量

    20117
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    110
收藏 人收藏

    評論

    相關(guān)推薦

    基于DWC2USB驅(qū)動開發(fā)-0x01開篇介紹與新思DWC2 USB2.0控制器簡介

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-0x01開篇介紹與新思
    的頭像 發(fā)表于 05-08 18:10 ?4180次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>01開篇<b class='flag-5'>介紹</b>與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b>控制器簡介

    基于DWC2USB驅(qū)動開發(fā)-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。從linux的內(nèi)核源碼
    的頭像 發(fā)表于 05-09 10:09 ?8331次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</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>功能特征<b class='flag-5'>介紹</b>

    基于DWC2USB驅(qū)動開發(fā)-0x03 DWC2 USB2.0 IP 架構(gòu)介紹之接口和協(xié)議時序

    本文介紹接口和協(xié)議時序
    的頭像 發(fā)表于 05-10 15:37 ?2755次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>0x</b>03 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> <b class='flag-5'>IP</b> <b class='flag-5'>架構(gòu)</b><b class='flag-5'>介紹</b>之接口和協(xié)議時序

    基于DWC2USB驅(qū)動開發(fā)-0x07 DWC2 USB2.0 IP 配置參數(shù)

    混淆,IP的配置參數(shù)固定之后就不能改了,就決定了IP所具有的能力。對于軟件開發(fā)者來說也要了解其具體的配置,因為只有知道當前IP的配置,知道支持哪些功能,哪些是軟件可以配置的哪些是硬件固
    的頭像 發(fā)表于 05-17 09:49 ?1905次閱讀

    基于DWC2USB驅(qū)動開發(fā)-IAD描述符詳解

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個設(shè)備功能關(guān)聯(lián)多個接口,可以用于實現(xiàn)組合設(shè)備。 二.參考文檔
    的頭像 發(fā)表于 06-27 08:45 ?4.8w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-IAD描述符詳解

    基于DWC2USB驅(qū)動開發(fā)-USB復(fù)位詳解

    本文轉(zhuǎn)自公眾號歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-USB復(fù)位詳解 (qq.com) 一.前言 ? ? ? ? ?上一篇我們詳細
    的頭像 發(fā)表于 07-07 11:18 ?4.1w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>復(fù)位詳解

    基于DWC2USB驅(qū)動開發(fā)-USB連接詳解

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-USB連接詳解 (qq.com) 一.前言 ? 之前一直在閱讀手冊,規(guī)格書,練習招式
    的頭像 發(fā)表于 07-07 08:46 ?3231次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>連接詳解

    基于DWC2USB驅(qū)動開發(fā)-高速設(shè)備枚舉為全速設(shè)備問題案例分析

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-高速設(shè)備枚舉為全速設(shè)備問題案例分析 (qq.com) 一.前言 ? 本文分享一個高速設(shè)備被枚舉為全速的問題。 ? ? 高速設(shè)備速
    的頭像 發(fā)表于 07-10 17:12 ?1161次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-高速設(shè)備枚舉為全速設(shè)備問題案例分析

    基于DWC2USB驅(qū)動開發(fā)-設(shè)備類驅(qū)動框架

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-設(shè)備類驅(qū)動框架 (qq.com) 一.前言 從軟件頂層,從數(shù)據(jù)流的角度來看
    的頭像 發(fā)表于 07-16 15:56 ?1129次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-設(shè)備類<b class='flag-5'>驅(qū)動</b>框架

    基于DWC2USB驅(qū)動開發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解 (qq.com) 前言 如下寄存器DIEPxxx,對應(yīng)IN端點,和發(fā)送數(shù)據(jù)相關(guān),這一篇先
    的頭像 發(fā)表于 07-16 16:42 ?1409次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-發(fā)送相關(guān)的寄存器DMA寄存器詳解

    基于DWC2USB驅(qū)動開發(fā)-數(shù)據(jù)不能發(fā)送問題分析案例

    本文轉(zhuǎn)自公眾號歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-數(shù)據(jù)不能發(fā)送問題分析案例 (qq.com) ? 一.前言 ? ? ? ?對于驅(qū)動
    的頭像 發(fā)表于 08-08 09:43 ?1814次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-數(shù)據(jù)不能發(fā)送問題分析案例

    RK3399平臺上USB控制器和PHY的連接方式和配置說明

    USB2.0 OTG對應(yīng)的控制器是DWC2。USB2.0 OTG使用的是Synopsys 方案,即使用DWC2控制器同時實現(xiàn)Host和Device功能,
    發(fā)表于 05-12 17:46

    如何對基于hal庫的DWC2 USB IP進行調(diào)試呢

    背景之前適配 DWC2 USB IP 的時候,主要是基于 st 的 hal 庫來走的,當時我就對他們的 hal 庫代碼不滿,只是無奈,迫于時間就沒重構(gòu),果不其然,usb bug 一堆,
    發(fā)表于 06-14 15:23

    無法讓USB主機正常工作是我做錯了什么嗎?

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

    基于DWC2USB驅(qū)動開發(fā)-抽絲剝繭再論切換到狀態(tài)階段標志DOEPINTn.StsPhseRcvd

    本文轉(zhuǎn)自公眾號系列文章,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-USB包詳解 (qq.com) 一.前言 前面我們對SETUP完成標志DOE
    的頭像 發(fā)表于 07-24 18:04 ?1236次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>-抽絲剝繭再論切換到狀態(tài)階段標志DOEPINTn.StsPhseRcvd