Ich plane an einem I²C Bus drei Bausteine zu verbauen.
Gerne würde ich auch die korrekte eindeutige I²C Adressen planen.
Allerdings verstehe ich die Datenblätter nicht.
Hier die drei Datenblätter:
Wie kann ich die I²C Adressen einstellen (durch Beschalten der AD0, AD1, AD2 Anschlüsse mit VIN (high) oder GND (low) ist mir schon klar).
Aber welche Beschaltung erzeugt welche Adresse? Das ist mir nicht klar?!
DS2482-100, Seite 15
Rechts unten siehst Du, wie die Adresse aufgebaut ist.
Je nachdem, ob die Adresse in 7 oder 8 Bit von der Lib erwünscht ist, erbibt Sich dort:
0x18, 0x19, 0x1A (7bit)
0x30,0x32,0x34 (8bit)
Jeweils 4 Bit ergeben eine Ziffer.
DS3231, Seite 16, Figur 3
0x68 (7bit)
0xD0 (8bit)
DS2482-800, Seite 16
0x18,0x19,0x1A (7bit)
0x30,0x32,0x34 (8bit)
Bei 8bitiger Angabe ist immer nur jede 2.te ID 'die ID' : +1=lesen, 0=schreiben
Bisher habe ich recherchiert, dass die Adresse der DS3231 wohl nicht änderbar ist.
Diese ist 0x68 von der RTC.
Und 0x57 ist der Speicherchip auf der RTC.
An dem DS2482-100 habe ich AD0 und AD1 auf GND gelegt.
Welche Adresse ergibt sich dann daraus?
Wie rechnet man das aus?
ja das ist mir klar. Hätte ich auch so gemacht.
In diesem Fall geht aber leider nicht try & error, weil ich die Teile nicht da habe und den Schaltplan plane.
Geht also nur theoretisch momentan.
uwefed:
Ohne da lange herumzurechnen kannst Du ein Bauteil am I2C Bus anschließen und der I2C scanner Sketch laufen lassen.
Grüße Uwe
Was bei Problemen eh der erste Schritt ist - also warum nicht von vorne herein die I²C-ID damit herausfinden und im Produktiv-Sketch verwenden?
Viel mehr, als den Scanner bei Problemen erneut nutzen zu müssen, kann eh nicht passieren.
So ist zumindest sicher gestellt, daß Da auch Jemand antwortet - weil Alle, Die NICHT angesprochen werden, bleiben ruhig - und wenn die ID nicht passt, passt's halt nicht.
MfG
PS: Zu 'richtig in #8' - genau DAS steht im Datenblatt, welche ID bei welchem Pegel zusammen kommt - und ob die Bits unbeschaltet HIGH oder LOW sind, ebenso.
Also auch, in welche Richtung das Ziehen überhaupt Sinn macht, weil die ICs die Pins selber in eine Richtung pullen, damit die Adresse eindeutig und definiert ist.
postmaster-ino:
PS: Zu 'richtig in #8' - genau DAS steht im Datenblatt, welche ID bei welchem Pegel zusammen kommt - und ob die Bits unbeschaltet HIGH oder LOW sind, ebenso.
Also auch, in welche Richtung das Ziehen überhaupt Sinn macht, weil die ICs die Pins selber in eine Richtung pullen, damit die Adresse eindeutig und definiert ist.
Das ist ein ganz gewichtiger Punkt!
I2C, an sich, ist sehr gut genormt(besser: spezifiziert).
Die Adressvergabe mit A0 bis ca A5, nicht.
Da kocht jeder Hersteller sein Süppchen.
Auch durchaus mit mehreren Rezepten.
Verallgemeinerungen(falsche Annahmen) sind hier die Mutter des Versagens.
OK, einen kann ich ja mal raus hauen!
Bei manchen I2C Komponenten kann man die Adresse einstellen.
Genauer kann ich es nicht.
Bei manchen über Adresspins, manche über Software, manche muss man (wunsch) konfiguriert erwerben, manche halten ihre Konfiguration über den Stromverlust hinweg, manche nicht, hats Pullup oder -down für die Ax Pins, oder nix davon.... und viele weitere Varianten.
Vielleicht bin ich blind oder blöd oder hab einfach nur total keine Ahnung davon?!
Im Datenblatt vom DS2482-800 habe ich 23 Stellen mit "low" und 23 Stellen mit "high" gefunden.
Die Antwort auf
und ob die Bits unbeschaltet HIGH oder LOW sind
habe ich da nicht gefunden?!
Vermutlich steht es da auch nicht im Klartext drin, sondern irgendwo zwischen den Zeilen?!
Warum steht da nicht einfach eine Tabelle drin, die jeder Depp verstehen kann, ohne irgendwas rechnen zu müssen?
Wahrscheinlich hab ich auch mal wieder zu viel erwartet.
Für mich war das eine einfache Frage, die man mit einer Tabelle hätte beantworten können, aber nun zieht hier schon wieder der 11 Post die Antwort immer noch nicht aus den Nasen. Schade....ich verstehe es nicht. Die Welt könnte so einfach sein
Leider bin ich kein Fachmann, schade, dass hier nur Fachleute dabei sind, die alles verstehen und man ein Elektronikstudium benötigt um hier Fragen stellen zu dürfen, bzw. ein Elektronikstudium benötigt um die Antworten verstehen zu können. Nichts für Anfänger und hobbybegeisterte Ahnungslose.
Wenn man das meint, also seine angebliche Unwissenheit kultiviert, dann geht das schief.
Du hast Durchaus auch praxisnahe hinweise bekommen, wie Du es lösen kannst.
Jammern macht aber anscheinend mehr Spaß.
themanfrommoon:
Leider bin ich kein Fachmann, schade, dass hier nur Fachleute dabei sind, die alles verstehen und man ein Elektronikstudium benötigt um hier Fragen stellen zu dürfen, bzw. ein Elektronikstudium benötigt um die Antworten verstehen zu können. Nichts für Anfänger und hobbybegeisterte Ahnungslose.
Ist doch quatsch.
Auch als nicht Fachmann kann man das lernen. Da gibt es genug Möglichkeiten.
Wenn du willst, wirst du es auch lernen.
Wenn Du einen Eingang auf HIGH (Versorgungsspannung 5 bzw 3,3V) legst wird dieser als 1 erkannt. Mit GND geschaltet liest er 0.
Also das Beispiel aus #5
Das steht doch im Datenblatt. A2 bis A6 sind fest. Also hast du 001 10 A1 A0
Und aller spätestens, wenn Du einen Scanner über den Slave rennen lässt, wirst Du 'sehen', mit welcher Adresse der unbeschaltete Slave antwortet.
Wenn's Dir unbedingt darum geht, für jedes Adressbit einen Jumper auf's PCB zu bekommen: mach doch!
Wäre für 3er, also Vdd,Pin,GND - dann ist's auch egal, wohin der Kamerad zieht, der Jumper wird Ihn schon überzeugen können.
Wenn's Dir um die beiden DS2482 geht - Die haben bei identischer Beschaltung identische Adressen - hier einfach einem der Slaves A0 auf GND, dem Anderen auf Vdd - jesses, wir sind fertig, war doch gar nicht sooo schwer.
Bei der RTC ist's nicht vorgesehen, daß Diese einstellbar ist - auch macht's echt wenig Sinn, mehrere RTCs am gleichen Bus zu betreiben - oder reicht Dir Eine (recht genaue) Uhrzeit nicht?
Mehrere dieser Slaver am gleichen Bus würden - in Theorie und im Normalfall - identisch reagieren - also kein wirklicher Gewinn - und wenn Sie halt eben NICHT identisch reagieren, hast Du Datengulasch.
Also: Max 1 RTC
Zur aller aller größten Not muß man recherchieren - es wird Sich ja wohl irgendwo (in den Beispielen) ein Sketch finden lassen, Der eine DS3231 anschwätzen soll - die dort genannte ID mit Der im Datenblatt vergleichen und schon wird klar, ob's 7 oder 8 Bit sind.
themanfrommoon:
Vielleicht bin ich blind oder blöd oder hab einfach nur total keine Ahnung davon?!
Einigen wir uns auf ungeübt ;D
Datenblätter haben geübte, gut ausgebildete Entwickler als Zielgruppe. Hobbybastler gehören nicht dazu.
themanfrommoon:
Im Datenblatt vom DS2482-800 …
… in TYPICAL OPERATING CIRCUIT alle ADx an GND, also nicht in der Luft hängend.
… in PIN DESCRIPTION “I2C Address Inputs; must be tied to VCC or GND. These inputs determine the I2C slave address of the device, see Figure 8.”
==> GND oder VCC ist verpflichtend.
… in Figure 8. DS2482 Slave Address sehe ich die Grundadresse, die ich als “11000” in meinen Taschenrechner eintippe und 24 oder 0x18 angezeigt bekomme (Win10 Rechner/Programmierer). Das R/W-Bit zählt bei Wire nicht mit.
AD0, AD1 und AD2 auf GND ==> 0x18
AD1, AD2 auf GND und AD0 auf VIN ==> 0x19
Für geübte Leser ist das Datenblatt hinreichend eindeutig, finde ich
PS: In meinen frühen Basteljahren hätte ich mich über einen freien Zugang zu Datenblättern extrem gefreut. Mit einer Firmenvisitenkarte ausgestattet war es immer noch sehr anstrengend, die Messestände aufzusuchen und nach Informationsmaterial zu fragen. Heute klickt man und muß den Inhalt “nur” noch verstehen.
PS: In meinen frühen Basteljahren hätte ich mich über einen freien Zugang zu Datenblättern extrem gefreut. Mit einer Firmenvisitenkarte ausgestattet war es immer noch sehr anstrengend, die Messestände aufzusuchen und nach Informationsmaterial zu fragen. Heute klickt man und muß den Inhalt "nur" noch verstehen.
Meine Elektronik-Jugend bestand eigentlich nur aus Try&Error, Logic-ICs auf Loch/Streifenraster - daher dürften auch noch meine L297/L298 stammen
Eine CNC war schon in sehr frühen Jahren angedacht - Heute finde ich kaum Zeit, den Kram zu zeichnen, Den ich fräsen will ... eine kleine Chinesin wartet sehnsüchtig im Keller (oh oh ... Das liest Sich jetzt aber ...) - wurde aber Heute erst wieder benutzt - Konstruktion für des Bruders LKW, Spannungsversorgung zum 'untern Sitz schrauben'.
Trotzdem war 'früher' - auch in Sachen Elektronik - durchaus das Erleben wert.