Circuito para Display
Circuito para Display
Circuito para Display
Tema 6: Microcontroladores
Carlos Garre del Olmo
Microcontroladores
MICROPROCESADORES
Introduccin a los microcontroladores. Principales familias y sus caractersticas. La familia PIC16. Programacin de microcontroladores. Diseo de sistemas empotrados. Introduccin a los DSP
Contenidos
Ingeniera de Hardware
MICROPROCESADORES
Es necesario seguir una metodologa bien estructurada a la hora de abordar el diseo de un sistema hardware-software complejo. Fases habituales:
1. 2. 3. 4. Definicin del Sistema. Diseo del Sistema. Implementacin del Sistema. Verificacin y Soporte. Definir responsabilidades del hardware y del software. Diseo jerrquico, en general Top-Down. Tener en cuenta los estndares existentes. Uso de herramientas de diseo formales (grficas y textuales). Analizar necesidades de robustez y posibles fuentes de error. Documentacin completa a lo largo de todo el proceso. Nombrar adecuadamente cada mdulo, de forma rigurosa. Diferenciar subsistema de control de subsistema de datos.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
Puntos importantes:
En otras asignaturas se estudia mucho sobre diseo de software, y adems el software en los sistemas empotrados suele ser relativamente sencillo. Para el diseo del hardware se empieza viendo un esquema general del sistema, donde slo hay:
Mdulos: cajas con nombre. Concepto de caja negra. Conexiones: flechas que conectan los mdulos. Cada flecha tiene que tener un nombre, y un nmero (nmero de bits o de hilos). aunque en mis esquemas no hay nombres...
Partiendo de este esquema, se desarrolla cada uno de los mdulos, respetando el nmero y nombre de las conexiones entrantes y salientes. Este proceso se repite recursivamente. En los niveles ms bajos empiezan a aparecer otros componentes que ya no son mdulos: son como las hojas de nuestro rbol, y definen componentes atmicos (ya no se pueden subdividir). Siempre que sea posible, los componentes atmicos se representarn con smbolos estndar (mejor el smbolo de inversor, que el patillaje de un 74HC04). Si es necesario, el esquema se puede completar con un apndice en el que se detallen las conexiones de los integrados.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
4
Mdulo Sensores:
R1 = 220 R2 = 10K R3 = 200 R4 = 50K IC1 = LM358
Mdulos Bsicos
MICROPROCESADORES
Vamos a ver en detalle cada mdulo, centrndonos nicamente en sistemas empotrados basados en microcontroladores PIC16.
Subsistema de Control
MICROPROCESADORES
Habitualmente consta nicamente del conexionado bsico del microcontrolador, aunque muchas veces puede requerir otros componentes, como conexin con una memoria adicional (EEPROM o RAM)
Mdulo de Alimentacin
MICROPROCESADORES
El microcontrolador necesita una fuente de alimentacin que proporcione corriente continua de 5V o menos. Otros mdulos pueden requerir su propia fuente de alimentacin, que proporcione otros voltajes (motores, ...). Para obtener una fuente de alimentacin continua de 5V a partir de la corriente alterna de 220V:
1. 2. 3. Un transformador baja los 220V a un voltaje algo superior a 5V (por ejemplo, 9V). Un rectificador (puente de diodos) convierte la forma de onda que alterna entre voltaje positivo y negativo en otra que slo tiene voltaje positivo: La onda se filtra mediante un condensador:
4.
Mdulo de Alimentacin
MICROPROCESADORES
10
Mdulos de Entrada
MICROPROCESADORES
La comunicacin con sistemas externos se realizar mediante alguno de los sistemas de comunicacin que implementan los PIC (USART, ...). No vamos a entrar en detalles. Para el resto de entradas vamos a ver los esquemas de conexionado de las entradas ms habituales hacia un microcontrolador PIC:
Interruptores. Teclados. Potencimetros. Sensores.
11
Interruptores
MICROPROCESADORES
Interruptores, botones, palancas, switches, bumpers... Son todos componentes que permiten al usuario alternar entre dos posibles entradas, habitualmente 0v y 5v.
Si el interruptor tiene 3 patas, podemos conectar sin ms Vcc y Gnd a las dos entradas, y la tercera pata es la salida:
Si slo hay dos patas, entonces tenemos que utilizar una resistencia de pull-up o pulldown. Ejemplo de interruptor con pull-down:
12
Filtro Antirebotes
MICROPROCESADORES
El cambio de estado en la salida ante la pulsacin de un interruptor dista mucho de ser ideal grfica en pizarra... Si este interruptor controla algn cambio de estado o cualquier mdulo que se active por flancos, obtendremos transiciones no deseadas. Es necesario filtrar los pulsos no deseados:
Por software: retardando la lectura cuando se recibe el primer flanco. Por hardware, mediante filtro RC. Por hardware, mediante biestables.
13
Teclados
MICROPROCESADORES
Un teclado con muchas teclas, como el de un PC, es un sistema empotrado en s mismo con su propio microcontrolador. Se comunica con otros sistemas (como el PC) mediante un protocolo de comunicacin. Si queremos manejar teclados pequeos, podemos hacerlo dejando toda la tarea de control en nuestro propio sistema. Es tpico hacerlo as con teclados numricos de 4x4 (teclados matriciales). Para un teclado matricial MxN necesitaremos M+N pines, en lugar de M*N:
M pines de salida para cada fila. N pines de entrada para cada columna.
14
Potencimetros
MICROPROCESADORES
Actan como una resistencia cuyo valor vara en funcin del giro o del deslizamiento. Se han de conectar a una entrada analgica del PIC.
Potencimetro digital: Se utiliza en interfaces digitales (subir volumen con un botn en lugar de con una rueda). Se comunican con la MCU mediante una interfaz serie (SPI, I2C...), y actan como un potencimetro en funcin de las seales de entrada. Su resolucin suele variar entre 32 y 1024.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
15
Sensores
MICROPROCESADORES
Los sensores nos permiten obtener medidas fsicas del mundo externo al sistema empotrado. Lo que hacen es transducir una magnitud fsica en otra, concretamente de tipo elctrico (resistencia, capacidad, corriente o voltaje). Hay sensores para medir:
Temperatura (termistor, termocupla, pirmetros...). Distancia/proximidad a un obstculo (ultrasonidos, infrarojos...). Presin (piezoresistivos, efecto Hall...). Luz (fototransistor, LDR...). Humedad. Qumicos (gases, pH...). Colores (CCD...). Flexin, torsin y estiramiento (galgas extensiomtricas, ...). Contacto (bumper, resistivos...). Sonido (micrfono...). Aceleracin (acelermetros...). Caudal (rotmetros...). Inclinacin (inclinmetros...). Rotacin o posicin lineal (encoder, potencimetro...).
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
16
Caractersticas de un Sensor
MICROPROCESADORES
Las caractersticas de un sensor determinarn la forma en la que podemos leer su informacin. Algunos sensores incorporan un circuito que permite conectarlo directamente a una entrada del microcontrolador, pero en general los sensores necesitan un circuito de acondicionamiento de seal. Principales caractersticas:
Magnitud de entrada: temperatura, luz, aceleracin, humedad... Magnitud de salida: resistencia, capacidad, corriente, tensin nos vamos a centrar en los que nos dan tensin. Dominio de entrada: intervalo en el que puede medir la magnitud de entrada (-20C a 80C...). Dominio de salida: rango de valores que se pueden obtener a la salida (0V a 5V...). Resolucin: mnima variacin en la entrada que se puede medir (01C...). Curva de relacin: curva que muestra la salida del sensor frente a los diferentes valores de entrada. Lo ideal es que sea lineal. Offset: Forma parte de la curva. Muchos sensores no devuelven 0 cuando la magnitud leda es 0 (3V a 8V...).
17
Amplificador Operacional
MICROPROCESADORES
Para entender cmo funcionan los circuitos de acondicionamiento de seal debemos presentar antes un componente fundamental en la electrnica analgica: el amplificador operacional. Es un circuito integrado con dos entradas y una salida, formado internamente por transistores y resistencias que persigue las siguientes propiedades ideales:
Impedancia de entrada infinita (~1M): la corriente de entrada necesaria para hacerlo funcionar es muy pequea. Impedancia de salida nula (~100): fuente de tensin ideal. Ganancia de tensin infinita (~200K): amplifica la tensin de entrada.
18
AO: Comparador
MICROPROCESADORES
El AO se puede configurar en diferentes circuitos bsicos que le dan una funcionalidad concreta. La configuracin ms bsica es en lazo abierto, denominada Comparador:
La tensin que devuelve es Vs+ si V1 > V2, Vs- si V1 < V2. Si fijamos la tensin negativa es una forma sencilla de convertir una seal analgica en digital. Si fijamos la positiva, sera con inversin pizarra... Comparador Schmitt: es un comparador con histresis evitamos rebotes!
Simplemente replica a la salida la misma tensin de entrada. Lo importante es que, gracias a las caractersticas del AO, no requiere mucha corriente de entrada (impedancia de entrada infinita), y en cambio es capaz de proporcionar su salida independientemente de la corriente que requiera el circuito conectado a ella (impedancia de salida nula). Es muy til para sensores que suministran poca corriente, o que se puedan ver afectados por su lectura. Tambin es til para regenerar seales.
20
AO: Amplificador
MICROPROCESADORES
Dos de las configuraciones ms importantes son: Amplificador Inversor y Amplificador No Inversor. Vamos a ver nicamente el amplificador no inversor.
La tensin de salida es proporcional a la de entrada, en funcin de las resistencias que se utilicen: Vout = Vin * (1 + R2/R1) Ejemplo: tenemos un sensor que devuelve una salida entre 0V y 1V, y queremos un dominio de salida entre 0V y 5V para atacar a una entrada del PIC.
Necesitamos una ganancia 5x. 5 = 1 * (1 + r2/r1) r2/r1 = 4. Por tanto, podemos usar por ejemplo: R2=4K, R1 = 1K. OJO! Si el valor mnimo no era 0V, estaremos tambin amplificndolo
OFFSET.
21
La tensin a la salida es: Si todas las resistencias son iguales: Vout = V1 + V2 + ... Vn Tambin existe una configuracin de restador: Para R iguales: Vout = V2 V1
22
Integrador:
Diferenciador:
23
Acondicionamiento de Seal
MICROPROCESADORES
Para acondicionar la seal de salida de un sensor a la entrada de un PIC, necesitamos conocer las caractersticas del sensor, y en funcin de ellas construir un circuito que nos devuelva a la salida una seal digital entre 0V y 5V. En el caso general, necesitaremos un seguidor de tensin, un amplificador y un sumador para eliminar el offset. Con esto obtenemos una seal analgica acondicionada, que luego podemos digitalizar mediante un comparador.
24
Sensor CNY70
MICROPROCESADORES
Vamos a ver un ejemplo prctico con el sensor CNY70: es un sensor ptico reflexivo que internamente consta de un LED y un fototransistor. La salida del sensor determina cunta de la luz emitida por el LED ha sido reflejada al fototransistor. Aplicaciones:
Sensor de proximidad: es preciso slo a distancias muy cortas (menos de 2cm). El rayo rebota contra el objeto y vuelve al fototransistor. Detector de color blanco/negro: El blanco refleja todo el rayo, mientras que el negro lo absorbe. Hay que poner el patrn muy cerca del sensor.
Es el sensor ms utilizado en los robots rastreadores. Presenta una tensin de salida muy baja, y con offset.
25
Existen muchos circuitos de acondicionamiento del CNY70 en Internet, pero yo he creado el mo propio: R1 = 220 R2 = 10K R3 = 200 R4 = 50K IC1 = LM358 IC2 = 74HC14
26
Algunas salidas tpicas en los sistemas empotrados, aparte de salidas complejas mediante protocolos de comunicacin:
LED. LCD. Motores. Seales de alto voltaje. Seales analgicas.
LED:
R determina el brillo y el consumo del LED. En torno a 330 suele ser un buen compromiso.
27
LCD
MICROPROCESADORES
LCD: Liquid Crystal Display. Hay multitiud de LCDs, pero vamos a ver un caso muy sencillo: 2 filas x 16 columnas. Pines del LCD:
RS:
Si es 0, escribimos rdenes sobre el registro de control. Si es 1, escribimos caracteres sobre el registro de datos.
E: Enable. R/W: lo podemos fijar en escritura. D7-D0: bus de datos bidireccional. Vo: contraste.
Comandos:
Inicializacin: RS=0. D=0x3C. Limpiar pantalla: RS=0. D=0x01. Cursor home: RS=0. D=0x02. Escribir carcter: RS=1. D=Ascii. Tambin hay comandos para definir tus propios caracteres.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
28
Motores
MICROPROCESADORES
29
En muchos casos necesitamos controlar una seal de alto voltaje desde el PIC: Apertura/Cierre de puerta. Disparo del airbag. Lanzamiento de un misil.
Para algunas aplicaciones basta con utilizar un transistor de potencia (Ej: IRF830), que conmuta una seal de alta tensin (entre el colector y el emisor) controlada mediante una seal pequea como la de un PIC (en la puerta). Rel: interruptor que, en lugar de controlarse manualmente, se controla desde una seal elctrica. Aisla por completo la lgica de control (salida del PIC) del sistema a controlar.
30
Seales Analgicas
MICROPROCESADORES
Si el microcontrolador no dispone de salidas analgicas, tenemos que utilizar un conversor DAC. Podemos utilizar un circuito integrado comercial, o fabricarlo nosotros:
31
Ejemplos de SSEE
MICROPROCESADORES
En pizarra...
32
Microcontroladores
MICROPROCESADORES
Introduccin a los microcontroladores. Principales familias y sus caractersticas. La familia PIC16. Programacin de microcontroladores. Diseo de sistemas empotrados. Introduccin a los DSP.
Contenidos
33
Adems de los microcontroladores hay otras opciones para construir sistemas empotrados: Sistemas basados en microprocesador: cuando se requiere mucha potencia de clculo. Sistemas basados en FPGA y ASIC: sistemas muy especficos. Sistemas basados en DSP: cuando se requiere un tratamiento intensivo de seales (imagen, sonido, medicina, comunicaciones...).
DSP: Digital Signal Processor. Procesadores diseados especficamente para optimizar los clculos relacionados con el tratamiento de seales: transformadas, filtros, convoluciones, ... Principales diferencias con microcontroladores:
Operaciones matemticas complejas un un solo ciclo. Algunas instrucciones especficas (MAC...). Conversores AD rpidos y precisos. Diseados para ser programados en alto nivel (C) mejor que en ensamblador. El fabricante provee libreras de alto nivel.
ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA
34
Microchip dsPIC
MICROPROCESADORES
Microchip tiene una familia de DSPs denominados dsPIC. En realidad, Microchip los llama DSC (Digital Signal Controller), ya que son un hbrido entre una MCU y un DSP de gama baja: dsPIC30F: gama bsica.
16 bits. 30 MIPS. De 28 a 80 pines. Hasta 144KB de programa, 8KB de RAM y 4KB de EEPROM. Conversores A/D de hasta 500kbps y 12 bits (hasta 16 por chip). 30 MIPS.
dsPIC 30F2010
MICROPROCESADORES
Es uno de los dsPIC ms bsicos, con 28 pines, 12KB de programa, 512B de RAM, 1KB de EEPROM, 6 ADC de 10 bits, etc.
Canal dual de acceso a memoria de datos (bancos X e Y). Array de 16x16b registros W. Unidad de divisin. ALU mejorada. Motor DSP (multiplicador 17 bits, ALU de 40 bits, 2 acumuladores de 40 bits y un barrel shifter de 40 bits. Detalles en arquitectura optimizados para algoritmos DSP. 62 fuente de interrupcin (en 7 niveles). ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
36
Nuevas instrucciones
MICROPROCESADORES
37
TEST
MICROPROCESADORES
TEST!
38