Hallo zusammen! Ich will mit einem ATmega32 einen NXP LPC213x per JTAG programmieren. Dazu wackle ich mit den Portpins des ATmega 32. Die State-Machine des TAP Controllers habe ich bereits implementiert und die läuft und ich kann sogar schon die ID des LPC's lesen. Leider ist im Datenblatt des LPC's nicht angegeben, welche JTAG Instructions für die Flash-Programmierung zu verwenden wären. Hat jemand von euch einen Link oder Erfahrung mit der JTAG Programmierung des LPC's? Oder wird diese Information nur an "zahlende Kundschaft" weitergegeben? MfG Tobi
Da fehlt nichts, das läuft m.W. anders: Man kann das Flash nicht direkt per JTAG programmieren, kann aber irgendwie ins RAM reinschreiben und dort ein Programm starten, das dann seinerseits das Flash programmiert.
Ja, der LPC hat einen Bootloader. Mit dem kann man per UART kommunizieren und somit den µC programmieren. Das dauert aber relativ lange und deswegen wollte ich den Weg über JTAG gehen. Die debugger machens ja genauso. Die programmieren auch über JTAG. Es gibt auch fertige Programme im Netz, aber die kosten halt.
@ Tobi Interessante Sache! Ist das ein closed source Projekt oder hast du vor das open source zu machen?
Gute Frage, da hab ich mir noch keine Gedanken drüber gemacht. Es wird auf alle Fälle NICHT kommerziell genutzt werden. Ich weiss ned, ob man damit nicht gegen irgendwelche Lizenzen verstösst, da es ja nicht im Datenblatt des LPC's offengelegt wird.
> Ja, der LPC hat einen Bootloader. Den habe ich nicht gemeint. Du schreibst per JTAG Programm und Datens ins RAM und auf geht's.
@Tobi Da hat Herr Kaiser recht. Kleiner Auszug aus dem UM: 10. JTAG Flash programming interface Debug tools can write parts of the flash image to the RAM and then execute the IAP call "Copy RAM to Flash" repeatedly with proper offset.
Danke für die Antworten, ich denke, das ist beim LPC immer so, wenn man das Flash brennen will. Aber wie schauen die JTAG Befehle aus? Was und in welcher Reihenfolge muss ich ins JTAG Instruction bzw. Data Register schreiben, um Daten ins RAM ablegen zu können? Und was, um den Copy RAM to Flash Befehl auszuführen? Wie muss(üssen) die Adresse(n) übergeben werden? Das steht ja eben leider nicht im Datenblatt.
Dafür ist NXP auch nicht direkt zuständig. Da ist Bestandteil des ARM7TDMI-S Cores und ist dort dokumentiert, d.h. bei ARM.
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.