Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

External pull-ups for Logic Level shifter, 4 channels

I just ordered the Logic Level shifter, 4 channels, bi-directional (https://www.pololu.com/product/2595) from pololu.com, with the intent to use it on my Teensy 3.0 and 3.1 microprocessors, which are Arm Cortex M4 processors, running on 3.3v.

I want to use it for level shifting up to 5v to translate control for the i2c bus and ws2812 (Adafruit neopixel) leds. From the description, it looks like it would work fine for i2c at 100Khz (or i2c FAST at 400Khz). I’m wondering what size pull-up resistors are needed for the lines that will be driving ws2812 leds, which run at 800Khz? I don’t anticipate that I would be using more than 50 leds in the sequence. Similarly, if I drive one of the level shifted lines with PWM from the processor, would I need pull-ups for the PWM support? :question:

Thanks in advance.


We have not characterized the level shifter for faster speeds; however, adding a 10kΩ pull-up resistor in parallel with the existing pull ups to Lx and Hx on each channel should effectively reduce the time constant by half. If it is still too slow for your application, you might try adding stronger pull-up resistors. (Please note that using stronger pull-ups will increase the board’s power consumption.)

By the way, in our tests, we were able to use a 3.3V signal directly with our WS2812 addressable LEDs. You might try just connecting your controller to the LEDs and see if it works without any level shifting.

I am not sure I understand your other question about PWM signals. What frequency is your PWM signal?

- Jeremy

I have some Adafruit neopixels that only run on 5v and will not run on 3.3v. In the ring I tested, it will work with 5v power, and 3.3v signals. I also have neopixels that will not function correctly if given 5v power and 3.3v signals. I have read about other ws2812/ws2812b’s that needed both 5v power and signals. So, I want to make sure the new design will work with any ws2812 led, hence doing level shifting to 5v.

This article looked at several level shifters on the market at the time, and found most of them did not work all of the time, but the TXS-0102 did for small number of ws2812’s and the 74HCT245 did the job perfectly. http://happyinmotion.com/?p=1247

However, I’m running out of room in the perfboards/breadboards I’m using, and I’m looking for something smaller than a pair of TXS-0102’s (I also need 5v i2c for a lcd screen). So, I ordered your unit, in hopes that it would work with an extra pull-up resistor on each side. My other thought is to mount a pair of TXS-0102’s vertically, sharing the OE/power/ground pins if I can’t get your unit to work.

If I still have problems, I have an backup plan to not use the Teensy for neopixel projects, and stick with 5v processors. To that end, I bought 2 pololu A-star LV’s during the recent sale that just expired, and they just arrived (I expect the level shifters on Monday). Given it has a built-in step-up/step-down voltage converter that can go up to 1a, it looks like it will run my ws2812’s fine. However, there are some things that the ATmega32u4 doesn’t have that the Teensy has (multiple uarts, touch reading, DAC), so I would prefer to stick with the Teensy.

In terms of needing more power due to using the higher resistors, I’m not going to worry about that. I suspect it won’t be noticeable when I’m running ws2812 leds, since they will draw much more power.

In terms of PWM, I was just wondering if the normal analogWrite (PWM) worked through the level converters. Off hand, I don't recall what the frequencies are for PWM on Teensy.

Thanks for all of the additional information and the link to that blog post. Please let us know how your tests with our level shifter go.

I found this article on the Teensy website that lists the default PWM frequency for the different versions, and it looks like our level shifter should be able to handle them all with no problem.


Thanks for finding that link on PWM on the teensy site. I’ll let you know if it works, when I get the shifters.

Ok, I finally got the logic level shifter, and I’ve wired it up without using the external pull-ups, and for the rings I’ve tried, it works. This includes the 24 LED ring that is sensitive to voltage level. I currently don’t have any strips that are sensitive enough to require 5v signalling (instead of 3.3v signaling), so it isn’t an exhaustive test. However, the idea was to do it so ahead of time, so if I buy such a strip in the future, it would continue to work.

I just tried 10k resistors, and it continues to work, so I will keep them in place. Thanks.

Great! Thanks for letting us know.

- Jeremy