AVR

【라즈베리파이4】 SPI 통신 실습하기

작성자 임베디드코리아 작성일25-12-14 22:46 조회3회 댓글0건
■ SPI(Serial Peripheral Interface)
  CPU같dl 중심이 되는 것을 마스터(master)로 하고, 여러 주변 장치를 슬레이브(Slave)로하여 대화할 때 사용한다.
  ▶ 4개의 선을 주로 사용한다. CS, SCLK, MOSI, MISO
      - CS는 슬레이브를 선택하는 신호이다.
      - SPI는 여러 슬레이브와 통신이 가능하므로 각 슬레이브마다
        CS 핀을 다르게 연결하여 충돌을 방지한다. 하나를 선택할 때, Low로 내린다.

-----< 실험 >--------------------------------------------------------------------------------------
- 라즈베리파이에서 mosi와 miso를 둘 다 연결하여 보내자마자 받는 실습을 진행한다.
- mosi와 miso의 번호는 9번 10번이다.

$ vi SPI_test.py
import spidev
import time

spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 100000

def BytesToHex(Bytes):
    return ''.join(["0x%02X " % x for x in Bytes]).strip()

try:
    while True:
        resp = spi.xfer2([0x10, 0x2F])
        print(BytesToHex(resp))
        time.sleep(1)
except KeyboardInterrupt:
    spi.close()