基于DWC2的USB驅(qū)動(dòng)開發(fā)-DOEP接收相關(guān)的其他寄存器詳解 (qq.com)
前言
前面介紹了DOEP的DMA相關(guān)的寄存器,這一篇繼續(xù)來(lái)講剩下的寄存器。
DOEPTSIZi
寄存器偏移地址0xB10 + i*20
RxDPID對(duì)于控制OUT端點(diǎn)表示可以接收連續(xù)的SETUP包數(shù),只讀
對(duì)于同步 OUT端點(diǎn),用于表示最后接收的包的類型,只讀。

PktCnt軟件寫接收的包數(shù),硬件處理完即指定的包數(shù)從RxFIFO搬運(yùn)到用戶存儲(chǔ)之后,該值硬件更新遞減,處理完變?yōu)?.
只有非Scatter/Gather DMA的DMA模式才有,Scatter/Gather DMA模式在描述符中定義

傳輸數(shù)據(jù)的大小,軟件寫該寄存器表示有多少數(shù)據(jù)需要接收,硬件從RxFIFO搬運(yùn)了指定數(shù)據(jù)到用戶指定的DMA區(qū)域時(shí)產(chǎn)生接收完成中斷,并且硬件更新該值,接收了多少數(shù)據(jù)就減少多少,減少到0說(shuō)明接收完
只有非Scatter/Gather DMA的DMA模式才有,Scatter/Gather DMA模式在描述符中定義
DOEPINTi
寄存器偏移地址
0xB08 + i*20
各中斷狀態(tài)位,寫1清零
其中XferCompl表示接收完,是最重要中斷。其他中斷狀態(tài),后面驅(qū)動(dòng)講接收中斷處理時(shí)單獨(dú)詳講。
比如如下OUT中斷讀出值為0x201即XferCompl=1和BNAIntr=1,即接收完成沒有后續(xù)描述符需要處理了。
DOEPCTLi
寄存器偏移地址0xB00 + i*20
幾乎和DIEP對(duì)應(yīng)的寄存器是對(duì)應(yīng)的,參考上篇DIEP相關(guān)的介紹

如下是OUT 中斷時(shí)寄存器值
CTL寄存器值為0x48040,
接收中斷時(shí)ENPena硬件自動(dòng)清零了,
EPType為ISO端點(diǎn)
USBActEP=1表示端點(diǎn)是激活狀態(tài)
包大小為0x40

另外雖然是Scatter/Gather DMA模式實(shí)際我們觀察DOEPTSIZi也是會(huì)遞減變化的,
包括偏移0xB18 + i*20處的值(之前說(shuō)的對(duì)于DOEP保留的對(duì)應(yīng)DIEP的DTXFSTSi的寄存器)也是會(huì)遞減的,只是手冊(cè)描述保留了,實(shí)際IP應(yīng)該還是有使用更新的,這個(gè)要去看IP的代碼了,應(yīng)該是不開放給用戶。
總結(jié)
對(duì)于接收即OUT端點(diǎn),
Scatter/Gather DMA模式就只需要配置兩個(gè)寄存器
DOEPCTLi
DOEPDMAi為描述符鏈表的地址, 還需要填充描述符的內(nèi)容
最后DOEPCTLi的EPEna置位,開始交給DMA去接收數(shù)據(jù),此時(shí)軟件不能再訪問相關(guān)寄存器,必須等接收完成中斷EPEna硬件清零,軟件才能去訪問。
非Scatter/Gather DMA模式,則還要配置DOEPTSIZi 和DOEPDMABi ,配置緩沖區(qū)和傳輸數(shù)據(jù)大小,Scatter/Gather DMA模式這兩個(gè)寄存器不需要配置,對(duì)應(yīng)信息在描述符中配置。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5504瀏覽量
128395 -
usb
+關(guān)注
關(guān)注
60文章
8334瀏覽量
280271 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
6037瀏覽量
110904 -
單板計(jì)算機(jī)
+關(guān)注
關(guān)注
0文章
87瀏覽量
16139 -
編譯
+關(guān)注
關(guān)注
0文章
682瀏覽量
34873 -
驅(qū)動(dòng)開發(fā)
+關(guān)注
關(guān)注
0文章
134瀏覽量
12497 -
DWC2
+關(guān)注
關(guān)注
0文章
35瀏覽量
332
發(fā)布評(píng)論請(qǐng)先 登錄
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)32:寄存器功能驗(yàn)證與分析2
TPIC6595 8位功率移位寄存器技術(shù)文檔摘要
?TPIC6B595 8位功率移位寄存器技術(shù)文檔總結(jié)
SN74LV594A:2-5.5V帶輸出寄存器的8位移位寄存器技術(shù)解析
?TLC6C5912 12通道移位寄存器LED驅(qū)動(dòng)器技術(shù)文檔總結(jié)
使用寄存器點(diǎn)亮LED燈
如何用C語(yǔ)言操作寄存器——瑞薩RA系列FSP庫(kù)開發(fā)實(shí)戰(zhàn)指南(10)
如何通過USB或者I2C對(duì)DLPC910的寄存器進(jìn)行配置?
新思 DWC2 的參考手冊(cè)從哪里可以下載
迅為RK3568開發(fā)板SPI驅(qū)動(dòng)指南-mcp2515驅(qū)動(dòng)編寫:讀寄存器函數(shù)

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