91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于DWC2的USB驅(qū)動開發(fā)-DOEP接收相關(guān)的其他寄存器詳解

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-07-19 10:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

基于DWC2的USB驅(qū)動開發(fā)-DOEP接收相關(guān)的其他寄存器詳解 (qq.com)

前言

前面介紹了DOEP的DMA相關(guān)的寄存器,這一篇繼續(xù)來講剩下的寄存器。

DOEPTSIZi

寄存器偏移地址0xB10 + i*20

RxDPID對于控制OUT端點表示可以接收連續(xù)的SETUP包數(shù),只讀

對于同步 OUT端點,用于表示最后接收的包的類型,只讀。

圖片

PktCnt軟件寫接收的包數(shù),硬件處理完即指定的包數(shù)從RxFIFO搬運到用戶存儲之后,該值硬件更新遞減,處理完變?yōu)?.

只有非Scatter/Gather DMA的DMA模式才有,Scatter/Gather DMA模式在描述符中定義

圖片

傳輸數(shù)據(jù)的大小,軟件寫該寄存器表示有多少數(shù)據(jù)需要接收,硬件從RxFIFO搬運了指定數(shù)據(jù)到用戶指定的DMA區(qū)域時產(chǎn)生接收完成中斷,并且硬件更新該值,接收了多少數(shù)據(jù)就減少多少,減少到0說明接收完

只有非Scatter/Gather DMA的DMA模式才有,Scatter/Gather DMA模式在描述符中定義
圖片

DOEPINTi

寄存器偏移地址

0xB08 + i*20

各中斷狀態(tài)位,寫1清零
圖片

其中XferCompl表示接收完,是最重要中斷。其他中斷狀態(tài),后面驅(qū)動講接收中斷處理時單獨詳講。

比如如下OUT中斷讀出值為0x201即XferCompl=1和BNAIntr=1,即接收完成沒有后續(xù)描述符需要處理了。
圖片

DOEPCTLi

寄存器偏移地址0xB00 + i*20

幾乎和DIEP對應(yīng)的寄存器是對應(yīng)的,參考上篇DIEP相關(guān)的介紹

圖片

如下是OUT 中斷時寄存器值

CTL寄存器值為0x48040,

接收中斷時ENPena硬件自動清零了,

EPType為ISO端點

USBActEP=1表示端點是激活狀態(tài)

包大小為0x40

圖片

另外雖然是Scatter/Gather DMA模式實際我們觀察DOEPTSIZi也是會遞減變化的,

包括偏移0xB18 + i*20處的值(之前說的對于DOEP保留的對應(yīng)DIEP的DTXFSTSi的寄存器)也是會遞減的,只是手冊描述保留了,實際IP應(yīng)該還是有使用更新的,這個要去看IP的代碼了,應(yīng)該是不開放給用戶。

總結(jié)

對于接收即OUT端點,

Scatter/Gather DMA模式就只需要配置兩個寄存器

DOEPCTLi

DOEPDMAi為描述符鏈表的地址, 還需要填充描述符的內(nèi)容

最后DOEPCTLi的EPEna置位,開始交給DMA去接收數(shù)據(jù),此時軟件不能再訪問相關(guān)寄存器,必須等接收完成中斷EPEna硬件清零,軟件才能去訪問。

非Scatter/Gather DMA模式,則還要配置DOEPTSIZi 和DOEPDMABi ,配置緩沖區(qū)和傳輸數(shù)據(jù)大小,Scatter/Gather DMA模式這兩個寄存器不需要配置,對應(yīng)信息在描述符中配置。

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5608

    瀏覽量

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

    關(guān)注

    60

    文章

    8437

    瀏覽量

    284389
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6288

    瀏覽量

    117992
  • 單板計算機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    89

    瀏覽量

    16249
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    694

    瀏覽量

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

    關(guān)注

    0

    文章

    140

    瀏覽量

    12625
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    372
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SN74SSTVF16857 14位寄存器緩沖:設(shè)計與應(yīng)用詳解

    SN74SSTVF16857 14位寄存器緩沖:設(shè)計與應(yīng)用詳解 在電子設(shè)計領(lǐng)域,寄存器緩沖是不可或缺的組件,它能有效處理數(shù)據(jù)傳輸和信號處
    的頭像 發(fā)表于 02-10 14:05 ?154次閱讀

    從“能用”到“懂原理”:ARMv8寄存器架構(gòu)深度拆解

    做嵌入式或芯片開發(fā)的同學(xué),大概率都有過這樣的困惑: 寫匯編時知道X0-X30是通用寄存器,調(diào)用函數(shù)時按規(guī)矩用X0-X7傳參,但為什么是這8個?剩下的寄存器又該怎么劃分職責(zé)?調(diào)試異常時,盯著SPSR
    的頭像 發(fā)表于 01-10 07:10 ?135次閱讀
    從“能用”到“懂原理”:ARMv8<b class='flag-5'>寄存器</b>架構(gòu)深度拆解

    探索IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖

    探索IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖 在DDR2內(nèi)存模塊的設(shè)計中,合適的寄存器緩沖
    的頭像 發(fā)表于 01-08 16:30 ?251次閱讀

    探索IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖

    1.7 - 1.9V VDD電壓運行的25位1:1或14位1:2可配置寄存器緩沖。它的時鐘和數(shù)據(jù)輸入與JEDEC標(biāo)準(zhǔn)的SSTL_18兼容,控制輸入為LVCMOS,輸出則是經(jīng)過優(yōu)化的1.8V CMOS
    的頭像 發(fā)表于 12-24 16:30 ?314次閱讀

    Renesas IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖詳解

    Renesas IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖詳解 在DDR2內(nèi)存模塊的設(shè)計中,一款合適的
    的頭像 發(fā)表于 12-23 15:55 ?476次閱讀

    嵌入式系統(tǒng)必懂的 20 個寄存器

    嵌入式開發(fā)看起來很復(fù)雜,但很多操作其實都離不開寄存器寄存器就是MCU內(nèi)部的存儲單元,它們控制著處理和外設(shè)的行為。熟悉這些寄存器,你就能更
    的頭像 發(fā)表于 11-14 10:28 ?1081次閱讀
    嵌入式系統(tǒng)必懂的 20 個<b class='flag-5'>寄存器</b>

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計32:寄存器功能驗證與分析2

    寄存器最大值為 64’hFFFFFFFFFFFFFFFF,到達(dá)最大值后一個時鐘周期后翻轉(zhuǎn)回 0, 在隨機(jī)時刻使用 force 將寄存器賦值臨近最大值, 當(dāng)寄存器達(dá)到最大值后, 翻轉(zhuǎn)回到 0, 讀取數(shù)值為 0, 仿真行為符合設(shè)計預(yù)
    的頭像 發(fā)表于 10-14 17:06 ?714次閱讀
    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計32:<b class='flag-5'>寄存器</b>功能驗證與分析<b class='flag-5'>2</b>

    ?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74HCT595/SN74HCT595-Q1 8位移位寄存器包含8位串進(jìn)并出移位寄存器,向8位D類存儲寄存器饋送信號。存儲寄存器具有并行 3 狀
    的頭像 發(fā)表于 09-19 14:31 ?935次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用指南

    TPIC6595 8位功率移位寄存器技術(shù)文檔摘要

    該TPIC6595是一款單片、高壓、大電流功率的8位移位寄存器,設(shè)計用于需要相對較高負(fù)載功率的系統(tǒng)。該器件在輸出端包含一個內(nèi)置電壓鉗位,用于電感瞬態(tài)保護(hù)。功率驅(qū)動器應(yīng)用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 11:10 ?919次閱讀
    TPIC6595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔摘要

    ?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)

    TPIC6B595器件是一款單片、高壓、中電流功率8位移位寄存器,設(shè)計用于需要相對高負(fù)載功率的系統(tǒng)。該器件在輸出端包含一個內(nèi)置電壓鉗位,用于電感瞬態(tài)保護(hù)。功率驅(qū)動器應(yīng)用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 10:16 ?1008次閱讀
    ?TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技術(shù)文檔總結(jié)

    SN74LV594A:2-5.5V帶輸出寄存器的8位移位寄存器技術(shù)解析

    Texas Instruments SN74LV594A/SN74LV594A-Q1 8位并行輸出串行移位寄存器設(shè)計采用2V至5.5V V~CC~ 運行。SN74LV594A-Q1符合汽車應(yīng)用類
    的頭像 發(fā)表于 09-02 09:42 ?915次閱讀
    SN74LV594A:<b class='flag-5'>2</b>-5.5V帶輸出<b class='flag-5'>寄存器</b>的8位移位<b class='flag-5'>寄存器</b>技術(shù)解析

    ?TLC6C5912 12通道移位寄存器LED驅(qū)動器技術(shù)文檔總結(jié)

    該TLC6C5912是一款單片、中壓、低電流功率 12 位移位寄存器 設(shè)計用于需要相對中等負(fù)載功率的系統(tǒng),例如 LED。 該器件包含一個 12 位串行輸入并行輸出移位寄存器,可為 12 位饋電
    的頭像 發(fā)表于 08-26 14:16 ?992次閱讀
    ?TLC6C5912 12通道移位<b class='flag-5'>寄存器</b>LED<b class='flag-5'>驅(qū)動器</b>技術(shù)文檔總結(jié)

    ?TLC6C5816-Q1 16位移位寄存器LED驅(qū)動器技術(shù)文檔總結(jié)

    TLC6C5816-Q1 器件是一款 16 位移位寄存器 LED 驅(qū)動器,旨在支持汽車 LED 應(yīng)用。內(nèi)置LED開路和LED短路診斷機(jī)制,提供增強(qiáng)的安全保護(hù)。該器件包含 16 個通道,帶有
    的頭像 發(fā)表于 08-25 18:13 ?977次閱讀
    ?TLC6C5816-Q1 16位移位<b class='flag-5'>寄存器</b>LED<b class='flag-5'>驅(qū)動器</b>技術(shù)文檔總結(jié)

    使用寄存器點亮LED燈

    學(xué)習(xí)本章時,配合以上芯片手冊中的“19. I/O Ports”章節(jié)一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。本章內(nèi)容涉及到較多寄存器方面的深入內(nèi)容,對于初學(xué)者而言這些內(nèi)容豐富也較難理解,但非常有必要細(xì)讀研究、夯實基礎(chǔ)。
    的頭像 發(fā)表于 05-28 17:37 ?1305次閱讀
    使用<b class='flag-5'>寄存器</b>點亮LED燈

    如何用C語言操作寄存器——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(10)

    由于寄存器的數(shù)量是非常之多的,如果每個寄存器都用像*((uint32_t*)(0x40080000+0x0020*1))這樣的方式去訪問的話,會顯得很繁瑣、很麻煩。為了更方便地訪問寄存器,我們會借助C語言結(jié)構(gòu)體的特性去定義
    的頭像 發(fā)表于 04-22 15:30 ?1965次閱讀
    如何用C語言操作<b class='flag-5'>寄存器</b>——瑞薩RA系列FSP庫<b class='flag-5'>開發(fā)</b>實戰(zhàn)指南(10)