2
\$\begingroup\$

I am trying to boost a 3.3V data signal to 5V, and I'm using a logic shifter to achieve that. Basically, I'm trying to drive WS2813 LEDs, and the data line needs something close to Vdd (5V) to read proper logic highs. I'm using a basic logic shifter board that has J1Y transistors, but unfortunately it doesn't switch fast enough, as the rise times are too long. While these LEDs still function normally with this sketchy data signal, I would like to be able to use other LED strips from other manufacturers that may have tighter tolerances. Here's an oscilloscope shot showing the long rise times:

Oscilloscope shot showing long rise times

You can see the wider pulses get close to the 5V I'm trying to reach, but the shorter pulses max out at around 4V. How do I speed this up to have nice square waves, or something close?

A solution I've attempted is using an LF356 in open loop but the pulses are really noisy and the LEDs behave erratically. To use it in open loop, I give it +5V and GND for the supplies, use the output of the microcontroller on the noninverting input, and the inverting input is grounded. Maybe I did something wrong? Can someone please help?

\$\endgroup\$
15
  • 1
    \$\begingroup\$ Is this the level shifter you're using? sparkfun.com/products/12009 If so, you want to put the schematic in your question so people can see what you're asking about. That or just buy a faster level shifter. Yours is probably made to be deliberately slow so that impedance matching is not a concern, but finding a few 10s of MHz level shifter is not hard. \$\endgroup\$ Commented Sep 14, 2022 at 2:31
  • \$\begingroup\$ You must Include schematic and part numbers and ideally links if you want quality answers. \$\endgroup\$
    – ATCSVOL
    Commented Sep 14, 2022 at 2:49
  • 1
    \$\begingroup\$ MiataMan, you've got something that's actively pulling up to some point, until that point is probably about a diode drop away. Then the diode (or diode junction) stops, leaving only an R to drive some capacitive load, hence the RC curve -- especially obvious on the wide pulse because of the longer time to see the curve instead of the early straighter line part of it. \$\endgroup\$
    – jonk
    Commented Sep 14, 2022 at 4:37
  • 1
    \$\begingroup\$ Post a pictue of your level translator module. But likely the problem is that it is a bi-directional level translator made of single FET and pull-up resistors, so it's wrong kind of module for high speed unidirectional data lines. If so, this exact same problem has been asked before in identical context (3.3V to 5V for RGB LED data wire) and has solutions already. \$\endgroup\$
    – Justme
    Commented Sep 14, 2022 at 4:59
  • 2
    \$\begingroup\$ @MiataMan Whenever you see something going straight up or straight down it's almost certainly actively pulled (BJT or FET.) But when you see a nice RC curve, that pretty much means that it's passively pulled -- meaning resistance such as a pull-up or pull-down -- operating on some kind of capacitance whether parasitic or explicit. Smaller resistors would obviously shorten the curve time. But it's better to arrange for active high and active low to as close as possible to the rails. Whatever is actively operating is clearly halted from operating at some point there. \$\endgroup\$
    – jonk
    Commented Sep 14, 2022 at 5:05

2 Answers 2

1
\$\begingroup\$

Do you need a bidirectional level shifter? - there are better ways to achieve mono-directional shifting if that is adequate.

A detailed description of the sparkfun level shifter is shown here

The circuit of one level shifter is shown below. This is a very commonly used level shifter using a BSS138 MOSFET.

  • Decreasing the value of R4 will provide a faster rise time "tail".

  • Using a MOSFET with a lower Vgs_th than the BSS138 will give a higher initial fast rise time BUT this circuit's operation is dependant on FET characteristics and LV1 and HV1 voltages and is "trickier" than may at first be apparent.

An "easy" way to get the results that you want is to increase Vhv somewhat. How much "somewhat" is depends on how well your target device will tolerate the slightly higher voltages obtained with longer drive pulses.

enter image description here

There are a number of ways of obtaining a slightly higher Vhv voltage which I will not discuss here, but if you need help in that area please ask.


If a unidirectional driver is acceptable then something like this circuit should work well.

From fig 4 here

R4 is not needed.
Adjust other values to suit but probably AK as shown with 10k for R1.
For extra switching speed - which is unlikely to be needed here - add a small capacitor across R1.
R2 will often not be needed but "does no harm".

enter image description here

\$\endgroup\$
4
  • \$\begingroup\$ The LEDs can withstand up to 0.5V above Vdd for the data lines, so I could safely pull it up to around 5.5V on the HV side. What do you mean by a faster rise time "tail" from decreasing R4? Would decreasing R3 also help? \$\endgroup\$
    – MiataMan
    Commented Sep 15, 2022 at 1:40
  • \$\begingroup\$ @MiataMan By "tail" I mean the lower sope part of the pulse. R3 decrease probably won't help. The fast rise occurs when the HET is on an LV1 voltage is driving the load capacitor. When FET drive is below about Vgsth the FET turns off and R$ controls the lower slope part of the pulse. A say 1K R4 will give about 10x faster last part of the pulse. BUT the circuit is unsuited as its bidirectional nature is its downfall. \$\endgroup\$
    – Russell McMahon
    Commented Sep 15, 2022 at 2:11
  • \$\begingroup\$ @MiataMan See added unidirectional driver circuit. \$\endgroup\$
    – Russell McMahon
    Commented Sep 15, 2022 at 10:56
  • \$\begingroup\$ It would be REALLY useful to know why this was downvoted. I don't mind a downvote for a good technical reason - but would love to know if anything is wrong so I can fix it \$\endgroup\$
    – Russell McMahon
    Commented Sep 23, 2022 at 0:19
0
\$\begingroup\$

I ended up using a TTL style SN74HCT chip that worked perfectly for my logic shifting needs. It's super fast and cheap.

\$\endgroup\$

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