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.