Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final UNIVERSIDAD NACIONAL DE QUILMES Diseño de Microcontroladores Digitales Informe Final “Control de velocidad” Profesor: Ing. Juárez, José. Auxiliar: García Franchi, Gastón. Alumnos: Dagand, Javier Pepa, Hernán C. Triccó, Alexis Control de Velocidad Leg. 5111 Leg. 9098 Leg. 9097 Página No.1 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final ÍNDICE GENERAL Capitulo 1: 1. 2. Conceptos Básicos ¿Que es un Microcontrolador? pagina 03 b. Características generales del MC68HC11F1 pagina 03 Estructura del MC68HC11F1 Descripción de los pines La CPU pagina 06 pagina 06 pagina 11 a. Modos de funcionamiento pagina 12 b. Registros de la CPU pagina 12 i. Registros de Acumuladores pagina 13 ii. Puntero de Pila (SP) pagina 14 iii. Contador de Programa(P C) pagina 14 iv. pagina 14 Registro de Código de Condición (CCR) c. Modos de Direccionamiento pagina 14 d. Set de Instrucciones pagina 15 e. Interrupciones pagina 15 i. Clasificación de la Interrupciones f. Interrupción de Reset Capitulo 2: 1. pagina 03 a. a. 3. Introducción al MC68HC11F1 pagina 16 pagina 16 Desarrollo del proyecto El proyecto pagina 17 a. Elección del proyecto pagina 17 b. Objetivos pagina 17 c. Breve descripción de la idea a implementada pagina 17 d. Desarrollo del programa pagina 18 2. La planta pagina 18 3. Recursos del MC68HC11 pagina 19 4. Objetivos Alcanzados pagina 19 5. Limitaciones pagina 20 Conclusiones Control de Velocidad pagina 19 Página No.2 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Anexo 1 pagina 21 Anexo 2 pagina 22 Anexo 3 CODIGO pagina 23 Anexo 4 DISPLAY pagina 38 Bibliografía Consultada pagina 51 Control de Velocidad Página No.3 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final CAPITULO 1: Introducción al MC68HC11F1 1- Conceptos Básicos a- ¿Que es un Microcontrolador? Un microcontrolador (MCU) es un circuito integrado que incorpora una unidad central de proceso (CPU) y una serie de recursos internos. La CPU permite que el microcontrolador pueda ejecutar instrucciones almacenadas en una memoria. Los recursos internos son memoria RAM, memoria ROM, memoria EEPROM, puerto serie, puertos de entrada / salida, temporizadores, comparadores, capturadores etc. Se puede decir que un microcontrolador es una evolución del microprocesador, al añadirle a este último las funciones que antes era necesario situar externamente con otros circuitos. En resumen, un microcontrolador es un circuito integrado independiente, no necesita memoria ni puertos externos pues ya los tiene incorporados, lo que facilita la tarea de diseño de programación, logrando así una aplicación final mas fiable y económica. b- Características generales del 68HC11F1 Las características principales del Microcontrolador Motorola son: ? 512 bytes EEPROM. ? 1024 bytes RAM. ? Frecuencia de reloj de 2 Mhz. ? Bus de Datos y de Direcciones no multiplexado. ? Timer de 16 bits. ? Tres canales de Entrada/Captura. ? Cuatro canales de Comparación/Salida. ? Un canal adicional seleccionable como cuarto de Entrada/Captura ó quinto de Comparación/Salida. ? Acumulador de Pulsos de 8 Bits. Control de Velocidad Página No.4 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final ? Circuito de interrupciones de Tiempo Real. ? Watchdog. ? Interfaz Asincrónica Serie de Comunicaciones (SCI). ? Interfaz Sincrónica Serie de Periféricos (SPI). ? Ocho canales de Conversor A/D de 8 bits. ? Cuatro Señales de Salida Chip-Select. A continuación podemos ver un diagrama en bloque general del microcontrolador Donde podemos apreciar algunas de las características mencionadas Control de Velocidad Página No.5 Universidad Nacional de Quilmes Diseño de MicroControldadores 2- Estructura del MC68HC11F1 a- Descripción de los Pines Informe Proyecto Final A continuación daremos una clasificación general de los pines del microcontrolador que permitirá una mejor compresión de los mismos: ? Alimentación: VDD, VSS. ? Reloj: EXTAL, XTAL, E. ? Reset: RESET. ? Transmisión serie asíncrona: TxD, RxD. ? Petición de interrupciones hardware: IRQ, XIRQ, IC1-3, PAI, STRA. ? Modos de arranque: MODA, MODB. ? Comparadores: OC1- 5. ? Capturadores: IC1-3, PAI. ? Transmisión serie sincronía: SCK, MISO, MOSI, SS. ? Puertos: PA0-7, PB0-7, PC0-7, PD0-3, PE0-3. ? Conversores: AN0-7. ? Buses Pines de alimentación VDD: Es el pin de alimentación positiva, la cual debe ser el valor estándar de 5v VSS: Es la masa del MCU. Pines de reloj EXTAL y XTAL: Son las conexiones de entrada para la introducción de una señal de reloj. L frecuencia de reloj que es introducida en el MCU, es la encargada de regir el funcionamiento interno de los susbsisitemas que lo componen. La velocidad máxima aconsejable por el fabricante está en torno a los 8Mhz. E: Por este pin el MCU genera una señal de reloj, cuatro veces menor, que la que es introducida po r medio del oscilador externo (EXTAL y XTAL). Esta señal, la utiliza el micro para gestionar todos los dispositivos periféricos del sistema., es decir, la señal E es la velocidad del bus. Control de Velocidad Página No.6 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Pines de reset RESET: Está señal, activa a nivel bajo, es bidireccional. El 68HC11 está preparado no sólo para recibir señales de "reset" por este pin sino que es el propio dispositivo el que es capaz de generar dicha señal para todos los periféricos que conformen el sistema digital. De esta manera es posible que el diseñador trate a los subsistemas internos del microcontrolador del mismo modo que a cualquier dispositivo externo Generar un "reset" admite una gran cantidad de diseños diferentes. Dependiendo del tipo de sistema digital conviene uno u otro. Uno de los más utilizados es la conexión de un simple pulsador que al presionarlo habilite un camino de masa al pin E. Pines de transmisión serie asíncrona TxD y RxD: Son los pines de transmisión y recepción de datos serie asíncronos. El 68HC11 trabaja con niveles TTL, por lo que será necesario un circuito de adaptación si se quiere comunicar con un dispositivo que utilice otro tipo de norma como por ejemplo un PC (norma RS- 232C). Un integrado que realiza esta adaptación es el MAX232. Pines de los capturadores IC1, IC2 e IC3: Estos tres pines representan las tres entradas de los tres capturadores independientes que incorpora el 68HC11. Mediante ellos, es posible recoger cualquier cambio de nivel que se produzca en la circuito exterior. PAI: Este pin representa la entrada a un acumulador de pulsos, mediante el cual es posible medir la duración y contar flancos activos de señales externas al microcontrolador. Pines de petición de interrupciones externas IRQ: Este pin provee al microcontrolador de una entrada de interrupción enmascarable, activa a nivel bajo, y de colector abierto lo que permite conectar varios dispositivos a la vez. XIRQ: Del mismo modo que el pin anterior, este permite producir todas las peticiones de interrupción con la salvedad de que estas son no enmascarables. Uno de los usos más comunes de esta entrada es para activar alguna rutina de servicio referente a caída de la alimentación del sistema, o cualquier otra función de carácter prioritario como esta última. Control de Velocidad Página No.7 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Pines de configuración de los modos de arranque MODA y MODB: Estas dos señales son tenidas en cuenta por el microcontrolador únicamente en el momento del arranque del sistema. Según el nivel al que se encuentren, el 68HC11 se configurará en alguno de los 4 modos de que dispone. Mediante software es posible cambiar de un modo a otro. Pines de los comparadores OC2, OC3, OC4 y OC5: Estos cuatro pines representan las respectivas salidas hardware de cuatro de los cinco comparadores internos de los que está provisto el microcontrolado r. Una vez comparado un valor previamente almacenado en un registro de 16 bits con el valor del temporizador principal, en el caso de producirse la igualdad y cuando las salidas hardware estén habilitadas, el pin correspondiente al comparador activado muestra a la salida el nivel para el cual esté configurado. OC1: Si bien posee un solo nombre, aquí se ven representados nada menos que cinco pines de salida. Del mismo modo que en el caso anterior se trata de un comparador, pero que su salida hardware no es de un solo canal, sino de cinco Pines de transmisiones serie sincronía SCK : Este pin se refiere a la señal de reloj que comanda cualquier transmisión sincronía. Puede ser tanto de salida como de entrada, según que el microcontrolador trabaje como maestro o esclavo respectivamente. MISO y MOSI: (Master In Slave Out) (Master Out Slave In), estos dos pines son las dos vías por donde van a fluir los datos. Para el caso en que se configure el 68HC11 para trabajar como Maestro frente a otro dispositivo, el cual hace de esclavo, el pin MOSI es el que funciona como salida de datos desde el maestro al esclavo y el pin MISO es la vía contraria, es decir por donde el maestro recibe los datos del esclavo. Control de Velocidad Página No.8 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Mientras que si el MCU se usa como Esclavo, los datos del Maestro se reciben por el MOSI y tienen su vía contraria por MISO. SS: Señal que se activa a nivel bajo y que tiene diferentes funciones según se haya configurado el micro como Maestro o Esclavo. 68HC11 como esclavo: Cuando SS=0 se activa el sistema de transferencias síncronicas, en caso contrario la señal SCK no es tenida en cuenta y MISO está en estado de alta impedancia. 68HC11 como maestro: SS no repercute dentro de la transmisión propiamente dicha y puede ser utilizada como detección de errores, o de propósito general. Normalmente se utiliza para activar al esclavo, aunque cualquier bit de cualquier otro puerto sirve para esta función. Pines de los puertos de E/S La integración y la potencia de este microcontrolador obliga a un alto grado de múltiplexación de las funciones que soporta, por tanto, si bien la cantidad de puertos existentes en el chip es grande y variada, estos se ven a veces desactivados ya que son utilizados para otros fines como comparadores, capturadores, control de transmisiones asíncronas, etc. En la siguiente figura podemos ver la estructura y tipo de puertos (entrada, salida o bidireccionales) Además los puertos pueden cumplir determinadas otras funciones extras. En la siguiente figura mostramos la función que cumplen los pines de los puertos antes mencionados según el modo de funcionamiento del microcontrolador Control de Velocidad Página No.9 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Funcionamiento de los pines de los puertos del MC68HC11F1 Pines de los conversores A/D AN0-7: Este sistema es uno de los más populares a la vez que más delicado. Se basa en un conversor Analógico Digital de 8 bits que cuenta con 8 canales a los cuales puede acceder de 4 en 4. Las velocidades de muestreo están sujetas a la velocidad de reloj del microcontrolador, a la vez que las señales de referencia se pueden fijar externamente, es decir, disponer al micro para que convierta a digital señales analógicas que varíen entre 0 y +6 volts. Es recomendable la utilización precavida del sistema ya que una entrada de tensión fuera de los niveles de referencia prefijados provoca un corto interno y la alta probabilidad de que se destruya, al menos, el canal en cuestión. Control de Velocidad Página No.10 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Pines de los buses Cuando el microcontrolador se configura para funcionar en el modo extendido, es decir, con la capacidad de redireccionar 64K de memoria, se ve obligado a generar un bus de direcciones, uno de datos y uno de control. De esta manera, el 68HC11 deja que su CPU interna tenga acceso al exterior, por lo que a partir de aquí, de alguna manera, el microcontrolador comienza a funcionar como un microprocesador . Dicho "nuevo" microprocesador tiene una potencia razonable regida por un bus de datos de 8 bits, y un bus de direcciones de 16 bits, por lo que su espacio de direccionamiento es de 64Kbytes de memoria plana. Este mapa de memoria es plano y comparte espacio con los puertos que se incorporen a nuestro sistema y todos los registros internos de MCU. Mediante la utilización de la totalidad del PUERTO B, el micro lleva al exterior la PARTE ALTA DEL BUS DE DIRECCIONES, y por medio del PUERTO C se presenta al exterior de forma multiplexada la PARTE BAJA DEL BUS DE DIRECCIONES, y el BUS DE DATOS. Esta multiplexación obliga a tener que agregar un hardware adicional que permita poder separar ambos buses. Control de Velocidad Página No.11 Universidad Nacional de Quilmes Diseño de MicroControldadores 3- La CPU a- Modos de Funcionamiento Informe Proyecto Final El MC68HC11F1 posee cuatro métodos de funcionami ento ? Single Chip ? Expanded ? BootStrap ? Special Test En cada modo de funcionamiento se dispone de un mapa de memoria diferente como se ve en la siguiente figura. Control de Velocidad Página No.12 Universidad Nacional de Quilmes Diseño de MicroControldadores b- Registros de la CPU i- Registros de los acumuladores Informe Proyecto Final La CPU del MCU dispone de 2 registros acumuladores de 8 bits, que se unen para formar el registro D de 16 bits, siendo el acumulador A la parte alta y el acumulador B la parte baja. Además dispone de 2 registros para direccionamiento indexado X,Y ambos de 16 bits. El puntero de pila (sp ) y el contador de programa (pc) son también de 16 bits, lo que permite que la longitud máxima de un programa sea de 64Kbytes, que es el espacio máximo direccionable por el MCU. El registro CCR es el llamado registro de estado, que contiene unos bits de especial importancia que reflejan el estado de la CPU. Estructura de los acumuladores de la CPU ii- Puntero de la Pila (SP) Este debe ser inicializado por el usuario. La pila "crece" desde direcciones altas hacia direcciones bajas, por lo que al introducir un elemento en la pila, SP se decrementa en 1 ó 2 bytes dependiendo del tamaño del dato metido en la pila. Al sacar un elemento de la pila, SP se incrementa. Control de Velocidad Página No.13 Universidad Nacional de Quilmes iii- Diseño de MicroControldadores Informe Proyecto Final Contador de Programa (PC) El contador de programa se va incrementado según se van ejecutando las instrucciones. Por tanto, los programas se ejecutan desde direcciones bajas a altas y la pila crece de direcciones altas a bajas. Es importante dar a SP un valor "seguro" de tal manera que la pila no se solape con el código, si es que el código se encuentra en RAM. iv- Registro de Código de Condición El registro es de 8 bits. Cada bit tiene una letra asignada y representa una situación diferente del estado de la CPU. Los bits del CCR son c- Modos de Direccionamiento El MC68HC11F1 posee 6 modos de direccionamiento ? Inmediato ? Directo ? Expandido ? Indexado ? Relativo ? Inherente Control de Velocidad Página No.14 Universidad Nacional de Quilmes d- Diseño de MicroControldadores Informe Proyecto Final Set de Instrucciones El set de Instrucciones del MC68HC11F1 es del tipo CISC (Complex Instruction Set Computer) que un repertorio de instrucciones de gran cantidad, lo cual facilita la programación. El set del microcontrolador esta compuesto por 308 operaciones Podemos clasificar a las instrucciones como instrucciones de: ? Carga, almacenamiento y transferencia. ? Aritméticas. ? Operaciones aritméticas y manipulación de bits. ? Desplazamiento y rotaciones. ? Bifurcaciones y saltos. ? Instrucciones de modificación de los bits del CCR. ? Otras ( por ejemplo retorno de subrutina, retorno de interrupción, etc). e- Interrupciones Las interrupciones son señales generadas interna o externamente al microcontrolador que provocan que la CPU deje de ejecutar el programa en curso y ejecute una rutina específica para atender a la interrupción. Una vez ejecutada la rutina de servicio de la interrupción, la CPU continúa con el programa que estaba ejecutando antes de producirse la interrupción. Las direcciones de las rutinas de servicio de las interrupciones se encuentran en una tabla en memoria, denominada tabla de vectores de interrupción. Existen dos tablas de vectores de interrupción según el modo de funcionamiento del MCU. Si el modo de funcionamiento es el especial de arranque, la tabla se encuentra en memoria ROM en las direcciones $BFD6-$BFFE. Si funciona en modo normal o extendido, la tabla se encuentra en las direcciones $FFC0-$FFFE. En la tabla hay 21 vectores. Control de Velocidad Página No.15 Universidad Nacional de Quilmes i- Diseño de MicroControldadores Informe Proyecto Final Clasificación de las Interrupciones Una de las posibles clasificaciones para las interrupciones es: ? Enmascarables Se pueden inhibir actuando sobre el CCR ? No enmascarables No se pueden inhibir ? Por software Son producidas por el programador Otra posible clasificación es en: ? Externas Son producidas por circuitos o periféricos externos al microcontrolador ? Internas Son producidas por circuitos o periféricos del microcontrolador Cabe aclarar que no todas las interrupciones tiene la misma prioridad. Si se producen 2 interrupciones de manera simultanea primero se ejecutara la de mayor prioridad y luego la de menor. Se recomienda ver el anexo 2 f- Interrupción de Reset Esta interrupción ocurre cada vez que se recibe un nivel bajo en el pin de RESET del microcontrolador o sea cada vez que se pulsa el botón de reset. Al producirse esta interrupción, la CPU toma de la tabla de vectores de interrupción la dirección de la rutina que tiene que empezar a ejecutar. Si el microcontrolador funciona en modo especial de arranque, se empezará a ejecutar un programa en ROM, llamado BOOTSTRAP, que permite cargar un programa cualquiera procedente del exterior en la memoria RAM. Si el MCU funciona en modo normal o expandido, se ejecuta la rutina indicada por su correspondiente vector de interrupción. Control de Velocidad Página No.16 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final CAPITULO 2: Desarrollo del proyecto 1- El Proyecto a- El porque de la elección La elección del proyecto se realizo con el fin de implementar la mayoría de los conocimientos adquiridos en las clases teóricas y en las prácticas realizadas a lo largo de la cursada . Con este fin se implemento para el proyecto el manejo de subrutinas, interrupciones, variables de programa, comunicación serie con la pc, la generación de un PWM, adquisición de datos mediante detección de flancos y el manejo de un display b- Objetivos La idea básica del proyecto es implementar un control a lazo cerrado de la velocidad de salida de un motor de corriente continua y mostrar la misma en un display. Los objetivos del proyecto pueden separase en dos: ? Lograr realizar un control de velocidad de un motor. ? Implementación de un display LCD MODULE S162F SERIES c- Breve descripción de la idea implementada Por medio de una interfaz de usuario desarrollada en Visual Basic se elige un ciclo de trabajo para la señal PWM. Gracias a la interfaz de comunicación serie asincrónica que posee que el microcontrolador y por medio de una rutina de atención de interrupciones se lleva a cabo el almacenamiento del ciclo de trabajo. La señal del PWM es generado en el microcontrolador e implementado por medio de una de las salidas de comparación que posee éste, la señal del PWM es amplificada en la interfaz de potencia Control de Velocidad Página No.17 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final de la planta, finalmente la señal actúa directamente sobre el motor aumentando o disminuyendo la velocidad del mismo. A si mismo a medida que la velocidad del motor cambie ésta es escrita, a través de una rutina, en el display y en la interfaz de usuario con el fin de mostrar la variación que se produce. Cabe aclarar que físicamente la realimentación de la velocidad del motor se logro contando la cantidad de pulsos que entrega un encoder, ya que este es indicativo de la velocidad del motor. Para implementar en el microcontrolador la realimentación, se realizo una subrutina que durante un cierto intervalo de tiempo cuenta la cantidad de pulsos entregados por el encoger. c- Desarrollo del programa La metodología utilizada para la programación del proyecto consistió en dividir al mismo en diferentes etapas. Consiguiendo de esta forma tener códigos independientes que realizaran alguna de las tareas antes mencionadas. Una vez que se lograron los objetivos (generar el PWM, comunicación serie, escribir el display, etc.) se compagino un único código que paso a ser el código para realizar “el control de velocidad sobre el motor”. 2- La planta Utilizada La planta utilizada esta formad a por un motor de CC (corriente continua) con eje flexible, un encoder y una interfaz de potencia para el PWM El encoder con que contaba la planta fue reemplazado por un encoger Rotary Encoger OEW2036-2NHT de 360 P/R Características del motor de CC ? Motor IGNIS 5-380-K ? Alimentación 24 volts ? Corriente nominal de 1.4 amperes ? Corriente de salida de 0.5 amperes ? 380 RPM nominales Control de Velocidad Página No.18 Universidad Nacional de Quilmes 3- Diseño de MicroControldadores Informe Proyecto Final Recursos utilizados Los recursos que se utilizaron del MC68HC11F1 son Puertos Puerto A ? Utilizado como salida, implementa el PWM (bit6) Puerto B ? Implementación para mascara de control Puerto C ? Utilizado como salida de bus de datos para el display Puerto F ? Utilizado como salida de bus de control del display Interrupciones Entradas de captura (TIC) TIC1 ? Utilizado para capturar los pulsos del encoder Salidas de comparación (TOC) TOC2 ? Utilizado para generar el PWM TOC3 ? Utilizado para realizar la ventana de tiempo Comunicación Serie SCDR ? Recepción y transmisión de datos serie Sub rutinas Free Running Counter (TCNT) 4- Objetivos Alcanzados Hemos alcanzado los objetivos planteados a excepción de implementar un lazo cerrado de control. No hemos encontrado la manera de poder realizar dicho lazo tanto por falta de tiempo como por dificultad. Control de Velocidad Página No.19 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Por otra parte hemos conseguido escribir el display. Sin embargo no hemos podido anexar este código al proyecto, aunque cabe aclara que el código de escritura funciona correctamente . 5- Limitaciones Las limitaciones con las que nos encontramos fueron Exceso en la cantidad de pulsos que entregaba el encoder, éste ent regaba 2500 pulsos/vuelta lo que generaba una frecuencia a máxima velocidad de 15.8 Khz. Esta frecuencia excedía la capacidad de procesamiento del microcontrolador. La solución hallada consistió en reemplazarlo por uno de menor resolución, como ya lo hemos comentado. Problemas para implementar las interrupciones del TIC1 y TOC2, este problema fue consecuencia de la alta frecuencia que seguía entregando el encoder de “baja resolución” ya que seguíamos teniendo inconvenientes para el conteo de pulsos. La solución a este problema fue aumentar el periodo de la señal PWM. En un principio dicho periodo era de 2.5 milisegundos pasando luego a ser de 12.5 milisegundos con lo cual el inconveniente fue superado. Además se implementó una ventana de tiempo por medio del TOC3 para contar N flancos ascendentes durante un tiempo de 25 milisegundos y así obtener la velocidad del motor en RPM CONCLUSIONES A pesar de no haberse logrado la totalidad de los objetivos propuestos se utilizaron varios de los periféricos y recursos más trascendentes del microcontrolador, como ser la comunicación serie, temporizadores, interrupciones, etc. La configuración empleada para el LCD es satisfactoria, faltando solamente la impresión de la velocidad real del motor en el LCD. Se podría mencionar como mejora a futuro y como fin ultimo la implementación del lazo de control para control de la velocidad del motor así como poder escribir la velocidad del motor en el display. Control de Velocidad Página No.20 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final ANEXOS ANEXO 1 : TABLA DE INTERRUPCIONES Control de Velocidad Página No.21 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final ANEXO 2 : NIVEL DE PRIORIDAD DE INTERRUPCIONES A continuación detallamos la prioridades de las interrupciones. Recordar que una interrupción NO enmascarable puede interrumpir a una que si lo pero no viceversa. ? Interrupciones NO enmascarables: 1. POR or RESET pin 2. Clock monitor reset 3. COP watchdog reset 4. XIRQ interrupt 5. Illegal opcode interrupt 6. Software interrupt (SWI) ? Interrupciones enmascarables 1. IRQ 2. Real-time interrupt 3. Timer input capture 1 4. Timer input capture 2 5. Timer input capture 3 6. Timer output compare 1 7. Timer output compare 2 8. Timer output compare 3 9. Timer output compare 4 10. Timer input capture 4/output compare 5 11. Timer overflow 12. Pulse accumulator overflow 13. Pulse accumulator input edge 14. SPI transfer complete 15. SCI system Control de Velocidad Página No.22 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final ANEXO 4: DS IPLAY INTRODUCCION CARACTERISTICAS DEL DISPLAY 1_ ALIMENTACION La tensión nominal de alimentación es de 5V, con un consumo menor de 5mA. 2_LOS CARACTERES DEL LCD El LCD dispone de una matriz de 5x8 puntos para representar cada carácter. En total se pueden representar 256 caracteres diferentes. 240 caracteres estan grabados dentro del LCD y representan las letras mayúsculas, minúsculas, signos de puntuación, números, etc... Existen 8 caracteres que pueden ser definidos por el usuario. En la figura 3 se muestra gráficamente cómo es la matriz de representación de los caracteres. Se ha dibujado el carácter A y un carácter definido por el usuario. Control de Velocidad Página No.23 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final 3_LA MEMORIA DEL LCD El LCD dispone de dos tipos de memorias independientes: la DD RAM y la CG RAM Debido a esta pecualiar disposición de la DD RAM se puede pensar en el display como un display virtual constituido por dos líneas de 40 caracteres cada una . La posición situada más a la izquierda de cada línea es la posición 1 y la situada más a la derecha es la posición 40. Para localizar los elementos dentro del display virtual se va a utilizar un par de coordenadas (x,y) donde x representa la posición horizontal (comprendida entre 1-40) e y representa la línea (1-2). El display real es una ventana en la que se visualizan dos líneas de 16 caracteres. Es lo que el usuario está viendo. En el ejemplo de la figura se encuentra almacenado en la línea 1 del display virtual el mensaje: “ESTO ES UNA PRUEBA DE UN MENSAJE”. Sin embargo, en este ejemplo, el usuario sólo verá en el display el mensaje “PRUEBA DE UN MEN” que tiene exactamente 16 caracteres de longitud. Más adelante se verá cómo es posible ‘mover’ el display real para que se desplace a lo largo del display virtual. Tal y como se encuentra configurado el display real en la figura 4, la posición (14,1) se corresponde con la letra P, la posición (15,1) con la letra R, ....., y la posición (29,1) con la letra N. Cuando se inicializa el LCD, el display real se sitúa en el extremo más izquierdo del display virtual, que se corresponde con los valores de x comprendidos entre 1 y 16. Control de Velocidad Página No.24 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final A_ DD RAM (Display Data Ram) En esta memoria se almacenan los caracteres que están siendo visualizados o que se encuentran en posiciones no visibles. El display almacena en esta memoria dos líneas de 40 caracteres pero sólo se visualizan 2 líneas de 16 caracteres. Por ello la DD RAM tiene un tamaño de 2x40=80 bytes. Control de Velocidad Página No.25 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Las operaciones de escritura en el display, en realidad son operaciones de escritura en la memoria DD RAM. Según en la posición de esta memoria en la que se escriba el carácter, aparecerá en una posición u otra en el display real. Los caracteres enviados al display pueden ser visibles si se encuentran en posiciones que caen dentro del display real o pueden ser no visibles. En la figura 5, las posiciones (1,1)-(16,1) y (1,2)-(16,2) son visibles. Todas los caracteres enviados a esas posiciones serán visibles. Si se envía un carácter a cualquiera de las otras posiciones no será visible. B_LA CG RAM (Character Generator RAM) La CG RAM es la memoria que contiene los caracteres definibles por el usuario. Está formada por 64 posiciones, con direcciones $00-$3F. Cada posición es de 5 bits. La memoria está dividida en 8 bloques, correspondiendo cada bloque a un carácter definible por el usuario. Por ello el usuario puede definir como máximo 8 caracteres, cuyos códigos van del 0 al 7. Como se representó en la figura anteriormente vista, cada carácter está constituido por una matriz de 5 columnas x 8 filas. Para definir un carácter y asignarle por ejemplo el código 0 habrá que almacenar en las posiciones $00 -$07 los valores binarios de las 8 filas del carácter del usuario. Un bit con valor 1 representa un punto encendido. Un bit con valor 0 es un punto apagado. Control de Velocidad Página No.26 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final INTERFAZ HARDWARE El interfaz del display con el mundo exterior Los datos se transmiten por un bus de datos de 8 bits de anchura (El display ofrece la posibilidad de trabajar con este bus multiplexado en dos grupos de 4 bits) Para el control del display son necesarios 3 bits: una señal de enable (E), una para indicar lectura/escritura (R/W) y otra para seleccionar uno de los dos registros internos (RS). Por ello, en el caso peor, el sistema de control del display necesitará utilizar 8+3=11 bits. Asignación de pines Control de Velocidad Página No.27 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Interfaz del display con el mundo exterior Bus de datos El bus de datos del display se puede configurar para funcionar de dos formas diferentes. Bien como un bus de 8 bits o bien como un bus multiplexado de 4 bits. El utilizar el bus multiplexado de 4 bits es una opción muy útil para ahorrar bits en el sistema de control. En vez de utilizar 11 bits en total, se utilizan 7. Control de Velocidad Página No.28 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Bus de control El bus de control está formado por 3 señales: RS, R/W y E. La señal E es la señal de validación de los datos. Cuando no se utiliza el display esta señal debe permanecer a 0. Sólo en las transferencias de información (lecturas o escrituras) es cuando se pone a nivel 1 para validar los datos, pasando después de un tiempo a nivel 0. En la siguiente sección se explican detalladamente las temporizaciones. La señal R/W permite seleccionar si la operación que se va a realizar sobre el display es una lectura o una escritura. Cuando R/W=1 se realizan lecturas y cuando R/W=0 escrituras. Lo normal siempre es realizar escrituras, no obstante, el display ofrece la posibilidad de poder leer los contenidos de la memoria CG RAM y DD RAM así como leer el estado interno del display (ocupado o disponible) y el contador de direcciones. Con RS (Register Select) se selecciona el registro interno del display sobre el que se va a leer/escribir. El LCD dispone de dos registros internos: Registro de control y registro de datos. Ambos registros son de lectura y escritura. RS=0 selecciona el registro de control. RS=1 el registro de datos. Control de Velocidad Página No.29 Universidad Nacional de Quilmes Control de Velocidad Diseño de MicroControldadores Informe Proyecto Final Página No.30 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Operaciones a realizar para el caso de 8 bits. 1. La señal E se encuentra siempre a 0 antes de realizar cualquier operación 2. Poner RS=1 y R/W=0 3. Situar el dato a imprimir en el bus de datos del LCD (En este ejemplo se enviaría $41) 4. E=1 5. E=0 6. El carácter ha sido impreso en el LCD. Operaciones a realizar para el caso de 4 bits: 1. Poner RS=1 y R/W=0 2. Situar el valor 4 en el bus de datos del LCD (4 bits más significativos) 3. E=1 4. E=0 5. Situar el valor 1 en el bus de datos del LCD (4 bits menos significativos) 6. E=1 7. E=0 8. El carácter ha sido impreso en el LCD COMANDOS DEL LCD Introducción El LCD se controla mediante comandos que se envían al registro de control del LCD, seleccionado al poner la señal RS a nivel bajo (0). Cuando lo que se quiere es imprimir caracteres en el display o enviar información a la CG RAM para definir caracteres se selecciona el registro de datos poniendo RS a nivel alto (1). Control de Velocidad Página No.31 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Resumen de comandos del LCD Existe un contador de direcciones para la DD RAM y otro para la CG RAM, el cual contiene la dirección a la que se va a acceder. Modificando el contador de direcciones es posible acceder a cualquier posición tanto de la CG RAM como de la DD RAM. Con ello se consigue por ejemplo imprimir caracteres en cualquier posición del LCD. Cada vez que se realiza un acceso a memoria, el contador de direcciones se incrementa o decrementa automáticamente, según cómo se haya configurado el LCD. Al LCD le lleva un cierto tiempo procesar cada comando enviado. Por ello, para que se ejecute el comando especificado es necesario asegurarse de que el comando anterior ha finalizado. Existen dos estrategias para realizar esto. La primera se basa en leer del display el bit de ocupado. Si este bit se encuentra a 1 quiere decir que el LCD está ocupado procesando el comando anterior y Control de Velocidad Página No.32 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final por tanto no puede procesar nuevos comandos. La segunda estrategia, menos elegante pero más cómoda de implementar, consiste en realizar una pausa antes de volver a enviar el siguiente comando. Los tiempos máximos que tarda el display en procesar los comandos están especificados por el fabricante y tienen un valor típico de 40 s. Si se realiza una pausa mayor o igual a esta se tiene garantía de que el display ha terminado de ejecutar el comando. Descripción de los comandos 1.- Borrar el display DESCRIPCION: Este comando borra todas las posiciones del display virtual y sitúa el display real en la posición inicial (Figura 5), en la que se visualizan las posiciones desde la (1,1) hasta la (16,1) y desde la (1,2) hasta la (16,2). El cursor se sitúa en la posición (1,1) (Dirección 0 de la DD RAM). CODIGO: $01 TIEMPO DE EJECUCION: 1.64ms 2.- Cursor a HOME DESCRIPCION: Enviar el cursor a la posición (1,1). El display real se sitúa en la posición inicial. (Figura 5). CODIGO: $02 TIEMPO DE EJECUCION: 1.64ms 3._Establecer modo de funcionamiento CODIGO: 0 0 0 0 0 1 I/D S DESCRIPCION: Actualizar el contador de direcciones en la forma especificada y establecer si el display realiza desplazamientos o no. Estas acciones se llevan a cabo cada vez que se realiza una lectura o escritura en el display. Cuando I/D=1, el contador de direcciones se incrementa, lo que provoca que el cursor avance hacia la derecha cada vez que se imprime un carác ter en el display. Cuando I/D=0 el contador se decrementa y el cursor se mueve hacia la izquierda al imprimir. Con S=1 se indica al LCD que debe mover el display real una posición a la derecha cada vez que se imprime un carácter. Con S=0 el display debe permanecer ‘quieto’ al imprimir. (Normalmente se utiliza I/D=1 y S=0, por lo que el comando típico es 0x06) Control de Velocidad Página No.33 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final 4.- Control ON/OFF CODIGO: 0 0 0 0 1 D C B CODIGO TIPICO: $0E DESCRIPCION: Activar o desactivar el display, el cursor y el parpadeo 1. Display ON/OFF: D=1 activar el LCD. Cuando D=0 el LCD funciona normalmente pero no se visualiza ninguna información. Es posible realizar impresiones, enviar comandos, pero nada quedará reflejado en pantalla. Sólo cuando D=1 se puede ver algo en el display. 2. Cursor ON/OFF: C=1 activa el cursor. Con C=0 el cursor no se ve. 3. Parpadeo ON/OFF: B=1 hace que los caracteres situados en la posición del cursor parpadeen. Con B=0 no hay parpadeo. TIEMPO DE EJECUCION: 40 5.- Desplazamiento del cursor/display CODIGO: 0 0 0 1 S/C R/L 0 0 DESCRIPCION: Desplazar una posición el cursor o el diplay real. Con S/C=1 se mueve el display, con S/C=0 el cursor. R/L=1 desplaza a la derecha y R/L=0 a la izquierda. TIEMPO DE EJECUCION: 40 6.- Modo de transferencia de la información CODIGO: 0 0 1 DL 1 0 0 0 DESCRIPCION: Seleccionar el bus de datos del display para trabajar a 8 bits (DL=1) o a 4 bits (DL=0) TIEMPO DE EJECUCION: 40 Acceso a posiciones concretas de la CG RAM CODIGO: 0 1 A5 A4 A3 A2 A1 A0 CODIGO TIPICO: 0 1 0 0 0 0 0 0 (Acceso a la posición 0 de la CG RAM) DESCRIPCION: Acceder a la dirección A5 A4 A3 A2 A1 A0 de la CG RAM. Esta es la dirección que se copia en el contador de direcciones de la CG RAM. La siguiente escritura en el registro de datos del display (RS=1) se copiará en la posición indicada de la CG RAM TIEMPO DE EJECUCION: 40 Control de Velocidad Página No.34 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Acceso a posiciones concretas de la DD RAM CODIGO: 1 A6 A5 A4 A3 A2 A1 A0 CODIGO TIPICO: 1 0 0 0 0 0 0 0 (Acceso a la posición 0 de la DD RAM) DESCRIPCION: La dirección A6 A5 A4 A3 A2 A1 A0 se copia en el contador de direcciones de la DD RAM. La siguiente escritura en el registro de datos (RS=1) se grabará en la posición indicada de la DD RAM. TIEMPO DE EJECUCION: 40 Enviar datos a la CG RAM o a la DD RAM TIEMPO EJECUCION: 40 DESCRIPCION: Enviar un dato a la DD RAM o a la CG RAM. Por defecto se accede a la DD RAM, con lo que se imprimen los caracteres especificados en el display. La selección de una u otra memoria se realiza mediante los comandos descritos en los apartados 4.3.7 y 4.3.8. A la CG RAM se accede para definir caracteres especiales. Lo normal es acceder siempre a la DD RAM, porque es donde se va a realizar la impresión de caracteres en el display. TIEMPO DE EJECUCION: 40 Encendido del display Control de Velocidad Página No.35 Universidad Nacional de Quilmes Diseño de MicroControldadores Informe Proyecto Final Fuente de alimentación: Debido a la alta sensibilidad ante la presencia de ruido del display, se opto por utilizar la fuente del kit integrado del microcontrolador hc11. Cableado del display: El display consta de 14 pines de conexión, de los cuales tenemos : 8 bits de datos 3 bits de control 2 bits de alimentación 1 bit de control de contraste del display Se necesitaron dos cables planos para el conexionado a la tarjeta hc11 , en uno los ocho bits de datos y en otro los 3 bits de control. Los pines de alimentación se conexionan aparte con la fuente antes mencionada. Para el conexionado a la tarjeta del hc11 se necesitan dos ports de comunicación: En uno tenemos los 8 bits de datos (PORTC) y en otro tenemos los 3 bits de control (PORTB). Objetivo: El objetivo principal de la utilización del display es imprimir en pantalla la velocidad real del motor de cc . La programación del display es secuencial, el proceso de configuración e inicialización se lleva a cabo mediante el uso de subrutinas. BIBLIOGRAFÍA CONSULTADA ? Apuntes del curso Diseño de Microcontroladores año 2007 (UNQ) ? Manual del MC68HC11F1 (Technical Data) ? MicroControlador MC68HC11F1-Fundamentos, Recursos y Programación - Microbotica Control de Velocidad Página No.36 Universidad Nacional de Quilmes Control de Velocidad Diseño de MicroControldadores Informe Proyecto Final Página No.37