임베디드 용어 사전
시리얼 통신

CPHA

SPI에서 데이터를 어느 에지에 읽을지 정하는 설정. 0이면 첫 에지, 1이면 두 번째 에지다.

Clock Phase. 샘플링 시점을 정한다.

CPHA = 0   클럭의 첫 번째 에지에서 데이터를 읽는다
CPHA = 1   두 번째 에지에서 읽는다

왜 이게 중요한가

데이터선의 값은 에지 근처에서 바뀐다. 바뀌는 순간에 읽으면 값이 불안정하므로, 한쪽은 바꾸고 다른 쪽은 읽는 식으로 에지를 나눠 쓴다.

     ┌─┐ ┌─┐ ┌─┐        CPHA=0 → ↑에서 읽고 ↓에서 바꾼다
CLK ─┘ └─┘ └─┘ └─       CPHA=1 → ↓에서 읽고 ↑에서 바꾼다
MOSI ═╳═══╳═══╳═══

실무 팁

  • 슬레이브 데이터시트에 모드 번호가 명시돼 있는 경우가 많다. 그대로 쓴다
  • 값이 한 비트씩 밀리면 CPHA 를 반대로 바꿔 본다
  • 여러 슬레이브가 모드가 다르면 칩 선택을 바꿀 때마다 SPI 설정을 다시 해야 한다

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — SPI — 클럭을 같이 보내는 대신 선이 넷