SLUSDQ4 April 2019 BQ79606A-Q1
The daisy chain communication for the BQ79606A-Q1 utilizes a "ring" architecture. In this architecture, a break between two modules does not prevent communication to all upstream devices as in a normal non-ring scheme. When the host detects a communication break, the BQ79606A-Q1 allows the host to switch the communication direction to communicate with devices on both side of the break. This allows for safe operation until the break in the lines is repaired.
Once the host determines there is a break in the daisy-chain (there is no response received during a predetermined timeout and after multiple tries) the host follows the following procedure. The following procedures assume the initial transmit direction was set to North (COML to COMH) CONTROL1[DIR_SEL]=0.
These devices accept commands from the north direction and forward them in the south direction. Responses are sent on north bus and received on the south bus. The host repeats the process to communicate with the devices in the segment below the communication line break.
Reverse direction in Ring Architecture after power up requires the host first to do normal direction auto addressing. At power up, all the devices are addressed as 0 by default, and the first step above can result in disabling all devices RX's and TX's. Normal auto addressing prevent this from happening.
Devices in the stack do NOT transmit commands in both the north and south directions simultaneously. The commands are, however, received from both directions. This is to enable the switching of the bus direction. If a command is received on the non-selected receiver, and the command frame initialization byte does NOT identify the frame as a Broadcast Write Reverse Direction command, the command is ignored. If, at any time, commands are received on both buses, only the bus programmed by the CONTROL1[DIR_SEL] bit is executed and the other is discarded. The default direction for the stack communication bus is north.
If the user must switch off all devices' COMHTX and COMLTX using COMHTX_EN and COMLTX_EN then it has to be handled by doing individual write to DAISY_CHAIN_CTRL register, one by one starting from top most device instead of attempting a broadcast write.