SPI(Serial Peripheral Interface)는 주로 칩과 칩, 소자 간과 같이 근거리에서 많이 사용된다
클럭 제한이 없다
플래쉬 메모리에 데이터를 기록하는 용도로도 사용한다
일단 A와 B가 통신하려면 선이 있어야 한다.
통신하는 방법에는 반이중, 전이중이 있다
반이중 통신 : 선을 한개 사용하여 데이터를 전송하는 시간을 분리하여 전송하는 방법
전이중 통신 : 선을 두개 사용하여 공간적으로 분리하여 전송하는 방법
그리고 데이터를 구분할 수 있는 기준점(구분점)이 필요하다
Time base : BPS 사용 -> RS485, RS232 이런데서 많이 사용
CLK 사용: 상승클럭, 하강클럭을 기준으로 -> SPI 통신, I2C 통신에서 많이 사용
마스터가 먼저 말하는 권한을 갖고 슬레이브는 먼저 말할수 없고 응답만 가능하다
Chip Select 선을 사용해서(평소 high 였다가 low 가 될때) 마스터가 얘기한 것을 들을 수 있게된다.
기본적으로 SPI는 전이중방식이 기본이다(반이중방식도 사용함)
따라서 선이 반이중방식이면 최소 2개, 전이중 방식이면 최소 3개가 필요하다
CS선은 있을 수도 있고 없을 수도 있다
I2C 통신은 데이터 통신 선, 클럭 선 하나씩 총 2개의 선을 사용한다
근데 1대다가 가능하다
주소라는 체계를 넣어서 소프트웨어를 이용하여 코드로 셀렉할 수 있다(CS 선이 필요없음)

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

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엣지
(데이터시트에 따라 결정)

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