SPI - Port-Expander (viele)

Gast #4994215
Lesenswert?

Hallo, ich habe folgendes Problem:

Ich habe einen ATmega µC, der viele SPI-Port-Expander ansprechen muss 
(so zwischen 18 und 20 Stück der Sorte MCP23S08).
Jetzt braucht jeder sein eigenes Chip-Select....aber ich kann nicht 
jedem CS einen eigenen µC-Pin geben. Weil ich auch noch ein paar freie 
Pins brauche.

Jetzt dachte ich zuerst, dass ich einfach die jeweiligen CS-Pins selbst 
mit einem übergeordneten SPI-Portexpander anspreche....D.h. vom µC aus 
gehe ich in einen "übergeordneten" Portexpander mittels SPI und CS , und 
dieser Portexpander steuert wiederrum die CS-Pins der 8 
"untergeordneten" Portexpander an....

Das einzige Problem was hierbei wäre, ist, dass sobald ich einen 
Portexpander der untersten Ebene auswähle somit der übergeordnete 
Expander, der ja die untergeordneten Expander ausgewählt hat, auch aktiv 
ist. Somit hängen 2 SPI-Slaves auf demselben Bus, was ja eigentlich 
nicht sein darf....

Oder kann ich das vernachlässigen, weil ich ja eigentlich nichts vom 
übergeordneten Portexpander auslesen will (also nichts von dem über MISO 
an den µC geschickt wird), und somit eh nur Daten vom Untergeordneten 
Expander an den µC gehen (wo Taster dranhängen, deren Status ich 
auslesen will, und ein paar LED´s die ich ansteuern will).

Danke schon mal im Voraus,
LG
#4994266
Lesenswert?

D'oh! schrieb:
> Kaum zu glauben aber solche SPI-Slaves kann man hintereinander in Reihe
> schalten.

Schieberegister (74HC595, 74HC165) ja, aber solche komplexen SPI-Slaves 
eher nicht.
Es muß explizit im Datenblatt stehen, wie z.B. beim MAX7219.

Hier steht nur, daß 4 Chips am selben /CS hängen können.
Man könnte mit einem 74HC138 aus 3 IO-Pins 7 * /CS erzeugen, also bis zu 
28 * MCP23S08 ansteuern.

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