Paso 7: programación
Usted necesita un programador AVR con un estándar de 3 x 2 conectador de la ISP (el especie IDC) con 0,1" Brea pin. Conecte un jefe masculino 3 x 2 en el conector IDC y enchufe el otro extremo de la cabecera en el reloj de bolsillo PCB. Ver la orientación (la tecla cuadrada indica pin 1, el cable rojo indica pin 1, el conector también puede tener una flecha apuntando en el pin 1).
Si tu programador AVR suministra energía de destino, no inserte una batería. Si tu programador AVR no corriente blanco, luego inserte la batería.
En el paquete descargado para este proyecto, debe haber un archivo *.hex que contiene el firmware compilado. Utilice el programador AVR para escribir este archivo al microcontrolador.
Es necesario configurar los bits del fusible del microcontrolador. Los ajustes de dirán que utilice el oscilador RC interno, para permitir que el divisor del reloj desactivar el JTAG. Mi sitio web proporciona una calculadora para este paso. Los fusibles son:
- Fusible de baja: 0x62
- Fusible alta: 0xD1
¡ ADVERTENCIA!
La tarifa de reloj/se establecerá en 1 MHz (porque el oscilador RC interno 8 MHz, y luego CLKDIV es activado entonces es dividido por 8). El programador debe ser compatible con una frecuencia de ISP de 250 KHz para trabajar con él. Estaba usando un dragón del AVR, que tiene esta configuración en AVR Studio.
Si está usando AVRDUDE con un USBtinyISP (que también he probado), es necesario incluir la opción "-B 256" para lograr el mismo efecto.
AVRDUDE falta la entrada del archivo de configuración para la ATmega165PA, así que si usted debe usar AVRDUDE, editar el "avrdude.conf" archivo para añadir una entrada personalizada para el ATmega165PA (sobre todo copia cosas de ATmega645P y luego cambiar las firmas de dispositivo). Aquí es la que hice en mi propio "avrdude.conf": http://www.frank-zhao.com/ledpocketwatch/avrdude_conf_entry.txt
Ambos problemas estaban causando problemas con mi USBtiny (que normalmente recomiendo), pero desde que estoy usando el Atmel Studio 6.0 de todas formas, decidí usar mi programador AVR Dragon. Por lo que evita ambos problemas.