Post on 28-Jan-2016
MicrocontroladoresMicrocontroladores
Facultad de Ingeniería Eléctrica y Facultad de Ingeniería Eléctrica y ElectrónicaElectrónica
UNIVERSIDAD CATÓLICA DE CUENCAUNIVERSIDAD CATÓLICA DE CUENCA
Ing. José Luis Paladines.
Objetivos GeneralesObjetivos GeneralesEntender el funcionamiento de un
microcontroladorConfigurar un microcontroladorManejo de puertos E/S de un microcontroladorProgramación de microcontroladores con
lenguajes de alto nivel Realizar circuitos con microcontroladoresManejar periféricos de microcontroladores Simular el funcionamiento de un
microcontrolador
22/04/23 Ing. José Luis Paladines 2
HistoriaHistoriaIntel fabrica en 1971, el primer
microprocesador, el 4004 1972 Intel desarrolló una versión más
poderosa (el 8008) 1973 Intel lanza el 8080, con capacidad de
500000 operaciones por segundo, además se incrementó memoria a 64 kbytes.
En 1975 Zilog lanza al mercado el Z80, uno de los microprocesadores de 8 bits más poderosos. Motorola abate dramáticamente los costos con sus microprocesadores 6501 y 6502 (este último adoptado por APPLE para su primera microcomputadora personal).
1976 surgen las primeras microcomputadoras de un sólo chip, que más tarde se denominarán microcontroladores. Dos de los primeros microcontroladores, son el 8048 de Intel y el 6805R2 de Motorola.
22/04/23 Ing. José Luis Paladines 3
HistoriaHistoria
TECNOLOGIA 1976TECNOLOGIA 1976
MICROCONTROLADORESMICROCONTROLADORES MICROPROCESADORESMICROPROCESADORES
MAYOR NÚMERO Y COMPLEJIDAD DE DISPOSITIVOS DE COMUNICACIÓN, FACILIDADADES PARA CONTROL
EN TIEMPO REAL
MAYOR NÚMERO Y COMPLEJIDAD DE DISPOSITIVOS DE COMUNICACIÓN, FACILIDADADES PARA CONTROL
EN TIEMPO REAL
MAYORES LONGITUDES DE PALABRA (16 BITS, 32….), MAYOR CAPACIDAD
DE MANEJO DE MEMORIA
MAYORES LONGITUDES DE PALABRA (16 BITS, 32….), MAYOR CAPACIDAD
DE MANEJO DE MEMORIA
22/04/23 Ing. José Luis Paladines 4
HistoriaHistoria
TECNOLOGIA 80’sTECNOLOGIA 80’s
MICROCONTROLADORESMICROCONTROLADORES MICROPROCESADORESMICROPROCESADORES
CONTROL EN TIEMPO REALSISTEMAS MINIMOS
CONTROL EN TIEMPO REALSISTEMAS MINIMOS
GRANDES VOLUMENES DE DATOS
SISTEMAS INFORMATICOS
GRANDES VOLUMENES DE DATOS
SISTEMAS INFORMATICOS
22/04/23 Ing. José Luis Paladines 5
¿Qué no entendí?¿Qué no entendí?
No se quede con dudas.El profesor no es un León…
22/04/23 Ing. José Luis Paladines 6
¿Qué es un ¿Qué es un Microcontrolador?Microcontrolador?Es un circuito integrado programable Que contiene todos los componentes de un computador.
Se emplea para controlar el funcionamiento de una tarea determinada
Debido a su reducido tamaño, suele ir incorporado en el propio dispositivo al que gobierna.
Es un computador dedicado.En su memoria sólo reside un programa destinado a gobernar una aplicación.
22/04/23 Ing. José Luis Paladines 7
Conceptos BásicosConceptos BásicosMicroprocesador (µp).- Es un circuito integrado
que contiene la unidad central de proceso también llamada procesador, de un computador.
La UCP está conformada por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos, que lo ejecutan.
Las patillas de un microprocesador sacan al exterior las líneas o buses de direcciones, datos y control, para permitir conectarse con la memoria y los módulos de E/S y configurar un computador implementado por varios circuitos integrados.
Se dice que un microprocesador es un Sistema Abierto porque su configuración es variable de acuerdo con la aplicación a la que se le destine.
22/04/23 Ing. José Luis Paladines 8
Conceptos Básicos Conceptos Básicos Microcomputadora (µC).- Es una
computadora cuya CPU es un µp y que tiene un pequeño tamaño y costo. Esta constituida por cinco unidades básicas de un computador: Unidad de Entrada, Unidades de Control, Unidades aritméticas, Unidad de memoria y unidad de salida.
Computador (PC).- Es un sistema secuencial síncrono programable, el cual para desempeñar sus funciones debe poseer además de la CPU:
Conductos para el flujo de la información Dispositivos para almacenar información Dispositivos para comunicarse con el exterior.
22/04/23 Ing. José Luis Paladines 9
Estructura de un Estructura de un computadorcomputador
22/04/23 Ing. José Luis Paladines 10
Arquitectura de un Arquitectura de un computadorcomputador
22/04/23 Ing. José Luis Paladines 11
Arquitectura Von Newmann
Arquitectura Harvard
Arquitectura de un Arquitectura de un MicrocontroladorMicrocontrolador
MICRONTROLADOR
PROCESADOR MEMORIA NO VOLATIL PARA CONTENER EL
PROGRAMA
MEMORIA DE LECTURA Y
ESCRITURA PARA GUARDAR LOS
DATOS
LINEAS DE E/S PARA LOS
CONTROLADORES DE PERIFERICOS
RECURSOSAUXILIARES
CIRCUITO DE RELOJ TEMPORIZADORES PERRO GUEARDIAN CONVERSOR AD Y DA COMPARADORES ANALOGICOS PROTECCION ANTE FALLOS DE LA ALIMENTACIÓN ESTADO DE REPOSO O DE BAJO CONSUMO
COMUNICACIÓN EN PARALELO COMUNICACIÓN EN SERIE DIVERSAS PUERTAS DE COMUNICACIÓN
I2C USB SCI SPI
22/04/23 Ing. José Luis Paladines 12
Procesador (CPU)Procesador (CPU)Es el "cerebro" de una computadoraEs la parte de una computadora que se encarga de
controlar el proceso y la transferencia de información.
Interpreta las instrucciones de un programa y coordinar su ejecución.
La CPU desde que es energizada realiza en forma repetitiva ciclos de instrucción, los cuales se componen de las actividades descritas en la siguiente figura:
22/04/23 Ing. José Luis Paladines 13
Procesador (CPU)Procesador (CPU)Para realizar este ciclo básico, la CPU debe ser capaz de coordinar sus dispositivos internos y externos para realizar:
Lecturas desde memoria interna (registros) y memoria externa
Escrituras a memoria interna y externa Decodificación de instrucciones (basada en la
consulta de una unidad de micro código interna a la CPU)
Operaciones de tipo aritmético y lógico.
El procesador de los modernos microcontroladores es de arquitectura RISC
22/04/23 Ing. José Luis Paladines 14
Memoria de programaMemoria de programaROM con máscara: El programa se graba en el chip
durante el proceso de fabricación mediante el uso de máscaras. Muy caro y válido en series grandes.
EPROM: La grabación de esta memoria se realiza mediante un dispositivo físico gobernado desde un computador personal. Tiene una ventana para ser borrada por rayos ultravioletas.
OTP: permite ser grabada una vez por parte del usuario
EEPROM: La grabación y el borrado se realizan de forma eléctrica. Permite 1.000.000 de ciclos de escritura-borrado
FLASH: Bajo consumo, La grabación y el borrado se realizan de forma eléctrica, pero suelen disponer de mayor capacidad que estas últimas. En las FLASH se garantizan 1.000 ciclos de escritura-borrado.
22/04/23 Ing. José Luis Paladines 15
Memoria de datos Memoria de datos Los datos que manejan los programas varían continuamente, y esto exige que la memoria que los contiene deba ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que también disponen como memoria de datos una de lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte con el suministro de la alimentación no ocasionará la pérdida de la información, que está disponible al reiniciarse el programa.
22/04/23 Ing. José Luis Paladines 16
Líneas de E/SLíneas de E/SA excepción de dos pines destinados a la
alimentación, otras dos destinadas a recibir la señal de reloj que regula la frecuencia de trabajo y una más para provocar el Reset, las restantes patitas de un microcontrolador sirven para soportar su comunicación con los periféricos externos que controla.
Las líneas de E/S que se adaptan con los periféricos manejan información en paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertos.
Hay modelos con líneas que soportan la comunicación en serie; otros disponen de conjunto de líneas que implementan puertas de comunicación para diversos protocolos, como I2C, USB, SCI, SPI, etc.
22/04/23 Ing. José Luis Paladines 17
Recursos auxiliaresRecursos auxiliaresCircuito de reloj, encargado de generar los impulsos
que sincronizan el funcionamiento de todo el sistema. Este reloj se lo puede activar al momento de programar y no será necesario utilizar un reloj externo, permitiendo utilizar estas líneas como E/S.
Temporizadores orientados a controlar tiempos.Watchdog o Perro Guardián, destinado a provocar una
reinicialización cuando el programa queda bloqueado. Conversores AD y DA, para poder recibir y enviar
señales analógicas.Comparadores Analógicos, para verificar el valor de
una señal analógica.Sistema de protección ante fallas de la alimentación. Estado de Reposo, en el que sistema queda congelado
y el consumo de energía se reduce al mínimo.
22/04/23 Ing. José Luis Paladines 18
Proceso de programaciónProceso de programación
MicrocontroladorMicrocontrolador
EDICIONEDICION COMPILACIONCOMPILACION GRABACIONGRABACION
22/04/23 Ing. José Luis Paladines 19
CompiladorCompiladorEl Compilador permite traducir un programa
hecho con un determinado lenguaje de programación a código máquina.
Ensamblador: Es el de más bajo nivel de todos, una instrucción de ensamblador se traduce a una instrucción de código máquina, es por tanto el más rápido y el que menos memoria ocupa.
Basic: Es un lenguaje de más alto nivel y que por su sencillez se ha popularizado mucho, es menos rápido que el lenguaje ensamblador y ocupa más memoria.
C: Más próximo al lenguaje Ensamblador que Basic en cuanto a nivel de programación, pero más complejo de programar que éste último.
22/04/23 Ing. José Luis Paladines 20
¿Qué no entendí?¿Qué no entendí?
Pregunte…El profesor no puede versus conocimientos….
22/04/23 Ing. José Luis Paladines 21
¿Porqué los PIC?¿Porqué los PIC?Los PIC ofrecen su herramienta de edición,
compilación y simulación de forma gratuita en el Internet.
Sencillez de manejoBuena información, tanto de los elementos,
como de proyectosSu costo es muy atractivoParámetros como velocidad, código compacto,
su alimentación mejorada, tamaño, etc.Herramientas de desarrollo de fácilesEstandarización de su programa, para toda la
gama de microcontroladoresGran cantidad de circuitos programadores
haciendo fácil su ponerlos a funcionarGran variedad de modelos, que se adaptan a
cada necesidad.
22/04/23 Ing. José Luis Paladines 22
Familia de los PICFamilia de los PICLa Familia más utilizada es la familia de
microcontroladores de 8 bits (bus de datos) que tienen las siguientes características generales:
Arquitectura Harvard Tecnología RISC Tecnología CMOS
Estas características se conjugan para lograr un dispositivo altamente eficiente en el uso de la memoria de datos y programa y por lo tanto en la velocidad de ejecución.
Microchip ha dividido sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones:
22/04/23 Ing. José Luis Paladines 23
EmpaquetadosEmpaquetados
22/04/23 Ing. José Luis Paladines 24
NomenclaturaNomenclaturaEn el nombre específico del microcontrolador pueden aparecer algunas siglas que dependen del rango de voltaje manejado y del tipo de memoria ROM incluida, como se muestra en la siguiente tabla:
22/04/23 Ing. José Luis Paladines 25
Diagrama de Pines Diagrama de Pines 16F84A16F84A
22/04/23 Ing. José Luis Paladines 26
CaracterísticasCaracterísticas35 instrucciones, todas se ejecutan en un ciclo
de instrucción, 20 MHz., 1024 palabras de programa, 68 bytes de RAM, 64 bytes de EEPROM, 14-bit Ancho de las palabras de instrucción, 8-bit Ancho de las palabras de datos, 15 registros especiales de Hardware, 8 Niveles de pila
Direccionamiento: Directo, Indirecto y relativo4 Fuentes de Interrupción: Externa pin
RB0/INT, TMR0 sobre flujo, cambio de estado PORTB<7:4>, Terminación de Escritura de datos en la EEPROM
13 pines E/S con control individual de dirección, 25 mA como máximo por pin en modo fuente, TMR0: Temporizador/Contador de 8-bit, Preescalador programable.
Baja potencia, Alta velocidad, Gran banda de voltajes de funcionamiento
22/04/23 Ing. José Luis Paladines 27
Características EspecialesCaracterísticas Especiales10,000 ciclos de escritura y borrado de
la memoria FLASH10,000,000 ciclos de escritura y borrado
de la memoria EEPROMPower-on Reset (POR), Power-up Timer (PWRT),Oscillator Start-up Timer (OST)Watchdog Timer (WDT) con oscilador RC
internoCódigo protecciónOpciones para seleccionar osciladorBajo consumo en modo SLEEP
22/04/23 Ing. José Luis Paladines 28
Estructura InternaEstructura Interna
22/04/23 Ing. José Luis Paladines 29
OsciladorOscilador
22/04/23 Ing. José Luis Paladines 30
Cristal externoCristal externo
22/04/23 Ing. José Luis Paladines 31
Circuito RC externoCircuito RC externoEste modo sólo se recomienda cuando la
aplicación no requiera una gran precisión en la medición de tiempos.
22/04/23 Ing. José Luis Paladines 32
Ciclo de InstrucciónCiclo de Instrucción Q1: Decodificación de la instrucción
Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato
22/04/23 Ing. José Luis Paladines 33
¿Qué no entendí?¿Qué no entendí?
No se quede con dudas.Pregunte, el profesor ya se va…
22/04/23 Ing. José Luis Paladines 34
Registros del CPURegistros del CPURegistro de Instrucción: Registro de 14 bits. Todas las
instrucciones se colocan en él para ser decodificadas por la CPU antes de ejecutarlas.
Registro W: Registro de 8 bits que guarda resultados temporales de las operaciones realizadas por la ALU.
Registro Status:
22/04/23 Ing. José Luis Paladines 35
• Z: Este bit se pone (=1) para indicar que el resultado de la última operación fue cero, de lo contrario se limpia (=0)
• C: Bit de acarreo/préstamo’ de la última operación aritmética (en el caso de préstamo (resta), el bit se invierte antes de guardarse)
• DC: Acarreo/prestamo proveniente del cuarto bit menos significativo. Funciona igual que el bit C, pero para operaciones de 4 bits.
Mapa de MemoriaMapa de MemoriaEl mapa de memoria muestra
como esta estructurada la memoria interna, tanto la de programa como la Memoria RAM.
En la figura adjunta se observa con detalle esta Memoria RAM y a simple vista se observa que las primeras posiciones se encuentran ocupadas por registros propios del PIC, que permiten configurar sus diferentes componentes.
22/04/23 Ing. José Luis Paladines 36
Condiciones MínimasCondiciones MínimasQue tenga alimentación y además:
22/04/23 Ing. José Luis Paladines 37
Puertos paralelos de E/SPuertos paralelos de E/SEl PIC 16F84A, tiene
dos puertos E/S denominados PORTA y PORTB.
En total son 13 líneas E/S.
Estos puertos son totalmente programables, es decir, sus líneas pueden trabajar como entradas o como salidas a selección del programador.
22/04/23 Ing. José Luis Paladines 38
Puerto APuerto AEl Puerto A posee
5 líneas bidireccionales.
Configurable pin a pin.
Tiene dos registros asociados:
◦ El registro de datos PORTAPORTA
◦ El registro de dirección (E/S) de los datos TRISATRISA
22/04/23 Ing. José Luis Paladines 39
Puerto A (TRISA)Puerto A (TRISA)
Bit k de TRISA = 1 configura la patita RAk del puerto A como Entrada
Bit k de TRISA = 0 configura la patita RAk del puerto A como Salida
22/04/23 Ing. José Luis Paladines 40
Registro de dirección de datos del puerto A-
-
-
Puerto A (PORTA)Puerto A (PORTA)
Registro de estado del Puerto A. Cada uno de los 5 bits menos significativos
(RA4,...,RA0) de este registro están asociados a la línea física correspondiente del puerto.
Al hacer una lectura este registro se lee el estado de todas las patitas del puerto.
Todas las escrituras al registro son operaciones del tipo “lee modifica-escribe”, es decir, toda escritura al puerto implica que el estado de las patitas es leído, luego es modificado y posteriormente se escribe al latch de datos del puerto.
22/04/23 Ing. José Luis Paladines 41
-
-
-
Puerto B Puerto B El puerto B es un
puerto digital de 8 bits.
Configurable pin a pin. Todas sus patitas son
bidireccionales y trabaja en forma similar al puerto A.
Tiene tres registros asociados:
◦ El registro de datos PORTB
◦ El registro de dirección de los datos TRISB
◦ El registro OPTION_REG.
22/04/23 Ing. José Luis Paladines 42
Registros del Puerto BRegistros del Puerto BEl registro de datos PORTB (06H)PORTB (06H): Los ocho bits
que contiene reflejan directamente el estado de las ocho patitas del puerto B RB0,....., RB7.
El registro de dirección de los datos TRISB (86H)TRISB (86H): En forma similar a TRISA, al poner un 0 en un bit de TRISB se configura la patita RB correspondiente como salida y al poner un 1 en un bit de TRISB se configura la patita RB correspondiente como entrada.
El registro OPTION_REGOPTION_REG: El bit 7 de este registro, denominado RBPU es usado para conectar/desconectar una resistencia “pull-up” conectada a cada patita RB. Poniendo un 0 en este bit todas las resistencias se conectan. Para desconectar las resistencias “pull-up” se debe poner este bit en 1, también se desconectan automáticamente cuando la patita correspondiente es configurada como salida. Un Reset desconecta todas las resistencias.
22/04/23 Ing. José Luis Paladines 43
Eso es todo por el Eso es todo por el momento!momento!Preguntas???
22/04/23 Ing. José Luis Paladines 44