Forum: Mikrocontroller und Digitale Elektronik Problem mit STM32 SPI master receive only


von Bernhard L. (bernhard_r84)


Lesenswert?

Hallo!

Ich versuche gerade mit einem STM32 im Master-Mode einen A/D Wandler 
über SPI auszulesen. Dabei habe ich das Problem, daß der A/D Wandler die 
Daten an MISO der CPU schickt, sobald ein Clock-Signal angelegt wird.
Im Grunde ist das auch in Ordnung nur fährt der STM32 auf der SCK 
Leitung ein permanenten Takt sodaß die Daten nicht richtig empfangen 
werden.

Der A/D-Wandler signalisiert derzeit durch eine fallende Flanke daß die 
Wandlung fertig ist. Damit wird ein Interrupt ausgelöst der dann das 
SPI-Modul in der CPU aktivieren soll. Nach dem Einlesen von 16 Bit ist 
der Transfer abgeschlossen, der Clock sollte wieder abgeschalten werden 
(um die aktuell laufende Wandlung nicht zu stören)

Es mag sein daß ich die Fülle von Funktionen des STM32 noch nicht 
überblickt habe oder ich einem Denkfehler ausgesessen bin.

Ich bin für jeden Tipp dankbar. Codeausschnitte habe ich absichtlich 
noch nicht mitgeschickt da sich diese im jetzt-Stand nicht als 
Diskussionsgrundlage eignen.
Feedback arbeite ich in den aktuellen Code ein und poste dann 
Code-Ausschnitte und Testergebnisse.

Grüße,

Bernhard

von Bernhard L. (bernhard_r84)


Lesenswert?

Problem gelöst.

Es muss der Master-Mode "SPI_Direction_2Lines_FullDuplex" verwendet 
werden.
Per default wird kein Clock gesendet, erst beim Senden eines Datenbyte 
an den Slave mit "SPI_I2S_SendData(SPI1, 0x00);" wird der Takt 
ausgegeben und die Eingangsdaten eingelesen.

Grüße,
Bernhard

von daniel44 (Gast)


Lesenswert?

Hallo Bernhard L. R.,

ich versuche den A/D MCP3551 auszulesen mit einem STM32F100RB.
Bei mir klappt es leider garnicht.
Könnten Sie die Code-Ausschnitte posten?

Das wäre klasse! Danke

Gruß Daniel

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.