ATtiny Programmer
Das Vorgehen mit der Arduino IDE ist im Internet oft zu finden.
Diese IDE ist aber für mich eher abschreckend und resultierte am Ende auch noch mit der Fehlermeldung:
avrdude: stk500_getsync(): not in sync: resp=0xff
Mein Aufbau basiert auf folgender Anleitung : http://www.instructables.com/id/How-to-program-attiny-using-arduino-uno
Zusätzlich habe ich noch drei LED’s für den Status eingefügt, die im upload Programm kommentiert sind:
[codesyntax lang=”cpp”]
// ISP: Put an LED (with resistor) on the following pins: // 9: Heartbeat - shows the programmer is running // 8: Error - Lights up if something goes wrong (use red if that makes sense) // 7: Programming - In communication with the slave
[/codesyntax]
Als Entwicklungsumgebung verwende ich Eclipse.
Eclipse IDE for C/C++ Developers / Version: Luna Service Release 1a (4.4.1)
Bei den Projekt-Einstellungen habe ich die Version 1MHz ausgewählt:
Eclipse legt alle Dateien im workspace ab. Die Arduino IDE legt viele build-Ordner im temp-Verzeichnis ab.
Leider funktioniert bei mir das programmieren des ATtiny mittles eclipse nicht.
Damit avrdude nicht nur diese kryptische Fehler “avrdude: stk500_getsync(): not in sync: resp=0xff” zeigt, habe ich die Grundeinstellungen verändert.
In der Datei arduino-1.5.2\lib\preferences.txt fügt man folgenden Parameter ein:
[codesyntax lang=”bash”]
upload.verbose = true
[/codesyntax]
Zwei kleine Batch-Dateien starten den upload. Dies hat auch den Vorteil, das man sehr einfach den Uno als ISP vorbereiten kann.
isp.bat – hier für ein Arduino Uno als ISP
[codesyntax lang=”dos”]
@echo off set avr_dir=C:\arduino\arduino-1.5.2/hardware/tools/avr set workspace_dir=E:\Daten\Arduino\workspace set hex_file=ArduinoISPUno\Release\ArduinoISPUno.hex set txspeed=115200 %avr_dir%/bin/avrdude -v -C%avr_dir%/etc/avrdude.conf -q -q -patmega328p -carduino -PCOM3 -b%txspeed% -D -Uflash:w:%workspace_dir%\%hex_file%:i
[/codesyntax]
85.bat – bitte beachten: die baudrate muss hier auf 19200 stehen. Die default-Rate von 9600 funktioniert bei mir nicht.
[codesyntax lang=”dos”]
@echo off set avr_dir=C:\arduino\arduino-1.5.2/hardware/tools/avr set workspace_dir=E:\Daten\Arduino\workspace set hex_file=ATtiny85Blink\Release\ATtiny85Blink.hex set txspeed=19200 %avr_dir%/bin/avrdude -v -C %avr_dir%/etc/avrdude.conf -q -q -p attiny85 -c stk500v1 -P COM3 -b %txspeed% -U flash:w:%workspace_dir%\%hex_file%:i rem Burn fuses: -b 19200 -B 250 -u -U lfuse:w:0xfd:m -U hfuse:w:0xdf:m rem -v // Enable verbose output. More -v options increase verbosity level. rem -C config-file // This file contains all programmer and part definitions that AVRDUDE knows about. rem -q // Disable (or quell) output of the progress bar while reading or writing to the device. rem -c programmer-id // stk500v1 Atmel STK500 Version 1.x firmware rem -P port // COM3 rem -b baudrate // 19200 rem -U memtype:op:filename[:format] rem // flash The flash ROM of the device rem // efuse, fuse, hfuse, lfuse: extended, single, high, low fuse byte rem // w read the specified file and write it to the specified device memory rem // i format = Intel Hex rem -l logfile // Use logfile rather than stderr rem -n // No-write - disables actually writing data to the MCU (useful for debugging AVRDUDE). rem -B bitclock // rem -u // Required for burning fuses. Disables reading out the fuses 3 times bf programming. rem http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions
[/codesyntax]
Dies Ausgabe von 85.bat sieht dann wie folgt aus: