BMS를 만들어야 했다. 24셀 LiFePO4 배터리팩용.

셀 전압 측정, 밸런싱, 과충전/과방전 보호. 이걸 직접 다 구현하려면 OP앰프 24개에 먹스에 ADC에… 보드가 도마만 해진다.

검색해보니까 배터리 모니터링 전용 IC가 있더라. TI의 BQ 시리즈, ADI의 AD7280A/LTC68xx 시리즈.

회사에 AD7280A 평가보드가 굴러다니길래 이걸로 시작했다.

AD7280A 블록 다이어그램


AD7280A 스펙

  • 6셀 리튬이온 배터리 모니터링
  • 12비트 ADC, 정밀도 ±1.5mV
  • 셀당 내장 밸런싱 스위치
  • SPI 통신
  • 데이지체인으로 최대 8개 연결 (48셀)
  • 과전압/저전압 알람

6셀씩 모니터링하니까 24셀이면 4개 필요하다.

데이지체인이라는 게 있어서 IC끼리 줄줄이 연결하면 MCU는 맨 앞에 하나만 연결하면 된다. SPI 선 4개로 24셀 다 읽을 수 있다.

데이지체인 구성


왜 AD7280A?

솔직히 선택지가 많진 않았다.

IC셀 수장점단점
AD7280A6저렴, 자료 많음단종 예정
LTC681112고정밀, isoSPI비쌈
BQ7694015원칩 솔루션I2C만

AD7280A가 개당 8달러 정도로 제일 쌌다. 그리고 평가보드가 이미 있었다.

나중에 알았는데 NRND(단종 예정) 상태였다. 이건 번외편에서 다룬다.


개발 환경

  • MCU: STM32F103VET6
  • IDE: STM32CubeIDE
  • 디버거: ST-Link V2
  • 로직 분석기: Saleae Logic (짝퉁)

STM32 고른 이유는 별거 없고, 익숙해서. SPI 2개 있고 CAN도 있어서 BMS 만들기 딱 좋다.


이 시리즈에서 다룰 것

  1. SPI 통신 삽질
  2. 레지스터 읽기/쓰기
  3. CRC 계산 (여기서 3일 날림)
  4. 셀 전압 측정
  5. 밸런싱
  6. 알람/보호
  7. 실제 배터리 연결

데이터시트가 60페이지인데, 중요한 건 10페이지 정도다. 근데 그 10페이지 찾는 게 일이다.


다음 글에서는 데이지체인 구조랑 주소 체계 얘기.

#2 - 데이지체인