ADS111x Adressierung

OP #7858031
Lesenswert?
• ▲
▼

Hallo zusammen

Ich habe ein kleines Verständnisproblem mit der Adressierung des ADS1115. Ich verwende den Chip auf mehreren Platinen einmal auf einer "Analog In Out" Platine und einmal auf diesen blauen Breakout-Boards, gekauft bei Aliexpress. (https://de.aliexpress.com/item/1005006074781549.html?spm=a2g0o.order_list.order_list_main.40.7e795c5foksGKh&gatewayAdapt=glo2deu)

Auf der "Analog In Out" Platine ist die Adresse 0x92. Das passt meiner Erkenntnis nach auch mit dem Datenblatt überein. Datenblatt S. 20, Tabelle 7-2. Das Breakout Board liefert mir folgende Adressen:

ADDR = VCC -> ADDR = 73

ADDR = GND -> ADDR = 75

ADDR = SCL -> ADDR = 75 ???? sollte 72 sein ?!

ADDR = SDA -> ADDR = 74

Diese Adressen passen aber nicht zum Datenblatt aus der Revision Dec 2024. Ich habe einen Micropython Treiber gefunden: https://github.com/robert-hh/ads1x15 Welcher scheinbar auch den 0x7m Adressraum nutzt.

Ich habe auch schon google bemüht und bin auf einen dritten Adressraum gestoßen: https://forums.adafruit.com/viewtopic.php?t=198406 Den 'dritten' Adressraum kann ich auch noch nachvollziehen, wenn man von 'hinten' anfängt zu zählen und das R/W-Bit ignoriert. Also bspw. 1001000b könnte man interpretieren als "0b 0100 1000" = 0x48 Beim Scannen wird (meines Wissens nach) ein Read-Zugriff auf fast allen geraden Addressen getestet? also wäre oben genanntes Beispiel mit b = 0 folgendes: 0b 1001 0000 = 0x90

Die 0x7m Adressen, welche ich von dem Breakout-Board bekomme verstehe ich nicht. Kann mir das bitte jemand näher bringen? Die 7 im High-Nibble würden doch 0111 bedeuten ?! Um Missverständnissen vorzubeugen, bei oben erwähnter "Analog In Out" (Addr. 0x92) Platine wird C verwendet. Die 0x7m Adressen werden mit Micropython (i2c.scan() Methode) ermittelt. Ich hoffe nicht, dass die Programmiersprachen sich diesbezüglich beißen? (Ich denke eher nicht, aber der Vollständigkeit halber wollte ich es erwähnt haben)

Vielen Dank vorab.

#7858148
Lesenswert?
• ▲
▼

Matt S. schrieb:

Also bspw. 1001000b könnte man interpretieren als "0b 0100 1000" = 0x48 Beim Scannen wird (meines Wissens nach) ein Read-Zugriff auf fast allen geraden Addressen getestet?

Laut I2C-Spezifikation gibt es gerade und ungerade Adressen mit jeweils 7 Bit. Das R/W-Bit legt die Datenrichtung fest. Alles andere ist nicht I2C.

An einem Haus hast du doch auch nicht zwei verschiedene Hausnummern stehen - eine für die Leute die rein gehen und eine andre für die, die heraus kommen, oder?

Je nachdem, mit welchem Pin man den Addr-Pin verbindet, kann man dem Chip eine von vier möglichen Adressen zuweisen (Tab. 7-2 im Datenblatt), so dass man bis zu vier ADS1115 parallel auf einem Bus betreiben kann.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über ein Jahr alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.