Forum: Mikrocontroller und Digitale Elektronik SPI: CPHA ohne Wirkung


von Hannes (Gast)


Lesenswert?

Hallo Forum,

ich experimentiere gerade mit dem SPI-Modul eines Mega8.

void spi_init(void)
{
  MOSI_DDR|=(1<<MOSI);//DDR MOSI-Pin
  SCK_DDR|=(1<<SCK);//DDR MISO-Pin
  SS_DDR|=(1<<SS);  //DDR /SS-Pin, notwendig für Master Mode
  SPCR=(1<<SPE)|(1<<MSTR);  //Enable SPI, Master, f_Clk/4
SPCR|=(1<<CPOL);//|(1<<CPHA);   /SPI Mode 3
  SPSR=(1<<SPI2X);  //Double Speed -> f_Clk/2
}

unsigned char spi_trx(unsigned char c)
{
  SPDR=c;                     // SPI Datenregister laden
  while (!(SPSR&(1<<SPIF)));  // auf SPIF warten
  return SPDR;    // eingelesenes Byte rückgeben
}

Es funktioniert auch soweit alles, aber es schein keinen Unterschied zu 
machen, ob CPHA in SPCR gesetzt ist oder nicht, das Oszillogramm schau 
immer gleich aus.

Woran kann das liegen?

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

Die Daten müssten mit CPHA=0 mit der steigenden, mit CPHA=1 mit der 
fallenden Flanke ausgegeben werden.

Sie kommen aber unabhängig von CPHA immer mit der steigenden Flanke.

Hab mal ein Bild angehängt.

von Tom (Gast)


Lesenswert?

Da war doch noch was mit dem /SS-Pin?

von Hannes (Gast)


Lesenswert?

Mode 2 und 3 sehen absolut gleich aus.

Da ist kein Phasenunterschied.

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

ich hab mal Bilder von allen 4 Modes gemacht.

Mode 2 und 3 sind gleich. Das stimmt nicht mit den Bildern im Datenblatt 
überein.

von DJ T. (Gast)


Lesenswert?

Doofe Frage:
Mißt Du auf MOSI oder MISO?
Der Slave, der MISO treibt, weiß natürlich nichts von CPHA...

von Hannes (Gast)


Lesenswert?

Klar, die obere Kurve ist MOSI, darunter SCK.

von Hannes (Gast)


Lesenswert?

Peinlich, peinlich - aber Fehler gefunden.

Habe am falschen Punkt auf der Platine ein falsches Signal als 
vermeintliches MOSI abgegriffen.

Das hat mich jetzt schlappe 2 Tage gekostet.

Also - ich nehme alles zurück. Alle Timings wie sie sein sollten.

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

Hier nochmal Bilder von den Modes, für die, die's interessiert.

Oben SCK, unten MOSI.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.