Part Number: TAS6424M-Q1
Other Parts Discussed in Thread: TAS6424
Hello.
My current diagnostic logic is as follows:
1. Upon power-on initialization, I write 0x01 to register 0x09 to disable automatic diagnostic execution and write 0xFF to register 0x04 to manually enter diagnostic mode. Then, I read the status register 0x0F and wait until all four channels enter Hi-Z state, indicating the diagnostic has ended. After that, I read the diagnostic results from registers 0x0C and 0x0D, clear the fault, and write 0x00 to register 0x04 to set all four channels to PLAY mode. The results obtained from the power-on diagnostic are accurate.
2. During operation, I continuously monitor the FAULT pin level. When a fault is detected (i.e., the FAULT pin is pulled low), I read status register 0x0F to identify the faulty channel(s) and manually send a diagnostic command to the faulty channel by writing to register 0x04 to put it into diagnostic mode. (For example, if register 0x0F shows channels 1, 2, and 3 in PLAY mode and channel 4 in Hi-Z, this indicates a fault in channel 4. In this case, I write 0x03 to register 0x04 to manually send a diagnostic command for channel 4.) Then after 1s, I read the diagnostic results from registers 0x0C and 0x0D. However, the diagnostic results for the faulty channel keep fluctuating at this stage.
For instance, as shown in the diagram, when channel 2 is shorted to ground, `PaChannelFault2` (the 4-bit value read from the register representing the corresponding channel) fluctuates continuously between no fault, short to ground, short to power supply, and short circuit.
I would like to know what might be wrong with my current real-time diagnostic logic. Could you also provide a detailed, correct real-time diagnostic procedure?


