Frage zur AVR-SPI-Schnittstelle

OP #6515263
Hallo,
ich habe eine Verständnisfrage zur SPI-Schnittstelle der 
AVI-Mikrokontroller.
Folgende Ausgangssituation:
Der MOSI-Pin des Kontrollers (als Master) ist an dem Eingang eines 
Slaves angeschlossenen. Dessen Ausgang ist wiederum mit dem MISO-Pin des 
Kontollers verbunden.

Die Übertragung startet wenn das SPDR-Register des Kontrollers mit dem 
zu übertragenden Wert beschrieben wird. Mit jedem SPI-Taktsignal wird 
ein Bit vom Master in den Slave und gleichzeitig ein Bit vom Slave in 
den Master geschoben. Die "Slave->Master-Bits" werden im Master in einem 
Puffer zwischengespeichert und am Ende der Übertragung in das 
SPDR-Register des Masters geladen.

Ist das so richtig?

rhf
Gast #6515372
Roland F. schrieb:
> Mit jedem SPI-Taktsignal wird
> ein Bit vom Master in den Slave und gleichzeitig ein Bit vom Slave in
> den Master geschoben.

Habe noch nie mit SPI gearbeitet
Geht da tatsächlich ein Bit hin und eines her, warum bidirektional, wenn 
ich nur senden oder nur empfangen will, was ist das dann für ein anderes 
Bit?
#6515812
> - was geschieht beim Reset, beim Programmieren des controllers.

Beim Reset sind die Pins in tristate. Was bewirkt das ? Allenfalls mag 
eine angeschlossene Funktionalitaet keinen Tristate, dann sollte man an 
diese Ports eine Pullup, oder pulldown haben.

was geschieht beim Programmieren per SPI. Dann werden die SPI Pins vom 
Programmer angesteuert. Was bewirkt das mit angeschlossenen 
Funktionalitaeten ? Die Pins sind grad so angesteuert, dass sich auch 
ein externes SPI Device beschreiben, falls eins angeschlossen waere und 
den SPI Chipselect low haette. Den SPI chipselect des externen devices 
muss also auf high sein.

Was vergessen wurde : Was geschieht wenn der Controller noch nicht 
programmiert wurde, ? Dann sind die Pins auch auf Tristate. Dann sollte 
ebenfalls nichts abrauchen.

Das alles findet man aber durch die Fragestellung selbst raus.
Gast #6515815
unwissender schrieb:
> Geht da tatsächlich ein Bit hin und eines her, warum bidirektional, wenn
> ich nur senden oder nur empfangen will, was ist das dann für ein anderes
> Bit?

Die Sonne geht auch morgens auf, egal ob DU Licht brauchst oder nicht.
So ist SPI nun mal.
Das gesendete Bit ist das, was im SPI Senderegister steht, das 
empfangene ist der Pegel der bei der Taktflanke auf der entsprechenden 
Schnittstellenleitung liegt.
Was anderes kann SPI nicht - sonst ist es kein SPI.
Gast #6516068
SPI Peripherie die empfindlich auf zufällige Daten reagiert hat 
sinnvollerweise eine eng definierte Initialisierungs-Sequenz. Zum 
Beispiel SD Karten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.