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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.