Electrical – PL9823 data line corruption when using 3v3

ledsignal integrity

This is my schematic:

enter image description here

The PL9823 uses the same protocol as WS1012 (NeoPixel)

When using 5V MCU and 5V to power the LED everything works OK.

When using 3v3 MCU and 3v3 to power the LED everything works OK.

When using 3v3 MCU and 5V to power the LED it does not work. The led is not set to a desired color and changes to a random one.

After reading up on the diode it was suggested that I place a capacitor between data line and ground on the first diode. After I did that the signal didn't do anything and the diode didn't change color.

Next thing I did was add a resistor in RC low-pass filter configuration and the signal did change the LED to a desired color. But sometimes the signal did get corrupted and the LED didn't show the correct value. I tried different resistor and capacitor values and the LED still on some occasions showed the wrong color.

What am I doing wrong?

Best Answer

Often input levels depend on supply voltage. When you are powering the PL9823 with 3.3V, you are using it outside of its spec, it says Vdd=4.5V to 6V. So it was unlikely to work already.

Use a single MOS transistor as a level shifter:

schematic

simulate this circuit – Schematic created using CircuitLab

Related Topic