Monografias.com > Computación > Hardware
Descargar Imprimir Comentar Ver trabajos relacionados

Microcontroladores serie PIC16F87X




Enviado por Pablo Turmero



    Monografias.com

    Características Generales
    Procesador de Arquitectura RISC (Solo 35 instrucciones)
    Instrucciones de un ciclo simple de duración (4 ciclos cristal) excepto los saltos que requieren dos ciclos simples
    Velocidad de operación: 20 MHz
    Memorias FLASH, RAM y EEPROM
    Soporte para hasta 14 fuentes de interrupción
    Watchdog timer (WDT) para lograr modo de operación más seguro
    Protección de código programado (Encriptado)

    Timer o contador de 8 bits con prescalas de 8 bits
    Timer de 16 bits
    Puertos Comparadores/PWM (Multiplexados) [16 bits resolución]
    Convertidor A/D de 10 bits
    SPI (Puerto serial sincrónico para conexión de periféricos esclavos)
    USART (Universal Synchronous Asynchronous Receiver Transmitter) Para comunicación serial con paquetes de 8 o 9 bits
    Puerto paralelo esclavo de 8 bits

    CPU
    Periféricos

    Monografias.com

    Comparación microcontroladores de la misma serie (16F87X)

    Monografias.com

    Arquitectura
    Memoria Programa
    Stack
    Contador Programa
    RAM
    MUX Direcciones
    Registro Instrucciones
    Decodificador de Instrucciones y Unidad de Control
    Unidad “Timing”
    Unidades de:
    Reset
    Inicialización
    Watchdog
    Debugger
    Programación

    Timer 0
    Timer 1
    Timer 2
    ADC
    EEPROM
    CCP 1,2
    SPI
    USART
    Registro FSR
    Registro STATUS
    MUX
    ALU
    Registro
    W
    Puerto Paralelo
    PUERTOS
    Timers

    Monografias.com

    Puertos
    (Gp:) Puerto B
    (Gp:) Puerto D
    (Gp:) Puerto C
    (Gp:) Puerto E
    (Gp:) Puerto A

    Monografias.com

    Puerto A
    Posee 6 bits bi-direccionales
    Se configura en el registro TRISA
    Un 1 configura una entrada, un 0 configura una salida en el pin correspondiente al bit
    El registro de datos de entrada/salida es PORTA
    El pin RA4 es multiplexado con el Timer
    Los pines RA0…RA3 y RA5 son multiplexados con el ADC

    Monografias.com

    Puerto B
    Posee 8 bits bi-direccionales
    Se configura en el registro TRISB
    Un 1 configura una entrada, un 0 configura una salida en el pin correspondiente al bit
    El registro de datos de entrada/salida es PORTB
    Puede activar/desactivar las resistencias internas de Pull Up (Con el bit RBPU del registro OPTION)
    El pull up está normalmente inactivo
    Los pines RB7…RB4 pueden usarse como entradas de interrupción externa por cambio
    Las interrupciones se configuran en el bit RBIF del registro INTCON
    Uso: Teclado hexadecimal con atención de teclas por interrupción

    Monografias.com

    Puerto C
    Posee 8 bits bi-direccionales
    Se configura en el registro TRISC
    Un 1 configura una entrada, un 0 configura una salida en el pin correspondiente al bit
    El registro de datos de entrada/salida es PORTC
    Tiene sus pines de entrada con buffers tipo Schmitt Trigger
    Comparte pines con funciones de conexión serial de periféricos externos (Protocolo I2C para SPI) [RC3:RC4]
    Comparte pines con salidas PWM o entradas de comparadores [RC0:RC2]
    Comparte pines con sistema comunicación serial USART [RC7:RC6]

    Monografias.com

    Puerto D
    Posee 8 bits bi-direccionales
    Se configura en el registro TRISD
    Un 1 configura una entrada, un 0 configura una salida en el pin correspondiente al bit
    El registro de datos de entrada/salida es PORTD
    Tiene sus pines de entrada con buffers tipo Schmitt Trigger
    El bit PSPMODE del registro TRISE permite usar este puerto como puerto de expansión de memoria del microprocesador o para conexión a sistemas multiprocesador como esclavo con transferencias paralelas.

    Monografias.com

    Puerto E
    Posee 3 bits bi-direccionales
    Se configura en el registro TRISE
    Un 1 configura una entrada, un 0 configura una salida en el pin correspondiente al bit
    El registro de datos de entrada/salida es PORTE
    Son entradas Schmitt Trigger
    Sus pines se convierten en señales de control cuando se configura en modo de expansión de memoria o en sistemas multiprocesador con transferencia paralela de datos.

    Monografias.com

    Registro W
    Registro de trabajo
    Recibe los resultados de las operaciones ejecutadas por la ALU
    Puede ser escrito
    Se usa para las transferencias indirectas entre registros y ubicaciones de memoria
    Por ejemplo: Puede usarse para transferir datos a la pila y ejecutar un “Push” o un “Pop”

    Monografias.com

    ALU (Unidad Aritmética-Lógica)
    Ejecuta las operaciones con los operandos de entrada
    Tiene un registro acumulador “W” donde se almacenan los resultados
    El registro W puede realimentar su valor como dato de entrada a la ALU
    Ejecuta operaciones según el código que reciba en las entradas de control.

    Monografias.com

    Registro STATUS
    Ubicado en 03h,83h,103h y 183h
    Resume las condiciones en que se encuentra el microcontrolador
    Bits:
    IRP: Selecciona bancos altos (2 y 3) cuando vale 1 y bancos bajos (1 y 0) cuando vale 0
    RP1 y RP0: Selectores de bancos para acceso directo.
    00: Banco 0
    01: Banco 1
    10: Banco 2
    11: Banco 3
    #TO: Bit de “Time Out”. Se pone en 0 cuando hay un “RESET”
    #PD: Bit de “Power Down”. Se pone en 0 cuando entra en “SLEEP”
    Z: Bandera del Cero. Se pone en 1 si el resulatado de la última operación realizada es un 0.
    DC: Bandera de Acarreo Intermedio. Se pone en 1 si hay un carry de los 4 bits menos segnificativos a los 4 bits más significativos.
    C: Bandera de Acarreo. Se pone en 1 si el resultado de una operación excede la capacidad de 8 bits y requiere de un acarreo.

    Monografias.com

    Registro FSR File Select Register
    Ubicado en 04h, 84h, 104h y 184h
    Se utiliza para construir direcciones indirectas
    Registro de 8 bits
    Se utiliza para hacer barridos de RAM

    Monografias.com

    MUX de direcciones
    Define si a la RAM ingresa la dirección directa o la indirecta
    La dirección directa se lee de la memoria de programa
    La dirección indirecta se construye a partir de condiciones en el registro “FSR”.
    Por ejemplo: Saltos condicionados

    Monografias.com

    RAM: Memoria de Datos
    Memoria destinada para almacenamiento temporal de datos.
    Dividida en 4 bancos seleccionados con los bits RP0 y RP1 del registro “Status”
    Cada banco es de 128 bytes
    Las ubicaciones más bajas son reservadas para registros de control/configuración
    Cada banco se constituye por registros de propósito general. Cada registro es una localidad de memoria de 13 bits
    Cada registro se accesa como dirección de memoria, por ejemplo:
    07F9h es una localidad válida de memoria de datos

    Monografias.com

    STACK
    Capacidad de 8 niveles de almacenamiento de 13 bits cada nivel
    Es parte de la memoria RAM, pero independiente de la memoria de datos y de programa
    No tiene banderas de “Overflow” o “Underflow”
    No existen instrucciones de “Push” o “Pop”
    El contador de programa se ingresa/saca de stack automáticamente cuando se hace un “Call/Return”
    Operación de “Buffer circular”: Si se ingresan 8 datos, se llena el stack, un noveno dato que ingrese desplaza los contenidos de la pila y elimina el primer dato que se ingresó a la pila.

    Monografias.com

    Contador de Programa
    Contador de 13 bits.
    Capacidad de direccionar programas de hasta 8k instrucciones de 14 bits
    La ubicación del vector de RESET (0000h) es el valor del contador de programa cuando la máquina se inicializa
    La ubicación del vector de interrupciones es (0004h) y funciona como índice para cargar el contador de programa con el valor de la localidad de memoria que tiene el código de programa para atender una interrupción.

    Monografias.com

    Memoria de Programa
    Almacena la secuencia de instrucciones que corresponde al programa escrito
    Almacena códigos hexadecimales generados en un archivo *.hex por el compilador o el ensamblador
    Consta de páginas de 2kbytes
    Se ubica en la parte alta de la memoria, después del vector de interrupciones
    En 16F877 y 16F876 se tienen 4 páginas
    En 16F874 y 16F873 se tienen 2 páginas
    Es memoria de tipo FLASH

    Monografias.com

    Registro de Instrucciones
    Registro que almacena la instrucción siguiente a ejecutar tomada de la memoria de programa
    Envía la instrucción a RAM en casos que requieren la modificación de algún registro
    Envía la instrucción a la unidad de decodificación para preparase a ejecutar la siguiente instrucción

    Monografias.com

    Decodificador Instrucciones y Unidad de Control
    Recibe la instrucción siguiente a ejecutar
    Realiza la decodificación del dato recibido al código de operación que debe utilizarse
    El código de operación se aplica a la ALU, unidad de RESET, unidad de WDT, etc según sea la operación

    Monografias.com

    Unidad de “Timing”
    Es la unidad que transforma la señal del cristal en una señal de reloj adecuada para el funcionamiento del sistema
    Incluye divisores de frecuencia para generar señales de reloj de diferentes frecuencias para los timers y otros elementos que requieren señales de reloj como el ADC
    Genera además la señal de RESET externo tomada de un pulsador.

    Monografias.com

    Unidad de Reset e Inicialización
    Contiene las siguientes sub-etapas:
    Contador de inicialización. Hace que el sistema espere cierto tiempo para estabilizarse después de un RESET.
    Contador de inicio del oscilador. Espera a que el oscilador se estabilice luego de un RESET.
    Power On RESET: Genera la señal interna que ejecuta el RESET por inicialización del sistema.
    Watchdog Timer: Si el sistema entra en un ciclo infinito, el contador del WDT ejecuta un RESET después de transcurrido un tiempo considerable
    Debugger: Herramienta de pruebas utilizada por el fabricante.
    Programación: Genera las señales que escriben el programa en la memoria correspondiente.
    RESET por Brown-Out: Genera un RESET que puede controlarse por software para ciertas aplicaciones.

    Monografias.com

    Timers (0 1 2)
    Capacidad de 8 bits
    Lectura y escritura
    Prescala de 8 bits controlada por software
    Reloj interno o externo con selección de flanco
    Interrupción por rebaso activada al cambiar de FFh a 00h

    Registros de datos en TMR0, TMR1 y TMR2
    EL TMR1 es de 16 bits, y usa los registros TMR1L para los 8 bits menos significativos y TMR1H para los más significativos
    El TMR2 se usa como base de tiempo para el PWM
    Los registros de configuración son T0CON, T1CON y T2CON

    Monografias.com

    Convertidor Analógico / Digital
    Convierte con una precisión de 16 bits.
    Guarda los resultados en los registros ADRESH (MSB) y ADRESL (LSB).
    Tiene como registros de control ADCON0 y ADCON1
    Tiene 4 posibles frecuencias de reloj para hacer las conversiones (divisiones de la señal CLK principal del sistema)
    CHS2:CHS0: Bits para selección del canal que se va a convertir desde AN7 hasta AN0
    GO/DONE: Bandera activa cuando hay una conversión en progreso
    ADON: Bit de control para encender/apagar el ADC
    ADFM: Bit para eliminar los 4 bits MSB o LSB.
    Pueden programarse secuencias para muestrear todos los canales de entrada de manera secuencial

    Monografias.com

    USARTUniversal Synchronous/Asynchronous Receiver/Transmitter
    Interfase para comunicación serial SCI.
    Acepta comunicación Full Duplex en asíncrono y Half Duplex en síncrono
    El reloj interesa solo para transmisiones sincrónicas
    Maneja comunicaciones de 9 y 8 bits configurables en registros TXSTA y RCSTA
    Puede habilitarse/deshabilitarse
    Selección de Baud-Rate según fracción de CLK en SPBRG
    Manejo de transmisiones contínuas e interrumpidas
    Control de errores de “Frame” y “Overrun” para solicitud de retransmisiones
    El registro de datos para transmisión es RCREG para recepción y TXREG para envío.

    Monografias.com

    SPISerial Peripheral Interface
    Medio de comunicación con periféricos con 8 bits simultáneos de transmisión serial
    Aplica a periféricos de alta velocidad
    Puede usarse para importar o exportar datos o señales de reloj
    Opera como esclavo o maestro

    Monografias.com

    CCPCapture/Compare/PWM
    Módulo de captura de 16 bits
    Módulo de comparación de 16 bits
    Módulo de salida PWM maestro y esclavo
    Utiliza los registros CCPR1H y CCPR1L
    El modo “Captura” guarda el valor del timer cada vez que ocurre un evento en el pin de entrada RC2
    El modo “Compara” compara el valor del registro CCPR1 con el timer. Cuando son iguales produce un cambio de estado en el pin RC2.
    El modo PWM produce una señal con ciclos de trabajo variables según el dato de 10 bits del registro CCPR1. La señal de salida se ubica en el pin RC2

    Monografias.com

    EEPROM
    Puede habilitarse/deshabilitarse para ser usada como memoria de almacenamiento secundario (Como el disco duro en un PC) o como memoria de programa con el registro EEPGD
    Se configura con los registros EECON1 y EECON2
    Si se usa como memoria de datos, en el registro EEDATA se escriben/leen los datos.
    Requiere de señales de control de flujo de información como EEWR para escritura y EERD para lectura
    Capacidad máxima de 256 bytes

    Monografias.com

    Puerto Paralelo
    Ejecuta transferencias de 8 bits
    Utiliza 3 señales adicionales de control (RD/WR/CS)
    Se activa con el bit PSPIE del registro PIE1
    Usa la bandera PSPIF del registro PIR1 para manejo de interrupción
    Solo tolera la conexión a sistemas multiprocesador como esclavo

    Monografias.com

    Organización de Memoria
    En los PIC existen tres tipos de memoria:
    a- Memoria de Programa
    b- Memoria de Datos
    c- EEPROM data MEM
    Cada bloque tiene una función dentro de la arquitectura

    Monografias.com

    Memoria de programa
    Esquema general:
    -Posee un contador de 13 bits
    -Maneja direccionamiento 8Kx14 ó 4Kx14
    -Vector de reset se ubica en 00H
    -Vector de interrupción ubicado en 04H
    Mapa de memoria

    Monografias.com

    Mapa de memoria 876/877

    Monografias.com

    Memoria para datos
    Particionada en múltiples bancos de registros de propósito general, seleccionados por RP0, RP1.
    Extensión de cada banco: 128 bytes
    Memoria tipo RAM estática
    Los registros permiten la configuración de las características del MCU

    Monografias.com

    Mapa memoria de DatosPIC 16F876/877

    Monografias.com

    Algunos registros importantes
    Los registros de función especial permiten configurar las diferentes posibilidades de operación del sistema:
    STATUS
    OPTION_REG REGISTER
    INTCON REGISTER
    PIE1 REGISTER

    Monografias.com

    Status

    Monografias.com

    OPTION_REG REGISTER

    Monografias.com

    INTCON REGISTER

    Monografias.com

    PIE1 REGISTER

    Monografias.com

    Set de Instrucciones

    Monografias.com

    Conclusiones
    Arquitectura RISC de 35 instrucciones.
    Operaciones de duración igual, excepto saltos.
    Compatible con otras familias de PIC.
    Pila de 8 niveles y 14 fuentes de interrupción.
    Protección de código programable.
    Frecuencia de operación programable.
    Comunicación serie
    ADC´s de 10 bits de Resolución

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter