问题背景
前段时间接手了一个新的项目,用来调试的PCB板子是上一批人画的旧版。
项目中间有使用到ADC读取外部电压的部分,当我调试到这一部分的时候发现,无论如何读到的数据都没有变化,并且ADC相关部分的代码检查了多遍也确定是没有错误的。。。
正文
查阅芯片的官方数据手册后,发现有这样一句话:
再看看我所调试的PCB板子的原理图:
很明显这里的 VREF+ 和 VREF- 没有连接,正确的原理图:
解释
MCU电路中,进行A/D或D/A变换时,需要有一个基准参考电压,
这个基准参考电压就是上面提到的VREF+ 和 VREF-,
简单点理解就好像我们说珠穆朗玛峰海拔多少米时,这个海拔实际上就是相对于海平面来说,高于海平面多少米,
而海平面就是一个基准,一个参考值,也就相当于VREF+ 和 VREF-,否则的话就无法确定高低了 。
如果芯片的封装有这两个引脚的话,而你又需要使用A/D或D/A转换功能,那么一定要记得把这两个引脚如上图对应的连接上。
一些名词解析
VCC | 电路的供电正电压 | VDDD | 芯片的工作数字正电压 |
---|---|---|---|
GND | 电路的供电负电压 | VSSD | 芯片的工作数字负电压 |
VDD | 芯片的工作正电压 | VREF+ | 基准参考正电压 |
VSS | 芯片的工作负电压 | VREF- | 基准参考负电压 |
VDDA | 芯片的工作模拟正电压 | VBAT | 电池或其他供电电源 |
VSSA | 芯片的工作模拟负电压 | VEE | 负电压供电 |