Der Betreff sagt eigentlich alles: Ich verwende SPI nur zum Daten empfangen, benötige MISO nicht. Das einzige was ich laut Datenblatt schalten kann ist der Pullup, wenn ich das richtig verstanden habe. Gibt es irgendeinen Trick, MISO trotzdem als IO zu verwenden ?
Also wenn Du als Slave nur Daten empfangen willst, sollte der MISO-Pin eigentlich frei verfügbar sein. So steht es zumindest in Tabelle 55 auf Seite 126 im Datenblatt des ATMega8515 (und sicherlich auch bei den anderen Prozessoren mit HW-SPI). MISO ist dort mit "user defined" angegeben. Wie man dann allerdings einstellen kann, dass MISO doch als Ausgang des SPI fungieren soll, habe ich auf die Schnelle auch nicht gefunden. Am besten mal in einem etwas neueren Datenblatt zu SPI nachlesen. Jörg
Sorry, aber das passiert, wenn man nur flüchtig liest. Die angegebene Tabelle besagt ja nur, dass die DATENRICHTUNG "user defined" ist. Und das interpretiere ich dann so: MISO als Ausgang = MISO ist Ausgang des SPI MISO als Eingang = MISO-Pin lässt sich als universeller Eingang verwenden Damit hat sich meine o.a. Unklarheit auch erledigt. Also bei SPI als Slave kann MISO als universeller EINGANG genutzt werden oder als Ausgang des SPI. Jörg
Wenn ich MOSI als Eingang definiere, ist es dann wirklich absolut sicher, dass das SPI Interface den Pin nicht verändert ? Was passiert, wenn ich MOSI auf Eingang schalte, und Daten ins SPDR schreibe ?
Solange das SPI-Interface nicht Master wird sollte sich an der Einstellung MISO als Eingang nichts ändern. Das Byte, das Du ins SPDR schreibst sollte im NUL landen. Aber selbst ausprobiert hebe ich diese Konstellation bisher noch nicht. Jörg
Ahnliche Probleme tauchten bei der Benutzung von MISO auf wenn der AVR der Master ist (Nokia LCD). Auch da kann man den MISO freischalten und als zusätzlichen Ausgang benutzen. Denoch habe ich immer wieder Meldungen von Nachbauern bekommen das dies nicht so richtig funktioniert. Denn 1.) darf sich NICHT der Status vom Pin ~SS verändern, 2.) wurde berichtet das Aktivitäten des SPI's auf dem eigentlich freien MISO Pin Störungen verurachten, je nach typ des AVR's, und 3.) gibt's zwar Datenblätter aber einige Detailfragen bleiben ungeklärt. Falls du einen normalen IO Pin frei hast dann würde ich den nehmen. Gruß Hagen
>Falls du einen normalen IO Pin frei hast dann würde ich den nehmen.
Leider benötige ich 32 IOs, habe aber nur 31 (3x8bit -4 für SPI) + 3x
PORT E beim mega8515
Die Problme mit SS beim SPI Master sind mir bekannt:
mega8 als SPI Master, SS als Ausgang (laut Datenblatt dann ein normaler
IO), den an den SS des Slave.
Nix geht. Also anderen Pin genommen, Schaltung geht.
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.