Processor

【라즈베리파이】 wiringPi Python : SPI 테스트

작성자 임베디드코리아 작성일26-02-20 00:49 조회103회 댓글0건
■ SPI(Serial Peripheral Interface)
    CPU같은 주인(master)이 여러 주변 장치와 대화할 때 사용한다.

    ▷ 4개의 선을 주로 사용한다. CS, SCLK, MOSI, MISO
   ▷ CS는 슬레이브를 선택하는 신호이다.
   ▷ SPI는 여러 슬레이브와 통신이 가능하므로 각 슬레이브마다 CS 핀을 다르게 연결하여 충돌을 방지한다.
   ▷ 하나를 선택할 때, Low로 내린다.

■ 통신 순서
(1)  master에서 클럭 신호를 보낸다.
(2) 선택할 슬레이브의 CS에 LOW 신호를 보내 활상화한다.
(3) 클럭 신호에 맞추어 MOSI를 전송한다 .
(4) MISO로 데이터 반환.

--->>>  예제  :  SPI_test.py    mosi와 miso의 번호는 9번 10번 <<<------------------
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()