Forum: Mikrocontroller und Digitale Elektronik STM32F4 Slave Transmitter hängt


von Kai (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich sitze zur Zeit an einem Problem, das mich leicht verzweifeln lässt.
Ich habe schon zig Beiträge durchgewälzt hier, aber nichts passt so 
recht zu meinem Problem.

Ich habe ein STM32F4 Discovery-Board (I2C-Slave), welches per I2C mit 
einem Raspberry Pi (Master) kommunizieren soll.
Vom Raspberry kommen immer 16-bit Daten, genauso holt sich der Raspberry 
immer 16-bit Daten vom STM32 ab.


Prinzipiell funktioniert das auch, bloß hängt sich der STM32 sporadisch 
einfach auf während der Kommunikation.
Mit dem Oszi kann man erkennen, dass dies immer dann passiert, nachdem 
der Master die Write-Adresse gesendet hat und der STM32 sein Acknowledge 
gibt. Dann passiert gar nichts mehr und der STM32 hängt fest.

Das merkwürdige ist, dass dies nur sporadisch passiert. Manchmal nach 2 
Sekunden, manchmal geht es aber auch länger gut. Debugge ich den STM32 
dann tritt der Fehler witzigerweise nur sehr selten auf.
Wenn ich im Debugger dann durchklicke, scheint es so, als ob der 
Interrupt sofort dann wieder gefeuert wird, wenn er verlassen wurde.

Das Hauptprogramm wird also nicht mehr erreicht. Andere Interrupts 
laufen aber noch (habe dort 2 Motorregelungen laufen).

Ich habe schon Dinge probiert, wie händisches zurücksetzen der Flags, 
aber das hilft alles nichts.

Ich hoffe jemand hier hat vielleicht eine Idee, woran es klemmen könnte.


Danke und Gruß
Kai

von ttl (Gast)


Lesenswert?

sicher dass der PI seinen Ausgang nach dem Senden der Adresse hochohmig 
schaltet?

von holger (Gast)


Lesenswert?


von Kai (Gast)


Lesenswert?

Auf die Idee bin ich noch nicht gekommen.
Da ich auf dem Raspberry nur vorgefertigte Libs benutzt habe, habe ich 
hier keinen Fehler vermutet.

Ich habe nun testweise das Clockstretching auf dem STM32 deaktiviert und 
die Busgeschwindigkeit mal auf 10kHz gesetzt.

Nun läuft die Übertragung zwar noch immer nicht ganz fehlerfrei, aber 
der STM32 ist bis jetzt nicht mehr hängen geblieben :-). Ich hoffe, das 
war wirklich der Fehler.

Danke für den Tipp, da wär ich nicht drauf gekommen.

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.