Ich raff das mit dem SPI nicht

Gast #421624
Lesenswert?

Guten Abend!

Ich habe hier ein Board mit einem Mega64, der via SPI einige ICs
anquatschen soll. Allerdings funktioniert das nicht. Ich habe das
Problem inzwischen soweit eingegrenzt:

- beim Senden erscheint im SPSR beim ersten mal noch das SPIF, bei
folgenden nicht mehr
- ich sehe keine Clock auf SCK!

Ich gehe vor wie im Datenblatt beschrieben, also SPDR beschreiben,
danach warten bis SPIF angeht. Das scheint ja relativ deppensicher zu
sein ;-)

Die SCK-Leitung an sich ist wohl OK, denn beim Programmieren über den
ISP springt das brav bis auf 5 Volt rauf, also auch keine Kurzschlüsse
oder so.

Ist es eigentlich egal, wann man was auf den SPI rausschreibt? Ich
meine: wenn keine Zuhörer da sind, müsste das doch auch gehen, bloß daß
eben 0x00 als "Antwort" zurückkommt, oder? Interessanterweise
funktioniert nämlich das Rausschreiben beliebigen Schrotts (0xff habe
ich gerade drin) auf einem alten Board (hatte ich noch rumliegen, da
funktioniert SPI nachweislich) nicht. Das Normale Reden mit dem dort
verbauten Slave funktioniert, aber wenn ich 0xff schreibe, klemmt
komischerweise auch das SPIF und der bleibt in der Schleife kleben.

Ciao, Klaus
Gast #421626
Lesenswert?

Vermutung:

Der SS Pin MUSS auf Ausgang (DDR) gesetzt sein, sonst haut das nicht
hin.
Ob 0x00 oder sonstwas als Antwort zurückkommt hängt davon ab was an der
MISO Leitung hängt, wenn die offen ist kommt unberechenbarer Müll
zurück.

Stefan
Gast #421628
Lesenswert?

SS war's, ich habe jetzt PB0 als Ausgang konfiguriert, und schwupps
geht die ganze Sache, inklusive kräftiger 5-Volt-Rechtecke auf der
SCK-Leitung. Das andere Board, das sporadisch funktioniert hat, hat
wohl irgendeinen Murks auf SS eingestreut, sodaß es "meistens HIGH"
war... grusel

Danke für eure schnelle Hilfe! :-)

Jetzt habe ich nur noch eine lügende Spannungsreferenz... (1,88 statt
2,50 Volt, das ist doch der Hammer...)

Ciao, Klaus

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