Flashen mit Atmel Studio 6

OP #2953507
Lesenswert?

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)
OP #2953570
Lesenswert?

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...
Gast #2953581
Lesenswert?

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>
OP #2953666
Lesenswert?

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.
Gast #2953715
Lesenswert?

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
Gast #2953747
Lesenswert?

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)
OP #2953756
Lesenswert?

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?
Angehängte Dateien:
#2953771
Lesenswert?

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.
#2954140
Lesenswert?

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).
#2955309
Lesenswert?

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.
OP #2955406
Lesenswert?

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)
Angehängte Dateien:
#2955446
Lesenswert?

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.
Gast #2955475
Lesenswert?

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
#2955528
Lesenswert?

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?
Gast #2955569
Lesenswert?

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
OP #2955625
Lesenswert?

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.
Gast #2955937
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren