26. Lektion: SPI: Unterschied zwischen den VersionenAus Attraktor Wiki
Version vom 15. Dezember 2023, 13:52 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
Für die Taktfrequenz gibt es bei SPI keine Standards, wie bei I2C. Die maximal zulässigen Taktfrequenzen der SPI Ic's können dem Datenblatt entnommen werden. Sie können bis in den 2stelligen MHz Bereich gehen. 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 SensorAuf dem Demoboard befindet sich der Temperatur- und Luftdruck-Sensor BME280. Es handelt sich dabei um ein sehr komplexes IC. Wir können aber auf einige fertige Module zurückgreifen, so das die Handhabung für uns sehr einfach wird. Wichtig ist aber, dass die Dateien
im Ordner /lib des Pico vorhanden sind. Eine Instanz von bmp280 erzeugen |