Hallo, bin neu hier und hab schon meine erste Frage. Habe Probleme mit der Programmierung eines ATMEGA 32 mit dem AVR Dragon über JTAG. Zur Programmierung verwende ich das AVR Studio 5.0. Ich habe anfangs ein Nokia 3310 Display an einen ATMEGA 16 angebunden und über die Bibliothek von www.jtronics.de eingebunden. Das Debuggen und Programmieren lief über die JTAG-Schnittstelle problemlos. Das Display erfüllte seine Funktion. Auf den ATMEGA 16 war auf einmal kein Zugriff über JTAG mehr möglich. Hatte den Microcontoller in Verdacht (Device ID des Controllers konnte nicht mehr ausgelesen werden). Der ATMEGA 16 wurde durch den ATMEGA 32 ausgetauscht, diese war noch rumgelegen. Nun kann die Device ID wieder über JTAG wieder ausgelesen werden. Wenn ich nun versuche das HEX File über die JTAG Schnittstelle zu übertragen kommt folgender Fehler: “Verifying Flash...Failed! address=0x0000 expected=0x0c actual=0xff”. Wird das Hex-File über ISP mit den Programm „PonyProg“ übertragen funktioniert es. Das Programm läuft auf den Controller ab und das Display zeigt was an. Der HEX-Code kann sogar über die JTAG-Schnittstelle zurückgelesen werden. Wird nun im AVR Studio 5.0 über den AVR Dragon und der JTAG Schnittstelle gedebuggt, wird der komplette Speicher gelöscht. Wird der Speicher wieder ausgelesen ist das HEX-File mit „FF“ vollgeschrieben. Kennt jemand von euch das Problem? Hat evtl. mein AVRDragon einen Schaden? Oder ist irgendwas für den ATMEGA 32 falsch eingestellt? Bin für eure Hilfe Dankbar! Gruß Moe
Hallo Moe. Ich habe meinen AVR-Dragon vor zwei Wochen gekauft und ihn vor einigen Tagen in Betrieb genommen. Auch ich versuche einen ATmega32 über die JTAG Schnittstelle mit AVR Studio 5 anzusprechen und habe exakt das selbe Phänomen. Der Speicher läßt sich löschen und auslesen, aber nicht beschreiben. Über die ISP Schnittstelle mit Yaap klappts. Meld dich mal wenn wir es zusammen versuchen wollen. Vielleicht bist du ja auch schon einen Schritt weiter als ich. Möglicherweise findet sich ja bei unserem Dialog noch jemand aus dem Forum, der einen Tipp hat. Leider muss ich jetzt ins Bett, ich meld mich hier wieder. Gruß Mathias
Hallo ihr Beiden. Probiert doch erstmal den controller über AVR-Studio, AVR-Dragon und ISP anzusprechen. dann könnt ihr erstmal schauen ob die JTAG-Fuse gesetzt ist. Doofe Frage nebenbei: Die Kabel auf dem AVR-Dragon steckt ihr schon um für den JTAG-Mode, oder? ;)
Hallo, gehe davon aus, dass richtig verdrahtet ist, des es ja mit dem ATMEGA 16 funktioniert und dem selben Aufbau funktioniert hat und sich die Pinbelegungen der Controller nicht unterscheiden. Das beschrieben Anschlusschema ist mir bekannt und wurde mehrfach überprüft. Ja es wird umgesteckt für ISP und JTAG ;-) Die JTAG-Fuse wird im PonyProg als gesetzt angezeigt. Werde den Weg mit dem Dragon und ISP noch versuchen. Bin über jede Hilfe dankbar. MFG Moe
Hallo Kaj, hallo Moe. Die Verdrahtung habe ich mehrfach geprüft und gehe davon aus, dass sie in Ordnung ist. Entspricht auch deiner Grafik. Zuerst funktionierte es per JTAG und "AVR Studio" gar nicht. Daher habe ich per ISP mit Yaap die Fuses geprüft und festgestellt, dass Yaap die Fuse JTAGEN nicht zur Verfügung stellt. Für Yaap habe ich mir seinerzeit einen PC-Parallelport-Adapter gebaut. Also habe ich die Fuses per Dragon/ISP/"AVR Studio" geprüft. Die JTAGEN war nicht gesetzt, was ich dann korrigiert habe. Wieder zurück zu Dragon/JTAG/"AVR Studio". Jetzt kann ich die DeviceId und die Fuses auslesen. Den Flash und Eeprom kann ich jetzt auch auslesen. Also scheint die Kommunikation per JTAG nun zu funktionieren. Wenn ich jetzt per JTAG ein .hex File in den ATmega32 schreiben will (Einstellung: Flash löschen und Verify), dann gibt's genau den Fehler, den Moe beschreiben hat. Nach dem Schreiben wird gemeldet, dass beim Verify an der ersten Stelle im Flash ein falscher Wert steht. Also prinzipiell funktioniert die JTAG-Kommunikation, nur das Schreiben in den Flash nicht. Die Kabel stecke ich um, ja. Heute abend oder Morgen setze ich mich mal hin und trage noch ein paar Fakten zusammen, damit ihr genau wisst wie die Einstellungen im AVR Studio sind. Vielleicht hilft das bei der Fehleranalyse. Im Grunde habe ich versucht das Beispiel aus der "AVR Studio" Hilfe nachzuvollziehen (also auch mit dem Codebeispiel). Hab mal irgendwo gelesen, dass der Dragon einen Bug hat, der auftritt wenn der Code eine Größe von ca. 690 Byte hat. Nicht das hier der Hase im Pfeffer liegt. Gruß Mathias
Hallo Oliver. Ja, da nach dem anschließenden Auslesen alle Bytes auf 0xFF stehen. Und beim Programmieren standardmäßig eingestellt. Guck ich aber trotzdem nochmal genau. Gruß Mathias
Hallo zusammen. So, hier meine letzten Versuche. Zuerst mal habe ich den ATmega32 nochmal per Dragon/ISP/AvrStudio angeschlossen. Alles klappt prima. Ich kann mein Programm reinladen, Verify ok, Programm tut was es soll. Per Dragon/JTAG/AvrStudio eben nicht. Hier mal ein paar Angaben zu den Versionen, die ich verwende. OS Version: Microsoft Windows NT 5.1.2600 Service Pack 3 Platform: Win32NT Atmel AVR Studio 5 (Version: 5.1.208) AVR Tools Firmware Upgrade -------------------------- Dragon_M-07-15.bin UpToDate Dragon_S-07-15.bin UpToDate Im Anhang befinden sich einige Bilder, die die Einstellungen im AVR Studio, Menü "Extras/AVR Programming" wiedergeben. Falls jemand was feststellen kann, was nicht passt... Vielen Dank schon mal Gruß Mathias
Hallo zusammen, um auszuschließen, dass der AVR Dragon defekt ist wurde der Zugriff über die JTAG-Schnittstelle auch noch vom AVR-Sudio 4 aus probiert, was nichts änderte. Auch hier funktioniert kein JTAG mit dem ATMEGA 32. Darauffolgend habe ich zwei neu ATMEGA 16 beschafft da ja mit diesen Controllern alles einwandfrei funktionierte. Und siehe da mit dem ATMEGA 16 gibt keine Probleme es funktioniert das Debuggen und das Programmieren des Controllers mit derselben Hardware wie vorher beim ATMEGA 32. Wie kann es sein das nur der ATMEGA 32 diese Probleme macht? Eigentlich werden doch bis zu 32kB Flash vom Dragon unterstütz oder? Gruß Moe
Hallo zusammen. Also.. Ich habe mir das neue AVR-Studio 6 runtergeladen und installiert. Damit ging das Schreiben in den Flash auf jeden Fall schon mal. Prima. Ab und zu gab es aber noch Fehler beim Lesen der Device-Id. Da ich mal irgendwo gelesen habe, dass es Fehler mit dem ATmega32 im 5V Betrieb, bei zu langem Kabel geben kann, habe ich mein Kabel gegen ein 30cm 10pol. Flachbandkabel getauscht. Und siehe da, alles geht. Ich habe heute Abend mein Projekt von WinAvr in das AVR-Studio 6 übertragen, kompiliert und mit dem Debugger gestartet.. ..und es klappt perfekt. Damit scheint der Fall gelöst. Bin gespannt auf Rückmeldungen. Gruß Mathias
Hi Leute, auch wenn dieser Thread uralt ist, hier (m)eine Lösung des Problems. Vielleicht regt sie ja zum Nachdenken bei einer ähnlichen Fehlersuche an. Hat mich zwei Abende gekostet. Als mein Programm neulich die 16K Grenze überschritt mußte ich notgedrungen auf den ATMEGA32 wechseln. Jetzt kam das Problem. Ich konnte zwei Jahre lang problemlos mit Dragon und STK500 über JTAG den ATMGA16 debuggen und fashen, mit dem ATMEGA 32 ging es auf einmal ums verrecken nicht mehr. Aber trotzdem ließ sich problemlos das EEPROM programmieren und auch die Signatur lesen und Fuses verändern (!). Über ISP-Programmierung ging jedoch alles bei beiden Controllern. Die Lösung fand ich, als ich mal im AVR-Studio (bei mir noch V4.19, Build 730) die HW-Settings über JTAG anschaute: Dort wurde nicht die richtige STK500 Boardspannung (VTarget) angezeigt. Das Problem war ein eingelöteter Widerstand in der Leitung zwischen Vref und VTG über die der Dragon ja den Pegelwandler steuert. Anstatt der eingestellten 5V wurden nur um die 4V angezeigt. Anscheinend habe ich verschieden Ratschläge aus dem Netz, in die JTAG-Leitungen Schutzwiderstände einzuschleifen, übergenau befolgt und das auch bei der Vref-Leitung gemacht, wo das nur einen unerwünschten Spannungsabfall und damit eine Dragon Fehlfunktion verursachte. Komischerweise ging das zwei Jahre lang mit dem ATMEGA16 gut aber nicht mit dem ATMEGA32. Offenbar zieht der ATMEGA32 mehr Strom beim Flash-Programmieren als der ATMEGA16 und als beim EEPROM beschreiben. Also immer schön auf die Referenzspannung achten wenn man die JTAG-Schnittstelle nutzt. Gruß, Danni
Hallo liebe Leute, ich hab auch ein paar Probleme mit dem Mega32. Und zwar habe ich ein paar Platinen welche jeweils von dem Ding gesteuert werden, und mußte mir unlängst ein paar nachkaufen. Allerdings kann das Dragon-Board bei diesen das Target nicht erkennen, also auch keine Fuses setzten und dergleichen. Die alten Controller funktionieren einwandfrei, in der selben Platine. Die Target-Spannung ist auch ok. Z.B. 5,1V. Was ist da falsch. Laut einiger Artikel die ich gelesen habe, ist die JTAG-Schnittstelle serienmäßig aktiviert. Über SPI habe ich's noch nicht probiert, weil die Pins in die Schaltung eingebettet sind, und ich da nicht so einfach rankommen. LG Micha
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.