Programando dispositivos HC08

Hace unos años (varios, unos 6….) conseguí por medio del programa de Muestras Gratis de Freescale unos micros de la linea HC08. Comencé a investigar de que forma programarlos, que interfaz de programación construir, que software utilizar, etc. En el proceso cambíé la PC de esctitorio con XP por una notebook con Windows 7. Esto trajo varios probemas: en primer lugar, leí en su momento que no iba a haber soporte del CodeWarrior (el IDE de desarollo de Freescale) sobre Windows 7, lo podía solucionar con una maquina virtual que corra XP, pero me parecía medio engorroso.

Otro problema era la falta de un puerto serie en mi notebook. Tenía intenciones de utilizar la interfaz MON08 para la programación de los micros. Es una interfaz sencilla que requiere pocos componentes. Leí en su momento comentarios contradictorios acerca del uso de conversores Serie-USB.

Así que los micros estuvieron juntando tierra todos estos años. Entre tanto Freescale (ahora NXP, si han habido algunos cambios…) dió de baja la linea HC08.

Hace unas semanas me encontré de casualidad (no recuerdo que estaba buscando) con este post que explica como instalar CodeWarrior 6,3 en Windows 7 x64 bits. Seguí los pasos y en un rato estuvo andando sin problemas.

Comencé luego a buscar información relacionada al uso de conversores USB y encontré un par de post interesantes. Uno donde muestra una placa de desarrollo para micros HC08 y utiliza un FT232RL. Y otro donde se muestra un programador para micros HC08, de la familia JL y JK, y utiliza un conversor MCP2200. Este último usaba como software de desarrollo WinIDE.

También encontré este video en el que utilizan un conversor PL2303 para la programación de un micro HC08, expecíficamente un QY4. En este caso se usa CodeWarrior 6.3 en una máquina virtual y por algún motivo menciona que el puerto virtual creado debe ser el COM1.

Otro problema era la dificultad de conseguir donde vivo un cristal de 9.8304MHz, aunque según este post sería posible utilizar cristales de frecuencias cercanas y más fácil de conseguir, como por ejemplo 10MHz.

Comencé con unas pruebas sencillas en una protoboard. Armé el circuito que se muestra en el esquemático, para los 9V necesarios para entrar en modo programación (Normal Monitor Mode) utilizo una fuente externa. El microcontrolador es un MC68HC908JL8 y el oscilador es de 10 MHz.

002-001

Acá se puede ver el circuito armado en una protoboard.

Programming HC08 devices

Las primeras pruebas las hice con un PL2303. El conversor tenía asignado el COM44 y el software de programación no lo reconocía. Luego lo cambié al COM1, elegí un baudrate de 9600 y como interfaz  la Clase 3.

paso1

luego de conectar con el microcontrolador, el software pide resetear el procesador:

paso2

y después pide apagar y encender el microcontrolador:

paso3

El apagado del micro es necesario para pasar el chequeo inicial de seguridad y acceder a la memoria flash del microcontrolador.  Un simple reset no es suficiente; para pasar la verificación de seguridad es necesario forzar al procesador a pasar por un POR (power-on reset)1.

Busqué algún firmware que me permitiera probar el funcionamiento del programador y dí con esta página. Tiene varios ejemplos para microcontroladores JL16 que son compatibles con el JL8, y utilicé el jl16-0.c que simplemente cambia el estado de uno de los pines. La descripción en la cabecera del archivo menciona un período de 4.5 microsegundos utilizando un cristal de  9.8304MHz, como utilicé uno de 10Mhz el período que obtuve es ligeramente menor:

NewFile1

Entre los archivos que había descargado hace unos años tenía el esquemático de un programador HC908GS de la empresa Firtec. Es un programador por puerto serie y agrega la circuitería necesaria para generar el POR mediante el software y así ahorrarse unos pasos durante la programación.  Este es el circuito que implementé en la pequeña protoboard roja:

002-002

El software utiliza la linea DTR para controlar la alimentación del microcontrolador y ahora la interfaz que se debe seleccionar en el software es la Clase 1:

Sin título

Cambié el conversor Serie-USB. Utilicé un FT232RL soldado en una placa adaptadora que me permite acceder al pin DTR.

Programming HC08 devices

Resumiendo:

  • Es posible instalar y utilizar CodeWarrior 6.3 en Windows 7 x64 siguiendo estos pasos.
  • Es posible programar dispositivos HC08 con conversores Serie-USB con CodeWarrior 6.3 en Windows 7 x64.
  • Es posible utilizar un cristal de 10MHz.

 

Reference

1. MON08 MULTILINK USER MANUAL

Advertisements