SPI Slave zieht Datenleitung nicht richtig auf LOW/GND

Gast #4860446
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
Angehängte Dateien:
Gast #4860667
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
Moderator (Firma: Titel) Persönliche Seite #4860680
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...
Gast #4860713
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)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren