Welchen SPI-Modus verwenden?

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

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 an der steigenden Flanke der Uhr gelesen (inaktiver bis aktiver Uhrzustand)
  • MODE_01- Daten werden auf der fallenden Flanke der Uhr gelesen (aktiv bis Leerlaufuhrzustand)
  • MODE_10- Daten werden auf der fallenden Flanke der Uhr gelesen (inaktiver bis aktiver Uhrzustand)
  • MODE_11- Daten werden an der steigenden Flanke der Uhr gelesen (aktiv bis Leerlaufuhrzustand)

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

Antworten (1)

Diese Abbildung im SRAM-Datenblatt zeigt, dass der Chip die Daten an der steigenden Flanke des Takts liest.

Geben Sie hier die Bildbeschreibung ein

Das entspricht zwei Ihrer Optionen, ich denke, die Wahl zwischen den 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 steigenden Flanke lesen.

Geben Sie hier die Bildbeschreibung ein

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