CH573ADC不同于传统32的使用配置

CH573的ADC

CH573是基于RISC-V的搭载BLE的MCU。搭载12位ADC,支持差分输入和单端输入,拥有10路外部输入通道和2路内部信号,支持DMA。并且支持触摸按键检测模块。可以选择PGA进行增益调节。ADC 输入电压范围 0V~VIO33。

CH573ADC模块的框图:

关于增益(PGA)

CH57x,ch58x 系列的芯片内部的ADC的实现方式是逐次比较型的(SAADC),其半量程参考电压是1.05v.默认的电压测量范围是0-2.1v
芯片ADC的前级提供了一个PGA,可以通过调整其放大倍数,来实现不同的量程。

PGA 增益选择与输入电压范围表:

PGA增益 采样值到电压换算 理论可测电压上限 理论可测电压范围(Vref=1.05V) 建议实际测量电压范围
-12dB(1/4 倍) (ADC/512-3)*Vref 5*Vref -0.2V ~ VIO33+0.2V 2.9V ~ VIO33
-6dB(1/2 倍) (ADC/1024-1)*Vref 3*Vref -0.2V ~ 3.15V 1.9V ~ 3V
0db(1倍) (ADC/2048)*Vref 2*Vref 0V ~ 2.1V 0V ~ 2V
6db(2倍) (ADC/4096+0.5)*Vref 1.5*Vref 0.525V ~ 1.575V 0.6V ~ 1.5V

Vref是内部模拟电路的电源节点 VINTA 的实际电压值,通常为 1.05V ± 0.015V。

根据手册要求,VINTA引脚需要接大于0.1uF的电容到地(启用DC-DC时1uF或2.2uF)。

关于大幅测量范围的PGA选用:理论可测是设计可测的范围参数;实际建议使用是根据实测结果,对测试范围进行进一步细化,误差最小的建议测量范围。如果进行0-3.3V全幅的测量,有3种方法:1、如果对测量误差不是特别建议(实际20mv以内),可以直接使用-12db测量0-3.3V;2、如果对精度有要求,建议先用-12db测量一下,然后根据实际电压选择对于的增益细测,这样牺牲一点时间,测量更准;3、还有就是最常规的方法,直接分压到可测量的范围,比如测量0~3.3V,如果使用分压电阻分到0-1.65V;开启PGA对输入信号进行缩放,实际会引入测量误差,建议使用的测量范围就是为了减少测量误差。

如果使用两个通道采样不同的电压,需要用到的增益不同的话,每次采样之前需要重新配置,因为ADC转换器只有一个。

一个例子:

比如我要测量一个7.4V电池的电压,一般电池满电的时候电压最高会达到7.8V左右,最低6V左右。

我选用电阻分压使得电池电压降低1/3,进行测量。

可以得到AIN的电压范围在2-2.6V。显然我们选择-6dB的GPA是最好的。测得ADC的值后,进行计算:(ADC/1024-1) * 1.05 * 3,即可得到真实的电源电压值。实测误差较小。但是当VCC_BAT在5V左右时,计算得到的电压值误差较大。

事实证明,如果对测量精度的要求较高,还是选择对应的GPA和对应的公式进行计算。

粗校准

使用ADC之前可以进行粗校准。粗调实际上就是对GND进行校准,ADC对GND读个值,计算出固定的偏移, 然后手动去offset其他通道的值;

这个偏移通常在几个LSB到几十个LSB 之间,可能是偏大, 或者偏小, 把校准值带入实际的采样值,来修正这个固定偏差。

对于CH573,可以使用6/7/10/11四个通道进行校准,当使用粗调时,内部模拟开关会控制该通道的电平,这几个通道均为内部通道。如果使用了外部通道,那么需要确保外部电路不会对校准产生影响。

如果对精度的要求较高,有一个AIN通道外加了基准源,那么可以不用进行粗校准而使用基准源进行校准。

CH573型号改进了ADC的结构,取消了细校准。需要细校准的CH577/578/579型号的细调,实际上是调节斜率。

输入缓冲器

默认建议开启输入缓冲器,只有当外部信号源内阻小于 1KΩ时,才可以关闭输入缓冲器进行 ADC。 当采用差分输入时,建议关闭输入缓冲器。当用于 TouchKey 检测时,必须开启输入缓冲器,且 建议选择 0dB(优先)或-6dB 两种增益之一。