Other Parts Discussed in Thread: BQSTUDIO
Hi!
We have some problems related to config mode and the internal watchdog of the AFE. When powering up, we have two subroutines that we run.
Subroutine 1 checks if AFE is ready:
- Check if AFE is in deepsleep and wake AFE if so
- Check if there is any permanent failures stored in AFE by checking PF Status: 0x0053.
- Check OTP programming etc
- Check if AFE is configured. Right now we do this by checking some version numbers in MCU, POR, and check some registers in the AFE.
- If a configuration is needed, we first perform a partial reset via pin.
- Run subroutine 2 if configuration is needed
- Wait for a fullscan to occur before resuming normal operation, if configuration is not needed
Subroutine 2 happens if configuration of the AFE is needed. The configuration subroutine looks like:
- Enter config mode
- Write parameters over I2C (~150+ parameters)
- Readback parameters after write to check that it is set.
- Exit config mode
- Store version numbers in MCU
- Go back trough subroutine 1 to resume normal operation
We've run into a case where the AFE seems to reboot due to the internal watchdog.
What we've done is that we've removed two of our parameters our parameter list, the CFETF permanent fail threshold and delay registers 0x92EE and 0x92F0. When we do this, we get no feedback on the 0x0053 command. When we later check the battery status, we see that the POR and WD bit have been set in the MCU.
Questions:
- Any idea what may trigger the internal watchdog in this scenario? Is there any way of finding the reason?
- Is there any relationship between the CFETF permanent fail registers and other registers? Do we have to write all of them? We want AFE to handle DFETF protection, but not CFETF.
- Is there any particular sequence that should occur when exiting config mode? We figured out that we should wait for a fullscan. Is there any other timing related events?
Best regards
// Erik Almqvist