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
Ob jemand am SPI "hört", ist dem ATMega egal. Und auch 0xff rausschreiben muss ohne Probleme gehen. Bist du sicher, dass dein Code nicht versehentlich den SPI-Pin als Eingang konfiguriert?
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
Laut Datenblatt, kann SS auch als Eingang gesetzt sein. In diesem Fall MUSS der Eingang aber auf H liegen, ansonsten denkt der ATMega, dass noch ein anderer Master auf dem Bus ist.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.