Hallo! Ich möchte 4 24LC128 mit I²C bus an den PIC24F32KA302 anschließen. Da es mehrere EEPROMs sind, muss man die über die chip select bits A0-A2 auswählen. Und genau da ist mein Problem. Über die SDA-Leitung wird ein control byte gesendet (Abbildung DB_ausschnitt), wo die conrol bits integriert sind. Wie kann man die abgreifen und auf den chip select bus (Abbildung Schaltplan) legen ohnedie Pins des PICs zu beanspruchen? Bitte habt Nachsicht, bin ein ziemlicher Neuling auf dem Gebiet. Mit freundlichen Grüßen Aerokos
@ Konstantin H. (aerokos) >mehrere EEPROMs sind, muss man die über die chip select bits A0-A2 Das sind Adressen, keine Chip Selects. Chip Selects sind normalerweise elektrische SIgnale, wie z.B. beim SPI-Bus. > Wie kann man die >abgreifen und auf den chip select bus (Abbildung Schaltplan) legen >ohnedie Pins des PICs zu beanspruchen? ??? Ganz einfach. Du musst dem jeweiligen IC die Adresse schicken, die am Chip mit den Pins eingestellt ist. Die Pins werden fest an GND oder VCC angeschlossen. Somit kann man bis zu 2^3=8 ICs vom gleichen Typ an einen I2C Bus hängen. Der IC vergleicht die empfangene Adresse mit der an den Pins eingestellten Adresse und antwortet, wenn sie übereinstimmen.
oder anders gesagt, löten muss man ! das erste (nullte) EEPROM bekommt an A0 A1 A2 GND -> Sekundäradress 0 das zweite (erste) EEPROM bekommt an A1 A2 GND und an A0 VCC -> Sekundäradress 1 das dritte (zweite) EEPROM bekommt an A0 A2 GND und an A1 VCC -> Sekundäradress 2 das vierte (dritte) EEPROM bekommt an A2 GND und an A0 und A1 VCC -> Sekundäradress 3 .... .... das achte (siebente) EEPROM bekommt an A0, A1 und A2 VCC -> Sekundäradress 7 und immer so weiter bis zu 8 dieser EEPROM mit gleicher Basisadresse
Vieln Dank für die ausführliche Hilfe. Jetzt sollte alles korrekt angeschlossen sein. Gruß
Konstantin H. schrieb: > Jetzt sollte alles korrekt angeschlossen sein. Falls du nicht den 24LC128 in der Bauform CS einsetzt, sollte das so passen. So ein Verdrahtungsplan ist allerdings etwas mehrdeutig, wenn weder Pinfunktion noch Bauform angegeben sind und man das Datenblatt nicht daneben liegen hat.
Ganz einfach: 1010 ist der feste Adressteil, A2,A1,A0 der variable, den du über die drei gleichnamigen Pins am EEPROM vorgibst. - Natürlich bei jedem EEPROM eine andere Kombination. Einen bestimmten EEPROM sprichst du mit der Slave-Adresse an, die sich aus 1010 + Belegung der drei Adresspins ergibt. Beachte, falls du später mal andere Typen verwenden willst: Es gibt auch I2C-EEPROMs, bei denen A2, A1 und A0 nicht oder nur teilweise zur Adressierung mehrerer gleicher EEPROMs genutzt werden. Statt dessen sind diese dan Teil der Speicheradresse. Alles klar?
Mike schrieb: > So ein Verdrahtungsplan ist allerdings etwas mehrdeutig, wenn weder > Pinfunktion noch Bauform angegeben sind und man das Datenblatt nicht > daneben liegen hat. Ich habe meine eigene Bibiothek erstellen müssen, dewegen fehlt die Beschriftung. Das müsste ich korregieren. Ich verwende die Bauform PDIP/SOIC und habe die Verdrahtung nach dem Datenblatt erstellt. Michael L. schrieb: > Alles klar? Ja, Danke! Die Programmierung an sich muss aber noch etwas warten
SCL und SDA müssen beide mittels PullUp-Widerständen auf die I/O-Spannung des µCs gezogen werden. Bei Ihnen dann wohl auf die 3V3. Die 10k sind aber etwas hochohmig. Nehmen Sie 1k5. Die Frage nach dem 24C512 ist aber noch offen und würde mich auch interessieren. Nebenbei sollten Sie sich auch an die gängigen Praktiken beim Anlegen von Bauteil-Symbolen halten. So sieht das aktuell in Ihrem Schaltplan einfach nur gruselig aus.
Und sehen Sie die Serienwiderstände (100R) in den Stichleitungen zu den I2C-Devices vor. Die Decoupling-Cs fehlen auch noch.
i2c schrieb: > SCL und SDA müssen beide mittels PullUp-Widerständen auf die > I/O-Spannung > des µCs gezogen werden. >Bei Ihnen dann wohl auf die 3V3. >Die 10k sind aber etwas hochohmig. Nehmen Sie 1k5. Ich habe mich an diesen Datenblatt von Microchip orienriert http://ww1.microchip.com/downloads/en/AppNotes/00974A.pdf i2c schrieb: > Die Frage nach dem 24C512 ist aber noch offen und würde mich auch > interessieren Es sind 4 Datensätze auf 4 Speicherbausteine, die in den Sockeln verbaut sind. Diese sollen bei bedarf schnell ausgetauscht werden können.
Konstantin H. schrieb: > Schaltplan_berichtigt.gif Nee, dein IC namens DATA_3 hat an den Adressbeinchen einen dicken Kurzschluss, du solltest die Leitung zwischen Pin 3 und 4 auftrennen, dann haben alle 4 IC eine einzigartige Adresse. Konstantin H. schrieb: >>Bei Ihnen dann wohl auf die 3V3. >>Die 10k sind aber etwas hochohmig. Nehmen Sie 1k5. > > Ich habe mich an diesen Datenblatt von Microchip orienriert > http://ww1.microchip.com/downloads/en/AppNotes/00974A.pdf Gut, wenn Microchip das sagt..., aber an SCL muss auch noch ein Pullup ran. Bei längeren und schnelleren I²C Verbindungen ist es aber wirklich ratsam, die Pullups zu verkleinern und kräftigere Treiber zu benutzen. Ein paar Dämpfungswiderstände im Bereich von 22 bis 100 Ohm in den Leitungen können sehr steilflankige Signale etwas 'beruhigen'.
Matthias Sch. schrieb: > Bei längeren und schnelleren I²C Verbindungen ist es aber wirklich > ratsam, die Pullups zu verkleinern und kräftigere Treiber zu benutzen. > Ein paar Dämpfungswiderstände im Bereich von 22 bis 100 Ohm in den > Leitungen können sehr steilflankige Signale etwas 'beruhigen'. Das Mit Pull-Ups hast du schon recht, jedoch sehe ich keine Notwendigkeit in den Dämpfungswiderständen, da die Leitungen sehr kurz sind. Um die Flanken steiler zu machen würde ich lieber auf die Leitungskapazitäte zugreifen. So wird ermöglicht eine steilere Flanke bei 100 Hz, 300 pF Kondesator und 2 kOhm Widerständen zu erreichen. http://www.i2c-bus.org/de/terminierung-und-kapazitaeten/
@ Konstantin H. (aerokos) >Leitungskapazitäte zugreifen. So wird ermöglicht eine steilere Flanke >bei 100 Hz, 300 pF Kondesator und 2 kOhm Widerständen zu erreichen. ??? >http://www.i2c-bus.org/de/terminierung-und-kapazitaeten/ So ein Quark. I2C hat mit TERMINIERUNG im HF-Sinn nichts am Hut. Rp ist ein Pull-Up Widerstand, keine Terminierung. Dass die ansteigenden Flanken bei kleineren Pull-Up Widerständen schneller werden, ist ja logisch.
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.


