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
Gast
#3022537
STM32 & SPI & DMA... war da die Tage nicht hier was? Was sagt das Errata Sheet?
Gast
#3022541
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?
Gast
#3022549
>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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.