Sodala. Hab mir mal das Datenblatt durchgelsen.
Kann mir die folgende Vorgangsweise bestätigt werden?
Achtung: Pullup !!! 5,1K von SDA auf VCC
Die Kommunikation ist wie folgt (Vom Sensor aus gesehen):
Startsignal
Sensor antwortet
Sensor sendet
Sensor Übertragungsende
Startsignal:
uC zieht SDA auf LOW min.800µs max.20ms typ. 1ms
uC lässt SDA auf HIGH min.20µs max. 200µs typ. 30µs
Sensor antwortet:
Sensor zieht SDA auf LOW min.75µs max.85µs typ. 80µs
Sensor lässt SDA auf HIGH min.75µs max.85µs typ. 80µs
Sensor sendet:
Es wird SDA für jedes Bit zuerst auf low gezogen,
danach wird eine 1 oder 0 auf SDA gelegt.
Ob High oder Low entscheidet die Zeit.
Low ziehen vor jedem Bit:
min.48µs max.55µs typ. 50µs
Danach sofort High Bit:
min.68µs max.75µs typ. 70µs
Danach sofort Low Bit:
min.22µs max.30µs typ. 26µs
Aufbau der Bytes:
High humidity, Low humidity, High temp, Low temp, Parity byte
Das Parity byte ist eine AND Verknüfung zwischen den folgenden Bytes:
High humidity, Low humidity, High temp, Low temp
Für unsere Testübertragung werden folgende Werte angenommen:
High humidity = &b0000 0010
Low humidity = &b1001 0010
High temp = &b0000 0001
Low temp = &b0000 1101
Parity byte = &b1010 0010
Das entspricht: 65.8%RH 26.9°C
Sensor Übertragungsende:
Sensor lässt SDA wieder auf High
min.45µs max.50µs typ. 55µs