连接充电电池后复位SOC计数器

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
乔佛里COFFINEAU
离线
最后看到:三年前,三周前
加入:2017-06-30 09:08
连接充电电池后复位SOC计数器

你好,

我正在工作的一个项目使用DA14681芯片与SDK_BTLE_v1.0.8.1050.1。

我们使用一种系统,当产品不使用时断开电池。按下按钮或连接USB线时连接电池。

我们有一个问题,当我们开始连接USB电缆,因为对话开始之前电池开关被激活。

所以当它初始化时,SOC值被设置为0。然后它就不会更新了。电池正在正确充电,但SOC值没有更新为正确的值。

我试图通过在init函数中使用read done来添加SOC值的更新:

int16_t socf_reset_soc(空白)

int64_t active_count;
uint64_t active_period;
int32_t电流;
int16_t now_voltage;
active_period = SOCF_GET_DURATION (socf_pre_sample_time,
socf_start_count_time);
如果(active_period < 10) {
Hw_cpm_delay_usec ((10 - active_period) * 1000);
socf_pre_sample_time = rtc_get_fromISR ();
active_period = SOCF_GET_DURATION (socf_pre_sample_time,
socf_start_count_time);

active_count = socf_get_count(真正的);
socf_get_avg_current(active_count, active_period);
socf_vbat_via_adapter() + socf_vbat_via_adapter()
+ socf_vbat_via_adapter()) / 3;
Socf_soc = socf_get_soc_vbat_ibat(now_voltage, current, vol_dis_low, vol_dis_high);
socf_accum_charge_count = SOCF_SOC_TO_COUNT (socf_soc);

我仍然有一个问题,因为当我调用这个功能时,电池已经在充电。所以估计的百分比是不正确的充电器是活跃的。

是否有其他方法更新SOC值,如果电池连接后系统初始化?

是否有可能停止和启动与SDK的充电过程?(可以直接使用hw_charger_stop_charging和hw_charger_start_charging吗?)

乔佛里

设备:
MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨乔佛里COFFINEAU,

嗨乔佛里COFFINEAU,

只是为了检查如果我正确的话,当你插入USB为了开始充电的电池,电池还没有真正连接在设备上(需要一定的时间才能电池实际上是附加在黑板上插入USB)时,所以充电器在没有电池的情况下开始充电过程,这就是破坏SOC结果的原因吗?我的理解正确吗?

由于MT_dialog

乔佛里COFFINEAU
离线
最后看到:三年前,三周前
加入:2017-06-30 09:08
你好,

你好,

是的,情况就是这样。SOC结果从0%开始,而不是稍后连接的电池水平。

现在作为解决方案,我已经注释了usb_attach ()电话在usb_charger_task为了不启动充电器。

然后在稍后的应用程序中,我执行我提取的函数来重置SOC值。就在我打电话之后hw_charger_vbus_cb(真正的)触发usb连接。

这是一个临时的路径,同时等待一个更详细的答案,从您的建议。

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨乔佛里COFFINEAU,

嗨乔佛里COFFINEAU,

您已经实现的解决方案是可以接受的,它是向前发展的一种方法,其他方法是在电池连接时重置系统,或让系统处于系统初始化任务,直到电池连接。这取决于你的设计。到目前为止,我们还没有在我们的SDK中实现这样的解决方案,因为没有电池不是一个正常的用例。

由于MT_dialog