mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2114 Problem mit Port1


Autor: Ulrich R. (urlo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Ich bin jetzt über drei Ecken dazu gekommen auchmal einen Philps ARM zu 
programmieren und habe ein echt komisches Problem mit dem Port1 bei den 
GPIOs. In den letzten Jahren hatte ich nur AVRs in Gebrauch und 
irgendwie vermute ich, dass mein Problem eine triviale Lösung haben 
könnte.

Es ist also so, dass ich im Hauptprogramm die Pins des Port1 (also die, 
die auf Ausgang sind) nicht mehr auf 0 schalten. Wenn man sie während 
der Initialisierung auf 0 stellt, dann passt es. Stellt man sie im 
Hauptprogramm auf 1 geht das auch noch, aber eine nachfolgendes setzen 
auf 0 geht einfach nicht mehr. Mit Port 0 geht’s problemlos. Dabei ist 
schon bekannt, dass es IOSET und IOCLR gibt und das eine Bit (3) in 
PINSEL2 ist auch gesetzt. Vielleicht ist ne Kleinigkeit, aber an so was 
kann man verzweifeln.

lg Ulrich

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blindekuhspiel? Wirst schon das Programm rausrücken müssen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einige Portpins haben spezielle Eigenschaften, wie z.B. Open Drain 
Ausgänge für I²C, oder es ist eine Special Funktion aktiviert und nicht 
der GPIO Modus (siehe Pin Configuration und Pin Connect Block).
Machen alle Pins von Port 1 ärger oder nur einzelne ?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Spezialfunktionen liegen alle auf Port 0. Port 1 hat nur JTAG und 
Trace zu bieten.

> und das eine Bit (3) in PINSEL2 ist auch gesetzt

Was die Pins 16..25 als TRACE Pins deklariert. So wird das nix. Wenn die 
Sense-Pins P1.26 und P1.20 hardwareseitig richtig liegen, sollte man 
PINSEL2 in Ruhe lassen.

Autor: Ulrich R. (urlo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, etwas spät aber immerhin komme ich heute noch dazu. Erstmal ists 
richtig, Port1 hat eigentlich keine Sonderkunktionen, nur das Bit 3 in 
Pinsel2 entscheidet über den Gebrauch als GPIO und es wird eh 0 gesetzt, 
da hab ich mich vorhin geirrt - sollte also richtig sein, hab ich gerade 
nochmal geprüft.

Wie müssen P1.26 und P1.20 beschaltet sein? 26 liegt am RTCK vom Jtag, 
20 ist als Ausgang beschaltet (lässt sich aber genauso wenig wie die 
anderen als Ausgang definierten Bits wieder auf 0 legen).

Hab den verwendeten Code jetzt mal was gerafft um das hier reinstellen 
zu können:

PINSEL2=PINSEL2 & 0xFFFFFFF7;
IO1DIR=IO1DIR | 0x02300000;  //Port1. 20, 21 und 25 als Output

while(1) {
    wait(30000);
    IO1SET=0x02300000;    //Port1. 20, 21 und 25 setzen

    wait(30000);
    IO1CLR=0x02300000;    //Port1. 20, 21 und 25 löschen
}

Die Schleife läuft auch tadellos bestätigt durch UART und einen Pin von 
Port0, nur beim Port 1 liegt immer ein High an. Das kanns doch nicht 
sein, oder? Ich kann auch so gut wie ausschließen, dass der Chip nen 
Fehler hat, weils auf zwei unterschiedlichen Boards nicht funzt.

Bitte Leute, sagt mir dass ich blöd bin und ne Kleinigkeit vergessen 
habe, Hauptsache das Ding läuft endlich richtig.

lg Ulrich

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass mal P1.20 weg. Hardwaremässig offen! Wenn's dann tut, spielt dir 
das ETM einen Streich und bleibt auch trotz deines PINSEL2 Statements 
auf den Pins sitzen.

Autor: Ulrich R. (urlo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, hab ich schon probiert, leider ohne Erfolg

Autor: Thomas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du P1.20 und P1.26 auf High während dem Reset ?
Ansonsten wird Trace bzw. Debug an die Pins geschaltet.

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.