TI中文支持网
TI专业的中文技术问题搜集分享网站

电池电量获取不准

你好,ti介绍用tps67232与CC2541结合会更省功耗,所以我采纳了TI的建议,加上了这个旁压转换器,原来的keyfob是用P0.7控制tps67232工作的,而我的电路板是用P1.6的,所以我将keyfob原代码中的P0_7口改成P1.6口控制TPS67232

#if defined ( DC_DC_P0_7 )
// Enable stack to toggle bypass control on TPS62730 (DC/DC converter)
HCI_EXT_MapPmIoPortCmd( HCI_EXT_PM_IO_PORT_P1, HCI_EXT_PM_IO_PORT_PIN6 );
#endif // defined ( DC_DC_P0_7 )

但是发现测出的电池电量是25%,也就是测电压是tps67232是处于工作模式的,这是为什么呢?

上面这个函数HCI_EXT_MapPmIoPortCmd有一句解释是“The GPIO output will be High on Wake, and Low upon entering Sleep.”也就是说这个函数会控制tps67232工作,降低功耗,实际测试功耗是降了,但测出的电压时25%左右,我觉得是我测电压时tps67232还处于工作模式,测的还是2.2V那个电压,而不是外部的3V电压,希望YAN,VIKI可以帮忙看看,搞了几天都没头绪。。。

weixin liu:

哈哈,问题好像已经解决了,TI的源代码果然很厉害!!!

DENG KEN:

回复 weixin liu:

可以分享下经验吗

weixin liu:

回复 DENG KEN:

是代码问题,电池,ADC那两块代码。。。认真看。。

Kenn Lu:

回复 weixin liu:

Weixin

          Sensortag调试中增加battery service时也碰到这个问题,可否请再深入提示一下,是否Battery level读取时,DCDC仍处于低功耗状态,导致读取到的电量永远是25%。

           

Kenn Lu:

回复 Kenn Lu:

我的硬件仍旧以P0.7控制DC/DC的ON/BYP管脚。

 

我的理解,tps62730的ON/BYP管脚控制DC/DC工作状态,

当ON/BYP = LOW,DC/DC旁路,进入低功耗模式,Vout = Vin;

当ON/BYP = HIGH,DC/DC转换使能,进入regulating,Vout=2.25v,

那么如果ON/BYP管脚受CC2541的stack控制,唤醒阶段,ON/BYP=HIGH,Vout一直为2.25v,

当Vin下降到2.2V及以下时,DC/DC的Vout也会直接将Vin输出。

所以,当ON/BYP 受控于CC2541的stack时,无论接入的电池电量是2.2v~3V,输出一直为2.25v,而2v~3V对应0%~100%,因此2.25v的测量值一直为25%

参考论坛关于cc2541的电量25%的帖子:

http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/p/30345/92471.aspx#92471

我修改代码如下:

HCI_EXT_MapPmIoPortCmd(HCI_EXT_PM_IO_PORT_NONE, HCI_EXT_PM_IO_PORT_PIN7);    

P0DIR |= 0x80;//Port0 P0.7 as output, other bits remain unchanged    

P0 &= 0x7f;//P0.7 set to LOW    

Batt_MeasLevel( );       

P0DIR |= 0x80;//Port0 P0.7 as output, other bits remain unchanged    

P0 |= 0x80;//P0.7 set to HIGH    

HCI_EXT_MapPmIoPortCmd(HCI_EXT_PM_IO_PORT_P0, HCI_EXT_PM_IO_PORT_PIN7); 

但是检测到battery level 仍旧是25%,不知是什么原因,非常奇怪。

怀疑DC/DC的ON/BYP无效,正在check硬件。

Leo Wu:

回复 Kenn Lu:

你的问题解决了吗,我的检测电压值也有问题,能指导一下吗

weixin liu:

回复 Leo Wu:

这个问题很久之前了,我有点忘了当时是怎么解决的,但我可以肯定的是,TI代码应该是没问题的,认真看电池和adc那部分代码,可以找到答案的

Leo Wu:

回复 weixin liu:

嗯,解决了,我是通过BATT那个例子获取电池百分比的,他是获取内部VDD值,再考虑要用外部模拟电源ADC测还是就用测量内部电压值

赞(0)
未经允许不得转载:TI中文支持网 » 电池电量获取不准
分享到: 更多 (0)