请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BQ25120 通过 I2C 配置几秒钟后、BQ25120 SYSOUT 电压恢复为默认值。
我们一直将引脚 NCD 引脚上拉为高电平、在写入所有寄存器后、我们已读取并验证所有寄存器值。 所有这些都是我们写入寄存器的值。
观察结果:如果我们通过 I2C 不断读取系统寄存器(0x06)值、SYSOUT 电压不会下降
这是我们的寄存器配置。
#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 /** *@PMIC_INIT 的简短函数。 * */ void PMIC_init (void) { RET_CODE_t ERR_code; /*BQ25120寄存器配置*/ uint8_t bttn_config[2]={BQ25120_BTTN_REG、0xFC}; uint8_t sysv_config[2]={BQ25120_SYS_REG、0xf8}; uint8_t LDO_config1[2]={BQ25120_LDO_REG、0x44}; uint8_t LDO_config2[2]={BQ25120_LDO_REG、0xC4}; uint8_t FAST_CHRG_CONFIG[2]={BQ25120_FAST_CHRG_REG、0x90}; uint8_t prechrg_config[2]={BQ25120_PRECHRG_REG、0x8A}; uint8_t batt_vol_config[2]={BQ25120_BATTV_CTRL_REG、0x78}; uint8_t ILIM_CONFIG[2]={BQ25120_PRECHRG_REG、0x22}; /*配置 BQ25120寄存器*/ /*按钮控制寄存器,第一次唤醒事件600ms,第二次唤醒事件1.5s */ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、bttn_config、sizeof (bttn_config)、false); APP_ERROR_CHECK (ERR_code); /*SYS VOUT 控制寄存器,范围1.8V~3.3V,SYS 输出为3V*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、sysv_config、sizeof (sysv_config)、false); APP_ERROR_CHECK (ERR_code); /*负载开关和 LDO 控制寄存器,范围1.8V~3.3V,SYS 输出为3V*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、LDO_config1、sizeof (LDO_config1)、false); APP_ERROR_CHECK (ERR_code); /*负载开关和 LDO 控制寄存器,范围1.8V~3.3V,SYS 输出为3V*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、LDO_config2、sizeof (LDO_config2)、false); APP_ERROR_CHECK (ERR_code); /*快速充电电流控制寄存器,ISET 引脚连接到2.49k 欧姆电阻器以获得80mA 充电电流*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、FAST_CHRG_CONFIG、sizeof (FAST_CHRG_CONFIG)、false); APP_ERROR_CHECK (ERR_code); /*预充电电流控制寄存器,10%预充电/终止电流(8mA)*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、prechrg_config、sizeof (prechrg_config)、false); APP_ERROR_CHECK (ERR_code); /*电池电压控制寄存器,充电电压4.2V (默认值)*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、batt_vol_config、sizeof (batt_vol_config)、false); APP_ERROR_CHECK (ERR_code); /*输入电流和电压保护控制寄存器,输入电流200mA,UVLO 3.0V*/ ERR_code = nrf_drv_twi_TX (&m_tw1、BQ25120_slave_ADDR、ILIM_CONFIG、sizeof (ILIM_CONFIG)、false); app_error_check (err_code); }