Forum: Mikrocontroller und Digitale Elektronik STM32F4 I2C zufällige Aussetzer


von Leo B. (luigi)


Lesenswert?

Hallo zusammen,

ich habe seit einiger Zeit mit dem I2C meines STM32F4 auf dem 
Discoveryboard ein paar kleine Probleme. Und zwar scheint hin und wieder 
die Übertragung einfach Fehler zu produzieren. Was genau passiert kann 
ich leider noch nicht feststellen. Die Flanken auf dem Bus sehen sehr 
sauber aus die Leitungen sind mit unter 10cm doch eher kurz und die 
Konfiguration hab ich jetzt auch schon mehrfach überprüft. 
Wackelkontakte schließe ich auch aus, da auch eine Lötbrücke über den 
einzigen Stecker keine Veränderung brachte.
Ich betreibe den Bus allerdings mit 400kHz (was das maximum des STM ist) 
und mir fällt auf, dass die Probleme bei geringeren Frequenzen (z.B. 
100kHz) nicht auftreten.
Jetzt habe ich im Datenblatt noch einmal nachgelesen und finde da eine 
Passage, die mir Kopfzerbrechen bereitet:
1
RM0090 - Seite 738 - Abschnitt 25.6.8 
2
f_PCLK1 must be at least 2 MHz to achieve standard mode I²C frequencies. It must be at least 4 MHz to achieve fast mode I²C frequencies. It must be a multiple of 10MHz to reach the 400 kHz maximum I²C fast mode clock.
http://www.st.com/web/en/resource/technical/document/reference_manual/DM00031020.pdf
"a multiple of 10MHz" ?
f_PCLK ist bei mir aber 1/4 des Systemtaktes der mit 168MHz pfeift, also 
42MHz und das ist zumindes kein gerades vielfaches von 10MHz wie 
vermutlich jeder nachvollziehen kann...
Könnte das Probleme (ganz im Allgemeinen) verursachen?
Und kann mir jemand erklären warum da ein "multiple" steht nur nicht nur 
"at least 10MHz" was ich eher erwartet hätte? Gibt es dafür überhaupt 
eine "benutzer-verständliche" Antwort?

Vielen Dank
lg Leo

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.