Está en la página 1de 38

MICROPROCESADORES

ESCUELA TCNICA SUPERIOR DE INGENIERA


INFORMTICA
Tema 6: Microcontroladores
Carlos Garre del Olmo
1
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Microcontroladores
Introduccin a los microcontroladores.
Principales familias y sus caractersticas.
La familia PIC16.
Programacin de microcontroladores.
Diseo de sistemas empotrados.
Introduccin a los DSP
C
o
n
t
e
n
i
d
o
s
2
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Ingeniera de Hardware
Es necesario seguir una metodologa bien estructurada a la hora de abordar
el diseo de un sistema hardware-software complejo.
Fases habituales:
1. Definicin del Sistema.
2. Diseo del Sistema.
3. Implementacin del Sistema.
4. Verificacin y Soporte.
Puntos importantes:
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.
3
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Diseo del Subsistema Hardware
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.
4
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Ejemplo de Esquema Global
5
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Ejemplo de Esquema de 2 Nivel
Mdulo Sensores:
R1 = 220
R2 = 10K
R3 = 200
R4 = 50K
IC1 = LM358
Detalle de
conexionado del IC1:
6
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Mdulos Bsicos
Suele haber cinco tipos de mdulos en el hardware de un sistema empotrado:
Subsistema de control (unidad de proceso).
Mdulo de alimentacin.
Mdulos de entrada.
Mdulos de salida.
Mdulos de entrada/salida.
Vamos a ver en detalle cada mdulo, centrndonos nicamente en sistemas
empotrados basados en microcontroladores PIC16.
7
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Subsistema de Control
Habitualmente consta nicamente del conexionado bsico del microcontrolador,
aunque muchas veces puede requerir otros componentes, como conexin con una
memoria adicional (EEPROM o RAM)
8
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Mdulo de Alimentacin
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. Un transformador baja los 220V a un voltaje algo superior a 5V (por ejemplo, 9V).
2. Un rectificador (puente de diodos) convierte la forma de onda que alterna entre voltaje
positivo y negativo en otra que slo tiene voltaje positivo:
3. La onda se filtra mediante un condensador:
4. Mediante un regulador de tensin, fijamos el voltaje a 5V:
9
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Mdulo de Alimentacin
10
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Mdulos de Entrada
Un sistema empotrado suele tener tres tipos diferentes de entrada:
Mdulos de adquisicin de datos (sensores, ...).
Entrada de interfaz con el usuario (botones, interruptores, ruedas, ...).
Comunicacin con sistemas externos (entrada/salida).
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Interruptores
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 pull-
down. Ejemplo de interruptor con pull-down:
12
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Filtro Antirebotes
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.
Otra opcin es combinar un circuito RC con un inversor
Schmitt (histresis):
13
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Teclados
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.
El proceso consiste en:
Poner a 0 la salida de una fila (m), y a 1 las dems (M-1).
Leer los N pines de entrada de las columnas.
Si el pin n vale 0 est pulsado el botn m,n.
Repetir con las dems filas en un bucle constante.
14
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Potencimetros
Los potencimetros son las tpicas ruedas y deslizadores en las interfaces.
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.
15
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Sensores
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...).
16
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Caractersticas de un Sensor
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Amplificador Operacional
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
AO: Comparador
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!
Ur es una tensin de referencia, y Ue la tensin de entrada.
19
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
AO: Seguidor de Tensin
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
AO: Amplificador
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
AO: Sumador Inversor
Devuelve la suma algebraica de, virtualmente, cualquier nmero de entradas:
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
AO: Otras configuraciones
Integrador:
Diferenciador:
Osciladores, filtros, amplificador diferencial...
23
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Acondicionamiento de Seal
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Sensor CNY70
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Acondicionamiento del CNY70
Existen muchos circuitos de acondicionamiento del CNY70 en Internet, pero yo he
creado el mo propio:
26
R1 = 220
R2 = 10K
R3 = 200
R4 = 50K
IC1 = LM358
IC2 = 74HC14
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Mdulos de Salida (LED)
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:
27
R determina el brillo y el consumo del LED.
En torno a 330 suele ser un buen compromiso.
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
LCD
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.
28
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Motores
Hay diferentes tipos de motores:
Servos:
Motor muy preciso utilizado en robtica, modelismo, ...
Habitualmente, giro de 180.
Incorpora una reductora y un circuito de control.
Se controlan mediante PWM.
Control por posicin: si lo giras manualmente, hace fuerza para volver a su posicin.
Motores de corriente continua:
Gran velocidad y poca precisin juguetes, giro de lector CD, ...
Giro infinito.
Velocidad y par se controlan por tensin PWM reduce slo velocidad.
Se suele utilizar un circuito de Puente en H para controlarlo:
Motores paso a paso:
Control por posicin en unos pocos pasos discretos.
29
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Seales de Alto Voltaje
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
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Seales Analgicas
Si el microcontrolador no dispone de salidas analgicas, tenemos que utilizar un
conversor DAC. Podemos utilizar un circuito integrado comercial, o fabricarlo nosotros:
31
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Ejemplos de SSEE
En pizarra...
32
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Microcontroladores
Introduccin a los microcontroladores.
Principales familias y sus caractersticas.
La familia PIC16.
Programacin de microcontroladores.
Diseo de sistemas empotrados.
Introduccin a los DSP.
C
o
n
t
e
n
i
d
o
s
33
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Alternativas a los MCU (DSP)
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.
34
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Microchip dsPIC
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.
dsPIC33F: gama alta.
16 bits. 40 MIPS.
De 28 a 100 pines.
Hasta 256KB de programa, 30KB de RAM, sin EEPROM.
Conversores A/D de hasta 22Mbps y 12 bits (hasta 32 por chip).
Controlador de DMA (8 canales).
35
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
dsPIC 30F2010
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.
36
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).
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
Nuevas instrucciones
Entre las nuevas instrucciones destacan:
DIV: divisin.
Instrucciones DSP:
37
MICROPROCESADORES
ESCUELA TCNICA SUPERIOR DE INGENIERA
INFORMTICA
TEST
TEST!
38

También podría gustarte