Hallo, beim lpc1114 sind Pins PIO0_4 und PIO0_5 als I2C-konforme Open-Drain-Pins ausgelegt. Sie können aber auch als "General purpose digital input/output pin (open-drain)" verwendet werden. Im Datenblatt auf Seite 72 steht explizit "Selects function PIO0_4 (open-drain pin)", im Gegensatz bspw. zu "Selects function PIOx_y.". Das explizite OD-Bit, das zwischen "Standard GPIO output" und "Open-drain output" umschaltet, gibt es konsequenterweise nicht. Mir ist nicht klar, ob nun ausschliesslich "open-drain" als Modus zur Verfügung steht, und wie dieser verwendet wird. Deshalb folgende Fragen: - Können diese Pins als ganz normale als "input" oder "output"-Pins konfiguriert werden? M. E. sagt das Datenblatt "nein". - Wenn nun der open-drain-Modus aktiv ist: GPIOxDIR-Bit auf 1, GPIOnDATA-Bit auf 0 => Pin zieht nach GND? GPIOxDIR-Bit auf 1, GPIOnDATA-Bit auf 1 => Pin macht "zu"? GPIOxDIR-Bit auf 0, aus dem GPIOxDATA kann hi/lo ausgelesen werden? - Open-drain-Modus: Muss explizit zwischen "in" und "out" umgeschaltet werden, oder geht es auch ohne, wie in in Beitrag "Re: DS18x20 unter FreeRTOS und LPCXpresso 1769" ? Danke Ciao Roland
Open-Drain heisst nur dass diese Pins keine internen Pull-Widerstände haben, die man zuschalten kann. Die können aber ganz normal als GPIO genutzt werden, nur eben mit externem 10k Pull-Up (High) oder Pull-Down (Low).
Es ist möglich, das bei diesen I²C-kompatiblen Pins gar keine "High" Treiber Transistoren verbaut sind. Damit funktionieren diese nur als "Open Drain". Hintergrund ist die vollständige Kompatibilität zu I²C, die fordert dass der Bus auch bei abgeschalteten Slaves funktionieren muss. Durch die parasitäre Diode in den High-Treibern - normalerweise intern wie ein MOSFET ausgeführt - würde der Bus aber bei normalen Pins auf "0" gezogen werden sobald der Chip nicht mit Spannung versorgt ist (VCC = 0V). Darum lässt NXP diese Treiber bei den I²C Pins weg.
Lothar schrieb: > Die können aber ganz normal als GPIO > genutzt werden, nur eben mit externem 10k Pull-Up (High) So habe ich das inzwischen gemacht Jim Meba schrieb: > Hintergrund ist die vollständige Kompatibilität zu I²C, die fordert dass > der Bus auch bei abgeschalteten Slaves funktionieren muss. Danke für die ausführliche Info. Könnte sich NXP für ihr Datenblatt ausborgen :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.