Microprocessor/MCU Communication SPI 통신
  • 728x90
    반응형

     

     

    SPI 통신 흐름

    Mpu9250과 STM32F101 의 SPI 통신을 예로 들면 원하는 레지스터 값을 보낸 후, 더미데이터를 전송 받은 후 더미데이터를 다시 전송하고 원하는 값을 획득할 수 있다.

     

     

    통신의 시작과 종료

    SPI 통신 같은 경우는 1대 1뿐만 아니라 1대 n통신이 가능하기 때문에 어떤 Device 와 통신을 시작할지 알려주고 신호를 줘야한다. 그것이 바로 cs핀을 이용하는 건데 cs핀이 연결된 Device에 핀에 High (3.3V) 상태를 대기 상태로 만들어 놓고 이핀을 Low (0V) 상태로 만들어 주는 것으로 통신을 시작한다. 반대로 통신의 종료는 Low 상태의 핀을 High 상태로 만들어 주는 것으로 통신을 종료한다.

     

     

    레지스터 주소 값 전달

    우리가 원하는 데이터를 얻기 위해서는 우리가 원하는 데이터가 무엇인지 센서에게 알려줘야 한다. 그렇기에 우리가 원하는 데이터를 받아올 수 있고 이러한 데이터를 받기위해 mpu9250의 레지스터 맵을 참고해서 주소 값을 보내면 된다. SPI 주소 값은 MSB를 0으로 보내면 쓰기 용이고 MSB를 1로 보내면 읽기용이다.

    I2C 통신에 비해 SPI 통신은 고속에 해당되며 I2C는 속도에 민감하지 않은 센서류에 적용하고 고속통신이 필요한 센서는 SPI 통신을 적용한다.

    728x90
    반응형

    'Microprocessor > MCU Communication' 카테고리의 다른 글

    SPI 통신 기초  (0) 2019.01.14
    I2C start/stop  (0) 2016.09.20
    I2C 오픈 콜렉터(Open Collector) 오픈 드레인(Open Drain)  (1) 2016.09.20
    I2C 개념 정리  (0) 2016.09.20
상단으로