Schritt 7: Programmierung
Sie benötigen einen AVR Programmierer mit einem standard 3 x 2 ISP Connector (IDC-Art) mit 0.1" Pin-Abstand. Stecken Sie einen 3 x 2 männliche Header in der IDC-Stecker, und stecken Sie das andere Ende des Headers in der Taschenuhr PCB. Sehen Sie die Ausrichtung (quadratische Pad zeigt PIN1, das rote Kabel zeigt PIN1, der Connector möglicherweise auch einen Pfeil an Pin 1).
Wenn Ihr AVR Programmierer Ziel Strom liefert, dann setzen Sie eine Batterie. Wenn Ihr AVR Programmierer Ziel macht nicht bereitstellt, dann setzen Sie den Akku.
Das heruntergeladene Paket für dieses Projekt sollte eine *.hex-Datei, die die kompilierte Firmware enthält. Verwenden Sie Ihre AVR Programmierer diese Datei an den Mikrocontroller zu schreiben.
Sie müssen die Fuse Bits des Mikrocontrollers zu konfigurieren. Die Einstellungen erklären es die internen RC-Oszillator verwenden, um den Clock-Divider, JTAG deaktivieren aktivieren. Meine Website bietet einen Taschenrechner für diesen Schritt. Die Sicherungen sind:
- NIEDRIGE Sicherung: 0x62
- HOHE Sicherung: 0xD1
Warnung!
Die Taktrate ist/wird mit 1 MHz eingestellt werden (weil der internen RC-Oszillator 8 MHz, und dann CLKDIV ist aktiviert, so dass es durch 8 geteilt wird). Ihr Programmierer muss eine ISP-Frequenz von 250 KHz unterstützen, um mit ihm zu arbeiten. Ich benutzte ein AVR-Dragon hat diese Einstellung in AVR Studio.
Wenn Sie AVRDUDE mit einem USBtinyISP verwenden (was ich auch versucht), musst du die Option "-B 256" um den gleichen Effekt zu erzielen.
AVRDUDE fehlt die Konfigurations-Datei-Eintrag für die ATmega165PA, also wenn Sie AVRDUDE verwenden müssen, bearbeiten Sie dann die "avrdude.conf" Datei selbst zum Hinzufügen eines benutzerdefinierten Eintrags für die ATmega165PA (meist Kopie Zeug aus ATmega645P, und ändern Sie die Gerät-Signaturen). Hier ist die Ergänzung, die ich in meiner eigenen "avrdude.conf" gemacht: http://www.frank-zhao.com/ledpocketwatch/avrdude_conf_entry.txt
Diese beiden Probleme wurden Probleme mit meinem USBtiny (was ich normalerweise empfehlen würde), aber da ich sowieso Atmel Studio 6.0 verwende, habe ich beschlossen, mein AVR-Dragon-Programmierer. Also vermieden habe ich diese beiden Probleme.