This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ25120: Sysout reset back to 1.8v

Part Number: BQ25120
Other Parts Discussed in Thread: BQ25121A

Hi,

I would like to reopen the following topics

https://e2e.ti.com/support/power-management/f/196/p/754556/2788241?tisearch=e2e-sitesearch&keymatch=BQ25120

I have tried to turn off the NCD after write but the same problem persist. The SYSout still reset to 1.8v. Please advice.

void pmic_init (void)
{
    ret_code_t err_code;

    /*BQ25120  register configuration*/
    uint8_t bttn_config[2];
    uint8_t sysv_config[2];
    uint8_t ldo_config1[2];
    uint8_t ldo_config2[2];
    uint8_t fast_chrg_config[2];
    uint8_t prechrg_config[2];
    uint8_t batt_vol_config[2];
    uint8_t ilim_config[2];
    uint8_t ts_ctrl_config[2];

    nrf_gpio_cfg_output(PMIC_NCD);
    nrf_gpio_pin_write(PMIC_NCD,1);
    nrf_delay_ms(10);
    bttn_config[0]= BQ25120_BTTN_REG;
    bttn_config[1]= 0xFC;
    sysv_config[0]= BQ25120_SYS_REG;
    sysv_config[1]= 0xF8;
    ldo_config1[0]= BQ25120_LDO_REG;
    ldo_config1[1]= 0x44;
    ldo_config2[0]= BQ25120_LDO_REG;
    ldo_config2[1]= 0xC4;
    fast_chrg_config[0]= BQ25120_FAST_CHRG_REG;
    fast_chrg_config[1]= 0x90;
    prechrg_config[0]= BQ25120_PRECHRG_REG;
    prechrg_config[1]= 0x8A;
    batt_vol_config[0]= BQ25120_BATTV_CTRL_REG;
    batt_vol_config[1]= 0x78;
    ilim_config[0]= BQ25120_PRECHRG_REG;
    ilim_config[1]= 0x22;
    ts_ctrl_config[0] = BQ25120_TS_CTRL_REG;
    ts_ctrl_config[1] = 0x08;
    /* configure BQ25120 register */
    /*Push-button Control Register, 1st wake up event at 600ms, 2nd wakeup event at 1.5s*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, bttn_config, sizeof(bttn_config), false);
    APP_ERROR_CHECK(err_code);
    /*SYS VOUT control Register, Range 1.8V~3.3V, SYS output at 3V*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, sysv_config, sizeof(sysv_config), false);
    APP_ERROR_CHECK(err_code);
    /*Load Switch and LDO control Register, Range 1.8V~3.3V, SYS output at 3V*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, ldo_config1, sizeof(ldo_config1), false);
    APP_ERROR_CHECK(err_code); 
    /*Load Switch and LDO control Register, Range 1.8V~3.3V, SYS output at 3V*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, ldo_config2, sizeof(ldo_config2), false);
    APP_ERROR_CHECK(err_code); 
    /*Fast Charging current control Register, Iset pin connects to 2.49kohm resistor for 80mA charging current*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, fast_chrg_config, sizeof(fast_chrg_config), false);
    APP_ERROR_CHECK(err_code); 
    /*Pre-charge current control Register, 10% pre-charge/termination current (8mA)*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, prechrg_config, sizeof(prechrg_config), false);
    APP_ERROR_CHECK(err_code); 
    /*Battery Voltage Control Register, Charging voltage 4.2V (default)*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, batt_vol_config, sizeof(batt_vol_config), false);
    APP_ERROR_CHECK(err_code); 
    /*Input current and voltage protection control Register, Input current 200mA, UVLO 3.0V*/
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, ilim_config, sizeof(ilim_config), false);
    APP_ERROR_CHECK(err_code);
    /* enable charging interrupt pin */
    err_code = nrf_drv_twi_tx(&m_twi1, BQ25120_SLAVE_ADDR, ts_ctrl_config, sizeof(ts_ctrl_config), false);
    APP_ERROR_CHECK(err_code);

    nrf_gpio_pin_write(PMIC_NCD,0);
    nrf_delay_ms(50);
}

  • Hi ,

    I detect the cause. Sys out was set to low when VBATUVLO is reached, how to configure the chip not to pull down the SYS?

  • Hi Ing,

    Does VBAT go lower than VBATUVLO due to a transient? Then I would recommend lowering VBATUVLO to support a lower discharge on the battery. 

    If VBAT is unplugged and then re-inserted, then the registers will have to be written again. Also note than when VBAT goes lower than VBATUVLO on battery only mode, PMID, LS/LDO will go low. 

    Are you also writing/ reading from a register every 30s to prevent watchdog reset? If you have watchdog reset issue, i would recommend BQ25121A.

    regards,

    gautham