19.2
DMAC模塊框圖分析

19.2.1
DMAC激活源
軟件觸發(fā)、來自外設(shè)模塊的中斷請求和外部中斷請求都可以指定為DMAC激活源。DMAC激活源是在DMTMD寄存器的DCTG[1:0]位進行設(shè)置。
19.2.1.1
通過軟件激活DMAC
我們可以選擇通過軟件啟動DMA進行傳輸,也就是不使用片上外設(shè)模塊和外部中斷的中斷請求進行激活DMAC,而是手動地激活DMA進行傳輸。
19.2.1.2
通過來自片上外設(shè)模塊或外部中斷的中斷請求激活DMAC
除了通過軟件手動激活DMAC,還可以通過片上外設(shè)模塊的中斷請求或外部中斷請求激活DMAC。
我們可以將片上外設(shè)模塊的中斷請求和外部中斷請求設(shè)置為DMAC的激活源??梢酝ㄟ^ICU的DELSRn寄存器的DELS[8:0]位(n=0~7)為每個通道單獨選擇激活源。
19.2.2
中斷優(yōu)先級
當存在多個DMA傳輸請求時,DMAC確定具有DMA傳輸請求的通道的優(yōu)先級。通道優(yōu)先級固定如下:通道0>通道1>通道2>通道3…>通道7(通道0:優(yōu)先級最高)
當在數(shù)據(jù)傳輸期間產(chǎn)生DMA傳輸請求時,在最終數(shù)據(jù)已傳輸之后開始通道仲裁,并且開始優(yōu)先級較高的通道的DMA傳輸。
19.2.3
事件鏈接
每個DMAC通道在每次完成數(shù)據(jù)傳輸或塊傳輸模式下的塊傳輸時,都會輸出一個事件鏈接請求信號 (DMACn_INT)。當傳輸目的地是外部總線時,在寫入緩沖區(qū)操作被接受時會產(chǎn)生一個事件鏈接請求信號。有關(guān)詳細信息,可以查看事件鏈接控制器 (ELC)章節(jié)。如果寫入傳輸?shù)淖詈髷?shù)據(jù)時發(fā)生總線錯誤,則會發(fā)生傳輸結(jié)束事件和錯誤響應(yīng)檢測中斷(DMA_TRANSERR)。
19.3
DMAC傳輸模式
DMAC有4種傳輸模式:
正常模式(Normal Mode):在正常模式下,DMAC通道每次接收到配置的激活源時都會傳輸單個數(shù)據(jù)單元。數(shù)據(jù)單元可以是1字節(jié)、2字節(jié)或4字節(jié)。在每次傳輸之后,源地址和目的地址可以是固定、遞增、遞減,或者向下一個數(shù)據(jù)單元添加偏移量。16位計數(shù)器在每次傳輸后遞減。當計數(shù)器達到0時,傳輸將不再由激活源觸發(fā),并且可以發(fā)出所有傳輸已完成的信號以中斷CPU。
重復(fù)模式(Repeat Mode):重復(fù)模式的工作方式與正常模式相同,但長度限制為范圍[1,1024]內(nèi)的整數(shù)。當傳輸計數(shù)器達到0時,計數(shù)器被重置為其配置值,重復(fù)區(qū)域(源或目的地址)被重置到其起始地址,剩余的塊計數(shù)將遞減1。當塊計數(shù)達到0時,傳輸將不再由激活源觸發(fā),并且可配置傳輸完成中斷。
塊模式(Block Mode):在塊模式下,每個中斷傳輸?shù)臄?shù)據(jù)單元量可以設(shè)置為范圍[1,1024]內(nèi)的整數(shù)。還可以將要傳輸?shù)膲K數(shù)配置為16位數(shù)字。每次塊傳輸后,重復(fù)區(qū)域(源或目的地址)將重置為原始地址,而另一個地址將遞增或遞減到下一個塊。
重復(fù)-塊模式(Repeat-Block Mode):在重復(fù)-塊模式下,每個中斷傳輸?shù)臄?shù)據(jù)單元量可以設(shè)置為范圍[1,1024]內(nèi)的整數(shù)??梢詫⒁獋鬏?shù)膲K的數(shù)量配置為16位數(shù)字(最大可設(shè)置重復(fù)大小為 64K,即65536)。
如果目標地址模式為偏移模式,則數(shù)據(jù)傳輸大小為字節(jié)的塊大?。ㄩL度)的最大可配置塊數(shù)為 0xFFFF,數(shù)據(jù)傳輸大小為半字的塊大小為 0x7FFF,數(shù)據(jù)大小為字的塊大小為0x3FFF。在每個塊傳輸之后,源地址和目的地址將遞增或遞減到下一個塊地址。
對于源地址的偏移地址模式,源地址大小是源緩沖區(qū)的總大小,之后源區(qū)域被翻轉(zhuǎn),塊大小可以小于源緩沖區(qū)大小。對于源地址模式作為偏移模式,最大可配置的源緩沖區(qū)大小為0xFFFF用于一個字節(jié)的傳輸數(shù)據(jù)大小,0x7FFF用于半字的傳輸數(shù)據(jù)大小和0x3FFF用于字的傳輸數(shù)據(jù)大小。
采用重復(fù)-塊模式可以實現(xiàn)單環(huán)形緩沖區(qū)到多環(huán)形緩沖區(qū)的傳輸類型設(shè)計。
19.3.1
正常傳輸模式
在正常傳輸模式(Normal Transfer Mode)下,一個傳輸請求傳輸一個數(shù)據(jù)。使用DMCRAL寄存器可以將最大65535設(shè)置為傳輸操作數(shù)。當這些位設(shè)置為0x0000時,不設(shè)置特定數(shù)量的傳輸操作;在傳輸計數(shù)器停止的情況下執(zhí)行數(shù)據(jù)傳輸(自由運行功能)。在正常傳輸模式下,設(shè)置DMCRB寄存器無效。除自由運行功能外,在完成指定數(shù)量的傳輸操作后,可以生成傳輸結(jié)束中斷請求。
表1:正常傳輸模式下的寄存器更新操作


19.3.2
重復(fù)傳輸模式
在重復(fù)傳輸模式(Repeat Transfer Mode)下,發(fā)起一次傳輸請求,傳輸一個數(shù)據(jù)。
通過設(shè)置DMCRA寄存器,最多可以將1K數(shù)據(jù)設(shè)置為總重復(fù)傳輸大?。煌ㄟ^設(shè)置DMCRB寄存器可以將最大64K設(shè)置為重復(fù)傳輸操作次數(shù)。
所以,我們可以將最大64M數(shù)據(jù)(1K數(shù)據(jù)×64K重復(fù)傳輸操作計數(shù))設(shè)置為總數(shù)據(jù)傳輸大小。
可以將傳輸源地址或傳輸目的地址設(shè)置為重復(fù)區(qū)域。當指定重復(fù)大小數(shù)據(jù)的傳輸完成時,DMAC將會把重復(fù)區(qū)域的地址重新設(shè)置為傳輸開始地址,也就是一個循環(huán)的過程。
當完成指定的重復(fù)傳輸次數(shù)后,可以產(chǎn)生傳輸完成中斷;當每完成一次循環(huán)的過程都可以產(chǎn)生一次中斷。
通過將DMCNT寄存器的DTE位置1,可以恢復(fù)DMA傳輸。
在完成指定數(shù)量的重復(fù)傳輸操作后,可以生成傳輸結(jié)束中斷請求。

19.3.3
塊傳輸模式
在塊傳輸模式下(Block Transfer Mode),單個塊數(shù)據(jù)通過一個傳輸請求傳輸。
使用DMCRA寄存器,最多可以將1K數(shù)據(jù)設(shè)置為總塊傳輸大小。
使用DMCRB寄存器可以將最大64K設(shè)置為塊傳輸操作數(shù);因此,可以將最大64M數(shù)據(jù)(1K數(shù)據(jù)×64K 塊傳輸操作計數(shù))設(shè)置為總數(shù)據(jù)傳輸大小。
可以將傳送源或傳送目的地指定為塊區(qū)域。當單個塊數(shù)據(jù)的傳輸完成時,指定塊區(qū)域(DMSAR或 DMDAR)的地址返回到傳輸開始地址。當單塊數(shù)據(jù)在塊傳輸模式下全部傳輸完畢時,可停止DMA傳輸,并可請求重復(fù)大小結(jié)束中斷。通過將1寫入重復(fù)大小結(jié)束中斷處理中的DMCNT.DTE位,可以恢復(fù)DMA傳輸。
傳輸結(jié)束中斷請求可以在完成指定數(shù)量的塊傳輸操作后生成。

19.3.4
重復(fù)-塊傳輸模式
重復(fù)-塊傳輸模式(Repeat-Block Transfer Mode),主要在塊模式基礎(chǔ)上增加了一些功能:
重復(fù)功能:添加功能(環(huán)形緩沖區(qū))以重復(fù)指定的地址區(qū)域。
偏移功能:可以在一個塊傳輸中指定具有偏移的多個區(qū)域。
重復(fù)功能和偏移功能可用于重復(fù)塊傳輸?shù)膫鬏斣春蛡鬏斈康牡亍?/p>
在重復(fù)塊傳輸模式下,單個塊數(shù)據(jù)通過一個傳輸請求傳輸。
使用DMACn的DMCRA可以將最多1K數(shù)據(jù)設(shè)置為總的塊傳輸大小。使用DMACn的DMCRB的塊傳輸操作的數(shù)量可以設(shè)置為最大64K;因此,可以將最大64M數(shù)據(jù)(1K數(shù)據(jù)×64K塊傳輸操作計數(shù))設(shè)置為總數(shù)據(jù)傳輸大小。
下圖是在重復(fù)-塊傳輸模式下的示例

下圖是在重復(fù)-塊傳輸模式下,帶偏移增加的示例


-
寄存器
+關(guān)注
關(guān)注
31文章
5609瀏覽量
130016 -
瑞薩
+關(guān)注
關(guān)注
37文章
22482瀏覽量
90901 -
中斷
+關(guān)注
關(guān)注
5文章
917瀏覽量
43772 -
傳輸模式
+關(guān)注
關(guān)注
0文章
10瀏覽量
7142
原文標題:DMAC模塊框圖分析——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(52)
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
瑞薩RA6M4系列DMAC和ADC的詳細介紹(1)
瑞薩RA系列MCU中的DMAC和DTC模塊簡介
瑞薩電子RA系列MCU解決智能物聯(lián)網(wǎng)系統(tǒng)開發(fā)痛點
瑞薩RA系列MCU中的DMAC模塊框圖分析
評論