RM新时代网站-首页

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

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

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

基于DWC2的USB驅(qū)動開發(fā)-0x08 ULPI接口協(xié)議概覽

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-06-02 13:08 ? 次閱讀

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

基于DWC2的USB驅(qū)動開發(fā)-0x08 ULPI接口協(xié)議概覽 (qq.com)

一. ULPI(協(xié)議概覽)

1.1 前言

前面我們介紹了GLPI接口,ULPI即基于GLPI接口的UTMI協(xié)議的實現(xiàn)。ULPI用于USB中LINK和PHY的通訊,主要應(yīng)用于外置PHY的場景。了解ULPI接口對整個USB驅(qū)動開發(fā)也有一些幫助,掌握USB也需要掌握USB整個鏈路的數(shù)據(jù)流,PHY到LINK這一層的數(shù)據(jù)流至關(guān)重要,雖然對于編程來說這一層對軟件可見度幾乎為0,但是了解其有利于解決分析問題,尤其是一些疑難雜癥.

1.2 概述

ULPI是LPI接口規(guī)范應(yīng)用于UTMI+協(xié)議的一個具體實現(xiàn), 相對于UTMI,使用ULPI減少了引腳數(shù)量,適合于外接USB收發(fā)器(PHY)的場景,支持OTG,主機,設(shè)備的應(yīng)用。

一般外接USB收發(fā)器比如原型驗證階段時采用ULPI接口,因為ASIC或者SOC的引腳數(shù)是比較受限的;而如果USB收發(fā)器集成封裝在ASIC,SOC內(nèi),則使用UTMI接口,因為在芯片內(nèi)部,不占用芯片的引腳。

UTMI才是LINK-PHY之間的標準接口,ULPI只是為了外置PHY等場景有低引腳需求才增加的實現(xiàn)。所以即使使用ULPI接口, LINK內(nèi)部實際也是有一個UTMI-ULPI的橋轉(zhuǎn)換為UTMI接口的,而PHY封裝在芯片內(nèi)部直接使用UTMI就不需要UMTI-ULPI的橋了,避免了橋接性能等方面的損失,這也是為什么PHY集成在芯片內(nèi)部都是直接使用UTMI接口的一個原因。

ULPI規(guī)范詳細說明了對UTMI+Level 3的支持,但PHY實現(xiàn)者可以選擇支持UTMI+中定義的任何級別。

ULPI定義了LINK到PHY之間的信號8個或者12個,即4個DATA或者8個DATA+nxt,stp,dir,clock。ULPI對UTMI+的引腳縮減,是通過對相對靜態(tài)的信號通過寄存器配置,數(shù)據(jù)線改為雙向,提供了一種訪問ULPI收發(fā)器上寄存器數(shù)據(jù)的方法來實現(xiàn)的。

如下圖所示:ULPI規(guī)格建議使用ULPI Link Wrapper和ULPI PHY Wrapper在原來的UTMI+ IP上封裝,這樣可以保持原來的UTMI+部分不變, 但是根據(jù)實現(xiàn)而定,也可以不要這個橋直接就使用ULPI接口。

image.png

WDC2控制器同時支持UTMI和ULPI的,可以配置為同時支持,軟件動態(tài)選擇,其PHY Interface Unit (PIU)框圖如下:

image.png

1.3 結(jié)構(gòu)

首先要從整體上了解下ULPI接口所處的層次以及其作用,這樣有利于后面的理解。

ULPI是LINK和PHY之間的接口,結(jié)構(gòu)圖下

所以有必要先了解下LINK和PHY分別是做什么的:

PHY:

即物理層設(shè)備Physical Layer ,也就是收發(fā)器Transceiver,比如USB334x就是用的比較多的MicroChip的PHY芯片。在PHY芯片的手冊中一般用收發(fā)器Transceiver的稱呼。而在描述UBS協(xié)議的規(guī)格書等中一般稱為PHY(Physical Layer),兩者說的是同一個東西,只是不同場景側(cè)重點不一樣,前者側(cè)重一個具體的東西所以叫做收發(fā)器,后者側(cè)重一個抽象的概念所以叫做PHY。

PHY即數(shù)字部分和模擬部分的橋梁, PHY的一邊通過ULPI接口和LINK通訊,這邊都是數(shù)字部分。PHY另一邊就是直接的總線信號比如USB的D+,D-這邊是模擬部分。

PHY的技術(shù)含量是比較高的,涉及到模擬的或者是模數(shù)的技術(shù)都有一定門檻,所以你可以看到國產(chǎn)很多企業(yè)能做控制器LINK,MAC這部分(雖然很可能大概也是買的IP),但是基本沒有能做PHY的,前者是數(shù)字部分,設(shè)計驗證相對來說更簡單,后者則更復(fù)雜設(shè)計驗證更加困難(所以后者都是購買集成)。

PHY部分主要實現(xiàn),總線信號的收發(fā),bit-stuff等,和LINK通過ULPI/UTMI接口通訊,則是以包為單位了,當(dāng)然包括PHY的狀態(tài)返回控制等。

LINK:

LINK即SOC這邊的控制器部分,實現(xiàn)數(shù)據(jù)鏈路層的處理,由于是純數(shù)字部分,這部分也比較好仿真驗證。有些文獻也叫Serial Interface Engine (SIE)

image.png

ULPI PHY必須要實現(xiàn)以下UTMI+的特征

  1. Linestate:必須在2-3個時鐘內(nèi)精確反映D+/D-的狀態(tài)。由LINK使用Linestate去計時總線事件。
  2. 濾波以防止由于D+和D-之間的偏斜而在Linestate上出現(xiàn)虛假的SE0/SE1狀態(tài)。低速濾波14個時鐘,全速和高速濾波2個時鐘。
  3. PHY在發(fā)送時內(nèi)部需要阻塞接收路徑,接收路徑在Squelch(HS)和SE0-to-J(FS/LS)時退出阻塞。
  4. TxReady必須用于包括Chirp的所有數(shù)據(jù)發(fā)送。
  5. 由于USB上的噪聲,有可能RxActice有效到無效而沒有接收到任何有效數(shù)據(jù),即RxValid不會有效。LINK必須能處理這種RxActive有效而RxValid無效的場景。

1.4 信號

ULPI的PHY接口信號基于PLPI定義,還增加了USB接口,其他雜項接口。

PHY接口是固定的,其他接口可能可變,以下只是一個通常的指導(dǎo)設(shè)計。

且規(guī)定了PHY必須是主機。這里需要注意和UTMI相比這里總線權(quán)顛倒了,UTMI是LINK掌握,這里是PHY掌握了,這是因為DATA是雙向數(shù)據(jù)了,為了保證接收數(shù)據(jù)時不被LINK打斷。

信號 方向(PHY的角度) 描述
PHY Interface
clock I/O 接口時鐘.PHY必須支持輸出60MHz時鐘,即必須支持時鐘輸出模式.可選支持輸入60MHz時鐘,即輸入時鐘模式是可選的.如果PHY支持這兩種時鐘模式,則必須由PHY自行配置,不能依賴ULPI的控制和數(shù)據(jù)信號去設(shè)置.
data I/O 數(shù)據(jù)總線,在ULPI總線空閑時即PHY和LINK都沒有數(shù)據(jù)要發(fā)送時,PHY拉低dir監(jiān)聽總線,此時由LINK發(fā)送數(shù)據(jù),而LINK又沒有數(shù)據(jù)要發(fā)送,所以就發(fā)送特殊值0,表示無效數(shù)據(jù)。必須支持8位數(shù)據(jù)寬,單邊沿,上升沿傳輸數(shù)據(jù)可選支持4位數(shù)據(jù)寬,雙邊沿,上下邊沿都傳輸數(shù)據(jù)
dir OUT 由PHY驅(qū)動控制數(shù)據(jù)總線的方向.PHY如果不能接收LINK發(fā)送過來的數(shù)據(jù)時拉高dir.比如PHY的PLL沒有穩(wěn)定時這適用于PHY的兩種時鐘模式.
stp IN LINK拉高stp表示USB包傳輸或者寄存器寫的結(jié)束,也可結(jié)束任何接收。Stp必須是在最后一個有效數(shù)據(jù)之后的CLK拉高。
nxt OUT PHY拉低nxt以掐斷除了寄存器讀和RX_CMD外的所有傳輸。與USB接收期間的RxValid和USB傳輸期間的TxReady相同。如果dir先前為低,則PHY還可同時設(shè)置nxt和dir以指示USB接收激活(RxActive)。PHY不容許在LINK發(fā)送TX_CMD時的第一個時鐘拉低nxt
USB****接口
D+ I/O USB的****D+引腳必須有
D- I/O USB的****D-****引腳必須有
ID IN USB的ID引腳 只有支持OTG的PHY才需要
VBUS I/O USB的VBUS引腳。支持OTG的PHY才需要。用于驅(qū)動VBUS和VBUS比較器
其他雜項
XI IN 晶體輸入或者時鐘輸入引腳,由廠家實現(xiàn)決定支持的晶體頻率
XO OUT 晶體輸出引腳如果是只支持時鐘輸入的則沒有該引腳
C+ I/O 電荷泵電容器正極端子
C- I/O 電荷泵電容器負極端子
SPKR_L IN 可選的Carkit left/mono speaker輸入
SPKR_MIC I/O 可選的Carkit right speaker輸入或者麥克風(fēng)輸出
RBIAS I/O 偏置電流電阻器

如下是一個典型的信號連接示例

使用的是PHY的時鐘輸出模式,即CLOCK由PHY提供

image.png

1.5框圖

image.png

UTMI+ Level 3 PHY core

ULPI PHY可以包含符合任何UTMI+級別的核心,ULPI中不支持16位數(shù)據(jù)總線的信號。上述顯示了3級UTMI+核心的典型框圖,PHY供應(yīng)商必須指定預(yù)期的UTMI+級別,并提供符合該級別所需的功能。

ULPI PHY Wrapper

ULPI PHY橋?qū)TMI+接口簡化為ULPI中描述的低引腳接口。UTMI+Level 3 PHY核心上顯示的所有信號都減少為ULPI接口信號

clock**, data , dir , stp , nxt . **寄存器映射存儲UTMI+接口的相對靜態(tài)信號。

Crystal Oscillator and PLL

當(dāng)晶體連接到PHY時,內(nèi)部時鐘和外部60MHz接口時鐘由內(nèi)部PLL產(chǎn)生即PHY的時鐘輸出模式。

當(dāng)沒有連接晶體時,PHY可以可選地從LINK提供的輸入60MHz時鐘生成內(nèi)部時鐘,即時鐘輸入模式。

General Biasing

內(nèi)部模擬電路需要精確的偏置電流。這通常是使用外部精確的參考電阻器產(chǎn)生的。

DrvVbusExternal and ExternalVbusIndicator

PHY可以可選地經(jīng)由可選引腳DrvVbusExternal來控制外部VBUS電源。

例如,外部電源可以是使用電源開關(guān)控制的電荷泵或5V電源。

外部電源由DrvVbus和OTG控制寄存器中的可選DrvVbusExternal位控制。

DrvVbusExternal輸出引腳的極性取決于實現(xiàn)方式。

如果提供對外部VBUS源的控制,則PHY可以可選地在可選引腳ExternalVbusIndicator上提供VBUS電源反饋信號。

如果提供該引腳,則該引腳的使用由OTG控制和接口控制寄存器中的可選控制位定義。

Power-On-Reset

必須在PHY中提供上電復(fù)位電路。當(dāng)電源首次施加到PHY時,通電復(fù)位將重置所有電路,并使ULPI接口處于可用狀態(tài)。

Carkit Option

PHY可以可選地支持車載套件模式Carkit Mode。在該模式下,LINK和USB接口之間的麥克風(fēng)和喇叭信號由PHY路由。在Carkit單聲道模式下,SPKR_L輸入單聲道揚聲器信號,SPKR_MIC輸出麥克風(fēng)信號MIC。在Carkit立體聲模式中,SPKR_L輸入左揚聲器信號,SPKR_MIC輸入右揚聲器信號SPKR_R。

1.6 模式

ULPI接口可以在下表中列出的五種獨立模式中的一種模式下運行。默認情況下,接口處于同步模式。其他模式由功能控制和接口控制寄存器中的位啟用。在同步模式下,數(shù)據(jù)總線傳輸命令和數(shù)據(jù)。在其他模式中,數(shù)據(jù)引腳會使用不同的功能重新定義。同步模式和低功率模式是強制性的。

模式名 模式描述
Synchronous Mode同步模式 這是一般的操作模式.ULPI接口發(fā)送數(shù)據(jù)和命令和 clock同步.
Low Power Mode低功耗模式 PHY掉電時鐘停止.PHY保持拉高 dir,data總線重定義為 LineState和中斷信號。
6-pin FS/LS Serial Mode(optional) data總線重定義為6-pin串行模式,包括6個引腳發(fā)送和接收USB的串行數(shù)據(jù)和1個引腳用于中斷信號事件.時鐘可使能或者不使能.該模式只有在支持8位data模式時才可能有。
3-pin FS/LS Serial Mode(optional) data總線重定義為3-pin串行模式,包括3個引腳發(fā)送和接收USB的串行數(shù)據(jù)和1個引腳用于中斷信號事件.時鐘可使能或者不使能.
Carkit Mode(optional) Data總線重定義為Carkit模式,包括2個引腳用于串行UART數(shù)據(jù)傳輸和1個引腳用于中斷信號事件,時鐘可選停止

1.7上電和復(fù)位

ULPI PHY提供內(nèi)部通電復(fù)位電路,該電路在通電時復(fù)位所有邏輯,包括UTMI+核心、ULPI接口和寄存器。

通電后,當(dāng)時鐘開始翻轉(zhuǎn)時,LINK必須通過寫入功能控制寄存器Function Control 中的Reset 位來重置PHY。當(dāng)該位被置位時,PHY將拉高dir并復(fù)位數(shù)字核心。

復(fù)位完成后PHY拉低dir,自動清除Function Control****寄存器的Reset位。

在拉低dir之后,PHY必須立即重新拉高dir,并向LINK發(fā)送RX CMD更新狀態(tài)。

復(fù)位期間,數(shù)據(jù)總線由PHY驅(qū)動,但數(shù)據(jù)未定義,LINK需要丟棄該數(shù)據(jù)。

在復(fù)位完成且dir被重新拉低之前,LINK不得嘗試訪問PHY。ULPI接口和寄存器不受復(fù)位的影響,除非寄存器定義中另有說明。

如下是一個典型的上電復(fù)位過程

image.png

T0表示電源穩(wěn)定

T2表示POR上電復(fù)位完成

對于時鐘輸出模式,當(dāng)PHY正在復(fù)位時,DIR引腳將被驅(qū)動為高電平,直到60 MHz輸出時鐘穩(wěn)定為止。

在時鐘輸入模式的情況下,DIR將保持高電平,直到內(nèi)部PLL鎖定并穩(wěn)定。

一旦PHY和LINK都完成復(fù)位,PHY就會向LINK發(fā)送RXCMD

PHY有可選的引腳復(fù)位RESETB,拉低RESETB將導(dǎo)致60 MHz輸出時鐘停止,DIR被驅(qū)動為高電平。PHY內(nèi)部將以與POR相同的方式進行復(fù)位,PLL將重新鎖定,ULPI寄存器將返回到其默認狀態(tài)。

1.8中斷事件通知

在任何模式下,PHY都能夠檢測中斷事件,并通知LINK中斷事件已經(jīng)發(fā)生。

。中斷事件通知由USB Interrupt Enable Rising 、USB InterruptEnable Falling 和Carkit Interrupt Enable 這幾個寄存器配置。

如果啟用了中斷,則無論PHY處于哪種模式,PHY都必須為所需的電路供電,唯一的例外是僅在同步模式下有效的HostDisconnect中斷,以及由IdPullup控制的IdGnd中斷。

為了確保時鐘停止時能夠檢測到中斷,LINK應(yīng)同時啟用上升沿和下降沿觸發(fā)。

如果處于同步模式,則中斷事件會導(dǎo)致PHY向LINK發(fā)送RX CMD命令字節(jié)。

如果不處于同步模式,則中斷事件導(dǎo)致PHY控制int引腳來通知中斷,當(dāng)Link檢測到int有效時,它會喚醒時鐘(如果是停止的),然后讀取USB中斷鎖存USB Interrupt

Latch和Carkit中斷鎖存寄存器 Carkit Interrupt Latch,以確定中斷源。

1.9 時序

1.9.1 時鐘

下表總結(jié)了時鐘時序。8位接口的時序來自UTMI。可選的4位接口添加了新的時序。ULPI還引入了幾個必須由PHY供應(yīng)商填寫的新參數(shù)。如果PHY支持可選輸入時鐘,則LINK時鐘必須滿足表中的要求和任何供應(yīng)商特定的要求。

image.png

  1. 4位接口時鐘頻率和占空比容差減少一半到5%,因為雙邊沿傳輸,上下邊沿都需要傳輸數(shù)據(jù)。

  2. Clock startup time after de-assertion of SuspendM: Peripheral 該事件計算了以滿足chirp 時序,來源于UTMI規(guī)格書

  3. Clock startup time after de-assertion of SuspendM: HOST,廠商填寫,建議啟動時間小于1ms以滿足恢復(fù)時間resume要求。如果PHY用作主機,并且接口時鐘不能設(shè)計為在1ms內(nèi)可用,則必須在內(nèi)部自動發(fā)送恢復(fù)resume 信號。

  4. 如果PHY支持可選的輸入時鐘功能,則PHY供應(yīng)商必須說明準備時間PHY preparation time after first transition of input clock。PHY必須同步其PLL,并準備在指定時間前接受來自LINK的傳輸命令。LINK時鐘啟動時間加上PHY準備時間,必須滿足外圍設(shè)備5.6ms的啟動時間(UTMI規(guī)格書中的說明),建議主機的總啟動時間為1ms。

    輸出時鐘模式

PHY必須能夠提供輸出時鐘,并滿足上表中列出的要求。

8位外設(shè)的輸出時鐘時序遵循UTMI規(guī)范,穩(wěn)態(tài)頻率(FSTEADY)提供USB高速數(shù)據(jù)所需的±500ppm精度。啟動時間(TSTART_DEV)允許外圍設(shè)備喚醒其時鐘,并在7ms的最大允許時間內(nèi)完成Chirp-K的傳輸(TSTART_DEV+TSTEADY)。

對于具有8位數(shù)據(jù)總線的主機,ULPI定義了一個新的輸出時鐘啟動時間(TSTART_host)。

當(dāng)USB主機檢測到遠程喚醒信號時,它必須喚醒時鐘,并在1ms的最大允許時間內(nèi)開始發(fā)送resume-K,PHY供應(yīng)商必須指定此值。

對于可選的4位數(shù)據(jù)接口,上升沿和下降沿都用于時鐘數(shù)據(jù)。為了提供可用的下降沿,ULPI將頻率(FSTART_4BIT)和占空比(DSTART_4BIT)容差降低了5%。

在所有情況下,當(dāng)PHY掛起suspended 或時鐘不“可用”時,必須停止輸出時鐘。

如下是一個PHY時鐘輸出模式的示意,時鐘輸出模式是PHY必須要支持的,

REFCLK輸入晶體或者時鐘源通過內(nèi)部PLL產(chǎn)生時鐘CLKOUT。

image.png

輸入時鐘模式(可選)

PHY可以可選地支持來自LINK的60MHz輸入時鐘,從而不需要晶體。PHY必須從60MHz輸入時鐘驅(qū)動其內(nèi)部PLL。

PHY供應(yīng)商負責(zé)指定所需的輸入時鐘時序。PHY供應(yīng)商必須說明所需的頻率、占空比、抖動、上升和下降時間偏差,如上表所示。還必須指定內(nèi)部PHY時鐘準備時間TPREP。如有必要,需求應(yīng)包括輸入電容以及吸電流和源電流能力

LINK可以選擇在低功率模式期間禁用或關(guān)閉其PLL,并且在其PLL穩(wěn)定之前不應(yīng)激活其時鐘輸出。不穩(wěn)定的LINK時鐘可能導(dǎo)致PHY PLL需要更長的時間來穩(wěn)定。

該模式是可選的,如下是一個示意

比如對于USB334x則CLKOUT接VDDIO表示使用該模式,不同芯片可能會不一樣,要看手冊決定。

image.png

輸入時鐘的抖動

如下的時序測試平面中

USB規(guī)格強制要求,在連接器A(TP2)處測得的高速傳輸眼圖的抖動不大于7.5%

在PHY引腳(TP1)處測得的抖動建議不大于5%.

ULPI規(guī)范沒有指定LINK輸出時鐘引腳(TP0)處的時鐘抖動要求,

然而LINK和PHY設(shè)計者應(yīng)當(dāng)最小化他們的時鐘抖動,使得LINK加PHY抖動的總和滿足推薦的5%抖動預(yù)算。

image.png

1.9.2 控制和數(shù)據(jù)

控制和數(shù)據(jù)時序要求如下,這些時序僅適用于同步模式。所有時序都是相對于在PHY時鐘引腳處看到的時鐘來測量的。控制信號和8位數(shù)據(jù)總是在時鐘的上升沿上計時,而可選的雙沿4位數(shù)據(jù)信號在上升沿和下降沿上計時。

主要關(guān)注建立時間和保持時間。

image.png

image.png

4位數(shù)據(jù)時鐘(可選)

PHY可以可選地支持4位數(shù)據(jù)總線而不是8位數(shù)據(jù)總線。原始的8位數(shù)據(jù)或命令被分成兩個4位的“半字節(jié)”。最低有效半字節(jié),數(shù)據(jù)(3:0),首先在時鐘的上升沿傳輸。最高有效的半字節(jié),數(shù)據(jù)(7:4),在時鐘的下降沿被第二次傳輸。不允許傳輸奇數(shù)個4位半字節(jié),這確保了完整字節(jié)的數(shù)據(jù)到達與8位設(shè)計的上升沿相同。

LINK和PHY必須滿足關(guān)于上升沿和下降沿規(guī)定的更嚴格的定時。允許輸出和輸入時鐘模式。

控制信號dir、stp和nxt僅在60MHz接口時鐘的上升沿上同步,因為數(shù)據(jù)傳輸總是字節(jié)對齊的。

時序如圖所示

image.png

1.10總結(jié)

本篇概述了ULPI相關(guān)的內(nèi)容,內(nèi)容比較多后面還有工作模式和寄存器相關(guān)內(nèi)容會分開講。

1.11參考

《UTMI+ Low Pin Interface (ULPI) Specification Revision 1.1 October 20, 2004》

《MicroChip AN 19.17 ULPI Design Guide》
審核編輯:湯梓紅

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

    關(guān)注

    33

    文章

    8575

    瀏覽量

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

    關(guān)注

    60

    文章

    7936

    瀏覽量

    264456
  • PHY
    PHY
    +關(guān)注

    關(guān)注

    2

    文章

    301

    瀏覽量

    51732
  • 驅(qū)動開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    130

    瀏覽量

    12072
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    125
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

    本文介紹接口協(xié)議時序
    的頭像 發(fā)表于 05-10 15:37 ?3046次閱讀
    基于<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'>USB</b>2.0 IP 架構(gòu)介紹之<b class='flag-5'>接口</b>和<b class='flag-5'>協(xié)議</b>時序

    基于DWC2USB驅(qū)動開發(fā)-0x08 GLPI接口詳解

    本文詳細介紹介紹GLPI接口。
    的頭像 發(fā)表于 06-02 09:05 ?1326次閱讀
    基于<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'>0x08</b> GLPI<b class='flag-5'>接口</b>詳解

    基于DWC2USB驅(qū)動開發(fā)-0x0D PHY寄存器讀寫代碼編寫與測試

    我們前面重點介紹了ULPI接口和PHY的寄存器,這一篇來進行PHY寄存器讀寫的代碼編寫與測試。從這一篇開始就正真進入了驅(qū)動編寫的過程了。
    的頭像 發(fā)表于 06-06 13:03 ?2256次閱讀
    基于<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'>0x0</b>D PHY寄存器讀寫代碼編寫與測試

    基于DWC2USB驅(qū)動開發(fā)-0x0E 使用邏輯分析儀分析ULPI數(shù)據(jù)

    工欲善其事必先利其器,所以在USB開發(fā)中工具很重要,示波器,邏輯分析儀,USB協(xié)議分析儀等都不可少。在底層問題分析時缺少有力工具時很難進一步分析,本文分享了
    的頭像 發(fā)表于 06-07 16:56 ?1641次閱讀
    基于<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'>0x0</b>E 使用邏輯分析儀分析<b class='flag-5'>ULPI</b>數(shù)據(jù)

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

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-IAD描述符詳解 (qq.com) 一.? 前言 IAD描述符用于一個設(shè)備功能關(guān)聯(lián)多個接口
    的頭像 發(fā)表于 06-27 08:45 ?12.4w次閱讀
    基于<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 ?6.4w次閱讀
    基于<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ī)格書,練習(xí)招式
    的頭像 發(fā)表于 07-07 08:46 ?3690次閱讀
    基于<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è)備類驅(qū)動框架

    本文轉(zhuǎn)自公眾號,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-設(shè)備類驅(qū)動框架 (qq.com) 一.前言 從軟件頂層,從數(shù)據(jù)流的角度來看
    的頭像 發(fā)表于 07-16 15:56 ?1305次閱讀
    基于<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 ?1639次閱讀
    基于<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 ?2268次閱讀
    基于<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ā)送問題分析案例

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

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

    基于DWC2USB驅(qū)動開發(fā)-0x0A ULPI接口同步模式介紹

    同步模式是ULPI必須支持的且主要的模式,內(nèi)容比較多,對于軟件開發(fā)人員來說重點關(guān)注下總線時序,即數(shù)據(jù)是如何交互的,這樣必要的的時候可以使用邏輯分析儀進行抓包分析。另外重點關(guān)注下各個狀態(tài)是如何反應(yīng)在ULPI的寄存器中的
    的頭像 發(fā)表于 06-04 15:35 ?3973次閱讀
    基于<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'>0x0</b>A <b class='flag-5'>ULPI</b><b class='flag-5'>接口</b>同步模式介紹

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

    本文轉(zhuǎn)自公眾號系列文章,歡迎關(guān)注 基于DWC2USB驅(qū)動開發(fā)-USB包詳解 (qq.com) 一.前言 前面我們對SETUP完成標志DOE
    的頭像 發(fā)表于 07-24 18:04 ?1568次閱讀
    基于<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
    RM新时代网站-首页