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
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?
>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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.