32G,ADC方面的问题
帮客户问:我采用ADC采集引脚上电压,先测试了一下
电路上ADC_ref引脚和VCC引脚连接了,测量时根据STC32G datasheet文档上的21.6.4范例程序编程操作,
ADCTIM = 0x3F;
ADCCFG = 0x2F;
ADC_CONTR = 0x8f;
上电后等待了20ms
结果读取BGV是1184(CHIPID7和CHIPID8),测量出的值是977,然后根据公式计算出VCC是4963,但是我用万用表量的VCC是4.88V,即4880这样,不知道这是为什么?是还差哪里需要矫正吗?
根据这个进行的计算
在解决您提到的AD采集电压不一致的问题时,我们需要从多个角度进行分析和排查。以下是一些可能的原因及相应的解决方案:
1. 参考电压的准确性
问题描述:您提到ADCref引脚和VCC引脚连接在一起,这意味着ADC的参考电压直接来自于VCC。如果VCC本身存在波动或不准确,将直接影响ADC的测量结果。
解决方案:建议使用一个稳定的外部参考电压源(如TL431、REF3030等)来替代VCC作为ADC的参考电压。这样可以提高ADC测量的准确性。
2. ADC配置参数
问题描述:您设置的ADC配置参数(如ADCTIM、ADCCFG、ADCCONTR)可能影响ADC的采样时间和精度。
解决方案:确保ADC的配置参数符合实际应用的需求。例如,ADCTIM = 0x3F表示采样时间为最大值,适用于高阻抗信号源。如果信号源阻抗较低,可以适当减少采样时间以提高采样速率。
3. 电源电压的测量
问题描述:您用万用表测量的VCC值为4880mV,而通过ADC计算得到的VCC值为4963mV,存在约1.7%的误差。
解决方案:这种误差可能来自于万用表本身的精度限制或ADC的线性误差。建议使用更高精度的测量仪器(如6位半数字万用表)来验证VCC的实际值。
4. ADC校准
问题描述:ADC的测量结果可能存在偏移和增益误差,导致测量值与实际值不一致。
解决方案:可以通过以下步骤进行ADC校准:
1. 偏移校准:在ADC输入端接地,读取ADC输出值,记录为偏移值。
2. 增益校准:在ADC输入端接入已知精确的参考电压,读取ADC输出值,记录为增益值。
3. 应用校准公式:使用记录的偏移值和增益值对ADC的测量结果进行校正。
5. 软件计算误差
问题描述:您在软件中使用的计算公式可能存在误差,导致计算结果与实际值不符。
解决方案:确保计算公式正确无误。例如,VCC的计算公式应为:
\[
VCC = \frac{BGV{measured}}{BGV{nominal}} \times V{ref}
\]
其中,\(BGV{measured}\)是测量得到的带隙电压值,\(BGV{nominal}\)是标称带隙电压值,\(V{ref}\)是参考电压值。
6. 硬件设计
问题描述:PCB布局、电源去耦、信号走线等硬件设计因素可能影响ADC的测量精度。
解决方案:检查PCB设计,确保电源去耦电容(如0.1μF和10μF)靠近芯片引脚,减少电源噪声。同时,优化信号走线,避免高频信号对ADC的干扰。
7. 温度影响
问题描述:环境温度的变化可能影响ADC的测量精度,尤其是带隙电压的稳定性。
解决方案:如果应用环境温度变化较大,建议在软件中加入温度补偿算法,以提高ADC的测量精度。
通过以上分析和排查,您应该能够找到导致ADC测量结果不一致的原因,并采取相应的措施进行校正。如果问题仍未解决,建议进一步详细检查硬件设计和软件实现,或联系芯片厂商获取技术支持。
[本文内容由国芯人工智能辅助生成,仅供参考] 建议给出具体的供电环境说明,不同的电源稳定时间也大不同,建议初始化ADC后,给足充分的电源稳定时间,前几次采集的数据丢掉,并且控制电源纹波减小对ADC采集的影响。 BGV:ADC=Vref:4096
内项之积等于外项之积
Vref=BGV*4096/ADC
BGV=1184mV
ADC=977
Vref=1184mV*4096/977
(int)Vref=4963
算法是没有问题的
另一个ADC通道输入1184mV,对比一下和15通道是否一致
页:
[1]