Close

I2C voltage level conundrum

A project log for Dalek head control

System to have the Dalek head follow the operators head leaving hands free for plunger wiggling

alastair-youngAlastair Young 06/30/2019 at 20:290 Comments

The GY-291 modules arrived today with the ADXL345 accelerometers.

These are a 3v3 chip on a board with a little voltage regulator to drop VCC (i.e. 5V) down to 3v3 and includes I2C pullups to 3V3.

I was thinking that if I am running the I2C at 5V I can insert a voltage level shifter i.e. use the same voltage shifter I use in the MKR I2C shield.

Not so simple. The level shifter needs a reference voltage for both voltages (per the datasheet), I can get the 5V from the I2C line but the 3v3 is not broken out on the GY-291 module. 

My first GY-291 modules is DOA. Or maybe I fried it wiring all this up. 

The second one works, and does not seem to mind direct connect to the arduino with or without 5V 4.7k pullups. As this would be in parallel with the on-board pullups AND out of spec for the chip, that was just an informational test.

So the carrier board probably wants it's own 3v3 reference..

I verified it all works with the voltage shifter using the circuit on my MKR I2C shield prototype board. Oddly it also work in this mode if I disconnect the 3v3 supply/ reference. This corresponds to Vref_A on the LSF0102.

As it is a pull-down application that kinda makes some sense.

Even more surprising, the LSF0102 still works if Vref_B (5V) is disconnected too. I now have it running with just SCL SDA and GND connected. Again, because it is a pull-down implementation, that makes a tiny amount of sense. So maybe I don't need the 3V3. 

However I do want a commonly available locking cable setup, so if I use RJ45/Ethernet, there are 8 wires in there and I can carry 3v3 up from the controller to be sure. If people want to wire it up 4 wire/5V it *might* work anyway.

So the carrier board needs:

other parts for the kit:

O

Discussions