ADC

概述

ADC 将外部模拟电压转换为数字采样值,可用于电压监测和控制反馈。G32S107 的 ADC 具有 12 位分辨率,支持扫描多个输入通道、重复采样及 CPU / DMA 数据读取。

性能概览

常温、每通道连续 10 次采样时,ADC0 在 2.500 V 和 2.900 V 输入点的平均值绝对误差为 13~15 mV;已测组的峰峰值最高为 10 mV。

ADC 时钟 29.629629 MHz、不插入通道延时时,4 次转换从启动到完成的实测耗时为 2.333~2.500 μs。

采样精度与稳定性

ADC0 的 2.500 V、2.900 V 输入点未达到平均值绝对误差 ≤10 mV 的测试目标;多个输入点也出现超过 5 mV 的峰峰值。

除单独标注的通道子集外,下表为各组 CH0~CH7 的结果范围。平均值绝对误差为 10 次采样均值与输入电压之差的绝对值;峰峰值为同一通道 10 次采样的最大值与最小值之差。结果按 mV 汇总,范围两端为不同通道的最小、最大结果。

模块输入电压(V)平均值绝对误差(mV)峰峰值(mV)
ADC02.50013~141~6
ADC02.90014~153~7
ADC03.24000
ADC1000
ADC10.2928~94~6
ADC10.3002~33~6
ADC10.8026~72~7
ADC11.655
CH0、CH1、CH3~CH7
0~24~6
ADC12.5002~63~6
ADC12.9011~32~6
ADC13.2381~20~3

0 mV 仅表示这 10 次采样在 mV 汇总精度下的结果。已测输入点不能作为整个 0~3.3 V 量程的连续精度保证,最高实测输入为 3.240 V。

输入电压标注差异:ADC0 的 1.655 V / 1.600 V 组、ADC1 的另一 0.802 V / 0.800 V 组平均值精度未确认,峰峰值分别为 2~6 mV、1~10 mV。ADC1 中点组仅 CH2 的输入标为 1.650 V,平均值误差与该输入不符,暂不确认其平均值精度;该通道峰峰值为 2 mV。

转换完成时间

不插入通道延时的 SEQ0 完成 4 次转换需 2.333~2.500 μs。SEQ1 / SEQ2 设置 DLY_CNT=128 后,4 次、8 次转换的实测耗时分别为 19.500~19.666 μs、38.833~39.000 μs。

计时窗口从 ADC 启动到转换完成,包含启动、转换、配置延时及轮询 / 完成检测开销。扫描模式依次采样 CH0~CH3 或 CH0~CH7;重复模式对 CH0 连续转换 4 次或 8 次。

序列模式转换次数DLY_CNTADC0(μs)ADC1(μs)
SEQ0扫描402.3332.500
SEQ0重复402.3332.333
SEQ1扫描412819.66619.666
SEQ1扫描812838.83339.000
SEQ1重复412819.50019.666
SEQ1重复812839.00039.000
SEQ2扫描412819.50019.666
SEQ2扫描812838.83339.000
SEQ2重复412819.66619.666
SEQ2重复812839.00039.000

ADC 与延时时钟均为 29.629629 MHz,DLY_CNT=128 对应每次转换前约 4.32 μs 延时。按每次转换 15 个 ADC 时钟计算的理论时间约为 0.506 μs;该值不包含上述启动与检测开销,不能直接作为端到端实测吞吐。

CPU / DMA 数据读取

程序运行在 PSRAM 时,SEQ1 的 4 次转换及数据读取总耗时为 3.000~3.500 μs;8 次转换及数据读取总耗时为 5.000~5.833 μs。

下表均从序列启动开始计时。CPU 模式在数据寄存器读取并复制完成时结束;DMA 模式在 DMA_FIN 到达时结束,转换和搬运存在重叠。数据为小批量端到端耗时,不代表持续 DMA 吞吐。

SEQ1 模式转换次数ADC0 CPU(μs)ADC0 DMA(μs)ADC1 CPU(μs)ADC1 DMA(μs)
扫描43.1663.1663.5003.166
扫描85.0005.8335.1665.833
重复43.0003.1663.0003.166
重复85.0005.8335.1665.833

测试条件

项目条件
芯片与通道G32S107;ADC0、ADC1;精度测试每组覆盖 CH0~CH7,不能据此认定两模块并发性能。
精度采样配置外部参考电压,量程配置 0~3.3 V;配置目标为 30 MHz ADC 时钟、2 MSPS 采样率;每通道连续采样 10 次,不剔除异常值,仅做算术平均,不额外进行软件滤波或补偿。
精度环境与覆盖已有数据为常温测试,未给出实际室温、实测参考电压或跨芯片统计;−40 °C、60 °C、80 °C 未取得对应精度数据。
速度计时配置APLL 800 MHz,ADC 实际工作时钟 29.629629 MHz;使用 systick 底层 mtime 记录启动至完成耗时。
数据读取配置程序运行于 PSRAM;CPU 800 MHz,PDMA0 所在 AHB 总线 250 MHz;数据读取测试未给出 DLY_CNT,不能与 DLY_CNT=128 的转换测试直接比较。

文档入口:查看 ADC 用户手册 · 查看 ADC SDK 文档。