Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Usos del PICF877A Configuración y Programación como SPI Módulo CCP Programación como SPI ¿Qué es SPI? Configuración del mismo en el PIC ¿Qué es la SPI? Esta interfaz desarrollada por Motorola en 1985 se trata de una interfaz serial Síncrona prevista para la comunicación entre dispositivos a corta distancia El uso de la misma radica en sus ventajas: Es una interfaz direccionada e Hardware simple que ofrece completa flexibilidad para la cantidad de bits transferidos Usa un modelo maestro-esclavo con un maestro simple y puede manejar múltiples dispositivos secundarios usando comunicaciones dúplex que operan a velocidades de reloj de hasta 50MHz SPI SPI usa un máximo de 4 líneas de señal El dispositivo maestro suministra y controla el reloj (SCK) y líneas de selección de chip (CS) La operación multiplexor completa se maneja a través de las líneas de datos Master Out Slave In (MOSI) y Master In Slave Out (MISO) Los datos salen a través de la señal de reloj de tal forma que la transferencia de datos se asemeja a un registro de turnos con un bit cambiado para cada reloj SPI SPI SPI con el PIC16F877 El modo de comunicación Serial SPI, permite el envío y recepción simultánea de 8 bit Existen cuatro modos de configuración que dependen de la polaridad y fase del reloj (CKP y CKE), los cuatro modos son soportados por el PIC 16F877 Para la comunicación se requieren 3 Pines SDO (Serial Data Out) – RC5 SDI (Serial Data In) – RC4 SCK (Serial Clock) – RC3 Adicionalmente para la operación en modo de Esclavo, se usa la terminal Slave Select (SS’) – RA5 SPI con el PIC16F877 Los Registros que se usan son: SSPCON1 – Control Register SSPSTAT – Status Register SSPBUF – Buffer Register SSPSR – Shift Register (no esta implementado físicamente pero se puede direccionar) Conexión Típica SPI Programa Ejemplo: /* * File: PIC_SPI.c * Author: Aswinth * * Created on 15 May, 2018, 1:46 PM */ // CONFIG #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled) #pragma config LVP = OFF // Low-Voltage In-Circuit Serial Programming Enable bit #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit #pragma config WRT = OFF // Flash Program Memory Write Enable bits #pragma config CP = OFF // Flash Program Memory Code Protection bit #include <xc.h> #include "PIC16F877a_SPI.h" #define _XTAL_FREQ 20000000 void main() { SPI_Initialize_Master(); while(1) { SPI_Write(0X0A); __delay_ms(100); SPI_Write(0X0F); __delay_ms(100); SPI_Write(0X15); __delay_ms(100); } } Modulo CCP ¿Qué es un Modulo CCP? CCP en PIC16F87 Módulos CCP Los Módulos Captura/Comparación/PWM Es un periférico que le permite medir y controlar diferentes eventos; el modo de captura proporciona el acceso al estado actual de un registro que cambia su valor constantemente En este caso, el registro de temporizador del Timer1 El modo de comparación compara constantemente calores de dos registros. Uno de ellos es el registro del temporizador Timer1 Módulo CCP Este circuito también le permite al usuario activar un evento externo después de que haya expirado una cantidad de tiempo predeterminada Los tipo PIC16F8XX tienen dos módulos, CCP1 y CCP2 Ambos son idénticos en modo normal de funcionamiento, mientras que las características del PWM mejorado están disponibles sólo en el CCP1 MÓDULOS EN EL PIC Tienen un funcionamiento idéntico de funcionamiento Registro de captura de 16 bits Registro de Comparación de 16 bits Registro de Trabajo PWM MÓDULO CCP1 Consta de dos registros de 8 bits: CCPR1H y CCPR1L Registro de control: CCP1CON Acción Especial: Generada mediante una Comparación Resetea Timer1 MÓDULO CCP2 Consta de dos registros de 8 bits: CCPR2H y CCPR2L Registro de control: CCP2CON Acción Especial: Generada mediane una comparación, Resetea Timer1, Lanza una Conversión A/D Ejemplo
Compartir