Post Go back to editing

LTC6810-2 Can't write to configuration or PWM registers

I have a test board I have setup to monitor up to 12 cells using two LTC6810-2 battery management ICs, and I have a weird problem with the bottom 6-cell IC. The schematic is a bit different as the end application needs to be able to switch between 3 cell, 4 cell and 12 cell setups automatically. To that end there are some P channel MOSFETs changing the input configuration on the lower IC, and the two LTC6810-2 ICs are on the same SPI bus with a comms isolator between them for the voltage translation to the upper IC (see attached schematic of the dev board). The comms isolator basically open circuits the comms to the second IC when no battery balance lead is connected for that IC.

This mostly seems to work well, I can read registers from both ICs by addressing them, broadcast or address to start AD conversions, get cell voltages etc - but for some reason I can't write the config or PWM register groups of only the lower IC (the one not isolated). I found that if I disconnect the upper 6 cells (7-12) from the board, it suddenly works, and reconnecting again stops it working.

Looking at the 0-scope capture of the SPI comms, there doesn't seem to be any difference between the write communication when the upper 6 cells are connected vs disconnected. So the question is, what other conditions might cause everything to be readable but not writable that I can look into?

Schematic and o-scope screen shots attached - first is the write comms for an unsuccessful write (quick wake-up comms prior is not shown):

And the resulting comms from read back:

Next is the successful write (as far as I can tell this is identical to the unsuccessful write:

And the successful read-back of what was written:

I have since tried writing the REFON bit as well but this hasn't made any difference, I think the problem must be hardware related - bit stumped as to what might cause this. Schematic for reference:


Photo of the board:

  • Ok so I managed the get this working, though I'm not sure why which is frustrating as heck... After trying to isolate the problem I found disconnecting the CS line to the low side of the isolation IC stopped the write to config on the low LTC6810-2 from failing. I then added a second seperate CS line to drive the upper LTC6810-2 and it works... Why it works I have no idea, looking at the scope there is no problem with the CS line levels through the write operations... I would love to get to the bottom of it but at least I have a workaround that wont hold up development any longer.