26.8.2 Algoritmo de Programación Serial
Cuando la escritura de datos seriales para el ATmega164P/324P/644P, el dato
es bloqueado en el flanco de subida del SCK.
Cuando la lectura de datos seriales para el ATmega164P/324P/644P, el dato es
bloqueado en el flanco de bajada del SCK.
Para programar y verificar el ATmega164P/324P/644P en el modo de
programación serial, la siguiente secuencia es recomendada:
1. Secuencia de Encendido:
Aplicando Energía entre Vcc y GND mientras el
y SCK son puestos en
"0". En algunos sistemas la programación no puede garantizar que SCK es
mantenida en bajo durante el encendido. En este caso, el
daría pulsos
positivos de los dos últimos ciclos de reloj del CPU después el SCK ha sido
puesto en "0".
2. Esperar por lo menos 20 ms y habilitar la programación serial enviando la
instrucción de habilitación de programación al pin MOSI.
3. Las instrucciones de Programación serial no trabajarían si la comunicación
esta fuera de sincronización. Cuando en la sincronización, el segundo byte
(0x53), regresaría cuando emite el tercer byte de la habilitación de la instrucción
de programación. Por consiguiente el eco es correcto o no, para todos los cuatro
bytes de las instrucciones serian transmitidas. Si la 0x53 no retrocedería, dar
con un pulso positivo y emitir el nuevo comando de habilitación de
programación.
4. La flash programa una página en un momento. La pagina de memoria carga
un byte en un momento supliendo el 7 LSB de la dirección y datos ambos con la
instrucción Cargar la pagina de la memoria de programa. Para asegurar la carga
correcta de la página, el byte bajo del dato sería cargado antes que el byte alto
del dato esto es aplicado para las direcciones dadas. La página de la memoria
de programa es almacenada cargando el instrucción de escritura de pagina de
la memoria de programa con las líneas de dirección 15..8. Antes emitiendo este
comando, estar seguro que la instrucción cargar el byte de dirección extendido
ha sido usado para definir la MSB de la dirección. El byte de dirección
extendida es almacenado hasta que el comando es re-emitido, por ejemplo, los
comandos necesitan solo ser emitidos para la primera página, y cuando cruza el
limite de la palabra 64K. Si
no es usado, el usuario esperaría al último
tWD_FLASH antes de emitir la siguiente página. Ver Tabla 26-16. Accediendo a
la interfase de programación serial antes que la operación de escritura de la
Flash este completada puede resultar una programación incorrecta.
5. El arreglo de la
EEPROM es programado con un
byte a la vez
proporcionando las direcciones y datos junto con las instrucciones de Escritura
apropiadas. La localidad de memoria de la EEPROM es primero
automáticamente borrada antes de que el nuevo datos es escrito. Si el polling no