MCU内部组件和DMA 的介绍

对MCU的介绍

MCU(Microcontroller Unit,微控制单元)内部确实包含多种组件,主要包括以下几个部分:

  1. 处理器(Processor):这是 MCU 的核心部分,负责执行指令和处理数据。通常是一个 CPU(中央处理单元)。

  2. 存储器(Memory)

    • 程序存储器(Flash Memory 或 ROM):用于存储 MCU 程序代码。这部分存储器在断电时也能保存数据。
    • 数据存储器(RAM):用于存储在程序运行过程中需要的数据。RAM 是易失性的,在断电时数据会丢失。
    • EEPROM(如果有):一些 MCU 还包含 EEPROM,用于存储需要在断电时保持的数据,如配置参数等。
  3. 外围设备(Peripherals)

    • 定时器/计数器(Timers/Counters):用于计时、产生周期性事件等。
    • 串行接口(Serial Interfaces):如 UART、SPI、I2C 等,用于与其他设备通信。
    • ADC/DAC(模数转换器/数模转换器):用于模拟信号和数字信号之间的转换。
    • GPIO(通用输入输出口):用于与外部设备进行数字信号的输入输出。
    • PWM(脉宽调制):用于控制电机、LED 调光等应用。
  4. 控制器(Controller):MCU 内部的控制器可以理解为负责管理和协调各个部分的工作,确保系统正常运行。

MCU 集成了上述所有功能,使其成为一个功能强大且高度集成的微型计算机,广泛应用于各种嵌入式系统中,如家用电器、汽车电子、工业控制、智能设备等。

DMA介绍

  1. DMA(Direct Memory Access)直接存储器存取
  2. DMA 可以提供外设和存储器或者存储器和存储器之间的高速数据输出,无须CPU干预,节省了CPU的资源。
  3. 12个独立可配置的通道 : DMA1(7个通道),DMA2(5个通道)
  4. 每个通道都支持软件触发和特定的硬件触发
    通道的意思是 从一个地方转移到另一个地方就需要一个通道

STM32F103C8T6 DMA资源: DMA1(7个通道)

(1)想把flash里的一批数据,转运到SRAM里去 ---- 软件触发
(2)外设到dma的转运 ----特定的硬件触发。

(3)转运ADC的数据,需要ADC每个通道AD转换完成后,硬件触发一次DMA ,之后DMA在转运

(4)这里特定的硬件触发你要使用某个外设的硬件触发源,就使用它连接的那个通道,不能任意使用通道

存储器映像

计算机系统的5大组成部分是 : 运算器,控制器,存储器,输入和输出设备。

运算器和控制器合在一起叫CPU。
在这里插入图片描述
rom 只读存储器,是一种非易失性,掉电不丢失性存储器
ram 随机存储器,是一种掉电丢失性存储器

DMA框图

在这里插入图片描述
在这里插入图片描述

cpu或者DMA 直接访问Flash,只可以读而不可以写的
然后SRAM是运行内存,可以任意读写,没有问题

DMA基本结构

在这里插入图片描述
由于Flash是只读的,所以DMA不可以进行SRAM到Flash,或者Flash 到Flash转运操作。

介绍数据是否自增: ADC 扫描模式,用DMA进行数据转运,外设地址 ADC_DR 寄存器,如果自增下次就跑到别的寄存器中去了
存储器就需要自增

M2M 是memory to memory的软件触发 主要应用在存储器到存储器转运的情况。以最快的速度,连续不断地触发DMA.软件触发和循环模式,不能同时使用。
因为软件触发就是传输计数器清零,循环模式是清零后自动重装。

硬件触发,一般都是与外设有关的转运。
如ADC 转换完成,串口收到数据,定时时间到等等

DMA 开始转运有几个条件
1.开关控制,DMA_Cmd 必须使能
2.传输计数器必须大于0
3.必须有触发信号 ,触发一次,计数器自减一次。
4.当传输计数器等于0,且没有自动重装时,无论是否触发,DMA都不会再转运了。
5. 此时关闭DMA
6. 在为传输寄存器写入一个大于0的数
7. 在开启DMA
注意,写传输计数器时,必须要先关闭DMA, 不能再DMA开启时,写传输计数器

DMA 请求

在这里插入图片描述
所以每个通道都支持软件触发和特定的硬件触发

数据宽度与对齐

如果源端宽度和目标宽度不一样,应该怎么处理
在这里插入图片描述
顺口溜 : 不够就补0,超了就舍弃高位。

介绍两个例子

数据转运+DMA

在这里插入图片描述
怎么设置参数
是否自增------都自增
方向 ------- 外设站点转运到存储器站点
传输计数器-------自减到0,DMA停止,转运完成

ADC扫描模式+DMA

在这里插入图片描述
如果ADC是连续扫描,那DMA就可以使用自动重装,在ADC启动下一轮的时候,DMA也启动下一轮的转运。

DMA 转运的时机,需要和ADC 单个通道转运完成同步

ADC扫描模式,在每一个单独的通道转换完成后,没有任何标志位,也不会触发中断。
所以,不太好判断,某一个通道转后完成的时机是什么时候。 但是有单个通道DMA请求。

ADC 扫描模式 和 DMA 的结合最为常见。

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值