mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS...

58
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 1 MICROCONTROLADORES PIC Microcontroladores PIC

Transcript of mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS...

Page 1: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 1

MICROCONTROLADORES PIC

Microcontroladores PIC

Page 2: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 2

MICROCONTROLADORES PIC

Características generales:• Arquitectura Harvard, procesador segmentado.• Compatibilidad software entre los modelos de la misma gama.• Sencillez de uso y herramientas de desarrollo sencillas y baratas.• Código compacto y rápido.• Poco consumo y amplio rango de voltajes de alimentación.• Pequeño tamaño y gran variedad de encapsulados.• precio

Page 3: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3

MICROCONTROLADORES PIC

Tipos de PIC

PIC de gama básica (16C5XX):• Datos de 8 bits.• Instrucciones de 12 bits.• 33 instrucciones.• Sin interrupciones• Pila de dos niveles• Alimentación desde 2,5 v.• Ejemplos:

Page 4: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 4

MICROCONTROLADORES PIC

Tipos de PIC

PIC de gama media (16C(F)XXX):• Datos de 8 bits.• Instrucciones de 14 bits.• 35 instrucciones.• Interrupciones• Pila de 8 niveles (anidamiento de subrutinas)• Gran variedad de periféricos: Timers, ADC, USART, LCD, Comparadores, etc.• Ejemplos:

Page 5: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 5

MICROCONTROLADORES PIC

Tipos de PIC

PIC miniatura (12C(F)XXX):• Datos de 8 bits.• Instrucciones de 14/12 bits.• 35/33 instrucciones.• 8 pines y hasta 6 líneas de E/S.• Consumo menor de 2 mA a 5v y 4 Mhz.• Ejemplos:

Page 6: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 6

MICROCONTROLADORES PIC

Tipos de PIC

PIC de gama alta (17CXXX):• Datos de 8 bits.• Instrucciones de 16 bits.• 58 instrucciones.• Potente sistema de gestión de interrupciones vectorizadas.• Arquitectura abierta (bus de datos y direcciones disponibles: como en un µP)• Gran variedad de periféricos: como en gama media, más un multiplicador HW de gran velocidad.• Ejemplos:

Page 7: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 7

MICROCONTROLADORES PIC

Tipos de PIC

PIC de gama mejorada (18C(F)XXX):• Datos de 8 bits.• Instrucciones de 16 bits.• 77 instrucciones (multiplicación de 8x8 en un ciclo).• Alta velocidad (hasta 40 Mhz) y alto rendimiento (10 MIPS)• Arquitectura orientada al lenguaje C.• Potentes herramientas de emulación.• Ejemplos:

Page 8: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 8

MICROCONTROLADORES PICPIC de gama media

ArquitecturaArquitectura Harvard:

• Memoria de programa y memoria de datos separadas, con buses distintos• Mayor ancho de banda que en la arquitectura Von Neuman donde el bus para datos e instrucciones es único.• Gracias a un bus exclusivo para la memoria de programa se optimizan las instrucciones a la arquitectura.• Todos los códigos de operación son de 14 bits, con un único acceso a memoria para cada instrucción, frente a la estructura multi-byte de algunas instrucciones en arquitectura Von Neuman.

Page 9: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 9

MICROCONTROLADORES PICPIC de gama media

ArquitecturaEjecución segmentada:

• Pipeline de dos estados: solapamiento de la fase de búsqueda y ejecución de la instrucción.• Mientras de ejecuta una instrucción se busca el código de operación de la siguiente.

Ortogonalidad• Las instrucciones pueden realizar cualquier operación sobre cualquier registro, usando cualquier modo de direccionamiento

Juego de instrucciones reducido:• 35 instrucciones que se ejecutan en un solo ciclo, ssalvo las de salto.

Arquitectura en banco de registros:• Todos los registros especiales incluido el contador de programa, los puertos, temporizadores, etc. están mapeados en memoria.• A los registros/memoria se puede acceder con direccionamiento directo o indirecto.

Page 10: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 10

MICROCONTROLADORES PICPIC de gama media

ArquitecturaCaracterísticas especiales• Código de protección

• El contenido de la memoria de programase puede proteger contra lectura.• Existen posiciones de memoria reservadas para incluir números de serie o códigos de identificación.

• Power-on Reset (POR)• Autoreset al conectarles la alimentación.

• Lógica Brown-out (BOR)• Reset del µC si la alimentación desciende por debajo de un determinado valor.

•Watchdog Timer (perro guardián)• Temporizador que resetea la MCU si no se actualiza en un tiempodeterminado. Evita ‘cuelgues’.

• Modo de bajo consumo• Mediante la instrucción SLEEP se para el funcionamiento de la CPU reduciendo drásticamente el consumo.

• Oscilador RC interno.• In-Circuit Serial Programming (ICSP)

• Posibilidad de programación del circuito en la aplicación final utilizando un protocolo serie sobre dos líneas de E/S del µC.

Page 11: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 11

MICROCONTROLADORES PICPIC de gama media

Arquitectura

Page 12: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 12

MICROCONTROLADORES PICPIC de gama media

Arquitectura

2. No todos los dispositivos incluyen esta característica

Page 13: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 13

MICROCONTROLADORES PICPIC de gama media

Arquitectura

3. Muchos de los pines de E/S de propósito general están multiplexados con uno más módulos periféricos

Page 14: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 14

MICROCONTROLADORES PICPIC de gama media

ArquitecturaEsquema de reloj/ciclo de instrucción:Cuatro ciclos de reloj -> ciclo de instrucción

Se incrementael contador de

programa

La nueva instrucción se almacena en el registro de

instrucción

Decodificación y ejecución de la instrucción

Page 15: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 15

MICROCONTROLADORES PICPIC de gama media

ArquitecturaEjemplo de ejecución:

• Hasta Tcy3 en cada ciclo se ejecuta una instrucción.• Al acabar de ejecutarse la tercera instrucción la CPU almacena la dirección de la cuarta instrucción en la pila e introduce la dirección de SUB_1 en el PC, aunque la búsqueda de la fase de búsqueda cuarta de la cuarta instrucción ya se ha completado.• Durante Tcy4 la ejecución de la cuarta instrucción se ignora (ejecutando un NOP) y se busca el código de operación correspondiente a la dirección SUB_1.• Todas las instrucciones se realizan en un ciclo de instrucción salvo las de salto que lo hacen en dos.

Page 16: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 16

MICROCONTROLADORES PIC

PIC de gama media

Page 17: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 17

MICROCONTROLADORES PICPIC de gama media

ALUUnidad Aritmético lógica:

• Longitud de palabra: 8 bits.• Operaciones de suma, resta , desplazamiento y lógicas.• Operaciones aritméticas en complemento a dos.• Los acarreos (C), acarreo decimal (DC) y resultado cero (Z), se reflejan en el registro STATUS

Page 18: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 18

MICROCONTROLADORES PICPIC de gama media

InstruccionesExisten tres tipos de instrucciones:

•Instrucciones de operación de bytes en registros•Instrucciones de manipulación de bits de registros•Instrucciones de control y operación con literales

Page 19: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 19

MICROCONTROLADORES PICPIC de gama media

Instrucciones

Page 20: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 20

MICROCONTROLADORES PICPIC de gama media

Instrucciones

Page 21: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 21

MICROCONTROLADORES PICPIC de gama media

Reg. STATUSRegistro STATUS:

•Indica el estado de las operaciones aritméticas de la ALU•Indica el estado el estado del RESET•Controla la selección de bancos en la memoria de datos

Bit7 IRP: bit de selección de banco de registros usado en direccionamiento indirecto.1 = Bank 2, 3 (100h - 1FFh) 0 = Bank 0, 1 (00h - FFh) Para circuitos con Banco 0 y Banco 1 este bit esta reservado y siempre esta cero

Bit 6:5 RP1:RP0: bit de selección de banco de registros usado en direccionamiento directo.11 = Banco 3 (180h - 1FFh) 10 = Banco 2 (100h - 17Fh) 01 = Banco 1 (80h - FFh) 00 = Banco 0 (00h - 7Fh) Cada banco es de 128 bytes.

Bit 4 TO’: bit Time-out.1 = Después del encendido, de la instrucciones CLRWDT o SLEEP.0 = Time-out del WDT.

Page 22: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 22

MICROCONTROLADORES PICPIC de gama media

Reg. STATUS

Bit 3 PD’: bit power-down1 = Después del encendido o por la instrucción CLRWDT 0 = Por la ejecución de la instrucción SLEEP.

Bit 2 Z: bit cero 1 = El resultado de una operación aritmética o lógica es cero. 0 = El resultado de una operación aritmética o lógica no es cero

Bit 1, DC: bit Digit carry/borrow’ (instrucciones ADDWF, ADDLW, SUBLW, SUBWF) 1 = El cuarto bit de menor peso del resultado produce acarreo0 = El cuarto bit de menor peso del resultado no produce acarreo

Bit 0, C: bit Carry/borrow’ (instrucciones ADDWF, ADDLW,SUBLW,SUBWF)1 = El resultado produce acarreo0 = El resultado no produce acarreo

Page 23: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 23

MICROCONTROLADORES PICPIC de gama media

Organización de la MemoriaMEMORIA DE PROGRAMA

• Máximo espacio de memoria 8K palabras (13 bits de bus de direcciones)• Cuatro páginas de 2K cada una• El byte de menor peso del contador de programa: PCL es accesible por el usuario en lectura y escritura a través de un registro del mismo nombre.• Los 5 bits de mayor peso del PC (PCH) son accesibles a través de PCLATCH<4:0>• Un RESET pone a cero el registro PCLATCH• Acceso a las páginas mediante PCLATCH <4:3>• Vector de reset en 0000h• Vector de interrupción en 0004h

Page 24: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 24

MICROCONTROLADORES PICPIC de gama media

Organización de la MemoriaCONTADOR DE PROGRAMA

Instrucción con PCL como destino

Instrucción GOTO

Page 25: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 25

MICROCONTROLADORES PICPIC de gama media

Organización de la MemoriaCONTADOR DE PROGRAMA

Instrucción CALL

Instrucción RETURN, RETFIE o RETLW

Page 26: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 26

MICROCONTROLADORES PICPIC de gama media

Organización de la Memoria

PILA (STACK):• Tiene 8 niveles.• Se guarda el contenido del PC con la instrucción CALL o cuando se produce una interrupción.• No existen instrucciones del tipo PUSH o POP.• Tiene estructura ‘circular’:

Page 27: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 27

MICROCONTROLADORES PICPIC de gama media

Organización de la MemoriaMEMORIA DE DATOS dividida en dos áreas:

• Registros de funciones especiales (SFR, Special Function Registers)– Controlan la operación de la CPU y los periféricos.– Se implementan como RAM estática– Se inicializan a un valor por defecto después de la alimentación del µC.

• Registros de propósito general (GPR, General Purpose Registers)– Almacenamiento de datos.– No se inicializan a un valor por defecto después de la alimentación.

• La transferencia entre registros ha de hacerse a través del registro W.• Estructura en bancos de 128 bits accesibles mediante STATUS<7:5>• Acceso directo (bits RP1:RP0) o indirecto (bit IRP y registro FSR) a la información.

Page 28: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 28

MICROCONTROLADORES PICPIC de gama media

Organización de la Memoria

MEMORIA DE DATOS: Acceso a bancos:

Direccionamientodirecto:

Page 29: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 29

MICROCONTROLADORES PICPIC de gama media

Organización de la MemoriaMEMORIA DE DATOS:

Direccionamiento indirecto: Se utiliza como operando el registro INDF que en realidad no está implementado físicamente

El siguiente código pone a cero las posiciones de memoria comprendidas entre las direcciones 20h y 2Fh

Page 30: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 30

MICROCONTROLADORES PICPIC de gama media

Organización de la Memoria

Distribución de las áreas de registros SFR Y GPR en cada banco de memoria

Page 31: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 31

MICROCONTROLADORES PICPIC de gama media

Organización de la Memoria

Distribución de las áreas de registros SFR Y GPR en cada banco de memoria para dispositivos de 18 patillas.

Page 32: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 32

MICROCONTROLADORES PICINTERRUPCIONES

• Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento que provoca la interrupción. • El vector de interrupción se encuentra en la dirección 04H de la memoria de programa.• Al terminar la rutina de servicio (RETFIE) se retoma el programa en el ‘punto de ruptura’.• Fuentes de interrupción:

• Pin INT, cambio en los terminales del puerto B (RB7:RB4).• Overflow en los temporizadores.• Cambio en el comparador.• Fin de escritura en la memoria EEPROM de datos.• Relacionadas con el Puerto Paralelo Esclavo, con la USART, con el fin de conversión A/D y en general con los módulos periféricos con que puede contar una MCU.

• Gestión de interrupciones mediante registros:• INTCON: registro general de control y estado.• En función de los periféricos disponibles por una MCU:

•PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada periférico.• PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el periférico que interrumpe.

Page 33: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 33

MICROCONTROLADORES PIC

INTERRUPCIONESREGISTRO INTCON

Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones1 = Habilita las interrupciones.0 = Inhibe todas las interrupciones.

Se pone a cero cuando se reconoce una interrupción (para evitar interrupciones anidadas) y a 1 cuando se vuelve de su rutina de servicio.

Bit 6 PEIE: (Peripheral Interrupt Enable) bit de habilitación de interrupciones de periféricos.1 = Habilita las interrupciones desde los periféricos.0 = Inhibe las interrupciones desde los periféricos.

(3) En MCU con un solo periférico puede ser EEIE o ADIE

Bit 5 T0IE: (Timer 0 Overflow Interrupt Enable) bit de habilitación del Timer 0.1 = Habilita la interrupción con el desbordamiento del Timer 0.0 = Inhibe la interrupción con el desbordamiento del Timer 0.

Bit 4 INTE: (INT External Interrupt Enable) bit de habilitación de interrupción desde el pin de entrada INT.1 = Habilita la interrupción.0 = Inhibe la interrupción.

(2) Algunas MCU no disponen de esta característica

Page 34: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 34

MICROCONTROLADORES PIC

INTERRUPCIONESREGISTRO INTCON

Bit 3 RBIE: (RB Port Change Interrupt Enable) bit de habilitación de interrupción con el cambio de RB7:RB4

1 = Habilita la interrupción.0 = Inhibe las interrupción.

(2) Algunas MCU no disponen de esta característica(1) También se puede encontrar con el nombre GPIE.

Bit 2 T0IF: (Timer 0 Overflow Interrupt Flag).1 = Interrupción producida por el desbordamiento del Timer 0 (debe ser puesto a cero por SW).0 = El Timer 0 no se ha desbordado.

Bit 1 INTF: (INT External Interrupt Flag).1 = Interrupción producida por INT (debe ser puesto a cero por SW).0 = INT no ha interrumpido la MCU.

(2) Algunas MCU no disponen de esta característica

Bit 0 RBIF: (RB Port Change Interrupt Flag).1 = Interrupción producida por el cambio en alguno de los bits RB7:RB4 (debe ser puesto a cero por SW).0 = RB7:RB4 no han interrumpido la MCU.

(2) Algunas MCU no disponen de esta característica(1) También se puede encontrar con el nombre GPIF.

Page 35: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 35

MICROCONTROLADORES PIC

INTERRUPCIONESLÓGICA DE INTERRUPCIONES

RegistrosPIR/PIE

RegistroINTCON

Page 36: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 36

MICROCONTROLADORES PIC

INTERRUPCIONES

TIEMPO DE LATENCIAEs el tiempo que transcurre desde que se produce un evento de interrupción hasta que se ejecuta la instrucción de la dirección 04H.

• Interrupciones síncronas (normalmente internas) tiempo de latencia= 3 Tcy.

• Interrupciones asíncronas (normalmente externas) tiempo de latencia= 3-3,75 Tcy.

Page 37: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 37

MICROCONTROLADORES PIC

INTERRUPCIONES

(1) El flag INTF se muestrea cada Q1.(2) El tiempo de latencia comprendido entre 3 y 3,75 Tcy.(3) CLKOUT disponible solo si el oscilador es RC.(4) Anchura mínima de pulso requerida en función de la MCU (para el 16F84A 20ns.)(5) INTF debe ponerse a cero por Sw.

Respuesta a un evento en el pin INT.

Page 38: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 38

MICROCONTROLADORES PIC

INTERRUPCIONES

Fases en la gestión de interrupciones:

1. PC->Pila y GIE=02. PC=0004H3. Se salvan los registros cuyo contenido se desee conservar (W,

STATUS, etc.) ≡ PUSH4. Se determina la fuente de interrupción (interrogando los flags

correspondientes)5. Se ejecuta la rutina de servicio a la interrupción6. Se borra el flag relacionado con la interrupción atendida.7. Se restauran los registros ≡ POP8. Se ejecuta RETFIE9. Pila->PC y GIE=1

Page 39: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 39

MICROCONTROLADORES PIC

INTERRUPCIONES

Salvaguarda de W y el registro STATUS, en un rutina de servicio a una interrupción:

Page 40: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 40

MICROCONTROLADORES PIC

PUERTOS DE E/S

• Se pueden considerar los periféricos más sencillos, implementan las entrada-salida de la MCU.

• Se utilizan mediante dos registros: PORTx (datos) y TRISx (control)• Pueden implementarse hasta siete puertos de características

distintas (x puede sustituirse con identificadores de puerto desde la A hasta la G)

• Cada uno de los bits de TRISx establece la dirección de la información de su correspondiente bit (pin) en PORTx.

• Un 1 configura el pin como entrada. Una operación de lectura obtiene el nivel presente en el terminal implicado.

• Un 0 configura ese pin como salida, manteniendo el bit de salida mediante un latch.

• Después de un reset todos los bits de TRISx son 1.• Los pines de entrada/salida pueden estar multiplexados con varios

periféricos. Para conocer con exactitud las características de cada puerto en concreto es imprescindible. Consultar las hojas de características de cada dispositivo.

Page 41: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 41

MICROCONTROLADORES PIC

PUERTOS DE E/S

Puerto de entrada/salida típico:

Page 42: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 42

MICROCONTROLADORES PIC

PUERTOS DE E/S

Puerto A:• Tiene 6 bits.• RA4 Tiene entrada Trigger Schmitt y salida drenador abierto. • El resto admiten niveles de entrada TTL y salida CMOS.

Diagrama de bloques para RA3:RA0 y RA5.

Page 43: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 43

MICROCONTROLADORES PIC

PUERTOS DE E/SPin RA4:

Ejemplo de inicialización del puerto A

Page 44: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 44

MICROCONTROLADORES PIC

PUERTOS DE E/S

Puerto B:• Puerto de 8 bits bidireccionales

Diagrama de bloquespara RB3:RB0.

Page 45: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 45

MICROCONTROLADORES PIC

PUERTOS DE E/S

Diagrama de bloquespara RB7:RB4.

Page 46: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 46

MICROCONTROLADORES PIC

PUERTOS DE E/S

• La escritura en un puerto implica una lectura-modificación-escritura.• Puede acarrear problemas en operaciones de escritura sobre puertos en los

que unos pines están configurados como entradas y otros como salidas:

Page 47: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 47

MICROCONTROLADORES PIC

PUERTOS DE E/SOperaciones sucesivas sobre un puerto de entrada salida

• Escritura y lectura sobre el puerto B:

A frecuencias de reloj más altas, una escritura seguida por una lectura puede ser problemática debido a la capacidad externa, en esos casos puede ser conveniente utilizar NOP entre esas instrucciones.

Page 48: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 48

MICROCONTROLADORES PIC

PUERTOS DE E/S

Operaciones sucesivas sobre un puerto de entrada salida• Operaciones que implican lectura-modificación escritura:

Page 49: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 49

MICROCONTROLADORES PIC

TIMER 0

Características:• Contador temporizador de 8 bits• Accesible mediante operaciones de lectura y escritura.• Incorpora un prescaler de 8 bits programable por Sw.• Reloj interno o externo.• Selección del flanco del reloj externo• Puede producir una interrupción al debordarse.

Page 50: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 50

MICROCONTROLADORES PIC

TIMER 0REGISTRO OPTION_REG

Bit 7 RBPU’: bit de habilitación de resistencias pull-up1 = Inhibidas0 = habilitadas

Bit 6 INTEDG: bit de selección del flanco activo de la interrupción INT1 = Flanco ascendente0 = Flanco descendete

Bit 5 T0CS: bit de selección de reloj para TMR01 = Transición del pin T0CKI (reloj externo).0 = Reloj interno (CLKOUT).

Bit 4 T0SE: bit de selección de flanco cuando el reloj es externo1 = Flanco de bajada de T0CKI.0 = Flanco de subida de T0CKI

Page 51: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 51

MICROCONTROLADORES PIC

TIMER 0REGISTRO OPTION_REG

Bit3 PSA: bit de asignación del prescaler1 = Prescaler asignado al WDT.0 = Prescaler asignado al TIMER 0.

Bit 2:0 PS2:PS0: Valor de división del prescaler

PS2 TMR0 WDT0 0 0 1:2 1:10 0 1 1:4 1:20 1 0 1:8 1:40 1 1 1:16 1:81 0 0 1:32 1:161 0 1 1:64 1:321 1 0 1:128 1:641 1 1 1:256 1:128

Page 52: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 52

MICROCONTROLADORES PIC

TIMER 0

Escritura en TMR0 (reloj interno, sin prescaler):

Una escritura en TMR0 provoca dos ciclos de instrucción (2Tcy) en los que no se puede volver a escribir en él.

Page 53: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 53

MICROCONTROLADORES PIC

TIMER 0

Escritura en TMR0 (reloj interno, prescaler 1:2):

•Una escritura en TMR0 actualiza el registro e inicializa el prescaler.•El incremento del temporizador 0 (TMR0+prescaler) se inhibe durante dos ciclos de instrucción (2 Tcy), como el prescaler está configurado como divisor por 2, el temporizador 0 no se incrementará durante 4 tiempos de reloj.

Page 54: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 54

MICROCONTROLADORES PIC

TIMER 0

Temporización de la interrupción del timer 0:

Page 55: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 55

MICROCONTROLADORES PIC

TIMER 0

Sincronización con reloj externo:

El reloj/prescaler se muestrea en Q2 y Q4

T0CKI debe se 1 al menos 2TOSC

Page 56: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 56

MICROCONTROLADORES PIC

TIMER 0

Page 57: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 57

MICROCONTROLADORES PIC

TIMER 0

Page 58: mc pic 1 - EIIAB - Plan de Organización Docenteedii.uclm.es/~miniesta/mc_pic_1.pdfSISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES PIC Tipos

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 58

MICROCONTROLADORES PIC

TIMER 0