INTERIOR DEL PROCESADOR En esta sección se pretende: Conocer la arquitectura y funcionamiento de los microcontroladores de la familia PIC16X8X La organización de su memoria, y Sus registros de funciones especiales. Curso de Microcontroladores Profr. Felipe Santiago 1 Aspecto externo Curso de Microcontroladores Profr. Felipe Santiago 2 1 Organización interna Curso de Microcontroladores Profr. Felipe Santiago 3 Registro W El registro W es el registro de trabajo para los microcontroladores PIC. Este registro es muy importante para este tipo de arquitecturas, por que siempre será el segundo operando para la ALU. Además de que puede ser registro destino para el resultado. Si se quieren sumar dos localidades de memoria, deberá primeramente pasarse una al registro W, luego se suma la segunda con W. A=A+B W <- B A <- A + W Curso de Microcontroladores Profr. Felipe Santiago 4 2 Memoria de código y muestra de la pila Curso de Microcontroladores Profr. Felipe Santiago 5 Curso de Microcontroladores Profr. Felipe Santiago 6 Memoria de datos, incluye los registros de funciones especiales 3 Registros de funciones especiales Curso de Microcontroladores Profr. Felipe Santiago 7 Registro de ESTADO (03h) Bit 7 : IRP : Bit selector de Banco de registros (utilizado para direccionamiento indirecto) 0 : Banco 0, 1 (00h - FFh) 1 : Banco 2, 3 (100h - 1FFh) IRP debe mantenerse en 0 en el PIC16X8X, ya que sólo tiene dos bancos Bits 6 - 5 : RP1: RP0: Bits selectores de banco (utilizado para direccionamiento directo) 00 : Banco 0 (00h - 7Fh) 01 : Banco 1 (80h - FFh) 10 : Banco 2 (100h - 17Fh) 11 : Banco 3 (180h - 1FFh) Cada banco es de 128 bytes. Para el PIC16X8X, RP1 debe mantenerse en 0 y RP0 define el banco de trabajo Curso de Microcontroladores Profr. Felipe Santiago 8 4 Bit 4 : TO’: Bit de desbordamiento (Time Out) 0 : Si ocurre un desbordamiento del WDT 1 : Después de un RESET o con las instrucciones SLEEP y CLRWDT Bit 3 : PD’: Bits de activación de bajo consumo de potencia 0 :Con la instrucción SLEEP 1 :Después de un RESET o al ejecutar la instrucción CLRWDT Bit 2 : Z : Bandera de indicación de 0 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 de acarreo/llevada’ decimal(para sumas o restas) 1 :Si ha ocurrido un acarreo en el nibble menos significativo 0 : Si se produce una llevada en el nibble menos significativo Bit 0 : C : Bit de acarreo/llevada’ de todo el byte (para sumas o restas) 1 :Si ha ocurrido un acarreo después de una suma 0 : Si se produce una llevada después de una resta Curso de Microcontroladores Profr. Felipe Santiago 9 TIPOS DE OSCILADORES El PIC16F84 puede ser operado en uno de cuatro diferentes modos de oscilación. El usuario puede programar dos bits de configuración (FOSC1 y FOSC0) para seleccionar uno de estos cuatro modos: • • • • LP Cristal del baja potencia XT Cristal resonador HS Cristal Resonador de alta velocidad RC Resistor/Capacitor Curso de Microcontroladores Profr. Felipe Santiago 10 5 CRISTALES Y RESONADORES CERÁMICOS En los modos XT, LP o HS, un cristal o resonador cerámico debe conectarse en las terminales OSC1/CLKIN y OSC2/CLKIN para establecer la oscilación: Selección de Capacitores Resonadores Cerámicos Cristales Curso de Microcontroladores Profr. Felipe Santiago 11 OSCILADOR RC Fosc Rext Cext 625 kHz 10 k 20 pF 80 kHz 10 k 220 pf 80 Hz 10 k 0.1 uF Valores aproximados Es una alternativa de bajo costo, si la temporización no es un factor importante. La frecuencia es una función del voltaje, el valor de un resistor (Rext), de un capacitor (Cext) y la temperatura de operación. La frecuencia puede variar entre dispositivos por variaciones en los procesos de fabricación. El tipo de capacitor afecta la oscilación. Los componente R y C tienen tolerancias externas en sus valores. Curso de Microcontroladores Profr. Felipe Santiago 12 6 RELOJ EXTERNO Se debe usar la configuración HS, XT o LP. Curso de Microcontroladores Profr. Felipe Santiago 13 Captura y Ejecución de instrucciones El reloj de entrada (desde OSC1) es internamente dividido por cuatro para generar cuatro señales cuadradas que no se traslapan, nominalmente : Q1, Q2, Q3 y Q4. El program counter (PC) es incrementado cada Q1, la instrucción es capturada desde la memoria de programa y atrapada en el registro de instrucción en Q4. La instrucción es decodificada y ejecutada durante los siguientes Q1 a Q4. Curso de Microcontroladores Profr. Felipe Santiago 14 7 Flujo de Captura y Ejecución de instrucciones Curso de Microcontroladores Profr. Felipe Santiago 15 Segmentación de instrucciones Un “Ciclo de instrucción” consiste de cuatro ciclos de reloj (Q1, Q2, Q3 and Q4). La captura y ejecución de instrucciones se segmentan de manera que la captura toma lugar en un ciclo y la ejecución en otro ciclo. Por la segementación aparenta que cada instrucción solo requiere de un ciclo de instrucción. Si una instrucción porduce un cambio en el program counter (e.g., GOTO), se necesitarán los dos ciclos para completar la instrucción. Un ciclo de captura inicia cuando el PC es incrementado en 1 en Q1. Y termina cuando la instrucción capturada es atrapada en el “Registro de Instrucción” (IR) en el ciclo Q4. Esta instrucción es decodificada y ejecutada durante los ciclos Q2 y Q3, del siguiente ciclo de máquina. Curso de Microcontroladores Profr. Felipe Santiago 16 8 Segmentación de instrucciones Curso de Microcontroladores Profr. Felipe Santiago 17 Ejemplo : Un PIC16X84 que trabaja con un cristal de 4 MHz ejecuta un programa de 1000 instrucciones, de las cuales el 25 % son saltos. ¿Qué tiempo tarda el microcontrolador en ejecutar el este programa? Curso de Microcontroladores Profr. Felipe Santiago 18 9