¿Qué modo SPI usar?

Estoy conectando una SRAM serial SPI 23LC1024 con un PIC18, usando el compilador C18 y las funciones integradas <spi.h>descritas en las Bibliotecas del compilador , sección 2.8:

OpenSPI1 : inicializa el módulo SSP x .

void OpenSPI1(  
    unsigned char sync_mode, 
    unsigned char bus_mode, 
    unsigned char smp_phase);

Para bus_mode, puedo elegir uno de los siguientes modos:

  • MODE_00- los datos se leen en el flanco ascendente del reloj (estado de reloj inactivo a activo)
  • MODE_01- los datos se leen en el flanco descendente del reloj (estado de reloj activo a inactivo)
  • MODE_10- los datos se leen en el flanco descendente del reloj (estado de reloj inactivo a activo)
  • MODE_11- los datos se leen en el flanco ascendente del reloj (estado de reloj activo a inactivo)

No puedo encontrar en la hoja de datos del 23LC1024 qué modo debo usar. ¿No importa? ¿O hay un estándar asumido?

Respuestas (1)

Esta figura en la hoja de datos de SRAM muestra que el chip lee los datos en el flanco ascendente del reloj.

ingrese la descripción de la imagen aquí

Eso corresponde a dos de sus opciones, supongo que la elección entre las dos es el borde en el que el chip cambia sus datos de salida. La siguiente figura muestra que lo hace después del flanco descendente, por lo tanto, su microcontrolador debería leer el bit 'en' el flanco ascendente.

ingrese la descripción de la imagen aquí

Hay otros aspectos de configuración de SPI, que tienen que ver con la línea CS.