Mehr als 2 SPI Chip Select?
-
mlt -
25. August 2014 um 15:21 -
Erledigt
Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
-
-
Mehr als 2 SPI Chip Select?? Schau mal ob du hier fündig wirst!
-
ja, ich würde mit einem doppel Multiplexer 74HC4052
http://www.nxp.com/documents/data_sheet/74HC_HCT4052.pdf
die SPI und CLK vervielfachen, hier wären 4 möglich mit dem 2x 74HC4051 eben 8es gibt auch 16x
http://www.nxp.com/documents/data_sheet/74HC_HCT4067.pdfwelcher Kanal gilt wählt man binär mit den GPIO aus
-
Ich habe mir mal so einen 74HC4052 bestellt. Nun wollte ich nochmal nachfragen, ob die Anschlüsse richtig sind:
CodeRPI 74HC4052 RPi (Ausgang) 2Y0 VCC 3V3 (Ausgang) 2Y2 1Y2 (Ausgang) VCC 2Z 1Y1 (Ausgang) (Ausgang) 2Y3 1Z VCC (Ausgang) 2Y1 1Y0 (Ausgang) GND E 1Y3 (Ausgang) GND VEE S0 GPIO X GND GND S1 GPIO X
Falls das stimmt, so stellt sich mir die Frage, warum die Ausgänge doppelt sind? Im Datenblatt steht ja, wenn z.B. S0 und S1 ein Low Signal bekommen => nY0 and nZ. Ist also nZ auch Low, so ist der Ausgang immer Null? Außerdem steht das "n" ja offensichtlich für 1 und 2, werden also 1Y0 und 2Y0 ein Ausgangssignal geben?
-
mach mal einen Schaltplan, bin zu müde um auf verbales zu philosophieren
es kommt auch auf die Ansteuerung des slave anob CE 0 oder 1 oder beide benutzt werden, ob es zusätzliche CS gibt.....
ich kann das nicht für alle SPI pauschal beantworten.
evtl. können SPI und Clk auch an alle gehen nur die CE0 CE1 CS müssten umgeschaltet werden.
-
-
das sind doch ZWEI 1aus4 Multiplexer
die eine Gruppe heisst 1 die andere Gruppe 2 schau bitte genau hin.....
und wir wollten ja SPI und CLK oder CE0 und CE1 multiplexen
-
ok, das bedeutet ich kann Gruppe 1 als CS und Gruppe 2 als CLK oder beide als CS?
Und noch etwas: Ich kann ja für S0 und S1 GPIOs verwenden (und für Z0, Z1 am besten auch, um alle auf einmal an/abzuschalten)? Ich hatte erst gedacht, ich müsse den Multiplexer auch per SPI ansprechen, so wie etwa I2C Multiplexter mit I2C angesprochen werden.
-
für die Multiplexer benutzt du normale GPIO und stellst die Weichen VORHER so wie du sie brauchst
ob du nun die CE0 oder CE1 oder die SPI und SCK multiplext kommt hat auf den Chip an der angesprochen wird, ich bin mal so frech und behaupte alle SCK und SPI out können an jeden Chip gelegt werden der Clock und SPI in haben will, welcher Chip nun angesprochen wird entscheiden ja CE0 oder CE1 und ggffs noch CS welche eh aus normalen GPIO gesetzt werden.
Ich habe bis jetzt nur 3x SPI benutzt, 2x Display und 1x RFM12(b) aber noch nie am PI, egal jeder SPI wollte etwas andere select Signale, am Arduino, mal SS (slave select was wohl den CE0/1 entspricht) mal einfach nur CS aus einem Port, mal eine Kombinatin von allem.
-
eine letzte Frage stellt sich mir noch: Und zwar was passiert, wenn ich die Sinale der GPIOs ändere. Angenommen ich habe beide auf HIGH und damit bei nY0 ein Signal. Will ich jetzt bei nY3 ein Signal muss ich beide GPIOs auf LOW stellen. Falls ich S0 zu erst auf LOW stelle und danach S2, so erhalte ich doch für einen kurzen Augenblick bei nY1 eig Signal. Vor allem wenn ich die Y als Clock benutze könnte es doch Probleme geben, weil die flankengetriggert sind oder? Müsste ich dazu nicht E auch an einen GPIO setzen und vor dem Wechsel jedes mal auf HIGH setzen, GPIOs wechseln und dann wieder auf LOW(zumindest wenn S0 und S1 gewechselt werden)?
Und noch etwas ist mir grade eingefallen: Sind nZ denn Ein oder Ausgänge? Denn in der Funktionen Tabelle stehen sie bei Channel on immer dabei.
-
eine letzte Frage stellt sich mir noch: Und zwar was passiert, wenn ich die Sinale der GPIOs ändere. ..... Vor allem wenn ich die Y als Clock benutze könnte es doch Probleme geben, weil die flankengetriggert sind oder? Müsste ich dazu nicht E auch an einen GPIO setzen und vor dem Wechsel jedes mal auf HIGH setzen, GPIOs wechseln und dann wieder auf LOW(zumindest wenn S0 und S1 gewechselt werden)?logisch, genau dazu ist E enable ! um zu bestimmen wann durchgeschaltet wird !
Und noch etwas ist mir grade eingefallen: Sind nZ denn Ein oder Ausgänge? Denn in der Funktionen Tabelle stehen sie bei Channel on immer dabei.
Das sind analog Schalter die können rein und raus
also entweder von einem Eingang ein Signal auf einen der 4 Ausgänge zu legen, oder um ein Signal aus 4 auf 1 Eingang zu legen !
zusätzliche 4 Ausgangs oder 4 Eingangssignale, dem Analogschalter ist die Signalrichtung egal !
anders als bei normaler Logik, das macht es ja so schön einfach ! und diese Teile so vielseitig verwendbar. Somit kann auch ein GPIO entweder als IN oder OUT vervielfacht werden !
OK bei den 4052 ist es gerade parig, man braucht 2 Adressen, einen Enable macht 3 GPIO um aus einem 4ten eben 4 zu machen, bei dem 8 zu 1 wirds interesanter, 3 Adressen, 1 enable macht 4 die zu 8 werden !
aber alle Adressen können bei mehren Chips zusammengelegt werden, wer dann aktiv wird entscheidet Enable !
Ergänzung,Der SPI Clock wird aber m.E. nur vor der Übertragung eingeschaltet, so das ein Timingproblem nicht auftreten sollte solange ich nur an den Weichen rumspiele.
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!