Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Debuggen des SPI-Kommunikationsprotokolls mit Analog Discovery 2

FR4TSOAIKRNIQLQ.LARGE_%281%29__fd4dc72524db2cbf1d56b7bff11e8a90c7bc8975.jpg

SPI-Kommunikation

Die Serielle Peripherieschnittstelle (Serial Peripheral Interface, SPI) ist eine Spezifikation für eine beidseitig synchrone serielle Kommunikationsschnittstelle, die hauptsächlich in eingebetteten Systemen für die Kommunikation über kurze Entfernungen verwendet wird. Sie wird häufig für die Kommunikation mit Flash-Speichern, Sensoren, Echtzeituhren (RTCs), Analog-Digital-Wandlern und anderen Geräten verwendet. Eine SPI kann auch mehrere Slave-Geräte unterstützen, jedoch muss dazu ein zusätzliches Slave-Select-Signal (SS-Signal) hinzugefügt werden. Wie eine SPI funktioniert, können Sie im Lernmaterial von Digilent nachlesen.

Das SPI-Kommunikationsprotokoll nutzt vier Kommunikationspins und zusätzlich einen Strom- und einen Erdungspin. Grundsätzlich gibt es ein „Master“-Gerät und ein „Slave“-Gerät, die miteinander kommunizieren. Der „Master“ wählt mit seiner „Slave Select (SS)“-Kommunikationsleitung einen seiner „Slaves“ aus, um dem „Slave“ anzuzeigen, dass er mit ihm kommunizieren wird. Der „Master“ und der „Slave“ kommunizieren dann gleichzeitig über die Datenleitungen MOSI (Master Out Slave In) und MISO (Master In Slave Out) miteinander. Sowohl der Master als auch der Slave senden sich, bevor die eigentlichen Daten verschickt werden, gegenseitig ein einzelnes Bit zu, um sicherzustellen, dass das SPI funktioniert. Die Daten können entweder vom höchstwertigen Bit (MSB) oder vom niedrigstwertigen Bit (LSB) gesendet werden.

Um die Kommunikation einzuleiten, muss das Master-Gerät die Chip-Select-Leitung (CS) auf einen niedrigen Spannungszustand bringen und diesen niedrigen Spannungszustand während der gesamten Kommunikationssession beibehalten. Sowohl das Master-Gerät als auch die Slave-Geräte senden sich gegenseitig ein Bit zu, damit die SPI-Kommunikation funktioniert. Daten können danach dann gleichzeitig Bit für Bit zwischen den beiden Geräten übertragen werden. Die Mikrocontroller-Plattform steuert das Timing der Datenübertragung.

Normalerweise überträgt das SPI-Protokoll ein Datenbit immer bei der fallenden Flanke des seriellen Taktsignals (SCK). Die Daten müssen vor der fallenden Flanke des seriellen Taktsignals (SCK) auf die Datenleitung gelegt werden. Außerdem muss die serielle Taktleitung (SCK) auf einem hohen Spannungszustand sein, bevor sie auf einen niedrigen Spannungszustand „fällt“ (d.h. vor der fallenden Flanke). Dies kann mit einem Mikrocontroller umgesetzt werden, indem der Spannungszustand der Datenleitung geändert wird, bevor das Taktsignal auf einen niedrigen Spannungszustand gebracht wird.

Der Zyklus der Bitwertänderung (Spannung) auf der Datenleitung und der Puls der seriellen Taktleitung (SCK) werden so lange fortgesetzt, bis alle erforderlichen Bits übertragen sind. Die Chip-Select (CS)-Leitung wird anschließend in einen Hochspannungszustand versetzt. Dadurch weiß der Mikrocontroller dann, dass die Kommunikation abgeschlossen ist, und er bereitet sich auf eine weitere Session vor.

Ein Zeitverlaufsdiagramm der SPI-Kommunikation finden Sie unten.

spi_signals_3bfdcbb5b2f86ad265e29e4ed428f3dd86f21b55.png

SPI-Zeitverlaufsdiagramm aus den Lernmaterialien von Digilent

SPI-Kommunikation debuggen

Analog Discovery 2 (134-6480) von Digilent ist ein Multifunktionsgerät, mit dem Sie Mixed-Signal-Schaltungen aller Art messen, sichtbar machen, generieren, aufzeichnen und steuern können. Es gibt 16 Kanäle für digitale Ein- oder Ausgänge. Sie können über Digilent Waveforms, eine Softwareanwendung für mehrere Geräte, auf den Logikanalysator zugreifen, um die SPI-Kommunikation zu debuggen.

Sie finden da ein Beispielprojekt, das Ihnen zeigt, wie Sie das machen. In dem Projekt nutzen Sie den Digilent Pmod MIC3 (Master) und Digilent Basys 3 (Slave), um die SPI-Kommunikation herzustellen. Nachdem die Hardware korrekt eingerichtet wurde, können Sie die SPI-Kommunikation mit Analog Discovery 2 debuggen.

Set_up2_27787002cc8d222b0dab05f9cce94334004dccb5.jpg

Zum Beispiel können Sie im Logikanalysator gleichzeitig einzelne Signale wie CS, SCK, MOSI, MISO, sowie SCK- und SPI-Protokoll erstellen, um jedes einzelne Signal in der Kommunikation gesondert zu betrachten.

SPI_setup_83d70011fcf3afef48948352396a35a71cedfd90.jpg

SPI-Protokoll hinzufügen

Digital_aef8890b234d85e0229a2636ed396044749efa90.jpg

Digitales Signal hinzufügen

Sie können den Logikanalysator in Waveforms nutzen, um die SPI-Kommunikation sichtbar zu machen.

Logic_74892d3d824eefac2f727e7547b87e6cd4f91f3a.jpg

Zeitverlaufsdiagramm im Logikanalysator

Die Schritt-für-Schritt-Anleitung für dieses Projekt ist auf der Projektseite von Digilent verfügbar.

awong hat noch keine Biografie verfasst...