Logo Studenta

Usos del PICF877A CCP y SPI. Configuración y Programación como SPI Módulo CCP

¡Este material tiene más páginas!

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

Continuar navegando