Hello All,
I've encountered some problems regarding the BQ76PL455A-Q1 (further called BQ). I get a SYS_RESET fault after the device is initialized and is measuring the voltages for a while (can take between 30min and multiple hours until the error occurs).
We're using the BQ on a hardware where we can monitor between 8 to 16 cells. In the case here, I use the 14 cells version, but the behaviour was also detected on the 16 cells version.
I think the problem is software-related, so here is our regular operation procedure:
Init sequence
- Init the UART (uC)
- Init the WakeUp (uC pin, enable the pin)
- Send a Soft-Reset command to the BQ
- Wait 200ms (other initializations on the hardware)
- Init the BQ address (set address to 0)
- Init the BQ GPIO (we use GPIO Pin 4 and 5 as output, no pull)
- Init the BQ AUX (disable pull-up on all AUX pins)
- Set the BQ channels value to 14 (NCHAN)
- Init the COMMCONFIG register (250k, UART)
- Init the FO_CTRL register (only comparator OV and UV)
- Init the comparator OV and UV values for all channels (for all 16 cells, even when using only 14 cells)
- Init the DEVCONFIG register (address selected by auto-addressing, comparator hysteresis enabled, faults unlatched)
- Init the fault masks (mask all communication faults, mask the system reset, mask the user checksum and mask the factory checksum)
- Init the balancing, set CBCONFIG to 1min
- Update the checksum
- Set the STATUS register (clear STACK_FAULT_DET, COMM_CLEAR and COMM_RESET)
- Clear all faults
Operation sequence
- Set the GPIO Output (we're using two LEDs)
- Update checksum
- Enable/Disable Balancing, register CBENBL
- Update checksum
- Send CMD with the channels (cell 1 to 14, all AUX, module voltage)
- Read / receive the measurement results
- Read the FAULT_SUM register
- If any fault is set, read all fault registers
So after a while running the operation sequence, I receive a UV_FAULT_SUM and a SYS_FAULT_SUM in the FAULT_SUM register, retreiving the data of the fault registers I get a UV_FAULT on cells 15 and 16 (unused) and a SYS_RESET.
My guess is, that -somehow- the BQ receives a reset and thus the NCHAN is set back to the default of 16 and causing the UV fault.
So my question now is how could I determine the reset source for this behaviour? Could this be communication related? What can cause the BQ to reset, besides the soft-reset?
Thanks
Alain