Как заставить SpiDev работать на Raspberry PI

Я новичок как в Python, так и в Raspberry Pi, поэтому ожидал, что мне потребуется время на обучение, но думаю, что с этим мне понадобится помощь. Raspberry Pi потребуется взаимодействовать с внешним оборудованием через SPI. Я включил SPI на Raspberry Pi и установил все необходимые библиотеки.

Вот код.

      #test program for spi

import spidev
import RPi.GPIO as GPIO
from time import sleep

bus = 0                     #always 0, apparently
device = 0                  #we will use our own CS pin

mode = 3                    #see SPI modes
maxSpeed = 100000           #maximum clock speed in Hz
noCs = True                 #hardware CS
lsbFirst = False            #MSB first is default

##############################################################
CS_PIN = 24                 #CS pin number
WRITE_DATA = [0x4D, 0x4D, 0x4D]
##############################################################


if __name__ == '__main__':
    #config GPIO
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(CS_PIN, GPIO.OUT)
    GPIO.setwarnings(False)
    
    GPIO.output(CS_PIN, True)
    
    #config SPI
    spi = spidev.SpiDev()
    spi.open(bus, device)
    spi.mode = mode
    spi.no_cs = noCs
    spi.lsbfirst = lsbFirst
    spi.max_speed_hz = maxSpeed

    #run SPI
    GPIO.output(CS_PIN, False)
    spi.xfer(WRITE_DATA)
    GPIO.output(CS_PIN, True)
    sleep(0.1)
    #print data
    '''
    listLen = len(readbytes)
    print("Lenght: ", listLen)

    i = 0
    while i < listLen:
        print("Byte ", i, ": ", readbytes[i])
        i += 1
    '''
    GPIO.cleanup()

Написанная мной программа не работала, поэтому я написал простую тестовую программу (код выше). Мне удалось посмотреть сигналы SPI с помощью осциллографа. Я ничего не увидел на MOSI, поэтому проверил SCK, и он тоже не колеблется.

Чтобы наблюдать эти сигналы, я установил триггер по заднему фронту на уровне около 2 В. Оба сигнала высокие. Я вижу, как сигнал CS становится низким, а затем высоким, но он контролируется с помощью GPIO.

Код SpiDev должен быть простым в использовании, но с этим я не в курсе.

0 ответов

Другие вопросы по тегам