mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2129 GPIO


Autor: Matthias Fromme (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich habe ein Problem mit dem GPIO beim LPC2129.
Ich habe mal einen Screenshot vom Memoryfenster angehängt.

Mein Problem ist, das wenn ich an den Ausgängen die spannung messe, 
diese nicht den Pegel haben den sie haben sollten, beispielsweise ist 
Pin 0.0 auf HIGH. Das ändert sich auch nicht, wenn ich die Register 
IOCLR0 oder IOSET0 schreibe. Das Problem scheint aber nur bei den 
unteren Pins zu bestehen, da ich die LED auf dem Board blinken lassen 
kann.

Ich habe übrigens das Olimex LPC2129 Board hier aus dem Shop.

MFG
Matthias Fromme

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einige Pins an diesem Controller habe keine "push-pull"-Ausgänge sondern 
lediglich "open-drain". Ist aber in der Pinbeschreibung im Manual auch 
erläutert. Das sind inbesonderen die Pins, die auch für I2C genutzt 
werden können. Man kann diese lediglich von "high-z" auf "output low" 
schalten. "output high" gibt es also nicht wirklich. Abhilfe: externer 
Pull-Up-Widerstand zum "Hochziehen" auf high.

Martin Thomas

Autor: Matthias Fromme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich vielleicht nicht ganz eindeutig ausgedrück.
Das mit den open-drain Ausgängen ist soweit schon klar, das eigentliche 
Problem ist, das ich am Ausgang "HIGH" messe, obwohl das Das Bit im 
Register 0 ist. Das es ein open-drain Ausgängen kommt ja nur zum tragen 
wenn ich ein HIGH-Signal erwarten würde, wenn ich das richtig sehe.

Matthias Fromme

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manchmal stolpert man auch über die grundlegendsten Dinge:

Sind IODIR und IOPIN richtig gesetzt?

Dietmar

Autor: Matthias Fromme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, sollten sie sein.
IODIR ist bis auf die JTAG-Pins als Output gesetzt, und IOPIN ist wenn 
ich es richtig sehe read-only.

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, sollte IODIR und PINSEL heißen, nichts mit IOPIN.

Wieso ist IOPIN readonly?

Ach ja, diese Geschichte. Druckfehler im User Manual.
2 Seiten weiter ist ein Beispiel, wie man die I/O mit IOPIN
ansteuert anstatt mit IOSET und IOCLR.

Dietmar

Autor: Matthias Fromme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tatsächlich ein Druckfehler, hatte ich gar nicht bekerkt :-).
Also am PINSEL habe ich nichts verändert, das sollte für meinen 
Pinbereich in Ordnung sein, da diese per default auf GPIO eingestellt 
sind (benutze momentan nur die unteren 11 Pins).

Matthias

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir gehts:
  while (1)
  {// Loop forever
    PINSEL0 &= 0xFFFFFFFC;      // P0.0 ist GPIO
    IODIR0 |= 0x01;             // P0.0 ist Ausgang
    IOSET0 = 0x01;              // P0.0 bekommt High-Pegel
    IOCLR0 = 0x01;              // P0.0 bekommt Low-Pegel
    IOPIN0 ^= 0x01;             // P0.0 bekommt High-Pegel
    IOPIN0 ^= 0x01;             // P0.0 bekommt Low-Pegel
  } // while(1)

Mit Oszi an P0.0, sehe ich schön, wie der Pin sowohl sauber auf High als 
auch auf Low geht.

Dietmar

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.