PDF de programación - In Circuit Serial Programming para QTQY

Imágen de pdf In Circuit Serial Programming para QTQY

In Circuit Serial Programming para QTQYgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 16 de Octubre del 2017)
1.014 visualizaciones desde el 16 de Octubre del 2017
110,3 KB
3 paginas
Creado hace 15a (23/04/2009)
COMENTARIO TECNICO

In Circuit Serial Programming para los MCUs HC908
QTxA / QYxA....
Por Ing. Daniel Di Lella – Dto. Técnico EduDevices – www.edudevices.com.ar
[email protected]

Para programar en circuito (In Circuit Programming o ICP) a la familia de
microcontroladores de Freescale HC908QTxA/ QYxA debemos armar uno de los circuitos
que se muestran abajo, en nuestra placa de aplicación o bien dejar las líneas necesarias en la
placa para que, haciendo uso de un circuito externo a la misma, podamos cumplir con dicho
cometido.
En el presente artículo daremos algunas técnicas para ahorrar líneas destinadas a la tarea de
ICP que el lector podrá aplicar si en la aplicación bajo desarrollo se toman cierta reservas
para que las mismas resulten efectivas y a la vez prácticas.

Estos micros pueden trabajar en modo monitor de alta tensión, si se aplica alta tensión al
pin de IRQ (+8V aprox.) , ó pueden trabajar en modo monitor forzado, si el vector de
reset contine en sus 2 bytes el valor $FF.
Luego de ser alimentado, el microcontrolador busca el vector de reset. Si está limpio ($FF
en sus 2 bytes) se produce un reset interno a la salida del cual ingresa a modo monitor sin
necesidad de aplicar alta tensión al pin de IRQ y además sin la necesidad de forzar
estados lógicos predeterminados en ciertas líneas I/O del MCU para forzar al MCU a
ingresar al modo monitor. El modo Monitor Forzado es entonces, el modo más
conveniente de utilizar pocas líneas durante el proceso de ICP de un HC908.
De este modo podremos Programar In Circuit (ICP) un microcontrolador nuevo o
previamente borrado, o sea con la memoria FLASH conteniendo $FF en todas sus
posiciones.

Reprogramación In Circuit.

Una vez programado, el vector de reset ya no está limpio ($FF en sus 2 bytes). Tiene el
valor de la dirección de inicio de nuestro código (inicio de programa).
Esto impide volver a ingresar en modo monitor forzado. Resulta necesario entonces
hallar una solución que nos permita borrar el vector de reset como mínimo, para luego
entrar en modo monitor forzado y desde allí borrar toda la memoria FLASH si ello fuera
necesario, para luego volver a programar el mismo con el nuevo código.
Para borrar el “Reset Vector” es necesario hacer una operación de “Mass Erase”
(Borrado en Masa de toda la memoria FLASH) desde el Modo Usuario o sea desde
nuestro propio código corriendo en el MCU.

Entonces para lograr ICP es necesario hacer un procedimiento de dos pasos:

1-Borrado total de la memoria Flash en modo usuario.
2-Reprogramación de la Flash en modo monitor forzado.

Borrado de la memoria Flash en modo usuario.

En el programa de usuario se debe chequear el estado de un pin de un puerto (línea I/O),
dejado disponible intencionalmente para tal fin. Este pin sirve para indicar que se desea
hacer un mass erase en forma inequívoca al MCU.
Si se desea hacer un mass erase, se configura el estado del pin de forma adecuada y esta
condición hace que el programa del usuario salte a ejecutar la rutina de mass erase
contenida en la ROM de la mayoría de los HC908 (ver sección “Monitor ROM” en el
Manual de Usuario del MCU).
La ejecución de mass erase toma muy pocos milisegundos si la frecuencia de bus es de
3.2Mhz proveniente del Oscilador Interno de los HC908Q.
Si el usuario desea, puede agregar un pequeño código corriendo en RAM (copiado
previamente desde la memoria FLASH conteniendo dicho código) que verifique si han sido
borradas las 2 posiciones utilizadas por el Reset Vector ($FFFE / $FFFF) y si ello no
ocurre, llamar nuevamente a la subrutina de borrado en masa en ROM hasta que ello
suceda.
La rutina se ejecutará hasta tanto el vector de reset se borre ($FF). Luego nuestro pequeño
código en RAM quedará en un “loop infinito” hasta que forcemos un Power On Reset
(POR) o un Reset y así estaremos listos para programar el MCU mediante el ingreso al
modo monitor forzado.

Reprogramación de la Flash ingresando al modo monitor forzado.

Se conecta la PC host en la que va a correr el programa de programación de la Flash a la
placa del usuario. Como el vector de reset está en blanco, al alimentar al MCU, este ingresa
en modo monitor forzado permitiendonos programar la memoria Flash. En realidad, con la
acción del “Mass Erase” previamente ejecutado por nuestro código original, obtendremos
una memoria FLASH totalmente limpia o borrada como si el MCU fuera “Virgen” o nuevo.

El lector puede obtener parte del código para efectuar el borrado en masa en modo usuario
utilizando las rutinas contenidas en ROM de los HC908, de los artículos “Uso de la Flash
como EEPROM” publicados en nuestro sitio web www.edudevices.com.ar
  • Links de descarga
http://lwp-l.com/pdf7193

Comentarios de: In Circuit Serial Programming para QTQY (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad