I am hoping to find an answer, for I am at a loss.
The Si7006 returns a ACK whenever I send the correct address and/or one of the prescribed commands. An incorrect address and the device returns a NACK. That part seems to be working. When I try to read however, the device always returns 0xFF. I have tried all the commands available the Si7006, they all return 0xFF.
I am using a digital oscilloscope to monitor the traffic, and I can verify what I mentioned above. I have tried three different Si7006 and they are all doing the same thing. I currently have 10K pull ups and 0.1uf decoupling cap.
I am attaching a screenshot of an example output.
Any insights would be deeply appreciated.
It looks like you are issuing the command 0xE0. This does not instruct the part to perform a Temperature or RH conversion. It only reads out the temperature conversion from the last RH conversion if an RH conversion was issued.
Are you performing the repeated start after issuing the command? SDA goes low while SCL high. It is allowable to generate a STOP before the repeated start. SDA can transition to high before or after SCL goes high in preparation for generating the START.
Sir, you are beautiful. Placing a Stop and a ReStart after the command fixed my problem. I did not see that in the datasheet.
I thank you profusely.