SPI: CPHA ohne Wirkung

Gast #2281600
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?
Gast #2283957
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren