STM32 Cortex-Arm I2C Bug?

Gast #1479696
Lesenswert?
• ▲
▼
Hallo,

ich bin gerade dabei mehrere Platinen mit jeweils einem Cortex-M3 von ST 
(STM32F103RBT6) in Betrieb zu nehmen. Unteranderem ist auf der Platine 
ein 2k EEPROM verbaut welches über den ersten I2C-Bus des Cortex 
angeschlossen ist. Bei 2/3 der Platinen funktioniert dies auch 
Problemlos, das restliche 1/3 bleibt beim Starten der Schnittstelle mit 
I2C_GenerateSTART(I2C1, ENABLE); while(!I2C_CheckEvent(I2C1, 
I2C_EVENT_MASTER_MODE_SELECT)); hängen. Auf dem Oszi ist auch nichts zu 
erkennen. Daher die Frage ob euch evtl. einen Fehler im STM32 bezüglich 
I2C-Bus bekannt ist?
#1479727
Lesenswert?
• ▲
▼
Wenn dort ein Hardwarefehler bekannt wäre, dann würdest du den in einem 
Errata beschrieben finden. Das passendende Errata findest du auf der 
Webseite von STM.

Es ist sehr sehr unwahrscheinlich einen Bug zu finden, der dort noch 
nicht beschrieben ist. Wahrscheinlicher ist da ein Fehler deinerseits, 
sei es Software oder Hardware-seitig.
Gast #1479743
Lesenswert?
• ▲
▼
>Wenn dort ein Hardwarefehler bekannt wäre, dann würdest du den in einem
>Errata beschrieben finden.

Falls man icht mal wirklich das Glück hat, der ERSTE zu sein!

Die I2C EEProms stehen bei mir unter "mit Vorsicht genießen"!
So einen Effekt hatte ich auch mal, aber bei einem DSPIC32. Irgendwie
kann es wohl vorkommen, dass das EEPROM "hängen" bleibt. Dann wird
von I2C Modul eine "Kollision" erkannt. Meine Lösung war, dass ich kein
I2C Modul benutzt hab, sondern einen Software Algo. Denn wenn man 
einfach stur weitertaktet, läuft es komischerweise normal weiter...
#1487855
Lesenswert?
• ▲
▼
Wenn man den RCC-Takt vom I2C-Modul zu einem Zeitpunkt einschaltet, zu 
dem die betreffenden GPIO-Pins bereits dem I2C zugeordnet sind (AltOut), 
dann gibt es einen kurzen Low-Impuls auf beiden Leitungen.

Man sollte also darauf achten, erst das I2C-Modul mit Takt zu versorgen 
und dann die Pins zu programmieren.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.