HC32F4A0_DMA控制器

0.简介

1.功能描述

1.1 启动DMA

1.2 数据块的定义

1.3 传输地址的控制

1.4 传输次数

1.5 通道的重置功能

1.6 通道监视寄存器


0.简介

       DMA用于在存储器和外围功能模块之间传送数据,能够在CPU不参与的情况下实现存储器之间,存储器与外围功能模块之间的数据交换。

  1. 拥有2个DMA控制单元,共16个独立通道,可独立操作不同的DMA传输。每个DMA控制单元中包含8个通道,每个通道可以独立配置传输功能。

8个通道优先级顺序为:通道0>通道1>…>通道7。

当一个DMA单元有多个通道请求传输时将按优先级顺序执行。但已处于传输中的通道不会被打断,高优先通道需等当前通道传输完成后才会启动。

  1. 每个通道的启动源通过独立的触发源选择寄存器配置
  2. 每次请求传输一个数据块。数据块最小为1个数据,最多可以是1024个数据。每个数据的宽度可配置为8bit、16bit或32bit。
  3. 源地址和目标地址可以独立配置为固定,自增,自减,循环或指定偏移量的跳转

        

        DMA的控制功能较为复杂,如不连续地址传输、连锁传输、中断等。本文仅介绍一些常规的操作。
        如使用DMA的目的就是为了减少中断,因此一般来讲既然使用了DMA就不会使用中断了,本文就不介绍中断了。

1.功能描述

1.1 启动DMA

       DMA通过外围电路产生的请求启动,这些请求通过触发源选择寄存器DMA_TRGSELx(x=0~7)进行配置,各通道独立配置启动请求源。

       当外围电路产生启动请求或软件写寄存器产生启动请求时,并且DMA传输使能有效DMA_EN.EN=1,传输通道处于许可状态DMA_CHEN.CHEN[x]=1,则启动通道x传输。

       DMA1_TRGSELx与DMA2_TRGSELx均属于AOS(自动运行系统)的寄存器。

B31

COMEN[1]

公共触发使能

0:禁止AOS_COMTRG2的公共触发事件触发本AOS目标

1:允许AOS_COMTRG2的公共触发事件触发本AOS目标

B30

COMEN[0]

公共触发使能

0:禁止AOS_COMTRG1的公共触发事件触发本AOS目标

1:允许AOS_COMTRG1的公共触发事件触发本AOS目标

B8~B0

TRGSEL[8:0]

触发源选择

写入要选择的外设电路事件的编号

       至于外设电路事件的编号,可参见章节《中断控制器(INTC)》中的表(中断事件请求序号与选择),其中的“编号”项即是外设电路事件的编号。

       传输通道使能由两个寄存器控制DMA_CHEN、DMA_CHENCLR,分别用于使能与禁能传输通道。

DMA_CHEN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式老牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值