电机控制另一个关键的模块就是ADC采样,这个模块配置的好坏决定了采样电流和电压的精准度,因此有必要对其进行深入学习。
简介:
STM32 在片上集成的ADC 外设非常强大。STM32F103xC、STM32F103xD 和STM32F103xE增强型产品内嵌3个12位的ADC,每个ADC 共用多达 21 个外部通道,可以实现单次或多次扫描转换。如 STM32F103VET6,属于增强型的CPU,它有18个通道可测量 16 个外部和2个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行ADC 的结果可以左对齐或右对齐方式存储在 16 位数据存器中,模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低闹值。
STM32的ADC模块的几个特点:
- 12位分辨率,指AD转换器对输入信号最小变化的灵敏度,表示数字输出最低位对应的模拟信号。计算公式:信号量程/((2^n)-1)。STM32微控制器为12位分辨率。
- 转换时间可编程。采样一次至少要用 14 个ADC 时钟周期,而ADC 的时钟频率最高为14 MHz,它的采样时间最短为 1us。
- 输入电压范围为 0~VREF+,其中VREF+一般为3.3V
- 收到触发信号才开始转换。
- 读取可通过两种方式:CPU和DMA读取。将其读到内存中存储。
- 数据格式分为左对齐和右对齐。STM32的ADC为12位ADC,转换后的结果为12位的数据,而数据寄存器为16位,所以转换后的数据在数据寄存器中右两种对其方式,左对齐和右对齐,进行数据转换的时候需要注意。
在了解了一些基础的STM32的ADC知识后,熟悉一下CubeMx中ADC的配置界面,如下图所示,第一步:选择通道。选择PC1作为采样接口,选择ADC采样模块1,并且选择通道11。
第二步:配置ADC参数,时钟分频、工作模式、数据对齐方式、触发源、输出模式等
如下链接时ADC参数的中文注释:中文注解:STM32CubeMX ADC参数配置页-物联沃-IOTWORD物联网
(1)选择工作模式,由于本实验是同一个引脚是只有一个ADC在采样信号,因此选择独立模式,当一个引脚有多个ADC采样信号的时候,再配置其他模式。
(2)选择时钟分频,选择时钟分频为PCLK2的2分频,这里可以选择他的4/8分频。
(3)数据对齐方式为右对齐。
(4)扫描转换模式,就一个通道不需要打开,当有多个通道需要采集信号时必须开启扫描模式,此时ADC将会按设定的顺序轮流采集各通道信号
(5)连续转换模式,转换完一次之后等待下一次触发之后再次开始转换,因此不使能。
(6)选择通道数目,此时选择为1。
(7)选择触发源,配置为定时器TIM3的比较事件。