5V to 3.3V logic

Hello,

For the RX input of my HC07 serial bluetooth module, I actually use a 5v to 3.3v voltage divider Where R1 is 1.8K and R2 3.6K

But I'm not sure it is what I should use. Some times it receives corrupted transmissions (but I have error detection code) and I'm wondering if it isn't because of those 2 resistors, but I haven't tried anything else...

There are more complicated solutions, which requires more components, I guess it's better than 2 resistors. But also sometimes I see "they" just use a 10K (or so) resistor between the 5V output and the 3.3V input.

Can someone tell me what is the simplest "acceptable" way to just convert a 5V logic to a 3.3v logic. Is the single 10K resistor solution enough?

Thanks

Send a pin high and read the voltage on your divider?

Corruption could be due to the divider, better to use a Zener diode to keep the voltage stable.

But is a 5V signal with low current (through the 10K resistor) similar to a 3.3V signal with greater current, or will it hurt the bluetooth module or something?

cjdelphi I tried already and the Vout is around 3.3V (tested without the BT module). I've read Vout depend of the load but is a digital input considered a load ? And anyway a logic HIGH for a 3.3V signal is (from what I've read) everything above 2.4V, so stable voltage or not, isn't really important, correct?

guix: But is a 5V signal with low current (through the 10K resistor) similar to a 3.3V signal with greater current, or will it hurt the bluetooth module or something?

No.

If it did your TV would explode when you connect to the gigawatt power station on the other end of the wire.

The point of the 10k series resistor is to limit the current in the 3.3V chip's protection diodes to a level that won't cook them. It does require the receiving chip to actually have protection diodes, which is normally the case, but not completely universal.

However the 10k solution dramatically slows down the logic edges from say 2--5ns risetime to perhaps 100ns risetime or slower. Its likely to fail for high speed signalling (over 1MHz say).

The 1.8k/3.6k divider will work a lot faster as its a lower impedance, but you might want to reduce resistor values to 470 + 1k for even better speed.

For slow serial connections it shouldn't really matter, just make sure you have a common ground and shielded cable that's not too long for the baudrate involved.

For faster signalling over a long cable you may need to move to transmission line techniques such as 100ohm differential signalling (as in RS485).

Thanks MarkT, it's good to know.

I will try with lower resistors just to see if it improves the error rate but I have not much hopes. I think now the errors are just due to noise etc (since it's Bluetooth, not a cable)

Thanks all

MarkT: However the 10k solution dramatically slows down the logic edges from say 2--5ns risetime to perhaps 100ns risetime or slower. Its likely to fail for high speed signalling (over 1MHz say).

how's it slow down exactly?

Hi, I have a similar problem with lc studio sd card, I need 3.3v from 5v. I have a 3.3v diode but no clue how to hook it up! Any one know?

SparkFun sells several voltage translation breakout modules. Here is one example:

https://www.sparkfun.com/products/11978