本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x0B ULPI接口寄存器介紹 (qq.com)
一. ULPI(寄存器介紹)
1.1 前言
前面同步模式中我們介紹了寄存器的讀寫(xiě), 對(duì)于軟件的角度來(lái)說(shuō)無(wú)非就是通過(guò)LINK的ULPI接口讀寫(xiě)PHY的寄存器來(lái)設(shè)置和獲取狀態(tài),同時(shí)通過(guò)ULPI接口來(lái)進(jìn)行USB數(shù)據(jù)的收發(fā)。
只是這個(gè)過(guò)程主要由硬件LINK完成,軟件只需要進(jìn)行一些中斷的處理簡(jiǎn)單的設(shè)置即可。當(dāng)然在某些必要的時(shí)候我們也需要通過(guò)軟件直接讀寫(xiě)PHY的寄存器以進(jìn)行操作和獲取狀態(tài),這主要是在某些底層問(wèn)題調(diào)試或者性能分析時(shí)需要用到。DWC2提供了直接訪問(wèn)PHY寄存器的寄存器接口,這個(gè)后面再講。
1.2 寄存器讀寫(xiě)回顧
在同步模式介紹中詳細(xì)介紹了寄存器的讀寫(xiě)操作,這里重新回顧下對(duì)應(yīng)的時(shí)序圖。
立即寄存器寫(xiě)
立即寄存器讀
立即寄存器讀寫(xiě)在TX CMD時(shí)被USB接收中斷
立即寄存器讀寫(xiě)在turn around時(shí)被USB接收中斷
USB接收和寄存器讀的Data時(shí)鐘在同一個(gè)時(shí)鐘,USB接收延遲
寄存器讀后緊接著USB接收
寄存器寫(xiě)stp拉高時(shí)緊接著USB接收
寄存器讀緊接著USB接收
擴(kuò)展寄存器寫(xiě)
擴(kuò)展寄存器讀
擴(kuò)展寄存器讀在擴(kuò)展地址對(duì)應(yīng)的時(shí)鐘被USB接收中斷
1.3 寄存器表
如表所示,ULPI提供了一個(gè)立即寄存器集,該寄存器集具有6位地址,該地址構(gòu)成傳輸命令字節(jié)Transmit Command Byte的一部分。擴(kuò)展寄存器還提供需要額外時(shí)鐘周期才能完成的8位地址。立即數(shù)寄存器集被映射到擴(kuò)展地址的低位。也就是說(shuō),讀取或?qū)懭霐U(kuò)展地址“00XXXXXX”實(shí)際上將對(duì)立即寄存器集進(jìn)行操作。PHY必須支持立即和擴(kuò)展寄存器操作。
擴(kuò)展寄存器訪問(wèn)需要多一個(gè)CLK來(lái)發(fā)送寄存器地址,因?yàn)榈刂反笮?位,不能直接編碼在命令字節(jié)中了,所以要單獨(dú)發(fā)送。實(shí)際上立即寄存器也可以使用擴(kuò)展寄存器的方式操作,即寄存器地址的高2位為0,所以采用擴(kuò)展寄存器方式是統(tǒng)一編碼所有寄存器的,操作高2位為0的擴(kuò)展寄存器和立即寄存器操作是一樣的。那為什么不統(tǒng)一為擴(kuò)展寄存器操作一種方式呢,
因?yàn)閁SB關(guān)注數(shù)據(jù)傳輸帶寬,所以要減少其他控制操作:寄存器讀寫(xiě)占用的ULPI接口帶寬,
所以把關(guān)鍵的寄存器直接編碼在命令字中,減少一個(gè)CLK的時(shí)間,減少寄存器讀寫(xiě)占用的帶寬,提高數(shù)據(jù)傳輸?shù)膸挕?/p>
下表的寄存器訪問(wèn)圖例適用
支持位操作,在只需要置位或者清除某些位時(shí)比"讀-修改-寫(xiě)"更高效,
因?yàn)閁LPI接口即要進(jìn)行USB數(shù)據(jù)傳輸又要進(jìn)行寄存器讀寫(xiě)控制,數(shù)據(jù)傳輸才是重點(diǎn),要保證高數(shù)據(jù)傳輸帶寬所以要盡量減少寄存器讀寫(xiě)占用的帶寬,所以增加set clr兩種寄存器操作模式,而不是只有rd和wr,不同的操作通過(guò)寄存器地址區(qū)分。
1.4立即寄存器
1.4.1 VID和PID
地址:00h-03h只讀。
1.4.2 功能控制Function Control
控制PHY的UTMI功能設(shè)置,是最頻繁使用的寄存器。
地址:04h-06h(讀取)、04h(寫(xiě)入)、05h(設(shè)置)、06h(清除)。
1.4.3 接口控制Interface Control
啟用替代接口和物理層功能。此寄存器中的所有位都是PHY的可選功能
地址:07h-09h(讀取)、07h(寫(xiě)入)、08h(設(shè)置)、09h(清除)。
15:適用于切換到串行或Carkit模式的LINK實(shí)現(xiàn),并且不需要來(lái)自PHY的時(shí)鐘源。
1.4.4 OTG控制 OTG Control
控制PHY的UTMI+OTG功能。
地址:0Ah-0Ch(讀取)、0Ah(寫(xiě)入)、0Bh(設(shè)置)、0Ch(清除)。
16:如果采用Carkit模式寄存器,上拉電阻器和檢測(cè)電路應(yīng)符合[CEA-936A]
1.4.5 USB中斷上升沿使能
地址:0Dh-0Fh(讀取),0Dh(寫(xiě)入),0Eh(設(shè)置),0Fh。
如果設(shè)置,則當(dāng)相應(yīng)的PHY信號(hào)從低變高時(shí),該寄存器中的位導(dǎo)致生成中斷事件通知。默認(rèn)情況下,所有轉(zhuǎn)換都處于啟用狀態(tài)。RxActive和RxError必須始終立即通信,因此不包括在此寄存器中。當(dāng)上升沿和下降沿使能都被禁用時(shí),中斷電路可以在任何模式下斷電。
為了確保時(shí)鐘斷電時(shí)能夠檢測(cè)到中斷,LINK應(yīng)同時(shí)啟用上升沿和下降沿。
1.4.6 USB中斷下降沿使能
地址:10h-12h(讀取)、10h(寫(xiě)入)、11h(設(shè)置)、12h(清除)
如果設(shè)置,則當(dāng)相應(yīng)的PHY信號(hào)從高變?yōu)榈蜁r(shí),該寄存器中的位導(dǎo)致生成中斷事件通知。默認(rèn)情況下,所有轉(zhuǎn)換都處于啟用狀態(tài)。RxActive和RxError必須始終立即通信,因此不包括在此寄存器中。當(dāng)上升沿和下降沿使能都被禁用時(shí),中斷電路可以在任何模式下斷電。為了確保時(shí)鐘斷電時(shí)能夠檢測(cè)到中斷,LINK應(yīng)同時(shí)啟用上升沿和下降沿。
1.4.7 USB中斷狀態(tài)
地址:13h(只讀)。
指示中斷源信號(hào)的當(dāng)前值。當(dāng)上升沿和下降沿使能都被禁用時(shí),中斷電路可以在任何模式下斷電。為了確保時(shí)鐘斷電時(shí)能夠檢測(cè)到中斷,LINK應(yīng)同時(shí)啟用上升沿和下降沿。
1.4.8 USB中斷鎖存
地址:14小時(shí)(只讀,自動(dòng)清除)。
當(dāng)在對(duì)應(yīng)的內(nèi)部信號(hào)上發(fā)生未屏蔽的改變時(shí),這些比特由PHY設(shè)置。當(dāng)LINK讀取此寄存器時(shí),或當(dāng)進(jìn)入低功率模式時(shí),PHY將自動(dòng)清除所有位。無(wú)論ClockSuspendM的值如何,當(dāng)進(jìn)入串行模式或Carkit套件模式時(shí),PHY也會(huì)清除此寄存器。當(dāng)上升沿和下降沿使能都被禁用時(shí),中斷電路可以在任何模式下斷電。為了確保時(shí)鐘斷電時(shí)能夠檢測(cè)到中斷,LINK應(yīng)同時(shí)啟用上升沿和下降沿。
PHY必須遵循下表中的規(guī)則來(lái)設(shè)置任何鎖存寄存器位。需要注意的是,如果寄存器讀取數(shù)據(jù)在設(shè)置USB中斷鎖存位的同一周期內(nèi)返回到LINK,則中斷條件會(huì)立即在寄存器讀取數(shù)據(jù)中給出,而鎖存位不會(huì)設(shè)置。
注意,LINK在同步模式下讀取USB中斷鎖存寄存器是可選的,因?yàn)镽X CMD字節(jié)已經(jīng)直接指示中斷源。
1.4.9 調(diào)試寄存器
地址:15h(只讀)
指示對(duì)調(diào)試有用的各種信號(hào)的當(dāng)前值。
1.4.10 自定義使用寄存器Scratch寄存器
地址:16h-18h(讀取)、16h(寫(xiě)入)、17h(設(shè)置)、18h(清除)。
用戶可自定義寫(xiě)入任何值,可作為測(cè)試使用
1.4.11 Carkit控制寄存器
地址:19h-1Bh(讀取)、19h(寫(xiě)入)、1Ah(設(shè)置)、1Bh(清除)。
此寄存器是可選的控制PHY內(nèi)Carkit電路的操作。如果未設(shè)置接口控制寄存器中的CarkitMode位,則忽略TxdEn和RxdEn位。如果CarkitMode位被設(shè)置,而RxdEn位未被設(shè)置,則數(shù)據(jù)(1)引腳保持在邏輯高。
1.4.12 Carkit中斷延遲
地址:1Ch(讀取),1Ch(寫(xiě)入)。
此寄存器是可選的當(dāng)Carkit中斷電話時(shí),它會(huì)在很長(zhǎng)一段時(shí)間內(nèi)將D+拉低。如果D+在TPH_DP_INT時(shí)間內(nèi)低于VPH_DP_LO電壓閾值,則電話必須檢測(cè)到中斷。
只要設(shè)置了Carkit中斷啟用寄存器中的CarIntDet位,PHY中的Carkit中斷定時(shí)器就會(huì)啟用。如果啟用,當(dāng)D+電壓低于VPH_DP_LO時(shí),Carkit中斷定時(shí)器會(huì)遞增。如果D+電壓高于VPH_DP_LO,則車載套件中斷定時(shí)器復(fù)位。當(dāng)D+高于VPH_DP_LO的時(shí)間短至TCR_INJ_WDTH時(shí),Carkit中斷定時(shí)器必須復(fù)位。
當(dāng)Carkit中斷定時(shí)器達(dá)到存儲(chǔ)在CarIntDly中的值時(shí),設(shè)置Carkit中斷鎖存寄存器中的CarIntDet位,并生成中斷。
1.4.13 Carkit中斷使能
地址:1Dh-1Fh(讀取)、1Dh(寫(xiě)入)、1Eh(設(shè)置)、1Fh(清除)。
此寄存器是可選的如果設(shè)置,則當(dāng)相應(yīng)的PHY信號(hào)發(fā)生變化時(shí),該寄存器中的位會(huì)導(dǎo)致生成中斷事件通知。默認(rèn)情況下,此寄存器中的所有位都被清除。
1.4.14 Carkit狀態(tài)寄存器
地址:20h(只讀)。
此寄存器是可選的當(dāng)carkit中斷事件通知發(fā)生時(shí),LINK可以讀取此寄存器,以確定是哪個(gè)事件觸發(fā)了中斷。
1.4.15 Carkit中斷鎖存
地址:21h(只讀,自動(dòng)清除)
此寄存器是可選的上一頁(yè)當(dāng)LINK讀取此寄存器時(shí),或當(dāng)進(jìn)入低功率模式時(shí),PHY將自動(dòng)清除所有位。
PHY必須遵循下表中的規(guī)則來(lái)設(shè)置任何鎖存寄存器位。需要注意的是,如果寄存器讀取數(shù)據(jù)在與設(shè)置Carkit中斷鎖存位相同的周期內(nèi)返回到LINK,則中斷條件會(huì)立即在寄存器讀取數(shù)據(jù)中給出,而鎖存位不會(huì)設(shè)置。
1.4.16 Carkit脈沖控制
地址:22h-24h(讀取)、22h(寫(xiě)入)、23h(設(shè)置)、24h(清除)。
此寄存器是可選的它在PHY內(nèi)的音頻功能期間控制Carkit數(shù)據(jù)的操作。如果未設(shè)置接口控制寄存器中的車載設(shè)備模式位,則忽略TxPlsEn和RxPlsEn。
TxPlsEn:當(dāng)設(shè)置TxPlsSen位,并設(shè)置Carkit控制寄存器中的SpkLeftEn位時(shí),PHY應(yīng)在79UTMI+低引腳接口規(guī)范(修訂版1.1,2004年10月20日)數(shù)據(jù)(0)線上的每個(gè)上升沿或下降沿后,在D線上輸出一個(gè)正脈沖,然后輸出一個(gè)負(fù)脈沖。當(dāng)生成這樣的脈沖對(duì)時(shí),PHY應(yīng)執(zhí)行Carkit規(guī)范中定義的步驟。以下步驟列表提供了有關(guān)Carkit規(guī)格意圖的信息。
1.三態(tài)驅(qū)動(dòng)D線的揚(yáng)聲器緩沖器
2.將D線驅(qū)動(dòng)至3.3V+/-10%的電壓
3.等待傳輸正寬度寄存器中指定的時(shí)間
4.將D路驅(qū)動(dòng)至地
5.等待傳輸負(fù)寬度寄存器中規(guī)定的時(shí)間
6.停止將D路驅(qū)動(dòng)器至地
7.啟用驅(qū)動(dòng)D線揚(yáng)聲器緩沖器
RxPlsEn:當(dāng)RxPlsSen位被設(shè)置,并且Carkit控制寄存器中的MicEn位被設(shè)置時(shí),每當(dāng)在D+線上檢測(cè)到下降沿超過(guò)VPH_DP_LO的車載套件中斷閾值時(shí),PHY應(yīng)切換數(shù)據(jù)(1)輸出。設(shè)置RxPlsEn位時(shí),應(yīng)啟用接收極性恢復(fù)計(jì)時(shí)器。
1.4.17 發(fā)送正脈沖寬度
地址:25h(讀),25h(寫(xiě))
此寄存器是可選的它指定設(shè)置TxPlsEn位時(shí)在D線上輸出的正脈沖的寬度。%1小時(shí)必須支持的最小TxPosWdth為8。必須支持的最大TxPosWdth為64。
1.4.18 發(fā)送負(fù)脈沖寬度
地址:26h(讀),26h(寫(xiě))
此寄存器是可選的它指定設(shè)置TxPlsEn位時(shí)在D線上輸出的負(fù)脈沖的寬度。%1小時(shí)必須支持的最小TxNegWdth為8。必須支持的最大TxNegWdth為64。
1.4.19 接收極性恢復(fù)
地址:27h (Read), 27h (Write)
該寄存器是可選的
當(dāng)在Carkit中啟用了音頻中的數(shù)據(jù)功能時(shí),然后,Carkit通過(guò)將非歸零(NRZ)的UART信號(hào)轉(zhuǎn)換為一系列脈沖,將UART數(shù)據(jù)發(fā)送到手機(jī),將這些脈沖信號(hào)通過(guò)D+發(fā)送到手機(jī)。
然后,在每次接收到一個(gè)脈沖時(shí),手機(jī)中的PHY通過(guò)切換到數(shù)據(jù)(1)線,將這些脈沖轉(zhuǎn)換為NRZ UART信號(hào)。如果PHY錯(cuò)誤地錯(cuò)過(guò)了一個(gè)脈沖,或者檢測(cè)到一個(gè)額外的脈沖,那么數(shù)據(jù)(1)線上的極性將是不正確的。為了從此條件中恢復(fù),當(dāng)數(shù)據(jù)(1)行的極性為邏輯極性低時(shí),PHY自動(dòng)將數(shù)據(jù)(1)行的極性重置為邏輯高。
只有在設(shè)置了Carkit脈沖控制寄存器中的RxPlsEn位時(shí),接收極性恢復(fù)才會(huì)被激活。時(shí)間以0.25 ms為單位測(cè)量。必須支持的最小RxPolRcvry為1。必須支持的最大RxPolRcvry為255。
1.4.20 保留
28H~2EH部分保留以后使用。
1.4.21 訪問(wèn)擴(kuò)展寄存器集
2FH(讀/寫(xiě))
命令字中的低6位填該值,在下一個(gè)CLJ中發(fā)送8位的擴(kuò)展寄存器地址。
1.4.22 廠商指定
30H~3FH
廠商自定義使用
1.5擴(kuò)展寄存器
擴(kuò)展寄存器集的地址00h到3Fh直接映射到立即寄存器集。對(duì)擴(kuò)展地址00h到3Fh的讀、寫(xiě)、設(shè)置或清除操作實(shí)際是在立即寄存器組上操作。地址40h到7Fh被保留以供將來(lái)使用。地址80h至FFh被分配給供應(yīng)商特定用途。
1.6所有上行和下行信號(hào)模型的寄存器設(shè)置
前面也說(shuō)過(guò)ULPI是通過(guò)將UTMI的一部分相對(duì)靜態(tài)的的信號(hào)映射到寄存器,通過(guò)寄存器去操作這些信號(hào)來(lái)減少引腳的數(shù)量的。
下表顯示了LINK必須應(yīng)用哪些寄存器設(shè)置才能實(shí)現(xiàn)所需的信號(hào)模式。PHY必須根據(jù)需要自動(dòng)生成正確的信號(hào)、準(zhǔn)備SYNC和附加EOP。該表還顯示了由于寄存器設(shè)置而啟用的電阻器。
以下信號(hào)概念上存在于PHY內(nèi)部。所有電阻器信號(hào)均為高電平有效,值1b啟用電阻器,值0b禁用電阻器。
1.rpu_dp_en啟用D+上的1.5k?上拉電阻器
2.rpu_dm_en啟用D-上的1.5k?上拉電阻器
3.rpd_dp_en啟用D+下的15k?下拉電阻器
4.rpd-dm_en啟用D-上的15kΩ下拉電阻器
5.hsterm_en啟用D+和D-上的45?終端電阻器。
1.7總結(jié)
以上詳細(xì)介紹了PHY相關(guān)的寄存器內(nèi)容,標(biāo)準(zhǔn)部分是所有PHY都需要按照該規(guī)范實(shí)現(xiàn)的,還有廠商自定義部分可以自定義。正是因?yàn)橐?guī)范對(duì)寄存器功能進(jìn)行了規(guī)范所以LINK部分的IP才能做到兼容通過(guò)。
PHY寄存器的內(nèi)軟件開(kāi)發(fā)人員容一般情況接觸不到,但是真正遇到底層疑難問(wèn)題時(shí)可能只有通過(guò)PHY的一些寄存器才能進(jìn)行進(jìn)一步分析,所以也是需要了解的。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5369瀏覽量
121274 -
接口
+關(guān)注
關(guān)注
33文章
8712瀏覽量
152013 -
usb
+關(guān)注
關(guān)注
60文章
7988瀏覽量
266260 -
驅(qū)動(dòng)開(kāi)發(fā)
+關(guān)注
關(guān)注
0文章
130瀏覽量
12120 -
DWC2
+關(guān)注
關(guān)注
0文章
35瀏覽量
158
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x06 DWC2 USB2.0 IP 頭文件與寄存器的讀寫(xiě)操作
![基于<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'>USB</b>2.0 IP 頭文件與<b class='flag-5'>寄存器</b>的讀寫(xiě)操作](https://file1.elecfans.com//web2/M00/82/D0/wKgZomRjHPyASvIXAAArqowtnwI282.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-DOEP接收相關(guān)的其他寄存器詳解
![基于<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>-DOEP接收相關(guān)的其他<b class='flag-5'>寄存器</b>詳解](https://file1.elecfans.com/web2/M00/8D/21/wKgaomS3T0aAaxCTAAEyIdKTA9w178.jpg)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x01開(kāi)篇介紹與新思DWC2 USB2.0控制器簡(jiǎn)介
![基于<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'>USB</b>2.0控制<b class='flag-5'>器</b>簡(jiǎn)介](https://file1.elecfans.com//web2/M00/82/92/wKgaomRYypOAKwq2AAAmRtEv6o4083.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x02 DWC2 USB2.0 IP功能特征介紹
![基于<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'>USB</b>2.0 IP功能特征<b class='flag-5'>介紹</b>](https://file1.elecfans.com//web2/M00/82/95/wKgaomRZq22ATFNiAAAtAuJdxpU526.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x05 DWC2 USB2.0 IP 寄存器介紹
![基于<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>05 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP <b class='flag-5'>寄存器</b><b class='flag-5'>介紹</b>](https://file1.elecfans.com//web2/M00/82/D0/wKgZomRjC5WAd6_qAAArzgMOMgI713.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x08 ULPI接口協(xié)議概覽
![基于<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>08 <b class='flag-5'>ULPI</b><b class='flag-5'>接口</b>協(xié)議概覽](https://file1.elecfans.com//web2/M00/89/1E/wKgaomR5eVqAb6czAAAW2dC3Oas042.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x0D PHY寄存器讀寫(xiě)代碼編寫(xiě)與測(cè)試
![基于<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'>0x0</b>D PHY<b class='flag-5'>寄存器</b>讀寫(xiě)代碼編寫(xiě)與測(cè)試](https://file1.elecfans.com//web2/M00/89/3D/wKgaomR-viGAOH0GAABMmbeELSM624.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x0E 使用邏輯分析儀分析ULPI數(shù)據(jù)
![基于<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'>0x0</b>E 使用邏輯分析儀分析<b class='flag-5'>ULPI</b>數(shù)據(jù)](https://file1.elecfans.com//web2/M00/89/50/wKgZomSARieAeZHbAAA0489GWSQ811.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-USB復(fù)位詳解
![基于<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ù)位詳解](https://file1.elecfans.com/web2/M00/8C/30/wKgZomSng_2AGXsAAABUiaQmGaQ671.png)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-設(shè)備類驅(qū)動(dòng)框架
![基于<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è)備類<b class='flag-5'>驅(qū)動(dòng)</b>框架](https://file1.elecfans.com/web2/M00/8C/DA/wKgaomSzonKANVRhAAASC9jm1HU655.jpg)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解
![基于<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>詳解](https://file1.elecfans.com/web2/M00/8C/DB/wKgaomSzrSiAGPKLAAE26HSudps200.jpg)
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-控制傳輸中斷相關(guān)寄存器
![基于<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>](https://file1.elecfans.com/web2/M00/8D/8B/wKgZomS9UAOANWTFAAAxMxJuNTY487.jpg)
將LDC1000配置了0X0B寄存器,各寄存器的值都變成了相應(yīng)寄存器的Deffault值,為什么?
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-0x0A ULPI接口同步模式介紹
![基于<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'>0x0</b>A <b class='flag-5'>ULPI</b><b class='flag-5'>接口</b>同步模式<b class='flag-5'>介紹</b>](https://file1.elecfans.com//web2/M00/89/2B/wKgaomR7RH2AFeUNAAApxJbLcPE581.png)
評(píng)論