Welcher SPI-Modus soll verwendet werden?

7

Ich verbinde einen 23LC1024 SPI Serial SRAM mit einem PIC18, indem ich den C18-Compiler und die integrierten Funktionen verwende, <spi.h>wie in den Compiler-Bibliotheken , Abschnitt 2.8 beschrieben:

OpenSPI1 - Initialisieren Sie das SSP x- Modul.

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

Für bus_modekann ich einen der folgenden Modi wählen:

  • MODE_00 - Daten werden bei steigender Flanke der Uhr gelesen (Leerlauf bis aktiver Taktzustand)
  • MODE_01 - Daten werden an der fallenden Flanke der Uhr gelesen (aktiv im Ruhezustand der Uhr)
  • MODE_10 - Daten werden an der fallenden Flanke der Uhr gelesen (Leerlauf bis aktiver Taktzustand)
  • MODE_11 - Daten werden an der ansteigenden Flanke des Takts gelesen (aktiv im Ruhezustand des Takts)

Ich kann im Datenblatt des 23LC1024 nicht finden, welchen Modus ich verwenden soll. Ist das nicht wichtig? Oder wird ein Standard angenommen?


quelle

Antworten:

7

Diese Abbildung im SRAM-Datenblatt zeigt, dass der Chip die Daten bei steigender Taktflanke liest.

Geben Sie hier die Bildbeschreibung ein

Das entspricht zwei Ihrer Optionen. Ich denke, die Wahl zwischen beiden ist die Kante, an der der Chip seine Ausgangsdaten ändert. Die folgende Abbildung zeigt, dass dies nach der fallenden Flanke geschieht. Daher sollte Ihr Mikrocontroller das Bit "auf" der ansteigenden Flanke lesen.

Geben Sie hier die Bildbeschreibung ein

Es gibt andere SPI-Konfigurationsaspekte, die mit der CS-Leitung zu tun haben.

Wouter van Ooijen
quelle