Hallo, ich habe mir einen AVRISP mk2 besorgt um nun direkt aus dem Atmel Studio 6 heraus die Programme aufspielen zu können. Vorher habe ich die Programme über das alte Studio 4 aufgespielt (habe es also nur zum aufspielen genutzt - noch mit einem 15 Eur ISP) Ich gehe nun also unter Tools-> Device programming, wähle den ISP aus (taucht auch in der Liste auf - wird korrekt erkannt, ich habe ihn auch schon aktualisiert auf die neueste Firmware) und dann meinen Prozessor ( Atmega 1284P). Nach einem klick auf "apply" werden mir die Daten des Prozessors korrekt angezeigt - ich kann die Fusebits etc. alles auslesen. Unter "production file" wähle ich dann die .elf Datei meines Projektes an und wähle "program". Er arbeitet, der ISP blinkt, der Prozessor startet wie erwartet neu und... ich bekomme eine Fehlermeldung, dass das Verifizieren nicht fehlgeschlagen ist. Schalte ich das Verifizieren aus, programmiert er brav, es ändert sich aber absolut nichts am Prozessor. Selbst wenn ich versuche den Speicher zu löschen, quittiert mir das Studio mit einer Erfolgsmeldung, aber der Speicher des Prozessors bleibt unangetastet (ich sehe das, weil das alte Programm einfach weiterläuft) Was kann das denn sein? Oder kann mir jemand ein kleines Programm zum flashen empfehlen, das den 1284 auch unterstützt? (hatte mal geguckt aber kaum was gefunden - AVRDUDE ist Kommandozeile und bei Ponyprog steht er nicht mit drin)
Hast du das notwendige Firmware-Upgrade des Programmers gemacht? Menu-->Tools/AVR Tools Firmware Upgrade Schon mal mit dem hex-File versucht?
Upgrade habe ich vorher gemacht, ja. Ist auf der scheinbar aktuellsten Version 1.11. Unter "production file" kann ich nur das .elf auswählen. Wenn ich unter "memories" das .hex-File auswähle zeigt sich das gleiche Verhalten - er sagt er programmiert, dann hat er einen Fehler beim verifizieren. Es funktioniert ja nichmal das löschen - er sagt er hat gelöscht aber das Prozessor bleibt davon unbeeindruckt...
Ne ein originaler von Atmel. Vorher hatte ich so ein 15 Eur eBay-Gerät. Damit ging alles wunderbar. :-D Nur müsste ich dafür eben das alte Studio 4 nutzen...
Das AVr-Studio hat übrigens auch ein Kommandozeilentool AVR Studio 5.1 Command Prompt>atprogram AVR Studio Command Line Interface Copyright (C) 2011 Atmel Corporation. Usage: atprogram [options] <command> [arguments] [<command> [arguments] ...] Options: -t --tool <arg> Tool name: avrdragon, avrispmk2, avrone, jtagice3, jtagicemkii, qt600, stk500 or stk600 -s --serialnumber <arg> The programmer/debugger serialnumber. Must be specified when more than one debugger is connected. -c --comport <arg> The com port to use for the programmer/debugger. e.g. -c COM1 or -c 1 -i --interface <arg> Physical interface: aWire, debugWIRE, HVPP, HVSP, ISP, JTAG, PDI or TPI. -d --device <arg> Device name. E.g. atxmega128a1 or at32uc3a0256. -v --verbose Verbose output (debug) -h --host <arg> Target host which runs the avrdbg process. -p --port <arg> Specify which port to use for the avrdbg process. Ignored if the host option is not given. -f --force Force command even if firmware is not up to date. -cl --clock <arg> The frequency to use for communication with a device (hz, khz, mhz, default hz). E.g. -cl 10mhz -mb --max-baudrate <arg> The maximum baud rate for communication on awire (Kbps). -xr --externalreset Apply external reset when starting a session. -dc --daisychain <args,..> Set up a JTAG daisychain. Arguments are <devices- before devices-after instr-before instr-after>. -tv --target-voltage <arg> Set the STK600 or STK500 target voltage (float value). -a0 --aref0 <arg> Set the STK600 Aref0 or STK500 aref generator voltage (float value). -a1 --aref1 <arg> Set the STK600 Aref1 generator voltage (float value). -cg --clock-generator <arg> Set the STK600 or STK500 Clock generator frequency (hz, khz, mhz, default hz). --timeout <arg> Set the timeout value in seconds for commands. The default is 180 seconds. Set to 0 for no timeout. -q --quiet Do not display activity indicator. -? --help Display help information. Commands: chiperase Full erase of chip. erase Erase the specified memory. help Displays help for a specific command. info Display information about a device. list Detect and print information about connected Atmel Tools. program Program device with data from <file>. read Read the contents of the memory on the device. secure Set the security bit on UC3 devices. verify Verify content of memory based on a file. version Display the version. write Write to the memory with values entered on the command line. Arguments: Use atprogram help <command> to get available attributes. Example: atprogram -t jtagice3 -i jtag -d at32uc3b0512 program -f e:\file.elf atprogram -t avrone -i pdi -d atxmega128a1 chiperase For command specific help, use atprogram help <command>
Hm ja aber wenn ich den Befehl manuell eingebe wird es doch warscheinlich genau das gleiche tun wie, wenn ich den Button drücke, oder!? Gibt es sonst empfehlenswerte externe Programme?
Alternativ kannst du den AVRISPmkII unter AVRDUDE verwenden aber du muss erst die "LibUSB Filter" installieren (aktuelle Version: libusb-win32-devel-filter-1.2.6.0.exe) danach funktioniert der AVRISPmkII einwandfrei. AVRStudio 6, AVRDUDE und jeder Proger kanns du hier schauen: Beitrag "USBasp unter AVRStudio 5 oder 6 verwenden - Anleitung!" Gruß
Passt die Taktfrequenz bzw irgendwas aufm Board was das Signal mies machen kann?
Die LEDs leuchten brav grün und am Board hat sich nichts geändert. Die Anleitung für AVRDUDE werde ich mir ansehen, danke - sieht etwas kompliziert aus ^^
Frederik N. schrieb: > Die Anleitung für AVRDUDE werde ich mir ansehen, danke - sieht etwas > kompliziert aus ^^ Bevor ich mit diesem Gesemmele anfangen würde, würd ich lieber den Fehler suchen. Mit dem AVR-Studio und dem AVR-ISPmkII hast du schon die optimale Konstellation. Ich würd die gegen nix anderes tauschen!
Hm ja aber wo liegt der Fehler. Nochmal zu den LEDs: Im Ruhezustand sind beide LEDs grün. Sobald ich auf "Program" drücke, blinkt die LED neben dem USB-Port und die andere wechselt auf orange. Nach einer kurzen Weile kommt die Fehlermeldung dass nicht verifiziert werden konnte. Bestätige ich dies, erlöschen beide LEDs kurz, der Controller startet neu und beide LEDs leuchten wieder konstant grün.
250kHz sollte bei 16MHz Prozessortakt passen denke ich!? zumal wie gesagt die Kommunikation an sich ja zu funktionieren scheint (Device ID auslesen z.B.)
Hi >250kHz sollte bei 16MHz Prozessortakt passen denke ich!? Bist du sicher, das der AVR wirklich auf Quarzoszillator gefust ist? Wenn er aber noch auf 1MHz läuft sind die 250 kHz eine kritische Frequenz. Da kann z.B. das Lesen der ID funktionieren, das Programmieren aber nicht. MfG Spess
Das ist er - die Schaltung läuft so schon seit ca einem halben Jahr. Ich habe es aber gerade auch noch einmal mit anderen Frequenzen getestet - auch bei 64kHz kommt der Fehler. Fuses kann ich ja auslesen und SUT_CKSEL steht wie gewünscht auf EXTOSC_8MHZ_XX_16KCK_65MS
Meine Fuses für einen ATmega1284P sehen so aus: BODLEVEL = 2V7 OCDEN = [ ] JTAGEN = [ ] SPIEN = [X] WDTON = [ ] EESAVE = [X] BOOTSZ = 4096W_F000 BOOTRST = [ ] CKDIV8 = [ ] CKOUT = [ ] SUT_CKSEL = FSOSC_1KCK_0MS_CRES_BODEN EXTENDED = 0xFD (valid) HIGH = 0xD1 (valid) LOW = 0xE6 (valid)
EXTOSC ist kein Quarz sondern ein Oszillator. Hast Du das auch verbaut?
Die Fuses passen schon. Ich habs grade noch einmal mit dem Studio 4 versucht - selber Fehler. Ich tippe mittlerweile auf ein Problem mit der Verbindung Programmer -> Controller... Die Belegung auf meinem Board müsste doch aber passen, oder? (Screenshot) Kann es denn sein, dass der ISP einfach gar nicht schreiben kann? Eine ganz doofe Frage: Der ISP sollte doch den Prozessor selbstständig in den Reset ziehen, oder?
Bartl schrieb: > EXTOSC ist kein Quarz sondern ein Oszillator. Hast Du das auch verbaut? Die Fuses habe ich noch unter Studio 4 gesetzt, da sagt der Volltext, dass diese Einstellung einen externen Quarzoszillator meint. Ist die Einstellung denn falsch? Bis jetzt lief alles ohne Probleme. Welche ist denn dann die richtige Option?
Was haste nun Quarz oder Oszillator? Möglicherweise hast du den µC schon verfust.
Ein ganz normales 16MHz Quarz. Die Schaltung läuft jetzt seit einem halben Jahr anstandslos und ließ sich mit dem billigen eBay-ISP auch ohne Probleme flashen. Ich glaube also eigentlich nicht, dass hier der Fehler liegt!?
Hi
>SUT_CKSEL = FSOSC_1KCK_0MS_CRES_BODEN
Das ist aber eine Einstellung für einen Keramikresonator.
MfG Spess
Bei manchen Controllern hab ich mit der gleichen Konstellation auch Probleme. Wenn die Spannung nicht ganz exakt ist, kommt es bei mir zu diesen Problemen und die Fuses sollten immer auf der Einstellung sein, wie sie ein brand neuer µC hat. Nur so funktioniert der immer. Ich hatte den Scheiß satt und hab mir einen anderen Programmer gekauft. So ein China Teil, kam aber aus Amerika. Da kann ich alles brennen, rauf und runter und überhaupt keine Probleme mehr. Ich hatte mit extra den MK gekauft, weil alle schrieben, nimm den. Tatsächlich gibt es da ja keine eigene Spannungsversorgung und wenn das Studio auch zunächst die Spannung korrekt erkennt, schwankt sie nur ein bisschen, dann kommt es genau zu diesen Effekten.
Frederik N. schrieb: > da sagt der Volltext, dass diese Einstellung einen externen > Quarzoszillator meint. Frederik N. schrieb: > Ein ganz normales 16MHz Quarz. Ja, was denn nun? Quarze haben zwei Anschlüsse, Quarzoszillatoren brauchen zusätzlich Versorgungsspannung.
Kleiner Nachtrag: Erst flashen, dann die Fuses. Das klappt dann meistens. Ich hatte das wirklich ganz oft ausprobiert und immer mit nem HV-Programmer die Basics eingestellt. Das war immer reproduzierbar. Das Allerwichtigste ist die stabile Spannung.
Betrifft das denn schreiben und lesen oder nur schreiben? Die Spannung auf dem Board wird über einen 7405 bereitgestellt..
Also ich habe nun den alten Programmer rausgekramt. Damit bekomme ich den gleichen Fehler - Es scheint also tatsächlich am Board zu liegen. Aber was kann das sein? Man kann lesen aber nicht schreiben??
Vermutlich ist dein µC verfust, deshalb setz mal einen anderen ein und probier noch mal. VORHER die fuses richtig setzen!!
Frederik N. schrieb: > Betrifft das denn schreiben und lesen oder nur schreiben? Die Spannung > auf dem Board wird über einen 7405 bereitgestellt.. Ich hab immer die 7805 gehabt, aber ohne die üblichen Kondensatoren (waren nicht vorhanden), jetzt hab ich die KY5050 und sogar ohne Kondensatoren (die jetzt vorhanden wären) ist die Spannung sehr stabil und in dem Bereich, wie Atmel Studio sie sehen will. Dann klappt das auch mit dem AVRMkII. Aber wie gesagt, auf das, klappt es oder nicht, hatte ich keinen Bock mehr und hab dann einen anderen Programmer besorgt und in der Software kann ich jedes Bit so einstellen wie ich das will (oder brauche). Nur, und da widerspreche ich einem Vorredner, erst flashen und dann fusen. Danach liefen die so wie sie sollten. An alle die nun wieder auf mich eindreschen, das ist nur meine persönliche Erfahrung (und die ist noch nicht all zu alt).
Frederik N. schrieb: > Also ich habe nun den alten Programmer rausgekramt. Damit bekomme ich > den gleichen Fehler - Es scheint also tatsächlich am Board zu liegen. > Aber was kann das sein? > > Man kann lesen aber nicht schreiben?? Lesen geht bei mir dann auch, schreiben nicht. Dann war meine Spannung schlecht.
Hi >Dann war meine Spannung schlecht. Was ist eine 'schlechte' Spannung? Der original AVR ISP MKII kommt mit Targetspannungen von 1,6...5,5V klar. MfG Spess
Naja und vor allem: Sagt er dann immer, er schreibt, tut es aber gar nicht? Und sowas wie löschen funktioniert dann auch nicht?
Anstatt zu lamentieren empfehle ich dir folgendes: Poste das Schaltbild messe die Versorgungsspannung poste deine Einstellungen der fuses poste Makefile / defines
spess53 schrieb: > Hi > >>Dann war meine Spannung schlecht. > > Was ist eine 'schlechte' Spannung? Der original AVR ISP MKII kommt mit > Targetspannungen von 1,6...5,5V klar. > > MfG Spess Mein lieber Spess, ich schätze dich und deine Meinung immer sehr, das stimmt aber so nicht. Das Studio 6 meckert bei etwas unter 5 Volt und etwas über 5 Volt. Die genauen Werte weiß ich grad nicht, werden aber bei falscher Spannung im Studio angezeigt, wie sie sein sollen. Bei 5,2 Volt funktioniert das schon nicht mehr und der untere war (glaub ich) 4,8 Volt. Ich hatte oft etwas zu viel und immer nur kurz. Seit ich die KY 5050 hab, geht das auch alles ohne Probleme, wenn die Fuses auf Standard stehen. Schon ein "brown out" reichte aus, dass es zu diesen Problemen kam. Ist in meinen Augen nicht so sehr das Problem des Programmers, sondern eher ein Problem von Atmel Studio. Wie gesagt, ich schildere hier meine ganz persönlichen Erfahrungen.
Frederik N. schrieb: > Naja und vor allem: Sagt er dann immer, er schreibt, tut es aber gar > nicht? Und sowas wie löschen funktioniert dann auch nicht? Analog zu den Erfahrungen die ich machte. Aber lass sie alle glauben, dass wir zu doof sind, bis sie es dann selbst erleben.
Noch ein Nachtrag. Trotz richtig angeklickter Fuses war ich schon manchmal "draußen" und konnte den µC nur noch über HV retten. Seit dem trag ich dann unten die Fuses ein, statt sie anzuklicken. Kann ich nur dringend empfehlen.
Du findest es nicht nötig, wie schon gefordert Schaltplan, Fuses etc. zu posten. Wenn du das geschafft hast schaun wir u.a. dann mal was bei dir unter BODLEVEL steht.
Frank O. schrieb: > Trotz richtig angeklickter Fuses war ich schon manchmal "draußen" und > konnte den µC nur noch über HV retten. > Seit dem trag ich dann unten die Fuses ein, statt sie anzuklicken. > Kann ich nur dringend empfehlen. Was meinst du damit? Was bedeutet denn HV? Und wo unten eintragen statt anklicken? In den Zeilen direkt unter den "Anklick-Kästchen"? Ein Klick auf die Kästchen ändert aber doch immer auch direkt diese Zeilen!? @Flascher: Die Fuses habe ich bis auf die Taktquelle nie angefasst. (habe aber einen Screenshot angehängt) Der Schaltplan ist etwas umfangreicher (für meine Verhältnisse). Ich habe aber mal den Mikroprozessor und die Spannungsversorgung angehängt. Ich wüsste aber ehrlich gesagt nicht, was an der Schaltung kaputt sein könnte. Ich hatte seitdem ich das letzte Mal erfolgreich programmiert habe einen Überlastfall (2 Transistoren sind "abgeraucht"), jedoch an einer ganz anderen Stelle. (Die hingen an einem anderen IC auf der Platine dran)
Flascher schrieb: > Du findest es nicht nötig, wie schon gefordert Schaltplan, Fuses etc. zu > posten. > > Wenn du das geschafft hast schaun wir u.a. dann mal was bei dir unter > BODLEVEL steht. Keine Schaltung, nur der uC allein in so einem Ziff-Sockel Adapter. Zwischen ISP einfach nur 5 Volt vom KY5050, bzw, vorher (und da viel störanfälliger) 7805. Auch auf dem Arduino-Uno gab es die Probleme mit dem Studio 6. Aber egal, ihr müsst das nicht glauben, auch wenn schon mal zwei hier das gleiche Verhalten schildern. Ich hatte Frederik das nur bestätigen wollen und meine (noch ziemlich geringen) Erfahrungen und den Umgang damit mitteilen wollen. @Frederik Ich weiß, dass sich die Zeile unten ändert, wenn man da was anklickt, aber wenn ich die Fuses unten in die Zeile schrieb, dann ist mir das mit der "Aussperrung" nicht passiert. Hab nun alles deutlich geschildert und bin nun hier raus. Beweisfotos? Am besten noch Fingerabdrücke? Mir muss keiner glauben. Warum sollte ich das so erzählen, wohlmöglich erfinden? Bin froh, wenn ich auch mal was an das Forum zurück geben kann, das mich schon so sehr unterstützt hat und mir sehr viel beigebracht hat.
Hi >Mein lieber Spess, Ich glaube nicht, das ich dein lieber Spess bin. >ich schätze dich und deine Meinung immer sehr, das stimmt aber so nicht. >Das Studio 6 meckert bei etwas unter 5 Volt und etwas über 5 Volt. >Die genauen Werte weiß ich grad nicht, werden aber bei falscher Spannung >im Studio angezeigt, wie sie sein sollen. Bei 5,2 Volt funktioniert das >schon nicht mehr und der untere war (glaub ich) 4,8 Volt. Ich habe das jetzt nochmal mit einem ATMega48 unter AVR Studio 4.19 getestet. Mit dem AVR ISP MKII und dem STK500 lässt sich der ATMega (1MHz interner Takt) problemlos bis herunter auf 1,6V flashen. Irgend etwas machst du falsch. MfG Spess
spess53 schrieb: > Hi > >>Mein lieber Spess, > > Ich glaube nicht, das ich dein lieber Spess bin. > >>ich schätze dich und deine Meinung immer sehr, das stimmt aber so nicht. >>Das Studio 6 meckert bei etwas unter 5 Volt und etwas über 5 Volt. >>Die genauen Werte weiß ich grad nicht, werden aber bei falscher Spannung >>im Studio angezeigt, wie sie sein sollen. Bei 5,2 Volt funktioniert das >>schon nicht mehr und der untere war (glaub ich) 4,8 Volt. > > Ich habe das jetzt nochmal mit einem ATMega48 unter AVR Studio 4.19 > getestet. Mit dem AVR ISP MKII und dem STK500 lässt sich der ATMega > (1MHz interner Takt) problemlos bis herunter auf 1,6V flashen. > > Irgend etwas machst du falsch. > > MfG Spess Letzte Eintrag. Sehr geehrt Herr Spess53, das mag sein, aber ich hab das mit Studio 6 gemacht. Hab nie behauptet alles zu wissen, tatsächlich weiß ich nicht viel. Das waren MEINE Erfahrungen, die ich gemacht habe.^^ Ist mir echt zu doof. Mit freundlichen Grüßen Frank Oldenbürger PS. Werde mich jetzt hier insgesamt zurück halten. Wenn hier jeder auf einen ein prügelt und grundsätzlich alles in Frage gestellt wird. Was soll so was?
Hi Frederik, ich bin nicht der AVR Profi. Vielleicht spielt es keine Rolle, aber was mir an den Bildern auffaellt ist das im Schaltplan ein ATMEGA664P angegeben ist, im Screenshot vom AVR Studio aber oben ein ATMEGA1284P ausgewaehlt ist. So weit ich weiss unterscheiden sich die beiden Typen in der Groesse des Flash. Belehrt mich wenn das egal sein sollte :-) Gruesse
Hi >das mag sein, aber ich hab das mit Studio 6 gemacht. Die Hardware der Programmer bleibt aber die gleiche. Die Programmieralgorithmen sind durch die AVRs festgelegt. Daran ändert auch das verwendete Studio nichts. >Das waren MEINE Erfahrungen, die ich gemacht habe.^^ Wenn du aber mit deinen Erfahrungen relativ einsam auf weiter Flur stehst, dann sollte dir das doch zu Denken geben. MfG Spess
Dass der Ton in diesem Forum sehr schnell rau wird ist mir auch schon sehr oft aufgefallen - woran das liegt vermag ich nicht zu sagen. ;) Ich bin nichtsdestotrotz immer dankbar für die oft sehr kompetente Hilfe, auch wenn der eine oder andere sich hier sehr schnell auf den Schlips getretetn fühlt und sich dann gerne mal etwas im Ton vergreift. :) Thomas S. schrieb: > Vielleicht spielt es keine Rolle, aber was > mir an den Bildern auffaellt ist das im Schaltplan ein ATMEGA664P > angegeben ist, im Screenshot vom AVR Studio aber oben ein ATMEGA1284P > ausgewaehlt ist. Das ist durchaus korrekt. Die beiden Typen unterscheiden sich nur durch die Speichergröße. Verbaut ist ein 1284P - die habe lediglich die Bezeichnung im Schaltplan nicht geändert. Das sollte aber keine Unterschiede machen.
Frank O. schrieb: > Werde mich jetzt hier insgesamt zurück halten. Wenn hier jeder auf einen > ein prügelt und grundsätzlich alles in Frage gestellt wird. Was soll so > was? Bis jetzt war in diesem Thread noch keiner grob. Bei lernresistenten muss man aber manchmal etwas nachdrücklicher werden, um die Kontakte der Synapsen freizubrennen.
Ich habe die Schaltung neu gebaut und nun funktioniert alles problemlos. Woher der Fehler nun kam weiß ich nun allerdings leider auch nicht... war wohl irgendwas kaputt. ^^ Trotzdem danke für die Hilfe.
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.