SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By papetoarenas
#13004
ok so i got the BlueStamp® Module v1.2 for a bluetooth coneection between my robot and my pc the only problem is that i need some kind of level shifting cause the BlueStamp® Module will only do 3.3v and receive only 3.3v signal levels, in the other side is a pic microcontroller so i need to convert this 3.3v signal in 5v and the 5v into a 3.3v signal.
i dont know if i need to convert the 5 to 3.3v in order to not burn the BlueStamp® Module any recomendation will be accepted
thanks
herman arenas
User avatar
By phalanx
#13026
I don't remember the part numbers off hand but there are buffer ICs that will give you bi-directional level shifting abilities.

Also, just run your PIC as 3.3V. Then you don't have to worry about level shifting!

-Bill
By Johan v. Althuis
#13289
Dont make it too difiicult.

A microcontroller does understand 3,3 volt as a logic '1'
To make a 5 volt signal 3,3 volt compatible yous a resistor.

It worked for me...
User avatar
By phalanx
#13294
PIC I/O ports that are schmitt triggered have "high" levels of 0.8*Vdd which in this case will be 4V (well above 3.3V). While it may work 90% of the time, there is a very good chance of the system having random errors. On the other hand, sending a 5V signal to a 3.3V part can cause excessive current flow damaging the lower voltage chip. While resistors can help this, it is not a solution, just a band-aid. In addition, the resistor can compound the logic-high threshold problem when sending signals from 3.3V to 5V. Depending on the values used, it can also skew high speed signals to the point where they are not useable.

TTL I/O ports on the PIC have a threshold of 2V so that can work but you cant make the PIC output 3.3V with a 5V supply so your other chip is still at risk of being damaged.

Just because it works doesn't mean it is a good solution. Dedicated level shifters are simple to use and are a far more robust solution. Or you might simply run your MCU at 3.3V if the rest of the board can tolerate it.

-Bill
By silic0re
#13317
Hi there,

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1068

The MAX3232 series will interface between 3.3 and 5v levels for serial communication. I've used this IC between microcontrollers that have different output voltages and it works great. Aside from the IC it only requires a few filter capacitors (if i remember correctly), so it's also a great solution if you need a small footprint.

hope that helps,
silic0re
User avatar
By ohararp
#13320
If you use a voltage divider using a 1k5 ohm resistor and a 3k3 ohm resistor you can properly interface to the 3 volt device. This is how I am currently talking to an SD card right now.