Hallo, ich frag mich gerade (weil ich keinen weiteren Pin auf meine µC frei hab) ob ich zwei Slaves auf einen SS Pin packen kann indem ich den Ausgang einmal invertiert zum einen Slave und normal zum anderen Slave schicke. Geht um SPI. LG
:
Bearbeitet durch User
Dave P. schrieb: > ich frag mich gerade (weil ich keinen weiteren Pin auf meine µC frei > hab) Pfusch am Bau beginnt offensichtlich schon bei der Planung. Bei meinen "Konstruktionen" sind meist 5-20% der Pins frei für eventuelle Änderungen/Erweiterungen.
Das sollte wohl möglich sein, sofern an den Pins nichts anderes gemacht wird, denn einer der Slaves ist immer aktiv.
:
Bearbeitet durch User
Dave P. schrieb: > ich frag mich gerade (weil ich keinen weiteren Pin auf meine µC frei > hab) ob ich zwei Slaves auf einen SS Pin packen kann indem ich den > Ausgang einmal invertiert zum einen Slave und normal zum anderen Slave > schicke. Die Chance, dass das unerwartete Probleme erzeugt, würde ich auf 50% schätzen - je nachdem wie das Timing vom Chip Select von den zwei Slave-Geräten erwartet wird. Aber nachdem Du eh SPI hast, könntest Du gegen den Pin-Mangel ein Schieberegister mit Latch verwenden. Theoretisch kannst Du mit einem Schieberegister mit Latch und Enable beliebig viele weite SPI-Slaves mit CS versorgen.
Oder einfach das Chip select per Software machen: Als erstes Byte eine Adresse senden, damit sich nur ein slave angesprochen fühlt, der dann sein SPI_Out niederohmig schaltet.
Peter D. schrieb: > Manche SPI-Slaves kann man auch kaskadieren Stichwort Daisy-Chain https://www.mikrocontroller.net/articles/SPI_Daisychain https://www.maximintegrated.com/en/design/technical-documents/app-notes/3/3947.html Dave P. schrieb: > zwei Slaves auf einen SS Pin packen kann indem ich den Ausgang einmal > invertiert zum einen Slave und normal zum anderen Slave schicke. Normalerweise eine schlechte Idee, denn dann ist immer irgendeiner der beiden selktiert. Du darfst also eigentlich nie was mit dem SCK-Pin machen (z.B. Mode umschalten), weil dann einer der beiden evtl. einen Taktimpuls bekommt, der nicht zum Telegramm gehört. Das ist wie die heiße Kartoffel, die du zwischen deinen beiden Händen hin- und herjonglierst, aber eigentlich einfach nur weghaben willst... ;-)
:
Bearbeitet durch Moderator
Für sowas haben wir auch schon GPIO-Extender am I2C benutzt. Falls der I2C verfügbar ist, mal sowas noch anschliessen: https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/remote-4-bit-general-purpose-outputs-for-1-mhz-ic-bus:PCA9570
Hallo, für zu Hause und zur Not geht das schon. Einfach vorm ansprechen nochmal bewusst das CS Signal umschalten, damit die Flanke direkt kurz vorher sauber kommt, das wirkt wie ein Reset auf den Slave.
Veit D. schrieb: > für zu Hause und zur Not geht das schon. Einfach vorm ansprechen nochmal > bewusst das CS Signal umschalten Also praktisch "Pfusch as Pfusch can". Bloss nicht von vorne herein richtig machen, immer schön von hinten durch die Brust ins Auge.
Das mit dem Inverter für SS kann funktionieren, muss nicht. Kommt auf die ICs an. Man könnte, da man so oder so ein Gatter braucht, aber auch mit DREI Pegeln, sprich, LOW, HIGH und Tristate arbeiten. Daraus kann man 2 digitale SS-Signale dekodieren, wobei der Fall, daß beide aktiv sind nicht möglich ist.
Lothar M. schrieb: > Kommt wie üblich auf den Slave drauf an... Bei SPI wird genau die CS-Flanke benötigt, um Master und Slave zu synchronisieren. Das ist eins der Grundprinzipien von SPI.
Dave P. schrieb: > ich frag mich gerade (weil ich keinen weiteren Pin auf meine µC frei > hab) ob ich zwei Slaves auf einen SS Pin packen kan Je nachdem. MSP23S17 kannst du 8x auf einem SS haben, MSP23S08 4x.
Falk B. schrieb: > Daraus kann man 2 digitale SS-Signale dekodieren, Aber nur, wenn die Schwelle bei tristate für beide unterschiedlich ist. Also 2/5 Low ist und 3/5 high. Das ist arg grenzwertig.
A. S. schrieb: > Falk B. schrieb: >> Daraus kann man 2 digitale SS-Signale dekodieren, > > Aber nur, wenn die Schwelle bei tristate für beide unterschiedlich ist. Nö. CMOS hat relativ genau VCC/2 als Schaltschwelle, das paßt schon. > Also 2/5 Low ist und 3/5 high. Das ist arg grenzwertig. 2/5 sind 40% VCC, die meisten CMOS-ICs verlangen offiziell 30% oder weniger. Praktisch funktioniert es.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.