Вы находитесь на странице: 1из 36

EVAL08QTY

MANUAL DEL USUARIO


Emulador En Circuito para
Todos los Microcontroladores

De la familia MC68HC908Qxx
Freescale Semiconductor
Electrocomponentes S.A.
Development Tools Sector
Mayo de 2007 – Versión 1.2
ELECTROCOMPONENTES S.A.

− Contenido:

------ 1.0 - Introducción


------ 2.0 - Características Generales
------ 3.0 – Seteos de Jumpers
------ 4.0 – Headers de Emulación para la Placa de Usuario ( DIL Sockets )
------- 5.0 – Puerto de Comunicación
------ 6.0 – Modos de Operación
------ 7.0 - Software
------- 8.0 - In - Circuit Simulator, Interface de Usuario
------- 9.0 - In - Circuit Debugger, Interface de Usuario.
----- 10.0 - Metrowerks, CodeWarrior IDE para HC908
------- Addemdum : Ubicación de Jumpers y otros temas útiles.

Diseñado y Desarrollado por:

Ing. Daniel Di Lella

Dedicated Distri. Field Application Engineer ( D.D.F.A.E ) for Freescale


Semiconductor products & Technical Consult for
ELECTROCOMPONENTES S.A.

Comentarios al Autor vía E-Mail: dilella@arnet.com.ar

Comentarios / Sugerencias & Soporte Técnico:

ELECTROCOMPONENTES S.A.
Solis 225 / 229 (CP 1078 ) Buenos Aires - República Argentina
Tel: (54 11) 4372 – 1864 Fax: (54 11) 4325 - 8076

Web Site: www.electrocomponentes.com

E-mail comercial: ingenieria@electrocomponentes.com

E-mail soporte técnico: fae@electrocomponentes.com

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 2


ELECTROCOMPONENTES S.A.

Control de Versiones:

Versión 1.2 – Mayo 2007.

• Se corrigieron errores en la configuración de jumpers en la sección “10 – Metrowerks,


CodeWarrior IDE para HC908”.

• Se aclararon limitaciones en la ejecución de la Simulación En Circuito para la nueva


familia HC908QTxA / QyxA, “8.0- In Circuit Simulator – Interface de Usuario”.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 3


ELECTROCOMPONENTES S.A.

1.0 - Introducción:

El propósito de este manual es describir el funcionamiento del sistema EVAL08QTY y


dar instrucciones paso a paso que permitan el uso de esta placa de evaluación para los
nuevos y potentes microcontroladores de 8 y 16 pines de la familia "NITRON" HC908Q
de Freescale Semiconductor como lo son los actualmente disponibles:

- MC68HC908QT1/QT2/QT4, MC68HC908QY1/QY2/QY4,
- MC68HC908QT1A/QT2A/QT4A, MC68HC908QY1A/QY2A/QY4A.
- MC68HC908QY8, MC68HC908QB8, MC68HC908QB4, MC68HC908QL4.

El sistema EVAL08QTY permite usar (“correr”) al MCU bajo evaluación tanto en el


modo “usuario” ( user mode ) como en el modo “monitor” ( monitor mode ), lo que le
otorga una gran flexibilidad de uso.

2.0 - Características Generales:

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:

- Manejo total de registros del CPU, memoria RAM, Flash, y registros


generales del MCU.

- Introducción de hasta 64 "Breakpoints" por soft, en cualquier posición del


programa, también disparado por un valor de Acumulador, o por el Stack
Pointer (SP) ( solo en el modo ICS , NO DISPONIBLE en el modo IDS
(Debbuger en Tiempo Real) ).

- Modalidades de ejecución "paso a paso", continuo, o "pasos multiples" , con


visualización de los estados reales de registros y memorias.

- En el modo "Debbuger", puede correr en tiempo real desde RAM o desde


Flash ( en este caso solo se permite un solo "hardware" Breakpoint ).

- Posibilidad de elegir entre "Modo Simulación" , "Modo Emulación" y


"Modo Emulación en Circuito en tiempo Real".

- Creación de "macros" para ejecución automática de programas.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 4


ELECTROCOMPONENTES S.A.

- Armado de "carpetas" de proyecto con todos los archivos involucrados en


el mismo.

- Visualizacion en pantalla de registros del CPU, ventana de memoria,


variables elegidas por el usuario, etc.

- Verdadero nivel "simbólico" del programa bajo emulación ( conserva nombres


de variables y etiquetas, sin reemplazarlas por su verdadera posición ).

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.0 - Seteos de Jumpers:

Varios Jumpers fueron agregados al sistema de evaluación para permitir un fácil y


rápido seteo del MCU en los distintos modos de funcionamiento. Además se colocaron
jumpers que posibilitan funciones adicionales como:

- Habilitación / Deshabilitación de la salida de tensión de alimentación ( VDD )


en el zócalo para emulación del MCU.
- Habilitación / Deshabilitación de la salida física del pin IRQ del chip en el
Zócalo para emulación del MCU.
- Selección de la tensión de Trabajo del MCU (VDD = 5Vdc ó VDD = 3Vdc)
- Habilitación para el uso de gran variedad de pines del MCU en los distintas
alternativas del modo "monitor".

3.1 - Descripción:

JUMPER : JP1 Æ Selección de la Tensión de Alimentación al MCU.

JP1 Æ en posición 1-2 Æ VDD = 5Vdc (MCU alimentado con 5Vdc)


JP1 Æ en posición 2-3 Æ VDD = 3Vdc (MCU alimentado con 3Vdc)

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 5


ELECTROCOMPONENTES S.A.

JUMPERS: JP2/JP8 Æ Selección de Modos "Monitor" y "Usuario".

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".

MODO JP2 JP3 JP4 JP5 JP6 JP7 JP8


MONITOR 1
IRQ=Vhigh
1-2 1-2 1-2 1-2 1-2 1-2 1-2
MONITOR 2
IRQ=VDD
1-2 2-3 2-3 1-2 2-3 1-2 2-3
MONITOR 3
IRQ=GND
1-2 2-3 2-3 1-2 2-3 2-3 xx
USUARIO 1
OSC=9,8304Mhz
1-2 2-3 2-3 1-2 2-3 1-2 2-3
USUARIO 2
OSC=INTERNO
2-3 2-3 2-3 1-2 2-3 1-2 2-3
USUARIO 3
OSC=INTERNO
2-3 2-3 2-3 2-3 2-3 1-2 2-3

JUMPER: JP9 Æ VDD External Output (Salida de VDD por DIL socket)

JP9 Æ CLOSE Æ VDD external output disponible en conector DIL socket.

JP9 Æ OPEN Æ VDD external output NO disponible en conector DIL socket.

JUMPER: JP10 Æ IRQ external pin (Salida del pin IRQ por DIL socket)

JP10 Æ CLOSE Æ IRQ external pin disponible en conector DIL socket.

JP10 Æ OPEN Æ IRQ external pin NO disponible en conector DIL socket.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 6


ELECTROCOMPONENTES S.A.

4.0 - HEADER DE EMULACION PARA LA PLACA DEL USUARIO

El sistema EVAL08QTY dispone de 2 (dos) “headers” o tiras de pines para conectores de


cable plano especialmente diseñados para conectar “cabezales” DIP de 16 pines y
8 pines que le permiten al sistema “emular” al MCU directamente en la placa del usuario
bajo desarrollo.
De esta forma el EVAL08QTY asume las funciones del “chip”, con la flexibilidad que le
otorga la conexión con una PC y el set de herramientas de software disponible.

Asignación de pines en el “Header” P2:

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

Asignación de pines en el “Header” P3:

1 2
1 - VSS 2 -VDD
3 - PTA0 4 - PTA5
5 - PTA1 6 - PTA4
7 - IRQ/ 8 - PTA3/
7 8
PTA2 RST

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 7


ELECTROCOMPONENTES S.A.

CABEZALES DIP DE 16 / 8 PINES:

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

5.0 - Puertos de Comunicación.

El EVAL08QTY posee 1 puerto de comunicación del tipo RS - 232C con conector


DB9 Hembra con la siguiente función:

- Conector P1 ----- Conector RS - 232C para conexión a PC, utilizado por el


sistema cuando se está en el “modo monitor” y permite
que la PC tome control del EVAL08QTY (emulación, debugging,
programación de la flash, etc.)

6.0 - Modos de Operación

Los MC68HC908QTx / QYx pueden operar en el “modo usuario” en forma


estándar o en un modo llamado “monitor”. Esta sección describirá estos modos ,
el uso de cada uno y como entrar en el EVAL08QTY.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 8


ELECTROCOMPONENTES S.A.

Modo Usuario.

Este es el modo de operación estándar del dispositivo (y de cualquier


microcontrolador) en el cual el mismo se encuentra bajo el control del programa de
aplicación del usuario (el que confeccionó el usuario en forma previa).
Cualquier interacción externa debe ser manejada por el programa hecho por el usuario.
Este modo está activo en cualquier momento que se lo requiera y no es necesario
entrar al modo monitor.

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:

- Modo Monitor Alta Tensión (IRQ = Vhigh)(Monitor 1).


- Modo Monitor FORZADO (IRQ = VDD)(Monitor 2).
- Modo Monitor FORZADO (IRQ = VSS)(Monitor 3).

Modo Monitor Alta Tensión (Monitor 1):

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).

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 9


ELECTROCOMPONENTES S.A.

Modo Monitor FORZADO (IRQ = VDD) (Monitor 2):

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).

Modo Monitor FORZADO (IRQ = VSS) (Monitor 3):

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

Para este Kit , se sugiere el uso de la versión ICS08QTQYZ , un ambiente de desarrollo


integrado de Motorola y P&E Microcomputer Systems Inc. el cual le permitirá al usuario
comunicarse con la placa de evaluación usando el “modo monitor” de los HC908QTx /
HC908QYx.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 10


ELECTROCOMPONENTES S.A.

En esta sección se describirán los procedimientos para ensamblar código y programar la


memoria FLASH con el EVAL08QTY. Se asume que el usuario tiene conocimientos de
hardware de PC y de entornos de aplicación Windows.
Se sugiere consultar el manual de referencia del MCU bajo estudio ( M68HC908QY4/D,
bajo el nombre de archivo HC908Q_DATA_BOOK.PDF ), y el Manual del Usuario del
M68ICS08 ( M68ICS08SOM/D, bajo el nombre de archivo 908som.pdf ) que se
encuentran incluidos en el CD-ROM de cortesia.

Si se desea obtener notas de aplicación, manuales, y otros adicionalmente, chequee el Web


Site de Freescale http:// www.freescale.com sección "Microcontrollers"

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:

Web Site de P&E Microcomputer Systems Inc. http://www.pemicro.com/

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

Una vez instalado el ICS08QTQYZ, se dispondrá de una serie de iconos


(archivos ejecutables) dentro de la carpeta principal del mismo. Se deberá correr primero
WinIDE.EXE, que es un programa editor y funciona como un lanzador ( shell ) para otros
módulos. El programa de aplicación DEMO_QT1.ASM será automáticamente abierto
cuando se comience con el WinIDE, pero esto puede cambiarse y abrirse desde el menú de
archivos.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 11


ELECTROCOMPONENTES S.A.

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

Barra de Herramientas del WinIDE.

7.3 - Programador

Antes de programar o realizar alguna comunicación con la placa, se deben presetear


los jumpers de la misma en el modo “Monitor Mode” (Modo Monitor 1, por Default)
(ver tablas y circuitos) en 9600 Baud (seteado de fábrica).
Cuando se selecciona el módulo de programación (“Programmer”), y previamente se
energiza el sistema (LED LD2 Rojo encendido), se establece la comunicación con la placa
y se desplegará un cuadro de comunicaciones (ver figura) que debe setearse de la siguiente
forma:

Target Hardware Type Æ CLASS I ....... (Power Controlled via DTR)

Class I, II, III, IV - Settings Æ Serial Port : 1, 2 , o el que corresponda en la PC.


Æ Baud : 9600 Bps

Target MCU Security Bytes Æ "Attempt ALL Known Security Codes in order"

Tildar el casillero Æ "Show this dialog before attempting to contact the


target 68HC08 Board"

Hacer "Click" en el cuadro Æ "Contact Target with these Settings"

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 12


ELECTROCOMPONENTES S.A.

En este estado, se efectuará un "ciclado de la alimentación del MCU bajo desarrollo" en


forma totalmente automática entre la placa y la PC (indicado por LED LD1 Amarillo
“System Ready” , LED Æ ON Æ MCU Power – On , LED Æ OFF Æ MCU Power - Off
), y dependiendo del estado del sistema esto puede ser efectuado multiples veces.
Cada vez que se remueva la alimentación de la placa (por medio de J1/CN1, LED LD2
Rojo Æ OFF), se debe esperar por lo menos 1 segundo para reanudar la alimentación, de
esta forma se asegurará que el MCU efectúe su ciclo de “Power On Reset”.
Después de pasar el mecanismo de seguridad, se mostrará al usuario un cuadro de elección
del “algoritmo” de programación (contiene rutinas especiales para programar al dispositivo
elegido, ver tabla abajo). Seleccionar el algoritmo adecuado para el MCU bajo
programación. De esta forma el dispositivo ha sido inicializado y está listo para su borrado
y posterior reprogramación.

Algoritmos disponibles:

Para ICS08QTQYZ:

− 908_qt1.08p --- Para HC908QT1


908_qt2.08p --- Para HC908QT2
908_qt4.08p --- Para HC908QT4
908_qy1.08p -- Para HC908QY1
908_qy2.08p -- Para HC908QY2
908_qy4.08p -- Para HC908QY4
908_UserMon.08p --- Para usar los HC908Q en el modo "Monitor"
sin necesidad de ponerlos en dicho modo
(modo usuario, con programa "residente" en
FLASH, ver AN2305 de Freescale)

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 13


ELECTROCOMPONENTES S.A.

7.4 - Seguridad.

Si por distintas circunstancias, no se pudiera superar el mecanismo de seguridad en forma


exitosa, referirse a la sección 9.4 del manual de referencia del HC908QTx / HC908QYx,
para conocer como trabaja el mismo. El mecanismo de seguridad implementado en el
MCU, previene todo intento de observar el contenido de la memoria Flash, por parte de
personas extrañas al programa. Solo el autor del programa puede acceder a todas las
funciones del modo “monitor”, quedando solo disponible para las personas no autorizadas
la función “Borrado total del MCU”.

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.

Tildar IGNORE para "saltar" la seguridad


y entrar en MODO "Seguro" al MCU

8.0 - ICS08xxZ In-Circuit Simulator, Interface de Usuario.

Nota importante:

Debido a que recientemente Freescale Semiconductor ha lanzado al mercado la nueva


familia HC908QTxA / QYxA, con notables ventajas frente a la familia HC908QT/QY
clásica (conversor A/D de 10 bits, 3 frecuencias de oscilador interno, 3 modos de cristal
externo, conversión A/D a baja velocidad de clock, etc.), la Simulación En Circuito para
esta nueva familia NO ES POSIBLE, ya que se produce un error al querer cargar un
pequeño programa de control en la memoria RAM de los nuevos “Q”. Hasta el momento no
se contempla corrección alguna en la Simulación En Circuito para esta nueva familia, si el
usuario quisiera utilizarla, deberá reemplazar los HC908QTxA / QYxA, por los clásicos
HC908Q. La SIMULACIÓN PURA (sin hardware) funciona sin problemas.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 14


ELECTROCOMPONENTES S.A.

8.1 - ICS08xxZ Descripción.

El ICS08xxZ (donde "xx" es "QTQY" para dispositívos HC908QTx / HC908QYx, etc.)


In - Circuit Simulator, es un componente de "depuración de código" de un completo
ambiente de desarrollo cuando se usa en conjunto con el entorno de edición WinIDE, el
Compilador assembler en linea CASM08Z, el programador de memoria FLASH
PROG08SZ, y el In - Circuit Debugger (Emulador en Tiempo Real) ICD08SZ.

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.

8.2 - ICS08xxZ , Velocidad de Simulación.

El usuario debe tener presente de la diferencia existente entre Simulación "pura" y


Simulación "In - Circuit".
La simulación pura, es por lo general mucho más rápida, pero no envuelve entradas o
salidas reales.
El software puede setearse para simulación pura desde el arranque, usando el comando
SIM08.
Adicionalmente, si la alimentación del sistema EVAL08 se encuentra cortada al comienzo
(arranque), el usuario tendrá la opción de elegir "simulación" desde el botón de la ventana
de error de comunicación.
La Simulación En - Circuito es más lenta pero envuelve salidas y entradas reales.
El comando POD permite al usuario reconectar el módulo para la Simulación En - Circuito.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 15


ELECTROCOMPONENTES S.A.

8.3 - Requerimientos del Sistema para el ICS08xxZ.

El ICS08xxZ corre bajo entornos Windows 95 o versiones posteriores.

El computador debe tener un mínimo de 5 Mbytes de memoria RAM (memoria de sistema)


disponible para procesos de ensamblado, y también suficiente espacio en disco para
almacenar los archivos que el ICS08xxZ crea.

8.4 - Comenzando con el ICS08xxZ.

Para inicializar y usar el ICS08xxZ, por favor lea cuidadosamente la sección 5


(ICS08Z - In - Circuit Simulator User Interface) y más secciones del M68ICS08 USER'S
MANUAL (ICS08GPr1.pdf, o 908som.pdf) dentro del CD-ROM de cortesia.

9.0 - ICD08SZ In-Circuit Debugger.

9.1 - MON08 , Limitaciones en el Debugging.

El debugger emplea un set de comandos que le permiten realizar debugging en Tiempo


Real con las limitaciones del programa monitor MON08 contenido en los dispositívos
MC68HC08's .
Estas limitaciones son inherentes al MON08 y deben tenerse en cuenta:

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")

3. No hacer "step" en una instrucción que salta a si misma.

4. No hacer "step" de un Software Interrupt Instruction (SWI).

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.

6. Tener cuidado acerca de la observación de los estados de los periféricos y registros de


datos en la ventana de variables o memoria. El refresco de estas ventanas leerán estos
registros y podrán causar el borrado de los flags correspondientes.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 16


ELECTROCOMPONENTES S.A.

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.

8. Si las interrupciones son habilitadas durante un "stepping", el ICD08SZ debugger no


hará el "step" dentro de la interrupción. En lugar de ello, se ejecutará toda la
interrupción y se detendrá en la instrucción de retorno después de la interrupción.

Los siguientes puntos, son útiles de tener en cuenta:

1. Se permite "Single Stepping" tanto en RAM como en FLASH.

2. El primer Breakpoint seteado es siempre un "Hardware Breakpoint" , y cualquier


breakpoint adicional será tomado como Software Breakpoint. Para estar seguro de que
un Hardware Breakpoint está siendo seteado, usar el comando NOBR antes de setear el
mismo.
El hardware breakpoint detendrá la ejecución en FLASH y RAM. El software
breakpoint SOLO detendrá la ejecución en RAM.

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.

5. Si un comando GO es activado sin setear previamente un breakpoint, la única forma


de tomar control del procesador nuevamente, es resetearlo (usar el comando RESET).

5. El sistema Watchdog no está activo mientras se corre el ICD08SZ. Cuando el


dispositívo es programado y energizado sin el debugger (EVAL08QTY en "Emulator
Mode") - por ejemplo, en la tarjeta del usuario o en el EVAL08QTY en Modo Usuario -
el watchdog está activado por default.

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.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 17


ELECTROCOMPONENTES S.A.

10.- Freescale CodeWarrior 5.0 for HC(S)08 standard edition.

Es una herramienta de uso libre, que reune un compilador, un linkeador y un debugger de


código assembler fuente, y que puede ser ampliada según las necesidades del usuario.
La versión "Standard Edition" ofrece ensamblado de código fuente (assembler) en forma
ilimitada y limitada a 16K bytes en código “C”, además provee capacidades de Debugging
muy interesantes aún para programadores adelantados.

Esta herramienta poderosa, combina un Ambiente de Desarrollo Integrado de Alta


perfomance (I.D.E) con:

- Simulación Completa del Chip y programación de la memoria FLASH desde el


sistema EVAL08QTY.

- Un Compilador ANSI C altamente optimizado y un Debugger en nivel fuente C


Generación automática de código C con "Processor Expert" desde unidades.

Ejecutar una sección de programación o debugging con proyectos basados en entornos


CodeWarrior IDE es tan simple como efectuar un doble "click" en el nombre del proyecto
(el formato es "nombredelproyecto.mcp") desde el archivo almacenado. Comenzar un
nuevo proyecto es un poco más complejo, pero los tutoriales, FAQs y guias rápidas de
comienzo son faciles de seguir y ayudan a construir un nuevo proyecto, usando "templates"
pre-construidos, en muy poco tiempo.
Por otro lado, la nueva versión del entorno integrado de trabajo (IDE), el CodeWarrior 5.0
ha sido pensada para simplificar el manejo de este poderoso entorno por parte de usuarios
no habituados a los ambientes profesionales de desarrollo, cosa que no ocurria con las
antiguas versiones de CodeWarrior para HC08 y HCS08.

Para mayor información de uso, ejemplos y tutoriales ver en el Web Site de Freescale
(www.freescale.com en la sección Codewarrior).

Nuestro ejemplo consistirá en implementar un pequeño programa en lenguaje ensamblador


que efectue una interrupción en forma periódica cada “n” milisegundos basado en el uso
del Timer en modo TOV (Timer Overflow). Este sencillo programa nos servirá como base
para ejecutar un número de tareas más complejas en forma periódica de modo similar a
como lo haría un sistema operativo más complejo.

Primeramente configuraremos al sistema EVAL08QTY para trabajar con el MCU


MC68HC908QY4ACPE que es el microcontrolador disponible en la placa que viene con
el kit del sistema.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 18


ELECTROCOMPONENTES S.A.

De esta forma la configuración final será:

• Jumpers JP1 = Posición 1-2 cerrado.


• Jumpers JP2 / JP3 / JP4 = Posición 1-2 cerrado.
• Jumpers JP5 / JP6 / JP7 = Posición 1-2 cerrado.
• Jumper JP8 = Posición 1-2 cerrado.
• Jumper JP9 / JP10 = Cerrado.
• Buad Rate de la comunicación = 9600 bps
• Frecuencia del Bus = OSC / 4 = 2,4576 MHz

Configurado nuestro sistema EVAL08QTY, procederemos a iniciar nuestro programa en el


sistema CodeWarrior 5.0 efectuando los siguientes pasos:

1) Al ejecutar el CodeWarrior IDE, se nos abrirá una ventana de opciones como se vé en


la figura 1.

Figura 1.- Pantalla “Startup” con opciones de ayuda.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 19


ELECTROCOMPONENTES S.A.

Eligiremos la opción “Create New Project” para armar nuestro nuevo proyecto .....

2) Se ingresará en la pantalla de configuración del proyecto donde eligiremos generación


de lenguaje ASSEMBLY, y nombraremos a nuestro proyecto con el nombre
“proyecto1.mcp”, según se puede ver en la figura 2.

Figura 2.- Pantalla de configuración del proyecto.

3) En la siguiente pantalla configuraremos la familia y dispositivo en particular a


utilizar para nuestro proyecto (MC68HC908QY4ACP) según se puede ver en la
figura 3.

Figura 3.- Pantalla de configuración de Familia, dispositivo y tipo de conexión.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 20


ELECTROCOMPONENTES S.A.

Como se observa en la figura 3, se ha elegido la familia HC08, dispositivo


MC68HC908QY4A y en cuanto a la conexión con la herramienta debe elegirse la opción
“Mon08 Interface” ya que es la opción universal de conexión para los sistemas de
desarrollo como los EVAL08QTY, E-FLASH08, FLASH_POD y toda otra herramienta que
no figure explicitamente en el listado de conexiones.

Figura 4.- Pantalla de adición de archivos al 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.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 21


ELECTROCOMPONENTES S.A.

5) En la pantalla que se observa en la figura 5.-, se puede elegir la generación de código


de inicialización de los distintos periférficos asistida o no. Nosotros elegiremos utilizar
la generación de código asistida, por medio del aplicativo “Processor Expert”, que nos
irá guiando paso a paso en la inicialización de los distintos periféricos del MCU
elegido.

Figura 5.- Pantalla de elección o no de generación de código asistido


(Processor Expert).

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.-).

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 22


ELECTROCOMPONENTES S.A.

Figura 6.- Pantalla principal del proyecto e interface gráfica de


generación de código (Processor Expert).

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.-

Figura 7.- Pantalla del módulo de CPU.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 23


ELECTROCOMPONENTES S.A.

Se configura el módulo de CPU para:

• 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.

Figura 8.- Pantalla con los detalles de configuración del CPU.

7) A continuación procederemos a configurar el módulo de Timer (TIM) ingresando


al mismo como muestra en la figura 9.-

Figura 9.- Pantalla del Módulo de Timer.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 24


ELECTROCOMPONENTES S.A.

Ahora configuraremos el módulo del TIMER según lo siguiente:

• Prescaler = 32 ----- FBUS = 2,4576 MHz.


• Período del timer = 100 ms
• Modo de funcionamiento ----- Timer Overflow Interrupt (INT_TIMOvr).
• Overflow Interrupt = habilitado.
• Nombre de la interrupción = isrINT_TIMOvr
• Inicialización = Comienzo de la cuenta (arranque del timer).

Figura 10.- Pantalla configuración del TIMER

8) Una vez que se ha configurado el módulo de TIMER, procederemos a configurar los


puertos I/O según lo siguiente:

PORTA ---- PTA0 ---- INPUT ----- PTA1/PTA7 DISABLE.

PORTB ----- PTB5 ---- OUTPUT ------ PTB0 / PTB7 DISABLE.

Figura 11.- Pantallas de configuración de puertos (PORTA / PORTB).

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 25


ELECTROCOMPONENTES S.A.

Si luego se presiona el botón “Generation Code” , el generador de código del Processor


Expert generará código y nos mostrará una ventana explicando los pasos a seguir para
incorporarlo efectivamente al resto del programa.

Figura 12.- Pantalla de generación de Código que producirá archivos bajo


el Nombre “MCUinit” para inicializar el MCU.

Figura 13.- Pantalla de ayuda para integrar el código generado al proyecto.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 26


ELECTROCOMPONENTES S.A.

Según lo sugerido por la ventana de ayuda una vez generado el código, procedemos a
comentar y descomentar lo siguiente:

• Comentar en el archivo “Project.prm” la linea --- VECTOR 0 _Startup /* Reset


vector ......
Con una barra cruzada y asterísco (/*) delante de la sentencia y luego salvarlo.

• Descomentar en el archivo “main.asm” la línea “JSR MCU_int” para que de esta


forma en el programa principal se pueda invocar a la sub rutina MCU_int que
inicializa al MCU.

Figura 14.- Ventana con código a modificar para utilizarlo.

Luego de realizar esas modificaciones sugeridas por el Processor Expert, introduciremos


nuestras líneas de código en la sub rutina de interrupción por Timer Overflow
(isrINT_TIMOvr) para realizar, por ejemplo, un Toggle (inversión de estado) del puerto
PTB5 cada vez que atendamos la interrupción propiamente dicha. En este punto podemos
poner todas nuestras tareas en forma de llamado a sub rutina que se irán ejecutando una a
una cada 100 ms.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 27


ELECTROCOMPONENTES S.A.

Figura 15.- Agregado de nuestras líneas de código en la rutina de manejo de la


interrupción por Timer Overflow (isrINT_TIMOvr).

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).....

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 28


ELECTROCOMPONENTES S.A.

Figura 16.- Pantalla de selección de la interface con el hardware a utilizar.

En la ventana “Interface Selection” elegimos la opción “Class 1 – ICS Board with


processor installed” y hacemos click en el botón “ok”.

Figura 17.- Pantalla de manejo de la conexión con el hardware (EVAL08QTY).

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 29


ELECTROCOMPONENTES S.A.

Luego configuramos la siguiente pantalla eligiendo el número de puerto COM en el que


esté asignado el puerto utilizado por el EVAL08QTY para la conexión PLACA – PC, en
nuestro caso es el COM3 y le asignaremos un Baud Rate de 9600 Bps de acuerdo a lo
configurado en nuestro sistema anteriormente.

Como se podrá observar en la figura, tambien se configurará la opción de borrado y


grabación de la memoria FLASH del MCU en forma previa y automática cada vez que se
quiera entrar en el modo de Debugging (Emulación en Tiempo Real) ya que es la
condición necesaria para que cualquier HC908 pueda trabajar como una verdadera
herramienta de desarrollo.

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.

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 30


ELECTROCOMPONENTES S.A.

Figura 18.- Pantalla de Debugging (Emulación en Tiempo Real).

Pues bien, ya tenemos la pantalla principal de Debugging (Emulación en Tiempo Real) y


solo nos resta correr nuestro programa haciendo Click en el icono con la “flechita verde”
(Run / Continue) para poder ver la señal cuadrada de 200 ms de período que
obtendremos en el puerto PTB5 de nuestro QY4CP en la placa EVAL08QTY, según nos
muestra la figura 19.- .

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 31


ELECTROCOMPONENTES S.A.

Figura 19.- Oscilograma de la señal de salida en PTB5.

El sistema EVAL08QTY puede soportar de igual forma, herramientas de entorno integrado


como el CodeWarrior de Metrowerks, asi como, el WinIDE ICS08 de
P & E Microsystems sin modificación alguna.

Bibliografía:

Se sugiere leer los siguientes documentos .....

MC68HC908QY4/D Technical Data Book


MC68HC908QB8/D Technical Data Book
M68ICS08OM/D M68ICS08 Operator's Manual
ICS08GPAD/D Addendum to the M68ICS08GP
AN1770/D In-Circuit Flash Programming, MC68HC908GP20
AN1706/D Microcontroller Oscillator Circuit Design
CPU08RM/AD Programmer Reference Manual
TIM08RM/AD Timer Module Reference Manual

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 32


ELECTROCOMPONENTES S.A.

- Ademdum:

- Ubicación de Jumpers en la placa.


− Jumpers layouts

P1
JP9
JP2
JP5

JP1

JP3 JP6

JP7
JP4
JP10
JP8

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 33


ELECTROCOMPONENTES S.A.

- Seteo de la opción "Environment" en el WinIDE ICS08QTQYZ

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.

He aquí las principales pantallas:

Ventana "desplegable" para ingresar a "Setup Environment"

Carpeta "EXE1 Debugger"

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 34


ELECTROCOMPONENTES S.A.

Carpeta "EXE2 FLASH Programmer"

Carpeta "EXE3 In-Circuit Simulator"

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 35


ELECTROCOMPONENTES S.A.

Carpeta "EXE4 Simulator"

MANUAL DE USUARIO “EVAL08QTY” Diseñado por : Ing. Daniel DI LELLA 36

Вам также может понравиться