본문 바로가기

공부/Functions

SPI 통신

SPI (Serial Peripheral Interface)

동기식 직렬 통신(클럭 라인 사용)

4개의 핀 사용 :

SCK - 클럭 라인(마스터가 공급)

MISO - Master In / Slave Out

MOSI - Master Out / Slave In

SS - Slave Select (Slave마다 하나씩 필요, Master가 데이터를 받을 Slave를 선택)

       MISO, MOSI, SS 모두 Idle상태가 HIGH이므로 SS에 Low 가 들어올때 해당        

       Slave가 데이터를 받을수있는상태가 된다

1:n(마스터1:슬레이브 다수)통신 가능, 마스터입장에서 송,수신선이 분리되어있으므로 데이터를 보내면서 동시에 받을수 있다(Full-Duplex)

1:1통신의 경우에는 슬레이브측의 SS를 Pull-down하여 항상 수신가능하게 하드웨어적으로 설정 가능(통신선 1개를 줄일수있음)

마스터에서 슬레이브로 데이터를 보낼때 시프트 레지스터의 MSB부터 한 비트씩 보내고 슬레이브로부터 MSB부터 한 비트씩 받는 방식으로 통신

위 그림에선 8비트 시프트 레지스터이므로 8클럭 이후에 마스터와 슬레이브의 시프트 레지스터에 저장된 값이 서로 바뀌어있을것

마스터에서 송신중 슬레이브로부터 수신되는 데이터가 필요없는경우 무시하면 된다

 

SPI 통신 방식으로 데이터를 송/수신 하는 과정에서 각 핀의 파형

마스터/슬레이브 모두 MSB부터 한 비트씩 송신하는것을 확인

 

SPO(Signal Polarity)와 SPH(Signal Phase)를 설정하여 SCK가 LOW일때, HIGH일때 의미있는 신호를 출력할지와  SCK의 상승엣지, 하강엣지에서 신호를 수신(Capture)할지 설정 가능

 

I2C와 SPI 통신의 장단점 비교

 

I2C와 SPI 통신의 장단점 비교

 

참고 자료 : garfieldfactory.tistory.com/entry/AVR%EC%97%90%EC%84%9C%EC%9D%98-SPI-%ED%86%B5%EC%8B%A0

'공부 > Functions' 카테고리의 다른 글

I2C 통신  (0) 2020.01.08