Estoy intentando conectar un PIC18F4520 a un 25LC640 a través del protocolo SPI. Estoy usando el hardware MSSP incorporado del PIC. El PIC18F4520 es el único maestro en el bus. Estoy leyendo 16 bytes de datos de la EEPROM 32 veces por segundo. He verificado dos veces los siguientes elementos:
- Registros TRIS para SDI, SDO, SCK y CS
- Velocidad de transmisión ~ 1 Mhz
- Modo SPI 0,0
He comprobado las señales en un osciloscopio y todo se ve bien. He intentado usar un BusBee para registrar los datos provenientes de la EEPROM y el 99% de las veces es correcto. De vez en cuando hay una serie de solicitudes en las que la línea MOSI (SDO) no parece contener la instrucción de lectura EEPROM correcta, lo que hace que los datos registrados en el micro no sean válidos. Esto sucede aunque estoy escribiendo la misma instrucción de lectura en la SSPBUF cada vez. ¿Qué más puede salir mal con un bus SPI?