Montag, 30. April 2012

JTAGICE-MKII clone

Ich habe ein neues Spielzeug: einen chinesischen Clone des AVR JTAGICE-MKII. War im Vergleich zum Atmel Original ziemlich günstig (ich hab noch weniger bezahlt, als die Sure-Homepage angibt...). Der Versand aus China dauerte ca. einen Monat und vor ein paar Tagen habe ich das Päckchen dann beim Zollamt gegen einen kleinen Obulus (Einfuhrumsatzsteuer) in Empfang genommen – Freude!

Viel habe ich noch nicht damit gemacht, aber ich wollte Euch das Ding trotzdem schon mal kurz vorstellen. Sieht von außen exakt aus, wie das Original:

I

Im Innern findet sich dann eine ganz ordentlich aussehende Platine: 

Ein wenig herumtracen ergab, daß die beiden Header oben rechts wohl JTAG Header für die beiden ATmega128A Chips sind, die auf dem Bord stecken (auch wenn ich noch nicht alle Pins zugeordnet habe). Ich hab die gleich mal bestückt. Leider habe ich kein zweites JTAG Gerät, sonst hätte ich auf diesem Weg vermutlich ein Firmware-Backup machen können (Hey Chris, Du brauchst doch bestimmt auch eins - oder? ;-)  ). Und mein Versuch, das Ding dazu zu bringen, die eigene Firmware auszulesen ist erwartungemäß gescheitert ;-)

First Light

Immerhin habe ich schon mal einen ersten Funktionstest gemacht: Arduino Flash auslesen im ISP-mode mit avrdude:

  avrdude -p m328p -c jtag2isp -P usb -U flash:r:flash.bin:r

...das ging wie eine Eins :-))
Was ich bisher nicht hingekriegt habe, ist das JTAGICE unter Avrstudio4 in Betrieb zu nehmen. Allerdings weist einiges darauf hin, daß das ein Problem mit der Virtualbox ist und nicht mit dem Gerät selbst. Muß das bei Gelegenheit mal mit einem nativen Windows probieren. OK – gelöst: war ein temporärer Schluckauf bei der Treiberinstallation. Nu gehts und ich habe bereits die Firmware mit AVR-Studio auf den neusten Stand gebracht. Im Gegensatz zu vielen anderen China-Clones läuft dieser nämlich mit der original Atmel Firmware.

Für einen richtigen Test muß ich mir aber erstmal irgendwas aufbauen – vielleicht mit meinem STK500. Der Arduino ist so out of the box weniger geeignet, denn da muß man erst einen Kondensator amputieren oder mindestens einen Trace kappen (je nach Modell) bevor der bei DebugWire mitspielt und dazu hatte ich heute keine Lust. Also muß ich nun wirklich was zum debuggen finden – zu dumm, daß meine Programme nie Bugs haben ;-)

Update

Inzwischen hab ich einen ATmega16 aus der µC Schachtel geholt und in das STK500 gesteckt. Noch den JTAG-Adapter drauf und ein bisschen herumprobiert und schon konnte ich ein kleines C-Programm via JTAG flashen und auch mit der Kombination avarice/gdb eine Debugging-Session starten. Funktioniert tatsächlich recht gut!  :-)

Jetzt muß ich nur noch meine rudimentären gdb Kenntnisse auf Vordermann bringen, dann ist kein Bug mehr vor mir sicher ;-)

2 Kommentare:

  1. Das ist richtig scharf. Auf dem Target debuggen zu können hat echt Charme. Halt uns mal auf dem Laufenden, kann man Variablen auslesen, Breakpoints setzen, steppen? Bin gdb mäßig auch nicht der Crack, aber manchmal würden schon die Grundfunktionen helfen.
    In der Arduino Lib gibts z.B. einen Fehler, wenn man Strings unglücklich addiert, friert die CPU ein. Irgend ein Stack, der überläuft vermute ich.

    AntwortenLöschen
  2. Genial das Teil! Muss haben :-). Wollte immer schon mal selber JTAGEN aber der Preis des Originals hat mich immer abgeschreckt. Für 86 Euro muss man wohl zugreifen. Dann können wir gegenseitig unsere Firmware auslesen ;-).

    AntwortenLöschen