软件如何测量STC8G系列共电电压
STC8G1K系列,供电电压通过VCC输入, 软件如何测量当前的VCC 值?查看数据手册, 没有发现有VCC的ADC 通道. 这里咨询一下。
STC8系列都通用的方法:测量15通道的ADC值即可计算出VCC,10位ADC为:VCC = 1.19*1024/ADC15,12位ADC为: VCC = 1.19*4096/ADC15。 {:handshake:} 本帖最后由 zhuqingtao 于 2023-11-30 18:03 编辑
但还是有个疑问, 查看数据手册, 在计算 GPIO 的输入电压 Vin 的时候,要读1.19的 ADC (通道15) 和 Vin的 ADC (例如通道14),
VIN = ADC_Vin * 119 / ADC_15, 要取得两个ADC的值,
但计算 供电电压VCC 时, 为什么 只读取 通道15 的ADC?VCC 管脚输入的ADC 不需要了吗? zhuqingtao 发表于 2023-11-30 17:50
但还是有个疑问, 查看数据手册, 在计算 GPIO 的输入电压 Vin 的时候,要读1.19的 ADC (通道15) 和 Vin ...
ADC的参考电压是VCC,即ADC读到的值是某一通道电压与VCC的比值。
当我们考虑单独一个通道时,
ADC(x) = res * V(x) / VCC (式1)
或
V(x) = ADC(x) * VCC / res
其中res为分辨率,10位ADC时 res = 2^10 = 1024 ,12位ADC则是 res = 2^12 = 4096 。
但此时我们并不知道VCC准确的值,因此无法计算通道电压V(x)。
不难想到,如果我们有一个稳定且确定的电压值(即通道15),那么有
ADC(15) = res * V(15) / VCC (式2)
其中 V(15) = 1.19 V 已知。
将(式1)与(式2)相除,则有
ADC(x) / ADC(15) = V(x) / V(15)
即
V(x) = ADC(x) * V(15) / ADC(15)
也就是你写出的式子
但此时我们需要的是VCC,上述方式是将VCC消去的方法
注意到(式2)中除了VCC外均为已知量,则可以变形求得VCC
VCC = res * V(15) / ADC(15)
{:handshake:}
页:
[1]