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...
Versuche mal ein anderes Bitmuster zu senden. Bei Deinem Beispiel könnte es sich auch um ein Endian Problem handeln.
Das hab ich auch schon probiert.. Es sieht so aus, als ob das MSB immer zum LSB des nächsten Bytes wird, also als ob im allererste Frame nur 7 statt 8 bits gesendet werden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.