24셀이면 AD7280A가 4개 필요하다. 각각 SPI로 연결하면 CS 핀이 4개 필요하고 배선도 복잡해진다.

데이지체인으로 연결하면 MCU는 맨 앞 IC하고만 통신하면 된다. 나머지는 줄줄이 연결.


연결 구조

MCU                 
 │                  
 ├─SCLK──┬──────┬──────┬──────┐
 │       │      │      │      │
 ├─MOSI──┤      │      │      │
 │       ▼      │      │      │
 │     ┌────┐   │      │      │
 │     │Dev0│───┘      │      │
 │     │6셀 │──DOUT    │      │
 │     └────┘   │      │      │
 │              ▼      │      │
 │            ┌────┐   │      │
 │            │Dev1│───┘      │
 │            │6셀 │──DOUT    │
 │            └────┘   │      │
 │                     ▼      │
 │                   ┌────┐   │
 │                   │Dev2│───┘
 │                   │6셀 │──DOUT
 │                   └────┘   │
 │                            ▼
 │                          ┌────┐
 └─MISO◄────────────────────│Dev3│
                            │6셀 │
                            └────┘

Dev0이 MCU랑 직접 연결. Dev0 출력이 Dev1 입력으로. 이런 식으로 쭉 연결.

맨 마지막 Dev3의 출력이 MCU의 MISO로 돌아온다.


주소 체계

각 디바이스는 주소가 있다. 0부터 시작.

  • Dev0: 주소 0 (Cell 0~5)
  • Dev1: 주소 1 (Cell 6~11)
  • Dev2: 주소 2 (Cell 12~17)
  • Dev3: 주소 3 (Cell 18~23)

명령 보낼 때 주소를 지정하면 해당 디바이스만 응답한다. 주소 0x1F로 보내면 전체 디바이스가 응답(브로드캐스트).


주소 할당

처음엔 모든 디바이스 주소가 0이다. 주소 할당 절차가 필요하다.

  1. CONTROL_LB 레지스터의 ADDR_RD_EN 비트 설정
  2. READ 명령 보내면 각 디바이스가 순차적으로 주소 할당

이게 좀 헷갈렸다. 데이터시트 읽어도 잘 이해가 안 됐는데, 직접 해보니까 알겠더라.

// 주소 할당 시퀀스
AD7280A_Write(0x1F, CTRL_LB, ADDR_RD_EN);  // 전체 브로드캐스트
AD7280A_Read(0x1F, CTRL_LB);  // 읽기 명령 → 주소 자동 할당

이렇게 하면 물리적으로 MCU에서 가까운 순서대로 0, 1, 2, 3 할당된다.


전원 시퀀싱

이것 때문에 이틀 날렸다.

4개 디바이스 중 2개만 인식되는 문제가 있었다. 배선 확인하고 납땜 다시 하고 별짓 다 했는데 안 됐다.

데이터시트 다시 읽다가 발견:

“Apply power to the lowest potential device first.”

아래쪽 디바이스(높은 셀 번호)부터 전원이 들어가야 한다. 동시에 넣으면 안 된다.

전원 시퀀서 추가하거나, 소프트웨어로 순차 활성화해야 한다. 나는 소프트웨어로 처리했다.


실제 연결

셀 연결

셀 탭 연결이 은근 까다롭다. 순서 꼬이면 음수 전압 읽히거나 IC 죽는다.

Cell 0이 가장 낮은 전위, Cell 5가 가장 높은 전위. 이거 반대로 연결하면 안 된다.


정리

  • 데이지체인: IC끼리 줄줄이 연결, MCU는 맨 앞만 연결
  • 주소: 03 (또는 07), 0x1F는 브로드캐스트
  • 주소 할당: ADDR_RD_EN 후 READ 명령
  • 전원: 아래쪽(높은 셀)부터 순차 인가

다음은 SPI 통신 설정. STM32 HAL로 AD7280A 통신하기.

#3 - SPI 통신 기초