Академический Документы
Профессиональный Документы
Культура Документы
De la familia MC68HC908Qxx
Freescale Semiconductor
Electrocomponentes S.A.
Development Tools Sector
Mayo de 2007 – Versión 1.2
ELECTROCOMPONENTES S.A.
− Contenido:
ELECTROCOMPONENTES S.A.
Solis 225 / 229 (CP 1078 ) Buenos Aires - República Argentina
Tel: (54 11) 4372 – 1864 Fax: (54 11) 4325 - 8076
Control de Versiones:
1.0 - Introducción:
- MC68HC908QT1/QT2/QT4, MC68HC908QY1/QY2/QY4,
- MC68HC908QT1A/QT2A/QT4A, MC68HC908QY1A/QY2A/QY4A.
- MC68HC908QY8, MC68HC908QB8, MC68HC908QB4, MC68HC908QL4.
Los KIT's EVAL08, hán sido diseñados para manejarse en identico entorno a los ICS08 de
Freescale, son simuladores en circuito "en no tiempo real" y "Debugger / Emuladores en
Tiempo Real" que permiten la confección, edición, compilado y debugging de programas
bajo un mismo "entorno".
El entorno es denominado "WinIDE" (Windows Integrated Development Environment) y
permite realizar lo siguiente:
Además los EVAL08, tienen incorporados zocalos tipo ZIF (zócalo de inserción de
fuerza cero), que permiten programar la memoria Flash de los MCU's bajo emulación,
facilitando la tarea del diseñador ante multiples comprobaciones y pruebas de tiempo
real.
Las placas evaluadoras, vienen provistas de un “header” para cable plano que permiten
disponer pin por pin de todas las señales del MCU bajo emulación para su conexión con la
placa de proyecto del usuario.
3.1 - Descripción:
Con estos jumpers, se puede configurar el sistema para que funcione en los distintos modos
"monitor" (necesarios para la Simulación / Emulación En Circuito) y modo "usuario"
(modo normal de funcionamiento de cualquier MCU). En la siguiente tabla,
se describirán las posiciones de c/u de ellos para los distintos modos de funcionamiento.
La descripción de cada modo se tratará en la sección "Modos de Operación".
JUMPER: JP9 Æ VDD External Output (Salida de VDD por DIL socket)
JUMPER: JP10 Æ IRQ external pin (Salida del pin IRQ por DIL socket)
1 2
1 - VSS 2 - VDD
3 - PTB0 4 - PTB7
5 - PTB1 6 - PTB6
7 - PTA0 8 - PTA5
9 - PTA1 10 - PTA4
11 - PTB2 12 - PTB5
13 - PTB3 14 - PTB4
15 - IRQ/ 16 - PTA3/
15 16
PTA2 RST
1 2
1 - VSS 2 -VDD
3 - PTA0 4 - PTA5
5 - PTA1 6 - PTA4
7 - IRQ/ 8 - PTA3/
7 8
PTA2 RST
La distribución de pines de los cabezales DIP es idéntica pin a pin a la de los MCUs
en versiones DIP, y es la siguiente:
CABEZAL DIP 16
16
1
2 1
15 16 8 9
CABEZAL 8 PINES
1 2 1 8
7 8 4 5
Modo Usuario.
Modo Monitor.
Este modo permite el completo testeo y programación del dispositivo por medio de una
interface de un solo hilo con el Host ( PC ), este modo también es conocido como "Modo
Emulación".
Para la línea HC908QTx / HC908QYx , existen 3 distintas formas de poner al MCU en
modo monitor, estas son:
El Modo Monitor 1 es el modo monitor con mayor "jerarquia" dentro de los distintos
modos monitor, ya que permite entrar en este modo SIN importar el estado de la memoria
FLASH del microcontrolador (escrita o barrada). Esto es particularmente útil cuando se
quiere depurar código dentro de la memoria FLASH del MCU conteniendo el programa a
"depurar" lo que obliga a salir y entrar en el modo monitor en más de una ocasión.
En el Modo Monitor 1, todos los pines I/O con excepción de PTA0, retienen sus funciones
normales. Los puertos PTA1 y PTA4 Reset, e IRQ, son controlados para entrar en este
modo, pero después de completarse el ciclo de “Power On Reset” pueden “liberarse” para
el uso por parte del programa del usuario (el sistema libera PTA1, PTA4 y Reset en forma
automática !!!).
La tabla de seteos de jumpers permiten configurar al EVAL08QTY para trabajar en este
modo (ver tablas y diagramas circuitales).
El modo Monitor Forzado con IRQ = VDD, es un modo alternativo "forzado" de ingreso al
estado "monitor" provisto por la línea HC908Q para facilitar la programación del MCU
cuando este tiene su memoria totalmente borrada (con $FF) o bién con el Reset Vector
en blanco (con $FF). En esta condición, el MCU necesita menos pines para garantizar el
modo monitor, ya que se liberan de imponerle un nivel lógico previo los pines PTA1 y
PTA4 , tambien se libera el control del pin de RESET. Solo deben imponerse niveles
lógicos previos en los pines IRQ y PTA0 , tambien se necesita imponer el oscilador
externo en el pin OSC1.
Este modo (Monitor 2) se mantiene válido aún finalizada la grabación de la memoria
FLASH , incluyendo el Reset Vector con un valor distinto de $ FF, si y solo si , NO se
efectua un RESET del microcontrolador o un Power On Reset del mismo. Si ello ocurre,
solo se puede volver a la condición "Monitor" por el modo monitor Alta Tensión
(Monitor 1).
La tabla de seteos de jumpers permiten configurar al EVAL08QTY para trabajar en este
modo (ver tablas y diagramas circuitales).
El modo Monitor Forzado con IRQ = VSS (IRQ = 0), al igual que en el caso anterior,
es un modo alternativo "forzado" de ingreso al estado "monitor" provisto por la línea
HC908Q para facilitar la programación del MCU cuando este tiene su memoria
totalmente borrada (con $FF) o bién con el Reset Vector en blanco (con $FF).
En esta condición, al igual que en la anterior, el MCU necesita menos pines para garantizar
el modo monitor, pero la diferencia fundamental es que NO necesita el uso de un
oscilador externo, ya que se activa el OSCILADOR INTERNO que posee esta línea para
garantizar la comunicación con el exterior.
Solo deben imponerse niveles lógicos previos en los pines IRQ y PTA0.
Este modo (Monitor 3) se mantiene válido aún finalizada la grabación de la memoria
FLASH , incluyendo el Reset Vector con un valor distinto de $ FF, si y solo si , NO se
efectua un RESET del microcontrolador o un Power On Reset del mismo. Si ello ocurre,
solo se puede volver a la condición "Monitor" por el modo monitor Alta Tensión
(Monitor 1).
La tabla de seteos de jumpers permiten configurar al EVAL08QTY para trabajar en este
modo (ver tablas y diagramas circuitales).
7.0 - Software
7.1 - Instalación
Para instalar el software, abra el directorio “CD2” del CD-ROM de cortesia y elija la
siguiente ruta:
EVAL08QTY\CD2\HC08\HC08QTQYZ\ICS08QTQYZ.EXE
Hacer doble click sobre el archivo para activar el programa de auto-instalación WIZARD
que guiará al usuario en el proceso de instalación.
Si no se es un usuario experimentado, se sugiere seleccionar los seteos por default en cada
pregunta, y el programa correrá sin problemas. Las versión de software aquí descripta, es
compatible con Windows 95 / 98 y Windows ME.
Si no se dispone del CD-ROM de cortesia o para actualizaciones de Software, por favor
chequee y registrese en el:
Conecte el cable serial ( DB9 / DB9 ) provisto con el EVAL08QTY, al COM1 o COM2
de la PC y al Puerto RS - 232C “Monitor Mode” ( P1 ) del sistema de evaluación.
El software inicialmente está configurado para conectar la placa por el COM1, y un
Baud Rate de 9600, si esos no fueran los correctos, pueden cambiarse por menú, según
elección.
7.2 - WinIDE
El próximo paso que necesita el archivo ASM, es ser ensamblado, creando un código
objeto en formato S19 (formato Motorola) para ”bajarlo” a la placa.
Esta tarea se realiza haciendo un click en el botón “ASSEMBLER” en la barra de
herramientas que dispone el WinIDE . Si se encuentra un error (detectado por el
compilador), el editor resaltará la línea de código conteniendo el error y detendrá la
compilación.
El proceso se repetirá hasta que no se encuentre error alguno, y el archivo así generado
quedará listo para grabarse en la memoria FLASH del HC908QTx / HC908QYx.
Simulador Puro
Debugger en
Simulador Programador Tiempo Real
Compilador En - Circuito Memoria
FLASH
7.3 - Programador
Target MCU Security Bytes Æ "Attempt ALL Known Security Codes in order"
Algoritmos disponibles:
Para ICS08QTQYZ:
7.4 - Seguridad.
En el caso que luego de múltiples intentos fallidos por pasar la seguridad terminen sin
éxito, se tiene la opción de saltar este paso y entrar al MCU en el modo “seguro” por
medio de una ventana que indicará ello. De esta forma solo se tendrá acceso al borrado
total del dispositivo, para luego (con el mismo totalmente borrado) proceder por medio del
WinIDE a la grabación del mismo.
Nota importante:
El entorno WinIDE opera como un editor standard de archivos ASCII (tal como un archivo
assembler) para Windows e incluye algunos botones "rápidos" para llamar ensambladores
propios, compiladores y debuggers. En conjunción con el ensamblador CASM08Z y el In -
Circuit Debugger ICD08SZ, este ambiente permite que los archivos ensamblados puedan
ser "descargados" y testeados mientras el código fuente original es modificado y
ensamblado.
El ICS08xxZ toma entradas y salidas del dispositívo desde una placa externa o Pod
(EVAL08QTY) conectada a la PC (Host). Los puertos I/O pueden ser usados por medio de
la conexión del header de Emulacion (zócalo DIL y cable plano) del EVAL08QTY a la
tarjeta del usuario (ver 4.0 - ).
El ICS08xxZ es un debugger "En - No - Tiempo - Real". El código del MCU corre solo
tan rápido como pueda ser simulado por el PC Host. Para ejecución en Tiempo - Real, use
el "en Tiempo Real In - Circuit Debugger ICD08SZ".
El ICS08xxZ acepta cualquier archivo tipo "S" Motorola S19 standard como entrada para la
simulación. Estos archivos objetos pueden ser creados por cualquier ensamblador HC908,
tal como el CASM08SZ.
Sin embargo, para efectuar debugging a nivel "fuente" de estos archivos (en la ventana de
Código), deben cargarse archivos de nivel fuente del tipo "map" P & E compatibles.
Estos archivos "map" pueden ser generados atraves del CASM08Z. Si un compilador de
Terceras partes (Assembler o C) es usado, el compilador debe ser capaz de producir
archivos de nivel fuente tipo map , P & E compatibles.
1. No debe cambiarse el bit 0 del registro Data Direction o el Data Value del PORTx
(donde "x" Puede ser "A" o "B") (1-Wire Communication, ver el Data Book del
dispositívo específico). Cuando se escribe, este bit debe ser seteado a "0".
2. No habilitar Keyboard Interrupts (KBI) para el bit 0 del PORTx (donde "x" puede ser
"A" o "B")
5. Los registros de Hardware Breakpoint están reservados para ser usados por el
ICD08SZ debugger. El uso de estos registros para otros propósitos puede NO
funcionar.
7. El monitor para debug integrado dentro de los procesadores HC908, usa hasta 13 bytes
del stack. No escribir desde la dirección (SP-13) a SP (Cargar un programa en la
RAM).Ver cuidadosamente la RAM disponible para cada dispositívo específico.
3. Ejecutar una instrucción SWI mientras se corre un programa (dentro del programa) es
funcionalmente equivalente a activar un breakpoint, excepto que la ejecución se
detendrá en la instrucción siguiente al SWI.
4. Para debug desde FLASH y ver el código fuente mientras se hace un "stepping",
usar el comando LOADMAP. Este carga la información del código fuente contenido en
los archivos de formato de archivos .MAP.
Para inicializar y usar el ICD08SZ, por favor lea cuidadosamente la sección 7 (ICD08SZ -
In - Circuit Debugger) y más secciones del M68ICS08 USER'S MANUAL
(ICS08GPr1.pdf) dentro del CD-ROM del EVAL08QTY.
Para mayor información de uso, ejemplos y tutoriales ver en el Web Site de Freescale
(www.freescale.com en la sección Codewarrior).
Eligiremos la opción “Create New Project” para armar nuestro nuevo proyecto .....
4) Al hacer click en el botón “siguiente” pasamos a una pantalla (Figura 4.-) que nos
permite adicionar cualquier archivo al proyecto, para incluirlo en nuestro trabajo. En
nuestro caso, saltaremos esta opción e iremos a la próxima pantalla.
6) Al hacer click en el botón “Finalizar”, se generarán todos los archivos del proyecto, se
lanzará la pantalla principal de trabajo del mismo y se podrá ver una interface gráfica
con los pines y los distintos módulos que constituyen el MCU (Figura 6.-).
Ahora nos queda generar el código de inicialización del Timer para producir una
interrupción periódica que será la base de nuestro sistema de disparo de tareas, inicializar
los puertos I/O, los registros de configuración, etc., etc.
Para hacer esto, usaremos el generador de código asistido “Processor Expert” haciendo
click primeramente en el modulo CPU para configurar el Clock del sistema y otros aspectos
como se observa en la figura 7.-
• Clock ---- Externo ---- 9,8304Mhz (lo inyectará el EVAL08QTY por pin OSC1).
• LVI ----- Habilitado ---- 3V trip point ----- LVI deshabilitado en modo STOP.
• Interrupciones Habilitadas.
• Vector de Reset apuntando a la etiqueta “_Startup”
• Pin de Reset externo no disponible.
Según lo sugerido por la ventana de ayuda una vez generado el código, procedemos a
comentar y descomentar lo siguiente:
Una vez introducido nuestro código, debemos compilarlo haciendo click en el botón
“Make” en la barra de proyecto o en la barra de herramientas general. Si no hemos tenido
algún error de compilación estaremos yá en condiciones de pasar a la etapa de
EMULACION EN TIEMPO REAL de nuestro programa.
Para realizar ello, primero deberemos establecer una conexión entre el CodeWarrior 5.0 y
nuestro sistema de desarrollo EVAL08QTY que iremos configurando a lo largo de las
siguientes pantallas luego de hacer click en el botón “Debugger” (fecha verde en la barra
de proyecto).....
Hacemos click en el icono “contact target with these sedttings....” para establecer la
comunicación con la placa EVAL08QTY y entrar al entorno de Debugging propiamente
dicho.
Una vez que nuestro sistema sortea las etapas de seguridad con éxito, nos aparecerá una
ventana (Erase and Program Flash?) preguntando por el borrado y grabación de la
FLASH antes de ingresar al modo de Debugging propiamente dicho. Haremos Click en el
icono “Yes” para proceder a borrar y grabar nuestro programa en la memoria flash e
ingresar al modo Debugging.
Bibliografía:
- Ademdum:
P1
JP9
JP2
JP5
JP1
JP3 JP6
JP7
JP4
JP10
JP8
Cuando se instala el aplicativo WinIDE ICS08QTQYZ para los MCUs HC908Q, deben
verificarse los seteos de "origen" (por default) que presentan las distintas carpetas dentro de
la opción "Environment" , ya que podrían contener errores de direccionamiento que darían
como resultado errores al ejecutar una aplicación dada desde el entorno WinIDE.