欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

程序员文章站 2021-12-09 08:20:56
简要之所以要单独测试一下STC8的ADC,主要有两个问题。STC8手册里的ADC输入阻抗极低,需要实测是否影响正常使用。ADC的测量电压范围受Vref影响,0

简要

之所以要单独测试一下STC8的ADC,主要有两个问题。

  1. STC8手册里的ADC输入阻抗极低,需要实测是否影响正常使用。
  2. ADC的测量电压范围受Vref影响,0<Vin<Vref。

STC8手册中的ADC输入阻抗:

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

可以看到 ,输入阻抗仅有几百欧,低到变态。
如果真的只有几百欧,拿运放检波后的输出为例:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项
信号经过检波,接入STC8的ADC以后,检波的RC滤波中的R,由原来的R3=51k,变为R3与ADC的等效输入电阻并联,即51k*500/(51k+500) ≈ 500
这会直接导致剑波后的信号纹波增大,影响电磁信号的采集。
所以我会倾向于在检波之后加入一级电压跟随器,让输出阻抗减小,避免上述问题:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项
关于这个输入阻抗的问题,有问过卓大大:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项下面就实测一下STC8的ADC。

STC8 单片机ADC测试

测试平台:

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项
测试代码:
这里不贴了,stc-isp里有例程

输入阻抗测试

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

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

ADC精度测试

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

ADC测量值有大概100mV的跳动幅度。

分析

这块板子的Vref接的是2.5V的稳压管输出端(TL431),怀疑是Vref的电压不稳定,测了一下Vref:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

波动很厉害,峰峰值240mV,基本可以确定问题了。
在Vref端增加了一颗10uF电容,平稳了很多
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

改进后再测试ADC:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

ADC数值平稳很多,波动幅值大概在10mV(要求高的话,还需对Vref的输入端进行滤波)

ADC的测量范围受Vref限制

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

NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

测试

将Vref接2.5V:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

可以看到输入电压是3.3V,但测量的电压最大只能到2.5V.

将Vref接5V:
NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项

可以正常测量5V以内的电压。

本文地址:https://blog.csdn.net/weixin_44578655/article/details/107287419