PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 4 AD5667 am I2C Bus



Schottky
22.09.2010, 11:07
Folgendes Problem.
Ich möchte 4 AD5667 an einem I2C betreiben. Allerdings kann ich laut Datenblatt nur 3 verschiedene Adresse vergeben. Das heisst das maximum an AD5667 an einem Bus ist gleich 3.
Wie löse ich dieses Problem um 4 betreiben zu können?

Kann ich es so machen?
Ich hänge die ADDR Pins an den µC und setze die 3 mit denen ich grade nicht spreche auf Vcc während der mit dem ich spreche auf GND gesetzt wird und ich spreche immer mit der Adresse für GND. So kann ich den AD5667 auswählen der mich gerade interessiert?
Gibt es eine bessere Lösung?

TKCUBA
22.09.2010, 11:26
Hey wie ist es wenn du einen I2C Multiplexer davor schaltest.
z.B. den PCA9543
dann kannst du ohne groeßeren Aufwand mehrere I2C fähige IC mit der selben Adresse verwenden.

BGA TK

Jakob L.
22.09.2010, 11:44
Bist du sicher, dass der AD5667 im Betrieb ständig den Status von ADDR überprüft? Es kann auch sein, dass das Teil nur beim Starten schaut, wie der Pin beschaltet ist und dann die I2C-Adresse bis zum nächsten Einschalten fest speichert.

Alternativ kann man auch einen zweiten I2C Bus (notfalls per Software) aufmachen.

Eine weitere Möglichkeit wäre, dafür zu sorgen, dass das Taktsignal (SCL) nur noch bei einem Teil der Chips ankommt. Dazu könnte man das SCL-Signal des Masters über einen Widerstand mit einem IO-Pin verbinden. Wenn man diesen IO-Pin auf low schaltet, dann liegt dort kein Taktsignal mehr an. Wenn man den Pin jedoch auf Tristate (Input) schaltet, dann liegt dort ein Taktsignal an, das man an bis zu 3 AD5667 (mit unterschiedlicher Adresse) anschliessen kann. Clock stretching geht dann allerding nicht mehr.

Vitis
22.09.2010, 23:32
doofe Frage mal meinerseits ... aber das Ding hat zwei Adresspins
a0 und a1 ...

daraus ergeben sich für mich 4 Kombinationsmöglichkeiten ...

00
01
10
11

oder hab ich da was im Datenblatt übersehen?

sast
23.09.2010, 08:06
@Vitis ja hast du, denn es gibt nur ein three-state Adresspin. Siehe Tabelle 7.

The AD56x7R/AD56x7 each have a 7-bit slave address. The five MSBs are 00011 and the two LSBs (A1, A0) are set by the state of the ADDR address pin. The facility to make hardwired changes to ADDR allows the user to incorporate up to three of these devices on one bus, as outlined in Table 7.

@Shottky das mit dem auf GND ziehen und während des Betriebes auf zB VCC umschalten kannst du doch ganz einfach dadurch testen, dass du nur mal einen anschließt und nach dem Umschalten über eine andere Adresse zugreifst. Wenns geht ists gut. Sonst musst du halt über eine zusätzliche Schaltung nachdenken.

sast