Sie sind auf Seite 1von 76

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Captulo 2: Memoria Descriptiva


2.1 Placa USB-RS232
El sistema de comunicacin actual entre la placa de prcticas del 68HC11 y el programa VTF, usado para monitorizar dicho microprocesador, usa las lneas RS-232 del puerto serie del ordenador. Para cambiar las lneas RS-232 por el bus USB se hace uso del integrado de Texas Instruments TUSB3410 que har el paso entre ambas lneas a nivel hardware. Por otro lado, a nivel software, tambin se tendr que crear un puente entre el controlador USB y el programa monitor VTF, que usa el puerto serie. Este paso lo lleva a cabo el driver ofrecido por Texas Instruments VCP, el cual crea un puerto serie virtual que convertir los parmetros de control de las lneas RS232 en instrucciones para el integrado de Texas Instruments TUSB3410 que viajarn por el bus USB.

Ilustracin 10: Foto placa TUSB-RS232 Pgina 26 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

El Motorola 68HC11 no usa directamente niveles RS-232 pero la placa de prcticas las convierte a esos niveles para poder realizar la comunicacin con el ordenador personal. El TUSB3410 no ofrece directamente niveles compatibles con el Motorola ni niveles RS-232, por lo que el objetivo final es adaptar los niveles del TUSB3410 y del 68HC11. En un primer acercamiento se ha decidido realizar una placa que haga de puente entre el bus USB y las lneas RS-232 y, de este modo, no modificar an la placa de prcticas. Dicho puente se lleva a cabo con la placa USB-RS232. Esta placa se desarrolla alrededor del integrado de Texas Instruments TUSB3410.

Ilustracin 11: TUSB3410

A continuacin se numeran las caractersticas principales del integrado: 1. Total compatibilidad con USB 2.0 2. Hasta una velocidad de 12 Mbps de datos a travs del USB 3. Soporta las operaciones USB suspend, resume y remote wakeup 4. Puede ser obtener la tensin de alimentacin a partir del USB 5. Soporta hasta 3 endpoints USB, a nivel de interrupciones Pgina 27 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 integradas

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

6. Integra un micro controlador 8052 7. 256 x 8 RAM para datos internos 8. 10k x 8 ROM para el bootloader desde I2C y USB 9. 16k x 8 RAM para el programa cargado desde el host USB o el puerto I2C 10. 2k x 8 Shared RAM para buffers y los descriptores de los endpoint 11. Dos canales DMA controlada por USB/UART 12. Funciona con un cristal de 12 Mhz 13. Opera con una tensin de alimentacin de 3,3 V 14. Control por software o hardware del control de flujo de la UART 15. Soporta el modo de bus RS-485 16. Posibilidad de transmitir directamente una seal IrDA 17. Seleccin software de la velocidad de la UART desde 50 a 921,6k baudios 18. Caractersticas de la UART programables (paridad, bits de datos y parada) 19. Generacin y deteccin de BREAK en la lnea de datos de la UART 20. Test interno y modo loop-back de la UART

Pgina 28 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

2.1.1 Diseo hardware


Para el diseo de esta placa se toma como origen las recomendaciones de Texas Instruments para realizar circuitos basados en el TUSB3410. El fabricante recomienda el diseo de dos placas distintas orientadas para hacer uso de dos de las caractersticas bsicas de dicho integrado. Una primera placa llamada TUSB3410GPIO est orientada a las lneas de propsito general que tiene el TUSB3410 y a la transmisin y recepcin serie de la UART. La segunda placa, la TUSB3410UART, est centrada en las lneas RS-232 de puerto serie, tanto en las lneas de comunicacin serie de la UART como en las lneas de control de flujo RS-232. Se han unido ambas caractersticas para obtener una placa para un uso ms amplio. En la Ilustracin 12 se puede ver el diagrama de bloques seguido en el diseo de la placa USB-RS232. En el se muestran los principales dispositivos de la placa:

Conector para el USB y el puerto RS-232 TPS76933 para controlar la tensin de alimentacin SN75LV4737 para adaptar seales RS-232 Cristal para generar el reloj del sistema EEPROM para almacenar el programa a ejecutar TUSB3410 para realizar el paso de USB a RS232

Pgina 29 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 12: Diagrama de bloques USB-RS232

Dado que la comunicacin USB es maestro-esclavo, es decir, uno de los lados domina la comunicacin, el estndar USB asigna un tipo de conector diferente para cada tipo. El conector tipo A es el usado en el lado del maestro y el tipo B en el del esclavo. Los receptculos se usan en los dispositivos y los conectores en los cables. En este sentido se usa un cable con conectores tipo A y B, un receptculo tipo A para el conector del ordenador y uno B en la placa USB-RS232.

Pgina 30 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 13: Conectores USB

Como todos los conectores USB el receptculo tipo B usado en la placa tiene cuatro contactos. Dos de estos contactos, son usados para la telealimentacin con los cuales se ofrece al dispositivo la tierra y una lnea con 5 Voltios con 100 mA como mximo.

Ilustracin 14: Receptculo tipo B

Contacto nmero 1 2 3 4

Color del cable Rojo Blanco Verde Negro Tabla 1: Cable USB DD+

Funcin VBUS (5 Voltios)

TIERRA

Pgina 31 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Los otros dos contactos son usados para la trasmisin de datos que corresponden a D+ y D-. Estas dos lneas forman un nico canal de datos en modo diferencial, es decir, si D+ es mayor que D- ser un uno lgico y si es menor un cero. Para generar una nica lnea de datos se usan amplificadores diferenciales como se ve en la Ilustracin 15. De este modo solo tenemos un nico canal bidireccional en el cual el host, el ordenador personal, ser el encargado de gobernar la comunicacin.

Ilustracin 15: Amplificador diferencial

El fabricante del integrado propone para las lneas de datos USB un circuito RC a modo de filtro paso bajo para eliminar alteraciones en la lnea. Este circuito se compone por una resistencia en serie con la lnea de datos de 33 ohmios y un condensador de 22 pF a tierra. Conectado a la lnea D+ y a una pata del TUSB3410, PUR, se necesita una resistencia de 1k5 ohmios para generar ciertos estados en la lnea USB.

Pgina 32 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 16: Conexin conector USB a TUSB3410

En esta placa todos los dispositivos de alimentan a 3,3 voltios. Esta tensin se consigue gracias a los 5 voltios de la lnea USB y al TPS76933, que es simplemente un regulador de tensin fija (diagrama de bloques de la Ilustracin 17 sacado de la hoja de especificaciones del fabricante TPS76933.pdf pgina 2). Este dispositivo tiene cinco pines: tensin de entrada y de salida, tierra, una seal de habilitacin y un pin que en no se usa en este dispositivo (es usado en otro componente de la misma serie pero con el que comparte encapsulado).

Ilustracin 17: Diagrama de bloques del TPS76933

Para generar a la salida 3,3 voltios necesita 4,3 voltios de entrada que, Pgina 33 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

con los 5 de la lnea USB ser suficiente. Rodeando a este dispositivo para estabilizar las tensiones de entrada y salida, se dispuso de un condensador electroltico tierra de 1uF en la lnea de 5 voltios y de 4,7uF en la de 3,3. Para suavizar ruido en la alimentacin de pusieron unos condensadores cermicos rodeando al resto de dispositivos de distintos valores, 100, 10 y 1nF.

Ilustracin 18: Conexionado del regulador de tensin

El TUSB3410 adems de los 3,3 voltios necesita una lnea de alimentacin adicional de 1,8 voltios. Este dispositivo tiene un regulador interno el cual es capaz de generar esta tensin, para habilitarlo debe poner el pin /VREGEN a tierra. Para reforzar este sistema se genera dicha tensin con un divisor resistivo conectado al pin VDD18.

Ilustracin 19: Divisor resistivo para la tensin de 1,8V

Pgina 34 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Para generar el reset al TUSB3410 se puso un pulsador para conmutar la lnea a tierra, lgica negada, y se implement un POR (Power On Reset), que consiste en una resistencia de pull-up para que en estado estacionario la lnea este a nivel alto y al arrancar para que se genere un reset al alimentar el circuito se pone un condensador a tierra.

Texas Instruments para solucionar unos problemas con la lnea SUSPEND recomienda el uso del circuito de la Ilustracin 20. En este est involucrada la lnea /VREGEN y hace uso del circuito del POR anteriormente comentado. Por lo que slo aade un diodo entre /VREGEN y SUSPEND y una resistencia de 32 K desde /VREGEN al condensador del POR.

Ilustracin 20: Conexionado de las lneas RESET,VREGEN y SUSPEND

El TUSB3410 requiere un reloj de 12 Mhz para un buen funcionamiento. Este reloj se coloca entre las patillas X1 y X2. El fabricante recomienda el uso de un cristal de resonancia paralela. La mayora de los cristales para su resonancia en la frecuencia especificada necesitan una capacidad de carga de

Pgina 35 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

18 pF. Dicha capacidad de carga se realiza colocando unos condensadores de 33 pF a cada lado del cristal conectados a tierra como se muestra en la Ilustracin 21.

Ilustracin 21: Conexin del reloj al TUSB3410

El cdigo firmware usado por el TUSB3410 puede estar contenido tanto en el ordenador personal como en una memoria externa integrada en la placa. Para contener el firmware en el ordenador el uso de la memoria estara indicado para contener alguno datos necesarios para una personalizacin y de forma opcional. Sin dicha personalizacin pueden producirse diversos conflictos, entre ellos, la duplicidad de identificadores de perifricos. Por esta razn el fabricante recomienda el uso de dicha memoria. En este diseo se posibilita el uso de una memoria EEPROM para el almacenamiento del cdigo firmware ejecutado por el procesador 8052 que integra el TUSB3410. Texas Instruments recomienda en estos casos el uso de una memoria de la serie 24LCXX. Para elegir el tamao de la memoria hay que tener en cuenta que el tamao del firmware es de 14k a los cuales hay que aadir aproximadamente 2k de cabeceras. A esto hay que aadir que, segn el fabricante, el TUSB3410 no es capaz de leer memorias de 16k. Teniendo en cuenta lo indicado se ha elegido una memoria de 32k, la 24LC32. Para su buen funcionamiento la memoria EEPROM necesita una lnea

Pgina 36 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

de alimentacin que este entre los 2,5 y los 6 voltios, en este diseo se a conectado a 3,3 voltios al igual que el resto de dispositivos de la placa. Para la comunicacin con el TUSB3410 ambos se encuentran conectados directamente al bus I2C . Este tipo de bus el cero lgico los dispositivos conectados lo consiguen poniendo la lnea a 0 voltios y para generar el 1 lo hacen dejndola en alta impedancia, por ello necesita nicamente una resistencias de pull-up de 1k ohmio en cada una de sus lneas, SDA y SCL, para obtener el nivel alto correspondiente. El bus I2C es un bus tipo maestro-esclavo, en el que el maestro enva instrucciones por el bus con una cabecera con la direccin de un esclavo. ste ejecutar dicha orden respondiendo si fuera oportuno. Para este diseo el TUSB3410 actuar de maestro y la memoria EEPROM de esclavo. Como se pueden tener varias memorias en el mismo bus y es necesario que cada una tenga una direccin distinta. En este caso la direccin de control de la memoria debe comenzar por 1010 y los tres bits restantes sern segn el valor puesto en tres de sus pines. Texas Instruments advierte que para la carga del firmware estos pines deben estar a tierra. El pin restante, WP, debe quedar al aire segn la hoja de especificaciones de la memoria. Se han observado algunas utilidades que necesitan anular el uso de la memoria temporalmente y como se trata de una placa de uso experimental se ha habilitado esta posibilidad colocando un jumper en la lnea SDA. Finalmente en la Ilustracin 22 podemos observar como se han conectado las lneas referentes a la memoria EEPROM.

Pgina 37 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 22: Conexin de la Memoria al TUSB3410 Dado que las lneas RS-232 del TUSB3410 son de 0 a 3,3 voltios y con lgica negada se necesita un integrado que cambie la lgica y adapte la seal a los niveles de tensin del RS-232 tanto en direccin entrante como saliente al TUSB3410. Para ello el fabricante recomienda el uso del SN75LV4737A. Este integrado es alimentado a 3,3 voltios y haciendo uso de unos condensadores electrolticos de 1F generando los 12 voltios positivos y negativos necesarios para los niveles RS-232.

Ilustracin 23: Diagrama de bloques del SN75LV4737

Pgina 38 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

En la Ilustracin 24 se puede observar que adems de las 8 lneas RS232 existen 2 ms para habilitar las salidas. En este caso se ha puesto la seal /EN a tierra para que la lnea R5 se comporte igual que el resto; y la lnea STBY se ha conectado al pin SUSPEND del TUSB3410 para que este controle la habilitacin de las seales con el estado del bus USB.

Ilustracin 24: Conexiones al adaptador de tensiones SN75LV4737A

En el diseo propuesto por el fabricante este usa nicamente un led para ver si el bus USB est en modo suspendido, que es una de las salidas del TUSB3410, con un jumper para anularlo. Como este diseo se ha realizado como placa de prctica se necesita ms informacin acerca del estado y las comunicaciones del TUSB3410. Por esa razn se le han incorporado una serie de leds adicionales para ver el estado de las cuatro lneas RS-232 usadas Pgina 39 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

(TXD, RXD, RTS, DTR). Estos leds se pusieron en serie con una resistencia de pull-up directamente en la salida del TUSB3410 de modo que se encienden al ponerse la lnea correspondiente a nivel bajo que corresponde a un cero lgico. Se colocaron as porque las lneas de transmisin se mantienen a uno lgico cuando no transmiten y las lneas de control son activas a nivel bajo. De este modo el estado natural es tener todos los leds apagados. A transmitir el ordenador parpadea el led verde, al transmitir el Motorola lo har el rojo, al habilitar la lnea RTS (generar un reset) se encender el de color amarillo y al activar el DTR (generar una XIRQ) ser el de color naranja el que se encender.

Ilustracin 25: Conexin de LEDS a las lneas RS-232

Adems para poder conectar fcilmente la sonda en las mediciones se colocaron unos testpoints. Estos se pusieron en algunas de las lneas generales usadas y en las lneas del puerto de propsito general del TUSB3410 (lneas 0, 1, 3 y 4 del puerto 3 del microprocesador 8052). Estas ltimas se pusieron juntas y cerca de unos testpoint de alimentacin y tierra para facilitar la ampliacin de esta placa y poder usarlos. Para ello se hace uso Pgina 40 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

del esquema de la Ilustracin 26. Adems de las lneas con testpoint propuestas en el diseo se incorporaron las lneas RS-232 para facilitar el proyecto actual.

Ilustracin 26: Esquema del conexionado de los puerto GPIO

Por ltimo quedan tres pines de entrada al TUSB3410 sin uso alguno en este diseo que necesitan una resistencia de pull-up de 10K ohmios. Dos de ellas son para test del fabricante, Test0 y Test1. La lnea restante (/WAKEUP) se usa para despertar al sistema cuando se encuentra a nivel bajo. En este diseo no se usa y anulamos su efecto con un pull-up.

2.1.2 Diseo software


Para el diseo del software usado en la comunicacin entre el ordenador personal y la placa de prcticas del Motorola 68HC11 pasando a travs de la placa USB-RS232 basada en el TUSB341 se parti de un software base ofrecido por un proyecto fin de carrera anterior y por Texas Instruments. Pgina 41 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

2.1.2.1 Software base

El conjunto de software ofrecido por el proyecto fin de carrera de Vctor Tienda Flores llamado VTF ofrece de un interfaz para el ordenador personal con el que se podr monitorizar el Motorola 68HC11 y que se encargar de controlar el puerto serie para mandar ordenes al Motorola. Tambin tiene los programas que se tendrn que cargar en el 68HC11 el cargador, el monitor y un programa que har de test. Este ltimo transmitir la cadena HOLA cclicamente, la cadena XIRQ al detectar dicha seal y todo lo recibido por el puerto serie. Este conjunto de software se instala en el ordenador personal porque, aunque alguno de sus programas se ejecutar en el Motorola, ser el propio ordenador el encargado de transmitirlo a la memoria del 68HC11. Texas Instruments ofrece en su pagina web www.ti.com el driver que crear un puerto serie virtual a partir del dispositivo USB la placa USB-RS232. Tambin en la misma pgina ofrece el firmware que usar el TUSB3410 para su funcionamiento. En este caso el driver se tiene que instalar de forma obligatoria en el ordenador pero el firmware tenemos la posibilidad de grabarlo en la memoria de la placa USB-RS232 o cargarlo a travs del USB cada vez que se conecte la placa al ordenador. Para su funcionamiento definitivo se usar la memoria pero en su depuracin se us el segundo mtodo. Una vez visto el conjunto de software se pasar a describir su funcionamiento agrupados por el procesador implicado.
i Ordenador personal

El ordenador ofrece la interfaz de usuario del proyecto VTF para poder interactuar y programar el Motorola. En el proceso de programacin del

Pgina 42 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Motorola se siguen los siguientes pasos:


Reset del Motorola. Activa y desactiva la lnea del puerto serie RTS. Transmite el cargador intermedio a 1200 baudios y espera el

asentimiento, $FF.

Transmite a 9600 baudios el programa monitor seguido del

programa del usuario, en este caso el programa test. Una vez programado el software interfaz podr controlar la ejecucin del programa del usuario cargado en el Motorola as como leer partes de la memoria y los registros, estos ltimos pudiendo modificarlos. Tambin podr interactuar con el software del usuario enviado y recibiendo caracteres y enviando seales de XIRQ y RESET. Dichas seales se enviarn a modo de pulsos en las lneas RS-232 DTR y RTS respectivamente. El software interfaz usa un componente Visual Basic (MsComm) para comunicarse con la placa de prcticas. Este componente tiene varias propiedades, mtodos y variables que controlan el puerto serie. En este caso, el programa, se tendr que comunicar con un dispositivo USB, la placa USBRS232. Para mantener el programa y seguir usando ese componente, la placa USB-RS232 tendr que ofrecer caractersticas de puerto serie. Para ello se instalar el driver que ofrece Texas Intruments el cual crea un puerto serie virtual que puede ser controlado por el componente MsComm. El driver consta de dos partes: el propio controlador del dispositivo TUSB3410 y un puerto serie virtual (VCP, Virtual Com Port). l mismo se encarga de conectar ambos dispositivos. Este driver convertir el control del puerto serie en ordenes que el firmware del TUSB3410 interpretar para gobernar las lneas RS-232 consecuentemente.

Pgina 43 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

El driver usado es el que ofrece Texas Instruments para el integrado TUSB3410 en su pgina oficial www.ti.com, TUSBWINVCP.
ii TUSB3410

El TUSB3410 al comenzar a funcionar ejecuta un cdigo de arranque que tiene embebido en su ROM. Este inicializa los registros correspondientes a los buses I2C y USB. Seguidamente comprueba si el dispositivo I2C contiene la marca de un firmware vlido. Si es as continuar con la carga del firmware. En otro caso se conectar al USB y esperar que el driver del ordenador personal transfiera el firmware. Una vez termina la carga a su RAM pasar el control a dicho firmware. En la placa USB-RS232, para su uso normal, tiene prevista una memoria I2C para realizar la carga del firmware a partir de ella. Para programar la memoria 24LC16 se usar un programador adecuado, por ejemplo un TE20. Texas Instruments ofrece en su pagina web www.ti.com el firmware que se deber usar en este tipo de aplicaciones. Adicionalmente para completar el cdigo a programar en la memoria se necesita aadir una cabecera. Esta se generar automticamente con un programa que acompaa al firmware. Para las pruebas del firmware se usa el segundo mtodo de carga. Para tal fin se ha de programar la memoria con la correspondiente cabecera, sin firmware alguno, y colocar en la carpeta windows/system32/drivers/ el firmware a cargar con nombre umpf3410.i51. Posteriormente se ha demostrado que no necesitaba tener programada la memoria para este mtodo: simplemente sin la memoria funciona igual. Este firmware es el encargado de interpretar las rdenes que le manda el driver VCP y controlar las lneas RS-232. Del mismo modo deber transmitir

Pgina 44 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

las rdenes correspondientes por el bus USB ante los cambios de las lneas RS-232. Para realizar la retransmisin de datos serie har uso de varios buffers y de la DMA interna.
iii 68HC11

El Motorola tras el reset arrancar en modo Bootstrap y, tras negociar la velocidad de transmisin, realizar la descarga a 1200 baudios del cargador intermedio. Al finalizar la descarga comenzar su ejecucin automticamente: pasa de modo Bootstrap a expandido y se comunica con el interfaz del ordenador personal para realizar la descarga del programa monitor y el del usuario. En este caso el programa usuario es un programa de test para verificar el funcionamiento.
2.1.2.2 Pruebas y modificaciones

En primer lugar se observ que el sistema de comunicacin entre el ordenador y la placa de prcticas del Motorola 68HC11 pasando a travs de la placa USB-RS232 no funciona directamente. Este error debe ser causado por la placa del TUSB3410 ya que el sistema de comunicacin sin ella funciona. Ante esto se decide probar el funcionamiento de la placa USB-RS232 de forma independiente. Para ello se hace uso de un cable serie cruzado o mdem nulo. Este cable tiene las lneas de un lado conectadas con la

correspondiente cruzado simtrica del otro. Por ejemplo, la lnea de transmisin de datos (2) del lado del DCE conectada con la de recepcin (3) del DTE. La lnea RTS (7) es de salida y al activarse solicita permiso para enviar, la cual se conecta con la lnea CTS (8) que al estar activa significa que el permiso ha sido concedido, es decir, al solicitar permiso para enviar se permite el envo desde el otro lado. La lnea DTR (4) se activa para indicar que se est conectado y se Pgina 45 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

une en su mismo lado a CD (1) y en el otro a la lnea DSR (6). Por ltimo faltaran por conectar ambas tierras (5) y ya se tendra completo el mdem nulo. PIN SEAL 1 2 3 4 5 6 7 8 9 CD RX TX DTR TIPO SALIDA SALIDA SALIDA ENTRADA Recepcin de datos Transmisin de datos Activa si el DTE est conectado Retorno comn para transmisin y recepcin los circuitos de USO Activa si se detecta seal

TIERRA COMUN DSR RTS CTS RI

ENTRADA Activa si DCE est conectado SALIDA El DTE activa esta seal para solicitar permiso para transmitir

ENTRADA Activa = permiso para transmitir concedido ENTRADA Tabla 2: Lneas RS-232

Se recuerda que las funciones de las lneas indicada es para el uso normal RS-232 con el cual se va a comprobar su funcionamiento pero en la conexin con la placa de prcticas slo se usarn las lneas de control de flujo que salen del ordenador (DTE), RTS (7) y DTR (4) para indicarle al Motorola 68HC11 el Reset y XIRQ respectivamente, y las de transmisin y recepcin de datos. El resto de las lneas son de entrada al DTE y no son usadas en el sistema de comunicacin.

Pgina 46 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 27: Mdem Nulo

Tambin se us en esta prueba el programa, para el ordenador, RealTerm. Este es simplemente un Hyperterminal como el de windows pero ms avanzado. Con el se pueden enviar y recibir tanto caracteres como archivos por el puerto serie. A su vez se pueden ver el estado de las lneas de control de flujo del RS-232 as como modificar su estado.

Ilustracin 28: Conexin Mdem Nulo, placa USB-RS232 y USB

Para esta prueba se conecta el mdem nulo por un lado a un puerto serie del ordenador, por ejemplo el COM1, y por el otro a la placa USB-RS232 que a su vez se conecta un puerto USB del ordenador. Abriendo ahora dos RealTerm y eligiendo en uno el puerto COM1 y en el otro el puerto serie virtual creado por el driver VCP. Cogiendo la mismas caractersticas de configuracin del puerto COM en ambos RealTerm, por ejemplo: 9600 baudios de velocidad, Pgina 47 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

sin paridad , un bit de stop y sin control de flujo.

Ilustracin 29: Detalle de la configuracin de RealTerm

En esta situacin se hicieron pruebas de transmisin y recepcin de caracteres y de archivos teniendo resultados satisfactorios a diferentes velocidades, entre ellas los 1200 y 9600 baudios usados en el sistema de comunicacin con el Motorola 68HC11. Tambin se observaron que los cambios producidos en las lneas RTS y DTR tenan el cambio satisfactorio en las lneas cruzadas correspondiente, CTS y DSR respectivamente. Basndose en tales pruebas se supuso un correcto funcionamiento de la placa USBRS232. En este punto se conect el sistema de comunicacin completo con el Motorola y se puso en funcionamiento el interfaz del usuario VTF. Al probar los botones del programa apareci un error de fallo de segmento. Tras su depuracin se observ que ocurra debido a la recepcin por la lnea serie un carcter de escape cuando el cuadro de texto de datos entrantes estaba vaco. Para solucionarlo se aadi un espacio en blanco al principio de la cadena para que no tuviera esa secuencia de escape al principio de la misma. Con ello se Pgina 48 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 solucion el problema.

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Una vez corregido fallo se prueba ejecutando una carga del programa de test a travs del interfaz VTF. En este caso al llegar a la secuencia de carga apareci un ventana de error referente al exceso de tiempo de espera a la respuesta del cargador, ver Ilustracin 30. Para una mejor depuracin del sistema se conectaron la trasmisin y la recepcin de datos a un osciloscopio. Se pudo observar que la transmisin desde el TUSB3410 no se hacia exactamente a la velocidad convenida en lo que se supuso que el Motorola no estaba recibiendo bien el cdigo del programa cargador y de esta forma no contestaba.

Ilustracin 30: Ventana del error en la carga del cargador

Para solucionar la falta de sincronismo se opta por modificar la rutina de transmisin del interfaz de usuario del VTF para que entre cada envo de un byte de cdigo esperara una centsima de segundo para que vuelva a sincronizar en la recepcin el Motorola. Exactamente se aadi la lnea subrayada de la siguiente parte de cdigo sacado de la funcin envio_PRG de la parte general del programa interfaz VTF escrito en Visual Basic, que habra que compilar con el programa de Microsoft Visual Studio. Simplemente se hace uso de la funcin existente espera_T que recibe como parmetro el tiempo en segundos a esperar. Pgina 49 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006
.......

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

'Abro el archivo del cargador fv_filenum = FreeFile Open App.Path & "\carg.s19" For Input As #fv_filenum 'Envo el byte que est esperando para iniciar la precarga com_link.Output = Chr(&HFF) Do While Not EOF(fv_filenum) Line Input #fv_filenum, fv_s19_linea fv_s19_linea_dec = s19_dec(fv_s19_linea) For fv_xcuenta = 1 To Len(fv_s19_linea_dec.fv_s19_dat) com_link.Output = Mid(fv_s19_linea_dec.fv_s19_dat, fv_xcuenta, 1) 'Retraso para que se sincronice espera_t 0.01 Next Loop Close #fv_filenum ........

En este momento se supuso que la transmisin se realizaba correctamente ya que el Bootloader del Motorola contestaba con el eco correspondiente pero se segua obteniendo la misma ventana de error. En las pruebas con el Modem Nulo se comprob que las lneas RESET y XIRQ funcionaban bien de forma independiente, modificaban su tensin al cambiar su estado. Llegado este punto se conectaron las lneas de RESET y XIRQ al osciloscopio para poder observar el funcionamiento de todas las lneas a la vez:

Pgina 50 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 31: Captura de osciloscopio del movimiento anmalo de las lneas RTS y DTR

En esta captura de osciloscopio se pueden observar las lneas XIRQ, RESET, RxD y TxD; las dos ltimas corresponden con la recepcin y trasmisin por parte del Motorola respectivamente. Estas seales estn invertidas y con niveles de 0 a 3,3 voltios ya que corresponden al puerto del TUSB3410 donde se tienen los testpoint. PIN RS-232 LNEA TUSB3410 LNEA 68HC11 4 7 3 2 /DTR /RTS SOUT SIN /XIRQ /RESET RXD TXD COLOR NARANJA AZUL VIOLETA VERDE

Tabla 3: Descripcin de las lneas monitorizadas

Se aprecia un movimiento extrao en las lneas XIRQ y RESET pues esta ltima genera un consecuente movimiento en la lnea de transmisin por parte del Motorola. Despus de varias pruebas parando el cdigo del interfaz Pgina 51 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

VTF se lleg a la conclusin que el movimiento extrao se produca al abrir el puerto serie. Este se produce al abrir el puerto para comenzar la transmisin del cargador al cambiar la velocidad despus de terminar de enviarlo, de los 1200 baudios necesarios para su transmisin a los 9600 usados en la comunicacin con este. Con ese extrao movimiento de las lneas DTR y RTS, de esta ltima en particular, se generaba un reset al Motorola 68HC11 provocando el nuevo arranque del Bootloader y anulando todo lo comunicado hasta entonces. Una vez localizado el problema se proponen dos posibles soluciones modificando el sistema de comunicacin.
i Manteniendo la velocidad

Esta posible solucin se centra en anular el cambio de velocidad entre la transmisin del cargador intermedio y los programas monitor y usuario. Para ello se anula dicha parte del cdigo del interfaz VTF que se encuentra en la funcin envio_PRG de la parte general, manteniendo as los 1200 baudios de la carga del cargador intermedio. Para anularlo se pone como comentario la llamada al cambio de velocidad y a la funcin de inicio del puerto.
.......... 'Espero que se transmitan todos los bytes Do While com_link.OutBufferCount > 0 DoEvents Loop 'IMPORTANTE!!!! 'Antes de cambiar la configuracin, espero un tiempo porque 'aun sin tener algo en el buffer si que se est TX un byte 'y como cierre el puerto se pierden esos bytes

Pgina 52 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006
espera_t 0.5

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

'Cambio a la velocidad del COM LINK 'para la comunicacin con el MONITOR (no la cambio) 'COM_LINK_CFG com_link_bds 'Inicio el puerto otra vez ya con 'la configuracin nueva (como no la cambio no inicio el puerto otra vez) 'com_link_inicio 'Vacio el buffer de entrada que han tenido que ir llegando todos los bytes 'de eco que manda el bootloader com_link.InBufferCount = 0 ........

Una vez modificado el cdigo en Visual Basic habra que compilarlo con el programa de Microsoft Visual Studio. Adems habra que modificar la velocidad de transmisin para la comunicacin con el cargador intermedio y el programa monitor. Para ello solo hay que modificar el cargador intermedio porque es el encargado de ajustar dicha velocidad.

7 TCLR

6 0

5 SCP1

SCP0 RCKB SCR2 SCR1 SCR0

Tabla 4: Registro BAUD ($102B)

Para ajustar la velocidad del puerto serie del Motorola 68HC11 hay que Pgina 53 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

poner el valor adecuado del registro BAUD en la direccin $102B. Este registro contiene dos bits para test de fbrica,TCLR y RCKB, y dos conjuntos de bits. El primer conjunto de bits llamados SCP1 y SCP0 se encargan de ajustar el valor de la velocidad mxima del puerto segn la velocidad de reloj usada en el sistema como se observa en la tabla 5. SCP1 SCP0 VELOCIDAD MXIMA 0 0 0 1 1 0 1 1 125000 Baudios 41667 Baudios 31250 Baudios 9600 Baudios

Tabla 5: Velocidad mxima del puerto con 8 MHz de reloj

El segundo conjunto de bits, SCR2 SCR1 y SCR0, ajustan del divisor de la velocidad mxima ajustada en el conjunto anterior, vase tabla 6. En este caso el reloj usado en la placa de prcticas del Motorola 68HC11 es de 8MHz y se ajusta la velocidad mxima a 9600 Baud poniendo a uno los bits SCP como se comprueba en la tabla 6.

Pgina 54 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE VELOCIDAD MXIMA

SCR2 SCR1 SCR0 DIVISOR 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 2 4 8 16 32 64 128

125000 125000 62500 31250 15625 7812 3906 1953 976

41667 41667 20833 10417 5208 2604 1302 651 325

31250 31250 15625 7812 3906 1953 976 488 244

9600 9600 4800 2400 1200 600 300 150 75

Tabla 6: Velocidad del puerto SCI segn la velocidad mxima

En el cdigo primitivo, al usar dicha velocidad, se ajustaba el divisor a uno poniendo los bits SCR a cero, quedando con un valor de $30 el registro BAUD. En este caso al querer poner la velocidad de transmisin del puerto SCI a 1200 Baudios, y segn la tabla 6, se deber poner el valor del bit SCR2 a cero y el de SCR1 y SCR0 a uno, por lo que se tendr que poner el registro BAUD a $33. Con esta intencin de poner la velocidad del puerto a 1200 baudios se ajusta dicho valor en la lnea subrayada del siguiente cdigo extrado de VTF/carg.asm.
BAUD EQU SCCR1 EQU SCCR2 EQU SCSR EQU SCDATEQU CONFIG HPRIO EQU $2B $2C $2D $2E $2F EQU $3C $3F

Pgina 55 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

LDS LDX LDAA STAA LDAA STAA LDAA STAA resend LDY wait2 DEY CPY BNE ........

#$01FF5 #$1000 #$25 HPRIO,X #$33 BAUD,X #$0C SCCR2,X #$FFFF #0 wait2 ;habilita tx y rx sin interrupcion SCI ;retardo para que se sincronice bien ;paso de bootloader a expandido ; 30 -> 9600 33-> 1200 ;Baudios a 1200

Una vez modificado el cdigo en lenguaje ensamblador se necesitar compilar con el programa que trae el propio VTF llamado as11.exe. Para esto se ejecutar desde la una consola MS-DOS: as11.exe carg.asm, obteniendo el correspondiente cdigo mquina en el archivo carg.s19. Esta solucin limita mucho la velocidad de transmisin del programa usuario, por lo que slo aadir la posibilidad de usar el bus USB en ordenadores donde no se disponga de puerto serie. Puesto que esta solucin no aporta un gran avance al sistema de comunicacin ya existente se propone la siguiente solucin.
ii Reset manual

Como el problema estaba en el reset provocado al moverse las lneas de control de flujo al reiniciar el puerto para cambiar la velocidad se opt en Pgina 56 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

esta solucin por eliminar la seal de reset enviada desde el ordenador y crearlo manualmente en la placa. En este caso, partiendo del software original, se sustituy el envo de la seal de reset desde el interfaz VTF por un mensaje. Este mensaje indica que se realice un reset accionando el pulsador de la placa de prcticas del 68HC11. Para no enviar de la seal de reset se elimin la parte de cdigo que modifica el estado de la lnea RTS. Esto se produce en el frame principal del programa en Visual Basic: en la funcin BT_RESET_Click, que corresponde a pulsar el botn de reset de la interfaz, y en la funcin envio_PRG de la parte general, ya que antes de programar se enva un reset. ste ultimo corresponde con las lneas subrayadas del siguiente cdigo:
'Indico que empieza el proceso de programacin stbar1.SimpleText = "Iniciado el proceso de programacin" 'Configuro el puerto COM LINK a la velocidad 'para la precarga del CARGADOR COM_LINK_CFG com_link_bds_boot 'Inicializo el puerto con la nueva configuracin com_link_inicio 'Realizo un reset com_link.RTSEnable = True 'Espero para que el reset se realice correctamente espera_t 0.5 'Quito el reset para que el 68HC11 se ponga en 'modo bootloader para realizar la carga del cargador

Pgina 57 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

com_link.RTSEnable = False 'Abro el archivo del cargador fv_filenum = FreeFile

Como ya se ha comentado la parte subrayada se substituir por el cdigo siguiente que muestra un mensaje indicando que se realice el reset manualmente:
'Realizo un reset MsgBox "Pulse el botn de reset"

Ilustracin 32: Ventana de peticin de RESET Pgina 58 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Por ltimo para evitar que el movimiento de la lnea RTS del puerto serie llegase hasta el reset del Motorola 68HC11 se quit el puente correspondiente de dicha placa. Dicho jumper se encuentra localizado en el crculo rojo de la Ilustracin 33 y el botn est en la marca azul de la misma ilustracin.

Ilustracin 33: Foto del botn y jumper del reset

Pgina 59 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

2.2 Placa USB-MOTOROLA


Llegado a este punto del diseo se opta por integrar la placa USBRS232 dentro de la placa de prcticas del Motorola 68HC11. El proceso de fabricacin de la placa de prcticas es un tarea llevada a cabo por una empresa especializada, puesto que necesita mucha precisin y mquinas especializadas por la multitud de vas y a la estrechez de las pistas. Para disminuir costes y tiempo se opt por realizar unas modificaciones en dicha placa y crear un adaptador en el que se incluya la conversin a USB.

Ilustracin 34: Foto Placa de prcticas acoplada a la placa USB-Motorola

El Motorola 68HC11 no usa niveles RS-232 ni tampoco el TUSB3410 pero en sus respectivas placas, la de prcticas y la USB-RS232, se crea una adaptacin a ese tipo de seal comn. Se crey conveniente simplificar el nuevo diseo eliminando el paso por niveles RS-232 adaptando directamente Pgina 60 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

las seales. Tambin se eliminaron del diseo de la placa USB-RS232 algunos componentes orientados a facilitar las pruebas.

Ilustracin 35: Diagrama de bloques de la placa USB-MOTOROLA

2.2.1 Diseo hardware


Para el diseo de la placa USB-MOTOROLA se toma como origen la placa USB-RS232. De dicha placa se mantuvieron los componentes mnimos para el funcionamiento del TUSB3410, se eliminaron los usados para subir de tensin las lneas RS-232 y se aadieron unos componentes para adaptar los niveles de los puertos del TUSB3410 a los del Motorola 68HC11.

Pgina 61 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 36: Foto placa USB-Motorola

Como la placa USB-MOTOROLA sigue teniendo comunicacin por USB se mantendr todo lo relacionado, como es el filtro RC, el conector USB tipo B y la conexin a travs de una resistencia al pin PUR del TUSB3410 para generar ciertos estados del bus (ver Ilustracin 16). Tambin se ha mantenido el regulador de tensin, el TPS76933, para generar los 3,3 voltios a partir de los 5 voltios de la lnea USB. En este caso se ha incluido un jumper para poder tomar esos 5 voltios de la propia alimentacin de la placa de prcticas del Motorola.

Ilustracin 37: Circuito de seleccin y regulacin de la alimentacin

Pgina 62 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Del diseo de la placa USB-RS232 se ha usado el circuito, que recomendaba el fabricante, para las lneas SUSPEND y /VREGEN y para el reloj de 12 Mhz como se pueden ver en las ilustraciones 13 y 14 respectivamente. En este sentido tambin se han mantenido los tres pull-up de las lneas Test1, Test0 y /WAKEUP. El cdigo firmware que ser ejecutado por el TUSB3410 es almacenado en una memoria EEPROM como ya se hizo en la placa USB-RS232 por lo que se mantiene el circuito usado en esta como se puede ver en la ilustracin 15. Las puertos de entrada/salida del TUSB3410 funcionan entre 0 y 3,3 voltios y las lneas RS-232 adems con lgica negada con respecto a este estndar. En la placa USB-RS232 se invierte la lgica y adecuan los niveles de tensin de esas lneas con el adaptador de tensin SN75LV4737. De forma equivalente en la placa de prcticas del Motorola 68HC11 se usa el adaptador MAX232, que invierte y adapta de los niveles del RS-232 a los del Motorola como se observa en la Tabla 7. NIVEL LGICO TUSB3410 RS-232 68HC11 0 1 0 3,3 +15 -15 0 5

Tabla 7: Niveles de tensin adaptados

En la placa USB-MOTOROLA se adaptan directamente los niveles usados por el Motorola 68HC11, de 0 a 5 voltios, a los del TUSB3410, de 0 a 3,3 voltios, y slo las lneas RS-232 usadas; por lo que se eliminar del diseo de la placa USB-RS232 el adaptador de tensin SN75LV4737 y se modificar la placa de prcticas del Motorola para suprimir el MAX232, con lo condensadores asociados (ver Ilustracin 43). Pgina 63 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Las lneas RS-232 no usadas en este sistema de comunicacin son todas de entrada al TUSB3410 por lo que se unieron a una resistencia de pullup de 5k. Estas lneas son CTS (13), DSR (14), DCD (15 ) y RI (16) (pin del TUSB3410).

Ilustracin 38: Circuito de pull-up de lneas RS-232 no usadas

El sistema de comunicacin entre el 68HC11 y el TUSB3410 tiene tres de entrada al Motorola (RESET, XIRQ Y RX) y una de salida (TX). Sin embargo el MAX232 slo adaptaba dos lneas en un sentido y otras dos en el otro, por lo que una de las seales de entrada se inverta y adaptaba de forma independiente por medio del circuito de la Ilustracin 39 en la placa de prcticas del Motorola. Este al ser la seal de reset tambin incluye un botn para poderse realizar de forma manual. En este caso es una lnea especial y no se ha modificado el circuito de la placa de prcticas por lo que la adaptacin de esta seal ser a este circuito y no al Motorola.

Pgina 64 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 39: Circuito de adaptacin del reset

Como se puede observar existen tres tipos de seales a adaptar, dos tipos de entrada distinta a la placa de prcticas y uno de salida. Esta ltima es una salida de transmisin de datos SCI del Motorola TXD que se conecta con la lnea de entrada compatible con TTL del TUSB3410, SIN, correspondiente con la recepcin serie de datos. Para adaptar esta lnea se ha conectado una resistencia de pull-up de 1k a 3,3 voltios.

Ilustracin 40: Adaptacin de la lnea ascendente de datos

Pgina 65 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

El resto seales a adaptar son salida triestado CMOS del TUSB3410. Dos de estas salidas, /DTR y SOUT, se corresponden con entradas CMOS en el MOTOROLA, /XIRQ y RXD respectivamente. Hay que diferenciar que el TUSB3410 opera con 3,3 voltios y el 68HC11 con 5. Para adaptar estas seales se necesita un desplazamiento de nivel. En la Ilustracin 41, la resistencia y el diodo suben en 0,6V la salida tensin de salida CMOS. Con la resistencia en torno a 10K, la salida CMOS est entre 0.2V a 3,3V. El nodo del diodo ofrecer una tensin entre 0.8V y 3,9V. Las entradas 5V CMOS tiene como umbrales de incertidumbre 1V y 3,5V, por lo que se tienen 0.2V y 0.4V de margen respectivamente.

Ilustracin 41: Adaptacin de las seales RXD y /XIRQ

Los dos tipos anteriores en su diseo primitivo sufran dos inversiones de nivel, una en el SN75LV4737 en la placa USB-RS232 y otra en el MAX232 en la placa de prcticas del Motorola por lo que, al eliminar estas dos inversiones, se queda en el mismo nivel. Este ltimo tipo de seal a adaptar, el Pgina 66 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

RESET, se invierte en el SN75LV4737 y en el circuito de la Ilustracin 39, este se mantiene para este diseo por lo que se necesita volver a invertir para mantener el nivel con dos inversiones. La seal de salida viene de un puerto triestado CMOS del TUSB3410 /RTS que se debe invertir y adaptar al circuito de la placa de prcticas del 68HC11 (ver Ilustracin 39) que es el encargado de generar el RESET del Motorola.

Ilustracin 42: Adaptacin de la seal de /RESET

Para esta adaptacin se hace uso del circuito de la

placa USB-

MOTOROLA (ver Ilustracin 42) que consiste en un transistor en emisor comn con unas resistencias de 4k02 de colector y base. Este al recibir un nivel bajo en la entrada pone en corte el transistor 1 ofreciendo para la adaptacin una resistencia a 5V, es decir, un nivel alto, que por medio del divisor resistivo creado entre esa resistencia y las de la placa de prcticas pondr un nivel alto invierte el nivel y entrar en saturacin el transistor 2 y pondr en la entrada del 68HC11 un nivel bajo. Si el TUSB3410 da un nivel alto a su salida el transistor 1 se pondr en saturacin poniendo a nivel bajo la entrada del transistor 2 por Pgina 67 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

lo que estar en corte dejando a la entrada del Motorola un nivel alto por medio de la resistencia de pull-up. Dado que la placa USB-MOTOROLA es un diseo definitivo orientado a crear un puente entre el bus USB y los puerto del 68HC11 y no a realizar pruebas sobre ella se han eliminado los testpoint y leds debido a la reduccin de tamao que implica

Ilustracin 43: Foto placa de prcticas del Motorola modificada

La placa de prcticas del Motorola 68HC11 ha sufrido algunas modificaciones como es la eliminacin del MAX232 y sus condensadores asociados. Adems se ha cambiado la conexin con la placa USB usado una serie de pines suelto aprovechando los usados por el MAX232, condensadores y el conector DB9, eliminando este ltimo tambin de la placa de prcticas. Para los circuitos de adaptacin hace falta una lnea de 5V y se decidi usar esa tensin los de la placa del 68HC11 para ello es necesaria otra una lnea de conexin entre las placas. En total tiene seis conexiones entre ambas placas: dos para las lneas de datos, el RESET, la XIRQ, la tierra y los 5v de alimentacin.

Pgina 68 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 44: Foto detalle del acoplamiento

Una vez terminado el diseo del esquemtico y visto el reducido espacio disponible se decide usar componente SMD y crear una placa compacta con componente en ambas caras. Para una fijacin mecnica se aprovecharon los agujeros del conector DB9 y se pusieron unos tornillos.

2.2.2 Diseo software


El conjunto de software usado por el sistema de comunicacin entre la placa de prcticas del Motorola 68HC11 y el ordenador personal est compuesto por dos grupos facilitados por: un proyecto fin de carrera anterior realizado por Vctor Tienda Flores (VTF), que consta de un interfaz de usuario para el ordenador personal y un cargador intermedio, un programa monitor y uno de test para el Motorola 68HC11; y por Texas Instruments un driver para el ordenador y un cdigo firmware para el TUSB3410. El driver crea un puerto serie virtual, VCP, a partir de un dispositivo USB, el TUSB3410. Este convierte toda accin sobre el puerto en comandos transmitidos por el bus USB. El firmware se encarga de interpretar dichos comandos moviendo las lneas RS-232 de acuerdo con ellos. De forma inversa al recibir movimiento de dichas lneas los convierte en comandos trasmitidos al Pgina 69 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 ordenador por el USB.

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

El interfaz de usuario del VTF es el encargado de captar las rdenes ms comunes del usuario a la hora de monitorizar un programa ejecutado en el Motorola 68HC11 como pueden ser:

Parar la ejecucin. Reanudar la ejecucin. Leer fragmento de memoria con la posibilidad de realizar

volcados a ficheros binarios.


Leer y escribir en registros del microcontrolador. Visualizar caracteres recibidos desde el microcontrolador por el

puerto serie.

Enviar caracteres al microcontrolador por el puerto serie desde

un terminal habilitado al efecto.


Activar la interrupcin XIRQ. Generar un RESET del microcontrolador

Algunas de estas rdenes se traducen en una comunicacin a travs del puerto serie virtual con el programa monitor por medio de una serie de instrucciones ya concertadas. Este programa monitor se ejecuta en paralelo con el programa de usuario a monitorizar. Otras de estas rdenes se convierten en modificaciones del estado de las lneas de control de flujo RTS y DTR, que son el RESET y la interrupcin XIRQ respectivamente. El programa usuario a monitorizar en el 68HC11, tambin del grupo VTF, es un programa para comprobar el funcionamiento del sistema de comunicacin. Para ello enva cclicamente la cadena HOLA por el puerto SCI Pgina 70 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

del Motorola, la cual es recibida y mostrada por el interfaz de usuario en el ordenador. Para poder comprobar que la comunicacin se realiza en ambos sentidos satisfactoriamente el programa de test realiza un eco de los datos datos recibidos envindolos de vuelta al ordenador. El programa para comprobar que el 68HC11 recibe la interrupcin XIRQ enva la cadena XIRQ al recibir dicha seal. Para transmitir al Motorola 68HC11 el programa monitor junto con el cdigo de usuario a monitorizar el interfaz de usuario sigue la siguiente secuencia: 1. Abre el puerto serie a 1200 baudios, 8 bits de datos, 1 bit de parada y sin control de flujo 2. Enva la seal de reset (pulso en la lnea RTS). El 68HC11 arranca en modo Bootstrap y espera el cdigo a cargar en RAM por el puerto SCI, que esta conectado al puerto serie del ordenador. 3. Enva $FF por el puerto serie para que el Motorola reconozca la velocidad y pueda configurar el puerto. 4. Enva el cdigo del cargador intermedio. El 68HC11 realiza un eco de lo recibido y lo va cargando en RAM. 5. Al terminar de transmitir configura el puerto serie a 9600 baudios, con su consecuente nueva apertura. Al no recibir nada mas el Motorola arranca el cdigo recibido, el cargador intermedio, el cual configura el puerto a 9600 baudios y enva de forma continua $FF. 6. Al recibir $FF contesta con el comando de comienzo de la transmisin, $FF. El cargador intermedio al recibir dicho comando se pone a la espera del cdigo. Pgina 71 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

7. Enva el cdigo monitor seguido del programa del usuario. El 68HC11 enva el checksum de lo recibido. 8. Enva una lnea de tamao vaco. Al recibir dicha cadena el cargador intermedio pasa a ejecutar el programa monitor, este ejecutar de forma controlada el cdigo del usuario. 9. En este punto el interfaz podr mandar rdenes y el programa monitor las ejecutara y contestar, si fuera oportuno.

El sistema de comunicacin entre la placa de prcticas del Motorola 68HC11 y el ordenador personal pasando a travs del TUSB3410 usando el software original no funciona. En el diseo software para la placa USB-RS232 se centr en el conjunto de programas VTF ofreciendo algunas soluciones. Para el diseo hardware de la placa USB-MOTOROLA se han mantenido las mismas interfaces tanto en el lado del ordenador personal como en el del Motorola, por lo que si se aplican las modificaciones al conjunto VTF descritas en el diseo software de la placa USB-RS232 el sistema de comunicacin funcionar tambin con esta nueva placa (USB-MOTOROLA). Esta modificaciones empeoran el sistema, ya sea limitando la velocidad de transmisin o necesitando un acceso manual al reset de la placa de prcticas del Motorola. En este sentido se decide centrar este nuevo diseo software en la modificacin del software ofrecido por Texas Instruments. Por todo ello se decide pedir al proveedor del software usado por el TUSB3410 el cdigo fuente del mismo para intentar buscar una mejor solucin. En la pgina web de Texas Instruments, www.ti.com, tras un registro y una declaracin de intenciones se puede solicitar dicho cdigo fuente, del driver

Pgina 72 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

para windows y el firmware para el TUSB3410. Una vez obtenido el cdigo fuente se dispuso a buscar los programas adecuados para su compilacin. Para poder compilar los driver para windows se necesitan el programa Driver Development Kit y Visual C ++ IDE 6.0 with SP5; y para compilar el firmware se necesita 8051 IAR Embedded Workbench el cual est disponible en su versin de evaluacin a travs de su pgina web www.iar.com. Dada la complejidad dada a la hora de conseguir e instalar el DDK, a la de modificar un driver para el inestable windows y para conseguir un producto final compatible con una posible adaptacin a otros sistemas operativos en auge se opta por dedicar todos los esfuerzos a comprender y modificar el firmware, evitando cualquier modificacin del driver.

2.2.2.1 Modificacin del interfaz VTF

Como se pudo observar en el diseo software de la placa USB-RS232 el movimiento anmalo de las lneas RTS y DTR, RESET y XIRQ en el Motorola, al abrir el puerto serie, era el causante del error en la comunicacin. Esto se debe a que se produce una segunda apertura del puerto para cambiar la velocidad, y el movimiento en la lnea RTS provoca la consecuente reset del 68HC11. En este punto del diseo se prevn una multitud de pruebas abriendo y cerrando el puerto por lo que se decide realizar unas modificaciones en el interfaz de usuario del VTF para poder ejecutar las pruebas con mayor comodidad y exactitud. Pgina 73 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 45: Interfaz VTF modificado

Como se puede observar se aadieron siete botones, cuatro de ellos eran para activar y desactivar de forma independiente los lneas RS-232 RTS y DTR. Los tres restantes se centraron en el problema en si: dos de ellos a la apertura o cierre del puerto serie; el tercer botn para ejecutar un cierre seguido de una apertura del puerto serie, dado que el puerto no se puede abrir dos veces seguidas este proceso era muy habitual. A continuacin se muestra la parte de cdigo aadido al interfaz que se ejecutar al pulsar cada botn.

Private Sub BT_abre_Click() 'Inicializo el puerto con la nueva configuracin com_link_inicio End Sub

Pgina 74 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Private Sub BT_cierra_Click() 'Configuro el puerto COM LINK a la velocidad 'para la precarga del CARGADOR COM_LINK_CFG com_link_bds_boot End Sub

Private Sub BT_cierrabre_Click() 'Configuro el puerto COM LINK a la velocidad 'para la precarga del CARGADOR COM_LINK_CFG com_link_bds_boot 'Inicializo el puerto con la nueva configuracin com_link_inicio End Sub Private Sub BT_rtsE_Click() com_link.RTSEnable = True End Sub Private Sub BT_rtsD_Click() com_link.RTSEnable = False End Sub Private Sub BT_dtrE_Click() com_link.DTREnable = True End Sub Private Sub BT_dtrD_Click() com_link.DTREnable = False End Sub

Pgina 75 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

2.2.2.2 IAR Embedded workbench

Como ya se ha comentado este diseo software se centrar en el firmware ejecutado por el TUSB3410. El cdigo fuente cedido por Texas Instruments contiene tres proyectos para el programa de desarrollo a usar, 8051 IAR Embedded Workbench, uno para el integrado TUSB3410,otro para el TUSB5052 y el ltimo para el TUSB5152. En este caso usaremos el correspondiente a este diseo, el FW_3410.prj. Como ya se comento, el TUSB3410 en la secuencia de arranque primero comprueba si el contenido de la memoria EEPROM conectada al bus I2C contiene las cabeceras correctas, si no es as realizar la carga del software a travs del bus USB. Esta ltima carga no la recomienda el fabricante debido a que podran existir conflictos, en su defecto se prefiere programar la memoria con las cabeceras correctas para que realice la carga del software desde el bus USB. Para realizar las pruebas de firmware se decide realizar la carga desde el ordenador personal y se programa la memoria EEPROM con las cabeceras adecuadas. El proyecto para el integrado TUSB3410 est diseado para varios usos. En el navegador del programa usado para compilar, en la pestaa de targets, se pueden elegir los diferentes usos y el propio programa se encarga de configurar ciertas variables globales para realizar la compilacin para cada uso. Dentro de los diferentes usos estn: 1. Pcsim: Como se puede suponer es para obtener un firmware para su simulacin en el ordenador personal. 2. Debbug: Este ser para la depuracin del firmware. 3. RS485: En este caso el TUSB3410 realizar las transmisiones por el puerto serie segn el estndar RS485. Este es muy similar pero la Pgina 76 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

transmisin ser a modo diferencial usando las lneas SOUT y SIN, obteniendo un sistema de comunicacin halfduplex. 4. RS485-EEPROM: Esta ser la versin para programar en la memoria EEPROM de la opcin RS485. 5. IRDA: Para esta compilacin se activar la opcin de transmisin por el puerto serie compatible con los niveles usados para transmitir por infrarrojo. Simplemente se realiza un and lgico con el reloj. 6. IRDA-EEPROM: Esta ser la versin para programar en la memoria EEPROM de la opcin IRDA. 7. General: Esta es la opcin elegida en la compilacin para las pruebas que crea el firmware a transmitir por el USB. 8. EEPROM: Esta ser la versin para programar en la memoria EEPROM de la opcin General. Por lo que esta opcin ser la elegida para la versin final.

Al compilar con las distintas opciones se crear un archivo en \firmwareall\Bin\ o en alguna subcarpeta segn la versin, en las opciones usadas no crea ninguna carpeta. Para la opcin General se crear el archivo umpf3410.i51, que es el usado en la transmisin desde el ordenador personal, y para la versin EEPROM crear el archivo umpe3410.i51, que es el programado en la memoria junto con las correspondientes cabeceras. Para realizar las pruebas se ha elegido la opcin General, el firmware se cargar a travs del bus USB y en la memoria se programar con la cabecera correspondiente. Para crear el binario a grabar en la EEPROM se usa la utilidad ofrecida por Texas Instruments desde su pgina web. Debido a que Pgina 77 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

slo se conectar una sola placa se va a usar el mismo identificador de dispositivo USB, VCI/VPI, que el TUSB3410 sin necesidad de serializacin, por lo que slo se tendr que ejecutar desde una consola MS-DOS gobin VCP3410-FW_Download-EEPROM_not_serialized; el cual tomar el archivo de configuracin VCP-3410-FW_Download-EEPROM_not_serialized.cfg y crear el archivo binario, con igual nombre pero con extensin .bin, a programar en la memoria. Tras haber programado la memoria, slo una vez, habra que crear el firmware, con cada prueba. Para ello, desde el programa IAR, se debe elegir la opcin General del men target y compilar el cdigo ejecutando un make , del men Proyects->Make, de la barra de herramientas o pulsando F9. Seguidamente habra que copiar el firmware creado en el lugar donde el sistema lo coge para realizar su transmisin por el USB, es decir, copiar el archivo umpf3410.i51 de \firmwareall\Bin\ a \WINDOWS\system32\drivers. A continuacin habra que desconectar, si lo estuviera, el TUSB3410 del bus USB y volver a conectarlo. Pasados unos segundos la carga del firmware tendr efecto y volver a aparecer de nuevo el driver VCP, pero ahora se estar ejecutando el nuevo cdigo en el TUSB3410.

2.2.2.3 Cdigo fuente del firmware

El cdigo fuente ofrecido por el fabricante, Texas Instruments, forma de archivo ejecutable. Al ejecutarlo se instalar en el sistema el conjunto de archivos pertenecientes al cdigo fuente del firmware y el driver, as como los de el proyecto para los programas de compilacin y un documento con los pasos a seguir. La instalacin tiene lugar, por defecto, en C:\Archivos de programa\Texas Instruments\VCP Driver-Firmware v103. Dentro de este se Pgina 78 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

encuentra el cdigo fuente del driver en la carpeta umpti_target y del firmware en firmwareall. Como el cdigo fuente pertenece a dos dispositivos TUSB3410 y TUSB5052, dentro de la carpeta firmwareall se encuentran los archivos generales de dos proyectos para el programa 8051 IAR Embedded Workbench. En este caso el programa usar los del TUSB3410, fw_3410.*, y para abrir el proyecto se usar el fw_3410.prj. El cdigo fuente del firmware est clasificado en carpetas, el programa IAR nos muestra un rbol de directorios con cuatro carpetas las cuales contienen los archivos *.c o *.asm. Este rbol no es exactamente el mismo que parte del directorio firmwareall, las carpetas mostradas por el programa son app (/app), dtk (/Dfw/dtk), Ios (/Dfw/Ios) y Real Time Kernal (/Dfw/Rtk). Los archivos *.h cuelgan de los archivos .c/.asm en los que son usados independientemente de su situacin en los directorios. A continuacin se describen las principales caractersticas de los archivos y carpetas usados para contener el cdigo fuente del firmware siguiendo el rbol de directorio que parte de la carpeta /firmwareall/: /App/: Contiene los archivos con las aplicaciones especficas del firmware

DevFwCmn.c: En l se describen las rutinas comunes del

firmware. Se destaca la definicin de una tabla que contiene las direcciones de algunas funciones (gaps) descritas en los archivos de esta misma carpeta.

DevFwGlobal.c: Aqu se definen las caractersticas globales

referentes a las aplicaciones.

Pgina 79 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

DevFwI2c.c: Como su nombre hace intuir en l se desarrollan las

funciones relacionadas con la comunicacin con el bus I2c, como son: I2cGetConfig, I2cRead, I2cinit, I2cSetConfig, I2cWrite.

DevFwSerial.c: En este caso se desarrollan las funciones

relacionadas con las lneas RS-232. Este archivo se estudiar detenidamente con posterioridad.

DevFwTusb.c: Aqu se definen las funciones relacionadas con el USB como pueden ser UmpFwTusbGetConfig y

bus

UmpFwTusbSetConfig, slo para integrados de la serie TUSB5x52.

DevFwI2c.h y DevFwSerial.h: En este caso contienen los

prototipos de algunas funciones y definiciones para su correspondiente *.c .

/Inc/: En este directorio estn las cabeceras generales del firmware.

CompilerSpecific.h: Se especifica el uso del programa IAR y se

incluye para su uso las cabeceras del microprocesador usado, <io51.h>, que est en los directorios del propio programa.

DataTypes.h: Se definen los tipos de datos usados como son

byte, como un word, y tristate como un tipo booleano.

DevFwCmn.h: Aqu estn los prototipos de las funciones

descritas en los archivos de la carpeta app.

DevFwGlobal.h: En este archivo se hace referencia a constantes

de preprocesado, variables de referencia externas y se incluyen otros archivos de cabecera como son DataTypes.h, DevFwUsb.h, RtkApi.h,

Pgina 80 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

DevFwApi.h, DevFwCmn.h, DevHw.h, DevIoUsbCore.h, DevFwSerial.h.

DevFwPrjCfg.h:

Aqu

se

definen

algunas

constantes

de

configuracin generales del proyecto.

DevFwUsb.h: Se describen las constantes y estructuras usadas

por las funciones relacionadas con el bus USB.

DevHw.h: Este archivo contiene las constantes y estructuras

relacionadas con el nivel hardware como las mscaras para manejar los bit de los registros usados y sus direcciones.

DtkApi.h: Dtk proviene de Device ToolKit Application Interface,

que significa interfaz de aplicacin del conjunto de utilidades del dispositivo. En este archivo se definen las estructuras soportadas por el DTK as como los prototipos de las funciones usadas, las correspondientes a errores en tiempo de ejecucin.

/Dfw/Dtk/: En este directorio se encuentran los archivos DtkCmn.h, DtkCmnA.h y DtkCmn.c referentes al Device ToolKit. En ellos se describen las funciones y constantes usadas para la depuracin que principalmente son funciones para transmitir mensajes de error. Como principales funciones tenemos Dtkinit y DtkMain. En el desarrollo de la ejecucin del firmware este conjunto de funciones no son usadas.

/Dfw/Inc/: Aqu slo se encuentra el fichero RtkApi.h, su nombre viene de Real time kernal Application Interface, por lo que en l se definen los prototipos de las funciones pblicas relacionadas que hacen de interfaz con las funciones de tiempo real. Entre ellas estn: AppInit, AutoStart,

Pgina 81 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

EnterCriticalSection, LeaveCriticalSection, GetMessage y PostMessage. Todas ellas descritas en los archivos del directorio /Dfw/Rtk.

/Dfw/Ios/: A lo largo de los archivos de este directorio se desarrollan las funciones,constantes y estructuras asociadas a las interrupciones.

DevIoIsr.c: Bsicamente hay una funcin, DevFwIsr0, en la que

segn la interrupcin recibida manda rdenes al kernal a travs de la funcin PostMessage. Entre los tipos de interrupcin estn la de USB y WakeUP.

DevIoUSBCore.h: En este archivo

estn algunas de las

definiciones asociadas al bus USB as como los prototipos de funciones relacionadas a su funcionamiento.

DevIoUSBCore.c: En este caso se definen las constantes y el USB. Entre otras estn UsbReceiveCmdData,

estructuras, as como se implementan las funciones que interaccionan con UsbSendCmdResponse y UsbInit. Tambin, como ejemplo, definidas como private estn UsbRxNextPacket y UsbTxNextPacket.

/Dfw/Rtk: De las siglas de Real Time Kernal, que viene a contener los archivos donde se contemplan las funciones principales de tiempo real. En este directorio existen tanto archivos en C (*.c), como sus cabeceras (*.h) as como archivos en ensamblador (*.asm).

RtkGlobal.c: En el se definen algo ms de diez variables pblicas

como pueden ser la cola de mensajes de comunicacin interna entre funciones y su ndice. Pgina 82 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

RtkGlobal.h: Aqu estn los prototipos de algunas funciones,

como son RtkInit y Scheduler, las cuales se desarrollan en el fichero RtkMainA.asm. Adems se definen algunas variables y estructuras como la de los mensajes ya comentados usados para la comunicacin interna.

RtkCmnA.h: En esta ocasin se definen algunas constantes

generales para las funciones de tiempo real como es el tamao de la cola y de los mensajes.

RtkIsr.asm: Este archivo contiene dos funciones escritas

directamente en ensamblador. stas rutinas corresponden al servicio de las interrupciones de dos temporizadores que contiene el integrado. Una de ellas realiza el cambio de una tarea a otra cuando se estn ejecutando varias a la vez y, la otra funcin, se encarga de actualizar los contadores de tiempo de las distintas tareas y fijar algn bit si fuera necesario.

Pgina 83 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

RtkApiA.asm: Al igual que el archivo anterior, su contenido est

escrito en lenguaje ensamblador pero en este caso existe como comentario su equivalente en C. El nombre del archivo viene de las siglas en ingls Real Time Kernal Application Interface, por lo que contiene funciones que hacen de interfaz con el kernal de tiempo real. Entre esas funciones estn EnterCriticalSection y LeaveCriticalSection usadas para entrar y salir de secciones delicadas en las que se anula el cambio de tarea, timers0 visto anteriormente. Adems encontramos con el desarrollo de la funcin PostMessage encargada de recoger los mensajes del bus del sistema.

RtkMainA.asm: Este archivo tiene una estructura equivalente al

anterior en la que se encuentra como comentario el equivalente en C de la funcin escrita en ensamblador desarrollada. Aqu se encuentran definidas las funciones Rtkinit (inicialiciacin del kernal de tiempo real), LoadTaskToContext (carga el contexto de una tarea) y Scheduler que es el planificador de tareas que consta de un bucle infinito que se encuentra a la espera de mensajes del bus del sistema y que carga la tarea correspondiente segn el mensaje.

RtkMain.c: En este caso slo contiene la funcin principal del

firmware, el main. Esta funcin es un bucle infinito se asigna el valor por defecto de los Timers y se llama a las funciones: Appinit, RtkInit, DtkInit (Si habilita el soporte a Device Toolkit), Scheduler y Restart. Este ltimo slo se ejecutara si la funcin Scheduler tuviera fin inesperado, contiene un bucle infinito.

Haciendo un resumen de las funciones y archivos que contiene el Pgina 84 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

firmware se podra decir que ste comienza ejecutando la funcin Main en la que se activan los dispositivos y se pasa un estado de espera de mensajes por el bus del sistema en la funcin Scheduler. Al recibir una interrupcin la funcin DevFwIsr0 mandar el mensaje al sistema, segn el tipo de interrupcin, y en Scheduler al recibirlo se crear un contexto y se lanzar la tarea. Puede haber varias tareas ejecutndose a la vez y mediante los Timers se pasar de una a otras. Tambin, dentro de las distintas funciones se puede mandar un mensaje al sistema para realizar otra tarea, como puede ser que en la funcin UsbRequestHandler, que maneja los comandos recibidos por el USB, mande un mensaje al sistema para que ejecute la tarea de parar la UART.

2.2.2.4 Registros de la UART

Si se recuerda, el problema que ha conllevado a un estudio del cdigo fuente del firmware consista en un movimiento de las lneas de control de flujo al abrir el puerto. Relacionado con la UART el integrado TUSB3410 contiene los siguientes registros:

RDR: Es el registro de recepcin de datos. Los datos recibidos

por el pin SIN son convertidos de formato serie a paralelo y almacenados en una FIFO de 32 bytes, la salida de la cual es este registro. Es responsabilidad de la controladora DMA de transferirlos al buffer en RAM para su posterior adquisicin por la parte de transmisin por el USB.

TDR: Este es el registro contrario al anterior. Es un doble buffer

que convierte del paralelo al serie transmitindolo por el pin SOUT. Es tambin responsabilidad del DMA poner aqu los datos procedentes del

Pgina 85 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 buffer RAM.

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

LCR: Se encarga de definir el formato de la comunicacin serie,

es decir, nmero de bits de datos y stop, paridad, break y activacin de la FIFO.

DLL/DLH: Forman el divisor para obtener la velocidad del puerto

teniendo como base 14.76923 Mhz y como factor 16. Para facilitar la programacin y evitar errores en el archivo DevFwApi.h estn definidas como constantes los valores para las velocidades ms comunes, como pueden ser 0x0301 para 1200 Baud y 0x0060 para 9600 Baud. Para calcular el factor se debe atender a la siguiente ecuacin.

DLH : DLL =

14.76923077 106 BAUD 16

XON/XOFF: Estos dos registros contienen los valores que se han

de recibir o enviar para el control de flujo correspondiente. Como se ha comentado no se usan ningn tipo de control de flujo por lo que no se tendrn en cuenta.

MASK: Aqu se controla la activacin de las interrupciones

referentes a la UART. Para el caso actual no interfieren en la solucin del error y se deja al firmware que controle su funcionamiento.

LSR: Este es uno de uno de los registros ms importantes

durante el desarrollo de la comunicacin. Su nombre viene de Line Status Register y se encarga de contener el estado de la transferencia de datos. Dependiendo de este la DMA se parar como por ejemplo ante Pgina 86 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 un error de paridad.

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

A continuacin se vern los tres registros referentes al estado de las lneas de control de flujo de la UART.

7 485E

6 DTR

RTS RXOF DSR

CTS TXOA TXOF

Tabla 8: Registro FCRL

FCRL: En este caso el registro sirve para definir el modo de

control de flujo a usar; ya sea XON/XOFF, DSR, CTS, RTS, DTR o funcionamiento en modo 485. Su activacin corresponde a poner un 1 en bit correspondiente. Hay que sealar que no todas las combinaciones estn permitidas. Para este caso todos los bits deben estar a 0 porque no se desea ningn tipo de control de flujo, se realiza un control directo sobre dichas lneas para funciones distintas a la de control de flujo.

7 LCD

6 LRI

5 RTS

4 DTR

RSV LOOP RCVE URST

Tabla 9: Registro MCR

MCR: Este es el registro de control del interfaz modem, las lneas

de control de flujo entre otras. Es el encargado de las lneas, no de datos, salientes de una UART y algunos modos especiales. Entre esos

Pgina 87 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

modos est el reset de la UART y el modo LOOP. En este modo loopback la lnea SOUT se pone a nivel alto, todas las lneas de entrada se desconectan del exterior y se conectan internamente a su homnima, es decir, la transmisin con la recepcin de datos, CTS a RTS, DSR a DTR. En este sentido se encuentran los dos ltimos bits que se encargan del control de las lneas RI y CD en este, al no tener seal equivalente saliente. En la Ilustracin 46, sacada de la hoja de especificaciones del TUSB3410 pgina 7-7, se encuentra reflejado de forma grfica el modo loop-back.

LCD LRI LDSR LCTS CD TRI DSR CTS Tabla 10: Registro MSR

MSR: Aqu se refleja la informacin acerca del estado actual de

las lineas de control de Mdem entrantes, CTS, DSR, IR y CD. Para cada una de estas cuatro seales le corresponden dos bits, uno para el estado actual y otro que se activa para indicar que la lnea modific su estado. Se desactiva al escribir la MCU un 1 en l.

Pgina 88 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 46: Registros MSR y MCR en modo LOOP-BACK

Dado que el problema reside en un movimiento de las lneas RTS y DTR se analizar su posible movimiento. Estas lneas podran modificar su estado si se activa algn tipo de control de flujo usando dichas lneas, bits 5 y 6 del registro FCRL, o modificando su estado directamente en los bits 4 y 5 del registro MCR.

2.2.2.5 GPIO

Para mayor facilidad a la hora de depurar el cdigo se volvi a usar la placa USB-RS232. En ella se tienen leds para las lneas en cuestin, RTS y DTR, se puede usar el osciloscopio con mayor comodidad y para tener ms seales se habilit el uso del puerto de propsito general del TUSB3410, el GPIO. Para esto ltimo se us una placa ariston con leds y resistencia de pullup de 1K en cada uno de los cuatro pines del puerto, patas 29 a la 32 del integrado. Pgina 89 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Para controlar el estado de las lneas de propsito general habra que escribir el valor deseado en el bit correspondiente en el registro PUR_3. Como ya se coment slo estn disponibles las lneas 0, 1, 3 y 4 del puerto tres, correspondientes a los bits con igual posicin del registro de la direccin FF9E. En el archivo de cabecera del 8052 tiene definidas las constantes adecuadas para representar cada lnea. Por ejemplo para poner la lnea 4 a nivel alto simplemente haya que ejecutar P3.4=1. Al haber puesto los leds en pull-up se encendern al poner los pines del puerto a nivel bajo. En el cdigo fuente facilitado por Texas Instruments ya haca uso de las lneas de propsito general para observar los estados del microcontrolador. Para poder personalizar el uso de stas se comentaron todas las instrucciones que modificaban el puerto. Estas se encuentran:

En el archivo DevIoIsr.c en la funcin DebugOutput.

P3.0=~P3.0;

En el archivo DevHw.h. do{rWtchDgTmr |= 1; P3.3 = ~P3.3;}

#define RESET_WATCHDOG() while(0)

En el archivo DevIoUSBCore.c, los tres primeros en la funcin y los cuatro ltimos en la funcin

UmpPollInterruptEndPoint USBRequestHandler.

P3.4 = 1; //Set GPIO pin to tell if started P3.3 = ~P3.3; //GPIO #3 to indicate a rupt occurred P3.4 = bLightSta; //GPIO #4 to tell if code is running P3.1 = 1 ; //GPIO #1 to SPECIAL__500mA_WITH_GPIO_SIGNAL status Pgina 90 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 P3.1 = 0 ; P3.1 = 0 ; P3.1 = 0 ;

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

2.2.2.6 Pruebas y modificaciones

El problema consiste en un movimiento de las lneas de control de flujo DTR y RTS por parte del TUSB3410 al abrir el puerto desde el interfaz VTF. Este problema existe porque durante el proceso de carga se necesita realizar un cambio de velocidad en el puerto que supone un cierre y apertura del puerto para que cargue la nueva configuracin. En un principio se analiz la secuencia de inicio de la UART. En la secuencia de arranque se manda un mensaje con la tarea de iniciar la UART, esta tarea se realiza ejecutando la funcin UmpFwUartStartPort, esta tras comprobar que no exista ningn error llama a la funcin UmpUartStart la cual inicia la DMA y los buffers RAM. En ningn punto de esta secuencia se cambia el estado de las lneas de control de flujo. Del mismo modo existe una tarea para abrir el puerto que realiza la funcin UmpFwUartOpenPort que, al igual que la anterior, comprueba que los argumentos no contienen error y llama a la funcin UmpUartOpen. Esta a su vez verifica el estado de la DMA y si todo esta correcto marca en una variable que el puerto est abierto. Al igual que al iniciar la UART en esta secuencia tampoco se modifica el estado de las lneas RTS y DTR. Las lneas de control de flujo de la UART se pueden cambiar su estado directamente o de forma automtica si se activa algn tipo de control de flujo que haga uso de esas lneas. Por lo que, una vez comprobado que en ambas Pgina 91 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

funciones de inicio de la UART no se realizaban nada anormal, se analizaron otras funciones sospechosas en las que se realizaban cambios de los registros encargados del control de esas lneas. Esas funciones son UmpFwUartTestPort, que responde a la tarea correspondiente y llama a la funcin UmpUartTest, UmpFwUartGetDevInfoy UmpFwUartGetDevInfoEpi. La rutina UmpUartTest realiza una secuencia de instrucciones para verificar el correcto funcionamiento de la UART. Para ello hace uso del modo loop-back comentado cuando se describe el registro MCR. En esta funcin carga la configuracin de la constante tUartEnumCfg2 (1200 baud, sin paridad ni control de flujo, 7 bits de datos y uno de parada) asignndola a una variable global, *patConfigUart, que ser volcada a los registros por medio de la funcin UmpUartConfig. Despus de activar el modo loop-back se llama a la funcin UmpUartChkTxRx que realiza el envo de una cadena de caracteres y verifica que se recibe la misma. Tras las pruebas devuelve el valor a la configuracin y devuelve el resultado del test. En la funcin UmpFwUartGetDevInfo se observ un acceso directo a los registros encargados del control de las lneas de control de flujo, adems, en ms de una ocasin. En esta rutina se almacena el estado de la configuracin en tCurrentUartCfg y se carga la misma que la usada en la funcin de test. Para restaurar la configuracin se llama a la funcin UmpFwUartGetDevInfoEpi. En las funciones UmpUartTest y UmpFwUartGetDevInfo existan

diferentes ejecuciones sospechosas por lo que para despejar duda se anula su contenido poniendo como comentario todo su contenido a excepcin de la instruccin que devuelve un cdigo de error negativo. Tras esta prueba se verifica que no eran las causantes del movimiento anmalo de las lneas de Pgina 92 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006 control de flujo.

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Existe una tarea que consiste en configurar la UART, esta es atendida por UmpFwUartSetConfig que comprueba que los valores de configuracin son vlidos y los asigna a la variable global *patConfigUart y llama a UmpUartConfig. Esta ltima convierte el formato de la configuracin contenido de dicha variable al formato de los registros del TUSB3410 y los asigna. De forma inversa para leer la configuracin de los registros se llama a la funcin UmpFwUartGetConfig. En la funcin UmpUartConfig se modifica, segn la configuracin indicada en la llamada de la funcin, tanto el estado de las lneas como la configuracin de los modos de control de flujo. Como el problema consista en un movimiento se decide no anular la configuracin sino forzar una sin control de flujo y mantener el estado de dichas lneas independientemente de la configuracin dispuesta. El resultado de dicha prueba fue, en cierto modo positivo, las lneas se mantuvieron estables al abrir el puerto por lo que son las causantes del problema. Exactamente no era un control de flujo automtico, (*patUartRegs).bFcr, sino una modificacin de su estado directamente, (*patUartRegs).bMcr. Una vez localizada la funcin que modificaba el estado de dichas lneas hay que encontrar parte de cdigo que llama a esta funcin para que modifique la configuracin.
i XOR Software

La bsqueda no obtuvo ninguna rutina distinta de las ya analizadas por lo que se supone que este localizada en el driver. Sabiendo que esta funcin de configuracin de la UART es usada en cualquier momento no se puede

Pgina 93 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

anular forzar ningn estado. No existe ninguna seal ms que podamos activar desde el ordenador para diferenciar cuando se encuentra en un funcionamiento normal y cuando se est abriendo el puerto. Sin embargo el movimiento causante del error, aunque anmalo, se produce a la vez en ambas lneas y durante toda la comunicacin no se produce esa situacin; el reset, lnea RTS, no se activar en ningn caso a la vez que una seal XIRQ, lnea DTR. Por lo que al realizar una XOR software del estado de las lneas DTR y RTS se consigue una seal que diferencia una configuracin normal de la que se produce al abrir el puerto. Para realizar esta XOR software se modifica la parte de cdigo correspondiente al registro MCR encargado de controlar el estado de las lneas RTS y DTR, de la funcin UmpUartConfig que se encuentra en el archivo DevFwSerial.c. Las instrucciones originales seran:

bTmp = ( * patUartRegs ).bMcr; // Linea RTS if ( ( * patConfigUart ).wFlags & UMP_MASK_UART_FLAGS_RTS_DISABLE ) bTmp &= ( ~ UMP_UART_MCR_RTS_ENABLE ); else bTmp |= UMP_UART_MCR_RTS_ENABLE; // Linea DTR if ( ( * patConfigUart ).wFlags & UMP_MASK_UART_FLAGS_DTR_DISABLE ) bTmp &= ( ~ UMP_UART_MCR_DTR_ENABLE ); else bTmp |= UMP_UART_MCR_DTR_ENABLE; // Bit RCVE solo valido en Modo 485 if ( ( * patConfigUart ).bUartMode == UMP_UART_485MODE_RE ) bTmp |= UMP_UART_MCR_RE_MASK;

Pgina 94 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

( * patUartRegs ).bMcr = bTmp;

sta parte de cdigo ya modificada sera:

bTmp = ( * patUartRegs ).bMcr; if ( ( ( * patConfigUart ).wFlags & UMP_MASK_UART_FLAGS_DTR_DISABLE) && (!( ( * patConfigUart ).wFlags & UMP_MASK_UART_FLAGS_RTS_DISABLE)) ) { // Si esta activado RTS pero no DTR bTmp |= UMP_UART_MCR_RTS_ENABLE; bTmp &= ( ~ UMP_UART_MCR_DTR_ENABLE ); } else { if ((!( ( * patConfigUart ).wFlags & UMP_MASK_UART_FLAGS_DTR_DISABLE)) && ( ( * patConfigUart ).wFlags & UMP_MASK_UART_FLAGS_RTS_DISABLE) ) { // Si esta activado DTR pero no RTS bTmp |= UMP_UART_MCR_DTR_ENABLE; bTmp &= ( ~ UMP_UART_MCR_RTS_ENABLE ); } else { // Si RTS y DTR tiene el mismo estado bTmp &= ( ~ (UMP_UART_MCR_RTS_ENABLE | UMP_UART_MCR_DTR_ENABLE )); } }

Pgina 95 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

// Bit RCVE solo valido en Modo 485 if ( ( * patConfigUart ).bUartMode == UMP_UART_485MODE_RE ) bTmp |= UMP_UART_MCR_RE_MASK; ( * patUartRegs ).bMcr = bTmp;

Una vez se ha obtenido una solucin definitiva del problema habr que programar la memoria EEPROM con el resultado. Para ello se elige la opcin EEPROM del men targets del programa IAR Embedded Workbench y se pulsa el botn make para generar en la carpeta /bin el archivo umpE3410.i51 que contiene el firmware. Ahora se crear el binario a programar en la memoria a travs de un programa MS-DOS descargado de la pgina de Texas Instruments, del archivo sllc251.zip. Este archivo contiene tanto el programa como el firmware original y los archivos de configuracin usados por el programa para crear el binario a programar. Para crear dicho binario se copia en la misma carpeta el programa, el archivo de configuracin (VCP-3410-FW_in_EEPROM.cfg) y el firmware modificado creado. El archivo de configuracin contiene los valores por defecto de identificacin de dispositivo USB usado por el driver. Esos valores de identificacin en el driver los contienen los archivos umpusbxp.inf y umpcomxp.inf, usados en su instalacin. Una vez modificados se crea el binario a programar en la memoria EEPROM ejecutando en una consola MSDOS gobin VCP-3410-FW_in_EEPROM, obteniendo el archivo VCP-3410FW_in_EEPROM.bin en el mismo directorio. As mismo al instalar el driver se usarn esos archivos modificados, los solicitar al conectar el dispositivo.

Pgina 96 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Ilustracin 47: Captura de osciloscopio de la programacin del Motorola

En la captura de osciloscopio anterior se puede observar el correcto funcionamiento de las lneas durante la carga de los programas. En la carga la lnea /XIRQ (naranja, /DTR) debe mantenerse a nivel bajo, no se produce ninguna interrupcin no enmascarable. En el comienzo de la carga se debe producir un reset, un nivel bajo en la lnea /RESET (azul, /RTS) y mantenerse a nivel alto durante el resto de la comunicacin. La lnea de recepcin de datos en el Motorola RXD (violeta, SOUT) tiene dos grupos de datos: el primero pertenece a la transmisin del cargador intermendio a 1200 Baud y el segundo al del programa monitor junto al programa usuarioa 9600 Baud. La lnea de transmisin de datos en el Motorola TXD (verde, SIN) realiza un eco en la programacin del cargador intermedio y el envo del checksum en el otro grupo de datos.
ii Mejorar velocidad

Una vez obtenida una versin funcional tanto software como hardware

Pgina 97 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

se decide optimizar la velocidad de funcionamiento. En el sistema de comunicacin intervienen dos velocidades, una usada en la transmisin del cargador intermedio y otra para la carga del cdigo monitor junto con el de usuario, que tambin ser usada por el programa monitor para su comunicacin con el interfaz VTF. La velocidad de transferencia del cargador intermedio viene dada por el bootloader del Motorola 68HC11. Este programa slo permite 1200 baudios o 7812 baudios, pero esta ltima no es una velocidad estndar soportada por la UART por lo que se mantiene a 1200 baudios. El cargador intermedio es un programa del conjunto VTF y del cual se tiene su cdigo fuente. En la solucin Manteniendo la velocidad se analiz el registro BAUD ($102B), Tabla 4, encargado de controlar la velocidad del puerto. De ese anlisis se obtuvieron las tablas 5 y 6 en las que se pueden observar las distintas velocidades soportadas por la UART del Motorola 68HC11. Para modificar la velocidad usada por el cargador intermedio y el monitor hay que cambiar la configuracin de la UART en ambos lados de la comunicacin. Por un lado se encuentra el TUSB3410 y por el otro el Motorola 68HC11. La UART de este ltimo se configura desde el cargador intermedio y para ello hay que cambiar el valor a cargar en el registro BAUD, como se ve en la solucin Manteniendo la velocidad, con el valor adecuado. La UART del TUSB3410 la controla el driver del ordenador VCP, este a su vez lo controla el objeto com_link de la clase MSComm de Vbasic del interfaz VTF. Este programa toma los datos de configuracin de velocidad del archivo config.cfg, por lo que para cambiar la velocidad slo habr que modificar dicho archivo. Pgina 98 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

Dado que en el 68HC11 se usan divisores para obtener la velocidad del puerto todas no son velocidades estndar de comunicacin. El objeto Vbasic encargado de la UART slo permite un nmero discreto de velocidades. En la siguiente tabla se muestran los valores soportados por el Vbasic y las velocidades ms aproximadas soportadas por la UART del Motorola, as como los valores del registro BAUD a usar. BITs Velocidad Velocidad Error Registro estndar Motorola (%) SCP1 SCP0 SCR2 SCR1 SCR0 BAUD 9600 14400 19200 28800 38400 57600 9600 15625 20833 31250 41667 62500 0 8,16 8,16 8,16 8,16 8,16 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 $30 $21 $11 $20 $10 $01

Tabla 11: Velocidades UART

Los valores a configurar para las pruebas son: la columna Velocidad estndar para el archivo config.cfg, de configuracin del interfaz VTF, y la columna Registro BAUD para el programa cargador intermedio. El funcionamiento normal corresponde a la primera fila, 9600 baudios, progresivamente se irn aumentando la velocidad y comprobando si el sistema funciona. Al probar con 14400 baudios el programa muestra un error al iniciar el puerto a esa velocidad, ver Ilustracin 48, indicando que se revise la configuracin. Ese es un valor estndar soportado por el objeto Vbasic, as que al revisar las constantes correspondientes a velocidades de la UART en el Pgina 99 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

cdigo fuente del firmware del TUSB3410, archivo DevFwApi.h, ese valor est inhabilitado por lo que no se puede usar de forma normal. De igual forma para 28800 baudios tampoco est contemplado su uso por parte del firmware y de hecho ofrece la misma ventana de error.

Ilustracin 48: Ventana de error en la configuracin del puerto

La siguiente velocidad a probar es 19200 baudios. Tras modificar el archivo de configuracin y el cargador se lanza una carga de programas y devuelve una ventana de error de checksum. Esto significa que el Motorola contesta pero no estn recibiendo bien los datos debido a la diferencia de velocidad de transmisin.

Ilustracin 49: Ventana de error de Checksum

Al iniciar el interfaz VTF a velocidades mayores, 38400 y 57600 baudios, el programa muestra una ventana de error en tiempo de ejecucin por desbordamiento. Este error se produce por que esos valores se salen del rango de una variable integer, com_link_bds, que es el tipo que contiene la

Pgina 100 de 112

PROYECTO:

ACTUALIZACIN DEL SISTEMA DE COMUNICACIN DE LA PLACA BASADA EN EL MOTOROLA 68HC11


AUTOR: JUAN TUTOR: MANUEL

FECHA:

25/10/2006

ANTONIO MEDINA GUERRERO NGEL PERALES ESTEVE

velocidad. Se soluciona definiendo dicha variable como long en vez de integer: Public Com_link_bds As Long(situado en la parte general del frame principal.

Ilustracin 50: Ventana de error por desbordamiento

Una vez solucionado el problema de desbordamiento el programa sigue lanzando la misma ventana de error de Checksum por lo que tampoco son velocidades vlidas. Por lo que el 8% de diferencia de velocidad es suficiente para que el sistema no funcione a ninguna velocidad mayor a 9600 baudios.

Pgina 101 de 112

Das könnte Ihnen auch gefallen