Forum: Mikrocontroller und Digitale Elektronik 2 PIC18F4620 über SPI verbunden, Probleme


von DirkF (Gast)


Lesenswert?

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

von Michael H. (morph1)


Lesenswert?

sieh dir mal am master die funktion des SMP-bits an, eventuell liegt 
hier das problem.

von DirkF (Gast)


Lesenswert?

Hi Michael, hab ich schon probiert, keine Änderung....

von DirkF (Gast)


Lesenswert?

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

von Chris (Gast)


Lesenswert?

Hallo,
Alle Slaves sollen das gleiche Modus haben.
könntst du vielleicht dein Programm hochladen.
Ich bearbeite jetzt die gleuche Sachen.

Gruß chris.

von DirkF (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.