MICROCONTROLADORES PIC
Microcontroladores PIC
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
1
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
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
2
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:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
3
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:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
4
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:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
5
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:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
6
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:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
7
MICROCONTROLADORES PIC
Arquitectura Harvard:
PIC de gama media Arquitectura
• 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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
8
MICROCONTROLADORES PIC PIC de gama media Arquitectura
Ejecució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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
9
MICROCONTROLADORES PIC
Características especiales
PIC de gama media Arquitectura
• 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 tiempo determinado. 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. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
10
MICROCONTROLADORES PIC PIC de gama media Arquitectura
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
11
MICROCONTROLADORES PIC PIC de gama media Arquitectura
2. No todos los dispositivos incluyen esta característica SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
12
MICROCONTROLADORES PIC PIC 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 SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
13
MICROCONTROLADORES PIC PIC de gama media Arquitectura
Esquema de reloj/ciclo de instrucción: Cuatro ciclos de reloj -> ciclo de instrucción Se incrementa el contador de programa
La nueva instrucción se almacena en el registro de instrucción
Decodificación y ejecución de la instrucción
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
14
MICROCONTROLADORES PIC PIC de gama media Arquitectura
Ejemplo 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. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
15
MICROCONTROLADORES PIC PIC de gama media
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
16
MICROCONTROLADORES PIC
Unidad Aritmético lógica:
PIC de gama media ALU
• 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
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
17
MICROCONTROLADORES PIC Existen tres tipos de instrucciones:
PIC de gama media 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
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
18
MICROCONTROLADORES PIC PIC de gama media Instrucciones
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
19
MICROCONTROLADORES PIC PIC de gama media Instrucciones
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
20
MICROCONTROLADORES PIC PIC de gama media Reg. STATUS
Registro 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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
21
MICROCONTROLADORES PIC PIC de gama media Reg. STATUS
Bit 3 PD’: bit power-down 1 = 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 acarreo 0 = 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 acarreo 0 = El resultado no produce acarreo
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
22
MICROCONTROLADORES PIC MEMORIA DE PROGRAMA
PIC de gama media Organización de la Memoria
• 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
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
23
MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria CONTADOR DE PROGRAMA Instrucción con PCL como destino
Instrucción GOTO
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
24
MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria CONTADOR DE PROGRAMA Instrucción CALL
Instrucción RETURN, RETFIE o RETLW
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
25
MICROCONTROLADORES PIC PIC 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’:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
26
MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria
MEMORIA 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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
27
MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria
MEMORIA DE DATOS: Acceso a bancos:
Direccionamiento directo:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
28
MICROCONTROLADORES PIC
MEMORIA DE DATOS:
PIC de gama media Organización de la Memoria
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 SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
29
MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria
Distribución de las áreas de registros SFR Y GPR en cada banco de memoria
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
30
MICROCONTROLADORES PIC PIC 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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
31
MICROCONTROLADORES PIC INTERRUPCIONES • 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. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
32
MICROCONTROLADORES PIC INTERRUPCIONES REGISTRO INTCON
Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones 1 = 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 SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
33
MICROCONTROLADORES PIC INTERRUPCIONES REGISTRO 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. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
34
MICROCONTROLADORES PIC INTERRUPCIONES
LÓGICA DE INTERRUPCIONES Registros PIR/PIE
Registro INTCON
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
35
MICROCONTROLADORES PIC INTERRUPCIONES
TIEMPO DE LATENCIA Es 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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
36
MICROCONTROLADORES PIC INTERRUPCIONES Respuesta a un evento en el pin INT.
(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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
37
MICROCONTROLADORES PIC INTERRUPCIONES Fases en la gestión de interrupciones: 1. PC->Pila y GIE=0 2. PC=0004H 3. Se salvan los registros cuyo contenido se desee conservar (W, STATUS, etc.) ≡ PUSH 4. Se determina la fuente de interrupción (interrogando los flags correspondientes) 5. Se ejecuta la rutina de servicio a la interrupción 6. Se borra el flag relacionado con la interrupción atendida. 7. Se restauran los registros ≡ POP 8. Se ejecuta RETFIE 9. Pila->PC y GIE=1
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
38
MICROCONTROLADORES PIC INTERRUPCIONES
Salvaguarda de W y el registro STATUS, en un rutina de servicio a una interrupción:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
39
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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
40
MICROCONTROLADORES PIC PUERTOS DE E/S Puerto de entrada/salida típico:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
41
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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
42
MICROCONTROLADORES PIC PUERTOS DE E/S Pin RA4:
Ejemplo de inicialización del puerto A
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
43
MICROCONTROLADORES PIC PUERTOS DE E/S Puerto B: • Puerto de 8 bits bidireccionales Diagrama de bloques para RB3:RB0.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
44
MICROCONTROLADORES PIC PUERTOS DE E/S Diagrama de bloques para RB7:RB4.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
45
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:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
46
MICROCONTROLADORES PIC PUERTOS DE E/S Operaciones 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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
47
MICROCONTROLADORES PIC PUERTOS DE E/S Operaciones sucesivas sobre un puerto de entrada salida • Operaciones que implican lectura-modificación escritura:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
48
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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
49
MICROCONTROLADORES PIC TIMER 0 REGISTRO OPTION_REG
Bit 7 RBPU’: bit de habilitación de resistencias pull-up 1 = Inhibidas 0 = habilitadas Bit 6 INTEDG: bit de selección del flanco activo de la interrupción INT 1 = Flanco ascendente 0 = Flanco descendete Bit 5 T0CS: bit de selección de reloj para TMR0 1 = Transición del pin T0CKI (reloj externo). 0 = Reloj interno (CLKOUT). Bit 4 T0SE: bit de selección de flanco cuando el reloj es externo 1 = Flanco de bajada de T0CKI. 0 = Flanco de subida de T0CKI
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
50
MICROCONTROLADORES PIC TIMER 0 REGISTRO OPTION_REG
Bit3 PSA: bit de asignación del prescaler 1 = Prescaler asignado al WDT. 0 = Prescaler asignado al TIMER 0. Bit 2:0 PS2:PS0: Valor de división del prescaler PS2 000 001 010 011 100 101 110 111
TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256
WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
51
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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
52
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.
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
53
MICROCONTROLADORES PIC TIMER 0 Temporización de la interrupción del timer 0:
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
54
MICROCONTROLADORES PIC TIMER 0 Sincronización con reloj externo:
T0CKI debe se 1 al menos 2TOSC
El reloj/prescaler se muestrea en Q2 y Q4
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
55
MICROCONTROLADORES PIC TIMER 0
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
56
MICROCONTROLADORES PIC TIMER 0
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
57
MICROCONTROLADORES PIC TIMER 0
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO
58