71
MICROCONTROLADORES Ing. Víctor Medina G

Microcontroladores ver2.0

Embed Size (px)

DESCRIPTION

Fundamentos de microcontroladores PIC y su programación básica

Citation preview

Page 1: Microcontroladores ver2.0

MICROCONTROLADORES

Ing. Víctor Medina G

Page 2: Microcontroladores ver2.0

¿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

Page 3: Microcontroladores ver2.0

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

Page 4: Microcontroladores ver2.0

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

Page 5: Microcontroladores ver2.0

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

Page 6: Microcontroladores ver2.0

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

Page 7: Microcontroladores ver2.0

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

Page 8: Microcontroladores ver2.0

Arquitectura de microncontroladores

Microcontroladores: Ing. Víctor Medina G 8

Page 9: Microcontroladores ver2.0

Diagrama en bloques de un

Procesador

Microcontroladores: Ing. Víctor Medina G 9

Page 10: Microcontroladores ver2.0

Diagrama en bloques de un

Procesador

Microcontroladores: Ing. Víctor Medina G 10

Page 11: Microcontroladores ver2.0

Microprocesador vs Microcontrolador

Microcontroladores: Ing. Víctor Medina G 11

Page 12: Microcontroladores ver2.0

Arquitectura de fabricación de uP y uC

Microcontroladores: Ing. Víctor Medina G 12

Page 13: Microcontroladores ver2.0

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

Page 14: Microcontroladores ver2.0

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

Page 15: Microcontroladores ver2.0

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

Page 16: Microcontroladores ver2.0

UNIDAD DE MEMORIA

• Almacena los datos.

Microcontroladores: Ing. Víctor Medina G 16

Page 17: Microcontroladores ver2.0

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

Page 18: Microcontroladores ver2.0

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

Page 19: Microcontroladores ver2.0

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

Page 20: Microcontroladores ver2.0

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

Page 21: Microcontroladores ver2.0

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

Page 22: Microcontroladores ver2.0

I2C (INTER INTEGRATED CIRCUIT)

Microcontroladores: Ing. Víctor Medina G 22

Page 23: Microcontroladores ver2.0

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

Page 24: Microcontroladores ver2.0

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

Page 25: Microcontroladores ver2.0

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

Page 26: Microcontroladores ver2.0

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

Page 27: Microcontroladores ver2.0

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

Page 28: Microcontroladores ver2.0

¿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

Page 29: Microcontroladores ver2.0

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

Page 30: Microcontroladores ver2.0

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

Page 31: Microcontroladores ver2.0

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

Page 32: Microcontroladores ver2.0

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

Page 33: Microcontroladores ver2.0

Codificación analógica a digital

Microcontroladores: Ing. Víctor Medina G 33

Page 34: Microcontroladores ver2.0

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

Page 35: Microcontroladores ver2.0

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

Page 36: Microcontroladores ver2.0

Microcontrolador PIC628A

36 Microcontroladores: Ing. Víctor Medina G

Page 37: Microcontroladores ver2.0

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

Page 38: Microcontroladores ver2.0

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

Page 39: Microcontroladores ver2.0

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

Page 40: Microcontroladores ver2.0

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

Page 41: Microcontroladores ver2.0

Memoria de

datos

41 Microcontroladores: Ing. Víctor Medina G

Page 42: Microcontroladores ver2.0

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

Page 43: Microcontroladores ver2.0

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

Page 44: Microcontroladores ver2.0

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

Page 45: Microcontroladores ver2.0

Diagrama de pines

45 Microcontroladores: Ing. Víctor Medina G

Page 46: Microcontroladores ver2.0

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

Page 47: Microcontroladores ver2.0

Secuencia de acciones

• Proceso lógico de

acciones en actuadores.

• Programación de

instrucciones en

microcontrolador.

Microcontroladores: Ing. Víctor Medina G 47

Page 48: Microcontroladores ver2.0

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

Page 49: Microcontroladores ver2.0

Acondicionamiento de señales

• Interruptores: activan o

desactivan señales de

entrada

Microcontroladores: Ing. Víctor Medina G 49

Page 50: Microcontroladores ver2.0

Conexión eléctrica de interruptores

• Conectados directamente a los puertos

• Se recomienda proceso anti rebote

Microcontroladores: Ing. Víctor Medina G 50

Page 51: Microcontroladores ver2.0

Acondicionamiento señales digitales

Microcontroladores: Ing. Víctor Medina G 51

Page 52: Microcontroladores ver2.0

Interruptor reflectivo

• Las señales

ingresan por

cortes de

luminosidad en

receptor

Microcontroladores: Ing. Víctor Medina G 52

Page 53: Microcontroladores ver2.0

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

Page 54: Microcontroladores ver2.0

Acondicionamiento de señales a

cargas

Microcontroladores: Ing. Víctor Medina G 54

Page 55: Microcontroladores ver2.0

Acondicionamiento salidas digitales

Microcontroladores: Ing. Víctor Medina G 55

Page 56: Microcontroladores ver2.0

Control de procesos continuos

• Circuitos retroalimentados, la salida se compara con la

entrada.

Microcontroladores: Ing. Víctor Medina G 56

Page 57: Microcontroladores ver2.0

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

Page 58: Microcontroladores ver2.0

Sistemas continuos = retroalimentados

Microcontroladores: Ing. Víctor Medina G 58

Page 59: Microcontroladores ver2.0

Control sistemas continuos con PIC

Microcontroladores: Ing. Víctor Medina G 59

Page 60: Microcontroladores ver2.0

Programación

de uC PIC

60 Microcontroladores: Ing. Víctor Medina G

Page 61: Microcontroladores ver2.0

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

Page 62: Microcontroladores ver2.0

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

Page 63: Microcontroladores ver2.0

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

Page 64: Microcontroladores ver2.0

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

Page 65: Microcontroladores ver2.0

FASES DE COMPILACIÓN

Microcontroladores: Ing. Víctor Medina G 65

Page 66: Microcontroladores ver2.0

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

Page 67: Microcontroladores ver2.0

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

Page 68: Microcontroladores ver2.0

ESTRUCTURA DE PROGRAMA EN C

Microcontroladores: Ing. Víctor Medina G 68

Page 69: Microcontroladores ver2.0

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

Page 70: Microcontroladores ver2.0

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

Page 71: Microcontroladores ver2.0

Lógica de Programación mediante

Flujo gramas

Microcontroladores: Ing. Víctor Medina G 71