雅特力AT32F423 DMA使用指南
DMA控制器的作用不仅在增强系统性能并减少处理器的中断生成,而且还针对32位MCU应用程序专门优化设计。DMA控制器为存储器到存储器,存储器到外设和外设到存储器的传输提供了7个通道。每个通道都支持外设的DMA请求映射到任意通道上。
图1. DMA控制器架构
DMAMUX简介
对于如何将外设的DMA请求映射到任意的数据流通道上,就需要使用到DMAMUX。DMAMUX针对每个外设都设计了独有的ID号,使用者只需要将此ID号写入对应的寄存器中并打开DMAMUX功能即可。DMAMUX的引入,使得DMA相较于传统DMA控制器变得更加灵活,使用者可以随意的分配7个通道的使用情况,不必再纠结与某个IP的DMA请求只能固定使用在某个或某几个通道上。各IP对应ID号如下表:
表1.各IP对应ID号列表
注:表格中“DMAMUX请求”为ID号;“来源”为各IP的DMA请求。
DMA功能解析
可编程数据宽度
DMA控制器的通道可支持传输不同数据宽度,byte/halfword/word。通过DMA_CxCTRL中的PWIDTH和MWIDTH位可以对源数据和目标数据的数据宽度进行编程,通常情况下需要设置PWIDTH和MWIDTH位相等,当PWIDTH不等于MWIDTH时,会依据PWIDTH/MWIDTH设定将资料对齐。
图2. PWIDTH:byte, MWIDTH: half-word
图3. PWIDTH: half-word, MWIDTH: word
配置DMAMUX
在M2P与P2M模式下,必须配置DMAMUX,否则DMA不会响应外设DMA请求。DMAMUX的作用是为外设的DMA请求复用通道,即任何一个外设的DMA请求可以映射到DMA1/DMA2的任意通道,这大大增加了DMA通道分配的灵活性。配置DMAMUX比较简单,只需调用专门提供的两个接口函数即可:
配置请求生成器模块
在配置了DMAMUX时,可选择配置DMA请求生成器模块,模块一共有4个请求生成器通道。此模块无需任何传统外设(如TIMER、SPI等)提供DMA请求,可通过外部EXINT输入作为DMA请求源输入。配置请求生成器模块较为简单,只需调用专门提供的接口函数即可:
配置请求同步模块
在配置了DMAMUX时,可选择配置DMA同步模块,模块一共有7个同步通道。使能此功能后,当外设产生DMA请求时,DMA不会马上响应并传输数据,而是要等待同步信号的到来,当接收到同步信号后,DMA才会根据配置传输数据;同步信号可由外部EXINT输入提供配置同步模块较为简单,只需调用专门提供的接口函数即可:
DMA配置解析
以下对DMA的配置接口及流程进行说明。
函数接口
表2. 通道配置函数列表
数据流配置
· 设置外设地址(CxPADDR寄存器)
数据传输的初始外设地址,在传输过程中不可被改变。
· 设置存储器地址(CxMADDR寄存器)
数据传输的初始内存地址,在传输过程中不可被改变。
· 配置数据传输量(CxDTCNT寄存器)
可编程的传输数据长度最大为65535。在传输过程中,该传输数据量的值会逐渐递减。
· 数据流配置(CxCTRL寄存器)
包含通道优先级,数据传输的方向、宽度、地址增量模式、循环模式和中断方式。
优先级(CHPL)
分为4个等级,最高优先级、高优先级、中等优先级和低优先级。
若有2个流优先级设定相同,则较低编号的流有较高的优先权。举例,流1优先于流2。
数据传输方向(DTD)
分为存储器到外设(M2P),外设到存储器(P2M)或存储器到存储器(M2M)传输。
在存储器到存储器传输模式下不允许使用循环模式、双缓冲模式和直接模式。
数据传输宽度(PWIDTH/MWIDTH)
根据实际使用情景,可配置宽度为byte、halfword、word。
地址增量模式(PINCM/MINCM)
当通道配置设定为增量模式时,下一笔传输的地址将是前一笔传输地址加上传输宽度(PWIDTH/MWIDTH)。
循环模式(LM)
当流配置设定为循环模式时,在最后一次传输后CxDTCNT寄存器的内容会恢复成初始值。
· 使能DMAMUX(MUXSEL寄存器的TBL_SEL位)
在非存储器到存储器(M2M)模式下时,需要使能DMAMUX功能,才能启动数据流响应外设的DMA请求。
· 写入外设ID号(MUXCxCTRL寄存器的REQSEL)
在非存储器到存储器(M2M)模式下时,需要将外设的DMA请求ID号写入,才能启动数据流响应外设的DMA请求。
· 打开数据流(CxCTRL寄存器的CHEN位)
配置流程
· 打开DMA时钟;
· 调用通道复位函数复位数据流;
· 调用结构体初始化函数初始化通道配置结构体;
· 调用初始化函数初始化通道;
· 调用DMAMUX使能函数以及ID号写入函数配置DMAMUX相关内容;
· 调用通道使能函数开启通道。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由犀牛先生转载自AT32 MCU 雅特力科技公众号,原文标题为:AT32讲堂077 | 雅特力AT32F423 DMA使用指南,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】雅特力32位MCU AT32F421 GPIO的使用指南
本文中雅特力将为大家分享32位微控制器AT32F421 GPIO的使用指南。
雅特力AT32F423系列MCU时钟配置指南
时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。
雅特力AT32F423系列MCU I2C使用指南
I2C接口是由数据线SDA和时钟线SCL构成,在标准模式下通信速度可达到100kHz,快速模式下则可以达到400kHz,增强快速模式可达到1MHz。一帧数据传输从开始信号开始,在结束信号后停止,在收到开始信号后总线被认为是繁忙的,当收到结束信号后,总线被认为再次空闲。 本文介绍雅特力AT32F423 I2C使用指南。
雅特力32位MCU选型表
雅特力AT32 MCU的选型的相关技术参数如下,32位MCU,多种封装:TSSOP20,QFN28,QFN32,QFN48,LQFP48,LQFP64,LQFP100,LQFP144,稳定的工作温度:-40°C~85°C,-40°C~105°C,频率范围在96MHz~288MHz之间
产品型号
|
品类
|
Core
|
FPU
|
Speed(MHz)
|
Flash(KB)
|
SRAM(KB)
|
I/O
|
Advanced TM(16-bit)
|
GPTM(32-bit)
|
GPTM(16-bit)
|
Basic TM(16-bit)
|
Systick(24-bit)
|
WDT
|
WWDT
|
RTC
|
I2C
|
SPI
|
(F/H)I2S(1)(2)
|
USART/UART
|
SDIO
|
USB Device
|
CAN
|
ADC Engine
|
12-bit ADC ch
|
DAC Engine
|
12-bit DAC ch
|
PKG
|
Size(mm)
|
Temp(℃)
|
AT32F403ZCT6
|
32位MCU
|
M4
|
FPU
|
200MHz
|
256KB
|
96KB/224KB
|
112
|
3
|
2
|
8
|
2
|
1
|
1
|
1
|
1
|
3
|
4
|
0/4
|
3/2
|
2
|
1
|
1
|
3
|
21
|
2
|
2
|
LQFP144
|
20mmx20mm
|
-40℃~85°C
|
选型表 - 雅特力 立即选型
国产32位MCU,240M高主频、独有安全库、AD/DA、CAN、EMAC接口外设应有尽有
型号- AT32F413,AT32F415,STM32F407VET6,STM32F407VGT6,STM32F407,AT32F421,AT32F403ARGT7,AT32F4XX,STM32F103RET6,AT32F403ARET7,STM32F107VBT6,AT32F403,AT32F403ARCT7,STM32F207,AT32F407,AT32F403AVET7,STM32F107RBT6,AT32F403ACGT7,AT32F403AVGT7,AT32F403ACET7,AT32F403ACCT7,AT32L031,AT32F403AVCT7,STM32F103VCT6,STM32F103VET6,STM32F103VGT6,STM32F103RGT6,STM32F207VGT6,AT32F407AVCT7,STM32F207VCT6,AT32F435,AT32F437,AT32F407VCT7,AT32F407AVGT7,AT32F403AXXU7,AT32F407VGT7,AT32F407XXT7,AT32F407RCT7,AT32F403ACGU7,AT32F407VET7,AT32,AT32F407RET7,AT32F403ACEU7,AT32F407RGT7,AT32F403ACCU7,AT32 SERIES,STM32F207VET6,AT32F403A 系列,AT32F425,STM32F103,STM32F107VCT6,STM32F107,AT32F403AXXT7,STM32 SERIES,AT32F407 系列,STM32F107RCT6,AT32F403A,AT32L415,AT32F407A
【应用】国产32位MCU AT32F413CBT7用于车辆视频监控系统,主频最高200MHz
针对车辆视频监控系统中的主控MCU,推荐雅特力AT32F413CBT7,供电电压2.6V至3.6V,高达128K字节的内存和64K字节的SRAM,最高200MHz工作频率,-40至+105℃温度范围。
【经验】解析雅特力AT32系列MCU RTC入门指南
RTC计数逻辑位于电池供电域,内部为一个32位递增计数器,只要电池供电域有电,RTC便会一直运行,不受系统复位以及VDD掉电影响。本文雅特力将为大家介绍AT32系列MCU的RTC入门指南。
雅特力32位MCU-AT32快速选型指南
型号- AT32F413CCU7,AT32F437ZCT7,AT32F415CBT7,AT32F415R8T7,AT32F425F8P7,AT32F437ZGT7,AT32F403ZET6,AT32F421K6T7,AT32F425C6U7,AT32F437VMT7,AT32F425R8T7,AT32F437RGT7,AT32F421K4U7-4,AT32F437RCT7,AT32F403ARGT7,AT32WB415CCU7-7,AT32F413CBT7,AT32F435CMT7,AT32F403ARCT7,AT32F415CCU7,AT32F435RCT7,AT32F435ZGT7,AT32F403AVET7,AT32F435RGT7,AT32F435VMT7,AT32F421C6T7,AT32F403ACET7,AT32F413KBU7-4,AT32F435ZCT7,AT32WB415,AT32F435CMU7,AT32F413CBU7,AT32F415KBU7-4,AT32F407RCT7,AT32F403ACGU7,AT32F407VET7,AT32F425K8U7-4,AT32F407RGT7,AT32F403ACCU7,AT32F415RCT7,AT32F425R8T7-7,AT32F415CBU7,AT32F425K6T7,AT32F421K6U7,AT32F425K6U7-4,AT32F425C6T7,AT32F421G4U7,AT32F415RBT7-7,AT32F421G8U7,AT32F421F4P7,AT32F421F8P7,AT32F413RCT7,AT32F425R6T7-7,AT32F413KCU7-4,AT32F413,AT32F425F6P7,AT32F415,AT32F437VCT7,AT32F421K4T7,AT32F437VGT7,AT32F437ZMT7,AT32F421K8T7,AT32F425C8U7,AT32F403ZGT6,AT32F403ZCT6,AT32F425R6T7,AT32F413C8T7,AT32F415RBT7,AT32F421,AT32F403ARET7,AT32F403,AT32F435VGT7,AT32F435CGT7,AT32F407,AT32F435VCT7,AT32F421C8T7,AT32F435CCT7,AT32F403ACGT7,AT32F403AVGT7,AT32F421C4T7,AT32F403ACCT7,AT32F435ZMT7,AT32F403AVCT7,AT32F413RBT7,AT32F415C8T7,AT32F435,AT32F415RCT7-7,AT32F437,AT32F435CGU7,AT32F407VCT7,AT32F415CCT7,AT32F407VGT7,AT32F435CCU7,AT32F415KCU7-4,AT32,AT32F407RET7,AT32F403ACEU7,AT32F415K8U7-4,AT32F415R8T7-7,AT32F435RMT7,AT32F413CCT7,AT32F425,AT32F421K4U7,AT32F425K8T7,AT32F421K8U7-4,AT32F421K8U7,AT32F425C8T7,AT32F437RMT7,AT32F421G6U7,AT32F421K6U7-4,AT32F421F6P7,AT32F403A
高效能Cortex®-M4 & M0+ MCU 32位微控制器的创新领导者
型号- AT32F423F,AT32WB415,AT-SURF-F437,AT32F413F,AT32A403AF,AT32F435F,AT32F413,AT32F435,AT32F415,AT32F405F,AT32F437,AT-LINK-ISO+,AT32A403A,AT32F437F,AT32,AT-START,AT-LINK+,AT32L021,AT-LINK-EZ,AT-LINK-PRO,AT-LINK,AT32F421,AT32F423,AT32F402F,AT32F402,AT32F425,AT32F405,AT-LINK FAMILY,AT32F407,AT32F4212,AT32F407F,AT32F403A,AT32F403AF
【经验】雅特力32位MCU AT32F413RCT7串口测试详解
本文主要说明雅特力AT32F413RCT7开发板上的串口功能使用配置以及一些区别注意点。
【经验】32位MCU AT32F403A启动进入Hard Fault Handler的解决办法
雅特力科技推出的AT32F403A系列高效能微控制器,搭载32位ARM® Cortex®-M4内核,配合先进制程有效提升整体效能达240MHz的运算速度。内建的单精度浮点运算单元(FPU)及数字信号处理器(DSP),搭配丰富的外设及灵活的时钟控制机制,能满足多种领域应用。在开发中发现有些时候会启动不起来,调试发现进入Hard Fault Handler,关于该问题的原因及解决办法如下。
【经验】如何使用雅特力32位MCU AT32F425的I2C接口?
I2C接口是由数据线SDA和时钟线SCL构成,在标准模式下通信速度可达到100kHz,快速模式下则可以达到400kHz,增强快速模式可达到1MHz;具有主机和从机模式、多主机功能、可编程建立和保持时间、时钟延展功能、DMA存取数据、支持SMBus 2.0协议等特点。本文介绍如何使用雅特力32位MCU AT32F425的I2C接口。
【应用】雅特力32位MCU AT32F421G8U7适用于VBAT设计供电,最高可支持64KB闪存存储器
雅特力科技推出AT32F421系列超值型ARM® Cortex®-M4微控制器MCU,高达120MHz的CPU运算速度与内建数字信号处理器(DSP),最高可支持64KB闪存存储器(Flash)及16KB随机存取存储器(SRAM),集成了丰富外设接口。
【经验】如何提高雅特力32位MCU AT32F403RCT7在ADC采集信号的精度
雅特力32位MCU AT32F403RCT7采用高性能ARM Cortex-M4F内核,工作频率240MHz主频,本文主要介绍雅特力32位MCU AT32F403RCT7的ADC如何通过硬件设计电路来提高测量精度。
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可定制PCB最高层数:32层;板材类型:罗杰斯高频板/泰康尼高频板/ZYF中英天线板/F4B高频板/高频电路板/高频混压板/高频纯压板等;最大加工尺寸:609*889mm。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论