Forum: Mikrocontroller und Digitale Elektronik Toolchain gesucht: Assembler --> JTAG --> ATmega162V


von Armin (Gast)


Lesenswert?

Hallo Zusammen,

ich kann nicht sagen, ob ich meine Frage verständlich stellen kann.

Also ganz von vorne: Ich möchte zum Einstieg in die uC-Thematik das 
AVR-Tutorial hier durchrödeln, bei dem man einen avr mittels assembler 
programmiert.

Ich hab einen ATmega162V aufm Steckbrett und ein fertiges JTAG Kabel 
richtig angeschlossen. Das Kabel funktioniert mit einem xilinx cpld, 
sollte ansich also passen. Es hängt am LTP1.

meiner Recherche nach lässt sich dieser uC (wohl) ausschließlich mit 
avrdude über JTAG programmieren. von der im notepad geschriebenen 
ASM-Datei bis zum laufenden Mikrocontroller fehlen jetzt allerdings noch 
einige Schritte, die mir absolut unklar sind.

Gibt es eine Entwicklungsumgebung, die mich davor bewahrt, seltsame 
ellenlange Kommandozeilensoftware auszuführen?
Welche Schritte müssen denn überhaupt zwischen "*.asm" und "laufender 
uC" durchgeführt werden? Eigentlich nur "hex erzeugen" und "hex 
übertragen" oder?
Und mit welcher Software krieg ich das bedienerfreundlich hin, trotz 
meiner gewagten Kombination aus LTP1-JTAG-ATmega162V?
[Natürlich sollte die Entwicklungsumgebung auch die Frage beantworten, 
wo ich denn die asm-includes finde, von denen im tutorial die Rede ist]


ich habe bisher nur mit avr studio gearbeitet und c-programme 
geschrieben. Nun soll's aber mal richtig ins Detail gehen. Und leider 
kennt avr studio das LTP-JTAG-Kabel nicht.
achja: ich nutze Windows xp.

von spess53 (Gast)


Lesenswert?

Hi

> Das Kabel funktioniert mit einem xilinx cpld, sollte ansich also passen.

Nein. da kocht jeder Hersteller sein eigenes Süppchen.

MfG Spess

von Armin (Gast)


Lesenswert?

also ich habe dieses Tutorial gerade durchgearbeitet:

http://www.awce.com/avrjtag.htm
(erstmal nur den Teil "über JTAG direkt bespielen")

leider erhalte beim Schreiben des uCs mit JAM folgenden Fehler:
"Exit code=11... Device verify failure"

ich benutze einen ATmega162, wie der mensch ausm tutorial:
http://www.reichelt.de/?ARTICLE=46546
(doch nicht atm162V, mein Fehler)

Verdrahtung wurde soeben ein drittes mal geprüft. Passt immer noch -.-

wasnun? Auf blöd mal des ISP-Vorgehen testen?

von Achim M. (minifloat)


Lesenswert?

Im Studio kann man doch auch ASM schreiben!?
Dann kompilieren und builden lassen. Das erzeugte Hexfile dann mit dem 
dude per JTAG auf den controller brennen.
mfg mf

Bedienfreundlich: probiers mal mit Eclipse. Das ist eine sehr mächtige 
IDE, die so ziemlich alles kann, was man braucht. Vielleicht hat jemand 
schon ein AVRASM-Plugin geschrieben. Dann brauchst du nur noch dein 
JTAG-Kabel als Parallelport-Bitbang-Kabel zu mißbrauchen und ab geht die 
luzi.

von Peter D. (peda)


Lesenswert?

Armin schrieb:
> Das Kabel funktioniert mit einem xilinx cpld,
> sollte ansich also passen.

Das wäre so ungewöhnlich, daß das bestimmt schon jemand gepostet hätte, 
wenn es denn ginge.

Atmel != Xilinx

Du brauchst einen Atmel-Programmer, z.B.
http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#Programmer-Varianten


Peter

von Armin (Gast)


Lesenswert?

ich habe jetzt einfach mal das xilinx impact einen JTAG-Boundaryscan 
durchlaufen lassen. Das erkennt ein Gerät, das aber (freilich) von einem 
anderen Hersteller und deswegen unbekannt ist. Wenn man den ATMEGA162 
entfernt, kommt eine deutlich andere Fehlermeldung. Irgendwas mit "cable 
not intact".
Ich würd deswegen jetzt mal davon ausgehen, dass der uC noch nicht 
zerschossen ist!

avrdude meldet allerdings, dass das gerät nicht antwortet: Komandozeile
avrdude -p m162 -c xil -t -F
"AVR device not responding"

also eine ähnliche Meldung wie bei JAM
mein nächster Schritt wird sein, das JTAG-Kabel an die MOSI/MISO ISP 
ports zu hängen und es mit den vorhandenen Programmen mal zu versuchen.

Das uisp von der oben geposteten Seite kann ich nicht testen, da ich 
kein Linux-System habe. Durchs Eclipse bin ich noch nicht ganz 
durchgestiegen, werd ich mir im Laufe des Wochenendes mal zu Gemüte 
führen...

von Spess53 (Gast)


Lesenswert?

Hi

>also eine ähnliche Meldung wie bei JAM
>mein nächster Schritt wird sein, das JTAG-Kabel an die MOSI/MISO ISP
>ports zu hängen und es mit den vorhandenen Programmen mal zu versuchen.

Vergiss es. Du kannst mit dem Xilinx-Teil AVRs weder programmieren noch 
debuggen.

MfG Spess

von Achim M. (minifloat)


Lesenswert?

...ach JTAG...
Wieder mal ein "Standard", wo doch jeder sein eigenes Süppchen kocht.
Oder nennen die das alle nur JTAG, wegen "wir sind so KLUK und können 
das jetzt auch"
stirnrunzelnd, mf

von Uwe .. (uwegw)


Lesenswert?

Standardisiert ist bei JTAG im wesentlichen der elektrische Aufbau der 
Schnittstelle, also die Verwendung der einzelnen Leitungen, und die 
Funktionen für den Boundary Scan (wofür JATG ursprünglich gedacht war). 
Die Nutzung als Programmier- und Debugschnittstelle war so nicht von 
Anfang an vorgesehen, und wurde von jedem Hersteller propietär 
umgesetzt.

von Armin (Gast)


Angehängte Dateien:

Lesenswert?

also ich hab's hinbekommen, mit dem Xilinx JTAG Kabel einen Avr zu 
beschreiben. Konkret den ATMEGA162. Dabei ist zu beachten, dass das 
JTAG-Kabel an die ISP Schnittstelle angeschlossen werden muss und NICHT, 
falls vorhanden, an das JTAG-Interface des Mikrocontrollers!
Wie, steht hier im Abschnitt UISP: http://www.awce.com/avrjtag.htm
TMS = RESET (active low)
TCK = SCK
TDI = MOSI
TDO = MISO
GND = GND
VCC = VCC



Hier meine Lösung:

1. HEX-Datei erzeugen (ich nehme AVR Studio)
2. avrdude benutzen, um daten zu schreiben:
avrdude -p m162 -c xil -e -U flash:w:filename.hex


Kleiner Tipp für den Anschluss eines Flachbandkabels ans Brotbrett:
Nehmt einen Stück Draht, beispielsweise Widerstandsreste und lötet den 
an das Flachbandkabel. Der Schrumpfschlauch dient zur Stabilisation der 
Lötstelle. Klappt ganz gut. Siehe foto.





Danke an Mini Float für den entscheidenden Hinweis, wieder zum dude 
zurück zu gehen! Ich hatte echt gerade unübersichtlich viele Programme 
auf dem PC.


an dieser Stelle möchte ich nochmal den Hinweis bringen, dass in diesem 
Forum zu viel totgeredet wird :P
Die Anmerkung, dass es NUR anders geht, genügt einmal. Zumindest, wenn 
man nicht selbst schonmal genau das versucht hat, wonach gefragt ist; 
also wenn man nicht nur gefährliches Halbwissen besitzt ---
Wie sich gezeigt hat, haben sich schon ein paar Leute da draußen mit der 
Problematik auseinandergesetzt!

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.