【GD32E503评测】mig29_Step2 实测 DAC 和 ADC 的物理特性
[复制链接]
本帖最后由 mig29 于 2021-1-29 20:13 编辑
因为公司有7位半的表,一直想实测 MCU内部的ADC和DAC的物理特性(精度、线性)。
这块GD32E503板子上贴心地安排了一个 JP4 跳线,只要接通,就可以把DAC输出当ADC输入了,非常方便。
不过实操下来,发现光有表还不行,还得有个程控的高分辨率电压发生器,以及能用程序读出7位半的读数才能自动化测试,这次就先粗略人工测一下。
方法:
把附件里的 main.c 覆盖 07_ADC_Temperature_Vrefint 这个工程里的 main.c,
把 JP4 接通( JP4 on = DAC0 <---> ADC_In2 ),
另外, VR1 <---> ADC_In1 (from 0mV ),可以直接测量。在PC上用串口工具可以获得测量读数。
软件修改点:
1. 以 07_ADC_Temperature_Vrefint 为base,将原测温度修改为测 ADC_In1(VR1), 原测 Vref的改为测 ADC_In2(DAC0 输出)
2. DAC部分,从 11_DAC_Output_Voltage_Value 这里移植,主要是将不自然的“左对齐”改成“右对齐”。
实测情况:
1. DAC从0-4095输出,再用ADC回读。记录结果见附件里的两个文本文件。
结论:
(1) DAC‘零飘’有大约 7mV (也就是 DAC输出0-12时,实际输出电压都是 7mV 左右),
(2)DAC 输出满刻度这端,没有测。
(3) ADC 的‘死区’电压大约有 2.3mV.
2. 粗略看,这些12位无脑当成10位用,精度和线性都是足够准的。
3. 要想做高精度实测,需要重新打板。因为发现 MCU 四周的 Vcc/Gnd 电压有 2mV 左右的差异,而ADC测量的参考地用的是 DAC这里的,继续测试没有意义。
4. DAC的“零飘”和ADC的“死区”都是客观存在的,在高精度场景时如何在量产时消除其影响,需要大家群策群力思考。
【GD32E503评测】mig29_Step2 实测 DAC 和 ADC 的物理特性.rar
(151.04 KB, 下载次数: 6)
|