主题中讨论的其他器件:BQSTUDIO
BQ769x2_SetRegister (ALERTPinConfig、0x2A、1);// ALERT
BQ769x2_SetRegister (EnabledProtectsA、0x10、1);//启用 OCD1
BQ769x2_SetRegister (DefaultAlarmMask、0x4000、2); //启用 SSA 位14
BQ769x2_SetRegister (OCD1Threshold、0x02、1);// 电流4A
BQ769x2_SetRegister (OCDRecoveryThreshold、0x00002);//清除 OCD 的当前值 为0A!!!
BQ769x2_SetRegister (EnabledProtectsA、0x20、1);//启用保护
然后、我们测试 BMS 是否将电流负载增加到阈值限制 OCD 以上
我们成功地触发了 OCD 警报、警报变为高电平(有效)。
我们还成功地从故障中恢复(清除警报原始状态)。
要删除警报状态寄存器中的活动位、我们执行以下步骤。
BQ769x2_ReadSafetyStatus (); //读取寄存器
如果(value_SafetyStatusA &&(1<<5))检查 OCD 是否处于活动状态
{
delayUS(5000);
BQ769x2_SetRegister (AlarmStatus、0xFFFF、2);根据第62页的文档"技术参考手册"清除 SSA 寄存器写入"1"
_NOP();
}
尽管如此、我们仍无法清除警报状态寄存器、警报引脚也无法清除。