The battery can't be charged for DA14683.

Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at . We’ll be fixing bugs / optimising the searching and tagging over the coming days.
2 posts / 0 new
Last post
Last seen: 3 months 4 weeks ago
Joined: 2020-06-04 13:34
The battery can't be charged for DA14683.

Hi Dialog,

At the beginning, the battery can be charged. After using it for a period of time, the battery can't be charged, so we are finding the reason why it can't be charged.

The battery is good. But the battery can't be charged.

Please help me to explain the following macro definitions.

bool hw_charger_check_vbus(void)
        uint16_t status = CRG_TOP->ANA_STATUS_REG;
        uint16_t mask = CRG_TOP_ANA_STATUS_REG_VBUS_AVAILABLE_Msk |
                        CRG_TOP_ANA_STATUS_REG_COMP_VBUS_LOW_Msk |
                        CRG_TOP_ANA_STATUS_REG_COMP_VBUS_HIGH_Msk |
        //printf("hw_charger_check_vbus status 0x%x \n", status);
        return ( ((status & mask) == mask) && !(status & CRG_TOP_ANA_STATUS_REG_LDO_SUPPLY_VBAT_OK_Msk));


Last seen: 2 months 2 weeks ago
Joined: 2018-02-08 11:03
Hi xuguodong,

Hi xuguodong,

The hw_charger_check_vbus() function checks if the VBAT power is available. It also checks the values of the ANA_STATUS_REG. Please refer to the datasheet for more info. Please run it in debug mode, what is the value of this register? Does the code run properly, or is freezes into an assertion etc. ?

Additionally, do you have a custom firmware, or you are using any of the SDK example?

You could also read the following document:

Thanks, PM_Dialog