Hallo Miteinander Ich leide unter extremer Pinarmut. Ich habe I2C und auch SPI in der Anwendung. Leider habe ich voraussichtlich mind. 8 SPI-Slaves (Zumindest sollte ich die Slave-Select-Leitungen bereitstellen). Jetzt kann ich beim besten Willen nicht 8 Pins für die Slave-Leitungen bereitstellen. Meine Idee: Über I2C sende ich eine Nachricht an einen MUX mit I2C-Anschluss. Der stellt dann die Verbindung "Slave zu uController" her. Danach beginnt die normale SPI-Übertragung. Gibt es vielleicht einen Multiplexer mit I2C-Anschluss oder ist das ein völlig abwegiges Denken meinerseits? Freue mich wie immer über jegliche Hilfe VG Martin
Die Idee, die Slave-Select-Leitungen mit einem einfachen 74138 und drei Steuerleitungen zu erzeugen, missfällt? Alternativ verwende einen IO-Expander, der am I2C-Bus hängt, der stellt Dir weitere I/O-Pins zur Verfügung, die Du als Slave-Select-Leitungen verwenden kannst. Ein Beispiel ist der PCF8574.
Hallo Rufus Einen normalen MUX hab ich mir auch schon überlegt. 8 Slaves --> 4 Leitungen Die Lösung I2c-Mux 8 Slaves --> 1 Leitung (I2C wäre ja schon vorhanden) Das mit dem IO-Expander hört sich sehr gut an. Ist nach kurzem überfliegen aber ein bisschen zu langsam. Ich hab nen LPC2294 auf der einen Seite (läuft mit 60MHz) und der Expander hat eine Output-Data-Valid-Time von 4us. Das entspricht einer Wartezeit von 240 Takten. Dazu kommt noch die Übertragungszeit des I2C von min. 0,1ms. Was wiederum ca. 6000 CPU-Zyklen entspricht. Gut die CPU kann nebenzu was anderes machen aber das Delay ist einfach zu lang. Ich hoffe ich habe da jetzt keinen Denkfehler drin. Trotzdem vielen Dank fürs Mitdenken. VG Martin
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.