I have 8 signals at approx 10 MHz (square) that can be at 1.8V, 3V, or 5V (peak-to-peak). When set, the signals do not change voltage. The voltages can only change if set manually by human interaction. So the signals will always come at 1.8V, 3V or 5V depending on the voltage that was initially set.

These signals have to be translated to 3.3V independently of their initial voltage. Also, the translation needs to be bidirectional.

The translation should work as follows:

  • 1.8V <-> 3.3V
  • 3V <-> 3.3V
  • 5V <-> 3.3V

I found some ICs that do a similar job, like the SN74GTL2003, but it seems like I can't do the 5V <-> 3.3V conversion with this or other ICs. Usually, with these ICs I can do all the other translations mentioned above, but the 5V <-> 3.3V cannot with this type of configuration.

I could do the 5V <-> 3.3V translation with the SN74GTL2003, but then I wouldn't be able to do the others. It seems like I can't do both translations with the same IC as one seems to exclude the other.

New contributor
Geppetto is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • \$\begingroup\$ "... that can be at 1.8V, 3V, or 5V." What does that mean? Peak voltage? Peak to peak voltage? Do they switch between 0 and 1.8 V, etc.? What is the waveform: sine, square, triangle? What is the maximum "low" voltage? Can you use a comparator? Click the edit link below your question and add in the details. "5 V <-> 3.3V" implies bi-directional. Do you mean "5 V -> 3.3 V"? \$\endgroup\$ – Transistor Sep 12 at 13:52
  • \$\begingroup\$ If these are signal levels, then maybe some 74HCT buffer IC. \$\endgroup\$ – Lundin Sep 12 at 13:55
  • 7
    \$\begingroup\$ There are two problems with this question: first "what can I buy" is an off-topic shopping question. Next your need is severely underspecified, as you give no indication of the nature of the signals or what aspect(s) must be "translated" and in what sense the bi-directionality should be implemented. \$\endgroup\$ – Chris Stratton Sep 12 at 13:55
  • 1
    \$\begingroup\$ What determines the direction of the signals ? what is the real impedance in each direction? Are they symmetrical rail to rail? Does duty cycle matter? Does a mid swing threshold matter? What is the rise time / cycle time % ratio? \$\endgroup\$ – Sunnyskyguy EE75 Sep 12 at 14:01
  • 1
    \$\begingroup\$ Did you ensure the higher voltage was on the D side? Why did you not show your design and specs? \$\endgroup\$ – Sunnyskyguy EE75 Sep 12 at 14:08

Note: This does not satisfy the OP requirement of dynamically changing input voltages that go above and below the high side. But is a great simple bidirectional level translator for voltages that fixed.

A mosfet and two resistors makes a nice bidirectional level translator.



Low Side Control

When the low side (3.3V) device transmits a '1' (3.3V), the MOSFET is tied high (off), and the high side sees 5V through the R2 pull-up resistor. When the low side transmits a '0' (0V), the MOSFET source pin is grounded and the MOSFET is switched on and the high side is pulled down to 0V.

High Side Control

When the high side transmits a '0' (0V) the MOSFET substrate diode conducts pulling the lowside down to approx 0.7V, this is also low enough to turn the MOSFET on, further pulling the low side down. When the high side transmits a '1' (5V) the MOSFET source pin is pulled up to 3.3V and the MOSFET is OFF.

Note This works with I2C and other open collector type gates

All you need to do for lower voltage translations is to use a mosfet with a lower Vgs. The 2n7000 has a Vgs of 3v max. A BSS138L has a 1.5v max, for example.

  • \$\begingroup\$ OP needs both up and down translation (i.e. 5 <-> 3.3 and 1.8 <-> 3.3). But in this solution the FET needs to be connected with the drain connected to the "high side" otherwise the body diode will mess things up. \$\endgroup\$ – The Photon Sep 12 at 15:35
  • \$\begingroup\$ @ThePhoton This does work in both directions. Read the paragraphs. Yes, it does require the mosfet to be connected correctly as you point out. But it does work. \$\endgroup\$ – Aaron Sep 12 at 15:39
  • \$\begingroup\$ If the "low side" is always 3.3 V, it will not work when the "high side" is 1.8 V. Or if the "high side" is always 3.3 V, it will not work when the "low side" is 5 V. \$\endgroup\$ – The Photon Sep 12 at 15:40
  • \$\begingroup\$ @ThePhoton Whoops, you're right, I missed that in the OP. The input voltage levels are changing dynamically. Yeah, this won't work for that. \$\endgroup\$ – Aaron Sep 12 at 15:42
  • \$\begingroup\$ Also, you will have trouble getting this to work at 10MHz. \$\endgroup\$ – Caleb Reister Sep 12 at 15:53


simulate this circuit – Schematic created using CircuitLab

Uni directional signal translator

The LM339 is actually a quad comparator package I think available in DIP or SOIC. Been around since Polly was an egg


Your Answer

Geppetto is a new contributor. Be nice, and check out our Code of Conduct.

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.