SparkFun Forums 

Where electronics enthusiasts find answers.

Tips and questions relating to the GPS modules from SFE
By Robert Mann
#26658
Anyone have a suggestion on a way to interface a PIC (5v) with a GM862 device (2.8v). I have two power supplies already setup for the two voltages I just need a solution to drive both directions. I need the PIC to run at 5v as I have other things that will run off of it as well so I can not just use a PIC at a 3.3v source. So I need a level shifter that is preferably capable of fast serial data. 115200 if possible. I have googled all over and read forums but most of the devices are either too slow or I can not seem to find a source for them. I need both 5v-3v and 3v-5v for TX and RX and would like to implement hardware flow control with RTS and CTS as well.

Suggestions?
By oPossum
#26682
The PIC will accept the 2.8V logic on it's inputs - the threshold on a PIC is typically around 1.5V for most pins. Some special pins may be higher - check the spec sheet. Use a 470 ohm / 560 ohm resistor voltage divider to knock the 5V PIC outputs down to 2.8V for the GM862.
By jasonharper
#26683
oPossum wrote:The PIC will accept the 2.8V logic on it's inputs
Only on inputs with TTL threshholds! Schmitt trigger inputs require 0.7*Vdd (3.5V in this case) to guarantee a '1', and RX is a Schmitt input on most (probably all) PICs that have such a pin.

If your PIC has comparators, they can be used to implement a zero-component input level shifter. However, I'm not sure if the comparator response time is fast enough to keep up with 115200 baud. This would definitely work for flow control or other infrequently changing signals.
By oPossum
#26684
For a ST input, use a 680 ohm pullup resistor and a PNP small signal darlington (MPSA63 or similar) in emitter follower (common collector) configuration. This will shift the voltages up by aprox. 1V into compliance with the guaranteed min/max for a ST input.
By jimmycotts2
#26689
I would also like to know an answer to this.

Is it possible a zener cuold be used to step down the voltage?

If so how, and what data rate could it work at?
By jaime
#26778
max3380E i think will do it...
By jimmycotts2
#26781
I've now found an easy way of doing it

The PIc i'm using acepts 3.3V on it's input instead of 5V and then on the output i simply put two diodes in seris to knock off 1.4V from the %v to go into my 3.3V device.

Which all works rather well!
By BaudThief
#29893
We tend to use XN04312 transistor arrays in the configuration shown on the "level translation" section of the GM862 manual (just a bit hard to get your head around the pin numbers)

... But if the diode solution works for you, "if it aint broke don't fix it!"
By tavioman
#36174
BaudThief wrote:We tend to use XN04312 transistor arrays in the configuration shown on the "level translation" section of the GM862 manual (just a bit hard to get your head around the pin numbers)
Hi.
Do you a schematic for this method?
I don't need something very fast because I will probabily use 9600 or 19200 baud rate.
By ZDjl
#57838
hi. im trying to do something similar. An SPI connection from microcontroller to a RF device. Currently im thinking of resistors of value 10k and 5.1k to lower the voltage from microcontroller the RF device.
Im pretty new to electronics and im not sure my that was the best values because oPossum suggested lower values of resistor 470 ohm / 560 ohm.any advice?