Diseño de Microcontroladores Digitales

Anuncio
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
Descargar