SLUSDQ4 April 2019 BQ79606A-Q1
A Communication Reset command is sent by holding the RX line low of the base device for tUART(RST). The primary purpose of sending a communications reset is to recover the device in the event the baud rate is inadvertently changed or unknown. The baud rate of the base device resets to 250Kbps regardless of the value stored in the COMM_CTRL[BAUD] register. This sets the baud rate to a known, fixed rate (250Kbps), and the COMM_UART_FAULT[COMMRST_DET] bit is set. The baud rate register COMM_CTRL[BAUD] will not be affected by communication reset. This communication reset does not affect the stack devices (only the base will reset to 250Kbps). Writing to stack devices with an 1Mbps or 500Kbps baud rate should not be an issue. Therefore even if a stack device is set to 1Mbps baud, and base is reset to 250Kbps baud, the host can write to a stack device using 250Kbps. Only for read from stack the baud rate of stack device matters and then it must meet the baud of base and host. Therefore in this case, the host can still do a broadcast write at 250Kbps to set entire stack and base whatever new baud it wants them to be at.
Holding the RX line of the base device low for more than tUART(RST) will also cause the base to send Sleep to active tones and Communications clear (break). The sleep to active and communication clear are inclusive in the communication reset.
In a case a communication reset is received while waiting to respond to a broadcast read or stack read command, the device response is discarded and the COMM_UART_TR_FAULT[WAIT] bit is set. The stack devices do NOT see the reset and continue to send their responses which are forwarded to the host. In the stack configuration, the host should avoid this condition by waiting until all responses are received from the stack before sending a reset. Failure to do so results in the host receiving unexpected response frames. Note that performing a reset in the middle of receiving responses may result in buffer overflow errors if the baud rate for the base device is reset to a lower rate that the stack devices. It should be noted that in addition to the COMM_UART_FAULT[COMMRST_DET] flag, the COMM_UART_FAULT[STOP] flag is also set because the reset timing violates the typical byte timing and the STOP bit is seen as '0'.