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

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

3天内不再提示

MSPM0L1306开发板教程之DMA

创易栈 来源:创易栈 2023-06-09 18:21 次阅读

DMA使用是一个不需要CPU干预,自己搬运数据的模块,在前面讲中断事件的章节里面,就有提到过事件的DMA通道,DMA事件路由(DMA Event Route)。

5f2de698-06ad-11ee-962d-dac502259ad0.png

MSPM0L系列提供了6中DMA工作模式,除了比较常见的固定地址到固定地址(Fixed Address To Fixed Address),固定地址到地址块(Fixed Address To Block Of Address),地址块到固定(Block Of Address To Fixed Address),地址块到地址块( Block Of Address To Block Of Address)。

5f4dd106-06ad-11ee-962d-dac502259ad0.png

还提供了填数据到地址块(Fill Data To Block Of Address),数据表到特定地址(Data Table To Specific Address)功能。

5fd0e726-06ad-11ee-962d-dac502259ad0.png

填数据到地址块(Fill Data To Block Of Address)功能是用来快速生成一个等距数组,间距可以选择±1,±2,±4,±8四个选项,DMA会把源地址中填入的数据当做起始数据,然后进行加减间距,填到目标地址中。

数据表到特定地址(Data Table To Specific Address)功能,就是DMA顺序读两次源地址中的数据,把第一个数据当做目标地址的地址,第二个数据当做目标地址的数据,依次填入对应的RAM中。

这里就接着上一次的UART的使用教程,上一次UART发送收到的信息是使用的中断的方式,这次的程序使用UART接收中断触发DMA,DMA再把收到的信息通过UART发送出去。

在上次UART的SYSCONFIG配置中,在UART选项页面配置DMA。

5feb5570-06ad-11ee-962d-dac502259ad0.png

DMA的触发源选择UART的接收中断,会生成一个DMA通道的配置,因为是把串口接收寄存器中的数据搬运到串口的发送寄存器,所以选择的是固定地址到固定地址的发送,每次触发发送为1个字节,发送模式选择Repeat Single,如果不是Repeat的话,DMA会在发送完成传输次数(Transfer Size)后关闭DMA通道。

再到程序中,配置也比较简单,只需要手动配置好源地址和目标地址,使能DMA即可。

60189d28-06ad-11ee-962d-dac502259ad0.png

配套的工程文件名为DMA,需要复制到SDK目录下运行。

DMA的触发源比较多,在mspm0l1306.h中可以找到对应芯片支持的触发源。

60457c80-06ad-11ee-962d-dac502259ad0.png

可以看到除了除了DMA事件路由和软件触发外,还支持通用事件路由。

其实DMA的中断除了可以中断CPU,也可以产生通用路由事件做其他控制用,这样就可以最大程度的较少CPU的干预,提升效率,降低功耗。

607036e6-06ad-11ee-962d-dac502259ad0.png

审核编辑:汤梓红

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

    关注

    5

    文章

    884

    浏览量

    41023
  • uart
    +关注

    关注

    22

    文章

    1159

    浏览量

    99961
  • dma
    dma
    +关注

    关注

    3

    文章

    535

    浏览量

    99020
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93992
  • 数据表
    +关注

    关注

    0

    文章

    294

    浏览量

    11264

原文标题:MSPM0L1306开发板教程7 - DMA

文章出处:【微信号:创易栈,微信公众号:创易栈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MSPM0L1306开发板程之OPA

    MSPM0L系列的OPA是一个轨到轨输入输出的可编程运算放大器,最大为32x,可以软件配置为零漂移斩波放大器以提高精度和漂移性能,有专门优化的输入管脚的型号可以达到10pA的输入偏置电流,标准模式为6MHz带宽,低功耗模式下带宽为1MHz,电流100uA。
    发表于 07-15 09:58 543次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>OPA

    【触觉智能 Purple Pi开发板试用】点亮I2C_SSD1306

    Purple Pi开发板 板载了两个i2c,今天使用i2c0来驱动SSD1306。1、前面有几个大佬已经驱动过i2c,还有一个大佬用i2c驱动了LCD1602,那个教程写得非常的好。我查到了有个现成
    发表于 11-03 14:30

    MSPM0 G 系列 MCU 硬件开发指南

    MSPM0 G 系列微控制器 (MCU) 产品系列提供多种具有超低功耗和集成式模拟数字外设的 32 位 MCU,适用于检测、测量和控制应用。本应用手册涵盖了使用 MSPM0 G 系列 MCU 进行
    发表于 04-12 13:52

    MSPM0L1306开发板程之开发环境搭建

    TI的MSPM0L系列的开发,可以使用KEIL,IAR,CCS等开发环境。仿真器可以使用ARM开发常用的JLINK,以及TI的XDS仿真器。
    的头像 发表于 04-23 10:11 5316次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b><b class='flag-5'>开发</b>环境搭建

    MSPM0L1306开发板程之GPIO输入输出

    GPIO算是所有MCU入门的第一步,今天的教程就来教大家设置MSPM0L系列的GPIO的输入输出功能。
    的头像 发表于 05-04 17:22 3038次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>GPIO输入输出

    MSPM0L1306开发板程之GPIO的中断

    前面已经演示了如何配置GPIO的输入和输出,这次就接着讲GPIO的中断如何使用。
    的头像 发表于 05-14 09:40 2231次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>GPIO的中断

    MSPM0L1306开发板程之运行模式

    今天的教程讲下MSPM0L系列的运行模式。
    的头像 发表于 05-29 11:21 1499次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>运行模式

    MSPM0L1306开发板程之ADC

    MSPM0L系列的ADC是一个12bit的SAR ADC,采样频率最高1.45MHz,最高可做到11.2位的实际有效位(ENOB)。
    的头像 发表于 06-10 10:16 1714次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>ADC

    MSPM0L1306开发板程之通用定时器

    MSPM0L系列的通用定时器(TIMG)是一个16位的自动重装定时器,支持向下和上下计数两种模式,同时带有两个比较捕获单元,可以做到输出比较,输入捕获,PWM输出,单脉冲输出等功能。
    的头像 发表于 06-30 15:50 1675次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>通用定时器

    MSPM0L1306开发板程之I2C

    MSPM0L系列的I2C支持主从模式,有7位地址位可以设置,速率最大1Mbps,无论是主机或者从机,发送和接收都有独立的8个字节FIFO。
    的头像 发表于 06-30 15:50 1798次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>I2C

    MSPM0L1306开发板教程- NVM(FLASH)

    MSPMPL系列中的NVM(Non Volatile Memory)非易失性存储,也就是我们常说的FLASH。
    的头像 发表于 07-08 10:52 1481次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程- NVM(FLASH)

    MSPM0L1306开发板教程-SPI

    MSPM0L系列的SPI控制器最大频率是16MHz,支持3线和4线的模式,带有4个片选(CS),其中CS3支持命令模式(Command Mode)。
    的头像 发表于 07-08 10:56 1109次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教程-SPI

    MSPM0L1306开发板程之COMP

    MSPM0L带有模拟比较器功能,可以用于模拟信号的比较,用于中断MCU或者触发MCU其他外设。
    的头像 发表于 07-15 09:56 836次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>COMP

    MSPM0L1306开发板程之WWDT

    窗口看门狗WWDT,MSPM0L系列的看门狗的时钟使用的是32KHz的LFCLK,计数器有25位,寄存器可以有8个可选的计数周期,加上时钟的最大8分频,也就是有64档计数周期可选,从1.95ms到8190s,有两个阈值,关闭窗口(closed window)和打开窗口(open window)。
    的头像 发表于 07-15 10:01 687次阅读
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>教<b class='flag-5'>程之</b>WWDT

    TI MSPM0L1306开发板简介

    看参考设计的时候看到了这个芯片,和以往烂大街的芯片不一样,它发布于今年3月。这个芯片更是TI这个老师傅狠狠的将活注入到MCU里面产生的奇妙产物。
    的头像 发表于 12-15 10:00 1276次阅读
    TI <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>开发板</b>简介