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ā)-USB連接詳解

嵌入式USB開(kāi)發(fā) ? 來(lái)源:嵌入式Lee ? 作者:嵌入式Lee ? 2023-07-07 08:46 ? 次閱讀

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

基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-USB連接詳解 (qq.com)

一.前言

之前一直在閱讀手冊(cè),規(guī)格書(shū),練習(xí)招式,學(xué)習(xí)心法,從這一篇開(kāi)始我們就要真刀實(shí)槍的干了,當(dāng)然不是一味蠻干。驅(qū)動(dòng)編寫(xiě),調(diào)試,實(shí)踐的過(guò)程會(huì)結(jié)合閱讀規(guī)格書(shū),手冊(cè),理論結(jié)合實(shí)踐,招式和心法要同步進(jìn)行。

二.USB連接需要幾步?

進(jìn)行USB連接需要幾步?我們參考把大象裝進(jìn)冰箱需要幾步:第一步打開(kāi)冰箱門(mén),第二步把大象裝入冰箱,第三步關(guān)閉冰箱門(mén),完成。USB連接同樣的簡(jiǎn)單,第一步插上開(kāi)發(fā)板USB接口電腦,第二步電腦識(shí)別到USB設(shè)備,第三步恭喜你獲得一個(gè)黃色告警對(duì)話框!完美完成!也許很不幸,你沒(méi)有獲得黃色告警對(duì)話框,那么就是失敗了,后面我們會(huì)詳細(xì)介紹怎么去分析調(diào)試。

b6607f12-1c5f-11ee-9c1d-dac502259ad0.png

三.USB連接原理

前面我們已經(jīng)完成了USB連接的操作,實(shí)踐了師傅教的第一招黑虎掏心,but what?我干了什么?前面我們說(shuō)過(guò)需要理論結(jié)合實(shí)踐,招式結(jié)合心法,招式已經(jīng)嘗試了,但是到底是什么原理呢?到底是怎么做到的呢?那么就要從心法去探究,USB江湖的最基礎(chǔ)的心法,就是USB2.0的規(guī)格書(shū)。當(dāng)然招式也有招式的拳譜劍譜,我們這里就對(duì)應(yīng)的使用的USB控制器IP的規(guī)格書(shū)(這里是新思的DDC2)和PHY的規(guī)格書(shū)(microChip的USB334x)。

我們打開(kāi)USB2.0規(guī)格書(shū),翻到141頁(yè)看到如下圖,主機(jī)(或HUB)端D+和D-均由Rpd=15KΩ的電阻下拉,未接入設(shè)備時(shí)此時(shí)D+和D-都是0V。設(shè)備(或者下級(jí)HUB)端通過(guò)D+或D-上拉Rpu=1.5KΩ來(lái)區(qū)分是全速還是低速設(shè)備,全速設(shè)備D+上拉,低速設(shè)備D-上拉。設(shè)備端的上拉電阻和主機(jī)端下拉電阻分壓得到和未接設(shè)備時(shí)不一樣的電平,主機(jī)檢測(cè)該電平即可知道有設(shè)備插入,原理就是這么簡(jiǎn)單,牛逼的武功也往往是很簡(jiǎn)單,比如六脈神劍也就那么一彈手指。

b67a73fe-1c5f-11ee-9c1d-dac502259ad0.png

為什么是上拉1.5K呢,因?yàn)樯侠娮枰WC分壓值不小于VIH(min),因?yàn)橹挥袧M足該條件才能被識(shí)別為高,為什么這個(gè)電壓能識(shí)別為高呢,那就是硬件電氣特性決定的了,我喜歡死纏爛打的追問(wèn)的伙伴,可以繼續(xù)深挖到收發(fā)器晶體管,半導(dǎo)體.... ,如果能追到這一層的那么肯定是孤獨(dú)求敗級(jí)別的高手了,膜拜之。VIH在規(guī)格書(shū)中的要求如下至少要為2V(可以規(guī)格書(shū)中搜索找到)

b6d5c60a-1c5f-11ee-9c1d-dac502259ad0.png

除了上述要求,上拉電阻還要保證能夠在2.5μs的最小復(fù)位時(shí)間內(nèi)將D+或D-從0V上拉至VIH(min),因?yàn)樵趶?fù)位結(jié)束時(shí)要進(jìn)行總線狀態(tài)評(píng)估。

2.5uS的要求在如下表格中說(shuō)明,即復(fù)位最短時(shí)間是2.5uS.

b6f2f69e-1c5f-11ee-9c1d-dac502259ad0.png

綜上要求,具有可拆卸電纜的設(shè)備使用1.5 k? ±5%電阻器連接到3.0 V和3.6 V之間的電壓源(VTERM),以滿足這些要求。帶有固定電纜的設(shè)備可以使用替代端接方式。但是,任何終端的Thevenin(戴維寧)電阻必須不小于900?.注:終端的Thevenin(戴維寧)電阻不包括主機(jī)/集線器上的15 k±5%的電阻。

上拉電阻器上的電壓源必須來(lái)源于USB電纜上提供的電源或由USB電纜上的電源控制,以便在移除VBUS時(shí),上拉電阻器不會(huì)在其連接的數(shù)據(jù)線上提供電流。即VBUS斷開(kāi)時(shí)上拉也應(yīng)該斷開(kāi)。

上述表中描述的是針對(duì)低速和高速設(shè)備連接檢測(cè),高速呢,高速設(shè)備的連接檢測(cè)和全速一樣,只是后面速度枚舉有不同,這個(gè)先按下不表,后面再講解。

四.USB連接驅(qū)動(dòng)

驅(qū)動(dòng)編寫(xiě)我們參考控制器IP的手冊(cè),找到如下寄存器

手冊(cè)P529的5.4.48 DCTL,Offset: 0x804,bit1

b724077a-1c5f-11ee-9c1d-dac502259ad0.pngb7451d3e-1c5f-11ee-9c1d-dac502259ad0.png

b7999846-1c5f-11ee-9c1d-dac502259ad0.png

可以看到默認(rèn)值是1,即默認(rèn)是斷開(kāi)上拉電阻的,注意這里的邏輯,這個(gè)bit表示斷開(kāi)連接。

軟件寫(xiě)0上拉電阻,這樣在DP或者DM上上拉電阻(根據(jù)速度而定,如何設(shè)置速度枚舉速度后面再講),這樣主機(jī)就可以檢測(cè)到了。

注意軟件操作這個(gè)bit時(shí)不要過(guò)于頻繁,一般留個(gè)10mS以上充足的間隔時(shí)間,大于上述手冊(cè)中的描述時(shí)間。

注意該位不受控制器軟件復(fù)位影響。

我們的驅(qū)動(dòng)代碼如下,寄存器的操作封裝,參考之前的文章,為什么用宏不用結(jié)構(gòu)體,也有專門(mén)的文章講解,可以去瞅瞅。

static void usb_dev_crtl_sft_discon(uint8_t dis)
{
  if (dis) {
    REG_OTG_DCTL |= DCTL_SOFT_DISCONN;
  } else {
    REG_OTG_DCTL &= ~(DCTL_SOFT_DISCONN);
  }
}

我們之前一直強(qiáng)調(diào),要了解根本原理,不管學(xué)習(xí)招式還是學(xué)習(xí)心法,一定要追其核心根本原理。那么這個(gè)bit寫(xiě)0就能上拉,到底是怎么實(shí)現(xiàn)的呢,

我們這里操作的是控制器即LINK,但是實(shí)際工作是由PHY去完成的,所以寫(xiě)了這個(gè)bit之后,

LINK會(huì)通過(guò)PHY和LINK之間的UTMI或者ULPI接口告訴PHY,最終由PHY去完成這個(gè)上拉工作。于是乎我們?nèi)シ哖HY的手冊(cè)這里是USB334x,看到如下圖,正是PHY將如下上拉電阻拉高來(lái)實(shí)現(xiàn)連接,至此我們已經(jīng)了解了整個(gè)過(guò)程。

b7c3346c-1c5f-11ee-9c1d-dac502259ad0.png

從ULPI的規(guī)格書(shū)中還可以看到實(shí)際是通過(guò)PHY對(duì)應(yīng)的寄存器相關(guān)位配置為不同的模式來(lái)控制的

wKgaomSnaxyAOQYPABeklvcYc58823.png

而UTMI接口中直接對(duì)應(yīng)的是信號(hào)

wKgaomSna9-AIm-7ABSaMV_vOTI168.png

這里順便提一下,ULPI對(duì)UTMI引腳的縮減,實(shí)際就是通過(guò)將一些信號(hào)線直接控制轉(zhuǎn)為寄存器控制來(lái)達(dá)到的。

但是有好問(wèn)者,會(huì)問(wèn)那么LINK是怎么告訴PHY要去上拉電阻的呢,問(wèn)得很好,高手總是從刨根問(wèn)底開(kāi)始的。這個(gè)就要了解UTMI和ULPI協(xié)議了,可以參考本系列文章,講解了ULPI協(xié)議,甚至講解了如何使用邏輯分析儀抓包ULPI,那么你就可以抓到ULPI接口上具體的數(shù)據(jù),來(lái)調(diào)試分析了,比如最終沒(méi)能上拉,通過(guò)ULPI抓包可以確定是沒(méi)有發(fā)送到PHY還是PHY沒(méi)有執(zhí)行,進(jìn)一步縮小范圍。

https://mp.weixin.qq.com/s/e4MCpASUXW4oKzfYOdMRwg

https://mp.weixin.qq.com/s/7oTIgxvrui_ZdjCktFo87g

還有更細(xì)致的會(huì)問(wèn),那么這個(gè)上拉電阻是所有芯片都會(huì)有嗎,答案是否,有些芯片是沒(méi)有的,比如一些STM32MCU,這個(gè)時(shí)候需要外部提供上拉電路,使用IO控制。如下(網(wǎng)上隨便找的一張圖),USB_E來(lái)控制上拉。

b7e24d98-1c5f-11ee-9c1d-dac502259ad0.png

五.調(diào)試

上面我們?nèi)绻芸吹诫娔X彈出黃色告警的對(duì)話框,恭喜你,你已經(jīng)練就了第一招黑虎掏心。如果不幸沒(méi)有彈出呢,那么我們就需要進(jìn)行調(diào)試。那么就要派出示波器出來(lái)一展身手了。

我們直接使用示波器監(jiān)控DP和DM的電平,查看初始是否都為0,然后connect后DP,DM是否對(duì)應(yīng)的拉高,拉高的值是否符合要求達(dá)到了VIH(min)。如果沒(méi)有拉高則從以下方面去分析:

1.硬件檢查,使用萬(wàn)用表測(cè)量DP DM到芯片的相應(yīng)引腳是否聯(lián)通,測(cè)試DP,DM是否和地或者VCC短路。如果外置PHY則檢查PHY是否工作,通過(guò)時(shí)鐘等關(guān)鍵引腳判斷。

2.將DP DM配置為普通IO,翻轉(zhuǎn)IO使用示波器查看硬件連通性。強(qiáng)調(diào)下該方式是嵌入式一種常用的測(cè)試方法,用于確認(rèn)IO到硬件上是否正常聯(lián)通,有時(shí)還可以使用IO做時(shí)序分析測(cè)試,即在一定的事件發(fā)生時(shí)翻轉(zhuǎn)IO,用示波器測(cè)量,這比使用軟件定時(shí)器和串口打印更精確。多個(gè)通道還可以可視化展現(xiàn)相位關(guān)系,簡(jiǎn)單的一招確是調(diào)試的大招。

3.檢查DP DM是否按照芯片手冊(cè)配置為了對(duì)應(yīng)的功能,包括輸入輸出模式,功能選擇等,有些芯片可能需要重映射。

4.檢查USB相關(guān)的初始化是否正確,包括時(shí)鐘使能,IO模塊使能,外設(shè)模塊使能,時(shí)鐘配置(比如48M時(shí)鐘源等),檢查模塊復(fù)位,模塊寄存器保護(hù)等?;刈x寄存器確認(rèn)相應(yīng)的寄存器是否確實(shí)配置成功,回讀總是必要的,可靠性編程中需要考慮,寫(xiě)入不一定成功的,芯片也是有出錯(cuò)概率的。

我這里針對(duì)DWC的IP,測(cè)試代碼如下,10mS進(jìn)行一次斷開(kāi)和連接使用示波器查看

 while(1)
  {
    usb_dev_crtl_sft_discon(0);
    iot_timer_delay_ms(10);
    usb_dev_crtl_sft_discon(1);
    iot_timer_delay_ms(10);
  }

我這里是高速模式,示波器測(cè)試DP波形(黃色)如下:

b80fff72-1c5f-11ee-9c1d-dac502259ad0.png

六.總結(jié)

以上可以看出USB連接原理很簡(jiǎn)單,就是一個(gè)上拉電阻,就好比將大象裝進(jìn)冰箱一樣簡(jiǎn)單。招式雖簡(jiǎn)單,但是其背后的心法,原理確很重要,細(xì)節(jié)也很重要。這就是為什么喬峰使出黑虎掏心如此威力巨大,而一些綠林大漢使出來(lái)確平平無(wú)奇,這是心法和招式理解是否達(dá)到了爐火純晴的地步的區(qū)別。USB連接也是如此,只是知道上拉,還是知道LINK的寄存器如何配置,還是知道LINK和PHY如何通訊告訴PHY去上拉,甚至知道如何去抓包確認(rèn),還是知道上拉電阻為什么是1.5K有什么要滿足的條件,還是知道芯片不帶上拉如何去外置上拉等等,都是對(duì)應(yīng)不同的級(jí)別??磥?lái)一招USB連接,一招黑虎掏心也可以分為18級(jí),只有練到最高級(jí)爐火純青才能所向披靡,遇BUG解BUG,遇fault殺fault。

審核編輯 黃宇

聲明:本文內(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)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7876

    瀏覽量

    263707
  • USB驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    1

    文章

    136

    瀏覽量

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

    關(guān)注

    0

    文章

    130

    瀏覽量

    12059
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    118
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于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)篇介紹與新思DWC2 USB2
    的頭像 發(fā)表于 05-08 18:10 ?4460次閱讀
    基于<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>-0x01開(kāi)篇介紹與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0控制器簡(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,被大量使用。從linux的內(nèi)核源碼驅(qū)動(dòng)中就帶
    的頭像 發(fā)表于 05-09 10:09 ?8927次閱讀
    基于<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>-0x02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介紹

    基于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)多
    的頭像 發(fā)表于 06-27 08:45 ?5.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>-IAD描述符<b class='flag-5'>詳解</b>

    基于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) 一.前言
    的頭像 發(fā)表于 07-07 11:18 ?5.4w次閱讀
    基于<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ù)位<b class='flag-5'>詳解</b>

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

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-高速設(shè)備枚舉為全速設(shè)備問(wèn)題案例分析 (qq.com) 一.前言 ? 本文分享一個(gè)高速設(shè)備被枚舉為全速的問(wèn)題。 ? ? 高速設(shè)備速
    的頭像 發(fā)表于 07-10 17:12 ?1282次閱讀
    基于<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è)備枚舉為全速設(shè)備問(wèn)題案例分析

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

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

    基于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.com) 前言 如下寄存器DIEPxxx,
    的頭像 發(fā)表于 07-16 16:42 ?1550次閱讀
    基于<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)的寄存器DMA寄存器<b class='flag-5'>詳解</b>

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

    不管什么通訊協(xié)議,比如UART,SPI,USB等等,不管是并口還是串口,不管是同步還是異步,我們從抽象的角度去看,其本質(zhì)都是一樣的。都是先定義物理信號(hào),物理信號(hào)可能是差分,單端,電流驅(qū)動(dòng)電壓驅(qū)動(dòng)等等
    的頭像 發(fā)表于 07-23 17:11 ?2398次閱讀
    基于<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>包<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 ?2299次閱讀
    基于<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)寄存器

    基于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 ?2060次閱讀
    基于<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)的控制器是DWC2USB2.0 OTG使用的是Synopsys 方案,即使用DWC2控制器同時(shí)實(shí)現(xiàn)Host和Device功能,
    發(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ù)代碼不滿,只是無(wú)奈,迫于時(shí)間就沒(méi)重構(gòu),果不其然,usb bug 一堆,隨意舉例,這還
    發(fā)表于 06-14 15:23

    無(wú)法讓USB主機(jī)正常工作是我做錯(cuò)了什么嗎?

    cdc_ncm[ 1.793050] dwc2 49000000.usb-otg: mapped PA 49000000 to VA 7975fc9b[ 1.793872] ehci_hcd: USB 2.0
    發(fā)表于 12-02 06:06

    基于DWC2USB驅(qū)動(dòng)開(kāi)發(fā)-高速設(shè)備速度握手詳解

    前面我們分析了USB連接和復(fù)位的過(guò)程, 也知道低速和全速/高速的USB設(shè)備分別是上拉DM和DP,主機(jī)通過(guò)不同的上拉區(qū)分接的是低速還是全速/高速設(shè)備的。但是怎么區(qū)分全速和高速呢? 這就需要額外的一些握手過(guò)程,本篇就來(lái)詳細(xì)介紹該過(guò)程
    的頭像 發(fā)表于 07-08 08:40 ?2569次閱讀
    基于<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'>詳解</b>

    基于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)
    的頭像 發(fā)表于 07-24 18:04 ?1407次閱讀
    基于<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