Forum: Mikrocontroller und Digitale Elektronik Pi pico Problem I2C Takt ?


von Schorsch X. (bastelschorsch)


Lesenswert?

Hallo zusammen,
ich suche jetzt schon ne ganze Weile nach einem Fehler in der Verwendung 
des I2C Moduls beim pico. Das C-SDK Beispiel für SSD1306 funktioniert, 
wie es soll.
Ich möchte das auf einen pico mit Mecrisp Forth (tolle Arbeit von 
Matthias Koch - vielen Dank) übertragen. Soweit ich es verstehe, mache 
ich die Initialisierung genauso wie beim SDK.
Es scheint irgendwie der Takt zu fehlen. Da nach Datenblatt der I2C an 
den CPU Taktversorgung (clk_sys) hängt, dürfte dieser immer da sein. 
Nach meiner eigenen Initialisierung scheint zunächst alles so 
auszusehen, wie es soll. Beim z.B. Schreiben des "CMD" Registers, um ein 
Byte zu senden, wechseln die Statusbits, der Fifozähler zählt hoch, aber 
das war´s dann auch schon. An den Pins passiert nix. Die Register sind 
afaik so wie es auch das C-SDK Programm macht. Pin4 + 5 sind Opendrain 
function 3.

Was hab ich übersehen bzw. anders als das C-Programm ?

Hat irgendwer eine Idee dazu ?

besten Dank und beste Grüße

Schorsch

von Wastl (hartundweichware)


Lesenswert?

Schorsch X. schrieb:
> Soweit ich es verstehe, mache
> ich die Initialisierung genauso wie beim SDK.

Soweit ich es verstehe hast du einen Fehler in Zeile 42.

von Wastl (hartundweichware)


Lesenswert?

Schorsch X. schrieb:
> Nach meiner eigenen Initialisierung .........

Übrigens, wunderschöne Prosa, wir alle lieben diese Texte!

von Helmut -. (dc3yc)


Lesenswert?

Richtig, R42 und R42++ fehlt auch! Also muss ein Schaltplan her!

von Schorsch X. (bastelschorsch)


Lesenswert?

Wastl schrieb:
> Soweit ich es verstehe hast du einen Fehler in Zeile 42.

Danke für die hilfreiche Antwort. Super Burschi !

von Wastl (hartundweichware)


Lesenswert?

Schorsch X. schrieb:
> Super Burschi !

Wie man in den Wald hineinruft so schallt es heraus.

von Wastl (hartundweichware)


Lesenswert?

Schorsch X. schrieb:
> Danke für die hilfreiche Antwort.

Ich fürchte jedoch du hast die hilfreichen Antworten nicht verstanden.

von Schorsch X. (bastelschorsch)


Lesenswert?

Das Problem lag in der Freigabe des Eingangs-Bits IE im PADS_BANK0 
Register für GP4 + GP5 (für Pullup 0x5a).
Festlegen der Funktion alleine reicht nicht.

Na denn - wenigstens was gelernt - auch über "Fachleute"

Und tschüss

von Michi S. (mista_s)


Lesenswert?

Schorsch X. schrieb:
> Festlegen der Funktion alleine reicht nicht.

Ach - und im C-SDK Bsp. reichte das? Oder hast Du doch nicht alles so 
gemacht, wie in jenem?

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.