Frage zur AVR-SPI-Schnittstelle

OP #6515263
Lesenswert?

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
Lesenswert?

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
Lesenswert?

> - 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
Lesenswert?

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.

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