-- title: Arduino als AVR-Programmierer -- author: pesco -- date: 6.3.2009 0:00 -- lang: de <> Hah! "Geht doch" (TM). Ich habs irgendwie nicht eingesehen, mir ein teures Programmiergeraet zum Beschreiben von Mikrocontrollern zu kaufen, wenn ich doch mit meinem Arduino bereits ueber einen frei (!) programmierbaren ebensolchen verfuege. Also ist mein erstes richtiges Arduino-Projekt ein AVR-Programmierer[/log/2009/mar/programmer.pde]. Ist alles noch recht roh und leicht ATmega8-spezifisch, aber funktioniert soweit anstandslos. **Kurzanleitung: Arduino-Pins 2 bis 5 mit RESET, SCK, MISO, MOSI verbinden. VCC und GND anschliessen. Mit 'minicom' auf den Arduino gehen, ggf. resetten. Es sollten Informationen ueber den angeschlossenen Zielchip erscheinen. Nach Aufforderung gewuenschtes Firmware-Image als Intel '.hex'-Datei an die Serielle senden. Beispiel: 'cat foo.hex > /dev/cuaU0' **Vorsicht:** Nicht zu schnell senden! Sonst laeuft dem Arduino der Empfangspuffer voll und er verschluckt alles, was danach kommt. Man kann das Problem vermutlich vermeiden, indem man die Serielle langsam schaltet. Aber: Fuer sowas gibt es doch Flusskontrolle! :) Der Arduino hat vier leere Loetstellen, die mit 'X3' markiert sind. Da kann man Pfostenstecker einloeten. Und _zufaellig_ entsprechen diese Pins gerade den seriellen Steuerleitungen, die nicht anderweitig angeschlossen sind. Eine davon ist CTS, "clear to send". Darueber teilt man dem angeschlossen "Endgeraet" (lies: PC) mit, ob man gerade empfangsbereit ist oder nicht. Also 'X3-1' mit Arduino-Pin 6 verbinden und die Daten sollten lueckenlos ankommen. Bei mir musste man auch noch die Beachtung der Flusskontrolle einschalten: 'stty -f /dev/cuaU0 crtscts' **NB.** Ich habe FreeBSD und meine Serielle heisst 'cuaU0'. Die Linux-Fanbois setzen bitte 'ttyS0' oder was auch immer. ;)