Forum: Mikrocontroller und Digitale Elektronik SPI Slave zieht Datenleitung nicht richtig auf LOW/GND


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bruce (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Freunde,
ich habe versucht eine Verbindung über SPI von Atmega1284P zu MAX31865 
(Temperatursensor) herzustellen. Ist mir auch soweit gelungen. Jedoch 
zieht der Slave die Datenleitung nicht richtig auf LOW/GND. In einigen 
wenigen Fällen schafft er es jedoch. Das finde ich sehr ungewöhnlich, 
dass es manchmal funktioniert, meistens aber nicht. Dadurch kommt 
natürlich nur Murks bei dem µC an.

Im Bild gelb = SCK, blau = MOSI, lila = MISO, grün = CS/SS

von Peter D. (peda)


Lesenswert?

Irgendwas in Deiner Schaltung zieht MISO auf high (Kurzschluß, anderer 
SPI-IC).

von Schaltplanlesa (Gast)


Lesenswert?

Bruce schrieb:
> Das finde ich sehr ungewöhnlich,
> dass es manchmal funktioniert, meistens aber nicht.

Vielleicht hast du den Datenausgang deines MAX31865
versehentlich an einen Pin des Atmega1284P angeschlossen
der auf Output programmiert ist. Dadurch kommen solche
"Buskämpfe" zustande.

von cappelone (Gast)


Lesenswert?

oder wahrscheinlicher keine Masseverbindung am MAX31865.

von Bruce (Gast)


Lesenswert?

Ich habe alles durchgecheckt. Konnte nichts an der Hardware finden. 
Nachdem ich dann nochmal in die Software geschaut habe, ist mir 
aufgefallen, dass ich von den anderen 3 Slave's (ebenfalls MAX31865) 
noch gar nicht die SS/CS Leitungen initialisiert hatte. Dummer Fehler. 
Aber zum Glück noch gefunden.

Ich hoffe das dieser Thread dennoch anderen behilflich sein kann, die 
ebenfall dieses Problem haben :-D

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Bruce schrieb:
> Jedoch zieht der Slave die Datenleitung nicht richtig auf LOW/GND.
Klassische Buskollision.

Bruce schrieb:
> dass ich von den anderen 3 Slave's (ebenfalls MAX31865) noch gar nicht
> die SS/CS Leitungen initialisiert hatte.
Und das Problem dabei war dann, dass dann einer oder alle anderen 3 
Slaves ebenfalls aktiv auf den Bus (hier die MISO-Leitung) getrieben 
haben. Merk dir das Bild, es hat meist immer die selbe Ursache.
Alternativ könnte ein Kurzschluss zu einem anderen Ausgangs-Pin 
ebenfalls ein solches Oszi-Bild bringen...

von Einer K. (Gast)


Lesenswert?

Bruce schrieb:
> ist mir
> aufgefallen, dass ich von den anderen 3 Slave's (ebenfalls MAX31865)
> noch gar nicht die SS/CS Leitungen initialisiert hatte. Dummer Fehler.

Mit Hardware-Pullups auf den CS Leitungen hätte das Bild anders 
ausgesehen...

Diese Pullups habe ich mir angewöhnt. Dann machts auch keine Probleme 
beim Flashen(AVR ISP)

von Bruce (Gast)


Lesenswert?

Lothar M. schrieb:
> Und das Problem dabei war dann, dass dann einer oder alle anderen 3
> Slaves ebenfalls aktiv auf den Bus (hier die MISO-Leitung) getrieben
> haben.

Genau das war das Problem.

von Bruce (Gast)


Lesenswert?

Vielen Dank für die Tipps! :-)

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.