I have made a battery management system using PIC18F45K22 and BQ76PL455A-Q1 on one board. It wakes up all other BQ chips in the stack (tested up to 8 successfully so far), auto-addresses them, sets up registers, reads 16 cells and two temperature sensors per battery/BQ and displays results on a 2 x 16 LCD showing max, min and average cell volts and degrees C. It can also switch relays to indicate over- and under- voltage or temperature and outputs all data to PC via RS232 to USB converter every 10 sec. So far so good.
As a first step to fault handling I'm having trouble reading the FAULT_SUM, FAULT_COM, FAULT_SYS and FAULT_DEV registers, despite using the same routines which work successfully with auto-addressing, etc. I use for example 81 06 5E 01 31 9D for BQ address 06 (top of stack), FAULT_COM register, 2 bytes expected, CRC. There is no response! In the TI BQ76PL455software.pdf guide there seems to be some inconsistency:
81 02 52 01 755C Single Device Write With Response (8-bit register addressing), Device Address 2 (top of stack), Register 82 (FAULT_COM register), Expected data bytes: 1, CRC but surely FAULT_COM register contains 2 bytes (at 52h and 53h) so it should be 02 not 01? Either way I get no response.
In general, what recommendation do you make for error detection and handling?