I'm quite new to this. I have just basic background in electronics. So I would appreciate an advice from someone more experienced.
I would like to connect an i2c display to my tp-link wr703n (ar9331) router gpios. Router is running linux and uses kernel module to simulate i2c interface using gpios. The display is hd44780 connected to the pcf8574 i2c expander.
The display operates at 5V while gpios are probably 2.5v+-10% tolerant. I checked the datasheet of ar9331 but not sure what is maximal voltage for high level. There some reports of people having gpio pin pulled up to 3.3V and running it just fine. So I'm not sure about the pullup voltage on the gpio.
But anyway I probably need some level shifter. I tought I could do something like this.
Vc1 2.5V? --------------- ------------ Vc2 5V
| | |
X | X
4k7R X | 4k7R X
X | X
| | |
gpio-7 --------------[FET]------------------ pcf8574
same for gpio-29
I'm not sure which N-FET to use for this. Usually people use 2n7000 which has typical Vgs threshold 2.1V but maximum is 3V. So I guess this one could not work properly if the threshold of used FET would be 2.5V or more.
And is this good thing to do anyway?
EDIT2: I've added better picture of the circuit.
simulate this circuit – Schematic created using CircuitLab