Você está na página 1de 1

comunicacion spi

Respuesta #1 en: 25 de Mayo de 2009, 02:03:28




Hola el_greg, te recomiendo que veas la datasheet del microcontrolador que elejiste dentro de la
linea microchip (estimo porque pusiste SSPCON ), ahi se explican los pasos para configurar al
periferico en el modo deseado.

Te paso un ejemplo de configuracion que use para comunicar una memoria MMC en modo SPI:

Definicion de puertos
Cdigo
GeSHi (c):
//Definicion de patas de SPI
#define R_MMC_SPI_SDO_IO TRISC5
#define R_MMC_SPI_SDI_IO TRISC4
#define R_MMC_SPI_SCK_IO TRISC3
#define R_MMC_SPI_CS_IO TRISC2
#define R_MMC_SPI_CS RC2

Created by GeSHI 1.0.7.20

Inicializacion de dispositivo
Cdigo
GeSHi (c):
void init(void)
{
SSPCON1=0B00000000;//SPI Master mode, clock = FOSC/4
//SSPCON1=0B00000001;//SPI Master mode, clock = FOSC/16
//SSPCON1=0B00000010;//SPI Master mode, clock = FOSC/64
SMP = CKE = 1;//O los 0 o los dos 1
CKP=1;
SSPEN=1;
SSPIF=0;
SSPIE=1;
//Configuracion de los puertos
R_MMC_SPI_SDI_IO=1;
R_MMC_SPI_SDO_IO=R_MMC_SPI_SCK_IO=0;
R_MMC_SPI_CS_IO=0;R_MMC_SPI_CS=1;
}

Created by GeSHI 1.0.7.20

Atencion de interrupciones (ejemplo simple)
Cdigo
GeSHi (c):
define SPI_INT()\
{\
if (SSPIE && SSPIF)\
{\
SSPIF=0;\
valueIn = SSPBUF;\//Recibo el valor enviado por el esclavo
SSPBUF = ValueOut;\//Envio valor al dispositivo esclavo
}\
}

Você também pode gostar