Hallo, möchte auf einen Atmega88 mit einer ISP Schnittstelle das erste
Mal ein Programm mittels AVR 6 überspielen, allerdings kommt immer die
Fehlermeldung "Unexpected Signature" (siehe Bild im Anhang). Der
Programmer (AVRISP mkII) funktioniert, leuchtet auch grün. Kann mir da
jemand weiterhelfen?
Die 6 Leitungen habe ich mehrmals geprüft, ich gehe davon aus das sie
richtig verbuden sind da die grüne LED am Programmer leuchtet, das
heisst ja dass die Verbidung ok ist. Die Spannung wird bei AVR -> Device
programming auch angezeigt. Wenn ich in diesem Fenster die ISP Clock
Frequenz auf 125khz stelle, zeigt er mir auch eine Device Signature an
(diesmal nicht rot hinterlegt), wenn ich dann das Programm debuggen will
stellt sich diese ISP clock Frequenz wieder auf 1 MHZ ein (siehe Bild im
Anhang). Im Programm habe ich den Takt auf 1 MHZ eingestellt.
Eeeeee schrieb:> Die 6 Leitungen habe ich mehrmals geprüft, ich gehe davon aus das> sie> richtig verbuden sind da die grüne LED am Programmer leuchtet, das> heisst ja dass die Verbidung ok ist.
Nein.
Habe ich gemacht und egal wie hoch ich den CPU Takt einstelle, bei
"Device Programming" stellt sich jedes mal aufs neue 1MHZ ein. Ist das
normal? Muss das 1 MHZ sein? Allerdings kommt nun eine etwas andere
Fehlermeldung, siehe Bild im Anhang. Hoffe das hilft ein wenig weiter...
Eeeeee schrieb:> Mit debuggen meine ich auf den grünen Pfeil klicken (Debugging> starten).> Wie soll ich es denn sonst rüberspielen?
mit dem symbol "device programming" (blaues ic mit gelbem pfeil drauf)
Eeeeee schrieb:> Fritz schrieb>>Nein.>> Sondern?
Rtfm. "Idle - With target power", die Spannungsversorgung ist in
Ordnung, bestenfalls auch noch Reset. Vom Rest weiß man es nicht.
Da das Auslesen der device signature dann offensichtlich doch
funktioniert hat, brauchst du den Fehler (diesmal) nicht in diesem
Bereich zu suchen.
Ok, also halten wir mal fest dass bei "device programming" die Signatur
bei einer ISP Clock von 125 KHZ oder 250 KHZ ausgelesen werden kann,
beim Überspielen des Programmes sich jedoch die ISP Clock auf 1 MHZ
verstellt und die Signatur dann nicht mehr gelesen werden kann. Ich
denke dort liegt der Fehler. Kann mir dabei noch jemand weiterhelfen?
Eeeeee schrieb:> Ja das ist mir klar, mache ich jedes mal, trotzdem wird der Wert> jedesmal auf 1 MHz zurückgesetzt.
Beschreibe doch bitte genau, was du tust und wann was passiert. So
kann man das eher nachvollziehen.
Guck doch mal in den Debugger-Options unter "Projects and Solutions" -
"Build an Run" die Einstellung "Before building:" die sollte auf "Save
all changes" stehen.
Schritt 1
Ich setzte die ISP Clock auf 125 kHZ (bei device programming) und drücke
auf set
Schritt 2
Ich drücke den grünen Pfeil (debugging starten)
-> Fehlermeldungen erscheinen, wie in den Bildern oben schon gezeigt
Schritt 3
Ich gucke was mit der ISP Clock passiert ist (wieder bei device
programming) und muss feststellen dass sie wieder auf 1 MHz gesetzt ist.
>Ich drücke den grünen Pfeil (debugging starten)
Da sollst du nicht drauf drücken. Du kannst nicht debuggen.
Programmiert wird unter Memories, da gibt es einen
Program Button.
Habe vorher mit einem ATMEGA32 gearbeitet, da habe ich immer auf diesen
Pfeil geklickt und da ging es auch immer, deswegen dachte ich es wäre so
richtig.
Ich probiere es gleich aus.
Andere Frage, wo finde ich die Debugger Options?
Vorhin fragtest du:
> Mit debuggen meine ich auf den grünen Pfeil klicken (Debugging> starten).> Wie soll ich es denn sonst rüberspielen?
Antwort:
> mit dem symbol "device programming" (blaues ic mit gelbem pfeil drauf)
Jetzt schreibst du:
Eeeeee schrieb:> Schritt 2> Ich drücke den grünen Pfeil (debugging starten)
Nochmal:
du willst nicht debuggen, also klicke auch nicht auf debuggen.
du willst programmieren, also klicke auf "device programming"
Eeeeee schrieb:> Wenn ich über Memories programmiere wird erstmals keine> Fehlermeldung> angezeigt, allerdings macht der ATMEGA noch nicht das, was er soll.
er macht garantiert das, was er soll. er hat keinen eigenen willen.
vielleicht macht er nicht das was du willst, aber das liegt
normalerweise nicht am µc...
Eeeeee schrieb:> Was soll denn so eine Klugscheißerei.
Dich darauf aufmerksam machen, dass deine (implizite) Fragestellung
Murks ist.
Was soll passieren?
Was hast du gemacht? (Hier vor allem: Schaltplan, ggf. Bild des Aufbaus,
Code)
Was hat dabei nicht wie erwartet funktioniert?
Zuerst wird der Menuepunkt
-> Build -> Build Solution
ausgewählt, wodurch aus dem Quellcode die benötigten Dateien ( .hex .eep
.elf) erzeugt werden.
Anschließend muß in dem Menue
-> Tools -> Device Programming
In dem DropDown Feld "Tool" der genutzten Programmer (AVRISP mkII)
ausgewählt werden.
In dem DropDown Feld "Device" der genutzte IC (ATmega88) eingetragen
werden.
Wenn nach einem anschließendem Klick auf -> Read (neben "Device
Signature")
eine Fehlermeldung erscheint,
ist entweder
1. Die Verkabelung nicht richtig
AM IC (ATmega88 Familie)
Reset : Pin 1
Mosi : Pin 17
Miso : Pin 18
SCK : Pin 19
VCC, AVCC (+): Pin7, Pin 20
GND (-): Pin 8, Pin 22
AM Programmer
VCC sowie GND durch eine Messung feststellen,
im Datenblatt die restliche Belegung ermitteln.
2. Der ATmega88 kein ATmega88
sondern ein anderer (ATmega88PA etc.)
was auf dem Chip steht, evtl. mit einem Vergrößerungsinstrument
kontrollieren wenn nötig.
Wenn dieser Fall zutrefen sollte ist in den Projektoptionen
-> Project -> "Projektname" Properties -> Device
der richtige Mikrocontroller einzutragen.
3. Der Programmer defekt bzw. nicht richtig installiert.
Wenn keine Fehlermeldung erscheint :
unter
-> Memories "Flasch"
den Programmpfad zu der .elf Datei eintragen.
z.B. C:\Eigene Dokumente\Atmel
Studio\6.2\"Projektname"\"Projektname"\Debug\"Projektname.elf"
und anschließend, abschließend auf "Program" klicken.
Holger L. schrieb:> Wenn keine Fehlermeldung erscheint :> unter> -> Memories "Flasch"> den Programmpfad zu der .elf Datei eintragen.> z.B. C:\Eigene Dokumente\Atmel> Studio\6.2\"Projektname"\"Projektname"\Debug\"Projektname.elf">> und anschließend, abschließend auf "Program" klicken.
Falsch. Unter "Memories / Flash" (mit "sh") wird das *.hex-File
eingetragen.
Das *.elf-File wird unter
"Production file / Progam device from ELF production file"
eingetragen.