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

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

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

一文了解ATxmega的DMA功能使用教程

電子工程師 ? 作者:工程師陳翠 ? 2018-06-18 14:10 ? 次閱讀

atXmega相比atmega系列芯片,增加的一個(gè)比較顯著的功能就是DMA控制器。

DMA控制器可以直接將數(shù)據(jù)從一個(gè)外設(shè)寄存器移到內(nèi)部或外部SRAM,也可在SRAM的不同地址間,甚至不同外設(shè)寄存器之間移動(dòng)數(shù)據(jù)。當(dāng)CPU數(shù)據(jù)總線空閑時(shí),DMA控制器便會(huì)用它來(lái)完成內(nèi)存和外設(shè)間的數(shù)據(jù)傳輸,無(wú)需使用CPU資源。采用DMA控制器的芯片,性能更好,功耗更低。

DMA控制器有一個(gè)比較重要的概念,就是數(shù)據(jù)傳輸。里面又有Burst transfer【突發(fā)傳輸】和Block transfer【塊傳輸】。Blocktransfer是有多個(gè)Burst transfer構(gòu)成。DMA transaction可以由單個(gè)或者多個(gè)Blocktransfer構(gòu)成。之所以要定義這些概念,是為了確定數(shù)據(jù)發(fā)送地址和數(shù)據(jù)目標(biāo)地址的重載方式。

一文了解ATxmega的DMA功能使用教程

這里我們用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明DMA的功能。ADC轉(zhuǎn)換結(jié)果通過(guò)一個(gè)DMA通道傳送到SRAM。即ADC轉(zhuǎn)換結(jié)束觸發(fā)DMA transaction,將AD值【CHnRES】傳輸?shù)侥繕?biāo)變量samples_0[0]內(nèi)。

那么數(shù)據(jù)源發(fā)送地址就是CHnRESH和CHnRESL的地址,目標(biāo)地址就是samples_0[0]的地址,即samples_0咯。我們用最簡(jiǎn)單的傳輸方式,ADC轉(zhuǎn)換結(jié)束,就采用一次Burst transfer(single slot)傳送兩個(gè)字節(jié)(CHnRESH和CHnRESL)。下面黃色部分是對(duì)single-slot傳輸?shù)慕忉尅?/p>

一文了解ATxmega的DMA功能使用教程

下面貼程序,首先是DMA初始化設(shè)置。

一文了解ATxmega的DMA功能使用教程

下面是ADC部分,啟動(dòng)ADC采樣。

一文了解ATxmega的DMA功能使用教程

ADC采樣結(jié)束會(huì)把AD值自動(dòng)傳輸給變量samples_0[0]。傳輸完后,由于single-slot模式DMA傳輸通道使能會(huì)位被清零。如果需要再次使用DMA功能,需要重新將使能位置1(DMA_CH_ENABLE_bm)。

一文了解ATxmega的DMA功能使用教程

一文了解ATxmega的DMA功能使用教程

采用DMA功能實(shí)現(xiàn)ADC采樣,相比輪詢和中斷方式,可以極大的減少對(duì)CPU資源的占用。

自己也是在上班之余,看了兩個(gè)晚上的DMA功能和相關(guān)程序?qū)懗鰜?lái)的,程序是通過(guò)電路板驗(yàn)證過(guò)的。大家在理解的基礎(chǔ)上,自己組織一下,就可以拿來(lái)用。

一文了解ATxmega的DMA功能使用教程

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

    關(guān)注

    17

    文章

    311

    瀏覽量

    107056
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    554

    瀏覽量

    100212
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求助:ATXmega64a3u與 ATXmega64a3編程的區(qū)別

    緊急求助:{:4_98:}各位大俠 我用ATXmega64a3編寫的程序用 ATXmega64a3u點(diǎn)也沒(méi)法用,這兩個(gè)芯片除了后者具有USB外,到底還有哪些差別?我實(shí)在搞不定!望各位大俠關(guān)照!另外
    發(fā)表于 04-25 08:52

    轉(zhuǎn):ATxmega入門之六:ATxmage SPI模塊介紹

    ATxmega的SPI與USART占用相同的資源,引腳也共用,所以使用了SPI功能,有個(gè)USART就不能使用了。Xmega16A4有兩個(gè)SPI接口,具有相同的特性:全雙工三線同步數(shù)據(jù)
    發(fā)表于 06-15 11:29

    用于ATxmega32E5 AVR XMEGA MCU的ATXMEGAE5-XPLD

    ATXMEGAE5-XPLD,AVR XMEGA-E5 Xplained評(píng)估套件是評(píng)估ATxmega32E5微控制器的硬件平臺(tái)。該套件提供更多功能,使Atmel AVR XMEGA用戶能夠立即開(kāi)始使用XMEGA外設(shè),并了解如何將
    發(fā)表于 06-10 14:55

    了解LVGL的學(xué)習(xí)路線

    “本文大部分內(nèi)容來(lái)自LVGL官方文檔,手翻版,如有錯(cuò)誤歡迎指正?!毕盗形恼履夸?b class='flag-5'>一、LVGL系列(了解LVGL的學(xué)習(xí)路線輕松
    發(fā)表于 12-07 12:55

    了解透?jìng)髟苹A(chǔ)知識(shí)

    了解透?jìng)髟苹A(chǔ)知識(shí)講透?jìng)髟?,我們?b class='flag-5'>了解它的定義,首先了解下****透?jìng)魍競(jìng)鳎?透明傳輸。即在傳輸過(guò)程中,不管所傳輸?shù)膬?nèi)容、數(shù)據(jù)協(xié)議形式,
    發(fā)表于 02-25 10:32

    AT32F系列DMA彈性映射功能使用的方法

    AT32F系列DMA彈性映射功能使用演示AT32F系列DMA彈性映射功能使用的方法。
    發(fā)表于 10-27 08:20

    EE-143:了解ADSP-TS101上的DMA

    EE-143:了解ADSP-TS101上的DMA
    發(fā)表于 04-24 11:29 ?7次下載
    EE-143:<b class='flag-5'>了解</b>ADSP-TS101上的<b class='flag-5'>DMA</b>

    STM32通(9) DMA

    . DMA簡(jiǎn)介DMA(Direct Memory Access,直接存儲(chǔ)器訪問(wèn)) 傳輸將數(shù)據(jù)從個(gè)地址空間復(fù)制到另外個(gè)地址空間。而且不
    發(fā)表于 12-03 09:21 ?17次下載
    STM32<b class='flag-5'>一</b><b class='flag-5'>文</b>通(9) <b class='flag-5'>DMA</b>

    ATxmega256A3U中文資料解密

    ATxmega128A3U!ATxmega256A3U型號(hào)解密 ? ATxmega256A3U-AU?ATxmega192A3U-AU ATxmeg
    的頭像 發(fā)表于 04-13 14:25 ?2428次閱讀

    詳解DMA

    DMA傳輸將數(shù)據(jù)從個(gè)地址空間復(fù)制到另個(gè)地址空間,提供在外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 10-12 09:45 ?1.2w次閱讀

    DMA485K電源載波總線數(shù)話同傳模塊發(fā)布

    針對(duì)數(shù)話同傳功能推出DMA485K模塊產(chǎn)品,DMA485K基于迪T5L0ASIC設(shè)計(jì),采用485接口,支持在最遠(yuǎn)端點(diǎn)間距1500米以內(nèi)
    的頭像 發(fā)表于 02-24 20:00 ?1549次閱讀
    迪<b class='flag-5'>文</b><b class='flag-5'>DMA</b>485K電源載波總線數(shù)話同傳模塊發(fā)布

    AT32講堂004 | AT32 MCU DMA通道的靈活配置

    概述在使用Artery部分系列MCU時(shí)(如AT32F413\AT32F415\AT32F403A\AT32F407),可以使用DMA彈性映射功能。此功能使DMA的通道配置更加靈活,可
    的頭像 發(fā)表于 05-10 09:57 ?2556次閱讀
    AT32講堂004 | AT32 MCU <b class='flag-5'>DMA</b>通道的靈活配置

    了解 PCB 的有效導(dǎo)熱系數(shù)

    了解 PCB 的有效導(dǎo)熱系數(shù)
    的頭像 發(fā)表于 11-24 15:48 ?1714次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b> PCB 的有效導(dǎo)熱系數(shù)

    了解剛?cè)峤Y(jié)合制造過(guò)程

    了解剛?cè)峤Y(jié)合制造過(guò)程
    的頭像 發(fā)表于 12-04 16:22 ?623次閱讀

    帶你了解 DAC

    了解 DAC
    的頭像 發(fā)表于 12-07 15:10 ?8247次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>帶你<b class='flag-5'>了解</b> DAC