Hi Dialog,
We're creating a wearable device with a very small lithium polymer battery (about 30 mAh). We'd like to recharge the battery in our system using a charge current of about 20 mA (0.7C). If I understand correctly, we can specify charge current using the dg_configBATTERY_CHARGE_CURRENT define, which limits us to the levels described for CHARGER_CTRL1_REG[CHARGE_CUR]. Level 1, 10 mA, is not ideal, since recharging our product will take twice as long as it could. Level 2, 30 mA, is too large for our small battery.
Is there a way I can configure the charge rate to be closer to our desired 20 mA?
We're using the DA1468x and the latest (1.0.14) SDK.
Thanks!
David
Keywords:
Device:
Hi david_33021,
根据DA14680数据表,你能有限公司nfigure the CHARGE_CUR with standard values. Please check the Table 541: CHARGER_CTRL1_REG (0x50001B08) from datasheet. As you are able to see, it’s not possible to use 20mA charging current.
Thanks, PM_Dialog
From the data sheet, I observed that setting CHARGER_CTRL2_REG[CHARGER_TEST] to 6 enables us to divide the charge current setting by 26.6. This appears to be how the hw_charger_enable_ext_charging() API (from hw_usb_charger) establishes the value for the precharging current.
What if I do the following:
1. Configure charge current to be 400 mA by setting dg_configBATTERY_CHARGE_CURRENT with the appropriate value,
2. Modify hw_usb_charger so that it continuously sets CHARGER_CTRL2_REG[CHARGER_TEST] to 6.
Would the system then establish the charging current as 400 mA / 26.6 = 15 mA?
Perhaps I would need to modify:
1. hw_charger_start_charging
- First call hw_charger_enable_ext_charging before starting charging
2. hw_charger_enable_normal_charging
- Replace the existing code and simply call hw_charger_enable_ext_charging
3. hw_charger_end_of_charge
- A bit trickier. The current code is as follows:
// Check only in normal charging mode.
if (HW_CHARGER_REG_GETF(CTRL2, CHARGER_TEST) == 0) {
ret = HW_CHARGER_REG_GETF(STATUS, END_OF_CHARGE);
}
What happens if I query the END_OF_CHARGE bit while I'm applying the 26.6 division to the charge current (which makes the value of HW_CHARGER_REG_GETF(CTRL2, CHARGER_TEST) == 6)?
Thanks,
David
Hi david_33021,
This CHARGER_CTRL2_REG[CHARGER_TEST] setting should be only used for pre-charging. After pre-charging the test settings must be disabled. So, you are not able to use the CHARGER_TEST innormal mode, that’s why the END_OF_CHARGE bit cannot be used when the CHARGER_CTRL2_REG[CHARGER_TEST]=0x6 is set. As I have already mentioned in my previous post, you are able to configure the charging current with standard values (Table 541 of the datasheet). In case you want to have 20mA charging current, the only option is to have a current very close to 20mA, either 10mA or 30mA.
Thanks, PM_Dialog
Thanks. That's too bad.
David