Hablemos de MCU s... Practicando con el CodeWarrior 5.1/6.x y el sistema R(S)_POD... COMENTARIO TECNICO



Documentos relacionados
Buceando en el HC908...

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

Buceando en el HC908...

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Como sacarle mayor provecho a las herramientas disponibles para la familia HC908

Winide y Kit EVALQTY CDM 2011

R(S)_POD Manual de Usuario Versión 1.1

...La herramienta universal para MCUs Freescale que el mercado esperaba!!!

Buceando en los MCUs Freescale...

User_Manual_ADAP_USB-RS232_1V0.pdf ADAP_USB-RS232. MANUAL de USO Versión 1.0 ADAPTADOR USB RS232. Página 1

PROTEUS Depuración de programas para microprocesadores

Max- IP CONVERSOR RS485 a TCP/IP

Notas para la instalación de un lector de tarjetas inteligentes.

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Conexión de GPS a Open CPN.

PIC-Ready2. Placa adicional. Manual de usuario. MikroElektronika

ZILOG DEVELOPER STUDIO

Guía de instalación del sistema contafiscal nuevo monousuario internet

ACTUALIZACION AUTOMATICA: MODO ONLINE (Ejemplo: WINDOWS 7-32 bits):

GVisualPDA Módulo de Almacén

U_POD Manual de Usuario Versión 1.0

Instalación del Admin CFDI

TUTORIAL DE INSTALACIÓN PARA VIRTUALBOX

Guía de acceso a Meff por Terminal Server

FLASH-POD. Características. Aplicaciones. Descripción general. Emulador en Tiempo Real FLASH-POD. FLASH-POD

CREACIÓN DEL PRIMER PROYECTO EN mikrobasic PRO for AVR

- 1 - ÍNDICE. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

PowerPoint 2010 Manejo de archivos

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

INSTALACIÓN DRIVER USB ST-8500

Introducción. Conexión de los terminales a la toma telefónica. Instalación del módem ADSL. Conexión del módem. Desinstalación del módem y la conexión

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

Manual de Pasos previos a programar un PLC Allen Bradley CompactLogix L32E

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

San Miguel de Tucumán, 10 de Setiembre de CIRCULAR Nº 28/14

TESMA DATA LOGGER mod. 02B

Comentario sobre el entorno de desarrollo Microsoft Visual Studio 2005 Juan Manuel Lucas

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2


Guía de instalación del sistema bancos monousuario

Guía de instalación del software de la asignatura

MONITOR ROM MODULE (MON08)

Instalación de DRIVER de mochila

1. El entorno de desarrollo Eclipse

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Control de presencia para terminal por huella dactilar

Manual del Usuario ADSL

1. El entorno de desarrollo Eclipse

WINDOWS : TERMINAL SERVER

Software de programación de interfaz FDT DXID. Guía del programador (DXID P01.doc)

Para descargar la versión más reciente de Skype accedemos al sitio web de Skype y luego hacemos clic en Descargar Skype para escritorio de Windows.

Configuración y sincronización de Motorola V525 y adaptador Bluetooth Conceptronic

Puesta en marcha de la tarjeta de firma electrónica

Autoguiado en 6 pasos

ACTUALIZACION MANUAL: MODO OFFLINE (Ejemplo: WINDOWS 7-32 bits):

Instrucciones de instalación de TrueCode

Sistema de Captura Electrónica

Guía para la programación del AC-215

Manual de Introducción a SIMULINK

Programador de PIC s y Memorias EEPROM

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

CAPITULO 6 GUIA DE USUARIO

Switch to Click. Versión 1.5

Seminario de Informática

Instalación Software Socio 300 Premium. Para SO XP; Win 7 / Vista

Manual de instalación y uso del Osciloscopio Sahuaro Moroleón UNO 2013

Índice de contenido. Breve descripción del display. Utilización. Conexión con un micro o equivalente. CTU-014, Display color FDT FG056

Escudo Movistar Guía Rápida de Instalación Para Windows

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google

V i s i t a V i r t u a l e n e l H o s p i t a l

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Control de accesos autónomo por huella dactilar

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

INSTRUCCIONES DE ACTUALIZACION LEOTEC ARGON A150B ( Sistemas W7 y W8)

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL

Comunicación entre un PLC S y WinCC Advanced

Manual de operación Tausend Monitor

WINDOWS. Iniciando Windows. El mouse

Procedimiento de instalación de Aula Virtual Santillana en Windows: Alumnos

MANUAL DE INSTALACION PARA EL SISTEMA DE SEMILLAS.

Instalación de epass 3000 Token USB

Manual Web Alexia Profesor. Índice

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Herramientas Visuales de Programación

2_trabajar con calc I

TERMOMED Cl. Uruguay, 11 7º despacho Valencia ( Valencia ) Tel. / Fax info@termomed.net

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Presentaciones compartidas con Google Docs (tutorial)

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Guía de instalación del sistema de contafiscal red

ABIES2 Y MODO COMPATIBILIDAD EN WINDOWS VISTA Y WINDOWS 7

La actualización del software de programa.

Sincronización de carpetas con el disco duro virtual en sistemas Windows

NORMA 34.14(SEPA) 05/11/2013

Tutorial para la configuración de GPRS.

Cable cruzado de red. T Cable Teléfono

Uso del simulador Modelsim

Anexo B. Comunicaciones entre mc y PC

Transcripción:

COMENTARIO TECNICO Hablemos de MCU s... Por Ing. Daniel Di Lella Dedicated Field Application Engineer Responsable Area Educación Elko / Arrow www.elkonet.com ddilella@elkonet.com dilella@arnet.com.ar Practicando con el CodeWarrior 5.1/6.x y el sistema R(S)_POD... 1era. Parte. Hola amigos! ; En este artículo, veremos como empezar un proyecto simple con el entorno integrado de desarrollo (IDE) CodeWarrior 5.1 o el CodeWarrior 6.x, las últimas versiones disponibles (6.x) son aptas para trabajar con los microcontroladores de 8 y 32 Bits de las familias HC908 / HC9S08, RS08 y V1 ColdFire, y la herramienta de desarrollo R(S)_POD presente en el mercado local desde hace algún tiempo. El CodeWarrior 5.1, es una versión mejorada del CodeWarrior 5.0, ya que se le han agregado numerosos plug-in y la posibilidad de trabajar con TODA la línea de MCUs de 8 bits de Freescale, además se adicionaron patchs para soportar nuevas herramientas como el R(S)_POD, por ejemplo. Al igual que en el CW5.0, el entorno de trabajo se ha mejorado y simplificado notablemente para permitir un comienzo menos traumático a los usuarios debutantes con este tipo de entornos. En las versiones 6.x del CodeWarrior se agregan además la serie de MCUs Flexis (HC9S08 / V1 ColdFire) que permite una fácil migración del mundo de los 8 Bits a los 32 Bits y además otros plug-in que mejoran las prestaciones de este entorno.

Bajo el nombre de R(S)_POD, la herramienta de desarrollo diseñada por EduDevices.com.ar, permite verdadera Emulación en Tiempo Real, borrado y grabación de la memoria FLASH de los distintos dispositivos que constituyen las familias HC9S08, RS08, Serie Flexis HC9S08, y Serie Flexis V1 ColdFire de igual forma que con otras opciones más costosas pero a la mitad del costo de estas últimas. La herramienta viene equipada con una conexión USB 2.0 que le permite, no sólo conectar a la misma a la PC utilizada para el desarrollo, sino que también le sirve de alimentación general a la misma, lo que descarta el uso de transformadores o fuentes de alimentación de difícil transporte. Además gracias a este tipo de conexión, el sistema R(S)_POD tiene la posibilidad de proveer de energía a la aplicación bajo desarrollo en forma segura, ya que cuenta con un circuito de protección de sobre corriente que evita daños tanto para la herramienta como para la aplicación bajo desarrollo. Hecha la presentación de ambos sistemas, nos propondremos a comenzar con un proyecto simple pero didáctico para aprender a usar el sistema R(S)_POD y el CodeWarrior 5.1/6.x. Para ello utilizaremos la placa DemoQG8 contenida en el kit y que dispone de un microcontrolador MC9S08QG8CPE de 16 pines en encapsulado DIP con una buena cantidad libre de ellos para nuestra aplicación. El programa de ejemplo se basará en el uso del módulo de Timer que dispone esta familia para generar una interrupción por Timer Overflow (Time Out) cada 250 ms que dará lugar al disparo de una serie de tareas (en este caso solo la inversión de estado de un pin de un puerto I/O) como lo haría un sistema de disparo periódico de tareas o también conocido como programa Calesita. El ejemplo, paso a paso: 1) Configurar el hardware del sistema R(S)_POD de la siguiente manera... Jumpers / Switch SW1: JP1 Posición 2-3. JP2 Posición Cerrado. JP3 Posición 1-2 (de fábrica No tocar!). JP4 / JP5 Abiertos (de fábrica No tocar!). SW1 No Pulsado (aplicación sin VDD). Conectar la placa R(S)_POD con la placa DemoQG8 por medio del arnés de cable plano con los conectores IDC de 2 x 3 (CN1 CN3).

2) Conectar las placas así configuradas al puerto USB de la PC por medio del cable USB Tipo A-B provisto con el kit (en el sistema Windows XP debe escucharse un Ding / Dong característico de la detección del dispositivo USB y debe encenderse en forma fija el led verde LD2 USB_EN indicando sistema Ready ). (todo esto es válido, si previamente se han instalado los drivers USB según manual de usuario de la herramienta). 3) Abrir el entorno CodeWarrior 5.1/6.x por el ícono de acceso directo en el escritorio o bien por medio de la barra de inicio. 4) Elegir la opción Create a New Project según se muestra en la figura...

5) En la ventana Device and Connection elegir el dispositivo MC9S08QG8 y la conexión HCS08 Open Source BDM que es la interface utilizada para comunicar el sistema R(S)_POD con el entorno CodeWarrior y hacer click en el botón Siguiente. 6) En la ventana Project Parameters elegir la opción Relocatable assembly y darle un nombre al proyecto como, por ejemplo, DemoQG8_1.mcp, y hacer click en siguiente...

7) En la ventana Processor Expert elegir la opción Device inicialization, así de esta forma la aplicación Processor Expert nos irá guiando en la configuración de los distintos registros del MCU elegido para el ejemplo. 8) Hacer click en finalizar para lanzar el Processor Expert y comenzar a trabajar en el.

9) En la pantalla principal del proyecto, se podrán observar dos cuadros, uno conteniendo todas las carpetas del proyecto y otro con un entorno gráfico del chip bajo desarrollo. Elegir el encapsulado de 16 pines DIP (MC9S08QG8CPB) haciendo click en el icono Select CPU Package. 10) A continuación, se procederá a 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 módulo CPU para configurar el clock del sistema y otros aspectos entorno del mismo. Se configurará el módulo de CPU para: Clock ---- Interno ---- 32,7Khz (referencia) --- FLL activo ---- 16,7424 Mhz Frecuencia de Bus = 4,1856 Mhz ---- Divisor de Bus = 2 (OSC / 4). LVD --- Habilitado ----- LVD deshabilitado en modo STOP. Interrupciones Habilitadas. Vector de Reset apuntando a la etiqueta _Startup. Pin de Reset Externo no disponible. SWI deshabilitada.

Pantalla CPU: 11) Una vez configurados los distintos puntos del cuadro de configuración del módulo de CPU, hacer click en el icono O.K para confirmar los cambios y el sistema volverá a la pantalla principal. Ahora será el turno de la configuración del módulo de TIMER haciendo click sobre el cuadro con el nombre TPM. 12) Se configurará el mismo con los siguientes parámetros: Selección de fuente de Clock Bus rate Clock. Prescaler 64. Módulo Counter 16350 cuentas. Período 250 mseg. Alineado izquierda. Pines No habilitados. Interrupción por Overflow habilitada isrvtpmovf (etiqueta de la Interrupción). Inicialización Módulo habilitado.

13) Al igual que en el módulo anterior, se procederá a hacer click en el botón O.K para confirmar la configuración de este y volver a la pantalla principal. Luego será el turno de los módulos de los puertos A y B (PTA / PTB) que los configuraremos de la siguiente manera: PTA (PORT A) PTA0 / PTA3 Habilitados Input PTA4 No habilitado PTA5 Habilitado Input PTA6 / PTA7 No Habilitados. PTB (PORT B) PTB0 Habilitado OUTPUT (control de corriente HIGH). Valor de arranque 0. PTB1 / PTB7 No Habilitados

14) Si luego se presiona el botón Generate 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.

Se abrirá una pantalla previa que nos dará distintas alternativas de configuraciones (no tocar, solo para expertos!!) y nos dirá que el código generado llevará el nombre del módulo MCUint y se deberá proceder a presionar el botón Generate... Otra pantalla nos dará algunas recomendaciones a tener en cuenta y se procederá a hacer click en el icono O.K para obtener finalmente el código generado. 15) Hecho esto, se estará en condiciones de introducir nuestras líneas de código en la sub rutina de interrupción por Timer Overflow (isrvtpmovf) ubicada dentro del módulo generado MCUint (MCUint.asm) para realizar, por ejemplo, un Toggle (inversión de estado) cada vez que atendemos 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 250 ms. Las líneas a agregar pueden ser las siguientes... BCLR TPMSC_TOF,TPMSC BRSET PTBD_PTBD0,PTBD,OFF_PUERTO BSET PTBD_PTBD0,PTBD BRA FIN_TPMovf ;Lpio flag TOF del TIMER ;Inversión del puerto... OFF_PUERTO: BCLR PTBD_PTBD0,PTBD FIN_TPMovf: RTI

16) Una vez introducido nuestro código, se deberá compilar haciendo click en el botón Make en la barra de proyecto o en la barra de herramientas general. Si no se ha cometido algún error de compilación se estará en condiciones de pasar a la etapa de Emulación en Tiempo Real del programa de ejemplo. Ahora, nos ocupa la prueba del código generado, y nada mejor para ello que efectuar una Emulación en Tiempo Real por medio de la herramienta R(S)_POD. Para llevar a cabo esta tarea, primero deberemos verificar que se haya elegido la opción HCS08 Open Source BDM en el cuadro de selección de herramientas y que se encuentre conectado el sistema R(S)_POD al puerto USB como se detalló en artículos anteriores. Presionar el switch SW1 con retención y deberá encenderse el LED LD3 (MCU_PWR). Hacer click en la fecha verde (Debug) junto al cuadro de selección de herramientas como se puede ver en la siguiente figura...

Se abrirán múltiples ventanas, y en la última nos indicará que la memoria FLASH del MCU será TOTALMENTE borrada (mass erase), para luego programar la aplicación a depurar en la memoria del MCU de la placa de Demo (DemoQG8). Al hacer click en O.K., se presentará la siguiente ventana de Debug...

Como se quiere observar el código implementado para el ejemplo, y en especial las líneas agregadas para invertir el estado del puerto PTB0, se deberá seleccionar la opción Window y al desplegarse la ventana de opciones, se hará click en Source para activar esta posibilidad... Al activarse la opción Source, hacer click en Open Source File para luego elegir el archivo MCUint.dbg, según se muestra en las figuras...

Si se quiere hacer Correr la aplicación en Tiempo Real, sin colocar un Break Point (punto de parada), simplemente hacer click en el icono con la flecha verde y la aplicación comenzará a correr en tiempo real sin detenerse (simultáneamente desaparecerán los iconos relacionados con la ejecución de código en distintos modos), y solo quedarán los de HALT (detención) y Reset (reset general del MCU). Por el puerto PTB0 (pin 12 de la placa DemoQG8) saldrá una señal cuadrada de 500 ms de período en forma ininterrumpida... Atención: Debido a que el oscilador interno del MC9S08QG8 se ajusta por medio de unos valores contenidos en la FLASH del mismo (ver sección ICS, Internal Clock Source, en el manual del MCU) y que durante el proceso de borrado de TODA la memoria FLASH los mismos son borrados (con $FF), la frecuencia final del oscilador puede ser DISTINTA a la originalmente configurada en nuestro programa. Escapa al propósito de este artículo, explicar como solucionar este inconveniente. Se sugiere al lector consultar artículos posteriores de Hablemos de MCU s para saber como se soluciona el tema.

Luego procedemos a detener la ejecución del código de aplicación haciendo click en el icono de HALT... Para colocar un Break Point, en cualquier punto del programa de ejemplo, hacemos click en la línea que nos interesa colocarlo y presionamos el botón derecho del mouse y elegimos la opción Set Breakpoint. Y se representará el mismo por una flecha Roja a la izquierda de la línea elegida, según se puede observar en la figura...

Al hacer Click en la flecha verde (RUN), la aplicación correrá hasta el breakpoint previamente marcado y se detendrá en el, como se muestra en la figura...

Bueno amigos, hasta aquí vimos como utilizar el entorno CodeWarrior 5.1/6.x y la herramienta de bajo costo R(S)_POD con un MCU QG8 de la familia HC9S08. Sugerimos al lector, ampliar los comandos y funciones disponibles por medio de la opción Help en el entorno CodeWarrior o en los numerosos tutoriales disponibles en el sitio del mismo (www.freescale.com/codewarrior ). Será hasta la próxima!...