HC32F460_ADC驱动(三)

3 HC32F460的ADC

HC32F460 系列MCU内部集成ADC1 和ADC2 两个ADC 模块,均是采用逐次逼近方式的模数转换器,最高12位分辨率,最多支持17 个模拟输入通道。其中有16个通道来自于外部引脚,另有1个通道来自于内部基准电压。这些模拟输入通道可以任意组合成一个序列(序列A或序列B),任一序列均可以进行单次扫描,或连续扫描。也支持对任意指定通道进行连续多次扫描,并对转换结果进行平均。

3.1 采样序列

ADC模块有多个通道,可配置位2个序列(A/B)进行转换。两序列配有独立的通道选择寄存器ADC_CHSELRA、ADC_CHSELRB。寄存器的每位均代表1个通道。两个序列可独立选择任意1个或多个通道进行转换。

例如:ADC_CHSELRA 设置为0x0055,ADCHSELRB 设置为0x0002,则序列A 的触发条件发生时,将依次转换CH0,CH2,CH4 和CH6 这4 个通道。序列B 的触发条件发生时,将转换CH1 这一个通道。

对于内部模拟通道,有3个可选模拟量,一般选用的是内部基准电压。内部通道选择寄存器参见CMP_DACR=0; PWC_PWCMR。

  1. ADC1的采样通道有17个,其CH0~CH15分别为ADC1_IN0~ADC1_IN3 ~ ADC12_IN4~ADC12_IN15,CH16为内部模拟通道。
  2. ADC2的采样通道有9个,其CH0~CH7为ADC12_IN4~ADC12_IN11,CH8为内部模拟通道。

3.2 序列扫描模式

每个ADC模块均可配置为序列A或序列B,两者均可设置不同的触发源。两序列共有四种扫描方式:

|-----------------------|-----------|-----------------------------------------------------------------|
| ADC_CR0bit1\~bit0 | MS1:0 | 00:序列A单次扫描 01:序列A连续扫描 10:序列A单次扫描,序列B单次扫描 11:序列A连续扫描,序列B单次扫描 |

此外,ADC 可配置采样平均功能,在完成连续多次扫描转换后自动计算平均值,能有效抑制随机噪声,提升采样稳定性。

实际工程应用中,最常用的触发方式还是利用定时器中断单次软件触发序列扫描,并在下一次定时器中断服务函数中读取上一轮完成的采样数据。该方案配置简洁、系统中断数量少,仅需利用系统定时器即可实现稳定定时采样,兼顾实时性与可靠性,是工业测控与仪表采集系统的主流实现方式。

3.3序列通道选择

序列A和序列B各有独立的通道选择寄存器ADC_CHSELRA,ADC_CHSELRB。寄存器的每一位代表一个通道,如Bit0写1表示转换CH0、写0表示不转换CH0。两个序列可独立选择任意1个或多个通道进行转换。

ADC_CHSELRA0、ADC_CHSELRA1 、ADC_CHSELRB0 、ADC_CHSELRB1

3.4 ADC序列启动

序列启动的寄存器为ADC_STR。ADC_STR.STRT设1即启动AD转换(注意,该触发方式仅能启动序列A),当软件设置/触发事件发生/AD转换中时,该寄存器位为1。反之在软件清零/转换结束后自动清零。

只有在ADC_STR.STRT为0时,才可配置ADC_TRGSR为序列A与序列B选择触发源,可选择的触发源包括外部端口ADTRGx、内部事件IN_TRGx0、IN_TRGx1。

|--------------------|----------------|---------------------|
| ADC_TRGSR【bit15】 | TRGENB | 使能序列B片内或外部引脚触发 |
| ADC_TRGSR【b10~b8】 | TRGSELB2:0 | 序列B触发条件选择,外部端口或内部事件 |
| ADC_TRGSR【bit7】 | TRGENA | 使能序列A片内或外部引脚触发 |
| ADC_TRGSR【b2~b0】 | TRGSELA2:0 | 序列A触发条件选择,外部端口或内部事件 |

3.5 采样与转换时间

在启动采样后,经过延迟时间 ,ADC模块才开始对模拟通道进行采样与转换;

单个通道的转换时间为 ,其中 表示模拟输入的采样时间,可以根据输入阻抗设置寄存器ADC_SSTRx调整采样周期。 表示逐次比较时间,12位精度需要13个ADCLK时钟。

全部转换结束后经过转换结束延迟时间tED (1 PCLK4+3 ADCLK)后进入待机时间。

ADC模块需要两个时钟,模拟电路时钟ADCLK、数字接口时钟PCLK4,两个时钟均来源于时钟控制器中的分频器。ADCLK等效于PCLK2。在本应用中,PCLK2=200M/4=50MHz;PCLK4=200M/2=100MHz。

3.6对ADC的配置与应用说明

  1. 使用12位采样、内部参考源、以及最高2.5MHz的采样率
  2. 采用软件定时器进行定时触发采样,以实现应用所需的采样频率。
  3. 由于采用的软件触发,按芯片的应用要求,仅能选择序列A
相关推荐
亿道电子Emdoor2 小时前
【Altium】DWG文件修改图层颜色问题
嵌入式硬件·硬件工程
单片机仿真设计2 小时前
【proteus仿真】基于 STM32 的久坐提醒与坐姿矫正器设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
jianqiang.xue2 小时前
ESP-IDF保姆级入门11|FreeRTOS队列通信全解:生产者消费者+中断数据转发+多任务解耦,彻底搞定任务间交互
单片机·嵌入式硬件·物联网·架构·esp32
jianqiang.xue2 小时前
ESP-IDF保姆级入门09|ADC模拟量采集全解:电位器调压+光敏传感器+OLED显示,打通模拟→数字全链路
stm32·单片机·物联网·架构·esp32
张海森-1688203 小时前
变量的作用域和生命周期
单片机
深圳市恒锐丰科技杨生4 小时前
EG3014S 80V 半桥栅极驱动芯片|低压半桥外置 MOS/IGBT 驱动方案
嵌入式硬件·硬件工程
Freak嵌入式4 小时前
MicroPython+Pico 接收空闲中断和发送空闲中断全实战
java·开发语言·stm32·单片机·嵌入式硬件
尼喃4 小时前
锂电池3.7V升压5V芯片全场景选型:耳机/音箱/USB输出三档方案
嵌入式硬件
LCG元5 小时前
STM32F103 硬件 I2C 通信全流程调试实录:从寄存器配置到总线死锁恢复
stm32·单片机·嵌入式硬件
LCG元5 小时前
STM32L4 ADC+DMA 多通道采集实战:从 CubeMX 配置到 VREFINT 电压校准
stm32·单片机·嵌入式硬件