Cannot Convert 3.3V Logic to 5V Logic Using TXB0108

Hello,

My project requires me to power Neopixels using an Arduino Zero, but my logic converter is not working! Here is a photo of my setup: Imgur: The magic of the Internet

I am using my power supply to power both the Arduino and Neopixel strip. On the logic converter, the 3.3V pin is connected to VCCA, the 5V power supply is connected to VCCB, and GND is connected to the ground pins of both my power supply and Arduino. Pin 10 is connected to A1, which supplies the data for my Neopixels. However, B1 does not output anything!

I have confirmed that all my wiring works by powering a few LEDs on my strip using the onboard power pins. I also tried supplying OE with a "HIGH" voltage by connecting it to another Arduino pin, but that did not seem to solve the problem.

Please let me know what my error is. Thanks in advance for your help!

Your picture didn't make it.

Look here on how to insert a picture.

// Per.

Thanks for the photo! But in reality a schematic (no Fritzing mess) is more useful.

Oops, since my photo was too large, I decided to just share an imgur link. Here is my attempt at a schematic, which is hopefully clearer than my previous photo!

Image:
IMG_20180216_173805_2_85.jpg

Looks about right. Might be happier if you place decoupling caps between Vcca - GND and Vccb - GND.

But I have to say, nice chip but a bit advanced for something simple as this.

If the setup is correct, is it possible that the logic converter is somehow broken?

As for the decoupling capacitors, I will try that when I get my hands on some capacitors--thanks for the suggestion.

I agree, the logic converter is overkill...but the Arduino will be put to better use though!

Might be, don't know what you did to it.

But counter question, why are you convinced nothing comes out the converter?

Use some simple TTL chip. I tried two gates in 74LS04 chip and it worked fine.

Single mosfet or even a single diode will get you far as well :slight_smile:

When pin 10 is transmitting data, my multimeter displays a 0.4V difference between A1 and GND. However, there was no voltage between B1 and GND, not to mention that the LEDs do not light up, so I figured that B1 was not outputting anything. Is the above a correct way to interpret the numbers?

I suppose I will try a simpler chip if this one just does not work. I bought this chip in the first place as I needed to control many different LED strips. Are there any other ways that I can troubleshoot my setup? I assume it is correct that my OE is disconnected (as detailed in the tutorial as well). I've already resoldered the chip, and made sure that all pins are well connected.

Also, would you explain how a diode would work in this context?

Doing it with a DMM is an indication bu can easily give false results.

khus24:
Are there any other ways that I can troubleshoot my setup?

Use a scope :slight_smile:

khus24:
Also, would you explain how a diode would work in this context?

My bad, diode only works from a higher to a lower voltage. (Cathode to higher voltage source, anode to lower voltage subject with a pull up to the lower voltage.) So easiest way is a mosfet.

For driving multiple strings I would use the bus driver chip, 74LS245 or 74HCT245.

septillion:
Doing it with a DMM is an indication bu can easily give false results.
Use a scope :slight_smile:
My bad, diode only works from a higher to a lower voltage. (Cathode to higher voltage source, anode to lower voltage subject with a pull up to the lower voltage.) So easiest way is a mosfet.

Don’t have access to a scope :frowning:

jendalinda:
For driving multiple strings I would use the bus driver chip, 74LS245 or 74HCT245.

I will try those if my current chip really does not work! Thanks again for the feedback!

On another note, I tried outputting a consistent HIGH voltage from another pin and connected that pin to A3. As expected, A3 measures around 3.3V, but B3 only measures 1V. I would expect it to measure 5V instead. Is there something that is going wrong here?

Your outputs are tri-stated because you’ve left the OE pin floating. Connect OE to to 3V3 and it should work.

avr_fred:
Your outputs are tri-stated because you’ve left the OE pin floating. Connect OE to to 3V3 and it should work.

Thanks for the feedback. However, I tried that and it did not seem to change the outcome. I am also still getting the same problem as detailed above (a stable 3V input yields a 1V output).

khus24:
I am also still getting the same problem as detailed above (a stable 3V input yields a 1V output).

Looks like you have it connected ok, the OE line is pulled up on the board anyway.

However, the TXB0108 has really weak output drive so it might not be able to drive your LED strip.

You could test it by driving another input to the TXB0108 with the Arduino... for example A8
Set the Arduino output LOW and measure A8 and B8 with your multimeter (should be 0V, 0V)
then set the output HIGH and measure A8 and B8 again (should be roughly 3V, 5V)
and measure VccA and VccB just to be sure (should be roughly 3V, 5V)

If you measure A8 switching 0V and 3V, but B8 does not read 0V and 5V, then the chip's dead.

If B8 does switch ok, then connect B8 to your LED strip and do the test again.

If this second test shows B8 switching 0V to 5V then connect your Arduino Pin10 to A8 and see if it will drive the LED strip. (It may be that the B1 output on the TXB0108 is damaged).

However, if the B8 output no longer switches 0V to 5V when connected to the LED strip, then the TXB0108 is not capable of driving that load and you will have to use a different level converter.

Yours,
TonyWilk

As above. Connect the OE pin to 3.3V

MarkDerbyshire:
As above. Connect the OE pin to 3.3V

Agreed... my bad - I rather rashly assumed the R on the board is a pull-up :-[

Yours,
TonyWilk

If the TXB0108 board is genuine Adafruit, and it appears to be, there is a 10k pull-up between OE and 3V3. A bare chip or the Chinese knock-off boards do not provide the resistor. I had neglected to check the photograph.

Sorry for making assumptions when you provided the needed information. Disconnect the B side and test as described above. FWIW, the board should be able to provide the necessary current as Adafruit uses it in their neopixel demo.