PIC: SPI Master-Slave Übertragung von Slave um 1Bit verschoben

Gast #3350908
Lesenswert?
• ▲
▼
Salu zusammen

Ich habe hier ein kleines Problem. Es geht um zwei PIC18F46K22 welche 
über SPI miteinander Kommunizieren sollen. Vom Master auf den Slave 
läuft die ganze Sache auch bereits 1A. Was ich vom Master rausschicke 
kommt beim Slave richtig an.

Problem: Wenn ich etwas in das SSP1BUF Register reinschreibe (Slave) und 
vom Master aus ein Dummy Byte schicke um die Daten vom Slave zu lesen, 
bekomme ich zwar Daten, aber diese sind um 1Bit verschoben

Slave sendet: „yvi“: 0111 1001 0111 0110 0110 1001

PIC1 Empfangt: „0xBC 0xBB 0x34“: 1011 1100 1011 1011 0011 0100

Überenander:
0111 1001 0111 0110 0110 1001
1011 1100 1011 1011 0011 0100

Zweite Zeile um 1 nach links geshiftet --> Stimmt
0111 1001 0111 0110 0110 1001
0111 1001 0111 0110 0110 100x

Habe denke ich schon so ziemlich alle Mods probiert, also mit CKP/CKE 
und ohne, SMP mit und ohne. Klappt irgendwie nichts von allem.

Hier mal noch die Init der beiden PIC.

MASTER:
void SPI_Init(void)
{
SSP1CON1  = 0x10;
SSP1STAT  = 0x00;
IPR1  |= 0x08;
PIE1  |= 0x08;
}

SLAVE:
void SPI_Init(void)
{
SSP1CON1  = 0x15;
SSP1STAT  = 0x00;
IPR1  |= 0x08;
PIE1  |= 0x08;
}

Kennt vielleicht zufällig jemand ein solches Phänomen? Leitungen sind 
kurz und der Takt auch nicht all zu hoch. Wie gesagt, nehme an das macht 
alles keine Probleme, da der Master ja auf den Slave senden kann und die 
Leitungen gleich lang sind.

Gruss RS4
Gast #3351159
Lesenswert?
• ▲
▼
Hallo, hatte ähnliche Probleme.
Ursache waren wahrscheinlich Reflektionen auf der Clock Leitung.
Am SPI Master hingen mehrere Slaves.

Habe dann den SPI Clock über ein 74H4050 auf alle Slaves verteilt, dann 
hats geklappt.
LG Dirk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.