26.10.12 Algoritmos de Programación
Todas la referencias "1a", "1b, están descritas en la tabla 26-18 de la página 317
del datasheet.
26.10.13 Entrando al Modo de Programación
1. Entrar a la instrucción AVR_RESET del JTAG y cambiar a 1 en el Registro
Reset.
2. Entrar a la instruccion PROG_ENABLE y cambiar a 0b1010_0011_0111_0000
en el Registro de habilitación del Programa.
26.10.14 Saliendo del Modo de Programación
1. Entrar a la instrucción PROG_COMMANDS.
2. Deshabilitar todas las instrucciones de programación no usar las
instrucciones de operación 11a.
3. Entrar a la instrucción PROG_ENABLE y cambiar a 0b0000_0000_0000_0000
en el Registro de habilitación del Programa.
4. Entrar a la instrucción AVR_RESET del JTAG y cambiar a 0 en el Registro
Reset.
26.10.15 Realizando el borrado del Chip
1. Entrar a la instrucción PROG_COMMANDS.
2. Empezar con el Borrado del Chip usando las instrucciones de programación
1a.
3. Verificar si el Borrado del Chip se ha completado usando las instrucciones de
programación 1b, o esperar por tWLRH_CE (referido en la Tabla 26-14 en la
pagina 306 datasheet)
26.10.16 Programando la Flash
Antes de programar en la Flash el Borrado del Chip, ver "Realizando el Borrado
del Chip"
1. Entrar a la instrucción PROG_COMMANDS.
2. Habilitar la escritura en la Flash usando la instrucción de programación 2a.
3. Cargar la dirección del byte bajo usando la instrucción de programación 2b.
4. Cargar la dirección del byte alto usando la instrucción de programación 2c.
5. Cargar la dirección del byte bajo usando la instrucción de programación 2d.
6. Cargar el dato usando las instrucciones de programación 2e, 2f, y 2g.
7. Repetir los pasos 5 y 6 para todas las palabras de instrucciones en la página.
8. Escribir la página usando la instrucción de programación 2h.
9. Verificar para la escritura de la Flash ha sido completada usando la
instrucción de programación 2i, o esperar por tWLRH (Referido en la Tabla 26-
14)
10. Repetir los pasos 3 y 9 hasta que todos los datos han sido programados.
Una más eficiente transferencia de datos puede ser lograda usando la
instrucción de programación PROG_PAGELOAD: