Forum: Mikrocontroller und Digitale Elektronik SPI /SS Leitung


von Mathias (Gast)


Lesenswert?

Hallo, ich habe kurz eine prinzipielle Frage zu SPI. Wenn ich an einen
Slave mehrere Bytes senden will, macht es dann einen Unterschied ob ich
nach jedem Byte die /SS Leitung wieder auf HIGH gebe und beim nächsten
Byte wieder auf LOW, oder die /SS Leitung während des ganzen
Datenstroms auf LOW lasse?

Es handelt sich übrigens um ein einfaches uC Netzwerk.

Danke, Mathias

von Mark H. (haemi)


Lesenswert?

Salve,

Du definierst damit halt die Rahmenlänge. Wenn /SS auf inaktiv (high)
geht, verwirft das SPI im AVR seinen Empfangspuffer. Das sollte man vor
jedem Paket machen, um sicherzustellen, daß Sender und Empfänger
synchron laufen.
Wenn Du wirklich nur byteweise sendest, kannst Du jedes Byte rahmen.
Wenn Du rel. kurze Pakete sendest (immer am Stück), dann wäre ein
Rahmen pro Paket zweckmäßig.
Da Du von "mehreren Bytes" sprichst, nehme ich an, Du verwendest
Pakete. Da bietet es sich an, das ganze Paket zu rahmen. Also /SS aktiv
ziehen, Bytes nacheinander senden, /SS wieder inaktiv ziehen (natürlich
erst wenn der Transfer abgeschlossen ist).

Mark

von Mathias (Gast)


Lesenswert?

genau genommen ist es ein uC Netzwerk mit 6 Slave- uC's. Jede Minute
sende ich dann 16Byte an jeden der Slaves

von hans dieter (Gast)


Lesenswert?

Slave Select macht nur das, wie der Name es schon sagt: einen Slave
auswählen. Ob du dann zwischen den einzelnen bytes die /SS leitung high
ziehst ist deine sache, wichtig ist nur, dass der master und der slave
das selbe protokoll verwenden.

von mthomas (Gast)


Lesenswert?

Manche "fertigen" Slaves reseten den SPI-Interpreter wenn CS auf high
geht. Kann also sein, dass CS fuer ein Packet lang low bleiben muss.

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
Noch kein Account? Hier anmelden.