26. Lektion: SPI: Unterschied zwischen den VersionenAus Attraktor Wiki
Version vom 15. Dezember 2023, 11:26 UhrInhaltsverzeichnisDas Serielle Periphere InterfaceDem Seriellen Peripheren Interface (SPI) liegt ein sehr einfaches Konzept zu Grunde. Dafür benötigt es mehr Leitungen als die I2C Schnittstelle:
Das SPI KonzeptSPI arbeitet nach dem Master / Slave Konzept. Der Master kontrolliert die Kommuniktion.
SPI Modes
SPI Objekt erzeugenWie üblich in Micropython muss zuerst eine Instanz der Klasse SPI erzeugt werden. Hardware SPIDer Pico hat 2 Hardware SPI Schnittstellen (ID = 0, 1) Die default Einstellungen für Hardware SPI findet man so: from machine import SPI print(SPI(0)) print(SPI(1)) SPI(0, baudrate=992063, polarity=0, phase=0, bits=8, sck=18, mosi=19, miso=16) SPI(1, baudrate=992063, polarity=0, phase=0, bits=8, sck=10, mosi=11, miso=8) SPI Instanz mit default Pins erstellen: from machine import Pin, SPI spi = SPI(0, baudrate=400000) Für weitere Parameter gibt es noch folgende Möglichkeiten: spi = SPI(1, 10_000_000, sck=Pin(14), mosi=Pin(15), miso=Pin(12)) spi = SPI(0, baudrate=80_000_000, polarity=0, phase=0, bits=8, sck=Pin(6), mosi=Pin(7), miso=Pin(4)) Wenn MISO nicht benötgt wird kann miso=None gesetzt werden. Software SPIFür eine SoftSPI Instanz sind weitere Angaben erforderlich: from machine import Pin, SoftSPI spi = SoftSPI(baudrate=500000, polarity=0, phase=0, bits=8, firstbit=SoftSPI.MSB, sck=Pin(2), mosi=Pin(3), miso=Pin(4)) SoftSPI ist langsamer als die Hardwarevariante. SPI Methoden
Wie beim I2C Bus sind diese Methoden vor allem für das Schreiben von Treibern interessant. Ein Beispiel mit dem BMP280 Sensor |