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
>Hat jemand eine Ahnung, woher ich das PU Board finde?
Das PU hat mit deinem Problem nichts zu tun.
P heisst einfach nur Plastik DIP Gehäuse und
U bedeutet bleifrei soweit ich weiss.
Oh, verdammt!
Dann wird es ja noch komplizierter.
Aber vielen Dank. Habe mich bisher darauf konzentriert und scheinbar
wohl an der falschen Stelle gesucht.
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.
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?
Hallo zusammen,
eine invalide Signatur ist auch eine solche, wenn keine Signatir
auslesbar ist. Das ist die Logik von der AVRdüse. Also ISP-Verbindung
nochmal genau überprüfen, das könnte schon helfen... VG Jörg
Nicht Maik schrieb:> Kann ich mir die Fehler irgendwo auch genauer anzeigen lassen?
Datei->Voreinstellungen->Ausführliche Ausgabe
Alles aktivieren!
------------
PS:
Sorry, eins der Bilder ist falsch.
Einstellungen.png ist das richtige
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
Nicht Maik schrieb:> Als Anfänger und Gelegenheitsexperimentierer sagt mir das Ganze hier> NICHTS.
AvrDude liest die Signatur als 0x000000
Also mußt du jetzt auf die Suche gehen, warum das so ist.
> Device signature = 0x000000
Verkabelung falsch
evt.
Oder falschen Programmer ausgewählt!
Nutze den "Arduino as ISP" für den ArduinoISP aus den Beispielen.
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.
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
Hugo E. schrieb:> AvrDude liest die Signatur als 0x000000> Also mußt du jetzt auf die Suche gehen, warum das so ist.
Ich würde einfach eine passende (niedrigere) Taktfrequenz für die
Progammierung einstellen. <= 250kHz sollte für frische Chips klappen.
Nicht Maik schrieb:> Vtarget : 0.0 V> Varef : 0.0 V
Ich kenne mich zwar mit AVRdude nicht aus, aber beim Atmel Studio wird
auch die Spannung zumindest an VCC ausgegeben.
Wenn ich das richtig sehe, ist AVR Dude der Meinung, dass keine Spannung
anliegt - was auch erklären würde, warum nur 00000 ausgelesen wird.
Stefan S. schrieb:> Wenn ich das richtig sehe, ist AVR Dude der Meinung, dass keine Spannung> anliegt
Der ArduinoAsISP nutzt dieses Feature nicht.
Die 0.0V Anzeige, ist völlig normal/OK
Ein Atmel ICE würde zeigen, was Sache ist.
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.
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.
Gruß,
Norbert
Norbert S. schrieb:> Mach da mal 100nF Keramik hin oder lass ihn ganz weg
Hat leider auch nichts bewirkt. Habe auch schon einen neuen Atmega88 und
einen Attiny45 probiert. Da funktionierte es auch nicht.
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:
Arduino Fanboy D. schrieb:> Das ist nicht wahr!> Es fehlt die AVRdude Kommandozeile.
Beachte bitte auch diesen Hinweis. Es ist für die fehleranalyse schon
wichtig, zu sehen, mit welchen Parametern avrdude aufgerufen wurde.
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 :(
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.
Stefanus F. schrieb:> Zeige deinen Plan, wie du die Bauteile miteinander verbunden hast.
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
Und nun den 100nF zwischen Reset und GND vom Arduino.
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
Arduino Fanboy D. schrieb:> Nein!> Der 10µF Kondensator ist schon richtig da!> Der Reset des UNO muss unterbunden werden.> Und genau das leistet der Kondensator zuverlässig.
Hä?
Er will doch mit Avrdude per ISP programmieren.
Oder habe ich was falsch verstanden?
Gruß,
Norbert
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?
Norbert S. schrieb:> Er will doch mit Avrdude per ISP programmieren.
Ja!
Norbert S. schrieb:> Oder habe ich was falsch verstanden?
Ja!
Es soll damit nicht der Reset des Ziel µC unterbunden werden.
Sondern der Reset des Programmieradapters, welche in diesem Fall ein
Arduino UNO ist.
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
> 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
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.
Nicht Maik schrieb:> Arduino Fanboy D. schrieb:>> Die Meldung zeigt klar, keine Verbindung zwischen "Arduino as ISP" und>> AvrDude>> Fantastisch :D
Was erwartest du?
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.
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.
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".
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.
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.
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.
DAVID B. schrieb:> Drücke mal auf den Controller beim flashvorgang!
Nach dem letzten Kenntnisstand nützt das nichts, da bereits die
Kommunikation zwischen PC und dem Arduino Uno fehlschlägt.
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?
Arduino Fanboy D. schrieb:> Wie hast du das festgestellt?
Vermutlich durch Anstecken und Einschalten.
Wenn AVRDude keine Verbindung zum Auslesen der Signatur bekommt, hat es
mit großer Wahrscheinlichkeit den Chip auch noch nicht löschen können.
Hugo E. schrieb:> Vermutlich durch Anstecken und Einschalten.
Eben!
Ich vermute in der unbekannten, geheimen, Testschaltung einen Quarz.
Also nochmal:
Wie hast du das festgestellt?
Arduino Fanboy D. schrieb:> Ich vermute in der unbekannten, geheimen, Testschaltung einen Quarz.
Ich denke im Bild 20190414_172727.jpg im Beitrag von 14.04.2019 17:33
ist die Testschaltung gezeigt: Nur der ATmega88 auf einem Steckboard
(inzwischen hoffentlich um Abblockkondensatoren ergänzt).
Beitrag "Re: Atmega88-20PU + Arduino Uno"
Alexander S. schrieb:> Ich denke im Bild 20190414_172727.jpg im Beitrag von 14.04.2019 17:33> ist die Testschaltung gezeigt:
Und ich denke, das ist die Schaltung, mit/in der er programmiert werden
soll.
Eher nicht die Testschaltung für das alte Programm.
Arduino Fanboy D. schrieb:> Also nochmal:> Wie hast du das festgestellt?
Ich habe einfach eine LED genommen und an 3 Ausgängen hat sie geblinkt.
Scheint, als wäre das auch nur der Beispiel-Blinker etwas erweitert.