Atmega88-20PU + Arduino Uno

Gast #5808301
Lesenswert?

Guten Tag, liebe Bastler.

Damals habe ich mit laut meiner Erinnerung mit einem Arduino einen 
Atmega88-20PU "programmiert". Nun schaffe ich es komischerweise nicht 
mehr, da ich zwar Atmega88 Boards hinzugefügt habe, aber dort ist der PU 
nicht enthalten. Ich habe bei den Boards nur P/Pa/PB und einfach nur 88. 
Aber mit keinem hat das Übertragen funktioniert.
Hat jemand eine Ahnung, woher ich das PU Board finde?

Schöne Grüße
Gast #5808425
Lesenswert?

So manches P ist auch relevant!

Z.B. dieses
ATMEGA88P-20PU
ATMEGA88-20PU

Nicht Maik schrieb:
> Aber mit keinem hat das Übertragen funktioniert.
Solange du deine Problem, Versuche und Fehlermeldungen geheim hältst, 
darfst du nicht auf Hilfe hoffen.

Mit "rumprobieren" auf die Lösung zu kommen scheint mir arg 
optimistisch.
Eine Problemanalyse dürfte zu tragfähigen Lösungen führen können.
Gast #5808661
Lesenswert?

Was mir gesagt wird ist:

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Kann ich mir die Fehler irgendwo auch genauer anzeigen lassen?
#5808693
Lesenswert?

Nicht Maik schrieb:
> Was mir gesagt wird ist:
>
> avrdude: Yikes!  Invalid device signature.
>          Double check connections and try again, or use -F to override
>          this check.
>
> Kann ich mir die Fehler irgendwo auch genauer anzeigen lassen?

Mit avrdude ... -v oder -vv gibt avrdude zusätzlche Informationen aus.
Irgendwo sollte auch die "Invalid device signature" explizit stehen.
Mit avrdude -p ? bekommst Du eine Liste aller unterstützten 
Mikrocontroller.
Bei mir sind das für ATmega88:
  m88      = ATmega88
  m88p     = ATmega88P
  m88pb    = ATmega88PB
Was steht denn auf dem Chip?
Die device signatures stehen im Datenblatt. Abschnitt 28.3 Signature 
Bytes
in 
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
ATmega88A  0x1E 0x93 0x0A
ATmega88PA 0x1E 0x93 0x0F
Gast #5808705
Lesenswert?

So, das ist das vollständige Debakel.

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is 
"G:\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega88P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page 
Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages 
MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ----- ---------
           eeprom        65    20     4    0 no        512    4      0 
3600  3600 0xff 0xff
           flash         65     6    64    0 yes      8192   64    128 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0 
0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


Als Anfänger und Gelegenheitsexperimentierer sagt mir das Ganze hier 
NICHTS. Was habe ich damals denn anders gemacht...
Der Arduino Chip hat die ISP aus dem Beispiel geladen, die Verdrahtung 
habe ich in vielen Foren verglichen etc. und dürfte auch nicht 
Fehlerhaft sein.
Gast #5808726
Lesenswert?

Nicht Maik schrieb:
> Double check connections and try again

Diese Zeile bringt es auf den Punkt. Die Kommunikation zwischen 
Programmieradapter und Mikrocontroller funktioniert nicht.

Häufige Gründe sind:
- Kabelbruch
- Übertragungsrate zu hoch
- Der Mikrocontroller wurde für eine externe Taktquelle (z.B. Quarz) 
konfiguriert, diese fehlt aber oder funktioniert nicht
- Stromversorgung vom µC weicht zu sehr von den Signalpegeln des 
Programmieradapters ab

Die Ausgabe "Vtarget: 0.0 V" sieht nicht gut aus, könnte aber daher 
kommen, dass dein Programmieradapter oder Bootloader dieses Feature 
nicht unterstützt.

Gebe mal folgendes im CMD Fenster ein:

a) Falls du einen stk500 Kompatiblen ISP Programmieradapter verwendest:

avrdude.exe -v -c stk500 -P COM4 -B20 -p atmega88p

Wenn es mit -B20 geht, aber ohne diesen Parameter nicht, dann läuft der 
Mikrocontroller mit zu geringer Taktfrequenz (meist 1MHz oder 1,2MHz). 
Das kannst du dann durch Einstellen der Fuses ändern.

b) Falls du den Arduino Bootloader verwendest:

avrdude -v -c arduino -P COM4 -b 57600 -p atmega88p

versuche auch 115200 Baud. Beim Arduino Bootloader spielt der Parameter 
-B keine Rolle.

Bevor noch mehr "Falls" Vorschläge kommen: Verrate uns, welchen 
Programmieradapter du verwendest oder ob du Chips mit vorinstalliertem 
Bootloader verwendest.
#5808727
Lesenswert?

Nicht Maik schrieb:
> avrdude: Device signature = 0x000000

Das ist keine gültige device signature, d.h. avrdude kann die device 
signature nicht lesen. Ich würde erstmal den Aufbau prüfen:
 - Verbindungen prüfen (Steckboard oder Platine?)
 - Abblockkondensatoren vorhanden?
 - Irgendwo zu lange Verbindungsleitungen?
 - Schaltung auf Minimum reduzieren
 - Anderen (gleichwertigen) ATmega88 nehmen
 - etc
Gast #5808823
Lesenswert?

4,97V liegen an.
Die Verkabelung habe ich auch durchgemessen und überprüft, das kann 
nicht der Fehler sein. Kondensator habe ich nur am Arduino von Reset 
nach GND (Elko 10mü).

@ Stefanus F.
Wie ich das mit dem CMD befehl mache, weiß ich nicht (avrdude -v -c 
arduino -P COM4 -b 57600 -p atmega88p)
Nutze nur den Arduino Uno ohne zusätzliche Gerätschaften.

Sagte ja, bin Anfänger. Das Meiste ist für mich Fachchinesisch.
Leichter wäre es natürlich, den Chip vom Arduino zu programmieren, das 
möchte ich aber nicht.
Gast #5808863
Lesenswert?

Nicht Maik schrieb:
> Wie ich das mit dem CMD befehl mache, weiß ich nicht (avrdude -v -c
> arduino -P COM4 -b 57600 -p atmega88p)

Du öffnest eine Eingabeaufforderung und tippst dann dort den Befehl ein. 
https://praxistipps.chip.de/eingabeaufforderung-oeffnen-so-gehts-unter-windows-7-10_45600

> Nutze nur den Arduino Uno ohne zusätzliche Gerätschaften.

Das ist leider keine Klare Antwort. Dein Ziel (Target) ist ein ATmega88 
und irgendwie nutzt du einen Arduino Uno. Wie genau?

Zeige deinen Plan, wie du die Bauteile miteinander verbunden hast.

Hast du auf den Arduino UNO den "Arduino as ISP" Sketch installiert? 
Falls ja, dann ist das nun dein ISP Programmieradapter - und zwar STK500 
kompatibel. In diesem Fall wäre dann das der richtige Befehl:

avrdude.exe -v -c stk500 -P COM4 -B20 -p atmega88p

Falls er dann sagt, dass er avrdude.exe nicht finden kann, dann suche 
diese Datei mit dem Dateimanager und gebe den kompletten Pfad an:
1
c:\arduino-1.8.7\hardware\tools\avr\bin\avrdude.exe -v -c stk500 -P COM4 -B20 -p atmega88p
Gast #5808886
Lesenswert?

Stefanus F. schrieb:
> Falls er dann sagt, dass er avrdude.exe nicht finden kann, dann suche
> diese Datei mit dem Dateimanager und gebe den kompletten Pfad an:
> c:\arduino-1.8.7\hardware\tools\avr\bin\avrdude.exe -v -c stk500 -P COM4
> -B20 -p atmega88p

G:\Arduino\hardware\tools\avr\bin\avrdude.exe -v -c stk500 -P COM4 -B20 
-p atmega88p

avrdude.exe: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2009 Joerg Wunsch

             System wide configuration file is ""
avrdude.exe: can't open config file "": Invalid argument
avrdude.exe: error reading system wide configuration file ""


Was ist denn nun schon wieder falsch :(
Gast #5808888
Lesenswert?

Norbert S. schrieb:
> Nicht Maik schrieb:
> Kondensator habe ich nur am Arduino von Reset
>> nach GND (Elko 10mü).
>
> Mach da mal 100nF Keramik hin oder lass ihn ganz weg, 10µ ist viel zu
> groß und ein Elko bringt da gar nichts.
> Ev. bekommt der Programmer Reset nicht schnell genug auf Gnd gezogen.
>

Nein!
Der 10µF Kondensator ist schon richtig da!
Der Reset des UNO muss unterbunden werden.
Und genau das leistet der Kondensator zuverlässig.
#5808890
Lesenswert?

Moin,

Kerl, Du musst schon lesen was da steht:
>can't open config file
Die avrdude.conf muss im selben Ordner wie avrdude.exe sein. Du hast das 
irgendwo hinkopiert, da musst Du die avrdude.conf mitnehmen.
Oder besser immer die avrdude.exe und .conf auf C:\ und immer darauf 
verweisen.

Gruß,
Norbert
Gast #5808896
Lesenswert?

Nicht Maik schrieb:
> Ich habe Arduino -> Atmega
> 5V an Pin 7 und 20
> GND an Pin 8 und 22
> Pin 10 an Pin 1
> Pin 11 an Pin 17
> Pin 12 an Pin 18
> Pin 13 an Pin 19

Elektronische Pläne werden mit Beschriftungen der Signale gezeichnet, 
nicht geschrieben! Ich ergänze das:
1
Arduino Uno as ISP     ->     Atmega88
2
5V                            VCC (7+20)
3
GND                           GND (8+22)
4
RESET (10)                    RESET (1)
5
MOSI  (11)                    MOSI  (17)
6
MISO  (12)                    MISO  (18)
7
SCK   (13)                    SCK   (19)

Die Pin-Zuordnung passt.

> Und nun den 100nF zwischen Reset und GND vom Arduino.

Gut so, das wäre meine nächste Frage gewesen. Was sagt avrdude nun?
Gast #5808904
Lesenswert?

Stefanus F. schrieb:
> Gut so, das wäre meine nächste Frage gewesen. Was sagt avrdude nun?

Ich habe nun das mit der Eingabeaufforderung gemacht und da kam dies bei 
raus

avrdude.exe: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2009 Joerg Wunsch

             System wide configuration file is 
"G:\Arduino\hardware\tools\avr\bin\avrdude.conf"

             Using Port                    : COM4
             Using Programmer              : stk500
             Setting bit clk period        : 20.0
avrdude.exe: stk500v2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_ReceiveMessage(): timeout
avrdude.exe: stk500v2_getsync(): timeout communicating with programmer
Gast #5808913
Lesenswert?

> avrdude.exe: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
> "G:\Arduino\hardware\tools\avr\bin\avrdude.conf"

Hmmm...

Aktuell wäre
> avrdude: Version 6.3-20171130


--------
Die Meldung zeigt klar, keine Verbindung zwischen "Arduino as ISP" und 
AvrDude
Gast #5808938
Lesenswert?

Nicht Maik schrieb:
> Ich habe nun das mit der Eingabeaufforderung gemacht

Du hast schon wieder die Befehlszeile ausgelassen. Mann ey, die ist 
wichtig!

> timeout communicating with programmer

Dieses mal kann avrdude nicht mit einem Programmieradapter (dem Arduino 
UNO) kommunizieren. Hast du den ArduinoISP Sketch installiert?

Siehe https://www.arduino.cc/en/tutorial/arduinoISP

Ist denn COM4 jetzt noch richtig? Welche COM-Ports zeigt Windows in der 
Systemsteuerung an? Zeige einen Screenshot. Zeige ein Foto von deinem 
Aufbau.

Noch was: Wenn du den Arduino als Programmer verwendest, musst du das in 
der IDE auch so einstellen. Dann ist stk500 falsch, sondern es muss "-c 
arduino" heißen.
Gast #5808992
Lesenswert?

Dann bau mal wieder den 10µF Kondensator zurück ein und spendiere deinem 
ATmega88 einen 100nF Abblock-Kondensator. Und zwar direkt neben den µC 
nicht am anderen Ende der Kabel.

Danach besteht deine erste Aufgabe darin, den Arduino UNO wieder zum 
Leben zu erwecken. Kannst ja mal zum Vergleich einen LED-Blinker 
installieren und testen. Wenn der läuft, dann kommt wieder der Arduino 
ISP Sketch drauf.
Gast #5808999
Lesenswert?

Stefanus F. schrieb:
> Noch was: Wenn du den Arduino als Programmer verwendest, musst du das in
> der IDE auch so einstellen. Dann ist stk500 falsch, sondern es muss "-c
> arduino" heißen.

Das muss ich noch machen. Schreibe ich das in der Config um, oder wo?

Die Kondensatoren habe ich wie du sagtest eingebaut und das Blinklicht 
funktioniert am Arduino . ISP ist wieder drauf.
Gast #5809004
Lesenswert?

Nicht Maik schrieb:
> Schreibe ich das in der Config um, oder wo?

Das stellst du im Menü der Arduino IDE ein bzw. es ist ein Parameter der 
Kommandozeile in der Eingabeaufforderung.

Möglicherweise funktiniert beides "-c arduino" und "-c stk500". 
Vorgesehen ist für deinen ArduinoISP Sketch jedenfalls der Parameter "-c 
arduino".
Gast #5809066
Lesenswert?

Deine Adresse, damit ich ihn dir zuschicke? :D

Habe eben festgestellt, dass noch ein altes Testprogramm auf dem Atmega 
ist. Also hat es damals funktioniert. Das macht mich wahnsinnig. Ich 
habe absolut keine Ahnung, was früher anders war.
Gast #5809068
Lesenswert?

Nicht Maik schrieb:
> Ich habe absolut keine Ahnung, was früher anders war.

Ich auch nicht, stell Dir das mal vor! Ich weiß nicht einmal, was du 
zuletzt versucht hast und was dabei heraus kam.

> Deine Adresse, damit ich ihn dir zuschicke?

Du kannst ATmega328 mit vorinstalliertem Bootloader regulär im Handel 
kaufen. 
https://www.ebay.de/itm/5-x-ATmega328P-PU-mit-Arduino-Bootloader-Quarz-Kondensatoren-Sockel/392271227347
#5809075
Lesenswert?

Stefanus F. schrieb:
> Du kannst ATmega328 mit vorinstalliertem Bootloader regulär im Handel
> kaufen.
> Ebay-Artikel Nr. 392271227347

Warum schauen heutzutage viele immer zuerst bei ebay, amazon oder 
aliexpress ?

https://guloshop.de/shop/Mikrocontroller/ATmega328-mit-Bootloader-fuer-Arduino-Uno::38.html

Nachtrag: Zuerst ging der Link im vorherigen Beitrag auf ein Angebot mit 
9 EUR für 1 Stk.
Gast #5809089
Lesenswert?

Alexander S. schrieb:
> Warum schauen heutzutage viele immer zuerst bei ebay, amazon oder
> aliexpress ?

Weil es dort oft viel billiger ist - wie in diesem Fall.
Aber nicht immer, man muss aufpassen.

Das Angebot (5 Stück mit Quarz, Kondensatoren und Fassungen) für 14€ ist 
extrem günstig. Ich frage mich, wovon der Hersteller des Sets leben 
will.
#5809121
Lesenswert?

Steckbretter sind für Datenübertragung nur bedingt geeignet!
die kontakte setzten sich zu und geben nicht mehr vollen kontakt.

Drücke mal auf den Controller beim flashvorgang!
Und Gab es nicht erst ein update für den bootloader des UNO's?
Genau wie für den nano wo der bootloader geändert wurde.

Ich selber ziehe das flashen meiner ATmegas mit usbasp vor.
Da kann man Wählen wie schnell Geschrieben werden soll.

Und Programmieren so wie betreiben auf Steckbrettern habe ich mir 
abgewöhnt.
Einfach zufehlter anfällig.
löte einen Kleine Platine mit Sockel für jeden IC den du beschreiben 
willst und schon biste sicher.
Gast #5809158
Lesenswert?

DAVID B. schrieb:
> Und Gab es nicht erst ein update für den bootloader des UNO's?
> Genau wie für den nano wo der bootloader geändert wurde.

Nööö, und wenn auch...
Hat mit diesem Problem, ganz sicher, nichts zu tun.

---

Für mich ist so nicht ersichtlich, warum das nicht funktionieren sollte.

Die Verbindung Arduino IDE zu Avrdude zu Arduino as ISP, hat ja schon 
mal geklappt. Warum jetzt plötzlich auf der Kommandozeile versagt werden 
will, ist mir nicht ersichtlich.
Es geht mit der IDE.

Mit der richtigen Boarddefinition, sollte das alles gelingen.
Wenn denn die Fuses des Mega88 richtig stehen.

Als letztes Mittel, mit einem HVPP Adapter die Fuses korrigieren.

---------

Nicht Maik schrieb:
> Habe eben festgestellt, dass noch ein altes Testprogramm auf dem Atmega
> ist.
Wie hast du das festgestellt?

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