MSP430 SPI Bitveschiebung

Gast #2248190
Lesenswert?

Hallo Leute,

Ich nutze einen MSP430F2132 als Slave am SPI BUS. Master ist ein anderer 
IC. Clock ist 100 kHz. Wiederholungsrate 1ms.

Leider ist bei mir das Ergebnis immer um 1 bit verschoben. Also wenn ich 
als Slave was in den SPI Buffer schreibe kommt das ganze um 1 Bit 
verschoben wieder an. Am Master liegt es wohl nicht..

Hier mein Code

Initialisierung...
...
UCB0CTL0 |= (UCSYNC+UCMSB+UCMODE_2+UCCKPL+UCCKPH);//UCCKPL//UCCKPH
  while (!(IFG2 & UCB0TXIFG));
  UCB0CTL1 &= ~UCSWRST;
  IE2 |= (UCB0RXIE+UCB0TXIE);
  __enable_interrupt();
..

und die ISR:
 #pragma vector = USCIAB0TX_VECTOR
__interrupt void  USCI0TX_ISR (void)
{
  P1OUT ^= 0x04;
  UCB0TXBUF=0xfE;
}

Ich schreibe also immer 1111 1110 rein
als ergebnis im RXBUFFER bekomme ich 0111 1111

Hab alle 4 SPI Modi schon ausprobiert...

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