对MCU的介绍
MCU(Microcontroller Unit,微控制单元)内部确实包含多种组件,主要包括以下几个部分:
-
处理器(Processor):这是 MCU 的核心部分,负责执行指令和处理数据。通常是一个 CPU(中央处理单元)。
-
存储器(Memory):
- 程序存储器(Flash Memory 或 ROM):用于存储 MCU 程序代码。这部分存储器在断电时也能保存数据。
- 数据存储器(RAM):用于存储在程序运行过程中需要的数据。RAM 是易失性的,在断电时数据会丢失。
- EEPROM(如果有):一些 MCU 还包含 EEPROM,用于存储需要在断电时保持的数据,如配置参数等。
-
外围设备(Peripherals):
- 定时器/计数器(Timers/Counters):用于计时、产生周期性事件等。
- 串行接口(Serial Interfaces):如 UART、SPI、I2C 等,用于与其他设备通信。
- ADC/DAC(模数转换器/数模转换器):用于模拟信号和数字信号之间的转换。
- GPIO(通用输入输出口):用于与外部设备进行数字信号的输入输出。
- PWM(脉宽调制):用于控制电机、LED 调光等应用。
-
控制器(Controller):MCU 内部的控制器可以理解为负责管理和协调各个部分的工作,确保系统正常运行。
MCU 集成了上述所有功能,使其成为一个功能强大且高度集成的微型计算机,广泛应用于各种嵌入式系统中,如家用电器、汽车电子、工业控制、智能设备等。
DMA介绍
- DMA(Direct Memory Access)直接存储器存取
- DMA 可以提供外设和存储器或者存储器和存储器之间的高速数据输出,无须CPU干预,节省了CPU的资源。
- 12个独立可配置的通道 : DMA1(7个通道),DMA2(5个通道)
- 每个通道都支持软件触发和特定的硬件触发
通道的意思是 从一个地方转移到另一个地方就需要一个通道
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 的结合最为常见。