搜索
查看: 1397|回复: 1

[中文资料] 【中文文档】AN2548_使用STM32F1x和STM32L1xDMA控制器

[复制链接]

该用户从未签到

1492

主题

2703

帖子

0

蝴蝶豆

管理员

最后登录
2021-5-11
发表于 2019-4-24 13:03:43 | 显示全部楼层 |阅读模式
使用 STM32F101xx 和 STM32F103xxDMA 控制器

1 前言

这篇应用笔记描述了怎么使用STM32F101xx 和 STM32F103xx的直接存储器访问(DMA)控制器。STM32F101xx和STM32F103xx的DMA控制器、CortexTM-M3内核、高级微控制器总线架构(AMBA)总线和存储器系统,使得STM32具有高的数据带宽,并能使用户开发出低延迟、快响应的软件。

这篇文档也描述了怎样充分利用这些特性,以及对于不同的外设和子系统怎样保证正确的响应时间。

在下文中STM32F101xx和STM32F103xx都记作STM32F10xxx,DMA控制器都记作DMA。

2 DMA控制器

DMA是AMBA的先进高性能总线(AHB)上的设备,它有2个AHB端口:一个是从端口,用于配置DMA,另一个是主端口,使得DMA可以在不同的从设备之间传输数据。

DMA的作用是在没有Cortex-M3核心的干预下,在后台完成数据传输。在传输数据的过程中,主处理器可以执行其它任务,只有在整个数据块传输结束后,需要处理这些数据时才会中断主处理器的操作。它可以在对系统性能产生较小影响的情况下,实现大量数据的传输。

DMA主要用来为不同的外设模块实现集中的数据缓冲存储区(通常在系统的SRAM中)。与分布式的解决方法(每个外设需要实现自己的数据存储)相比,这种解决方法无论在芯片使用面积还是功耗方面都要更胜一筹。

STM32F10XXX的DMA控制器充分利用了Cortex-M3哈佛架构和多层总线系统的优势,达到非常低的DMA数据传输延时和CPU响应中断延迟。

2.1 DMA的主要特性

DMA具有以下的特性:
● 7个DMA通道(通道1至7)支持单向的从源端到目标端的数据传输
● 硬件DMA通道优先级和可编程的软件DMA通道优先级
● 支持存储器到存储器、存储器到外设、外设到存储器、外设到外设的数据传输(存储器可以是SRAM或者闪存)
● 能够对硬件/软件传输进行控制
● 传输时自动增加存储器和外设指针
● 可编程传输数据字长度
● 自动的总线错误管理
● 循环模式/非循环模式
● 可传输高达65536个数据字

DMA旨在为所有外设提供相对较大的数据缓冲区,这些缓冲区一般位于系统的SRAM中。

每一个通道在特定的时间里分配给唯一的外设,连接到同一个DMA通道的外设(表1中的通道1到通道7)不能够同时使用DMA功能。

支持DMA的外设如表1所示,DMA服务的外设和总线系统结构也在图1中所示。

表1 DMA服务的外设和DMA通道分配

1.png

.........

想了解更多,请下载原文阅读

回复

使用道具 举报

该用户从未签到

6

主题

1029

帖子

133

蝴蝶豆

金牌会员

最后登录
2021-4-24
发表于 2019-4-24 23:38:28 | 显示全部楼层
收藏
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-14 09:07 , Processed in 0.186805 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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