Étape 7: programmation
Vous avez besoin d’un programmeur AVR avec un standard 3 x 2 connecteur ISP (le genre d’IDC) avec goupille pas 0,1". Branchez le connecteur IDC d’un en-tête mâle de 3 x 2 et branchez l’autre extrémité de l’en-tête dans la montre de poche PCB. Regardez l’orientation (le coussin carré indique broche 1, le fil rouge indique la broche 1, le connecteur peut également avoir une flèche pointant sur la broche 1).
Si votre programmateur AVR alimente cible, puis de ne pas insérer une pile. Si votre programmateur AVR n’alimente pas cible, puis insérez la batterie.
Dans le package téléchargé pour ce projet, il faudrait un fichier *.hex qui contient le firmware compilé. Utilisez votre programmateur AVR pour écrire ce fichier dans le microcontrôleur.
Vous devez configurer les bits de fusible du microcontrôleur. Les paramètres dira à utiliser l’oscillateur RC interne, pour permettre le diviseur d’horloge désactiver le JTAG. Mon site Web fournit une calculatrice pour cette étape. Les fusibles sont :
- Fusibles basse : 0x62
- Fusible haute : 0xD1
Mise en garde !
La fréquence d’horloge est/sera fixé à 1 MHz (car l’oscillateur interne RC est de 8 MHz, et puis CLKDIV est activé, donc il est divisé par 8). Votre programmateur doit prendre en charge une fréquence ISP de 250 KHz afin de travailler avec elle. J’utilisais un AVR Dragon, qui a ce paramètre en AVR Studio.
Si vous utilisez AVRDUDE avec un USBtinyISP (que j’ai essayé aussi), vous devez inclure l’option "-B 256" pour obtenir le même effet.
AVRDUDE manque l’entrée de fichier de configuration pour le ATmega165PA, donc si vous devez utiliser AVRDUDE, puis modifiez le « avrdude.conf » fichier vous-même pour ajouter une entrée personnalisée pour le ATmega165PA (surtout copie stuff de ATmega645P et puis changer les signatures de l’appareil). Voici l’ajout, j’ai fait dans mon propre « avrdude.conf »: http://www.frank-zhao.com/ledpocketwatch/avrdude_conf_entry.txt
Ces deux problèmes étaient à l’origine des problèmes avec mon USBtiny (qui je recommanderais normalement), mais depuis que je suis sur Atmel Studio 6.0 en tout cas, j’ai décidé d’utiliser mon programmateur AVR Dragon. Donc j’ai évité ces deux problèmes.