Soweit ich weiß, funktioniert die SPI-Übertragung für einen SPI-Slave wie folgt:
- Der Master wählt einen Slave über den SS-Pin aus
- Master und Slave senden gleichzeitig Daten aneinander
- Der Master startet gleichzeitig die Uhr- und Datenübertragung (vor dem Schreibvorgang gibt es keine Uhr).
- Der Master stoppt die Übertragung jederzeit (durch Stoppen des Schreibvorgangs und der Taktgenerierung), selbst wenn der Slave mehr Daten zum Senden hat.
Gibt es eine SPI-Slave-Konfiguration, mit der der Slave Daten ohne Erlaubnis des Masters übertragen kann?
Ich denke nur laut nach. Angenommen, es gibt nur einen Slave und eine kontinuierliche Uhr wird vom Master usw. bereitgestellt.
Auch wenn die angenommene Aussage wahr ist, verlieren Master und Slave nicht die Bytesynchronisation (dh sie empfangen den Bitstrom), da es keine Start-Stopp-Bits für SPI gibt?
Ich stelle eine solche Frage, weil ich den folgenden Abschnitt aus diesem Dokument gelesen habe .
2.2 SPI-Beispiel
Das beigefügte SPI-Beispiel zeigt die Verwendung des USART im synchronen Modus. USART1 ist als Slave konfiguriert, während USART2 Master ist. Folgende Transaktionen finden statt:
- Datenübertragung vom Master zum Slave.
- Datenübertragung vom Slave zum Master.
- Datenübertragung von Master zu Slave und von Slave zu Master gleichzeitig.
Das Dokument enthält ein SPI-Beispiel, realisiert das Beispiel jedoch mit USART-Geräten. Und ich verstehe, dass ein USART-Slave eine Übertragung ohne Erlaubnis des Masters starten kann.
Ich konnte den Quellcode, auf den das Dokument verweist, nicht finden.