You are on page 1of 25

ESCUELA TCNICA SUPERIOR DE INGENIERA ICAI Departamento de Electrnica y Automtica

INTRODUCCIN

A LOS

MICROCONTROLADORES

Electrnica, 2 IEM, 2011-2012

Microcontroladores

Alternativas para implantar un sistema digital:

Lgica discreta: Mucho espacio, poco flexible, mayor consumo => No usada hoy en da. Lgica programable: En un solo chip se puede integrar circuitos muy complejos => poco espacio, reprogramable y por tanto flexible, y menor consumo.

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

Ejemplo: tarjeta grfica


Misma funcionalidad 1/5 del tamao. Reprogramable.

Fuente:

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

Lgica programable => dos alternativas:


Lgica cableada: CPLD (Complex Programmable Logic Devices) y FPGA (Field Programmable Gate Array).

La inteligencia del sistema se define por el conexionado de sus componentes.

Lgica programada: Microcontrolador.

La inteligencia del sistema se define por el programa ejecutado por el procesador.

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

PLD: Permiten implantar una funcin lgica como suma de productos (forma cannica):

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

CPLD: Varias PLD en un mismo chip interconectadas entre s. No voltil.

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

FPGA: Miles de bloques lgicos configurables (CLB) interconectados entre s. Basado en RAM, y por tanto voltil requiere memoria externa para configurar.

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

Microcontrolador: CPU + memoria + perifricos

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

Registros: valores temporales. ALU: operaciones RAM: datos Flash: Programa. Cada ciclo de reloj lee una instruccin, la decodifica y la ejecuta.

La CPU
Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

Microcontroladores

DDR define si el pin es entrada o salida. En PORT se escribe el valor de salida. En PIN se lee el estado del pin del micro. Ojo: si se escribe un 1 en PORT se activa la R de pull-up.

Puertos I/O

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

10

Microcontroladores

Cuenta en TCNT eventos en el pin Tn o ciclos del reloj interno (From Prescaler). Permite contar eventos externos o generar retardos si se cuentan ciclos de reloj.

Contador / Temporizador
Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

11

Microcontroladores

Mux selecciona la entrada analgica deseada. Se arranca la conversin escribiendo 1 en ADSC. Se convierte el dato mediante aproximaciones sucesivas. Cuando finaliza la conversin el micro pone el bit ADSC a cero para avisar al programa. El programa lee el valor convertido del registro ADC Data Register

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Conversor A/D
Electrnica 2 IEM 2011-2012 12

Microcontroladores

Interfaz con los perifricos: Mapa de memoria

ATmega328P

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

13

Hexadecimal
Dec Hex Bin

Sistema de numeracin de 16 dgitos: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

Muy utilizado para representar la informacin que manejan los micros, que son palabras mltiplos del byte (4 bits=16 combinaciones).

En lenguaje C:
0xF1 0xB5 11110001 10110101

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

14

Microcontroladores

Ejemplo: E/S digital

- Definicin de E/S (formato hex.)


// (0in, 1out)

- Escritura Salidas (LED ON ->0)

- Lectura Entradas (%x -> hex)


Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

15

Lenguaje C para micros

Tipos de datos enteros: definirlos en header file para portabilidad

Dependiente del micro

Alias utilizados en el programa

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

16

Lenguaje C para micros

Manipulacin de bits
a b = 01101101 = 10101001

a<<4 = 11010000 a>>4 = 00000110

desplaza el valor de a 4 bits a la izq (multiplica por 24) desplaza el valor de a 4 bits a la der (divide por 24)

a&b a|b a^b ~a

= 00101001 = 11101101 = 11000100 = 10010010

(AND, bit a bit) (OR, bit a bit) (XOR, bit a bit) (NOT, bit a bit)
Electrnica 2 IEM 2011-2012

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

17

Lenguaje C para micros

Manipulacin de bits individuales

Verificar el valor de un bit utilizando una mscara:


if( PORTB & (1<<5) ) /* 1<<5=00100000 bit 5 a 1? */

Poner un bit a 1:
PORTB |= (1<<3) ) /* 1<<3=00001000, pone bit 3 a 1 */

Poner un bit a 0:
PORTB &= ~(1<<3) ) /* pone el bit 3 a 0 */

Invertir un bit:
PORTB ^= (1<<3) ) /* invierte bit 3 */
Electrnica 2 IEM 2011-2012

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

18

Lenguaje C para micros

Tcnicas de programacin:

El bucle scan:

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

19

Lenguaje C para micros

Tcnicas de programacin:

El bucle scan: ejemplo de pulsadores y LED


includes

#include tipos.h

Hex, conf. puerto


Definimos variables

Nota
i7 i6 i5 i4 x x x x >> 4 = 0 0 0 0 i7 i6 i5 i4
Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

20

Problema Alarma

Sistema de alarma tal que: interruptor para activar el sistema (ON), sensor que detecta apertura puerta (P), sensor que detecta apertura ventana (V), y salida para activar bocina (Al) al abrirse la puerta o la ventana.

Se pide disear el software de un sistema equivalente con el ATmega328P


Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

21

Problema: Alarma
#include tipos.h

includes

Para facilitar la manipulacin de bits

Definimos variables Configuramos puerto, in-out

0xF8;
Lectura entradas

Aislamos los bits

Funcin lgica

Actualizamos salidas

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

22

Problema: detector de BCD divisible por 3


Recordamos que con lgica combinacional se haba obtenido:

Se pide disear el software de un sistema equivalente con el ATmega328P


Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

23

Problema: detector de BCD divisible por 3


#include tipos.h

includes

Para facilitar la manipulacin de bits

Definimos variables Configuramos puerto, in-out Lectura entradas

Aislamos los bits

s=d3 & d0 | d2 & d1 & ((~d0) & 0x01) | ((~d2) & 0x01) & d1 & d0;

Funcin lgica

Actualizamos salidas

Departamento de Electrnica y Automtica Escuela Tcnica Superior de Ingeniera ICAI Universidad Pontificia Comillas

Electrnica 2 IEM 2011-2012

24

Alberto Aguilera 23, E-28015 Madrid - Tel: +34 91 542 2800 - Fax: +34 91 559 6569 - http://www.icai.upcomillas.es

You might also like