Forum: Mikrocontroller und Digitale Elektronik ADS1115 I2C Problem


von Wolfram L. (amazon)


Angehängte Dateien:

Lesenswert?

Hallo,
ich versuche den ADS1115 anzusteuern. Im Prinzip spricht er auch mit mir 
über die 0x48 I2C-Adressse. Zur Initialisierung habe ich Config-Register 
0x01  auf 0x8387 programmiert.Dies kommt auch richtig an.
Leider liefert er mir im Conversion Register 0x00 nur genau ein Byte 
statt 2 Bytes ab. Das zweite Byte ist konstant FF (siehe Screenshot). 
Das 1. Byte ändert sich auch mit der Eingangsspannung auf dem 1. Kanal.
Ich bin der Meinung ich machs genau wie im Datasheet beschriben, allein 
der Chip unterschlägt einfach Byte 2.
Zur Sicherheit schaue ich auch direkt auf die echten I2C-Signale statt 
auf den C-Code des Controllers(siehe Screenshot).
Vielleicht erkennt jemand meinen Fehler ?!?

von Bernhard S. (b_spitzer)


Lesenswert?

Nach dem ersten Byte kommt beim Lesen ja auch ein NACK. Danach liest du 
Ruhepegel vom Bus...
Ändere deine Lesefunktion! 2x lesen mit ACK, dann am Ende lesen mit 
NACK.

Schöner I2C-Analysator. Was benutzt du da?

: Bearbeitet durch User
von Wolfram L. (amazon)


Lesenswert?

Bernhard S. schrieb:
> Ändere deine Lesefunktion! 2x lesen mit ACK

aber das ACK kommt doch vom Slave, das kann ich doch garnicht 
ändern...Wenn der Slave kein ACK sendet ?!?

von Wolfram L. (amazon)


Lesenswert?

Bernhard S. schrieb:
> I2C-Analysator. Was benutzt du da?

Intronix LogicPort

von Achim S. (Gast)


Lesenswert?

Wolfram L. schrieb:
> aber das ACK kommt doch vom Slave, das kann ich doch garnicht
> ändern...Wenn der Slave kein ACK sendet ?!?

Nein: beim Lesen nach dem ersten Byte muss es vom Master kommen, damit 
der Slave weiß, dass noch weiter gelesen werden soll.

von Wolfram L. (amazon)


Lesenswert?

Achim S. schrieb:
> beim Lesen nach dem ersten Byte muss es vom Master kommen, damit
> der Slave weiß, dass noch weiter gelesen werden soll.
aarrrrg , klar - Du hattest völlig recht.
Tut jetzt einwandfrei!!
Vielen Dank Achim

von Achim S. (Gast)


Lesenswert?

gern geschehen. Aber Bernhard hatte ja den Fehler entdeckt, nicht ich. 
Ich hab nur noch naträglich meinen Senf dazu gegeben :-)

von Wolfram L. (amazon)


Lesenswert?

Achim S. schrieb:
> Bernhard hatte ja den Fehler entdeckt

Oh sorry - hatte mich vertan
DANKE Bernhard!!

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
Noch kein Account? Hier anmelden.