简要

  之所以要单独测试一下STC8的ADC,主要有两个问题。  
  1. STC8手册里的ADC输入阻抗极低,需要实测是否影响正常使用。
  2. ADC的测量电压范围受Vref影响,0<Vin<Vref。
  STC8手册中的ADC输入阻抗:   在这里插入图片描述   可以看到 ,输入阻抗仅有几百欧,低到变态。 如果真的只有几百欧,拿运放检波后的输出为例:   在这里插入图片描述   信号经过检波,接入STC8的ADC以后,检波的RC滤波中的R,由原来的R3=51k,变为R3与ADC的等效输入电阻并联,即51k*500/(51k+500) ≈ 500 这会直接导致剑波后的信号纹波增大,影响电磁信号的采集。 所以我会倾向于在检波之后加入一级电压跟随器,让输出阻抗减小,避免上述问题:   在这里插入图片描述   关于这个输入阻抗的问题,有问过卓大大:   在这里插入图片描述下面就实测一下STC8的ADC。  

STC8 单片机ADC测试

  测试平台:   在这里插入图片描述   测试代码: 这里不贴了,stc-isp里有例程  

输入阻抗测试

  在这里插入图片描述   电源输出几乎为0A,说明输入阻抗并没有手册里写的那么不堪,是可以正常使用的。  

ADC精度测试

  在这里插入图片描述   在这里插入图片描述   ADC测量值有大概100mV的跳动幅度。  

分析

  这块板子的Vref接的是2.5V的稳压管输出端(TL431),怀疑是Vref的电压不稳定,测了一下Vref:   在这里插入图片描述   波动很厉害,峰峰值240mV,基本可以确定问题了。 在Vref端增加了一颗10uF电容,平稳了很多   在这里插入图片描述   改进后再测试ADC:   在这里插入图片描述   ADC数值平稳很多,波动幅值大概在10mV(要求高的话,还需对Vref的输入端进行滤波)  

ADC的测量范围受Vref限制

  硬件设计的时候一定要注意这一点,如果Vref直接接VCC,没什么问题,但如果使用稳压管/稳压芯片输出的电压接Vref,需要注意ADC的输入电压范围。   例如我使用TL431产生2.5V的电压接入Vref引脚,那么ADC采集的电压最大就只能到2.5V。 由于STC官方手册里给出的参考接线方案就是2.5V接Vref,并且没说明ADC输入电压跟Vref的关系,所以很容易忽略这一点。   在这里插入图片描述  

测试

  将Vref接2.5V:   在这里插入图片描述   可以看到输入电压是3.3V,但测量的电压最大只能到2.5V.   将Vref接5V:   在这里插入图片描述   可以正常测量5V以内的电压。