Forum: Mikrocontroller und Digitale Elektronik SPI STM32 ungewollter Empfangsinterrupt


von Tom L. (munzi)


Lesenswert?

Hallo,


ich nutze einen STM32 mit SPI und DMA. Leider bekomme ich RX-Interrupts 
der DMA, obwohl weder Takt auf SCK noch Daten an MISO auf dem Bus 
anliegen. Die angeblich empfangenen Daten sind demnach 0x00 (in SPI-Mode 
0). Senden funktioniert einwandfrei über DMA und beim Slave (auch ein 
STM32) kommt das Gesendete auch an. Eigentlich sollte, wenn ich den 
Slave anhalte, kein Empfangsinterrupt stattfinden. Wie ist das zu 
erklären?

Mein MISO-Pin ist am Master als In Float und am Slave als Out AF push 
konfiguriert.



Vielen Dank und viele Grüße

von Mr.T (Gast)


Lesenswert?

STM32 & SPI & DMA... war da die Tage nicht hier was? Was sagt das Errata 
Sheet?

von Regeln - erst lesen, dann posten (Gast)


Lesenswert?

Hast Du Deine DMA Register (insbes. Zähler, Adressen) nach dem
Interrupt mal überprüft?
Ist das tatsächlich der RX-Interrupt des DMA Controllers
oder ein Interrupt des SPI Blocks?

von Regeln - erst lesen, dann posten (Gast)


Lesenswert?

>kein Empfangsinterrupt stattfinden.

Bei SPI wird aber (normalerweise) gleichzeitig gesendet
und empfangen. Der RX-Interrupt könnte daher dann kommen, wenn Du eine
bestimmte Anzahl Bytes gesendet hast, die der programmierten 
DMA-Blockgrösse
für den Empfang entspricht.
Oder benutzt Du einen Halb-Duplex Mode?

von Tom L. (munzi)


Lesenswert?

Regeln - erst lesen, dann posten schrieb:
> Hast Du Deine DMA Register (insbes. Zähler, Adressen) nach dem
> Interrupt mal überprüft?
> Ist das tatsächlich der RX-Interrupt des DMA Controllers
> oder ein Interrupt des SPI Blocks?
Es ist tatsächlich der RX-Int des DMA-Controllers.

Das Errata Sheet habe ich durchgesehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.