HERRAMIENTAS DE DESARROLLO HARDWARE & SOFTWARE Curso de Microcontroladores Familia HC908 Flash de Freescale Parte II ING. DANIEL DI LELLA Herramientas de Desarrollo & Didácticas •Placa de Evaluación (tipo I.C.E) de muy bajo costo, práctica y flexible (EVAL08QTY) - Entorno de desarrollo integrado bajo Windows (WinIDE / CodeWarrior), zocalo de programación / emulación, Debugging en circuito en tiempo real, Header para emulación sobre tarjeta externa del usuario. • Emuladores En Sistema (I.S.E) para TODA la flia. HC908 (FLASH_POD) - Entorno de desarrollo integrado bajo Windows (WinIDE / CodeWarrior), Debugging en SISTEMA en tiempo real, conector 2 X 10 IDC sobre tarjeta externa del usuario. •Sistema Didáctico / Entrenamiento para flias. HC908 / HC9S08 / Flexis (EDUKIT08) - Un sistema didáctico completo con todos los periféricos necesarios para que el alumno domine las familias HC908 / HC9S08 / Flexis y trabaje en un entorno integrado con emulación en tiempo real. Placa de Evaluación (I.C.E) EVAL08QTY • In – Circuit Emulator (I.C.E), emulador “en – circuito” • Entorno Integrado de Desarrollo Windows 95/98/Me/XP • Para trabajar con todos los HC908Q. • Programación de la FLASH • Emulación en circuito “Real-Time” 1 Hardware Breakpoint, mul. Soft Breakpoints • In-Circuit Debbug • Diseñada para muy bajo costo!! Un I.C.E. de Tiempo Real de muy bajo costo….. Numerosos Jumpers permiten mayor flexibilidad de uso de la herramienta !!! Alimentacion de 12Vdc o Bateria de 9V Salida RS-232C P/ conexión PC - Emulador Headers para Cable plano c/ Dipzoc Zócalo Z.I.F. p/ grabación (Target Cable & DIP Socket) del MCU FLASH Conexión Típica del sistema EVAL08QTY PLACA TARGET SYSTEM ( PRODUCTO DEL CLIENTE ) HOST (P.C. or Workstation) RS-232 CABLE DEV. SYSTEM EVAL08QTY (HW & SW) ZOCALO DEL MCU TARGET CABLE (HW & SW) ICS08xxZ : Entorno de desarrollo bajo Windows (WinIDE / CodeWarrior) Permite disponer de un completo ambiente de desarrollo, prescindiendo del dispositívo final (MCU), aumentando la flexibilidad de trabajo y a un muy bajo costo......... Un ambiente de desarrollo integrado con: •Edición de programas tipo “Wordpad” •Compilación con detección de errores •Emulación en Tiempo Real (1 Hardware Break Point) •Simulación de código con WinIDE o CodeWarrior Editor de texto tipo “wordPad” • Debugging sencillo, con acceso a variables, registros del CPU, registros de los periféricos, uso de rutinas en ROM!! Entorno de desarrollo completo bajo Windows: Registros del CPU, variables en RAM, FLASH, acceso a registros de periféricos, manipulación de datos on – line, acceso rápido a borrado / grabación de la memoria FLASH del MCU. WinIDE.. Todo en uno !! Editor / Compilador Emulación en Tiempo Real !! Programador Me vuelvo loco !!! Quiero trabajar con una sola herramienta para todos los HC908 Flash !!!! Pobre Hombre !! Seguro que no conoce el sistema FLASH_POD !! “FLASH_POD” un sistema “Low Cost” para TODA la familia HC908 Flash !!! “FLASH_POD” el In – System Emulator (I.S.E) para toda la Flia. HC908 con las siguientes prestaciones: • WinIDE, entorno integrado de desarrollo bajo Windows • Edición de programas en ambiente tipo “Wordpad” de Windows • Compilador CASM08 con detección de errores • Simulación (No Tiempo Real) de software & hardware (I.C .S) en circuito • Programación de la memoria Flash del MCU en la placa del usuario I.S.P (In –System Programming) • Emulación en Tiempo Real (In Circuit Debugger) en el MCU de la placa del usuario I.S.E (In – System Emulator) con un “hardware” Breakpoint reubicable. • Conexión con el PCB a depurar por medio de un conector tipo IDC 2 x 10 en el sistema y un conector HEADER (tira de pines) 2 x 10 paso de .1 pulg. •Emulación de más de 50 modelos distintos de MCUs HC908 Flash…….. • Compatible con entorno integrado CodeWarrior 5.0 / 5.1 / 6.x Mas prestaciones…… • Permite trabajar con tensiones de 5V, 3V y sistemas mixtos (MCU HC908JB8 / JB16/JW32) • 4 Frecuencias de Oscilador (xtal) disponibles y opción de Oscilador Externo (4,9152 Mhz, 9,8304Mhz, 14,7456 Mhz, 6,0000 Mhz) • Velocidad de comunicación con la PC desde 4800 Bps hasta 28,8 Kbps. • Conexión a puertos Seriales COM (RS-232C) o USB 2.0 (Puerto COM Virtual) • Manejo automático del “Power Cycling” del MCU por medio de la PC • Solo un (1) pin es necesario para la emulación, el sistema “libera” en forma automática y transparente los pines adicionales para entrar en modo “monitor” usados por los HC908. • El sistema Memoriza la configuración para cada dispositivo en memoria no – volátil para mayor comodidad durante períodos prolongados de desarrollo. • Función “autodiagnótico” que ayuda a verificar conexiones en modo monitor. • Permanente “UPDATE” de configuraciones y software por medio de la WEB ( P & E microsystems, Freescale, EduDevices ) Partes del sistema FLASH_POD... Conexión del “Header Board” con la placa del Usuario bajo desarrollo…….. “Header Board” Placa de Usuario Bajo desarrollo Conector IDC Sobre “Header” de 2 x 10 pines Con el MCU HC908xx en la placa !!!! Como se conecta el sistema FLASH_POD ??? ICS08xxZ / WinIDE / CodeWarrior HEADER BOARD (CABEZAL DE EMULACION ) DEV. SYSTEM FLASH_POD HOST (P.C. or Workstation) RS-232 CABLE ZOCALO IDC 2 x 10 PINES (P4) FLEX CABLE (HW & SW) El FLASH_POD es un I.S.E (In – System Emulator) Que toma las señales del MCU en la placa bajo desarrollo y las adapta para conseguir una emulación en Tiempo Real muy flexible……. (OSCs & Señales) Placa del usuario con el MCU HC908 FLASH bajo desarrollo Emuladores En - Sistema (I.S.E.) y Emuladores En - Circuito (I.C.E.)..... ......Donde y como utilizarlos. Por Ing. Daniel Di Lella, EduDevices.com.ar Cuando comenzamos a trabajar con una nueva familia de microcontroladores, nos encontramos a menudo, con el dilema de elegir la herramienta mas adecuada para nuestros futuros proyectos. En la nueva familia de Microcontroladores FLASH HC908 de Motorola, nos encontramos ante esta situación. Para fortuna de los diseñadores de sistemas con MCUs, la familia HC08 posee un amplio portfolio de herramientas de desarrollo, desde un sistema profesional muy completo como el MMEVS de alta gama, hasta sistemas muy económicos y no por ello menos potentes como los EVAL08 y el E-FLASH08. En el presente artículo, se prestará especial atención a los sistemas más económicos disponibles para la familia HC908. Que es un Emulador En - Circuito? Un Emulador En - Circuito o I.C.E (In - Circuit Emulator) es un sistema de desarrollo capaz de emular en tiempo real (a la velocidad del clock del sistema) las funciones y funcionalidad de un microcontrolador determinado. Los I.C.E poseen un conector de cable plano con un zócalo en uno de sus extremos que "imitan" física y mecánicamente la disposición de pines del "Chip" del MCU a emular. Esto permite reemplazar al chip que iría en la aplicación bajo desarrollo del usuario por el cable plano en cuestión, posibilitando de esta forma la vinculación entre la aplicación y el sistema de desarrollo. Debido a este modo de vinculación que poseen estos sistemas, se plantean ventajas y limitaciones para los mismos. Dentro de las ventajas, podemos destacar que en los I.C.E la "potencia" de Emulación reside dentro de ellos, permitiendo utilizar mínimo hardware cuando, por ejemplo, solo se quiere depurar o probar un módulo específico del MCU (SCI, SPI, TIMERS, A/D, etc.) Esta situación es ideal y muy frecuente en usuarios noveles o con poca experiencia en estos MCUs o bien en ámbitos escolares y/o académicos, en donde los ensayos son parciales y no específicos a un proyecto determinado. Las limitaciones en este tipo de sistemas, pasan por la poca "flexibilidad" en la variedad de dispositivos a emular, ya que se necesita un "arnés" (conector + cable plano) para cada tipo de derivativo, tipo de encapsulado, y además circuitería especifica incluida en el emulador para cada uno de ellos. Los sistemas "EVAL08" pertenecen al grupo de los I.C.E., y en su diseño se tuvo en cuenta obtener el máximo de prestaciones sobre la base del más bajo costo posible. En el EVAL08QTY, se pueden emular derivativos tales como TODOS lospertenecientes a la familia HC908Q (encapsulados DIP 16 y 8 pines). Header para Cable plano c/ Dipzoc Salida RS-232C P/ conexión PC - Emulador Zócalos p/ grabación de los MCUs FLASH Fig. 1 - Sistema I.C.E. "EVAL08QTY" y conexiones ppales. Cable plano, con zócalo para emulación Placa del usuario bajo desarrollo Fig. 2 - Detalle conexión cable plano p/ Emulación con la placa del usuario bajo desarrollo Que es un Emulador En - Sistema? Los Emuladores En - Sistema o I.S.E. (In - System Emulator), son de más reciente aparición que los I.C.E., y especialmente para la línea HC08 de Motorola, son una Novedad. Los I.S.E son también sistemas de desarrollo capaces de emular en tiempo real (a la velocidad del clock del sistema) las funciones y funcionalidad de un microcontrolador determinado, pero a diferencia de los I.C.E. basan su "potencia" de Emulación en los distintos MCUs incorporados en las propias placas de los usuarios bajo desarrollo. Los microcontroladores de la familia HC08 de Motorola, soportan un modo especial de operación que permite a los desarrolladores de software acceder a un programa monitor "interno" que ayudará en la depuración de los programas. Este modo de operación se conoce como "Modo Monitor" y permite que un sistema Host (PC) se comunique con el microcontrolador bajo desarrollo. El sistema "FLASH_POD" pertenece al grupo de los I.S.E, este usa el "Modo Monitor" de la familia HC908, para Emulación en Tiempo Real, Programación de la memoria FLASH, y Simulación con la tarjeta de hardware real del usuario. Solamente un conector (header) del tipo IDC 2 x 10 es necesario incluir en la tarjeta del usuario, para de esta forma, permitir que el sistema E-FLASH08 se comunique con la tarjeta bajo desarrollo y así obtener una completa emulación "In-System". Este conector se intercalará entre las principales señales del MCU y el resto del circuito de la placa, existiendo señales comunes y otras particulares entre los distintos MCUs a emular. De esta forma de vinculación entre placa y sistema de emulación, surgen ventajas y limitaciones. Entre las ventajas podemos citar la gran flexibilidad a la hora de emular distintos derivativos de una familia de MCUs, independientemente del tipo de encapsulado y cantidad de pines (DIP, SOIC, TQFP). Las limitaciones en este tipo de sistemas pasan por la inclusión "obligatoria" del conector de vinculación placa - emulador en la placa bajo desarrollo y el no poder utilizar al sistema emulador sin la placa del usuario con el MCU a emular. Esta última limitación se debe al hecho que en un I.S.E, existen circuitos de adaptación de señales, control de alimentación, comunicación con la PC, manejo de recursos I/O, etc., que son vitales en dicho sistema pero la potencia de emulación descansa realmente en el MCU de la propia placa a depurar. En el Kit "FLASH_POD", se incluye una placa "demo" (Demo Board) conteniendo un MCU derivativo de la flia. HC908 como el MC68HC908QY4ACPE, que permite realizar pruebas y depuraciones de distintos módulos del chip, sin la necesidad de agregar hardware adicional o con uso mínimo del mismo. De esta forma, se compensa la última limitación comentada anteriormente para este tipo de Sistemas. Placa “Demo Board” con MCU MCHC908QY4ACPE Placa “Header Board” del sistema “FLASH_POD” (Aquí puede ser reemplazada por la placa del usuario bajo desarrollo con una aplicación concreta) Conector IDC 2 X 10 & “Header” (tira de pines 2 x10 a .1”) Como se comentó anteriormente, el conector de vinculación entre Emulador - Placa bajo desarrollo, es del tipo 2 x 10 pines (tira de pines 2 x 10 a paso de .1") "header" en la placa, y del tipo IDC 2 x 10 (hembra) en el emulador (Header Board). Este conector debe intercalarse entre el MCU y el resto del circuito, de esta forma el emulador "abre" el camino natural de las señales entre el MCU y el resto de la circuitería. Cuando el emulador, ya no es necesario, este conector de vinculación (tira de pines) es puesto en "corto" entre pines opuestos por medio de jumpers estándar. A continuación pueden verse algunos detalles de conexión entre MCU y resto de circuito, para distintos derivativos de la línea HC908. Conexionado entre el sistema FLASH_POD y la placa del usuario para el MC68HC908JL3 de 28 pines Lado Circuito Microcontrolador Lado Circuito Usuario MC68HC908JL3 – 28 Pines • Vdd • PIN 7 Vdd • IRQ • PIN 1 IRQ • RESET • PIN 28 RST Lado del MCU • PIN 4 OSC 1 • PIN 3 Vss Pines al chip del MCU 11) I/O Generales • PIN 21 PTB0 13) I/O Generales • PIN 20 PTB1 15) I/O Generales • PIN 18 PTB2 17) I/O Generales • PIN 17 PTB3 19) Pin LIBRE 20) PIN LIBRE 7) Al circ. Del Oscilador Lado circuito externo al MCU en la placa del usuario Conector IDC 20 (lado “Header Board” del E-FLASH08) & Conector “Header” 2 x 10 (tira de pines, del lado placa usuario) NOTA 1: En el Pin 7 del conector IDC 20 se debe conectar el circuito del oscilador, es decir una de las patas de cristal con su correspondiente capacitor de 22 PF y la resistencia de 10 Mohms. La otra pata del cristal debe ir directamente conectada al PIN 5 del Chip (OSC 2 ). NOTA 2: En los pines donde se conectarán los circuitos correspondientes a IRQ y RST (reset), asi como en los pines de I/O generales (uso I/O general), el usuario conectará el dispositívo que considere necesario (demas C.Is, transistores, etc.) de acuerdo con su diseño original. NOTA 3: El concepto del conector tipo “tira de 2 x 10 pines en la placa del usuario” (Header), es como si el mismo fuera “intercalado” entre las 10 señales más importantes entre el MCU y el resto del circuito externo al mismo. Estas señales son utilizadas por el sistema E-FLASH08 para “dialogar” con el MCU bajo desarrollo en el modo “monitor” y luego de liberar las mismas en forma automática, permitir de esta forma una emulación en tiempo real. Una vez finalizada la etapa de depuración de la placa del usuario, el conector formado por una tira de pines de 2 x 10 en la placa bajo desarrollo (Conector “Header”), debe ser PUENTEADO por “jumpers” que permitan al flujo normal de las señales en cuestion. (Ejemplo, se puentea PIN 1 con PIN 2, PIN 3 con PIN 4……… PIN 19 con PIN 20. ) 1) Jumper “EDUKIT08” - Sistema Didáctico / Entrenamiento para las flias. HC908 / HC9S08 / Serie Flexis (8 / 32 Bits). “EDUKIT08” ... Características Principales •Placa didáctica con hardware completo para prácticas con cada módulo típico del HC908 / HC9S08 / Serie Flexis (8 / 32 Bits). • In Circuit Debugger incorporado “Mon08” para la familia HC908. • Puerto Serial USB y RS-232C para conexión a la PC. • Entornos Integrados de Desarrollo WinIDE y CodeWarrior 5.0 incluidos. • Actualizable por placas “PLUGIN” para soportar a cada familia. • Placas de Expansión diversas (Puertos I/O, Display Gráfico, ZigBee, GSM). • Curso teórico completo sobre MCUs HC908, más guía de trabajos prácticos. • Soporte mediante sitio web para alumnos y docentes. • Alimentación AC / DC de 9 a 16V externa o por medio del puerto USB 2.0 “EDUKIT08” ... Características Principales • 2 Puertos seriales completos para el usuario. • Uno de los puertos puede configurarse como RS-232C / RS-485 / IRDA. • Se puede implementar una RED BUS AMO / ESCLAVO de hasta 32 Nodos!!!. • Comunicación Inalámbrica por IRDA entre dos sistemas EDUKIT08. • Display LCD de 16 x 2 líneas con Backlight y Display 7 Segmentos de 4 dígitos LED. • Prácticas de SPI / I2C / ICAP / PWM / TIMER / RTC / FLASH como EEPROM Compiladores “C” disponibles para la familia HC908 - Freescale ---- “CodeWarrior” Development Studio Especial Edition 5.0 / 5.1 / 6.x Web Site ------- www.freescale.com/codewarrior - ImageCraft ------- “C” Compiler for HC08 family Web Site ------- www.imagecraft.com - Introl ----------------- “C” Compiler for HC08 family Web Site ------- www.introl.com - Cosmic --------------- “C” Compiler for HC08 family Web Site ------- www.cosmic.com