STM32F446 FMP I2C kein Open Drain möglich?!

Gast #4989654
Lesenswert?
• ▲
▼
Hallo,

ich verzweifele gerade am STM32F446 mit dem FastMode+ I2C (FMPI2C).
Die Funktionen für das I2C an sich sind denke ich korrekt geschrieben.
Das Problem, so wie ich das sehe, liegt an der I/O Init.

Ich initialisiere PC6/7 wie folgt (Datenblatt ab Seite 184 GPIO 
Registers):

Register MODE:            Bit13,15 setzen       (Alternative Funktion)
Register SPEED:           Bit10,11,12,13 setzen (High Speed)
Register PullUpDown:      0                     (Externer Pull-Up)
Register AlternativeFctHi 0
Register AlternativeFctLo Bit26,30 setzen       (I2C Active)
Register OutputType       Bit6,7 setzen         (Open Drain)


Jetzt passiert folgendes:

Wenn ich im OutputType nur Bit 6 setze (CLK) wird mir ein wunderschönes 
Signal erzeugt mit 100 kHz, Daten werden gesendet sieht alles gut aus.
Problem: SDA ist PushPull und damit kann der Slave den ACK nicht auf 0 
ziehen.

Setze ich jetzt auch noch das Bit 7 im OutputType Register (SDA as Open 
Drain), dann ist SDA auf High im Ruhezustand, CLK geht sofort nach der 
Init auf 0 und es wird mir, egal was ich mit den FMP-Registern mache, 
kein Takt und Daten mehr erzeugt.


Jetzt meine Frage: Was mache ich hier falsch?! Ich verstehe es absolut 
nicht mehr. Habe ich was übersehen?! Bitte um Hilfe!
Angehängte Dateien:

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.