Anyone can shed some light on this?
1. I thought that using pullups to 3.3V (instead of 5V) were enough to make this work, as can be seen in the attached schematic.
2. About the 2K7 resistor: I started out with a 5.xK resistor, with the same results. In the datasheet it said to use 1K resistors... So if I just use higher value resistors, will I damage the chip?
Ok, so I made a tiny mistake: the first resistors I use were 3.9K. Anyway, No matter what kind of resistors I use (I tried 1K, 3.9K, 4.7K, 10K, even 100K), things stay the same... Always the diagnostic code...
I do notice that using higher valued resistors, the temperature reported by the pressure sensor and an independant temperature sensor get closer together. This morning they were +- 1.2°C apart, now with 10K resistors only 0.1°C, with 100K resistors max 0.05°C. I find this a bit puzzling because I was thinking: the pressure sensor gets a little bit too much power, so probably it heats up inside, giving a reading which is a bit higher, but now the temperature sensor gives the same results... Weird.
I will try the level shifting thingie, but I don't have any mosfets right now, so that's for the future.
I didn't expect that to change by changing the pull-ups.
The lower the resistor, the higher the current that is sinked inside the chip.
Is your comparing sensor precise enough for 0.05°C?
I think you can save that time. You can communicate with the device and the level shifter does nothing better, in contrary, you might get new problems.
so I will need a 3.3V and a 5V I2C connection
Yes, that's why I find it weird: the higher the resistor value, the higher the reported temperature (on the pressure sensor, the temperature sensor always gives +- the same result).
Why? All the connected devices pull the bus lines to GND if necessary and let the pull-ups pull it to 3V3 in the case of a logical high. All Arduinos will recognize 3V3 as a logical high, so there is no need to use a higher (5V) voltage bus.
You didn't mention in which direction the offset was, so I was assuming that the internal temperature sensor in the pressure sensor was delivering a higher value with a lower pull-up resistor.
Please enter a valid email to subscribe
We need to confirm your email address.
To complete the subscription, please click the link in the
email we just sent you.
Thank you for subscribing!
via Egeo 16