Hola a todos
Hace dias que estoy tratando de poner en marcha el modulo spi de este bicho para comunicarme con una memoria 25LC256, uso C30.
Para manejar la memoria transcribi una libreria que uso cotidianamente en C18 sin problemas, pero me parece que el problema esta en la configuracion del modulo SPI.
Lo que noto es que aunque ponga a masa la entrada SPI siempre leo "unos", y no veo nada en el buffer de recepcion. Cuando transmito puedo ver que los valores van al buffer y luego salen, al menos veo actividad en el osciloscopio, igual para el ck.
bueno pongo algo del codigo a ver si ahi esta el problema, si necesitan algo mas solo pidan.
fuses
/* Device configuration register macros for building the hex file */
_FOSC(CSW_FSCM_OFF & HS); /* XT with 8xPLL oscillator, Failsafe clock off */
_FWDT(WDT_OFF); /* Watchdog timer disabled */
_FBORPOR(PBOR_OFF & MCLR_EN); /* Brown-out reset disabled, MCLR reset enabled */
_FGS(CODE_PROT_OFF); /* Code protect disabled */
// ********** Definicion de pines de control ******************
#define SPI_trisCS TRISFbits.TRISF4
#define SPI_CS PORTFbits.RF4
#define SPI_trisDO TRISFbits.TRISF3
#define SPI_trisDI TRISFbits.TRISF2
#define SPI_trisCK TRISFbits.TRISF6
/* 25Cxxx EEPROM instruction set */
#define SPI_WREN 0x0006 //6 // write enable latch
#define SPI_WRDI 0x0004 //4 // reset the write enable latch
#define SPI_RDSR 0x0005 //5 // read status register
#define SPI_WRSR 0x0001 //1 // write status register
#define SPI_READ 0x0003 //3 // read data from memory
#define SPI_WRITE 0x0002 //2 // write data to memory
Inicializacion del SPI desde el main
SPI_trisCS=0; // CS -> Salida
SPI_trisDO=0; // SDO -> Salida
SPI_trisDI=1; // SDI -> Entrada
SPI_trisCK=0; // SCK -> Salida
SPI_CS = 1;
OpenSPI1(FRAME_ENABLE_OFF & ENABLE_SDO_PIN & SPI_MODE16_OFF& SPI_SMP_OFF & SPI_CKE_ON & CLK_POL_ACTIVE_HIGH & MASTER_ENABLE_ON & SEC_PRESCAL_8_1 & PRI_PRESCAL_16_1, SPI_ENABLE & SPI_IDLE_STOP & SPI_RX_OVFLOW_CLR);
Si les parece que esto esta bien sigo subiendo codigo.
Ya estoy tocando por tocar, a ver si anda...
Gracias por la ayuda