|
|
Zeile 51: |
Zeile 51: |
| Der Pico hat 2 Hardware SPI Schnittstellen (ID = 0, 1)<br> | | Der Pico hat 2 Hardware SPI Schnittstellen (ID = 0, 1)<br> |
| Die Klasse SPI unterstützt nur diese drei Leitungen: SCK, MOSI, MISO.<br> | | Die Klasse SPI unterstützt nur diese drei Leitungen: SCK, MOSI, MISO.<br> |
− | Die D/C und CE Sifnale mus der Programmierer selbst steuern.<br> | + | Die D/C und CS Signale muss der Programmierer selbst steuern.<br> |
− | | + | Die Hardware SPI's können auf verschiedene Pins gelegt werden (s. Pinout)<br> |
| | | |
| Die default Einstellungen für Hardware SPI findet man so: | | Die default Einstellungen für Hardware SPI findet man so: |
Zeile 62: |
Zeile 62: |
| SPI(0, baudrate=992063, polarity=0, phase=0, bits=8, sck=18, mosi=19, miso=16) | | 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(1, baudrate=992063, polarity=0, phase=0, bits=8, sck=10, mosi=11, miso=8) |
| + | </pre> |
| + | SPI Instanz mit default Pins erstellen: |
| + | <pre> |
| + | spi = SPI(0, baudrate=400000) |
| + | </pre> |
| + | Für weitere Parameter gibt es noch folgende Möglichkeiten: |
| + | <pre> |
| + | 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)) |
| </pre> | | </pre> |
| | | |
| ==== Software SPI==== | | ==== Software SPI==== |
Version vom 14. Dezember 2023, 18:47 Uhr
Das Serielle Periphere Interface
Dem Seriellen Peripheren Interface (SPI) liegt ein sehr einfaches Konzept zu Grunde. Dafür benötigt es mehr Leitungen als die I2C Schnittstelle:
- MOSI
- Master Out Slave In
- MISO
- Master In Slave Out
- SCK
- Clock
- D/C
- Data/Control
- CS / SS
- Chip Select
Das SPI Konzept
SPI arbeitet nach dem Master / Slave Konzept. Der Master kontrolliert die Kommuniktion.
Die Hardware besteht im Prinzip aus einen 8-Bit Schieberegister.
Quelle: https://www-user.tu-chemnitz.de/~heha/hsn/ATmegaX8.chm/19.htm
Die SPI Geräte können auf 2 Arten miteinander verbunden werden. Sie können parallel oder hintereinander (Dasy Chain) verbunden werden.
SPI Modes
SPI Modes
SPI Mode |
CPOL |
CPHA
|
0 |
0 |
0
|
1 |
0 |
1
|
2 |
1 |
0
|
3 |
1 |
1
|
SPI Objekt erzeugen
Wie üblich in Micropython muss zuerst eine Instanz der Klasse SPI erzeugt werden.
Hardware SPI
Der Pico hat 2 Hardware SPI Schnittstellen (ID = 0, 1)
Die Klasse SPI unterstützt nur diese drei Leitungen: SCK, MOSI, MISO.
Die D/C und CS Signale muss der Programmierer selbst steuern.
Die Hardware SPI's können auf verschiedene Pins gelegt werden (s. Pinout)
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:
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))
Software SPI