G32A14xx 系列自带双 ADC 硬件触发架构,非常适合工业采集、电池监测、多路模拟量采样等多通道、周期性、低 CPU 占用的采集场景。AN1122 官方应用笔记给出了一套LPITMR + TMC + PDU + ADC的标准连续采样方案,不用 CPU 频繁干预,就能实现稳定的多通道自动周期采样。本文用最落地的工程步骤,把整套机制讲清楚,直接复制就能用。
资料获取:AN1122_G32A14xx配置ADC连续采样应用笔记
1. 方案整体架构(看懂就不会配错)
AN1122 的核心是硬件全自动采样链路,完全不占 CPU:
- LPITMR:低功耗定时器,产生固定周期触发信号(例:3 秒一次)
- TMC:多路触发矩阵,把定时器信号路由给 PDU
- PDU:延时与预触发单元,依次触发 ADC 各通道
- ADC0/ADC1:双 ADC 同步多通道采样
- 中断 / DMA:采集完成后通知 CPU 读取结果
2. 核心模块作用(官方定义)
- LPITMR:低功耗周期定时器,提供定时触发信号
- TMC:触发路由矩阵,任意触发源→任意目标
- PDU:可编程延时单元,专门用于 ADC 序列触发
- ADC:双 12 位 ADC,每路最多 16 通道,支持硬件连续采样
3. 硬件说明(无需额外电路)
- 芯片:G32A1465(Cortex‑M4,112MHz)
- ADC 通道:ADC0、ADC1 共 16 路通道
- 调试 / 供电:USB 或 12V 供电
- 串口输出:LPUART(PMD14_TX/PMD13_RX),用于打印采样结果
4. 5 步配置流程(官方标准步骤)
4.1 配置 LPITMR 周期触发
设置定时周期,例如 3 秒触发一次采样:
g_lpitmrChannelConfig.timerMode = LPITMR_PERIODIC_COUNTER;
g_lpitmrChannelConfig.periodUnits = LPIT_PERIOD_UNITS_MICROSECONDS;
g_lpitmrChannelConfig.period = 3000000U; // 3秒
g_lpitmrChannelConfig.interruptEn = true;
4.2 配置 TMC 触发路由
将 LPITMR 触发信号 → PDU:
TMC_INOUT_MAPPING_CONFIG_T[2] = {
{TMC_TRIGGER_LPITMR_CH1, TMC_TARGET_PDU0_TRG_IN, false}
};
4.3 配置 PDU 序列触发(关键)
PDU 负责把一个触发信号,拆成多通道依次采样的预触发:
- 使能预触发
- 第一个通道不使能背靠背
- 其余通道使能背靠背,实现连续切换采样
PDU_ConfigAdcPreTrigger(PDU0_INSTANCE, 0, &pdu0AdcTriggerCfg0);
PDU_ConfigAdcPreTrigger(PDU0_INSTANCE, 0, &pdu0AdcTriggerCfg1);
... 一共配置8个通道
4.4 配置 ADC 硬件触发模式
ADC 设置为硬件触发,不使用软件启动:
adcConvCfg0.resolution = ADC_RESOLUTION_RATIO_12BIT;
adcConvCfg0.trigger = ADC_HARDWARE_TRIGGER;
adcConvCfg0.clockDivision = ADC_CLK_DIVISION_2;
ADC_ConfigConverter(ADC0_INSTANCE, &adcConvCfg0);
ADC_ConfigConverter(ADC1_INSTANCE, &adcConvCfg0);
4.5 配置 ADC 多通道
依次配置 ADC0 的 8 个通道 + ADC1 的 8 个通道:
ADC_ConfigChan(ADC0_INSTANCE, 0, &adcChanCfg0);
ADC_ConfigChan(ADC0_INSTANCE, 1, &adcChanCfg1);
...
ADC_ConfigChan(ADC1_INSTANCE, 0, &adcChanCfg16);
...
5. 采样结果计算(官方公式)
adc0Value = ((float)adc0value[i] / g_adcMaxValue) * g_adcDifference;
结果直接输出电压值,通过串口打印。
6. 典型运行效果
串口输出示例:
timer has reached!
adc0value[0]=0.429419;
adc0value[1]=0.431223;
...
adc1value[7]=0.977270;
7. 本方案的优势
- CPU 几乎不参与:定时→触发→采样全硬件自动完成
- 多通道无遗漏:PDU 背靠背模式保证通道顺序采样
- 低功耗:LPITMR 在低功耗域也能工作
- 高精度:硬件触发无抖动,适合工业采集
- 双 ADC 同步:最多 16 通道同时采集
AN1122 给出的 LPITMR+TMC+PDU+ADC 是 G32A14xx 最标准、最稳定的多通道连续周期采样方案,适合工业数据采集、BMS、传感器阵列等大批量模拟量采集项目。完全硬件触发、配置一次终身运行、CPU 占用极低,是量产项目的优选架构。
阅读全文
396