I am working on a BMS project which uses secondary boards with LTC6813s in a daisy-chain configuration to monitor the cells. The system has a separate primary board with an MCU running embedded C which uses two LTC6820s to interface with the LTC6813s on the secondary boards. Each LTC6820 is connected to each end of the daisy-chain.
Communication works perfectly in the forward direction (LTC6820 --> (Port A | Port B) --> (Port A | Port B) --> LTC6820); however, when trying to communicate in the reverse direction, I can only communicate with the first LTC6813 connected to the LTC6820. The HW design includes an LED connected to some of the circuitry of the DRIVE pin which turns on when the LTC is not in SLEEP mode. I can see the LED come up for both secondary boards which means they both are receiving the wake up signal transitioning into STANDBY mode.
In software, I am sending a dummy byte for my wake up signal as it seems all I need to do is assert and deassert CSB. My initialization sequence sends two of these wake up signals which wait for t_wake and t_ready respectively (closer to 1ms each as it is bare metal, but this is nowhere close to t_sleep or t_idle, so I assume this is alright). Then I write to CFGAR and read my configuration was successful. When I read CFGAR, I am not getting data back from the second LTC6813. As I said before, this only fails when in the reverse direction, forward direction works perfectly. Is there anything else I missed? Something I need to configure to communicate in this direction?
Thank you.