Forum: Mikrocontroller und Digitale Elektronik LPC1768: I2C1 auf pins p0.19 und p0.20 nutzen (SKR 1.3)


von Thomas M. (schwuuuuup)


Lesenswert?

Hallo ,

ich habe mir einen Neuen 3D Drucker Controller gekauft (Bigtreetech 
SKR1.3 (nicht 1.4!)), und dabei völlig vergessen, dass ich ja auch noch 
ein Display benötige.

Da ich mir sowieso die Firmware neu kompilieren wollte (Marlin 2.0), ist 
das im Grunde kein Problem, weil davon ja diverse Displays unterstützt 
werden. Auf die Schnelle habe ich mein kleines 128 x64 OLED Display zum 
laufen bekommen. Das Problem ist nur, dass die Konfiguration von Marlin 
2.0 offensichtlich den I2C port auf den Pins P0.0 und P0.1 verwendet.

Diese Pins sind jedoch eigentlich für die Steppermotor-Kontrolle 
(DIR/STEP des Extruders E1)  vorgesehen, und nicht für das Display. 
(Eventuell sind die Pins trotzdem nutzbar, denn die Steppermotor-Treiber 
sollen eigentlich per SPI angesteuert werden, die EN/DIR/STEP Signale 
werden dann theoretisch nicht benötigt, aber das weiß ich nicht 
wirklich.)

Wenn ich das Datenblatt ist lpc1768 richtig verstehe, kann der 
I2C.1-Port sowohl an den Pins P 0.0 und P 0.1 als auch an den Pins P 
0.19 und P 0.20 verwendet werden. Da ich leider mit dem lpc1768 noch 
keine großen Erfahrungen habe, und auch aus dem Datenblatt nicht 
wirklich schlau geworden bin, weiß ich nicht wie ich den I2C port von 
den einen Pin zu den anderen umschalte. Kann mir hier jemand einen Tipp 
geben und mich in die richtige Richtung weisen?

Schönen Gruß
 TOM

von Johannes S. (Gast)


Lesenswert?

Pin Function Select Register PINSEL 0/1, Kaptitel 8.5 im User Manual.

von Thomas M. (schwuuuuup)


Lesenswert?

Johannes S. schrieb:
> Pin Function Select Register PINSEL 0/1, Kaptitel 8.5 im User Manual.

Ahhh, ja ok, mit deinem Tipp und nun wissend, dass ich an der richtigen 
Stelle des Usermanuals lese, haben sich meine grauen Zellen einen Ruck 
gegeben, bis ich es gerafft habe...

ich muss Bits 0-3 von PINSEL0 auf 0 Stellen
und Bits 6-9 jeweils auf 1

Ich hatte die Tabelle vorher schon gefunden, aber irgendwie übersehen, 
dass PINSEL0/1 zwei getrennte Register mit jeweils zwei Bits pro Pin 
sind. Ich dachte es handele sich insgesamt um nur 2 Bit und so hatte es 
keinen Sinn ergeben.

mal schauen ob ich jetzt noch die richtige stelle finde, wo ich das dem 
Marlin-Quellcode unterjubeln kann.

von Thomas M. (schwuuuuup)


Lesenswert?

Nur für den Fall dass hier irgendwann jemand mit der selben Idee per 
Google draufstößt:

Mein Plan hatte einen groben Denkfehler:

ich wollte I2C.1 von den Pins P0.0/P0.1 die auf Step/Dir des Extruders 
E1 liegen, so umstellen, dass sie am EXP1 Connector verfügbar sind. Das 
Kann aber nicht klappen. Ich hatte mich versehen, man kann sie nicht auf 
P1.19/P1.20 legen, die an EXP1 verfügbar sind, sondern auf P0.19/P0.20 
(also P0 statt P1 da hatte ich mich verguckt) die beim SKR 1.3 für die 
Y-Achse verwendet werden... ich käme also vom Regen in die Traufe, wenn 
mein Hack funktioniert hätte.

Somit sind auf dem SKR V1.3 keine Pins für I2C nutzbar... Es sei denn.. 
und das wäre wahrscheinlich ein schlimmer Hack: I2C.0 liegt auf P0.28 
(EXP1.9) und auf P0.27... dieser ist auf dem SKR mit der SD-Karte auf 
Pin DAT2 verbunden. DAT2 wird im SPI-Modus nicht verwendet... wenn man 
jetzt also eine Software hat die mit der SD Karte nur per SPI 
kommunitiert, könnte man sich an die Leiterbahn klemmen und dort das 
singnal für das Display abgreifen....

ich habe mir jetzt aber einfach für 10 € ein grafisches 12864-Display 
bestellt, und hoffe es problemlos an den EXP1/2 Anschlüssen betreiben zu 
können.

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.