STM32 ADC控制器
一、ADC介绍
ADC,其全称是Analog-to-Digital Converter,即模/数转换器,是一种将模拟信号转换为数 字信号的电子原件。
ADC将模拟信号转换为数字量,一般都需要经过三个步骤:采样、量化和编码。
二、ADC的分辨率和参考电压
1.分辨率:量化间隔越小,把规定范围的电压分成的份数就越多,这就代表它的分辨率越高,分辨率也就是系统能够测量的最小电压。常见的ADC分辨率一般有8位、10位、12位等等。
2.参考电压:要想得到量化的间隔,就需要两个参数,一个就是分辨率,确定划分的份数,另一个就是一个基准电压,STM32的ADC控制器,其参考电压一般是3.3V。

三、输入通道
ADC 通道指的是将模拟信号输入到ADC 控制器的单个输入路径或者是信号通道,通常,一个ADC控制器可以具有多个输入通道,每 个通道都可以连接到一个模拟信号源。
- 外部通道:每个ADC控制器都有16个,来自外 部的GPIO端口。
- 内部通道:只有ADC1控制器具有,有3个内部 通道,通道16连接的是芯片内部的温度传感器; 通道17连接的是芯片内部的参考电压;通道18 连接的是电池或者是其它电源采集VBAT通道。
通过ADC通道进行输入的模拟电压的范围, VREF- ≤ VIN ≤ VREF

四、转换序列
当多个ADC 通道,以任意顺序进行转换时,就有了转换序列的概念。既然是序列,那么就有长度和顺序。长度:指的就是我们 需要转换的通道个数;顺序:指的就是想以什么样的顺序转换需要转换的通道。转换序列有两种:规则序列和注入序列。
1.规则序列
规则转换序列可设置的长度最大为16,从规则序列1(SQ1),到规则序列16(SQ16),长度最大为16,所以,规则序列中最多可以 放入16个通道进行转换。规则序列的转换顺序为,从规则序列1(SQ1)开始,依次进行转换,转换的个数就是我们设置的长度。
2.注入序列
注入序列的长度最大为4,从注入序列1(JSQ1),到注入序列4(JSQ4),长度最大为4,所以,注入序列中最多可以放入4个通道进行 转换。注入序列的转换顺序与设置的注入序列长度有关。

五、扫描模式和非扫描模式
ADC 扫描模式是一种连续对多个输入通道进行转换的模式,这种模式下,ADC 会按照预先定义的顺序对多个输入通道轮流进行转换。
- 如果设置的序列长度大于1时,则为多通道转换,就需要使用扫描模式。
- 如果序列的长度为1时,则是单通道转换,单通道转换则不需要开启扫描模式。
注意:如果关闭了扫描模式,即使序列设置的长度大于1,ADC 仍然按照单通道进行转换。
六、单次转换模式和连续转换模式
连续转换模式,指的是ADC 按照序列设置的长度,完成一次序列的转换后,回到序列头开始新一轮的转换。
注意:触发注入无法进行连续转换,注入序列想要连续转换的唯一例外情况是使用自动注入,将注入序列 配置为在规则序列之后,自动转换。
ADC 的单次转换模式,是指ADC 按照序列设置的长度,完成一次序列的转换后,ADC 停止。
七、数据对齐
数据对齐,其实就是ADC 转换完成的结果,在数据寄存器中的存储方式,对齐方式有两种:左对齐和右对齐。数据寄存器的有效位是16 位, 但是,ADC 转换出来的数字量实际占用的位数与分辨率有关,比如12 位ADC,只需要使用12位0和1的组合进行表示,12 位的数据,存储到 16 位的数据寄存器中,也就规定了两种存储方式。

更多推荐

所有评论(0)