Upload
its-el-oro
View
517
Download
19
Embed Size (px)
DESCRIPTION
Fundamentos de microcontroladores PIC y su programación básica
Citation preview
MICROCONTROLADORES
Ing. Víctor Medina G
¿LA SOLUCIÓN EN UN CHIP?
La única limitación que tienen las aplicaciones de los
microcontroladores actuales esta en la imaginación del
diseñador. Podemos encontrar microcontroladores en:
• Automatización industrial.
• Adquisición y cuantificación de variables físicas.
• Control de procesos industriales.
• Enseñanza e investigación.
• Electrodomésticos.
• Industria automotriz.
• Robótica.
• Industria informática.
• Sistemas de seguridad, etc.
Microcontroladores: Ing. Víctor Medina G 2
FABRICANTES
Existen en el mercado muchas compañías que se
dedican a fabricar microcontroladores:
• Microchip
• Freescale
• Atmel
• Intel
• Hitachi
• Phillips
• Texas Instruments
• Holteck
• NEC
• Zilog
• National Semiconductor, etc
3 Microcontroladores: Ing. Víctor Medina G
Freescale Semiconductor, Inc. es un fabricante estadounidense de semiconductores. Fue creado a partir de la división de semiconductores de Motorola en 2004. Freescale se centra en el mercado de los sistemas integrados y las comunicaciones.
Microcontroladores de 8 bits:
Familia HC08: 68HC08AB, 68HC08AP, etc.
Familia HCS08
Familia RS08
Microcontroladores de 16 bits:
Familia S12
Familia HC12
Familia HC16
4 Microcontroladores: Ing. Víctor Medina G
Atmel es una compañía de semiconductores, fundada en 1984. Sus familias de microcontroladores incluyen derivados del 8051, el AT91SAM basado en ARM, y sus arquitecturas propias AVR y AVR32.
AVR:
• ATtiny
ATtiny26, etc.
• ATmega
ATmega8
Atmega16, etc.
• AT90Sxxxx
AT90S2313, etc.
5 Microcontroladores: Ing. Víctor Medina G
Intel con una de sus mas
famosas creaciones es el
Microcontrolador Intel 8051
desarrollado en 1980, Los
núcleos 8051 se usan en más
de 100 microcontroladores de
más de 20 fabricantes
independientes como Atmel,
Dallas Semiconductor, Philips,
Winbond, entre otros
6 Microcontroladores: Ing. Víctor Medina G
Con las familias PIC® MCU de 8
bits, 16 bits y 32 bits, así como la
familia de Controladores de
Señales Digitales (DSC) de 16 bits
7 Microcontroladores: Ing. Víctor Medina G
Arquitectura de microncontroladores
Microcontroladores: Ing. Víctor Medina G 8
Diagrama en bloques de un
Procesador
Microcontroladores: Ing. Víctor Medina G 9
Diagrama en bloques de un
Procesador
Microcontroladores: Ing. Víctor Medina G 10
Microprocesador vs Microcontrolador
Microcontroladores: Ing. Víctor Medina G 11
Arquitectura de fabricación de uP y uC
Microcontroladores: Ing. Víctor Medina G 12
Registros
• Un registro o
una celda de
memoria es un
circuito
electrónico que
puede
memorizar el
estado de un
byte.
Microcontroladores: Ing. Víctor Medina G 13
Registro SFR
• Registros de funciones
especiales, cada bit
configura los circuitos
internos del
microcontroladores que
se conectan a través de
los pines a los
periféricos.
Microcontroladores: Ing. Víctor Medina G 14
PUERTOS DE ENTRADA/SALIDA (E/S)
• Conectan los circuitos internos con los periféricos. Son configurables bit a bit. Carga máxima (10-20mA)
Microcontroladores: Ing. Víctor Medina G 15
UNIDAD DE MEMORIA
• Almacena los datos.
Microcontroladores: Ing. Víctor Medina G 16
UNIDAD CENTRAL DE PROCESAMIENTO
(CENTRAL PROCESSOR UNIT - CPU)
• Decodificador de instrucciones: decodifica las instrucciones del programa y acciona otros circuitos
• Unidad lógica aritmética (Arithmetical Logical Unit - ALU) realiza todas las operaciones matemáticas y lógicas sobre datos
• Acumulador o registro de trabajo.
Microcontroladores: Ing. Víctor Medina G 17
Bus
• El bus está formado por 8, 16 o más cables.
• Dos tipos de buses:
• Bus de direcciones
• Bus de datos.
Microcontroladores: Ing. Víctor Medina G 18
COMUNICACIÓN EN SERIE
• Permite conectar un uC
con un periférico
utilizando un mínimo
número de cables, lo
que permite el alcance
de mayores distancias.
Microcontroladores: Ing. Víctor Medina G 19
VELOCIDAD DE TRANSMISIÓN
SERIAL
• La velocidad de transmisión serial (baud rate) es el
término utilizado para denotar el número de bits
transmitidos por segundo [bps].
• El protocolo normalmente requiere que cada byte se
transmita junto con varios bits de control. Eso quiere
decir que un byte en un flujo de datos serial puede
consistir en 11 bits. Por ejemplo, si velocidad de
transmisión serial es 300 bps un máximo de 37 y un
mínimo de 27 bytes se pueden transmitir por
segundo.
Microcontroladores: Ing. Víctor Medina G 20
Sistemas de comunicación serial
• I2C (INTER INTEGRATED CIRCUIT) - CIRCUITO
INTER-INTEGRADO
• Circuito inter-integrado es un sistema para el
intercambio de datos serial entre los
microcontroladores y los circuitos integrados. Se
utiliza cuando la distancia entre ellos es corta (el
receptor y el transmisor están normalmente en la
misma placa de circuito impreso). La conexión se
establece por medio de dos líneas - una se utiliza
para transmitir los datos, mientras que la otra se
utiliza para la sincronización (la señal de reloj).
Microcontroladores: Ing. Víctor Medina G 21
I2C (INTER INTEGRATED CIRCUIT)
Microcontroladores: Ing. Víctor Medina G 22
SPI (SERIAL PERIPHERAL INTERFACE BUS)
• SPI (SERIAL PERIPHERAL INTERFACE BUS) - BUS SERIAL DE INTERFAZ DE PERIFÉRICOS
• Es un sistema para la comunicación serial que utiliza hasta cuatro líneas (normalmente solo son necesarias tres) - para recibir los datos, para transmitir los datos, para sincronizar y (opcional) para seleccionar el dispositivo con el que se comunica.
• Esto es la conexión full duplex, lo que significa que los datos se envían y se reciben simultáneamente.
• La velocidad de transmisión máxima es mayor que en el sistema de conexión I2C.
Microcontroladores: Ing. Víctor Medina G 23
UART (UNIVERSAL ASYNCHRONOUS
RECEIVER/TRANSMITTER)
• UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER) - TRANSMISOR-RECEPTOR ASÍNCRONO UNIVERSAL
• Este tipo de conexión es asíncrona, lo que significa que no se utiliza una línea especial para transmitir la señal de reloj.
• Tanto el receptor como el transmisor reciben y envían los datos a velocidad misma que ha sido predefinida para mantener la sincronización necesaria. Esto es una manera simple de transmitir datos puesto que básicamente representa una conversión de datos de 8 bits de paralelo a serial. La velocidad de transmisión no es alta, es hasta 1 Mbit/sec.
Microcontroladores: Ing. Víctor Medina G 24
OSCILADOR
• Se configura
normalmente de tal
manera que utilice un
cristal de cuarzo o
resonador cerámico para
estabilización de
frecuencia. Además,
puede funcionar como
un circuito autónomo
(como oscilador RC).
Microcontroladores: Ing. Víctor Medina G 25
CIRCUITO DE ALIMENTACIÓN
• Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el voltaje de la fuente de alimentación salga de unos márgenes debido al ruido eléctrico. Como el microcontrolador dispone de varios circuitos que funcionan a niveles de voltaje diferentes, ese estado puede causar un comportamiento descontrolado. Para evitarlo, el microcontrolador normalmente tiene un circuito incorporado para el brown out reset.
• El pin de reset (reinicio), marcado frecuentemente con MCLR (Master Clear Reset), sirve para el reinicio externo del microcontrolador al aplicar un cero (0) o un uno (1) lógico dependiendo del tipo del microcontrolador. En caso de que el circuito brown out no esté incorporado, un simple circuito externo para el brown out reset se puede conectar al pin MCLR.
Microcontroladores: Ing. Víctor Medina G 26
TEMPORIZADORES/CONTADORES
• Son circuitos que sirven
medir el tiempo
transcurrido entre dos
eventos, basados en
contar los pulsos
generados por el
oscilador principal que
es un cristal de cuarzo
Microcontroladores: Ing. Víctor Medina G 27
¿CÓMO FUNCIONAN LOS TEMPORIZADORES?
• Los pulsos generados por el oscilador de cuarzo son
llevados al circuito una vez por cada ciclo de máquina
directamente o por el pre-escalador, lo que aumenta
el número en el registro del temporizador.
Microcontroladores: Ing. Víctor Medina G 28
UTILIZAR UN PREESCALADOR EN EL
FUNCIONAMIENTO DEL TEMPORIZADOR
• Un pre-escalador es un dispositivo electrónico
utilizado para dividir la frecuencia por un factor
predeterminado. Esto quiere decir que se necesita
llevar 1, 2, 4 o más pulsos a su entrada para generar
un pulso a la salida.
Microcontroladores: Ing. Víctor Medina G 29
UTILIZAR UNA INTERRUPCIÓN EN EL
FUNCIONAMIENTO DEL TEMPORIZADOR
• Si el registro del temporizador es de 8 bits, el mayor número que se puede escribir en él es 255. Si se excede este número, el temporizador se reinicia automáticamente y el conteo comienza de nuevo en cero. Esto es denominado desbordamiento o sobreflujo (overflow).
Microcontroladores: Ing. Víctor Medina G 30
TEMPORIZADOR PERRO GUARDIÁN
(WATCHDOG)
• El perro guardián es un temporizador conectado a un oscilador RC completamente independiente dentro del microcontrolador.
• Si el perro guardián está habilitado, cada vez que cuenta hasta el máximo valor en el que ocurre el desbordamiento del registro se genera una señal de reinicio del microcontrolador y la ejecución de programa inicia en la primera instrucción.
Microcontroladores: Ing. Víctor Medina G 31
CONVERTIDOR A/D
•Un convertidor analógico-digital es un
circuito electrónico encargado de
convertir las señales continuas en
números digitales discretos. En otras
palabras, este circuito convierte un
número real en un número binario y se
lo envía a la CPU para ser procesado.
Microcontroladores: Ing. Víctor Medina G 32
Codificación analógica a digital
Microcontroladores: Ing. Víctor Medina G 33
CONVERTIDOR A/D
• Resolución depende
del número de BITS.
• A mayor número de
BITS, menor error.
Microcontroladores: Ing. Víctor Medina G 34
Microcontrolador PIC628A
• PIC: Peripheral Interface Controller.
• PIC16F628A soportan hasta
100000 ciclos de escritura en
memoria FLASH y 1000000 ciclos
en EEPROM
• Oscilador interno RC de 4MHz
• MCLR programable
35 Microcontroladores: Ing. Víctor Medina G
Microcontrolador PIC628A
36 Microcontroladores: Ing. Víctor Medina G
Arquitectura PIC628A • Procesador arquitectura HARVARD.
• Dos bloques de memorias independientes
• CPU arquitectura RISC
• Set de 35 instrucciones
• Pila de 8 niveles.
37 Microcontroladores: Ing. Víctor Medina G
A
r
q
u
i
t
e
c
t
u
r
a
P
I
C
6
2
8
A
38 Microcontroladores: Ing. Víctor Medina G
Memoria de programa • Memoria de instrucciones,
se escribe órdenes para que CPU ejecute.
• En PIC16F628A es una memoria no volátil FLASH
• Bus de direcciones es 13 bits.
• PC puede direccionar 8192 posiciones de 14 bits cada una(0000h a 1FFFh)
• Implementadas en PIC16F628A sólo 2048 líneas 0000h – 07FFh, PC utiliza 11 primeros bits los demás son ignorados
39 Microcontroladores: Ing. Víctor Medina G
Memoria de datos
• PIC16F628A tiene dos memorias de datos: RAM
estática o SRAM, memoria casual tipo no volátil:
registros de propósito general (GPR), donde
almacena variable y registros especiales (SFR).
• Memoria auxiliar no volátil EEPROM con capacidad
de 128 posiciones de 8 bits, puede ser accedida por
programación, almacena datos aún sin
alimentación.
40 Microcontroladores: Ing. Víctor Medina G
Memoria de
datos
41 Microcontroladores: Ing. Víctor Medina G
Memoria de datos • Tecnología CMOS, consumo de potencia es bajo
(2mA a 4MHz)
• Estático , si reloj se detiene los datos no se pierden, mientras se encuentre con VDD.
• Memoria RAM tiene 512 líneas de 8 bits, particionada en 4 bancos: 0,1,2,3 cada una con 128 bytes.
• Se accede por bits RP0 y RP1 de registro STATUS.
• Para 16F628A se tiene 224 posiciones RAM para los registros GPR
42 Microcontroladores: Ing. Víctor Medina G
Características Generales • Velocidad operación hasta 20MHz con oscilador
externo
• Oscilador interno RC de 4MHz.
• 8 niveles de pila.
• Resistencias PULL-UP programables.
• MCLR programable
• 15 pines I/O y 1 de sólo entrada (RA5)
• WDT independiente de oscilador
• Programación bajo voltaje LPV (5V)
• Programación serial en circuito (ICSP) por 2 pines: RB6 reloj y RB7 datos
43 Microcontroladores: Ing. Víctor Medina G
Características Generales • Código de protección programable
• Memoria FLASH 2048 palabras de 14 bits
• 2 circuitos comparadores análogos con entradas multiplexadas.
• 3 timers: Timer 0 de 8 bits, Timer 1 de 16 bits y Timer 2 de 8 bits.
• Módulos CCP, captura compara 16 bits y PWM de 10 bits.
• 10 fuentes de interrupción.
• Módulo de comunicación serial USART/SCI
• Capacidad de corriente 25mA I/O por cada pin.
44 Microcontroladores: Ing. Víctor Medina G
Diagrama de pines
45 Microcontroladores: Ing. Víctor Medina G
Conexión entre microcontroladores y
periféricos
• Los procesos industriales se basan en secuencia de acciones ejecutadas en base a una programación considerando todos los factores que intervienen en la línea de producción
Microcontroladores: Ing. Víctor Medina G 46
Secuencia de acciones
• Proceso lógico de
acciones en actuadores.
• Programación de
instrucciones en
microcontrolador.
Microcontroladores: Ing. Víctor Medina G 47
Acondicionamiento de señales
• El control de procesos depende de la obtención
de información de entrada, su evaluación y la
ejecución de la acción correspondiente.
• En control industrial, la mayoría de las veces la
información de entrada involucra el monitoreo de
dispositivos de campo que admiten dos estados
posibles.
• Un interruptor es un ejemplo común de dispositivo
de dos estados.
• O está abierto o está cerrado.
Microcontroladores: Ing. Víctor Medina G 48
Acondicionamiento de señales
• Interruptores: activan o
desactivan señales de
entrada
Microcontroladores: Ing. Víctor Medina G 49
Conexión eléctrica de interruptores
• Conectados directamente a los puertos
• Se recomienda proceso anti rebote
Microcontroladores: Ing. Víctor Medina G 50
Acondicionamiento señales digitales
Microcontroladores: Ing. Víctor Medina G 51
Interruptor reflectivo
• Las señales
ingresan por
cortes de
luminosidad en
receptor
Microcontroladores: Ing. Víctor Medina G 52
Acondicionamiento de señales a
cargas
• Microcontroladores se conectan a cargas eléctricas mayores mediante dispositivos actuadores, cumpliendo secuencias, considerando retardos debido a inercias mecánicas, retardos en activaciones, etc
Microcontroladores: Ing. Víctor Medina G 53
Acondicionamiento de señales a
cargas
Microcontroladores: Ing. Víctor Medina G 54
Acondicionamiento salidas digitales
Microcontroladores: Ing. Víctor Medina G 55
Control de procesos continuos
• Circuitos retroalimentados, la salida se compara con la
entrada.
Microcontroladores: Ing. Víctor Medina G 56
Sensores de temperatura
• Transductores:
convierten señales
físicas en señales
eléctricas.
• Sensores: miden
señales sin convertirlas
en otra magnitudes,
contienen a los
transductores
Microcontroladores: Ing. Víctor Medina G 57
Sistemas continuos = retroalimentados
Microcontroladores: Ing. Víctor Medina G 58
Control sistemas continuos con PIC
Microcontroladores: Ing. Víctor Medina G 59
Programación
de uC PIC
60 Microcontroladores: Ing. Víctor Medina G
Ejecución de programas en uC • El uC ejecuta el programa
cargado en la memoria Flash, se denomina el código ejecutable.
• El código binario está compuesto por palabras de 12, 14 o 16 bits de anchura, que se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento. Se les denominan Conjunto de instrucciones.
• El código ejecutable se representa con números hexadecimales denominada código Hex.
• En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, tiene 35 instrucciones diferentes.
Microcontroladores: Ing. Víctor Medina G 61
Lenguaje ensamblador (ASSEMBLER)
• Las instrucciones
consisten en abreviaturas
con significado y a cada
instrucción corresponde
una localidad de memoria.
Un programa denominado
ensamblador compila
(traduce) las instrucciones
del lenguaje ensamblador
a código máquina (código
binario).
Microcontroladores: Ing. Víctor Medina G 62
Desventajas de ASSEMBLER • Una sola operación en ensamblador consiste en
muchas instrucciones, haciéndolo muy largo y
difícil de manejar.
• Cada tipo de microcontrolador tiene su propio
conjunto de instrucciones.
• Un programador tiene que conocer el hardware
del microcontrolador para escribir un programa.
Microcontroladores: Ing. Víctor Medina G 63
ESTRUCTURA DE PROGRAMA • Por ejemplo:
1. Activar y configurar el
convertidor A/D
incorporado;
2. Medir el valor
analógico;
3. Calcular temperatura;
y
4. Enviar los datos en el
formato apropiado al
LCD.
Microcontroladores: Ing. Víctor Medina G 64
FASES DE COMPILACIÓN
Microcontroladores: Ing. Víctor Medina G 65
Fases de Programación de uC
• Realizada la compilación y generado el archivo HEX, a
través de un programador: PICKIT 2 o genéricos, se
carga el archivo en memoria FLASH del uC
Microcontroladores: Ing. Víctor Medina G 66
Lenguajes de Programación en PIC
• El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como sobre los bits (operaciones lógicas, desplazamiento etc.).
• C está estandarizado (el estándar ANSI)
Microcontroladores: Ing. Víctor Medina G 67
ESTRUCTURA DE PROGRAMA EN C
Microcontroladores: Ing. Víctor Medina G 68
ESTRUCTURA DE PROGRAMA EN
PICBASIC • Se manipulan sentencias de lenguaje BASIC,
manteniendo la estructura básica de un programa
Microcontroladores: Ing. Víctor Medina G 69
ESTRUCTURA DE PROGRAMA EN
MODO GRÁFICO
• Permite programar
microcontroladores
mediante diagramas de
flujo, que se traducen en
código C o ASSEMBLER
Microcontroladores: Ing. Víctor Medina G 70
Lógica de Programación mediante
Flujo gramas
Microcontroladores: Ing. Víctor Medina G 71