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

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

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

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x05 DWC2 USB2.0 IP 寄存器介紹

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

本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x05 DWC2 USB2.0 IP 寄存器介紹 (qq.com)

前言

驅(qū)動(dòng)的編寫(xiě)無(wú)非就是寄存器的配置,所以我們先要對(duì)控制器的寄存器現(xiàn)有一個(gè)整體的概覽,知道有哪些寄存器,配置某個(gè)功能要操作哪些寄存器,寄存器的整體組織架構(gòu),等等?,F(xiàn)有了整體了解后面具體莫格模塊和功能的配置式就可以找到地方,然后參考具體的寄存器的描述進(jìn)行配置。

概覽

前面DWC_otg_core架構(gòu)部分,已經(jīng)介紹了控制和狀態(tài)寄存器CSR的一些內(nèi)容。從架構(gòu)的角度看CSR塊位于AHB時(shí)鐘域,但是有兩個(gè)特殊的,一個(gè)是電源和時(shí)鐘門(mén)控寄存器PCGCCTL和控制器中斷寄存器GINTSTS的b[31:29],這些寄存器位位于BIU從模塊中,在斷電模式下依然處于活動(dòng)狀態(tài)。為什么這兩個(gè)不一樣呢? 因?yàn)橐M(jìn)行低功耗管理,要對(duì)AHB和PHY以及RAM的時(shí)鐘進(jìn)行門(mén)控即可關(guān)閉和打開(kāi),如果位于AHB時(shí)鐘域那么關(guān)閉AHB時(shí)鐘域時(shí)這個(gè)寄存器本身也就斷電了,也就沒(méi)辦法退出斷電模式了,所以這個(gè)寄存器必須位于AHB時(shí)鐘域以外。GINTSTS的b[31:29] WkUpInt SessReqInt DisConnInt也是類(lèi)似的原因。

站在USB控制器的角度,對(duì)應(yīng)的是AHB從接口,即外部CPU通過(guò)AHB主和控制器的AHB從通訊,讀寫(xiě)控制器的CSR寄存器,注意控制器本身也是要寫(xiě)CSR的狀態(tài)和中斷相關(guān)的寄存器的,因?yàn)橐O(shè)置中斷標(biāo)志各種狀態(tài)等,同時(shí)也要讀CSR因?yàn)橐鶕?jù)寄存器中的配置決定自己的行為。那么就存在CPU和控制器都同時(shí)去寫(xiě)某些寄存器的可能,主要是中斷相關(guān)的,比如控制器要置位某個(gè)中斷位,而軟件要去清除某個(gè)中斷位,此時(shí)控制器的寫(xiě)是優(yōu)先的,即控制在寫(xiě)時(shí)軟件的寫(xiě)會(huì)忽略掉,這么做的原因是避免丟失中斷事件。

另外注意所有寄存器都是32位訪問(wèn)的,哪怕寄存器本身只需要一個(gè)字節(jié)。由于中斷位的設(shè)置和清零分別是控制器和軟件通過(guò)AHB接口去訪問(wèn)的,可能同時(shí)寫(xiě),所以硬件上做了處理,不同中斷位的寫(xiě)是完全獨(dú)立的,控制器和AHB接口可以同時(shí)寫(xiě)不同的中斷位,這是硬件保證的,而不是我們通常的讀-修改-寫(xiě)的實(shí)現(xiàn)方式就是出于該考慮。如果是寫(xiě)同樣的中斷位呢,那就是上面說(shuō)的控制器優(yōu)先忽略AHB的寫(xiě)。

為了節(jié)省空間,HSOT和DEVICE模式的寄存器是共用物理空間的,因?yàn)橥粫r(shí)間要不是主機(jī)模式要不是設(shè)備模式。另外有些寄存器要根據(jù)配置決定是否實(shí)現(xiàn),比如如果只有兩個(gè)端點(diǎn),那么其他端點(diǎn)相關(guān)寄存器就沒(méi)有實(shí)現(xiàn),但是空間還是占用的,這樣是為了方便代碼兼容,也就是寄存器的偏移地址都是固定的,沒(méi)有實(shí)現(xiàn)的的就空著。未實(shí)現(xiàn)的寄存器寫(xiě)忽略讀返回值不確定。這里注意只有全局控制, 電源和時(shí)鐘門(mén)控, Data FIFO 訪問(wèn),和 Host Port 寄存器是主機(jī)和設(shè)備都可以訪問(wèn)的,其他是模式相關(guān)的寄存器。如果主機(jī)模式去寫(xiě)設(shè)備相關(guān)的寄存器(反之亦然)則會(huì)產(chǎn)生GINTSTS.ModeMis事件,該為置位,如果使能了對(duì)應(yīng)中斷還會(huì)產(chǎn)生中斷,寫(xiě)會(huì)忽略讀返回值不確定。

如果切換了模式則需要重新編程所有相關(guān)寄存器,就好比上電復(fù)位之后的狀態(tài)一樣。

CSR存儲(chǔ)映射

CSR的地址映射是固定的,不隨著配置改變而改變,即每一個(gè)寄存器的偏移是固定的,前面已經(jīng)解釋過(guò)了原因。主機(jī)和設(shè)備模式寄存器占用不同的地址。

整個(gè)寄存器的空間如下所示

image.png

閱讀寄存器有一些經(jīng)驗(yàn),

G開(kāi)頭的代表全局控制寄存器

H開(kāi)頭的代表主機(jī)相關(guān)寄存器

D開(kāi)頭的代表設(shè)備相關(guān)寄存器

這樣一眼就可以看到寄存器大概是和什么相關(guān)的。

Controller Global CSRs (1 KB)部分:主機(jī)和設(shè)備模式都可以訪問(wèn)

Host Mode CSRs (1 KB):進(jìn)入主機(jī)模式需要配置的寄存器

Device Mode CSRs (1.5 KB):進(jìn)入設(shè)備模式需要配置的寄存器

Power and Clock Gating CSRs (0.5 KB):實(shí)際只有一個(gè)寄存器,電源和門(mén)控配置,主機(jī)和設(shè)備模式都可以訪問(wèn)。

Device EP x/Host Channel x FIFO (4 KB):這些寄存器在主機(jī)和設(shè)備模式下都可用,用于在給定方向上讀取或?qū)懭胩囟ǘ它c(diǎn)或通道的FIFO空間。在主機(jī)通道IN端點(diǎn)則FIFO只讀,OUT端點(diǎn)則FIFO只寫(xiě),在設(shè)備IN端點(diǎn)則FIFO只寫(xiě),OUT端點(diǎn)則FIFO只讀,注意這里的IN和OUT是符合USB規(guī)范的IN和OUT即都是針對(duì)主機(jī)而言的。

Direct Access to Data FIFO RAM for Debugging (128 KB):直接訪問(wèn)該空間可以查看RAM中數(shù)據(jù)用于調(diào)試使用。

中斷相關(guān)寄存器架構(gòu)

中斷相關(guān)寄存器非常重要,可以說(shuō)USB的驅(qū)動(dòng)就是基于中斷的驅(qū)動(dòng),所有流都是中斷去驅(qū)動(dòng)的,當(dāng)然也有所謂的基于事件的驅(qū)動(dòng)比如uC-USB實(shí)際也是在中斷服務(wù)函數(shù)中發(fā)送信號(hào)量或者事件,在某個(gè)線程中或者主循環(huán)中去處理事件,本質(zhì)還是一樣的,還是基于中斷的。中斷中根據(jù)狀態(tài)決定下一步要做什么。

對(duì)應(yīng)中斷狀態(tài)寄存器GINTSTS,中斷是一個(gè)分層的結(jié)構(gòu),即總分的形式,先整體有總的中斷狀態(tài),比如是設(shè)備IN還是OUT端點(diǎn)中斷,是主機(jī)Port還是通道相關(guān)中斷,是OTG的中斷,還是內(nèi)核相關(guān)的中斷。比如如果知道是設(shè)別IN或者OUT中斷則往下走一層看是DAINT是哪一個(gè)IN端點(diǎn)或者哪一個(gè)OUT端點(diǎn)的中斷,找到了然后再往下走一層查看具體的DIEPINTi或者DOEPINTi已確認(rèn)更詳細(xì)的中斷信息。

還有就是編程上需要注意使能中斷時(shí)一定要先清除中斷標(biāo)志再使能中斷,避免一使能中斷標(biāo)志就是置位的馬上就產(chǎn)生中斷,這也是驅(qū)動(dòng)開(kāi)發(fā)的常識(shí)。

image.png

中斷架構(gòu)還支持多處理器模式,即可以將中斷信號(hào)分發(fā)到不同的處理器,以配合多處理器系統(tǒng)使用。支持多處理器中斷模式時(shí)就是多了包含EACH字樣的寄存器,供各自處理器使用對(duì)應(yīng)的中斷寄存器。

image.png

中斷的處理如下,即和上面提到的層次結(jié)構(gòu)對(duì)應(yīng)

image.png

  1. 先看GINGSTS總中斷狀態(tài),處理全局的中斷
  2. 然后看主機(jī)或者設(shè)備通道或者端點(diǎn)相關(guān)中斷狀態(tài) 比如看DAINT
  3. 最后看具體是哪一個(gè)端點(diǎn)或者通道比如看DIEPINTi,DOEPINTi。

主要使用的寄存器

這里先對(duì)一些高頻使用的寄存器做簡(jiǎn)單介紹,介紹其對(duì)應(yīng)的功能,詳細(xì)的可以再參考具體的寄存器描述。這樣先從整體有一個(gè)了解。

GOTGCTL全局OTG控制和狀態(tài)寄存器:控制OTG行為并反映控制器的OTG功能的狀態(tài)。
11 DevHNPEn設(shè)備設(shè)置主機(jī)協(xié)商協(xié)議使能這是設(shè)備端的操作 設(shè)備端收到主機(jī)的SetFeature.SetHNPEnable命令時(shí)設(shè)置該位。0HNP不使能1HNP使能
10 HstSetHNPEn主機(jī)設(shè)置主機(jī)協(xié)商協(xié)議使能這是主機(jī)端的操作 主機(jī)端在SetFeature.SetHNPEnable命令完成后設(shè)置該位0主機(jī)設(shè)置HNP不使能1主機(jī)設(shè)置HNP使能
GAHBCFG:全局AHB控制寄存器,上電或者切換模式時(shí)配置AHB相關(guān)信息,只能傳輸前初始化一次
5 DMAEn使能DMA 只有IP配置支持DMA才可以選,如果是OTG_ARCHITECTURE = 0則固定為Slave-Only模式?jīng)]得選。0 使用Slave模式1 使用DMA模式
GUSBCFG:全局USB配置寄存器,上電或者切換模式時(shí)配置AHB相關(guān)信息,只能傳輸前初始化一次,USB和PHY相關(guān)配置
30 ForceDevMode強(qiáng)制為設(shè)備模式 寫(xiě)1強(qiáng)制為設(shè)備模式,而不管utmiotg_iddig信號(hào)。設(shè)置后需要等25mS生效。只有OTG_MODE = 0, 1 , 2時(shí)才有效。
29 ForceHstMode強(qiáng)制為主機(jī)模式 寫(xiě)1強(qiáng)制為主機(jī)模式,而不管utmiotg_iddig信號(hào)。設(shè)置后需要等25mS生效。只有OTG_MODE = 0, 1 , 2時(shí)才有效。
9 HNPCapHNP功能使能 控制使能HNP功能,寫(xiě)1使能。注意這里和上面的DevHNPEn和HstSetHNPEn不一樣,這里是有HNP的功能是否使用,只有使用了才支持HNP,才有上面的SetFeature.SetHNPEnable協(xié)商之后的結(jié)果設(shè)置。只有OTG_MODE中支持HNP的模式才有效。
8 SRPCapSRP功能使能 寫(xiě)1使能,即對(duì)于B設(shè)備請(qǐng)求連接的A設(shè)備激活VBUS和啟動(dòng)session。只有OTG_MODE中支持SRP的模式才有效。
6 PHYSelPHY選擇 0: USB 2.0 高速 UTMI+ 或ULPI PHY,只有OTG_HSPHY_INTERFACE = 1支持高速PHY接口才能設(shè)置為01: USB 1.1 全速串行收發(fā)器,只有OTG_FSPHY_INTERFACE = 1支持全速接口才能設(shè)置為1
4 ULPI_UTMI_SelPHY接口ULPI和UTMI選擇 0選擇UTMI+1選擇ULPI只有OTG_HSPHY_INTERFACE = 3時(shí)同時(shí)支持UTMI+和ULPI時(shí)才有的選,否則IP配置為什么就是什么。
3 PHYIf選擇接口寬度 只對(duì)選擇了UTMI+的才可配置對(duì)于ULPI只能配置為0即8位。0 :8位1:16位
HCFG:主機(jī)配置寄存器,只初始化時(shí)配置一次
23 DescDMA是否使能基于描述符的DMA 只有IP配置支持 Scatter/Gather DMA 才能使能。有一下幾種組合GAHBCFG.DMAEn=0, HCFG.DescDMA=0 => Slave mode GAHBCFG.DMAEn=0, HCFG.DescDMA=1 => Invalid GAHBCFG.DMAEn=1, HCFG.DescDMA=0 => Buffered DMA mode GAHBCFG.DMAEn=1, HCFG.DescDMA=1=> Scatter/Gather DMAmode
2 FSLSSupp 在主機(jī)模式設(shè)置該位為1則不管設(shè)備支持什么速度都枚舉為全速或者低速,而如果設(shè)置為0則根據(jù)實(shí)際設(shè)備支持什么速度就枚舉成什么速度。
HCCHARn:主機(jī)通道相關(guān)特性設(shè)置
19:18 EPType 設(shè)置通道類(lèi)型00: Control01: Isochronous10: Bulk11: Interrupt
15 EPDir 端點(diǎn)方向0:OUT1:IN
14:11 EPNum 端點(diǎn)號(hào)
10:0 MPS 對(duì)應(yīng)端點(diǎn)最大包大小
HCTSIZn:主機(jī)通道傳輸大小配置
30:29 PID 應(yīng)用設(shè)置數(shù)據(jù)的初始類(lèi)型,后續(xù)的控制器硬件自動(dòng)更新(所以這里明確了哪些是軟件做哪些是硬件做,之前就提到過(guò)寫(xiě)驅(qū)動(dòng)理解這一點(diǎn)很重要,這些信息都是從手冊(cè)中獲取)00: DATA001: DATA210: DATA111: MDATA (non-control)
DCFG:設(shè)備配置寄存器,枚舉或者控制為設(shè)備模式時(shí)配置,只初始化配置一次
25:24 PerSchIntvl 周期調(diào)度間隔只有Scatter/Gather DMA模式才有配置一個(gè)微幀內(nèi)DMA花多少時(shí)間去處理同步IN數(shù)據(jù),剩余的時(shí)間處理非同步傳輸。對(duì)于UVC 同步傳輸?shù)瓤梢蕴岣咴撝狄赃_(dá)到高傳輸速率。如果沒(méi)有同步端點(diǎn)則該配置被忽略。00: 25% of (micro)frame.01: 50% of (micro)frame.10: 75% of (micro)frame.11: Reserved
23 DescDMA 只有IP配置支持 Scatter/Gather DMA 才能使能。 支持的組合如下GAHBCFG.DMAEn=0,DCFG.DescDMA=0 => Slave mode GAHBCFG.DMAEn=0,DCFG.DescDMA=1 => Invalid GAHBCFG.DMAEn=1,DCFG.DescDMA=0 => Buffered DMA mode GAHBCFG.DMAEn=1,DCFG.DescDMA=1 => Scatter/Gather DMA mode
10:4 DevAddr 收到主機(jī)的SetAddress命令后設(shè)置對(duì)應(yīng)的地址值
1:0 DevSpd 軟件設(shè)置該值要求硬件枚舉為對(duì)應(yīng)的速度。硬件速度枚舉后反應(yīng)最終實(shí)際的速度。也就是軟件可以要求,但是實(shí)際是多少硬件說(shuō)了算,這也是前面提到的什么是軟件做什么是硬件做的體現(xiàn),編程要知道這些信息。00:High speed (USB 2.0 PHY clock is 30 MHz or 60 MHz)01: Full speed (USB 2.0 PHY clock is 30 MHz or 60 MHz)10: Reserved11: Full speed (USB 1.1 transceiver clock is 48 MHz)
DIEPCTLn/DOEPCTLn:端點(diǎn)控制寄存器,控制對(duì)應(yīng)端點(diǎn)的行為
29 SetD1PID Scatter/Gather DMA 和nonScatter/Gather DMA 模式都可使用。配置數(shù)據(jù)的類(lèi)型為DATA1只對(duì)中斷/批量 IN和OUT端點(diǎn)有效。
28 SetD0PID Scatter/Gather DMA 和nonScatter/Gather DMA 模式都可使用。配置數(shù)據(jù)的類(lèi)型為DATA0只對(duì)中斷/批量 IN和OUT端點(diǎn)有效。
19:18 EPType 端點(diǎn)類(lèi)型00: Control01: Isochronous10: Bulk11: Interrupt
10:0 MPS 對(duì)應(yīng)端點(diǎn)的最大包大小

寄存器描述

閱讀寄存器要注意下寄存器的屬性

讀寫(xiě)屬性 描述
RC 讀清除
RS 讀置位
RM 讀會(huì)修改寄存器內(nèi)容
Wo 只能寫(xiě)一次
W1C 寫(xiě)2清除
W1S 寫(xiě)1置位
W1T 寫(xiě)1翻轉(zhuǎn)
W0C 寫(xiě)0清除
W0S 寫(xiě)0置位
W0T 寫(xiě)0翻轉(zhuǎn)
WC 寫(xiě)清除.
WS 寫(xiě)置位
WM 寫(xiě)反轉(zhuǎn)
no Read Behavior attribute 不能讀Write-Only.
no Write Behavior attribute 不能寫(xiě)Read-Only
訪問(wèn)屬性 描述
R 只讀
W 只寫(xiě)
R/W 可讀寫(xiě)
R/W1C 可讀,寫(xiě)清除
RC/W1C R讀清除,寫(xiě)1清除
R/Wo 可讀,只能寫(xiě)一次.
屬性 描述
Volatile IP-XACT規(guī)格定義的,寫(xiě)后讀或者連續(xù)讀不保證內(nèi)容一致性。
Testable IP-XACT規(guī)格定義的,可能的值unconstrained, untestable, readOnly, writeAsRead, restore.
Reset Mask IP-XACT規(guī)格定義的.復(fù)位值不確定.比如其復(fù)位值受其他寄存器或者硬件引腳影響或者基于RAM的寄存器.
* Varies 可變的,即根據(jù)實(shí)際的配置而變化

寄存器組織

寄存器按塊組織

DWC_otg_map/DWC_otg_intreg

所有寄存器如下

可以看到就是分為G開(kāi)頭,H開(kāi)頭和D開(kāi)頭的。

image.png

image.png

總結(jié)

本文對(duì)控制器的寄存器有了一個(gè)整體上的概覽,先了解各大概,了解寄存器的組織結(jié)構(gòu),大致了解一下常用的寄存器。后面編程時(shí)再一個(gè)個(gè)對(duì)照每一個(gè)寄存器的描述去編寫(xiě)代碼。

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

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119212
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7773

    瀏覽量

    262404
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4123

    瀏覽量

    85279
  • 驅(qū)動(dòng)開(kāi)發(fā)

    關(guān)注

    0

    文章

    130

    瀏覽量

    12036
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    110
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-0x06 DWC2 USB2.0 IP 頭文件與寄存器的讀寫(xiě)操作

    上一篇我們介紹了控制寄存器,而驅(qū)動(dòng)的編寫(xiě)底層無(wú)非就是配置各種寄存器,所以第一步先要準(zhǔn)備寄存器
    的頭像 發(fā)表于 05-16 14:04 ?2258次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-<b class='flag-5'>0x</b>06 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB2.0</b> <b class='flag-5'>IP</b> 頭文件與<b class='flag-5'>寄存器</b>的讀寫(xiě)操作

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-0x01開(kāi)篇介紹與新思DWC2 USB2.0控制簡(jiǎn)介

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

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

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制IP
    的頭像 發(fā)表于 05-09 10:09 ?8332次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(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ū)動(dòng)開(kāi)發(fā)-0x04 DWC2 USB2.0 IP 架構(gòu)介紹

    這一篇先對(duì)IP的架構(gòu)進(jìn)行一些介紹,內(nèi)容比較多所以重點(diǎn)關(guān)注和軟件相關(guān)的內(nèi)容。后續(xù)編程具體涉及時(shí),可能再返回過(guò)來(lái)詳讀某一個(gè)部分。
    的頭像 發(fā)表于 05-12 12:50 ?3808次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</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> 架構(gòu)<b class='flag-5'>介紹</b>

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

    本問(wèn)轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 微信公眾平臺(tái) (qq.com) 前言 本IP是一個(gè)靈活的可配置的IP,有很多參數(shù)可以配置以滿(mǎn)足不同的需求,這里的配置參數(shù)值得IP的配置參數(shù),不要和軟件通過(guò)寄存器
    的頭像 發(fā)表于 05-17 09:49 ?1905次閱讀

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

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個(gè)設(shè)備功能關(guān)聯(lián)多個(gè)接口,可以用于實(shí)現(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ū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-IAD描述符詳解

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

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

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-USB連接詳解

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

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-設(shè)備類(lèi)驅(qū)動(dòng)框架

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

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

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解 (qq
    的頭像 發(fā)表于 07-16 16:42 ?1409次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-發(fā)送相關(guān)的<b class='flag-5'>寄存器</b>DMA<b class='flag-5'>寄存器</b>詳解

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-控制傳輸中斷相關(guān)寄存器

    本篇講解Scatter/Gather DMA模式下控制傳輸相關(guān)的寄存器??刂苽鬏斒?b class='flag-5'>USB驅(qū)動(dòng)的核心部分,控制傳輸調(diào)通了驅(qū)動(dòng)就完成了一大半,而驅(qū)動(dòng)
    的頭像 發(fā)表于 07-24 00:07 ?2078次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>-控制傳輸中斷相關(guān)<b class='flag-5'>寄存器</b>

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例

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

    RK3399平臺(tái)上USB控制和PHY的連接方式和配置說(shuō)明

    USB2.0 OTG對(duì)應(yīng)的控制DWC2。USB2.0 OTG使用的是Synopsys 方案,即使用DWC2控制
    發(fā)表于 05-12 17:46

    如何對(duì)基于hal庫(kù)的DWC2 USB IP進(jìn)行調(diào)試呢

    背景之前適配 DWC2 USB IP 的時(shí)候,主要是基于 st 的 hal 庫(kù)來(lái)走的,當(dāng)時(shí)我就對(duì)他們的 hal 庫(kù)代碼不滿(mǎn),只是無(wú)奈,迫于時(shí)間就沒(méi)重構(gòu),果不其然,usb bug 一堆,
    發(fā)表于 06-14 15:23

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

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