[임베디드 19강] SPI 통신

강지원·2024년 7월 25일

STM32 강의

목록 보기
19/33

SPI 통신

SPI(Serial Peripheral Interface)는 주로 칩과 칩, 소자 간과 같이 근거리에서 많이 사용된다
클럭 제한이 없다
플래쉬 메모리에 데이터를 기록하는 용도로도 사용한다

통신 기본구성

일단 A와 B가 통신하려면 선이 있어야 한다.

통신하는 방법에는 반이중, 전이중이 있다

  • 반이중 통신 : 선을 한개 사용하여 데이터를 전송하는 시간을 분리하여 전송하는 방법

  • 전이중 통신 : 선을 두개 사용하여 공간적으로 분리하여 전송하는 방법

그리고 데이터를 구분할 수 있는 기준점(구분점)이 필요하다

  • Time base : BPS 사용 -> RS485, RS232 이런데서 많이 사용

  • CLK 사용: 상승클럭, 하강클럭을 기준으로 -> SPI 통신, I2C 통신에서 많이 사용

SPI 통신 - 1 : 다수 통신방법

1. 마스터 - 슬레이브 관계를 정한다

마스터가 먼저 말하는 권한을 갖고 슬레이브는 먼저 말할수 없고 응답만 가능하다

2. CS 선 사용

Chip Select 선을 사용해서(평소 high 였다가 low 가 될때) 마스터가 얘기한 것을 들을 수 있게된다.

SPI 통신 기본 구성

기본적으로 SPI는 전이중방식이 기본이다(반이중방식도 사용함)
따라서 선이 반이중방식이면 최소 2개, 전이중 방식이면 최소 3개가 필요하다

  • 데이터를 주고받는 선 : 1(반이중)~2(전이중)개
  • 클럭 선 : 1개

CS선은 있을 수도 있고 없을 수도 있다

I2C 통신과 차이점

I2C 통신은 데이터 통신 선, 클럭 선 하나씩 총 2개의 선을 사용한다
근데 1대다가 가능하다
주소라는 체계를 넣어서 소프트웨어를 이용하여 코드로 셀렉할 수 있다(CS 선이 필요없음)

응용편

  • MOSI : Master Out Slave In
  • MISO : Master In Slave Out
  • SCK : 클럭
  • NSS : CS 제어

mode

  • Full Duplex Master : 전이중(최소 3개 선)
  • Full Duplex Slave
  • Half Duplex Master : 반이중(최소 2개 선)
  • Half Duplex Slave
  • Recieve Only Master : 수신 전용(선 2개)
  • Recieve Only Slave
  • Transmit Only Master : 송신 전용(선 2개)
  • Transmit Only Slave

보통 마스터를 선택하는데
슬레이브 역할일 때는 슬레이브를 선택한다

  • Hardware NSS Signal : CS선을어떻게 할건지, 결국 1대 1통신에서만 사용가능해서 잘 안씀(Disable)

옵션

  • frame format : motorora

  • Data Size : 한번에 몇비트씩 보내냐
    (데이터시트에 따라 결정)

  • First Bit : MSB(최상위 비트), LSB(최하위비트 먼저보냄)
    LSB : b0, b1, b2, b3, b4, b5, b6, b7 순

  • STB : CS

  • 프리스칼라 : 클럭속도(커질수록 속도줄어듦)

  • Clock Polarity : 클럭의 평상시 기준(high 상태 or Low 상태)

  • Clock Phase : 어느시점에서 데이터를 어떻게보느냐 1엣지, 2엣지
    (데이터시트에 따라 결정)

  • CRC Calculation : SPI 통신과는 관련 없음
  • NSS Signal Type

칩을 하나만 사용하면 CS를 항상 Low 로 가게끔 사용할 수도 있다

0개의 댓글