SPI slave selection

Gast #4612097
hallo,

meine Frage ist : ich benutze ATmega32u4 und ich will das Chip mit 3 
Slaves verbinden aber auf das Datasheet ich finde nur ein Pin für Slave 
Select . Ich will wissen ob man andere Pin als SS benutzen kann oder 
nicht. wenn nicht was gibt's als Lösung.

Danke
Gast #4612101
Hallo, der SS Pin ist nur dafür da wenn der AVR / Mikrocontroller als 
Slave fungiert. Wenn er aber Master ist, dann nimmt man einen normalen 
GPIO Pin für den / die CS Pin(s).
Gast #4612104
Harry schrieb:
> Ich will wissen ob man andere Pin als SS benutzen kann oder
> nicht

Als Master durchaus.
Im Slave Mode nicht.

Setze den SS trotz allem auf Ausgang, damit es dir nicht aus Versehen in 
den Slave Mode fällt.
#4612235
@ Harry (Gast)


>meine Frage ist : ich benutze ATmega32u4 und ich will das Chip mit 3
>Slaves verbinden aber auf das Datasheet ich finde nur ein Pin für Slave
>Select . Ich will wissen ob man andere Pin als SS benutzen kann

Ja. Aber SS MUSS als Ausgang geschaltet werden. Siehe Datenblatt, ""SS 
pin functionality".
Gast #4612266
Falk B. schrieb:
> Ja. Aber SS MUSS als Ausgang geschaltet werden. Siehe
> Datenblatt, "SS pin functionality".

Aus dem Text im Datenblatt des Mega32U4 kann ich diesen
Sachverhalt nicht erkennen:

-----------------------------------------------------
SS: Slave Port Select input. When the SPI is enabled
as a slave, this pin is configured as an input
regardless of the setting of DDB0. As a slave, the SPI
is activated when this pin is driven low. When the SPI
is enabled as a master, the data direction of this pin
is controlled by DDB0. When the pin is forced to be an
input, the pull-up can still be controlled by the
PORTB0 bit.
-----------------------------------------------------

Auch die Tabelle der SPI Pin Overrides sagt nichts dazu
dass der SS Pin ein Output im Master Mode sein müsste
(Siehe Bild).
Angehängte Dateien:
#4612287
Frickelfritze schrieb:
>> Ja. Aber SS MUSS als Ausgang geschaltet werden. Siehe
>> Datenblatt, "SS pin functionality".
>
> Aus dem Text im Datenblatt des Mega32U4 kann ich diesen
> Sachverhalt nicht erkennen:

Seite 183, Master Mode:

"If SS is configured as an input, it must be held high to ensure Master 
SPI operation."

Hat mir die Tage hier wer erklärt ;-)
#4612301
Man muss ihn nicht als Ausgang schalten, aber das ist das einzige was 
Sinn macht.
Kein Mensch braucht einen Eingang, der nur H sein darf. Und falls er 
doch mal L wird, funktioniert die SPI nicht mehr so wie geplant.
Ist SS Ausgang, ist er ganz normal nutzbar.
Also die einzig logische Betriebsart. Kostet doch nichts als Asgang zu 
schalten, selbst wenn er nicht gebraucht wird.
Gast #4612322
H.Joachim S. schrieb:

> Man muss ihn nicht als Ausgang schalten, aber das ist das einzige was
> Sinn macht.
> Kein Mensch braucht einen Eingang, der nur H sein darf.

Für den Normalfall würde ich dir natürlich vollkommen Recht geben.

Aber im Fall akuter Pin-Knappheit kann es durchaus einen Sinn ergeben. 
Z.B. wenn es in einer Anwendung überhaupt keine GPIO-Ausgabepins geben 
muss (nur Ausgaben via overrides durch nicht remappable alternate port 
functions) und zusätzlich ein Fehlerstatus überwacht werden soll, bei 
dessen Eintreten klar ist, dass die SPI-Kommunikation in der 
Fehlersituation für die Anwendung sowieso keine Rolle (mehr) spielt. 
Dann kann man diesen Eingang durchaus sinnvoll benutzen.

Wie gesagt: das ist sicher nicht der Normalfall. Aber ich habe zumindest 
ein Projekt, in dem ich das tatsächlich benutze.

Also wie immer: man sollte sich vor unzulässigen Verallgemeinerungen 
hüten. Jedenfalls so lange man die Sache nicht wirklich vollständig bis 
zur letzten Konsequenz durchdacht hat.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.