请选择 进入手机版 | 继续访问电脑版

芯虎论坛

 找回密码
 立即注册
查看: 2886|回复: 0

华大单片机HC32F460 系列的 DMA 控制器(二)

[复制链接]

34

主题

34

帖子

138

积分

虎头虎脑

Rank: 2

积分
138
发表于 2021-11-1 10:15:03 | 显示全部楼层 |阅读模式
13) DMA_RPT0~3:重复区域大小寄存器,配置源地址和目标地址重复区域大小。
14) DMA_RPTBB0~3: 重复区域大小寄存器 B,配置源地址和目标地址重复区域大小。
15) DMA_SNSEQCTL0~3: 源设备不连续地址传输控制寄存器,配置源地址跳转的地址偏移和源地址跳转的数据量。

16) DMA_SNSEQCTLB0~3: 源设备不连续地址传输控制寄存器 B,配置源不连续区域地址间距和源地址跳转的数据量
17) DMA_DNSEQCTL0~3: 目标设备不连续地址传输控制寄存器,配置目标地址跳转的地址偏移量和数据量
18) DMA_DNSEQCTLB0~3: 目标设备不连续地址传输控制寄存器 B,配置目标不连续区域地址间距和目标地址跳转数据量
19) DMA_LLP0~3: 链指针寄存器,配置链指针
20) DMA_CHxCTL(x=0~3):通道控制寄存器
21) DMA_MONSARx , DMA_MONDARx , DMA_MONDTCTLx , DMA_MONRPTx ,DMA_MONSNSEQCTLx,DMA_MONDNSEQCTLx:通道监视寄存器,DMA 每完成一次传输请求后更新。

3.2.2 工作流程介绍
本章节主要介绍 DMA 传输模式的设置和运行流程。
1) 重载传输
该传输可以配置源地址、目标地址在增加/减少至寄存器配置的重复区域大小时重新返回至最初的地址设定值。重复区域的大小由寄存器 DMA_RPT DMA_CHxCTL.HSIZE 的设定值决定。
2) 不连续传输
该传输可以传输数量的数据后,地址将跳过偏移量,当地址重载与不连续跳转的条件同时满足时,执行地址重载。
3) 连锁传输
该传输当一个描述符的最后传输结束时,LLP 的下一个描述符将被从存储器中载入通道配置寄存器。等待下一次传输请求输入,开始新描述符的一次传输。或者根据寄存器 DMA_CHxCTLx.LLPRUN 的设置,在载入新描述符后直接开始一次传输。
4) 通道重置传输
通道重置功能,是指通过外围电路的事件请求来修改通道内部状态寄存器,重新配置下一次数据的传输方式。
5) 传输提前终止
传输过程中通道使能寄存器 DMA_CHEN.CHENx 保持有效,非连锁传输时,数据控制寄存器 DMA_DTCTLx 设定的传输次数完成后自动置为无效,连锁传输时,最后传输的传输次数完成后自动置为无效。传输过程中如果软件写 DMA_CHEN.CHENx 为 0,则 DMA将在完成当次数据读写后终止传输。
4
样例代码
4.1
代码介绍
用户可根据上述的工作流程编写自己的代码来学习验证该模块,也可以直接通过华大半导体的网站下载到设备驱动库(Device Driver Library, DDL)的样例代码并使用其中的 DMA 的样例进行验证。
4.2 代码运行
用户可以通过华大半导体的网站下载到 HC32F460 的 DDL 的样例代码
(dmac_reload_address),并配合评估用板(EV-HC32F460-LQFP100-050-V1.1)运行相关代码学习使用 DMA 模块。以下部分主要介绍如何在评估板上运行 DMA 样例代码并观察结果:
- 确认安装正确的 IAR EWARM v7.7 工具(请从 IAR 官方网站下载相应的安装包,并参考用户手册进行安装)。
- 从华大半导体网站下载 HC32F460 DDL 代码。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|芯虎论坛 ( 辽ICP备18019618号 )

GMT+8, 2022-8-13 03:02 , Processed in 0.119919 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表