2018-12-10 11:57 PM
BQ25120 SYSout voltage return to default value after a few sec of configuration via I2c.
Observation: The SYSout voltage won't drop if we constantly read the system register(0x06) valuevia I2c
Here is our register configuration.
#define BQ25120_SLAVE_ADDR 0x6A
#define BQ25120_BTTN_REG 0x08
#define BQ25120_SYS_REG 0x06
#define BQ25120_LDO_REG 0x07
#define BQ25120_FAST_CHRG_REG 0x03
#define BQ25120_PRECHRG_REG 0x04
#define BQ25120_BATTV_CTRL_REG 0x05
#define BQ25120_ILIM_CTRL_REG 0x09
/* 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);
}
2018-12-11 12:08 AM
Hi There,
I missing one more information, we pull up pin NCD pin all time high.
After we write all the register, we have read and verify all the register value. All are the value we written into the register.
2018-12-11 12:59 AM
Sorry, wrong post. Please ignore this question.