If a device support UART, then the hardware of the pin will have the ability to tolerate the voltages. I guess the same can be applicable for the gps module. But i didn't used it before so i would like to refer the circuit which i have attached with this.
This circuit has been used to shift the level from +5V to -5V I2C bus. I hope u know how to modify the circuit for ur application.
Please find the picture which is modified for your circuit. Please try to implement with breadboard. If it is working properly then u can go for next step.
Tx should be connected to microcontroller tx and rx to gps module rx.
this same circuit u have to copy to connect gps module tx and microcontroller rx. Remember 2 circuits of those u need
and u have to replace the 1.8V to 5 V and 5 V to 1.8V for the gps tx to mcu rx
i do it in proteus >>>>>>>> when input 5 v get me 1.8 in rx
but when input zero get me 1.8 in rx too
there no change
please check resistor 100
maybe you mean 100k
because i change it to 100k and get me low voltage at rx
hai... i dont have proteus to simulate. But i have tried with another one. it is a java applet for ipad application. In that i saw it is working with that same 100 ohms.
please recheck.. may be the simulator needs to restart when u change the input voltage.. why dont u apply some square wave as a input and verify. because i have tried with square wave.
yes my application work with 100k in simulation and with analysis 100 ohm is very small coz it will get high on base every time so not can sense with input zero
therefor i put 100k to make base pull up and can sense with zero voltage >>>>>>> Thank you for ur help >best wishes for you