Forum: Mikrocontroller und Digitale Elektronik SPI-Störanfalligkeit


von A. C. (michael1988)


Lesenswert?

HI

Ich lasse zur Zeit 2 Microcontroller über ISP Kommunizieren. Leider wird 
die Übertragung fast immer gestört,sodass ein Textstring nie komplett 
richtig übertragen wird. Sogar bei einzelnen Bytes werden diese selten 
korrekt übertragen.

Kann mir da jemand helfen?

Gruß MIchi

von Philipp B. (philipp_burch)


Lesenswert?

SPI zu schnell getaktet? Leitungen zu lang? Schlechte Verbindungen? 
"Verseuchte" Umgebung?
Ist normalerweise recht zuverlässig.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Zu 99,9% ist Deine Programmierung falsch. Probiere es vorerst mal mit 
den Code-Segmenten aus den Dattenblättern. Bedenke: auf beiden 
Controllern muß die SPI-Geschwindigkeit kleiner als 1/4 der Taktfrequenz 
der Controller sein. Außerdem müssen die Pins der SPI-Schnittstelle 
richtig konfiguriert sein, da nur so der Master auch Master bleibt. 
Stichwort: /SS-Pin.

von A. C. (michael1988)


Lesenswert?

SS Pin hab ich beachtet(is Ausgang). Hab auch die Codebeispiele aus dem 
Datenblatt verwendet. Mir is grad aufgefallen,dass bei der 
Masterinitierung
SP= gesetzt wird,bei der Slaveinitierung aber nicht. Folglich ist die 
SPI-Geschwindigkeit des Masters ja 4mal so langsam(siehe Datenblatt) wie 
die des Slaves?

Gruß MIchi

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Mir is grad aufgefallen,dass bei der
>Masterinitierung
>SP= gesetzt wird,

?!

von Frank (Gast)


Lesenswert?

Die Geschwindigkeit wird vom Master vorgegeben. Der Slave muss diese nur 
verarbeiten können (f_SPI <= 1/4*f_Slave).
Ansonsten ist SPI eine sehr zuverlässige Kommunikation.

von A. C. (michael1988)


Lesenswert?

@ Travel Rec. Ich meinte SPRO.

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.