cc2640 battery monitor
TI工程师:
我使用AONBatMonBatteryVoltageGet()函数获得纽扣电池电压,每次测得的值都比用电压表直接测vdds的值低0.2v左右。比如实测vdds管脚2.9v,用这个函数测完并计算得出2.75v左右。电路板是我完全是按照参考设计做的,使用的是cc2640rhbr。另外,我用一个IO口驱动一个G-sensor(功耗为3ma左右),当IO口置高电平开启G-sensor之后,vdds被拉低0.2v左右,请问这个现象是否正常,会不会在当电压低的时候出现无法负载的问题?
我赞同你的分析的。
任何电池都是有内阻的。开路电压肯定要比带负载电压高的。
搭车请教下,CC2640的Battery monitor功能,如何检测锂电池电量?
查看CC2640手册,其ADC参考电压是0~4.3V;似乎可以锂电池(<4.2V)直接接入,以监测其电量;但是文档中有提到最大输入电压不得超过绝对上限(4.1V)。这点比较困惑,到底以那个为准。
实际设计中,为保险起见,将锂电池分压后接入ADC。上下电阻均为100k,此部分电路将维持静态电流4.2V/200k=21uA。这点对于低功耗系统是较大的损耗。考虑从2个思路改进:
1)增大分压电阻,比如采用1M,或10M;
但查看CC2640数据手册5.12节,ADC的input impedence仅给了>1Mohm的范围值。猜测其在Mohm量级,因此分压电阻无法设置在Mohm级别,避免出现非线性变化。
2)不适用分压,而是锂电池电源通过二极管降压后直接接入ADC。
但查看CC2640数据手册5.14节,battery monitor给出的电压检测范围为1.8V~3.8V。仅仅通过二极管降压的话,二极管的压降跟负载电流是相关的,一般很难达到0.7V,我实测过普通的肖特基管压降甚至低到0.2V。
两种思路都有缺陷,想请教下,TI对于锂电池供电时的电量监测,有无可行方案?多谢!外置电量计芯片就算了。