你好,
在我们设计中,使用4.2V锂电池。
由于14580仅支持ADC的1.2V或3.6V Vref,
我们为两个参考电压设计了多个外部分压器,以弄清楚可接受的解决方案(较少漏电流+稳定采样值),
请查看测试的附件,
和采样代码看起来像:
ADC_INIT(GP_ADC_SE,GP_ADC_SIGN,ATTN);// ATTN == 0,如果ATTN1X&ATTN == GP_ADC_ATTN3X,则为ATTN3X
ADC_USDELAY(20);
ADC_ENABLE_CHANNEL(频道);// Channel == ADC_CHANNEL_P01 / P02以及GPIO已在PID_ADC中配置了PERIPH_INIT。
adc_sample = adc_get_sample();
ADC_USDELAY(1);
ADC_INIT(GP_ADC_SE,0,ATTN);
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,这对于估计电池放电应该是不可接受的。
湾
使用680k + 2.7m + attn3x设置的外部分频器的配置,4.2V的采样值从689到699分开(ADC_Sample1)
偏差等于((699-689)* 3600/1024)*(2700 + 680)/ 2700 = 44mV,其小于上述溶液。
因此,我们的问题是
1)attn3x的解决方案是什么缺点?从测试结果看起来似乎无法从Inifinite阻抗中获得稳定的采样值,为什么?
2)如果内部阻抗在attn3x模式下仅为300k欧姆,
使用与一对较大的电阻(例如3M)使用的设置比一对较小的值(XXX k)少于漏泄漏(大约20ua +)是合理的吗?
正如有些人告诉我外部分隔器的电阻不超过内部阻抗的1/10。
嗨霍勒斯,
1)通常在使用电压分频器时,通过使用衰减器和外部分压器,它意味着从分隔器引入的错误,这意味着将出现在分配器上的误差。应该不会导致更大的错误,而是对一个完全未定义的电压划分,因为您还涉及内部分压器的内部电阻,其自由于外部分频器的电阻(这就是其推荐不使用衰减器以及外部的原因分配器由于较大的阻抗,使您没有阻力限制)。因此,您在上面执行的衰减器部分的计算是错误的,因为在这些计算中,您只考虑形成分频器的外部电阻而不是来自内部衰减器的电阻,这就是为什么不使用外部分频器的衰减器,显然,衰减器配置的错误比正常配置更大。
2)关于使用更小或更大的电阻器,通常使用较大的电阻将在测量中引入更大的误差,但会限制泄漏,更小的电阻器将提供更准确的测量,但会增加漏电流。关于抵抗并且应该是内部阻抗的1/10,它有一些原因,因为例如,如果例如内部阻抗为300k,并且您使用的并联(3000k)使用大电阻器,这意味着将影响几乎电阻器分频器(您将在分频器中最终超过272k的电阻值),因此不同的分割因子,但如果您使用的是内部阻抗的值1/10,请说30k意味着总阻力将靠近27K(非常接近您放置的电阻值)。
谢谢mt_dialog.
嗨MT,
好的,感谢您的详细解释,我从中学到了很多东西。
现在我的剩余问题是如何减少漏电偏差范围的ADC采样范围,
和好奇为什么这对(750K:249K)具有与大对的类似偏差(2700K:1000K)?
我的代码中有什么问题,或者任何建议,以最小化软件方面的偏差?
你好,
通过更换E96电阻并缩短连接到电阻的调试线路,解决了浮动ADC采样值的问题。
所以请把它关心解决,谢谢!