衡阳派盒市场营销有限公司

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

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

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

AT32講堂040 | AT32F435/437 EDMA基本功能講解和案列解析

雅特力 AT32 MCU ? 2022-12-19 11:47 ? 次閱讀

EDMA簡(jiǎn)介

EDMA控制器的作用不僅在增強(qiáng)系統(tǒng)性能并減少處理器的中斷生成,而且還針對(duì)32位MCU應(yīng)用程序?qū)iT優(yōu)化設(shè)計(jì)。EDMA控制器為存儲(chǔ)器到存儲(chǔ)器,存儲(chǔ)器到外設(shè)和外設(shè)到存儲(chǔ)器的傳輸提供了八個(gè)數(shù)據(jù)流通道。每個(gè)通道都支持外設(shè)的DMA請(qǐng)求映射到任意數(shù)據(jù)流上、數(shù)據(jù)的打包與拆包、FIFO開(kāi)啟與關(guān)閉、burst數(shù)據(jù)傳輸模式、存儲(chǔ)器端的雙buffer模式、可配置數(shù)據(jù)鏈傳輸、二維傳輸功能。基于復(fù)雜的總線矩陣架構(gòu),將功能強(qiáng)大的雙AHB總線架構(gòu)與獨(dú)立的FIFO結(jié)合在一起,優(yōu)化了系統(tǒng)的帶寬。圖1. EDMA控制器架構(gòu)70f9da4c-7e1a-11ed-b116-dac502259ad0.png

DMAMUX簡(jiǎn)介

對(duì)于如何將外設(shè)的DMA請(qǐng)求映射到任意的數(shù)據(jù)流通道上,就需要使用到DMAMUX。DMAMUX針對(duì)每個(gè)外設(shè)都設(shè)計(jì)了獨(dú)有的ID號(hào),使用者只需要將此ID號(hào)寫入對(duì)應(yīng)的寄存器中并打開(kāi)DMAMUX功能即可。DMAMUX的引入,使得EDMA相較于傳統(tǒng)DMA控制器變得更加靈活,使用者可以隨意的分配8個(gè)數(shù)據(jù)流通道的使用情況,不必再糾結(jié)與某個(gè)IP的DMA請(qǐng)求只能固定使用在某個(gè)或某幾個(gè)通道上。

各IP對(duì)應(yīng)ID號(hào)如下表:

表1. 各IP對(duì)應(yīng)ID號(hào)列表711ac4aa-7e1a-11ed-b116-dac502259ad0.png注:表格中“DMAMUX請(qǐng)求”為ID號(hào);“來(lái)源”為各IP的DMA請(qǐng)求。

EDMA功能解析

基本配置

圖2. EDMA基本參數(shù)配置71dac62e-7e1a-11ed-b116-dac502259ad0.pngEDMA傳輸所需要的基本參數(shù)配置如上圖所示,列舉如下內(nèi)存端口― 地址(M0ADDR)― 數(shù)據(jù)寬度(MWIDTH):8位、16位、32位― 地址地址模式(MINCM):固定、遞增― 突發(fā)傳輸(MBURST):?jiǎn)未危?)、4、8、16節(jié)拍外設(shè)端口― 地址(PADDR)― 數(shù)據(jù)寬度(PWIDTH):8位、16位、32位― 地址地址模式(PINCM):固定、遞增― 突發(fā)傳輸(PBURST):?jiǎn)未危?)、4、8、16節(jié)拍其他― 傳輸方向(DTD):外設(shè)到內(nèi)存、內(nèi)存到外設(shè)、內(nèi)存到內(nèi)存― 通道優(yōu)先級(jí)(SPL):低、中、高、非常高― 數(shù)據(jù)傳輸個(gè)數(shù)(DTCNT):范圍1~65535― FIFO配置― 流使能(SEN)

FIFO功能

1、功能介紹EDMA控制器每個(gè)數(shù)據(jù)流都擁有獨(dú)立的4 word fifo,這使得EDMA傳輸變得更加靈活,所傳輸?shù)臄?shù)據(jù)在FIFO內(nèi)可進(jìn)行打包與拆包操作,不再限制源與目標(biāo)的數(shù)據(jù)總線寬度必須相等。在FIFO模式下,源和目標(biāo)數(shù)據(jù)寬度可以通過(guò)SxCTRL寄存器PWIDTH與MWIDTH位配置(byte,halfword,word),且允許PWIDTH與MWIDTH不同。

當(dāng)PWIDTH與MWIDTH不同時(shí):

  • EDMA要傳輸?shù)臄?shù)據(jù)寬度等于PWIDTH,例如PWIDTH=halfword,則需傳輸?shù)臄?shù)據(jù)量為SxDTCNT*2。
  • EDMA控制器僅按照小字節(jié)序?qū)ぶ吩春湍繕?biāo)。

FIFO模式下外設(shè)到內(nèi)存?zhèn)鬏斶壿?/strong>

圖3. FIFO模式外設(shè)到內(nèi)存?zhèn)鬏?/span>727c61c8-7e1a-11ed-b116-dac502259ad0.png如上圖所示,例如FIFO閾值設(shè)置成1/4,外設(shè)和內(nèi)存端數(shù)據(jù)都為字節(jié)。剛開(kāi)始FIFO狀態(tài)為空,外設(shè)傳輸4筆數(shù)據(jù)后,F(xiàn)IFO狀態(tài)為1/4,此時(shí)達(dá)到FIFO閾值,一次傳輸4個(gè)字節(jié)到內(nèi)存。

FIFO模式下內(nèi)存到外設(shè)傳輸邏輯

圖4. FIFO模式內(nèi)存到外設(shè)傳輸7292e380-7e1a-11ed-b116-dac502259ad0.png如上圖所示,例如FIFO閾值設(shè)置成1/4,外設(shè)和內(nèi)存端數(shù)據(jù)都為字節(jié)。剛開(kāi)始FIFO狀態(tài)為空,當(dāng)使能數(shù)據(jù)流后,立即從內(nèi)存?zhèn)鬏?6個(gè)字節(jié)到FIFO,此時(shí)FIFO狀態(tài)為滿,然后外設(shè)傳輸4筆數(shù)據(jù)后,F(xiàn)IFO狀態(tài)為3/4,此時(shí)達(dá)到FIFO閾值,一次從內(nèi)存?zhèn)鬏?個(gè)字節(jié)到FIFO,再次填滿FIFO。

FIFO模式下內(nèi)存到內(nèi)存?zhèn)鬏斶壿?/strong>

當(dāng)使能數(shù)據(jù)流后,開(kāi)始從源內(nèi)存?zhèn)鬏敂?shù)據(jù)到FIFO,當(dāng)達(dá)到FIFO閾值時(shí),F(xiàn)IFO里的數(shù)據(jù)將被全部傳輸?shù)侥繕?biāo)內(nèi)存,然后重復(fù)此步驟直到傳輸完成。在直接模式下(SxFCTRL內(nèi)FEN=0),不可進(jìn)行數(shù)據(jù)的打包與拆包。這種情況下,不允許源與目標(biāo)的數(shù)據(jù)寬度不相等。數(shù)據(jù)寬度由PWIDTH定義,MWIDTH的設(shè)定無(wú)效。

直接模式下外設(shè)到內(nèi)存?zhèn)鬏斶壿?/strong>

圖5. 直接模式外設(shè)到內(nèi)存?zhèn)鬏?/span>72ce40d8-7e1a-11ed-b116-dac502259ad0.png當(dāng)產(chǎn)生DMA請(qǐng)求后,數(shù)據(jù)從外設(shè)傳輸?shù)紽IFO,然后FIFO內(nèi)的數(shù)據(jù)將會(huì)立即傳輸?shù)絻?nèi)存。

直接模式下內(nèi)存到外設(shè)傳輸邏輯

圖6. 直接模式內(nèi)存到外設(shè)傳輸72e80f72-7e1a-11ed-b116-dac502259ad0.png當(dāng)使能數(shù)據(jù)流后,立即從內(nèi)存?zhèn)鬏斠粋€(gè)數(shù)據(jù)到FIFO(數(shù)據(jù)大小由PWIDTH決定),當(dāng)產(chǎn)生 DMA請(qǐng)求后,立即將數(shù)據(jù)從FIFO傳輸?shù)酵庠O(shè),然后再次從內(nèi)存?zhèn)鬏斠粋€(gè)數(shù)據(jù)到FIFO。

數(shù)據(jù)打包與拆包示意圖如下:

圖7. EDMA數(shù)據(jù)打包示意圖72f921f4-7e1a-11ed-b116-dac502259ad0.png圖8. EDMA數(shù)據(jù)拆包示意圖730def26-7e1a-11ed-b116-dac502259ad0.png

外設(shè)端口可以是源或者目標(biāo)(在Memory to memory模式下,也可以是存儲(chǔ)器源),在使用FIFO時(shí),一定要合理配置PWIDTH、MWIDTH和SxDTCNT,已確保數(shù)據(jù)傳輸?shù)耐暾裕赑WIDTH小于MWIDTH時(shí),需要按照如下條件配置:

表2. PWIDTH和MWIDTH與SxDTCNT的限制條件7336c96e-7e1a-11ed-b116-dac502259ad0.png

FIFO可配置閾值級(jí)別,軟件可配置為1/4、1/2、3/4、滿這四種狀態(tài)(通過(guò)SxFCTRL寄存器FTHSEL配置),并且可通過(guò)SxFCTRL寄存器的FSTS位觀察FIFO當(dāng)前狀態(tài)。

2、軟件接口設(shè)置FIFO的軟件接口包含在EDMA配置結(jié)構(gòu)體內(nèi),以結(jié)構(gòu)體成員的方式呈現(xiàn),如下:734d5166-7e1a-11ed-b116-dac502259ad0.png

第一項(xiàng)為配置FIFO是否使能,當(dāng)為TURE時(shí),表示FIFO使能;當(dāng)為FALSE時(shí),表示FIFO禁止第二項(xiàng)為FIFO閾值設(shè)定,其選項(xiàng)可以是1/4、1/2、3/4和滿這四種狀態(tài)。

突發(fā)傳輸功能

功能介紹圖9. 突發(fā)傳輸示意圖73610724-7e1a-11ed-b116-dac502259ad0.pngEDMA控制器可產(chǎn)生單次傳輸或4個(gè)、8個(gè)、16個(gè)節(jié)拍的突發(fā)傳輸。突發(fā)傳輸數(shù)量通過(guò)SxCTRL寄存器的PBURST與MBURST位設(shè)定。如上圖所示,傳輸方向?yàn)閮?nèi)存到外設(shè),內(nèi)存端MBURST=4,每一次數(shù)據(jù)傳輸,DMA都會(huì)從內(nèi)存連續(xù)傳輸4個(gè)數(shù)據(jù)到FIFO(數(shù)據(jù)可以為字節(jié)、半字、字)。外設(shè)端PBURST=8,每一次數(shù)據(jù)傳輸,DMA都會(huì)從FIFO連續(xù)傳輸8個(gè)數(shù)據(jù)到外設(shè)(數(shù)據(jù)可以為字節(jié)、半字、字)。突發(fā)傳輸數(shù)量是按照節(jié)拍數(shù)來(lái)計(jì)算的,并非按照字節(jié)數(shù)計(jì)數(shù),例如PBURST=4,PWIDTH=halfword,則一次突發(fā)傳輸?shù)臄?shù)據(jù)量為4*2bytes。突發(fā)傳輸只能在FIFO模式下才可使用;在直接模式下,數(shù)據(jù)流只能生成單次傳輸,而MBURST和PBURST位由硬件強(qiáng)制配置。

根據(jù)單次傳輸或突發(fā)傳輸?shù)呐渲茫總€(gè)DMA的請(qǐng)求在AHB外設(shè)端口上啟動(dòng)相應(yīng)配置下的數(shù)據(jù)量傳輸:

  • 當(dāng)AHB外設(shè)端口配置為單次傳輸時(shí),根據(jù)PWIDTH配置的值,每次DMA請(qǐng)求傳輸一個(gè)byte、halfword或者word。
  • 當(dāng)AHB外設(shè)端口配置為突發(fā)傳輸時(shí),根據(jù)PWIDTH配置的值,每次DMA請(qǐng)求傳輸4個(gè)、8個(gè)、16個(gè)byte、halfword或者word。

注:源和目的地址自增模式下,才可使用突發(fā)傳輸。

EDMA的FIFO閾值設(shè)定與存儲(chǔ)器突發(fā)傳輸大小需要滿足一定的關(guān)系才能正常啟動(dòng)數(shù)據(jù)流,否則在啟動(dòng)數(shù)據(jù)流時(shí),就會(huì)產(chǎn)生FIFOerror,然后將禁止數(shù)據(jù)流。FIFO閾值設(shè)定與存儲(chǔ)器突發(fā)傳輸大小關(guān)系需滿足如下:

表3. MWIDTH與MBURST配置關(guān)系738c0ee2-7e1a-11ed-b116-dac502259ad0.png

從此表個(gè)可以得出結(jié)論:突發(fā)傳輸數(shù)據(jù)量與數(shù)據(jù)大小乘積不能超過(guò)FIFO閾值大小。

軟件接口設(shè)置突發(fā)傳輸軟件接口與設(shè)置FIFO類似,其被包含在EDMA配置結(jié)構(gòu)體內(nèi),以結(jié)構(gòu)體成員的方式呈現(xiàn):73b929ea-7e1a-11ed-b116-dac502259ad0.png

第一項(xiàng)為配置外設(shè)端口突發(fā)傳輸量;第二項(xiàng)為配置內(nèi)存端口突發(fā)傳輸量。

注:在使用突發(fā)傳輸時(shí),必須使能FIFO模式。

存儲(chǔ)器端雙緩存區(qū)功能

功能介紹圖10. 雙緩存區(qū)示意圖73d09b70-7e1a-11ed-b116-dac502259ad0.png通過(guò)設(shè)置SxCTRL寄存器的DMM位,即可使能雙緩存區(qū)功能。與常規(guī)(單緩存區(qū))數(shù)據(jù)流工作模式相比,雙緩存區(qū)功能擁有兩個(gè)存儲(chǔ)器指針;啟動(dòng)雙緩存區(qū)功能時(shí),EDMA控制器的相應(yīng)數(shù)據(jù)流通道會(huì)自動(dòng)開(kāi)啟循環(huán)模式,在每次SxDTCNT減到0時(shí)自動(dòng)交換存儲(chǔ)區(qū)。

根據(jù)SxCTRL寄存器的CM位,可知道數(shù)據(jù)流當(dāng)前使用的存儲(chǔ)區(qū)是memory0/1。當(dāng)CM=0,表示當(dāng)前目標(biāo)是memory0;當(dāng)CM=1,表示當(dāng)前目標(biāo)為memory1。

在使用雙緩存區(qū),需要注意以下幾點(diǎn):

  • 當(dāng)硬件正在使用某一塊緩存時(shí),當(dāng)前緩存的基地址不可改變,即寄存器SxM0ADDR和

SxM1ADDR。例如數(shù)據(jù)流正在將數(shù)據(jù)填入SxM0ADDR時(shí),那么軟件只能改變SxM1ADDR的基地址。可根據(jù)CM位的狀態(tài),確定數(shù)據(jù)流當(dāng)前操作的緩存區(qū)。

  • 當(dāng)使用雙緩存區(qū)功能時(shí),禁止使用存儲(chǔ)器到存儲(chǔ)器模式。

軟件接口對(duì)于雙緩存區(qū)功能,軟件實(shí)現(xiàn)了單獨(dú)的函數(shù)接口,如下:73ebab36-7e1a-11ed-b116-dac502259ad0.png

對(duì)于雙緩存區(qū)功能,第一個(gè)緩存區(qū)地址會(huì)在EDMA初始化結(jié)構(gòu)體中配置,即SxM0ADDR寄存器的配置。

在配置雙緩存區(qū)功能時(shí),調(diào)用edma_double_buffer_mode_init();函數(shù),此函數(shù)第一個(gè)參數(shù)表示當(dāng)前配置雙緩存區(qū)的數(shù)據(jù)流,第二個(gè)參數(shù)為第二個(gè)緩存區(qū)的地址,第三個(gè)參數(shù)為啟動(dòng)后硬件使用的緩存區(qū)。以上函數(shù)的調(diào)用,雙緩存區(qū)功能就配置好了,現(xiàn)在只需要調(diào)用 edma_double_buffer_mode_enable();函數(shù)開(kāi)啟雙緩存區(qū)功能即可。

鏈接列表傳輸功能

功能介紹鏈接列表傳輸可實(shí)現(xiàn)將幾塊不連續(xù)的存儲(chǔ)區(qū)的數(shù)據(jù)使用同一個(gè)數(shù)據(jù)流按照一定順序發(fā)送出去或者同一數(shù)據(jù)流接收到數(shù)據(jù)按照一定順序存儲(chǔ)在幾塊不連續(xù)的存儲(chǔ)區(qū)內(nèi)。EDMA控制器如何知道數(shù)據(jù)存儲(chǔ)規(guī)則的呢?此規(guī)則是由軟件按照特定格式給出的,其格式如下圖所示:圖11. 鏈接描述符格式74146f80-7e1a-11ed-b116-dac502259ad0.png

將此格式成為鏈接描述符,此描述符存儲(chǔ)在片上存儲(chǔ)器中,當(dāng)打開(kāi)數(shù)據(jù)流時(shí),EDMA 控制器從片上存儲(chǔ)器加載此描述符配置數(shù)據(jù)流,然后開(kāi)啟數(shù)據(jù)的傳輸。

描述符分為4項(xiàng):

  • 數(shù)據(jù)流基礎(chǔ)配置和數(shù)據(jù)傳輸數(shù)量配置
  • 外設(shè)基地址
  • 存儲(chǔ)器基地址
  • 下一個(gè)描述符的首地址

通過(guò)描述符的具體實(shí)現(xiàn),最終實(shí)現(xiàn)一個(gè)單向鏈表結(jié)構(gòu),如下:圖12. 鏈接描述符鏈表結(jié)構(gòu)743e8112-7e1a-11ed-b116-dac502259ad0.png

注:描述符在片上存儲(chǔ)地址必須要4 word對(duì)齊,否則不能正常啟動(dòng)數(shù)據(jù)流。

軟件接口對(duì)于鏈接列表傳輸功能,軟件單獨(dú)實(shí)現(xiàn)了函數(shù)接口,如下:7454e312-7e1a-11ed-b116-dac502259ad0.png

第一個(gè)函數(shù)是對(duì)鏈接列表傳輸功能的一些配置。參數(shù)有兩個(gè),第一個(gè)參數(shù)表示所配置的數(shù)據(jù)流號(hào),第二個(gè)參數(shù)表示鏈表描述符的首地址。

經(jīng)過(guò)此函數(shù)的配置后,只需調(diào)用第二個(gè)函數(shù)即可開(kāi)啟鏈表傳輸功能。

二維處理功能

功能介紹二維數(shù)據(jù)傳輸(2D)功能,使用者可以較為方便的對(duì)數(shù)據(jù)塊進(jìn)行一些操作,提高對(duì)數(shù)據(jù)的處理效率,在圖像處理方面效果較為明顯。

EDMA為二維數(shù)據(jù)傳輸(2D)提供了4個(gè)可配置的參數(shù)值:

  • DMA_Sx2DCNT中的XCOUNT:跳轉(zhuǎn)到下一個(gè)跨步之前要傳輸?shù)臄?shù)據(jù)計(jì)數(shù);
  • DMA_Sx2DCNT中的YCOUTNT:迭代計(jì)數(shù);
  • DMA_Sx2DSTRIDE中的SRCSTD:源跨步值,該值應(yīng)在源端迭代之前添加或減去;
  • DMA_Sx2DSTRIDE中的DSTSTD:目的跨步值,該值應(yīng)在目標(biāo)端迭代之前添加或減

去。

二維數(shù)據(jù)傳輸(2D)舉例:

表4. 2D傳輸舉例7476eaa2-7e1a-11ed-b116-dac502259ad0.png

傳輸前數(shù)據(jù)在源存儲(chǔ)器中:

圖13. 2D傳輸前數(shù)據(jù)74865d20-7e1a-11ed-b116-dac502259ad0.png

傳輸后數(shù)據(jù)在目的存儲(chǔ)器中:

圖14. 2D傳輸后數(shù)據(jù)7495cb02-7e1a-11ed-b116-dac502259ad0.png

圖4和圖5的陰影部分為真實(shí)數(shù)據(jù)。根據(jù)圖中可以清晰看到將數(shù)據(jù)看成二維的存儲(chǔ)在存儲(chǔ)器中,2D傳輸將此數(shù)據(jù)塊的左邊1/2的數(shù)據(jù)取走并存儲(chǔ)在新二維數(shù)據(jù)塊的上1/2處。

在使用二維傳輸時(shí),有一些限制條件需要注意:

  • 僅支持memory to memory傳輸
  • PWIDTH和MISZE需要設(shè)置為0x2(字)
  • 源和目標(biāo)跨步值需與字對(duì)齊
  • 源和目標(biāo)跨步值均為二補(bǔ)數(shù)
  • PINCM和MINCM均需設(shè)置為1(增量模式)
  • PFCTRL需設(shè)置為0
  • PINCOS需設(shè)置為0
  • 不支持循環(huán)模式、雙緩沖模式
  • 不支持鏈接列表傳輸

軟件接口對(duì)于二維數(shù)據(jù)傳輸功能,軟件單獨(dú)實(shí)現(xiàn)了接口函數(shù),如下:74b03528-7e1a-11ed-b116-dac502259ad0.png

通過(guò)函數(shù)edma_2d_init(); 可以配置二維傳輸?shù)脑纯绮健⒛康目绮健CNT和YCNT,這四個(gè)參數(shù)的在使能2D傳輸前就需要配置好;然后調(diào)用函數(shù)edma_2d_enable();即可開(kāi)啟二維傳輸功能。

EDMA配置解析

以下對(duì)EDMA的配置接口及流程進(jìn)行說(shuō)明。

函數(shù)接口

表5. 數(shù)據(jù)流配置函數(shù)列表74d50754-7e1a-11ed-b116-dac502259ad0.png

數(shù)據(jù)流配置

  • 設(shè)置外設(shè)地址(SxPADDR寄存器)數(shù)據(jù)傳輸?shù)某跏纪庠O(shè)地址,在傳輸過(guò)程中(SEN=1)不可被改變。
  • 設(shè)置存儲(chǔ)器地址(SxM0ADDR寄存器)數(shù)據(jù)傳輸?shù)某跏純?nèi)存地址,在傳輸過(guò)程中(SEN=1)不可被改變。
  • 數(shù)據(jù)流配置(SxCTRL寄存器)包含優(yōu)先級(jí),數(shù)據(jù)傳輸方向、模式和寬度,地址增量模式、循環(huán)模式、雙緩沖模式和傳輸/半傳輸/傳輸錯(cuò)誤中斷使能位。優(yōu)先級(jí)(SPL)分為4個(gè)等級(jí),最高優(yōu)先級(jí)、高優(yōu)先級(jí)、中等優(yōu)先級(jí)和低優(yōu)先級(jí)。若有2個(gè)流優(yōu)先級(jí)設(shè)定相同,則較低編號(hào)的流有較高的優(yōu)先權(quán)。舉例,流1優(yōu)先于流2。數(shù)據(jù)傳輸方向(DTD)分為存儲(chǔ)器到外設(shè)(M2P),外設(shè)到存儲(chǔ)器(P2M)或存儲(chǔ)器到存儲(chǔ)器(M2M)傳輸。在存儲(chǔ)器到存儲(chǔ)器傳輸模式下不允許使用循環(huán)模式、雙緩沖模式和直接模式。數(shù)據(jù)傳輸寬度(PWIDTH/MWIDTH)根據(jù)實(shí)際使用情景,可配置寬度為byte、halfword、word;EDMA內(nèi)部的打包、拆包機(jī)制允許PWIDTH與MWIDTH寬度不一致。地址增量模式(PINCM/MINCM)當(dāng)流配置設(shè)定為增量模式時(shí),下一筆傳輸?shù)牡刂穼⑹乔耙还P傳輸?shù)刂芳由蟼鬏攲挾龋≒WIDTH/MWIDTH)。數(shù)據(jù)傳輸模式(PBURST/MBURST)分為單次傳輸(SINGLE),或突發(fā)傳輸(BURST)。突發(fā)傳輸,在每個(gè)DMA請(qǐng)求到來(lái)后,根據(jù)配置傳輸4、8、16拍。在非增量模式下,設(shè)置突發(fā)傳輸會(huì)將4、8、16拍突發(fā)傳輸轉(zhuǎn)換為4、8或16個(gè)單次傳輸。在直接模式下,PBURST和MBURST位被硬件強(qiáng)制為0(單次傳輸)外設(shè)流控選擇(PFCTRL)若選擇外設(shè)做為流控制(PFCTRL=1),硬件會(huì)將DMA_SxDTCNT的值強(qiáng)制為0xFFFF,并由外設(shè)的dma_ch_lt信號(hào)指示數(shù)據(jù)傳輸結(jié)束。外設(shè)流控制不支持M2M模式和循環(huán)模式。循環(huán)模式(LM)當(dāng)流配置設(shè)定為循環(huán)模式時(shí),在最后一次傳輸后 SxDTCNT 寄存器的內(nèi)容會(huì)恢復(fù)成初始值。雙緩存模式(DMM)當(dāng)流配置設(shè)定為雙緩沖模式時(shí),硬件會(huì)自動(dòng)啟用循環(huán)模式。雙緩沖區(qū)流有兩個(gè)存儲(chǔ)器指針SxM0ADR/SxM1ADR,由CT位標(biāo)示當(dāng)前使用之存儲(chǔ)器指針,允許軟件在DMA填充/使用第二個(gè)存儲(chǔ)區(qū)的同時(shí)處理另一個(gè)存儲(chǔ)區(qū)。
  • 直接模式與FIFO模式設(shè)定(SxFCTRL寄存器)包含F(xiàn)IFO閾值選擇,直接模式禁用和FIFO錯(cuò)誤中斷使能位。FIFO閾值選擇(FTHSEL)分為1/4、2/4、3/4和全FIFO閾值;該設(shè)定僅在非直接模式下有效。FIFO模式使能(FEN)直接模式(FEN=0)僅可在P2M或M2P模式下使用,且外設(shè)/存儲(chǔ)器傳輸寬度需相等(MWIDTH=PWIDTH)并設(shè)定為單次傳輸(PBURST=MBURST=0)。如果選擇M2M模式,該位(FEN)被硬件強(qiáng)制為1。
  • 使能DMAMUX(MUXSEL寄存器的TBL_SEL位)在非存儲(chǔ)器到存儲(chǔ)器(M2M)模式下時(shí),需要使能 DMAMUX 功能,才能啟動(dòng)數(shù)據(jù)流響應(yīng)外設(shè)的DMA請(qǐng)求。
  • 寫入外設(shè)ID號(hào)(MUXSxCTRL寄存器的REQSEL)在非存儲(chǔ)器到存儲(chǔ)器(M2M)模式下時(shí),需要將外設(shè)的DMA請(qǐng)求ID號(hào)寫入,才能啟動(dòng)數(shù)據(jù)流響應(yīng)外設(shè)的DMA請(qǐng)求。
  • 打開(kāi)數(shù)據(jù)流(SxCTRL寄存器的SEN位)

配置流程

  • 打開(kāi)EDMA時(shí)鐘
  • 調(diào)用數(shù)據(jù)流復(fù)位函數(shù)復(fù)位數(shù)據(jù)流;
  • 調(diào)用結(jié)構(gòu)體初始化函數(shù)初始化數(shù)據(jù)流結(jié)構(gòu)體;
  • 調(diào)用初始化函數(shù)初始化數(shù)據(jù)流;
  • 調(diào)用DMAMUX使能函數(shù)以及ID號(hào)寫入函數(shù)配置DMAMUX相關(guān)內(nèi)容;
  • 調(diào)用數(shù)據(jù)流使能函數(shù)開(kāi)啟數(shù)據(jù)流。

案例 數(shù)據(jù)從FLASH傳輸?shù)絊RAM

功能簡(jiǎn)介

實(shí)現(xiàn)了使用EDMA將數(shù)據(jù)從片上FLASH搬運(yùn)到內(nèi)部SRAM中。

資源準(zhǔn)備

1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_f4xx\examples\edma\flash_to_sram

軟件設(shè)計(jì)

1) 配置流程

  • 開(kāi)啟EDMA外設(shè)時(shí)鐘
  • 配置EDMA數(shù)據(jù)流
  • 開(kāi)啟傳輸完成中斷
  • 開(kāi)啟數(shù)據(jù)流
  • 等待數(shù)據(jù)傳輸完成
  • 比較數(shù)據(jù)傳輸是否正確

2)代碼介紹

  • main函數(shù)代碼描述

74f8d918-7e1a-11ed-b116-dac502259ad0.png

  • EDMA_Stream1_IRQHandler中斷函數(shù)代碼描述

75639d16-7e1a-11ed-b116-dac502259ad0.png

實(shí)驗(yàn)效果

  • 如若數(shù)據(jù)傳輸無(wú)誤,LED2/3/4會(huì)點(diǎn)亮。

案例 EDMA突發(fā)傳輸

功能簡(jiǎn)介

EDMA突發(fā)傳輸為EDMA控制器的特有功能。使用EDMA的突發(fā)傳輸將數(shù)據(jù)從SRAM傳輸?shù)絋MR1的c1dt至c4dt,實(shí)現(xiàn)同時(shí)改變TMR1四個(gè)通道占空比。

資源準(zhǔn)備

1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_f4xx\examples\edma\burst_mode

軟件設(shè)計(jì)

1) 配置流程

  • 開(kāi)啟EDMA/TMR1/GPIOA外設(shè)時(shí)鐘
  • 配置EDMA數(shù)據(jù)流
  • 配置TMR1的通道1到4輸出PWM波形
  • 開(kāi)啟傳輸完成中斷
  • 開(kāi)啟數(shù)據(jù)流
  • 開(kāi)啟TMR1,使其溢出中斷產(chǎn)生DMA請(qǐng)求

2) 代碼介紹

  • main函數(shù)代碼描述

75748612-7e1a-11ed-b116-dac502259ad0.png

實(shí)驗(yàn)效果

  • TMR1的通道1到4每個(gè)周期會(huì)改變一次占空比。

如下為使用邏輯分析儀抓取的幾個(gè)通道的輸出波形,可以看到PWM波形的占空比每個(gè)周期都在改變。圖15. Burst傳輸實(shí)驗(yàn)結(jié)果7671d056-7e1a-11ed-b116-dac502259ad0.png

案例 EDMA雙緩沖區(qū)

功能簡(jiǎn)介

EDMA存儲(chǔ)器端雙緩存區(qū)為EDMA控制器的特有功能。本案例使用EDMA的雙緩存區(qū)功能將SRAM內(nèi)部的兩塊數(shù)據(jù)通過(guò)IIS3傳輸給IIS2并存儲(chǔ)在SRAM內(nèi)的另外兩個(gè)數(shù)據(jù)塊中。i2s3_buffer1_tx[32]和i2s3_buffer2_tx[32]為IIS3傳輸?shù)膬蓧K數(shù)據(jù),i2s2_buffer1_rx[32]和i2s2_buffer2_rx[32]為IIS2接收到的數(shù)據(jù)存儲(chǔ)區(qū)域。

資源準(zhǔn)備

1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD使用杜邦線將IIS3與IIS2連接起來(lái),連接關(guān)系如下:PD0<------->PA4(ws)PD1<------->PC10(sck)PD4<------->PC12(sd)2) 軟件環(huán)境project\at_start_f4xx\examples\edma\i2s_halfduplex_edma_doublebuffer

軟件設(shè)計(jì)

1) 配置流程

  • 開(kāi)啟EDMA/IIS3/IIS2/GPIO外設(shè)時(shí)鐘
  • 配置EDMA數(shù)據(jù)流,使能雙緩存區(qū)功能
  • 配置IIS3/2
  • 開(kāi)啟傳輸完成中斷
  • 開(kāi)啟數(shù)據(jù)流

2) 代碼介紹

  • 代碼描述

76888d6e-7e1a-11ed-b116-dac502259ad0.png

實(shí)驗(yàn)效果

  • LED2/3/4都點(diǎn)亮則表示數(shù)據(jù)傳輸正確。

案例 EDMA鏈接列表傳輸

功能簡(jiǎn)介

EDMA鏈接列表傳輸為EDMA控制器的特有功能。本案例使用EDMA的鏈接列表傳輸功能,將片上存儲(chǔ)器的3塊區(qū)域的數(shù)據(jù)通過(guò)EDMA發(fā)送給USART1,USART1在通過(guò)自身的TX引腳將數(shù)據(jù)發(fā)送出去。

資源準(zhǔn)備

1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_f4xx\examples\edma\link_list_mode

軟件設(shè)計(jì)

1) 配置流程

  • 開(kāi)啟EDMA/USART1/GPIO外設(shè)時(shí)鐘
  • 配置EDMA數(shù)據(jù)流,使能鏈接列表傳輸功能
  • 開(kāi)啟傳輸完成中斷
  • 開(kāi)啟數(shù)據(jù)流

2) 代碼介紹

  • 代碼描述

76baf3b2-7e1a-11ed-b116-dac502259ad0.png

實(shí)驗(yàn)效果

  • LED2/3/4都點(diǎn)亮則表示數(shù)據(jù)傳輸完成,并可通過(guò)串口工具查看發(fā)送出來(lái)的數(shù)據(jù)。

串口工具接收的數(shù)據(jù)如下圖所示:圖16. 鏈接列表傳輸實(shí)驗(yàn)結(jié)果771a4114-7e1a-11ed-b116-dac502259ad0.png

案例 EDMA二維傳輸

功能簡(jiǎn)介

EDMA二維傳輸為EDMA控制器的特有功能。本案例使用EDMA的二維傳輸功能,將片上存儲(chǔ)器的1塊區(qū)域的數(shù)據(jù)通過(guò)EDMA二維傳輸功能剪裁出其左邊1/2,并通過(guò)串口打印出來(lái)。

資源準(zhǔn)備

1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境project\at_start_f4xx\examples\edma\two_dimension_mode

軟件設(shè)計(jì)

1) 配置流程

  • 開(kāi)啟EDMA/USART1/GPIO外設(shè)時(shí)鐘
  • 配置EDMA數(shù)據(jù)流,使能二維傳輸功能
  • 開(kāi)啟傳輸完成中斷
  • 開(kāi)啟數(shù)據(jù)流

2) 代碼介紹

  • 代碼描述

773e8c4a-7e1a-11ed-b116-dac502259ad0.png

實(shí)驗(yàn)效果

  • 通過(guò)串口工具查看發(fā)送出來(lái)的數(shù)據(jù)。

串口工具接收的數(shù)據(jù)如下圖所示:圖17. 二維傳輸實(shí)驗(yàn)結(jié)果7780e5d6-7e1a-11ed-b116-dac502259ad0.png

關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動(dòng)全球市場(chǎng)32位微控制器(MCU)創(chuàng)新趨勢(shì)的芯片設(shè)計(jì)公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級(jí)別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無(wú)人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競(jìng)周邊市場(chǎng)、斷路器、ADAS、T-BOX、數(shù)字電源、電動(dòng)工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16448

    瀏覽量

    179469
  • EDMA
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    9663
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    智能插頭的基本功能和工作原理

    在節(jié)能減碳逐漸成為重要議題的今日,智能插頭應(yīng)運(yùn)而生,以滿足節(jié)能需求。目前,市場(chǎng)上有各種價(jià)位的智能插頭,但它們究竟有哪些功能,以及如何使用呢?在這篇文章中,我們將深入介紹智能插頭的基本功能,讓您更清楚地了解這項(xiàng)智能家居設(shè)備。
    的頭像 發(fā)表于 01-15 15:49 ?256次閱讀

    TMS320C645X DSP從EDMA 2.0版遷移到EDMA 3.0版

    電子發(fā)燒友網(wǎng)站提供《TMS320C645X DSP從EDMA 2.0版遷移到EDMA 3.0版.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 11:29 ?0次下載
    TMS320C645X DSP從<b class='flag-5'>EDMA</b> 2.0版遷移到<b class='flag-5'>EDMA</b> 3.0版

    EDMA v2.0遷移到TMS320DM644X DMSoC的EDMA v3.0

    電子發(fā)燒友網(wǎng)站提供《從EDMA v2.0遷移到TMS320DM644X DMSoC的EDMA v3.0.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 10:55 ?0次下載
    從<b class='flag-5'>EDMA</b> v2.0遷移到TMS320DM644X DMSoC的<b class='flag-5'>EDMA</b> v3.0

    MHMF042L32N-MINAS A6BU 系列 技術(shù)資料 -基本功能規(guī)格篇- 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF042L32N-MINAS A6BU 系列 技術(shù)資料 -基本功能規(guī)格篇-相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有
    發(fā)表于 10-15 18:59
    MHMF042L32N-MINAS A6BU 系列 技術(shù)資料 -<b class='flag-5'>基本功能</b>規(guī)格篇- 松下

    自動(dòng)發(fā)電控制系統(tǒng)具有三個(gè)基本功能

    自動(dòng)發(fā)電控制系統(tǒng)(AGC)具有三個(gè)基本功能,這些功能在電力系統(tǒng)的運(yùn)行和調(diào)度中發(fā)揮著重要作用。以下是這三個(gè)基本功能的詳細(xì)解析
    的頭像 發(fā)表于 10-03 15:05 ?823次閱讀

    MHMF041L32N-MINAS A6BN 系列 技術(shù)資料 -基本功能規(guī)格篇- 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF041L32N-MINAS A6BN 系列 技術(shù)資料 -基本功能規(guī)格篇-相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有
    發(fā)表于 09-20 18:33
    MHMF041L32N-MINAS A6BN 系列 技術(shù)資料 -<b class='flag-5'>基本功能</b>規(guī)格篇- 松下

    MHMF022L32N-MINAS A6BN 系列 技術(shù)資料 -基本功能規(guī)格篇- 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF022L32N-MINAS A6BN 系列 技術(shù)資料 -基本功能規(guī)格篇-相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有
    發(fā)表于 08-20 19:07
    MHMF022L32N-MINAS A6BN 系列 技術(shù)資料 -<b class='flag-5'>基本功能</b>規(guī)格篇- 松下

    同步開(kāi)關(guān)一對(duì)多功能講解及演示

    例簡(jiǎn)介本案例主要講解E860-DTU(8080-400SL)(以下簡(jiǎn)稱同步開(kāi)關(guān))產(chǎn)品的一主多從功能及使用案例,也就是平時(shí)所說(shuō)的一對(duì)多模式。設(shè)備可通過(guò)配置工具配置一主多從模式,處于該模式的設(shè)備輸出
    的頭像 發(fā)表于 07-26 08:21 ?420次閱讀
    同步開(kāi)關(guān)一對(duì)多<b class='flag-5'>功能講解</b>及演示

    CAN FD盒基本功能包括哪些

    CAN FD盒基本功能有哪些? CAN FD盒作為CAN FD總線通信的重要設(shè)備,其基本功能包括但不限于以下幾點(diǎn): (1)數(shù)據(jù)發(fā)送與接收: CAN FD盒需要能夠按照指定的CAN FD標(biāo)準(zhǔn)和協(xié)
    的頭像 發(fā)表于 07-02 16:21 ?974次閱讀

    MHMF011L32N-MINAS A6BN 系列 技術(shù)資料 -基本功能規(guī)格篇- 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF011L32N-MINAS A6BN 系列 技術(shù)資料 -基本功能規(guī)格篇-相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有
    發(fā)表于 06-20 19:07
    MHMF011L32N-MINAS A6BN 系列 技術(shù)資料 -<b class='flag-5'>基本功能</b>規(guī)格篇- 松下

    深度解析高速串行信號(hào)的誤碼測(cè)試|線上講堂

    2024年6月25日周二19:00-20:30中星聯(lián)華科技將舉辦《深度解析高速串行信號(hào)的誤碼測(cè)試》“碼”上行動(dòng)系列線上講堂。將深入講解當(dāng)前高速信號(hào)的發(fā)展趨勢(shì)、挑戰(zhàn)及難點(diǎn),分析高速串行信號(hào)傳輸?shù)脑聿?/div>
    的頭像 發(fā)表于 06-17 08:32 ?527次閱讀
    深度<b class='flag-5'>解析</b>高速串行信號(hào)的誤碼測(cè)試|線上<b class='flag-5'>講堂</b>

    智能工廠的架構(gòu)及ERP的基本功能是什么?

    一、引言 隨著科技的飛速發(fā)展,智能制造逐漸成為制造業(yè)的主流趨勢(shì)。智能工廠作為智能制造的核心,其架構(gòu)和ERP系統(tǒng)的基本功能對(duì)于提高生產(chǎn)效率、降低成本、提升產(chǎn)品品質(zhì)具有重要意義。本文將詳細(xì)介紹智能工廠
    的頭像 發(fā)表于 06-07 15:27 ?1517次閱讀

    可編程邏輯控制器的基本功能

    能力、靈活的編程方式以及易于擴(kuò)展和維護(hù)的特點(diǎn),成為了工業(yè)自動(dòng)化控制系統(tǒng)中不可或缺的一部分。本文將詳細(xì)解析PLC的基本功能,包括邏輯控制、數(shù)據(jù)處理、通信聯(lián)網(wǎng)、運(yùn)動(dòng)控制、過(guò)程控制、定時(shí)與計(jì)數(shù)、故障診斷與保護(hù)等,并探討這些功能在工業(yè)自
    的頭像 發(fā)表于 06-03 15:10 ?977次閱讀

    示波器的基本功能及分類 示波器的常見(jiàn)故障及原因

    示波器,作為一種廣泛應(yīng)用于電子測(cè)量領(lǐng)域的儀器,其主要功能是將肉眼不可見(jiàn)的電信號(hào)轉(zhuǎn)化為可觀測(cè)的圖像。在電路性能分析、故障排除以及波形分析等應(yīng)用中,示波器都發(fā)揮著至關(guān)重要的作用。本文將詳細(xì)介紹示波器的基本功能、分類以及常見(jiàn)的故障及其原因,并通過(guò)具體案例分析,為讀者提供深入的技
    的頭像 發(fā)表于 05-10 15:02 ?1749次閱讀

    multisim電路仿真軟件有哪些基本功能

    Multisim是一款強(qiáng)大的電路仿真軟件,它提供了許多基本功能,用于設(shè)計(jì)、分析和測(cè)試各種電子電路。下面是Multisim的基本功能的詳細(xì)介紹。 電路設(shè)計(jì):Multisim允許用戶使用直觀的界面設(shè)計(jì)
    的頭像 發(fā)表于 05-04 10:44 ?3853次閱讀
    百家乐官网视频百家乐官网| 百家乐官网隔一数打投注法| 云鼎娱乐城优惠| 大哥大百家乐的玩法技巧和规则| 做生意摆放什么财神爷| 最好的百家乐官网博彩网站| 建宁县| 澳门博彩股份有限公司| 威尼斯人娱乐城反水| 百家乐tt娱乐网| 百家乐投资心得| 發中發百家乐官网的玩法技巧和规则 | 百家乐美女真人| 王子百家乐官网的玩法技巧和规则| 百家乐官网博彩优惠论坛| 屯昌县| 娱乐城送| 大发888怎么进不去| 威尼斯人娱乐平台注册| 赌博百家乐的玩法技巧和规则| 玩百家乐秘诀| 百家乐盛大娱乐城城| 无锡百家乐官网的玩法技巧和规则 | 百家乐官网庄闲下载| 大众娱乐城| 大发88846| 大发888娱乐城可靠吗| 百家乐现金网平台排行| 做生意店铺缺西北角| 新加坡百家乐官网规则| 百樂坊百家乐官网的玩法技巧和规则| 百家乐官网和21点| 百家乐官网破解| 巴彦县| 无为县| 九台市| 闵行区| 真人百家乐官网宣传| 盐池县| 涟水县| 真人百家乐官网来博|