Other Parts Discussed in Thread: BQ76907
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: BQ76907-Q1
主题: BQ76907 中讨论的其他器件
嗨、团队、客户在将 MCU 置于睡眠模式之前、将 76907 设置为深度睡眠模式。 唤醒后、调用`BQ76907_MOSFET ();退出 Exit_Deepsleep 模式`导致 MOSFET 未打开、从而阻止电容器充电。 请帮助解决此问题。 谢谢你。
1.在不执行睡眠操作的情况下,可以打开 MOSFET 进行充电。 执行睡眠操作并被唤醒后、MOSFET 再次导通然后关断、睡眠时间约为 60ms。 
2. 操作代码流
1. CommandSubcommands(BQ76907_EXIT_DEEPSLEEP);
2. CommandSubcommands(BQ76907_RESET);
3. DirectCommands(BQ76907_ALARM_STATUS, 0xffff, WRITE);
4. DirectCommands(BQ76907_FET_CONTROL, 0x0c, WRITE);
5. CommandSubcommands(BQ76907_SET_CFGUPDATE);
6. CommandSubcommands(BQ76907_SLEEP_DISABLE);
7. DirectCommands(BQ76907_DSG_FET, 0xf701, WRITE);
8. DirectCommands(BQ76907_GHC_FET, 0xf701, WRITE);
9. Threshold Initialization
10. DirectCommands(BQ76907_FET_CONTROL, 0x03, WRITE);
11. DirectCommands(BQ76907_REGOUT_CONTROL, 0x07, WRITE);
12. CommandSubcommands(BQ76907_FET_ENABLE);
13. CommandSubcommands(BQ76907_EXIT_CFGUPDATE);
3)。 工程
BQ76907_Exit_Deepsleep();
DelayMs(1);
BQ76907_Reset();
DelayMs(1);
// Clear 76907 fault bits
BQ76907_Clear_Alerts();
DelayMs(1);
// Shutdown CHG DSG
BQ76907_FETControl_Autonomous_FET_OFF();
DelayMs(1);
// Configuration mode entry
BQ76907_SetConfigUpdate();
DelayMs(1);
// Wait for the 0x12 Battery Status()[CFGUPDATE] flag to set.
while(retry < 10)
{
flag = BQ76907_Battery_Status();
if( flag & (1 << 5) )
{
retry = 10;
}
retry++;
}
// Disable sleep mode
BQ76907_Sleep_Disable();
DelayMs(1);
// Enable PWM control
BQ76907_DSG_FET_PWM();
DelayMs(1);
BQ76907_GHC_FET_PWM();
DelayMs(1);
Subcommands_InitBQ76907(OvercurrentinChargeProtectionThreshold, 0x3e, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvercurrentinChargeProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvercurrentinDischarge1ProtectionThreshold, 0x64, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvercurrentinDischarge1ProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvercurrentinDischarge2ProtectionThreshold, 0x64, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvercurrentinDischarge2ProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(ShortCircuitinDischargeProtectionThreshold, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(ShortCircuitinDischargeProtectionDelay, 0x0a, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(RecoveryTime, 0x01, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvertemperatureinChargeProtectionThreshold, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvertemperatureinChargeProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvertemperatureinChargeProtectionRecovery, 0x00, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(UndertemperatureinChargeProtectionThreshold, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(UndertemperatureinChargeProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(UndertemperatureinChargeProtectionRecovery, 0x00, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvertemperatureinDischargeProtectionThreshold, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvertemperatureinDischargeProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(OvertemperatureinDischargeProtectionRecovery, 0x00, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(UndertemperatureinDischargeProtectionThreshold, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(UndertemperatureinDischargeProtectionDelay, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(UndertemperatureinDischargeProtectionRecovery, 0x00, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(MinTempThreshold, 0x00, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(MaxTempThreshold, 0xff, WRITE);
DelayMs(1);
Subcommands_InitBQ76907(DAConfig, 0x3f, WRITE);
DelayMs(1);
/* DelayMs(1);
BQ76907_Disable_Protections_A();
DelayMs(1);
BQ76907_Disable_Protections_B();
DelayMs(1);
BQ76907_Disable_DSG_Protections();
DelayMs(1);
BQ76907_Disable_CHG_Protections();
DelayMs(1);
BQ76907_Disable_BothFET_Protections();
DelayMs(1);
BQ76907_Read_Protections_A();
DelayMs(1);*/
// Calibration
BQ76907_Cell1Gain();
DelayMs(1);
BQ76907_StackGain();
DelayMs(1);
BQ76907_Cell2GainDelta();
DelayMs(1);
BQ76907_CurrGain();
DelayMs(1);
BQ76907_CC1Gain();
DelayMs(1);
// Set the number of cells
//BQ76907_VCell_Mode();
//DelayMs(1);
// MOS forced on, allows host control of individual FET drivers.
BQ76907_FETControl_Autonomous_FET_ON();
DelayMs(1);
// LDO open
BQ76907_REGout_Control();
DelayMs(1);
// Toggle [FET_EN] bit
BQ76907_FET_Enable();
DelayMs(1);
// Exit configuration mode
BQ76907_ExitConfigUpdate();