Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Power Validation

  • Check for continuity between cell inputs, balance inputs, 3 V, 5 V, fused VBAT+ and fused VBAT-. All of these nets should be isolated from each other.

  • Connect the BMS carrier to the AFE isoSPI port A.

  • Power the BMS carrier board with 12 V.

  • Connect the AFE to 12 cells in series, OR connect a power supply between VBAT+ and VBAT-. The power supply can be set to about 30 V with a current limit of about 100 mA.

  • Measure the voltage between 3 V and VBAT-, and 5 V and VBAT-. 3 V will only be powered when the LTC6811 is awake, so the LTC6811 needs to receive valid ADC commands over isoSPI every 2 s or the REFON bit can be set to 1 with the WRCFGA command, and then the 3 V net can be measured with a DMM. Otherwise, an oscilloscope can be used to measure the 3 V net after a valid ADC command is sent.

  • Turn off the power supply.

Battery Stack Monitor (LTC6811-1)

isoSPI Communication

Any commands sent to the LTC6811 require a PEC. Details can be found on page 53 of the datasheet and sample code on page 76. Additionally, if the LTC6811 has not received a command for 2 s, it will enter a sleep state and can be woken up by toggling the CS pin low and high before sending the command.

  • Connect the isoSPI port A to a BMS carrier board.

  • Power the BMS carrier board with 12 V.

  • Supply about 30 V between VBAT+ and VBAT-, or connect the AFE to 12 cells in series.

  • Send the RDCFGA command (0x00_02) from the BMS carrier to the AFE over SPI/isoSPI.

  • The AFE should respond by sending 6 bytes of data back to the BMS carrier:

Register

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

CFGR0

Expected:

GPIO5

1

GPIO4

1

GPIO3

1

GPIO2

1

GPIO1

1

REFON

0

DTEN

1

ADCOPT

0

CFGR1

Expected:

VUV[7]

0

VUV[6]

0

VUV[5]

0

VUV[4]

0

VUV[3]

0

VUV[2]

0

VUV[1]

0

VUV[0]

0

CFGR2

Expected:

VOV[3]

0

VOV[2]

0

VOV[1]

0

VOV[0]

0

VUV[11]

0

VUV[10]

0

VUV[9]

0

VUV[8]

0

CFGR3

Expected:

VOV[11]

0

VOV[10]

0

VOV[9]

0

VOV[8]

0

VOV[7]

0

VOV[6]

0

VOV[5]

0

VOV[4]

0

CFGR4

Expected:

DCC8

0

DCC7

0

DCC6

0

DCC5

0

DCC4

0

DCC3

0

DCC2

0

DCC1

0

CFGR5

Expected:

DCTO[3]

0

DCTO[2]

0

DCTO[1]

0

DCTO[0]

0

DCC12

0

DCC11

0

DCC10

0

DCC9

0

  • Disconnect the cells from the AFE or turn off the power supply. Turn off the BMS carrier power supply.

Cell Measurements

  • Connect the isoSPI port A to a BMS carrier board.

  • Power the BMS carrier board with 12 V.

  • Connect the AFE to 12 cells in series.

  • Send two ADOW commands in filtered mode with PUP set to 1 (0x03_E8) from the BMS carrier to the AFE over SPI/isoSPI.

  • Wait for about 500 ms.

  • Send the RDCVA, RDCVB, RDCVC, and RDCVD commands (0x00_04, 0x00_06, 0x00_08, and 0x00_0A). The LTC6811 will send back 24 bytes, where each group of two bytes is the cell voltage, starting at cell 1 and increasing to cell 12. Store the result in an array, CellPU(n). The voltage of each cell is VCell(n) = CellPU(n) * 100 uV.

  • Send two ADOW commands in filtered mode with PUP set to 0 (0x03_C8) from the BMS carrier to the AFE over SPI/isoSPI.

  • Wait for about 500 ms.

  • Send the RDCVA, RDCVB, RDCVC, and RDCVD commands (0x00_04, 0x00_06, 0x00_08, and 0x00_0A). The LTC6811 will send back 24 bytes, where each group of two bytes is the cell voltage, starting at cell 1 and increasing to cell 12. Store the result in an array, CellPD(n). The voltage of each cell is VCell(n) = CellPD(n) * 100 uV.

  • Calculate CellΔ(n) = CellPU(n) - CellPD(n). If CellΔ(n+1) < -400mV for n<=11, then C(n) is open. If CellPD(12)=0, then C(12) is open.

  • Disconnect the cells from the AFE. Turn off the BMS carrier power supply.

Cell Balancing

  • Connect the isoSPI port A to a BMS carrier board.

  • Power the BMS carrier board with 12 V.

  • Connect the AFE to 12 cells in series.

  • Measure the cells.

  • Send the RDCVA, RDCVB, RDCVC, and RDCVD commands (0x00_04, 0x00_06, 0x00_08, and 0x00_0A). The LTC6811 will send back 4 groups of 6 bytes after each command, where each group of two bytes is the cell voltage, starting at cell 1 and increasing to cell 12. Store the result in an array, Cellinitial(n). The voltage of each cell is VCell(n) = Cellinitial(n) * 100 uV.

  • Send the WRSCTRL command (all low except 1 and 7).

  • Send the STSCTRL command.

  • Measure C1-C0, and C7-C6.

  • Send the CLRSCTRL command.

  • Repeat the last 4 steps 5 more times for each cell pair.

  • Send the RDCVA, RDCVB, RDCVC, and RDCVD commands (0x00_04, 0x00_06, 0x00_08, and 0x00_0A). The LTC6811 will send back 24 bytes, where each group of two bytes is the cell voltage, starting at cell 1 and increasing to cell 12. Store the result in an array, Cellfinal(n). The voltage of each cell is VCell(n) = Cellfinal(n) * 100 uV.

  • Compare the initial voltages to the final voltages. Each cell voltage should have decreased by the same percentage of the cell voltage (the exact amount is dependent on the discharge resistors and MOSFETs). If any cell voltage did not decrease, then that cell’s balancing is not working.

  • No labels