AVR: MOSI mit Hardware SPI verwenden, MISO aber als IO

OP #280482
Lesenswert?
• ▲
▼
Hallo,

ich verwende einen ATmega8 um eine SPI Verbindung zu einem Display per
SPI aufzubauen. Da ich für alles mögliche sehr viele pins brauche, und
das Display sowieso nicht antworten kann, würde ich gerne den MISO-Pin
als Ausgang für die Resetleitung des Displays nehmen. Also als ganz
normalen IO-Pin konfigurieren.
Leider wird aber bei aktivierung des SPI dieser Pin automatisch
konfiguriert, wenn cihd as richtig verstanden habe, und bei den ganzen
overide registern, blicke ich nicht ganz durch was da was schaltet.
Beim AT91RM9200 ist das schöner gelöst :)

kann mir jemand helfen?

Vielen Dank,
David Epping
#280483
Lesenswert?
• ▲
▼
Der MISO-Pin wird beim Einschalten des SPI automatisch als Input
geschaltet, egal was Du im DDRB eingegeben hast (darüber bin ich auch
mal gestolpert). Ich hatte das Problem beim mega16, dürfte aber beim
mega8 dasselbe sein.

Den Pin als Eingang zu benutzen ist aber problemlos möglich. Ev. kannst
Du den Pin mit einem anderen tauschen.

Übrigens, ähnliche Baustelle:
der SS-Pin sollte möglichst als Ausgang benutzt werden, falls die
SPI-SS-Funktion nicht verwendet wird. Wird SS als Eingang betrieben,
dann schaltet ein Low-Pegel an SS den SPI ab!

Einziger Workaround für beide Probleme (wenn sie bereits in Hardware
gegossen sind): SPI in Software nachbauen ...

Gruß, Stefan
Gast #280484
Lesenswert?
• ▲
▼
Als Low-aktiven Reset kannst du den Pin durchaus verwenden (bei mir z.B.
für ein Nokia 3310):
Um Low auszugeben dektivierst du die SPI, schaltest den Pin auf Ausgang
und gibst 0 aus.
Um High auszugeben schaltest du den Pin auf Eingang und aktivierst den
PullUp-Widerstand. Danach kannst du die SPI enablen - der Pin bleibt
auf Eingang und wird durch den PullUP auf High gezogen.

Gruss Andi

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.