电池充电精确的电池电量

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
匿名(未经验证)
电池充电精确的电池电量

嗨对话框,

我有一个问题,当我们充电电池时,它将上升到100%电池电量,但它仍然充电,当我们删除USB时(收费尚未完成),它显示低于100%。有没有办法充电时准确地确定电池水平?我们正在使用ADC方法来获得电池百分比,将使用SOC帮助吗?

设备:
lc_dialog
离线
最后一次露面:3个月1周前
职员
加入:2016-09-19 23:20
你好瓦拉希尔,

你好瓦拉希尔,

对此可能有不同的因素,并且很难用给定的信息回答问题。
您能否请指定电压,电流和电池规格的配置值。此外,当您与USB断开连接时,百分比下降到百分比的值是多少。

是的,SoC应该提供更好的结果,以获得电池测量。注意,在使用SOC时,执行测量的频率应该是几分钟内的东西(例如2分钟),以便提供足够的时间来处理计算,因为没有大大变化的顺序秒。

为了更好地回答问题,请提供您目前实施的一些源代码样本以测量电池百分比。如果您有任何充电时间日志,那将有用。

布罗尔,
LC.

Mutahir(未经验证)
嗨LC,

嗨LC,

感谢您的快速响应,这是我的收费参数:
#define dg_configbattery_type(battery_type_custom)
#define dg_configbattery_charge_voltage 0xa // 4.2V
#define dg_configbattery_type_custom_adc_voltage(3194)// 3.9v
#define dg_configprecharging_threshold(2462)// 3.006V
#define dg_configcharging_threshold(2498)//(2498)// 3.05V
#define dg_configbattery_charge_current 3 // 45ma // 4 // 60mA
#define dg_configbattery_precharge_current 20 // 2.1ma
#define dg_configbattery_charge_ntc 1 //禁用
#define dg_configprecharging_timeout(30 * 60 * 100)

我们的电池是3.7V标称和50mAh容量Lipo电池。

我们正在使用以下代码来获得电池级别:
#define max_battery_level 3800 // 3800mv
#define min_battery_level 2800 // 2800mv

静态UINT8_T BAT_LEVEL(UINT16_T电压)
{
if(电压> = max_battery_level){
返回100;
}如果(电压<= min_battery_level){
返回0;
}

/ *
*用于演示目的,近似排出(伏格VS容量)
*通过线性函数。确切的公式取决于所使用的特定电池。
* /
返回(UINT8_T)((int)(电压 - min_battery_level)* 100 /
(max_battery_level - min_battery_level));
}
UINT16_T BAT_VOLTAGE;
静态UINT8_T READ_Battery_LEVEL(void)
{
UINT8_T级别;

battery_source bat = ad_battery_open();
bat_voltage = ad_battery_raw_to_mvolt(bat,ad_battery_read(bat));
Level = Bat_Level(BAT_VOLTAGE);
ad_battery_close(蝙蝠);

返回水平;
}

在正常使用时,即它不会充电电池电量足够精确。但是当我们充电时,它不会显示电池充电的实际值。例如,它将转到100%,但“Charging_State”变量仍然是USB_Charging_on,因此如果此时,我会断开充电电缆;电池电量降至89或90%。我的问题是有没有办法获得Charging_State == USB_Charging_On的准确测量电池级别?

lc_dialog
离线
最后一次露面:3个月1周前
职员
加入:2016-09-19 23:20
你好瓦拉希尔,

你好瓦拉希尔,

谢谢你解释用例。它看起来像充电器连接并且电池充电时,一般而言,由于电池未加载,并且当充电停止并断开充电器时,可以获得更高的电压(比如约50mV),并且断开充电器时,它会降低到现在连接的负载。而且,在CV(恒压)期间,充电电压接近充电电压。

无论情况如何,建议不要通过测量伏特来测量ADC的电池电量。此外,效率可能因容量映射伏特而异。由于它使用Coloumb计数器来估计剩余充电,因此测量充电更好地完成。记录充电器状态时,这将更加准确。

尝试使用SOC实施电荷检测,并告知我们是否有任何其他问题或疑虑。有关参考,您可以看一下SOC实现SOC的PXP_Reporter应用程序。

最好的事物,
LC.