SPI 통신

머피의 법칙·2025년 1월 17일

STM32

목록 보기
2/3

SPI(Serial Peripheral interface) 통신 이란?

근거리 통신에서 주로 사용된다. 주로 보드 내에서 칩과 칩 사이의 통신에서 사용된다.
ex) MCU가 플래시 메모리에 데이터를 SPI 통신으로 기록한다.

클럭의 제한이 없기 때문에 이론상 속도를 무제한으로 올릴 수 있다.

통신 방법

데이터와 클럭을 함께 보내서 통신한다.

기본적으로 전이중 방식을 지원한다.

그림과 같은 방식으로 장치들간의 통신을 설계했다고 가정한다.

  • data1에서는 A가 B,C,D에게 전송을 한다.
  • data2에서는 B,C,D가 A에게 전송을 한다.
  • clk에서는 데이터 구분을 위한 클럭이 전송된다.

이 경우, 다음과 같은 문제점이 존재한다.

  1. 데이터의 송신자가 누구인지 알 수 없다.
  2. 데이터의 수진자가 누구인지 알 수 없다.

Master & Slave

1번 문제를 해결하기 위해서 도입된 개념이다.

모듈간에 Master와 Slave 관계를 설정해서 Master가 먼저 전송을하고 Slave가 후에 전송 하도록 순서를 결정한다. 즉, 먼저 전송된 데이터는 Master 모듈에서 송신됐음을 알 수 있다.

위 그림에서는 A가 Master 역할로 data1 을 통해서 다른 모듈에게 먼저 데이터를 전송할 수 있는 상황이다.

Chip Select

2번 문제를 해결하기 위한 데이터를 전송한다.

cs에 흐르는 전압을 제어해서 어느 모듈에게 데이터를 전송할지 표시한다.

만약, B,C에게 데이터를 전송하고 싶다면, B와 C의 cs 전압을 LOW로 전송한다.

SPI 통신 칩 구조

  • data IN MISO(Master In Slave Out)를 사용한다.
  • data OUT MOSI(Master Out Slave In)를 사용한다.
  • clock SCK를 사용한다.
  • chip select NSS 기능으로 조작하는 경우, 하드웨어가 자동으로 CS 신호를 LOW로 낮춰준다. 따라서, CS로 연결된 모든 칩에게 브로드 캐스팅 된다는 부작용이 존재한다. GPIO_Output을 사용해서 조작하는게 바람직하다.

0개의 댓글