Forum: Mikrocontroller und Digitale Elektronik LPC2148 startet nicht vom Flash!


von Walter Braun (Gast)


Lesenswert?

Hallo!

Ich programmiere gerade einen LPC2148 via J-Link und habe ein massives 
Problem, Programme vom Flash auszuführen. Hier mal der Ablauf in 
Kurzform: Ich stelle den IAR (Version 5.1) auf Flash und starte den 
C-Spy. Das Proghramm überträgt die Daten zum LPC und danach beginnt der 
Flashvorgang. Dieser schließt auch ohne Fehlermeldung ab. Starte ich 
dann im Debugger das Programm, so läuft alles tadellos. Entferne ich 
jetzt den J-Link und resette ich den LPC via /RESET, so passiert in der 
überwiegenden Zahl der Fälle garnichts mehr! Nach dutzenden Power-Cycles 
und Resetvorgängen startet das Programm mal, aber eben nur sehr selten. 
Ich hab dann im Gedanken an eine fehlerhafte Initialisierung mal die 
Demoprogramme vom IAR geflasht (UART und ADC). Selbes Problem. Auch wenn 
ich vom Linker ein HEX File erzeugen lasse, läuft dieses nicht nach dem 
Flashen via Flash-Tool oder FlashMagic. Das FlashTool meldet aber auch 
einen Verify Fehler, wenn das HEX-File im Hauptmenü geflasht und geprüft 
wird. Flashe und prüfe ich dagegen bei dem Menü-Unterpunkt 
Buffer->FlashBuffer Operations, so geht write und verify tadellos.

Auffällig war: der 5.1er IAR hat am Anfang mit dem J-Link  verify-errors 
beim Flashen erzeugt. Seit ich im J-Link den Timer auf Software gestellt 
habe, ist das aber beseitigt. Mit dem alten 4.3er IAR geht es auch 
nicht. Der J-Link hat die aktuelle Firmware.

Der LPC2148 sitzt auf einem selbstgebauten Demoboard mit an sich 
normalen Eigenschaften:
-Quarz 12MHz mit 22pf (Spannungshub 220mVss)
-Betriebsspannung saubere 3,6V mit 220nf an allen Versorgungsleitungen.
-Anstiegszeit der Betriebsspannung: 2,5ms.
-Reset wird erzeugt bei 2,9V und kommt etwa 5ms nach Power-On. Es hilft 
aber meist nichts, den Reset bei stabiler Betriebsspannung manuell 
nochmals auszulösen.
-Uhrenquarz fehlt, testweises Anlöten hilft aber nicht.
-Layout doppellagig mit max. etwa 2-3cm Signalwegen auch am Quarz.

Könnte mir jemand einen Tip geben, warum der LPC vom Flash nur seltenst 
bootet?

Besten Gruß
Walter

von let (Gast)


Lesenswert?

Wie sind P0.14 und P0.31 beschaltet? Wenn P0.14 rumwackelt
läuft vielleicht der Bootloader los. Und P0.31 muß beim
Reset high sein oder floaten.

Bist du sicher das die PLL Konfiguration für den 12MHz Quarz stimmt?
Wenn die Demos für den 2138 sind, wird i.d.R. für einen 19,...MHz
Quarz initalisiert. Im Debugger dürfte es dann zwar auch nicht gehen
aber wer weiß was IAR da alles verzapft?

Beim Flashen mit dem Flash-Tool klappt ein Verify bei mir
auch nicht, die Programme laufen trotzdem. Beim schreiben über
dieses Bufferdings bekomme ich kein Programm zum Laufen.
Daher verwende ich nur noch FlashMagic.

Wenn du da nicht weiter kommst, kann ich dir mal ein hex-File
von einer Blinky-Demo schicken das auf einem 2148 mit 12MHz
Quarz läuft. Dazu müßte ich wissen welcher Port wackeln soll.
Dann sieht man zumindest ob es ein Hard- oder Softwareproblem
ist.

von Walter Braun (Gast)


Lesenswert?

Allerallerbesten Dank!!! Läuft!!!

Hatte zwar P1.26 korrekt beschaltet, nicht aber P0.14 und P1.20. Damit 
hing der Controller tatsächlich im Bootloader fest. Hab jetzt 10k 
Pull-Up eingesetzt und alles läuft damit einwandfrei!


Besten Gruß
Walter

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.