Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
de:netzer:spi-master [2012/02/17 08:19] – Escape-Zeichen ergänzt. svesch | de:netzer:spi-master [2025/06/11 20:42] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 56: | Line 56: | ||
Sobald eine [[de: | Sobald eine [[de: | ||
- | Das SPI Master Modul generiert für jedes Byte 8 Takte an SPI_CLK und schiebt das Datum an SPI_MO hinaus. Zeitgleich liefert der Slave im Takt des Masters Daten an SPI_MI (siehe Grafik oben). Das so empfangene Byte wird automatisch an den TCP Client gesendet. | + | Das SPI Master Modul generiert für jedes Byte 8 Takte an SPI_CLK und schiebt das Datum an SPI_MO hinaus. Zeitgleich liefert der Slave im Takt des Masters Daten an SPI_MI (siehe Grafik oben). Das so empfangene Byte wird automatisch an den TCP Client gesendet. In diese Richtung wird kein Escaping verwendet. |
Line 66: | Line 66: | ||
SPI_CS dient der Selektierung und Synchronisierung des Slaves - sobald Daten übertragen werden, setzt der Netzer diese Leitung automatisch auf 0. Das Zurücksetzen auf 1 erfolgt durch eine spezielle Escapesequenz (0x5C 0x00). | SPI_CS dient der Selektierung und Synchronisierung des Slaves - sobald Daten übertragen werden, setzt der Netzer diese Leitung automatisch auf 0. Das Zurücksetzen auf 1 erfolgt durch eine spezielle Escapesequenz (0x5C 0x00). | ||
+ | |||
+ | Alle anderen GPIO-Pins des Netzers sind wie gewohnt frei verwendbar und z.B. über das Webinterface bzw. den [[gpioserver|GPIO-Server]] steuerbar. | ||
Unterstützte Escape-Sequenzen in der Basisversion: | Unterstützte Escape-Sequenzen in der Basisversion: | ||
Line 74: | Line 76: | ||
+ | ===== Firmware Proversion ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Im Unterschied zur Basisversion nutzt die Proversion keine dedizierte ChipSelect-Leitung sondern bietet über spezielle Escapesequenzen Zugriff auf alle Netzer-Pins, | ||
+ | |||
+ | Alle GPIO-Pins (bis auf SPI_CLK, SPI_MO und SPI_MI) des Netzers sind auch frei verwendbar und z.B. über das Webinterface bzw. den [[gpioserver|GPIO-Server]] steuerbar. | ||
+ | |||
+ | Weiterhin kann der SPI-Mode dynamisch umkonfiguriert werden. Ferner können Wartezeiten eingefügt werden, um z.B. bestimmte Setup/ | ||
+ | |||
+ | Um den Netzer nicht zu lang zu blockieren, werden alle empfangenen Escape-Sequenzen sequentiell bearbeitet. D.h. zwischen der Verarbeitung von Escape-Sequenzen entstehen mehr oder weniger große Pausen, was zu leichten Jitter von Kontrollsequenzen führen kann. Um feste Zeiten zwischen Signalwechseln zu erreichen, sollten dafür die Escapesequenzen für Wartezeiten verwendet werden. | ||
+ | |||
+ | Unterstützte Escape-Sequenzen in der Proversion: | ||
+ | |||
+ | ^ Sequenz (in ASCII) ^ Sequenz (in hex) ^ Bedeutung ^ Ab Firmware-Version ^ | ||
+ | | 0 | 0x30 | SPI-Mode 0 wird aktiviert. | 1.5 | | ||
+ | | 1 | 0x31 | SPI-Mode 1 wird aktiviert. | 1.5 | | ||
+ | | 2 | 0x32 | SPI-Mode 2 wird aktiviert. | 1.5 | | ||
+ | | 3 | 0x33 | SPI-Mode 3 wird aktiviert. | 1.5 | | ||
+ | | a | 0x61 | Setze Pin IO0 auf 0. | 1.4 | | ||
+ | | b | 0x62 | Setze Pin IO1 auf 0. | 1.4 | | ||
+ | | c | 0x63 | Setze Pin IO2 auf 0. | 1.4 | | ||
+ | | d | 0x64 | Setze Pin IO3 auf 0. | 1.4 | | ||
+ | | e | 0x65 | Setze Pin IO4 auf 0. | 1.4 | | ||
+ | | f | 0x66 | Setze Pin IO5 auf 0. | 1.4 | | ||
+ | | g | 0x67 | Setze Pin TX auf 0. | 1.4 | | ||
+ | | h | 0x68 | Setze Pin RX auf 0. | 1.4 | | ||
+ | | i | 0x69 | Setze Pin SPI_CS auf 0. | 1.4 | | ||
+ | | j | 0x6A | Setze Pin SPI_INT auf 0. | 1.4 | | ||
+ | | A | 0x41 | Setze Pin IO0 auf 1. | 1.4 | | ||
+ | | B | 0x42 | Setze Pin IO1 auf 1. | 1.4 | | ||
+ | | C | 0x43 | Setze Pin IO2 auf 1. | 1.4 | | ||
+ | | D | 0x44 | Setze Pin IO3 auf 1. | 1.4 | | ||
+ | | E | 0x45 | Setze Pin IO4 auf 1. | 1.4 | | ||
+ | | F | 0x46 | Setze Pin IO5 auf 1. | 1.4 | | ||
+ | | G | 0x47 | Setze Pin TX auf 1. | 1.4 | | ||
+ | | H | 0x48 | Setze Pin RX auf 1. | 1.4 | | ||
+ | | I | 0x49 | Setze Pin SPI_CS auf 1. | 1.4 | | ||
+ | | J | 0x4A | Setze Pin SPI_INT auf 1. | 1.4 | | ||
+ | | t | 0x74 | Warte 100\ µs bis zur Verarbeitung des nächsten Zeichens. | 1.5 | | ||
+ | | T | 0x54 | Warte 1\ ms bis zur Verarbeitung des nächsten Zeichens. | 1.5 | | ||
+ | | Alle anderen || Zeichen wird transparent durchgereicht. | 1.5 | | ||