《STM32ADC与DMA的关系》由会员分享,可在线阅读,更多相关《STM32ADC与DMA的关系(13页珍藏版)》请在金锄头文库上搜索。
1、STM32 ADCSTM32 ADC与与DMADMA宋维STM32 ADC的特点12位精度,最快1uS的转换速度,具备2个以上独立的ADC控制器。这意味着,STM32可以同时对多个模拟量进行快速采集,这个特性不是一般的MCU具有的。STM32 AD转换器输入通道连接一个模拟信号,在一定的时序和时间控制下,将模拟量转变成数字量。微处理器可以通过读取AD转换器的数据寄存器获得该数字量。 组注入组规则组 AD转换模式 单次转换:一个通道,一次转换。连续转换:一个通道,不停地转换。单次的组转换:对于一个通道组(注入组单次的组转换:对于一个通道组(注入组或规则组),逐个转换。或规则组),逐个转换。连续的
2、组转换:一个组转换完成后,又从连续的组转换:一个组转换完成后,又从头开始。头开始。AD寄存器 状态寄存器:是否转换中、完成标志位、电压看门狗标志位。控制寄存器:开启看门狗、不连续模式、扫描模开启看门狗、不连续模式、扫描模式、中断允许、温度和电压检测允许、软件触发式、中断允许、温度和电压检测允许、软件触发转换、选择外部触发、数据对齐方式、是否转换、选择外部触发、数据对齐方式、是否DMA、复位校准、是否连续转换、软开关复位校准、是否连续转换、软开关ADC。采样时间寄存器:设定采样时间。采样时间寄存器:设定采样时间。看门狗阈值寄存器:看门狗阈值寄存器:规则通道组序列寄存器:共有规则通道组序列寄存器:
3、共有3个个 注入通道组序列寄存器:共有1个,最多4通道。数据寄存器寄存器举例ADC1-CR1 = 0x00000100; ADC是个复杂的问题,涉及硬件设计,电源质量,参考电压,信号预处理等等问题。我们只就如何在MCU内完成一次ADC作讨论。DMAMCU内部分为 主处理器 和 外设两个部分。主处理器是执行我们指令的主要部分,外设则是 串口 I2C ADC 等等用来实现特定功能的设备。主处理器在干什么?逻辑判断?计算算法?搬运!如:把USART的数据接收下来,存起来;把ADC的数据接收下来,存起来;把要发送的数据,存起来,一个个的往USART里放。CPU花时间搬运不划算,怎么办?让外设和内存间建
4、立一个通道,在主处理器允许下,让外设和内存直接 读写,这样就释放了主处理器。这就产生了DMA。MCU是公司,老板是主处理器,员工是外设,仓库就是内存。增加一个仓管。STM32的优点之一 有一个与CPU并行运行的模块:DMA。,其全称是:Direct Memory Access。DMA是STM32中一个独立与Cortex-M3内核的模块,有点类似与ADC、PWM、TIMER等模块;主要功能是通信“桥梁”的作用,可以将所有外设映射的寄存器“连接”起来,这样就可以高速问各寄存器,其传输不受CPU的支配。传输是双向的。DMA在AD转换中的作用ADC采集到的数据是不能直接用的。一次,总有离谱的时候;所以要多采几次。即,也可以说,单次ADC无意义。所以要多采几次,于是数据传输量大。所以dma就有用途了。