你好,
在我们的设计中,使用了4.2v的锂电池。
由于14580只支持adc的1.2v或3.6v Vref,
我们为两个参考电压设计了几个外部分压器,以找出一个可接受的解决方案(更小的泄漏电流+稳定的采样值),
我们的测试请查看附件,
采样代码如下:
adc_init (GP_ADC_SE GP_ADC_SIGN,经办人);// attn == 0 in case of attn1x & attn == GP_ADC_ATTN3x in case of attn3x
adc_usDelay (20);
adc_enable_channel(渠道);// channel == ADC_CHANNEL_P01/P02 and the gpio has been configured in peripher_init as PID_ADC. //
ADC_SAMPLE = ADC_GET_SAMPLE();
adc_usDelay (1);
adc_init (GP_ADC_SE 0经办人);
adc_enable_channel(渠道);
adc_sample2 = adc_get_sample ();
在浏览了很多关于ADC采样的帖子后,
采样模式您推荐的是删除内部衰减(ATTN3X)以进行无限阻抗(W / ATTN1X)。
但是,从我们的测试结果来看,attn1x的抽样结果比attn3x的结果更不稳定。
例如:
一种。
外部分压器配置2.7M+1M+attn1x设置,电压4.2的采样值范围从934到953 (adc_sample1)。
偏差将达到82mv=((953-934) * 1200/1024)*(2700+1000)/1000,这对于电池的放电估计是不可接受的。
b。
使用680k + 2.7m + attn3x设置的外部分频器的配置,4.2V的采样值从689到699分开(ADC_Sample1)
偏差等于((699-689)*3600/1024)*(2700+680)/2700=44mv,小于上述解。
因此,我们的问题是
1) attn3x的解决方案有什么缺点?从测试结果来看,我们似乎无法从无穷大的阻抗中得到稳定的采样值,为什么?
2)如果在attn3x模式下内部阻抗只有300K欧姆,
使用一对较大的电阻(如3M)比一对较小的电阻(xxx K)的设置是否合理,以减少泄漏(约20ua+)?
正如有些人告诉我外部分隔线的电阻不超过内部阻抗的1/10。
嗨,霍勒斯,
1)通常当使用电压分压器来降低你测量的接近ADC参考的信号时,这意味着会有一个误差从分压器引入,通过使用衰减器和外部分压器应该结果不是一个更大的错误,而是一个完全未定义的电压部门因为你也涉及到内部的内部电阻分压器parrallel外部的电阻分压器(这就是为什么建议不要使用衰减器以及一个由于外接分压器阻抗较大,使您没有电阻限制)。因此,衰减器部分的计算是错误的,因为在这些计算中,你只考虑形成分压器的外部电阻,而不是内部衰减器的电阻,这就是为什么你不应该使用外部分压器的衰减器,显然,衰减器配置的误差大于正常配置。
2)关于使用更小或更大的电阻器,通常使用较大的电阻器会在测量中引入更大的误差,但会限制泄漏,较小的电阻器将提供更精确的测量,但会增加泄漏电流。有关的阻力和1/10的内部阻抗有一些原因,因为如果例如内部阻抗是300 k,您使用一个大电阻并联(3000 k)这意味着几乎会影响上的电阻分压器(你会得到一个电阻器值272 k的分频器),因此一个不同的分割因素,但如果你使用的值1/10的内部阻抗让我们说30K,这意味着总电阻将接近27K(非常接近你放置的电阻值)。
谢谢mt_dialog.
嗨太,
好的,谢谢你的详细解释,我学到了很多。
现在我的剩余问题是如何减少泄漏漏电的ADC采样的偏差范围,
和好奇为什么这对(750K:249K)具有类似的采样值的偏差作为更大的对(2700K:1000K)?
我的代码中有什么不妥,或者任何建议,以最小化软件方面的偏差?
你好,
我们通过更换E96电阻器和缩短连接电阻器的调试线,解决了adc采样值浮动的问题。
所以请把它关心解决,谢谢!