[STM32] 시리얼 통신_SPI란?

이채윤·2022년 4월 15일
2

임베디드

목록 보기
16/70

[SPI란?]

  • 동기식(Synchronous) 시리얼 통신 방식
  • 데이터 수신의 타이밍을 위하여 Clock 라인을 사용

[SPI와 I2C의 차이]

  • I2C는 무전기와 비슷한 개념이라면, SPI는 전화와 비슷한 개념이다.
  • 즉, SPI는 전이중 통신 (양방향 통신이 가능한 것)이고 전화(내가 말하면서 들을 수 있다는 점)와 비슷하다.

[SPI 인터페이스]

1) SCLK

  • Serial Clock(직렬 클럭)으로 마스터에서 출력하여 슬레이브로 입력해준다. SPI 통신의 주기를 SCLK로 설정할 수 있다. 동기화 신호이며 통신 Clock이라 생각하면 된다.

2) MOSI

  • Master Output Slave Input, 말 그대로 마스터 출력, 슬레이브 입력이다.
  • 실제 마스터에서 슬레이브로 데이터를 먹일 때 MOSI를 통해 데이터를 준다.

3) MISO

  • Master Input Slave Output, 슬레이브 출력, 마스터 입력이다.
  • 보통 MOSI를 통해 슬레이브에 명령 DATA가 들어오면 MISO를 통해 슬레이브에서 마스터로 응답 DATA가 출력된다.

4) CS

  • Chip Select, 보통 SS 핀 즉 Slave Select로 슬레이브를 선택할 때 사용된다.

<인터페이스란?>

  • 전기 신호의 변환으로 중앙 처리 장치와 그 주변 장치를 서로 잇는 부분. 또는, 그 접속 장치.
  • 키보드나 디스플레이 등처럼 사람과 컴퓨터를 연결하는 장치.

[SPI 1 : N 통신]

  • SCLK로 동기식 클럭을 만들어주며 CS를 이용하여 Slave를 선택하여 통신할 수 있다.
  • SPI는 한 개의 Slave Device와 통신만 가능하며 CS를 LOW로 주면 해당 장치와 통신할 수 있다.
  • 한마로 통신하지 않는 Slave는 CS에 High를 주고 통신하는 Slave에만 CS에 LOW를 주면 된다.

[SPI 설정]

  • 타이밍도를 보면 CS가 HIGH일 때는 동작을 하지 않도록 동기 클락도 생성이 되지 않고 CS가 LOW가 되면 동기 클락이 생성되며 데이터를 주고받는다.
  • 즉, 마스터에서 CS에 LOW를 주어 제어 Enable을 시킨 뒤, clock을 생성하여 동기를 맞춰주고 DATA를 주고받는 통신방식이다.
  • SPI 통신방식을 사용하는 CHIP은 모두 이러한 방식으로 사용한다. 반드시 위의 나와있는 4핀이 필요하며 마스터에서는 출력 핀으로 CS, SCLK, MOSI 핀 입력으로는 MISO핀이 할당되어있다.

0개의 댓글