Hi, ich habe 2 PIC18F4620 per SPI mit 100 KHz verbunden, ein Master, einen Slave. Daten vom Master zum Slave funktioniert. Aber die Daten vom Slave zum Master sind immer um 1 Bit verschoben ! Beider PICs laufen im gleichen SPI Modus, Clock Polarity und Clock Edge = 0. Slave sendet z.B. Zahl 4, empfangen wird vom Master aber Zahl 2. Also 1 Bit immer geht verloren. Gruß Dirk
sieh dir mal am master die funktion des SMP-bits an, eventuell liegt hier das problem.
Hi Michael, hab ich schon probiert, keine Änderung....
Hallo, wahrscheinlich habe ich die Ursache für das Problem gefunden, habe aber dafür ein noch größeres an der Backe….. In meinem System sitzen mehrere verschiedene SPI slaves an dem Master. Leider arbeiten die Slaves in verschiedenen Modi, es muss also die Clock Polatität und der Clock Ruhezustandspegel für jeden Slave angepasst werden. Wenn ich jetzt zyklisch die Slaves anspreche, und jedes Mal vorher den SPI disable, CKE und CPE anpasse, dann wieder SPI enable, passiert folgender Efekt: Habe ein Oszi an die Clock Leitung angeschlossen. Der erste der 8 Clock Impulse ist deutlich kürzer (Zeit) als die anderen 7. Er verändert auch ständig seine Impulszeit, manchmal ist es nur ein Nadelimpuls. ????? Deshalb wird das Datenbyte um 1 Bit verschoben, weil der erste Clock Impuls vom Slave nicht erkannt wird. Wenn ich nur einen Slave anspreche, ohne den SPI umzukonfigurieren, ist der Fehler weg. Hat jemand einen Erklärung hierfür ? Gruß Dirk
Hallo, Alle Slaves sollen das gleiche Modus haben. könntst du vielleicht dein Programm hochladen. Ich bearbeite jetzt die gleuche Sachen. Gruß chris.
Hallo, also die Probleme sind mittlerweile behoben. Es lag an einer zu langen verzweigten SPI Clock Leitung. Wahrscheinlcih traten Reflektionen auf. Habe die Flankenseilheit durch einen Kondensator am Master reduziert. LG Dirk
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.