Forum: Mikrocontroller und Digitale Elektronik ATmega88: Überspielen von Programm geht nicht


von Eeeeee (Gast)


Angehängte Dateien:

Lesenswert?

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?

: Bearbeitet durch Admin
von Peter Z. (Gast)


Lesenswert?

Schau mal ob alle 6 Leitungen des AVRISP MKII richtig verbunden sind.
Wird die Versorgungsspannung des µC richtig angezeigt?

von Oliver R. (orb)


Lesenswert?

Welche ISP-Geschwindigkeit hast Du eingestellt?
Neue Mega88 laufen mit 1Mhz internem Takt und können keinen ISP-Takt 
über 250kHz

von Eeeeee (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Oliver R. (orb)


Lesenswert?

Dann mußt Du den ISP-Takt für das Debuggen auch auf 125kHz setzen oder 
den Prozessortakt höher stellen.

von Fritz (Gast)


Lesenswert?

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.

von Eeeeee (Gast)


Angehängte Dateien:

Lesenswert?

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...

von Eeeeee (Gast)


Lesenswert?

Fritz schrieb
>Nein.

Sondern?

von dummy (Gast)


Lesenswert?

>wenn ich dann das Programm debuggen will

Mit dem AVR ISP kannst du nicht debuggen.
Also drück da gar nicht erst drauf.

von Eeeeee (Gast)


Lesenswert?

Mit debuggen meine ich auf den grünen Pfeil klicken (Debugging starten). 
Wie soll ich es denn sonst rüberspielen?

von dummy (Gast)


Lesenswert?

>Wie soll ich es denn sonst rüberspielen?

Mit dem kleinen Blitz: Device Programming

von ?!? (Gast)


Lesenswert?

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)

von Fritz (Gast)


Lesenswert?

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.

von Eeeeee (Gast)


Lesenswert?

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?

von dummy (Gast)


Lesenswert?

>Kann mir dabei noch jemand weiterhelfen?

Du musst auf Set klicken damit der Wert gespeichert wird.

von Eeeeee (Gast)


Lesenswert?

Ja das ist mir klar, mache ich jedes mal, trotzdem wird der Wert 
jedesmal auf 1 MHz zurückgesetzt.

von dummy (Gast)


Lesenswert?

>Ja das ist mir klar, mache ich jedes mal, trotzdem wird der Wert
>jedesmal auf 1 MHz zurückgesetzt.

Bei mir bleibt er auf 125kHz.

von Fritz (Gast)


Lesenswert?

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.

von Eeeeee (Gast)


Lesenswert?

Bei mir leider nicht, wie gesagt jedesmal wenn ich das Programm 
überspiele erscheinen die Fehlermeldungen und die ISP Clock setzt sich 
zurück.

von michael (Gast)


Lesenswert?

Vielleicht mal das Brennprogramm
als Adminrechte starten.

von ?!? (Gast)


Lesenswert?

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.

von Eeeeee (Gast)


Lesenswert?

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.

von dummy (Gast)


Lesenswert?

>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.

von Eeeeee (Gast)


Lesenswert?

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?

von ?!? (Gast)


Lesenswert?

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"

von ?!? (Gast)


Lesenswert?

Eeeeee schrieb:
> Andere Frage, wo finde ich die Debugger Options?

Im Menue Debug, Menuepunkt Options :-)

von Eeeeee (Gast)


Lesenswert?

Wenn ich über Memories programmiere wird erstmals keine Fehlermeldung 
angezeigt, allerdings macht der ATMEGA noch nicht das, was er soll.

von ?!? (Gast)


Lesenswert?

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...

von Eeeeee (Gast)


Lesenswert?

Was soll denn so eine Klugscheißerei. Ich wollte damit ausdrücken, dass 
es noch nicht funktioneiert.

von Fritz (Gast)


Lesenswert?

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?

von Holger L. (max5v)


Lesenswert?

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.

von wrdlbrmft (Gast)


Lesenswert?

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.

von wrdlbrmft (Gast)


Lesenswert?

Hab gerade nochmal nachgesehen. Unter "Flash" wird auch ein *.elf 
akzeptiert. Wußte ich nicht, sorry.
Ich nehme alles zurück (außer das "sh") :-)

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.