Guten Tag! Sehr viele ICs verwenden ja den I2C-Bus. Das Prinzip gefällt mir sehr gut, aber braucht man wirklich nur 2 Leitungen? Das hieße ja, dass ich z.B. an einen µC mit 32 I/O-Pins ganze 16 I2C-Geräte anschließen könnte, richtig? Nehmen wir als Beispiel mal diesen CCD-Chip: http://www.ovt.com/pdfs/ds_7141_7640.pdf Dieses Teil hat 28 Pins und die Liste "erschlägt" mich regelrecht. Es gibt da z.B. 8 Daten-Pins. Es finden sich aber auch die beiden Pins für I2C (Clock und Data). Müsste ich wirklich nur diese beiden I2C-Pins mit meinem µC verbinden (abgesehen von der Stromversorgung etc.)? Sind diese Daten-Pins sozusagen nur eine andere Möglichkeit der Kommunikation oder wie ist das zu verstehen? Ich würde dieses CCD-Gerät mit so wenigen Leitungen wie möglich betreiben... Danke im Voraus!
Hallo shania, zuerst zum I²C-Bus: Man benötigt wirklich nur 2 Leitungen. Allerdings werden die zusätzlichen Geräte (IC's) parallel an diese beiden Leitung vom µC dazugeschalten, d.h. das du 30 I/O Pins immer frei hast. Vorher die Busleitungen mit einem Pullup auf +5V ziehen. Eingeschränkt von der Anzahl an "Slaves" ist man mit der kapazitiven Last gegen GND. Diese darf 400pF nicht übersteigen. Als Richtwert bringt jeder angekoppelte IC an den Bus 20pF Kapazität mit, so dass du 19 Geräte theoretsch anhängen könntest. Zu deinem Cam-Modul: Auf Seite 3 wird auf weitere Literartur bezüglich des hier verwendeten SCCB - Bus verwiesen. Müsstes dir halt vom Hersteller das Datenblatt besorgen. Soweit ich das sehen konnte, steht nur "controlled" immer dabei. Vielleicht werden damit nur die Funktionen des Moduls gesteuert und die Pins Y0-Y7 sind der Datenausgang. So far Alex
Der I2C-Bus arbeitet mit 7-Bit Adressen, d.h. Du kannst theoretisch bis zu 128 I2C-ICs an die selben 2 Leitungen anschließen. Benutzt Du Software-I2C mit 31 SDA-Leitungen und die SCL-Leitung für alle gemeinsam, dann kannst Du sogar 31 * 128 = 3968 I2C-Bausteine anschließen. das dürfte doch reichen oder. Peter
Hi Alex, vielen Dank für Deine Antwort! Ja, ich denke auch, dass es so ist wie Du sagst (mit dem CCD-Modul). Das Modul wird wohl über den I2C-Bus (der SCCB-Bus entspricht diesem soweit ich das sehen kann) nur gesteuert, z.B. Kontrasteinstellungen, Farbkorrektur usw.. Die 8-Daten-Ausgang-Pins könnte ich dann mit einem Multiplexer auf einen einzigen Pin reduzieren, richtig? Das hieße ich käme mit insgesamt drei Leitungen aus... Noch eine Frage. Du schreibst ja, dass man alle ICs parallel ansteuert. Theoretisch müsste es aber doch auch gehen, für jedes Gerät zwei neue Pins zu nehmen, oder? Zumindest solange die Slave-Geräte nicht untereinander kommunizieren. Z.B. an Pin 0 und 1 eine CCD und an Pin 2 und 3 irgendwas anderes?
@Peter: Auch an Dich dankeschön, habe Deinen Beitrag zu spät gelesen ;) Ja, das müsste sehr gut reichen :)
Hallo shania, der µC hat nur an den dafür vorgesehenen PINs die Funktionseinheit "I2C" bzw. bei Atmels AVR "TWI" implementiert. Also beim Atmega8535 sind das die Pins PC1 und PC0 für SCL und SDA. Und nur hier kannst du deine seriellen Bausteine anklemmen, sonst nirgends! Bedeutet zwei Strippen an die beiden Pins mit Pullup gegen +5V, und daran kannst du dann beliebig die Peripherie parallel anklemmen. Wie der Bus dann verwaltet wird (also das gezielte Ansprechen der Geräte) , habe ich persönlich auch noch nicht ausprobiert. Zum Multiplexen: Es gibt von Philips I/O Erweiterungen. Für deinen Fall den PCF8574. Schau dir mal das an: http://www.goblack.de/desy/digitalt/i2c/signale.html müsste eigentlich alle Fragen beantworten. Viel Spaß, Alex
Kann auch sein das ich jetzt daneben haue, aber ich kann mir meiner Meinung nach so viele SW-I2C-Busse machen wie ich lustig bin. Von Sinn der ganzen Sache mal abgesehen. Ich muss einfach nur das Protokoll entsprechen für zwei Pins implementieren und dann tut das. Lasse mich aber auch gerne korrigieren wenn das so nicht stimmt. Schöne Tag noch, der Jochen
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.