华大单片机HC32F460

供应商
沈阳芯硕科技有限公司
认证
联系电话
024-85718900
手机号
19972041966
联系人
宣宣
所在地
辽宁省沈阳市铁西区建设西路5号(14B13)
更新时间
2021-09-16 14:08

详细介绍

1

摘要

本篇应用笔记主要介绍如何使用华大单片机hc32f460系列mcu的dma模块传输数据。

2

dma简介

什么是dma?

dma(直接内存访问控制器)功能块可以不通过cpu高速传输数据。使用dma能提高系统性能。

dma 的重要特征?

dma独立于cpu总线的总线,所以即便是在使用cpu总线的时候,dma也可进行传输操作。

3

华大单片机hc32f460系列mcu的dma

3.1

简介

华大单片机hc32f460系列mcu内部集成dmac模块,能够在cpu不参与的情况下实现存储器之间,存储器和外围功能模块之间以及外围功能模块之间的数据交换。

3.2

说明

dmac总线独立于cpu总线,按照ambaahb-lite 总线协议传输。

拥有2 个 dma控制单元,共8个独立通道,可以独立操作不同的dma传输功能。两个控制单元受不同处理器控制,可以同时独立使用。每个通道的启动资源通过独立的触发源选择寄存器配置。每次请求传输一个数据块,数据块小为1个数据,多为1024个数据。每个数据的宽度可配置为8bit,16bit,32bit。源地址和目标地址可以独立配置为固定、自增、自减、循环或偏移量的跳转。可产生3种中断:块传输完成中断,传输完成中断,传输错误中断。每种中断都可配置是否屏蔽。其中块传输完成,传输完成可作为事件输出,作为其他外围模块的触发源。支持连锁传输功能,可实现一次请求传输多个数据块。支持外部事件触发通道重置。不使用时可设置进入模块停止状态以降低功耗。

3.2.1寄存器介绍

1)dma_en:dma使能寄存器,使能或关闭dma模块。

2)dma_chen:通道使能寄存器,使能或关闭dma通道,bit0~3分别对应一个通道。

3)dma_instat0~1:中断状态寄存器(传输请求溢出错误中断、传输错误中断、块传输完成中断、传输完成中断)。

4)dma_intmask0~1:中断屏蔽寄存器,配置各中断是否屏蔽。

5)dma_intclr0~1:中断复位寄存器,清空中断状态标志位。

6)dma_rcfgctl:通道重置寄存器,配置dma重置后的相关参数,包括:剩余传输次数计数方式、目标/源地址重置方式、通道选择、链式传输等。

7)dma_chstat:通道状态观测寄存器。

8)dma_trgsel0~3:触发源选择寄存器,配置各通道启动传输的触发源,配置前需打开pwr_fcg0寄存器的aos位。

9)dma_trgselrc:通道重置触发源选择寄存器,配置启动通道重置的触发源。

10)dma_sar0~3:源地址寄存器,配置传输源地址。

11)dma_dar0~3:目标地址寄存器,配置传输目标地址。

12)dma_dtctl0~3:数据控制寄存器,配置传输次数和数据块大小。

13)dma_rpt0~3:重复区域大小寄存器,配置源地址和目标地址重复区域大小。

14)dma_rptbb0~3: 重复区域大小寄存器b,配置源地址和目标地址重复区域大小。

15)ctl0~3: 源设备不连续地址传输控制寄存器,配置源地址跳转的地址偏移和源地址跳转的数据量

16)ctlb0~3: 源设备不连续地址传输控制寄存器b,配置源不连续区域地址间距和源地址跳转的数据量

17)ctl0~3: 目标设备不连续地址传输控制寄存器,配置目标地址跳转的地址偏移量和数据量

18)ctlb0~3: 目标设备不连续地址传输控制寄存器b,配置目标不连续区域地址间距和目标地址跳转数据量

19)dma_llp0~3: 链指针寄存器,配置链指针

20)dma_chxctl(x=0~3):通道控制寄存器

21)dma_monsarx , dma_mondarx,dma_mondtctlx,dma_monrptx,ctlx,ctlx:通道监视寄存器,dma每完成一次传输请求后更新

3.2.2工作流程介绍

本章节主要介绍dma传输模式的设置和运行流程。

1)重载传输

该传输可以配置源地址、目标地址在增加/减少至寄存器配置的重复区域大小时重新返回至地址设定值。重复区域的大小由寄存器dma_rptdma_chxctl.hsize 的设定值决定。

2)不连续传输

该传输可以传输数量的数据后,地址将跳过偏移量,当地址重载与不连续跳转的条件同时满足时,执行地址重载。

3)连锁传输

该传输当一个描述符的传输结束时,llp的下一个描述符将被从存储器中载入通道配置寄存器。等待下一次传输请求输入,开始新描述符的一次传输。或者根据寄存器dma_chxctlx.llprun的设置,在载入新描述符后直接开始一次传输。

4)通道重置传输

通道重置功能,是指通过外围电路的事件请求来修改通道内部状态寄存器,重新配置下一次数据的传输方式。

5)传输提前终止

传输过程中通道使能寄存器dma_chen.chenx保持有效,非连锁传输时,数据控制寄存器dma_dtctlx设定的传输次数完成后自动置为无效,连锁传输时,传输的传输次数完成后自动置为无效。传输过程中如果软件写dma_chen.chenx为0,则dma将在完成当次数据读写后终止传输。

4

样例代码

4.1

代码介绍

用户可根据上述的工作流程编写自己的代码来学习验证该模块,也可以直接通过华大半导体的网站下载到设备驱动库(devicedriver library, ddl)的样例代码并使用其中的dma的样例进行验证。

4.2代码运行

用户可以通过华大半导体的网站下载到hc32f460的ddl的样例代码

(dmac_reload_address),并配合评估用板(ev-hc32f460-l)运行相关代码学习使用dma模块。以下部分主要介绍如何在评估板上运行dma样例代码并观察结果:

- 确认安装正确的iarewarm v7.7 工具(请从iar相关网站下载相应的安装包,并参考用户手册进行安装)。

-从华大半导体网站下载 hc32f460ddl 代码。


华大单片机 、华大MCU 、国产单片机、低功耗MCU、华大M4内核产品

展开全文

我们其他产品
我们的新闻
咨询 在线询价 拨打电话