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
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
Salu zusammen Es waren tatsächlich Reflexionen auf der Clock Leitung. Wurde behoben und funktioniert nun Vielen Dank an DirkF welcher den entscheidenden Tipp gab Es Grüessli RS4
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.