Stap 7: programmeren
U moet een AVR-programmer met een standaard 3 x 2 ISP aansluiting (de IDC-soort) met pin worp 0.1". Steek een 3 x 2 mannelijke koptekst in de IDC-stekker en steek het andere uiteinde van de kop in het zakhorloge PCB. Bekijk de afdrukstand (de vierkante pad geeft pin 1, de rode draad geeft pin 1 aan, de connector wellicht ook een pijl op pin 1).
Als uw AVR-programmer doel macht levert, dan moet u niet een batterij. Als uw AVR-programmer niet de macht van het doel levert, dan de batterij.
In de gedownloade pakket voor dit project, moet er een *.hex-bestand waarin de gecompileerde firmware. Gebruik uw AVR-programmer te schrijven van dit bestand de microcontroller.
U moet configureren van de fuse-bits van de microcontroller. De instellingen zal vertellen dat het gebruiken van de interne RC-oscillator, om te schakelen van de klok scheidingslijn, JTAG uitschakelen. Mijn website biedt een rekenmachine voor deze stap. De zekeringen zijn:
- LAGE Fuse: 0x62
- HOGE Fuse: 0xD1
Waarschuwing!
De kloksnelheid is/wordt ingesteld op 1 MHz (omdat de interne RC-oscillator 8 MHz is, en vervolgens CLKDIV is ingeschakeld, zodat het wordt gedeeld door 8). Uw programmeur moet een ISP-frequentie van 250 KHz ondersteunen om mee te werken. Ik was met behulp van een AVR Dragon, heeft deze instelling in AVR Studio.
Als u AVRDUDE gebruikt met een USBtinyISP (die ik ook geprobeerd), moet u de optie "-B 256" om het zelfde effect te bereiken.
AVRDUDE ontbreekt de optie configuratie bestand voor de ATmega165PA, dus als u AVRDUDE moet gebruiken, wijzig de "avrdude.conf" bestand zelf om een aangepaste vermelding toevoegen voor de ATmega165PA (meestal kopie spullen van ATmega645P, en wijzig het apparaat handtekeningen). Hier is de toevoeging die ik heb in mijn eigen "avrdude.conf gemaakt": http://www.frank-zhao.com/ledpocketwatch/avrdude_conf_entry.txt
Beide van deze problemen werden veroorzaakt problemen met mijn USBtiny (die ik normaal zou raden), maar aangezien ik gebruik Atmel Studio 6.0 hoe dan ook, heb ik besloten om mijn AVR Dragon programmeur gebruiken. Dus vermeden ik beide kwesties.