Forum: Compiler & IDEs Bootloader auf Attiny85 jedesmal neu brennen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Georg (georgwa)


Lesenswert?

Guten Tag zusammen,

ich versuche, auf dem Arduino Uno R3 laufende Sketche an Attiny85 
anzupassen. Klappt soweit. Vor ein paar Jahren habe ich das Gleiche mit 
demselben Uno und derselben Charge Attiny85 gemacht, und ich meine mich 
erinnern zu können, dass man den Bootloader nur ein einziges Mal brennen 
musste. Jetzt ist es so, dass der Upload eines Sketches ohne Neubrennen 
des Bootloaders nur geht, wenn man den unveränderten Sketch ein zweites 
Mal hochlädt, was natürlich wenig Sinn ergibt. Ändere ich auch nur eine 
Variable, kommt beim Hochladen folgende Meldung:

Der Sketch verwendet 2252 Bytes (29%) des Programmspeicherplatzes. Das 
Maximum sind 7616 Bytes.
Globale Variablen verwenden 32 Bytes (6%) des dynamischen Speichers, 480 
Bytes für lokale Variablen verbleiben. Das Maximum sind 512 Bytes.

avrdude: verification error, first mismatch at byte 0x000a
         0x24 != 0x36
avrdude: verification error; content mismatch
Fehlgeschlagenes Hochladen: Hochladefehler: exit status 1

Brenne ich dann den Bootloader neu, funktioniert es.
Ich benutze die IDE 2.3.1 auf Linux Mint und den Arduino Uno R3 als ISP. 
Der Bootloader ist "Optiboot". Ist der vielleicht nicht der Richtige? 
Blind probieren möchte ich nicht, weil ich nicht weiß, ob dabei die 
Attinys Schaden nehmen können. Wäre nett, wenn mir jemand in für Laien 
geeigneten Worten etwas dazu sagen könnte.

von Steve van de Grens (roehrmond)


Lesenswert?

Für mich klingt das danach, dass Avrdude mit der Option -D "Disable auto 
erase for flash" aufgerufen wird. Normal ist das nicht.

Welchen Arduino Core verwendest du (bitte genau mit Version angeben)? 
Hast du an den vorgegebenen Avrdude Parametern herum gefummelt?

: Bearbeitet durch User
von Georg (georgwa)


Lesenswert?

Wo finde ich die Core-Version?
Es passiert allerdings mit zwei Arduinos auf die gleiche Art. Einer ist 
ein genuiner Uno, der andere ein Clon namens M.J duino Uno R3.

Nein, an Avrdude Parametern habe ich nichts geändert. Wüsste gar nicht 
wo. Allerdings habe ich die IDE einmal wieder deinstalliert und neu 
installiert, ohne dass das etwas verändert hätte.

von Steve van de Grens (roehrmond)


Lesenswert?

Georg schrieb:
> Wo finde ich die Core-Version?

Im Boardmanager
https://docs.arduino.cc/learn/starting-guide/cores/

Georg schrieb:
> Einer ist ein genuiner Uno, der andere ein Clon namens M.J duino Uno R3.

Ich meine den Core für den ATtiny85.

: Bearbeitet durch User
von Georg (georgwa)


Lesenswert?

Es ist SpenceKonde ATTinyCore Version 1.5.2

von Björn W. (bwieck)


Lesenswert?

Steve van de Grens schrieb:
> Für mich klingt das danach, dass Avrdude mit der Option -D "Disable auto
> erase for flash" aufgerufen wird. Normal ist das nicht.

Bei der Arduino IDE ist das normal.

EDIT: wenn man Optiboot benutzt.

: Bearbeitet durch User
von Georg (georgwa)


Lesenswert?

Heißt das, dass ein anderer Bootloader den beschriebenen Effekt 
vermeiden würde? Welcher wäre dazu denn geeignet?

von Steve van de Grens (roehrmond)


Lesenswert?

Ich habe gerade versucht, dein Problem nachzustellen, scheitere 
allerdings an der Installation des Cores. Die URL 
http://drazzy.com/package_drazzy.com_index.json leitet auf HTTPS um und 
verwendet dort ein ungültiges Zertifikat.

von Georg (georgwa)


Lesenswert?

Ich habe hier:

https://github.com/SpenceKonde/ATTinyCore/releases

die zip-Datei heruntergeladen, entpackt, einen Ordner "hardware" im 
Sketch Ordner angelegt und die entpackte Datei dort hineinkopiert. Dann 
taucht sie im Boardmanager auf.
Bei der Arduino-App von Microsoft hat das allerdings nicht funktioniert. 
Ich rede hier von meinem Linuxrechner.

von Steve van de Grens (roehrmond)


Lesenswert?

Ich konnte den Core manuell installieren. Avrdude wird bei mir so 
aufgerufen:
1
/home/stefan/Downloads/arduino-1.8.19/hardware/tools/avr/bin/avrdude -C/home/stefan/Arduino/hardware/ATTinyCore-2.0.0-devThis-is-the-head-submit-PRs-against-this/avr/avrdude.conf -v -pattiny85 -carduino -P/dev/ttyUSB0 -b28800 -D -Uflash:w:/tmp/arduino_build_890587/sketch_feb19a.ino.hex:i

Also der Parameter "-D" ist dabei, wie Björn schrieb. Das muss dann wohl 
so sein.

Was ich mir noch vorstellen könnte ist, dass die Baudrate des ATtiny 
nicht genau genug mit dem USB-UART Adapter überein stimmt. Bei 
Verwendung des R/C Oszillators kommt das manchmal vor. Eventuell hilft 
es, die Versorgungsspannung auf 3,6V zu reduzieren oder am Chip für 
Zimmertemperatur zu sorgen (falls nicht bereits geschehen).

von Georg (georgwa)


Lesenswert?

Der Attiny hat um die 18 Grad, soweit ein daran anliegendes Thermometer 
aussagekräftig genug ist.

von Steve van de Grens (roehrmond)


Lesenswert?

Georg schrieb:
> Der Attiny hat um die 18 Grad, soweit ein daran anliegendes Thermometer
> aussagekräftig genug ist.

OK

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.