0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« on: July 25, 2011, 04:45:34 pm » |
Hi Leute, ich beschäftige mich grad damit, wie ich mehr Ports für mein Arduino bekommen kann. Dabei habe ich mich an den MCP23017 erinnert. Meine Frage ist nun, brauch ich bei jedem Chip eigene Pullups? Muss ich die Datenleitungen mit Kapazitäten auf GND ziehen? Die Chips sind ja I²C Chips. Deswegen frag ich. Und kann man das wie im Bild zu erkennen so machen? ( Leider habe ich grade kein SPLAN zur Hand, des wegen haben ich es mit SPRINT-LAYPUT erstellt) Bitte nicht http://docs.macetech.com/doku.php/centipede_shield , da ich alles auf einer Platine haben möchte und mir 50€ + Versand zu teuer sind. Allerdings stellt sich die Frage, ob die Lib des verlinkten Shields nehmen kann?!?! Ansonsten bin ich für jeden Tipp Dankbar. Die Schaltung:  - Die 6er "Klötze" sind für die Adressen gedacht Und hier noch die Pins des Chips: 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Offline
Brattain Member
Karma: 162
Posts: 15748
+39 349 2158303
|
 |
« Reply #1 on: July 25, 2011, 04:58:25 pm » |
Pullupwiderstände brauchst du nur einmal im Bus. Wenn Du Deine Platine so wie das Centipede Shield verdratest kannst Du auch die Bibiothek benutzen. Grüße Uwe
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #2 on: July 26, 2011, 02:14:37 am » |
Hi Uwe, das Problem ist ich hab keinen Schaltplan entdecken können bei denen. Aber viel großartig anders als ich können die´s ja auch nicht gemacht haben.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Offline
Brattain Member
Karma: 162
Posts: 15748
+39 349 2158303
|
 |
« Reply #3 on: July 26, 2011, 12:11:01 pm » |
Nein, der Schaltplan ist nicht oeffenlich. Du kannst die Bibliothek analysieren und dadurch die Adressen herausfinden. Wenn Du aber 8 I2C Expander verwendest hast Du den ganzen Adressbereich abgedeckt. Das Centipede Shield hat aber nur die Haelfte davon. Du wirst um alle Aus/Eingaenge ansprechen zu koennen die Bibliothek modifizieren muessen. Gruesse Uwe
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #4 on: July 26, 2011, 01:09:22 pm » |
Hi Uwe, nun, ich glaube du liegst zur Hälfte Falsch. Denn die Werben ja damit, dass man 2 dieser Shields benutzen kann. Und aus dem Code Example der ganz oben verlinkten Seite .digitalWrite([0…127], [LOW…HIGH]) - Acts like normal digitalWrite. schließe ich, dass die Library doch 128Pins verwalten kann.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Offline
Brattain Member
Karma: 162
Posts: 15748
+39 349 2158303
|
 |
« Reply #5 on: July 26, 2011, 01:15:21 pm » |
Ok Du hast Recht, hab ich nicht gut gelesen. Also wenn Du 8 MCP23017 nimmst dann sind alle Adressen abgedeckt. Das einzige was Du noch entdecken musst ist welcher Ausgang welcher Zahl entspricht. Gruesse Uwe
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #6 on: July 26, 2011, 01:33:10 pm » |
Wie meinst du das, dass alle Adressen weg sind? Alle von dem Chipmodell? Das wäre klar. Ich habe nemlich einen kurzen Augenblick gedacht, dass du meinst, dass alle I²C Adressen weg sind *verwirrt* ...das wäre ja Blödsinn. Aber mir fällt grad ein das ich ja noch die PCF8574P habe, die ja wieder andere Adressen haben...so hätte ich ja noch ma 64 Pins mehr. Dann wäre ich bei nen MEGA bei 54+128+64= 246 Pins  danke fürs Helfen!
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Offline
Brattain Member
Karma: 162
Posts: 15748
+39 349 2158303
|
 |
« Reply #7 on: July 26, 2011, 02:52:07 pm » |
Der MCP23017 hat 3 Adress-Pins die in die I2C-Adresse eingehen. 3Bit sind 8 Moeglichkeiten und darum kannst du 8 MCP23017 in einem I2C Bus verwenden. Gruesse Uwe
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #8 on: July 26, 2011, 02:58:27 pm » |
Das einzige was Du noch entdecken musst ist welcher Ausgang welcher Zahl entspricht. Gruesse Uwe
Nun ich glaube das muss ich wohl durch aufbauen ausprobieren. Ich kann das aus der Lib nicht herauslesen. Keine Ahnung wo/wie er da die 8 möglichen Chips mit I²C-Adressen versieht, oder wie er Bsp. NUR den 6ten Chip anspricht. Vielleicht kann mir ja jmd nen Tipp geben wo die Chips ihre Adresse herbekommen, immherhin gibts ja die Funktion .portWrite([0...7], was darauf schließen lässt, dass er so die einzelnen Chips anspricht. Hab aber keine Funktion endecken können die ne Adresse zuweisst.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #9 on: July 26, 2011, 02:59:54 pm » |
Der MCP23017 hat 3 Adress-Pins die in die I2C-Adresse eingehen. 3Bit sind 8 Moeglichkeiten und darum kannst du 8 MCP23017 in einem I2C Bus verwenden. Gruesse Uwe
Jo 2³ Adressen. Ich war vorhin nur etwas verwirrt 
|
|
|
|
|
Logged
|
|
|
|
|
SF Bay Area
Offline
Edison Member
Karma: 6
Posts: 1215
Arduino Ninja
|
 |
« Reply #10 on: July 26, 2011, 04:38:38 pm » |
Don't build the PCB as shown, the MCP23017 is available in skinny (0.3") DIP, not wide (0.6") DIP.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #11 on: July 26, 2011, 05:17:28 pm » |
Don't build the PCB as shown, the MCP23017 is available in skinny (0.3") DIP, not wide (0.6") DIP.
I've done for demonstration purposes only. But thanks for the tip!
|
|
|
|
|
Logged
|
|
|
|
|
Meran/BZ/IT
Offline
Full Member
Karma: 0
Posts: 177
Arduino rocks
|
 |
« Reply #12 on: July 26, 2011, 05:36:13 pm » |
Hallo, ich bin vor kurzem auf den I2C Switch PCA9546 gestossen. Da Du ja bei 3 variablen Adress-Bits nur 8 I2C-Chips mit derselben Grundadresse ansprechen kannst, könnte dieser Chip die Lösung für noch mehr I2C Chips sein. So, wie ich die Beschreibung verstanden habe, kann man damit die Arduino I2C Leitung in 4 I2C Leitungen aufsplitten und diese sogar gezielt ab/anschalten. Dann kann man also jeweils eine Leitung á 8 Chips öffnen und die anderen 3 schliessen. Damit sollten 4x8 Chips x 8 Ausgänge funktionieren. Da der Switch auch 2 Adressbits hat, kannst Du sogar 4x4x8 Chips ansprechen..... oder wenn Du an einen Switch einen anderen Switch hängst, der wiederum an einem anderen Switch hängt.....  Gruß Reinhard PS.: Da mein Gedankenmodell nur theoretischer Natur ist, wäre ein Praxisbericht mit einem I2C-Switch super!
|
|
|
|
|
Logged
|
|
|
|
|
Meran/BZ/IT
Offline
Full Member
Karma: 0
Posts: 177
Arduino rocks
|
 |
« Reply #13 on: July 26, 2011, 05:40:28 pm » |
Hallo, mir ist noch was eingefallen:
PCA9555 16x I/O
Gruß Reinhard
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #14 on: July 26, 2011, 05:50:48 pm » |
Hey das ist ja ne coole Sache, danke für den Hinweis. Den Chip kannte ich noch garnicht. Das macht ja Dimensionen möglich, die nur noch vom kleinen Speicher begrenzt werden.
|
|
|
|
|
Logged
|
|
|
|
|
|