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.