Forum: Mikrocontroller und Digitale Elektronik AM2315 Temp. und Feuchtesensor


von Ingo S. (schicki)


Lesenswert?

Hallo Zusammen,

ich habe gerade einen AM2315 bei mir. Ich bin etwas unsicher wegen der 
I2C Adresse. Im Datenblatt stehen die 0xB8 und die und 0xB9. Wenn man 
sich im Netz nach Beispielen umschaut, findet man dort die 0x05C. Bei 
mir liefert der Sensor auf allen Adressen nur 0xFF. Diese Werte sehe ich 
auch auf dem Oszi.

Kennst jemand diesen Effekt? Ist das ggf. nur ein Timing Problem 
zwischen Wackup und dem Lesebefehl?

VG
Ingo

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Manche geben die I²C Adresse als 7-Bit Adresse an und andere als 8-Bit 
Adresse mit dem LSB auf R/W Funktion.
So wird die Angabe 0xB8 und 0xB9 letzteres bedeuten - also 0xB8 zum 
Schreiben und 0xB9 zum Lesen. Schiebt man diese Adresse um 1 bit nach 
rechts:

0b10111001 - 0xB9 - Leseadresse 8-Bit

dann wird daraus
0b01011100 , und das ist dann 0x5C. Das R/W Bit wird dann von der 
Library erzeugt.

Welche Syntax deine I²C Lib benutzt, teste man am besten durch ein 
bestätigtes Adressbyte, bei dem das ACK Bit vom Slave mit low 
beantwortet wird. Wenn der Slave kein ACK liefert, fühlte er sich nicht 
angesprochen.

Der AM2315 ist insofern eigenartig, weil er eine Wake-Up erstmal mit 
NACK beantwortet, also so tut, als wäre er nicht da. Fragt man ihn dann 
max. 3ms später nochmal ab, sollte er mit ACK antworten und dann bereit 
zum Auslesen der Register sein. Ganz hinten im schrecklichen Datenblatt 
ist eine Flowchart, wie mans machen soll.

von Ingo S. (schicki)


Lesenswert?

Danke, sorry jetzt dämmert es. Ich habe den Wald vor lauter Bäumen nicht 
gesehen.

Ingo

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.