Verschiedene SPI Devices mit einem SS/CS

Gast #4278418
Lesenswert?
• ▲
▼
Hallo,

gibt es Bausteine, die ich ansprechen kann, mit denen ich aus einer 
SS/CS Leitungen mehre machen kann?

Ich habe nur MOSI, MISO, SCK und SS zur Verfügung, möchte aber 
verschiedene Geräte ansprechen.

Dachte mir so etwas wie ein Umschalter IC. Was kann man da einsetzen?
Gast #4278433
Lesenswert?
• ▲
▼
Für i2c gibt es sowas.

Idee - ungetestet:

ein Schieberegister / eine Porterweiterung die nur bei CS=H Daten 
einliest und die Ausgänge dann mit dem CS UND verknüpfen.
Also dann zuerst ein Byte bei CS=H über MOSI und SCK ausgeben und danach 
normal mit CS=L und den verundeten Ausgängen des Registers an die 
einzelnen SPI Devices durchreichen.

Einfacher ist natürlich vom µC noch ein Pin zu opfern - oder mehr - und 
ggf
einen Dekoder zu benutzen.
Gast #4279356
Lesenswert?
• ▲
▼
Und wie willst du den Multiplexer ansprechen ?
Der IC muss ja schließlich auch wissen welcher CS Pin geschaltet werden 
soll.

Also ein paar Pins mehr als das was du jetzt hast wirst du schon 
investieren müssen.
#4279387
Lesenswert?
• ▲
▼
@ Max H. (hartl192)

>Wenn er den /OE des 595 auch mit dem uC verbindet und den CS Eingängen
>Pullups spendiert sollte das gehen.

Ok, mit dem Trick geht es.

@ Bernd (Gast)

>> Geht nicht. Die einzige Möglichkeit Pins zu sparen ist ein 3:8 Dekoder
>> ala 74HC138.

>Hast du das schon probiert?

Nein.

> Kannst du das begründen?

Ich weiß es ;-)

Ohne den Trick von oben hast du keine Möglichkeit, das Schieberegister, 
welches als normales SPI-IC am Bus hängt, zu deaktivieren, sodass 
keinerlei anderes SPI-IC sich angesprochen fühlt.

Beispiel.

- Dein 595 hat alle Ausgänge auf HIGH -> Alles anderen SPI-ICs sind 
deaktiviert.
- Nun schiebst du ein 0x7F rein, das SPI-IC am Bit#7 wird jetzt 
aktiviert.
- Beim nächsten SPI-Zugriff fühlt es sich angesprochen, man kann keine 
Daten mehr ins Schieberegister laden, ohne dass ein anderes IC "zuhört"

Das nennt man einen Deadlock.
Gast #4279410
Lesenswert?
• ▲
▼
Falk B. schrieb:
> @ Bernd (Gast)
>
>>> Geht nicht. Die einzige Möglichkeit Pins zu sparen ist ein 3:8 Dekoder
>>> ala 74HC138.
>
>>Hast du das schon probiert?
>
> Nein.

Das ist schlecht :)

>> Kannst du das begründen?
> Ich weiß es ;-)

Das ist doch stark zu bezweifeln :)

µC             595                SPI-Bausteine
--------------------------------------------
SerialOut      SerialIn           SerialIn plus PullUps
Clock          SRCLK              Clock
SlaveSelect    /OE RCLK


SlaveSelect High bewirkt, dass der 595 über /OE alle Ausgänge auf 
Tri-State schaltet und damit die SPI-Bausteine nicht ausgewählt sind.

Über den SerialOut des µCs wird der 595 "geladen".

Nach dem Laden, wird der /OE-Eingang des 595 über den SlaveSelct des µCs 
auf Low gelegt. Die alten Chipselect erscheinen an den Ausgängen.

Wird SlaveSelcet jetzt wieder auf High gesetzt, dann über nimmt der 595 
die neuen Daten, da RCLK eine High-Flanke sieht.

Diese erscheinen nach einem erneuten Setzen des SlaveSelct auf Low an 
den Ausgängen des 595.

Ab jetzt kann der ausgewählte Baustein mit Daten versorgt werden.

Kann das jemand prüfen, ob es so funktioniert?
Gast #4279503
Lesenswert?
• ▲
▼
Hallo Leute,

da es mich auch interessiert hat ob das so funktioniert habe ich mal 
wieder meinen Simulator bemüht. Ist nicht für den 595 sondern für ein 
Schieberegister im CPLD, sollte aber nachvollziehbar sein.

Wichtig ist das vor einen normalen SPI Zugriff das Register gefüttert 
wird, sonst sind alle Ausgänge auf Low!
Angehängte Dateien:

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.