0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子工程师 作者:工程师陈翠 2018-06-18 14:10 次阅读

atXmega相比atmega系列芯片,增加的一个比较显著的功能就是DMA控制器

DMA控制器可以直接将数据从一个外设寄存器移到内部或外部SRAM,也可在SRAM的不同地址间,甚至不同外设寄存器之间移动数据。当CPU数据总线空闲时,DMA控制器便会用它来完成内存和外设间的数据传输,无需使用CPU资源。采用DMA控制器的芯片,性能更好,功耗更低。

DMA控制器有一个比较重要的概念,就是数据传输。里面又有Burst transfer【突发传输】和Block transfer【块传输】。Blocktransfer是有多个Burst transfer构成。DMA transaction可以由单个或者多个Blocktransfer构成。之所以要定义这些概念,是为了确定数据发送地址和数据目标地址的重载方式。

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

这里我们用一个简单的例子来说明DMA的功能。ADC转换结果通过一个DMA通道传送到SRAM。即ADC转换结束触发DMA transaction,将AD值【CHnRES】传输到目标变量samples_0[0]内。

那么数据源发送地址就是CHnRESH和CHnRESL的地址,目标地址就是samples_0[0]的地址,即samples_0咯。我们用最简单的传输方式,ADC转换结束,就采用一次Burst transfer(single slot)传送两个字节(CHnRESH和CHnRESL)。下面黄色部分是对single-slot传输的解释。

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

下面贴程序,首先是DMA初始化设置。

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

下面是ADC部分,启动ADC采样。

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

ADC采样结束会把AD值自动传输给变量samples_0[0]。传输完后,由于single-slot模式DMA传输通道使能会位被清零。如果需要再次使用DMA功能,需要重新将使能位置1(DMA_CH_ENABLE_bm)。

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

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

采用DMA功能实现ADC采样,相比轮询和中断方式,可以极大的减少对CPU资源的占用。

自己也是在上班之余,看了两个晚上的DMA功能和相关程序写出来的,程序是通过电路板验证过的。大家在理解的基础上,自己组织一下,就可以拿来用。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Atmel
    +关注

    关注

    17

    文章

    310

    浏览量

    106553
  • dma
    dma
    +关注

    关注

    3

    文章

    535

    浏览量

    99030
收藏 人收藏

    评论

    相关推荐

    求助:ATXmega64a3u与 ATXmega64a3编程的区别

    紧急求助:{:4_98:}各位大侠 我用ATXmega64a3编写的程序用 ATXmega64a3u点也没法用,这两个芯片除了后者具有USB外,到底还有哪些差别?我实在搞不定!望各位大侠关照!另外
    发表于 04-25 08:52

    新人报道,向各位前辈问好!顺便请教:我为什么不能使用博客功能

    各位老大,前辈,同行,同学,新人报道。不懂规矩。请多多指教!顺便请教个问题,为什么我的博客功能不能使用,就是说:不能发表博,这是为啥?祝好!
    发表于 11-10 13:40

    转:ATxmega入门之六:ATxmage SPI模块介绍

    ATxmega的SPI与USART占用相同的资源,引脚也共用,所以使用了SPI功能,有个USART就不能使用了。Xmega16A4有两个SPI接口,具有相同的特性:全双工三线同步数据
    发表于 06-15 11:29

    DALI Slave采用ATxmega32E5的参考设计

    DALI Slave采用ATxmega32E5参考设计。该参考设计演示了使用ATxmega32E5微控制器的DALI从器件。连接到同总线的DALI主机可以控制从LED,调光或打开/关闭,以模拟灯泡的控制
    发表于 05-26 06:31

    用于ATxmega32E5 AVR XMEGA MCU的ATXMEGAE5-XPLD

    ATXMEGAE5-XPLD,AVR XMEGA-E5 Xplained评估套件是评估ATxmega32E5微控制器的硬件平台。该套件提供更多功能,使Atmel AVR XMEGA用户能够立即开始使用XMEGA外设,并了解如何将
    发表于 06-10 14:55

    了解BLDC与PMSM的区别

    参考文件:了解BLDC与PMSM的区别       BLDC和PMSM电机区别       STM32 FOC BLDC与PMSM的区别PS:总结语句用红色标出,看红色字体即可。现代电机与控制
    发表于 08-30 08:38

    了解LVGL的学习路线

    “本文大部分内容来自LVGL官方文档,手翻版,如有错误欢迎指正。”系列文章目录、LVGL系列(了解LVGL的学习路线轻松
    发表于 12-07 12:55

    如何解决STM32串口DMA传输不能使用的问题?

    如何解决STM32串口DMA传输不能使用的问题?
    发表于 12-13 06:26

    了解透传云基础知识

    了解透传云基础知识讲透传云,我们先了解它的定义,首先了解下****透传透传: 透明传输。即在传输过程中,不管所传输的内容、数据协议形式,
    发表于 02-25 10:32

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

    AT32F系列DMA弹性映射功能使用演示AT32F系列DMA弹性映射功能使用的方法。
    发表于 10-27 08:20

    定位导航功能使用说明

    定位导航功能使用说明。
    发表于 05-19 15:16 11次下载

    基于DALI-Slave-with-ATXMEGA32E5微控制器的参考设计

    查看DALI从站与ATXMEGA32E5的参考设计。 http://www.elecfans.com/soft/有成千上万的参考设计,可帮助您使项目栩栩如生。
    发表于 01-08 08:55 7次下载
    基于DALI-Slave-with-<b class='flag-5'>ATXMEGA</b>32E5微控制器的参考设计

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

    EE-143:了解ADSP-TS101上的DMA
    发表于 04-24 11:29 7次下载
    EE-143:<b class='flag-5'>了解</b>ADSP-TS101上的<b class='flag-5'>DMA</b>

    ATxmega256A3U中文资料解密

    ATxmega128A3U!ATxmega256A3U型号解密   ATxmega256A3U-AU ATxmega192A3U-AU ATxmeg
    的头像 发表于 04-13 14:25 1923次阅读

    AT32讲堂004 | AT32 MCU DMA通道的灵活配置

    概述在使用Artery部分系列MCU时(如AT32F413\AT32F415\AT32F403A\AT32F407),可以使用DMA弹性映射功能。此功能使DMA的通道配置更加灵活,可
    的头像 发表于 05-10 09:57 1571次阅读
    AT32讲堂004 | AT32 MCU <b class='flag-5'>DMA</b>通道的灵活配置