1
\$\begingroup\$

I've got a number of HEF4794 BP LED drivers (8-stage shift-and-store register LED driver) daisy-chained together to drive LEDs from a microcontroller. The outputs of the drivers are connected to a fairly long wire (~2m), then the LED, then a 330R resistor and finally to +5V supply. Thus a zero at the output lights up the LED.

The problem I'm having is that sometimes, when I haven't turned the LEDs on for a while, there seems to be a charge on these wires which prevents the LEDs from being switched by the driver. This seems to occur by driver, not by output line. When I put my hand on the solder points at the PCB where the drivers are soldered to (supposedly grounding some wires), the drivers are set back to the way they are supposed to work.

Is there anything I can do to prevent this from happening? I tried to hold my fingers on the output line, but that doesn't seem to do the trick.

Schematic:

enter image description here

The microcontroller and driver are connected to a common ground and the MCU runs on 3.3V and the driver on 5V (the digital inputs of the driver are 3V tolerant, so that shouldn't be an issue).

enter image description here

\$\endgroup\$
14
  • \$\begingroup\$ Have you done any measurements with a multimeter to verify wether the outputs actually are stuck in this state? And please provide a schematic of your setup :) \$\endgroup\$ Jul 18 at 6:33
  • 1
    \$\begingroup\$ I don't see any ground connection between your modules. Have you supplied a correct and complete schematic? \$\endgroup\$
    – Transistor
    Jul 18 at 8:00
  • 1
    \$\begingroup\$ ”No, I haven't actually measured anything” As an EE, this should be your very first thing to do in almost any situation. A transient state is the very thing an oscilloscope is made for capturing. \$\endgroup\$
    – winny
    Jul 18 at 8:18
  • 1
    \$\begingroup\$ I looked at your circuit -- thanks for the picture, by the way. There is a large mass of green wires going to one junction, and a large mass of red wires, also going to a large junction. Both junctions look like they might have cold solder joints, or otherwise, a questionable connection. Maybe it was very cold that day you soldered. Measure the resistance between each wire and a master one from the group, to see if you can identify the problem first, for your own self-edification. Then resolder those questionable connections. Use lots of flux, and make sure it's shiny. Heat gun area if needed \$\endgroup\$ Jul 19 at 4:02
  • 1
    \$\begingroup\$ @MicroservicesOnDDD Thanks for looking at the picture. I measured the resistance and found that the resistance is as much as the cable (~0.1Ohms). The solder joints may look cold because I used Pb free solder (they tend to look a bit less glossy, but are ok). \$\endgroup\$
    – orange
    Jul 19 at 5:05
1
\$\begingroup\$

When the driver supply voltage is 5V, it may not work with the 3.3V logic levels from MCU properly.

It sure is tolerant to 3.3V signals but can't reliably distinguish logic high, as datasheet says 3.5V is minimum acceptable voltage for logic high.

That may not be the only problem, but so far only we know.

\$\endgroup\$
11
  • \$\begingroup\$ Interesting - I had thought that VIH is <= 3.3V, but upon reviewing the datasheet again, I found it is 3.5V as you say. Would that explain the intermittent behaviour for some of the drivers (different drivers exhibit the behaviour at different times)? Would a pull-up resistor on CLK and MOSI resolve this? \$\endgroup\$
    – orange
    Jul 19 at 0:56
  • \$\begingroup\$ No, because the MCU IO pins can only work with up to the MCU supply voltage of 3.3V, you can't pull them any more up with resistors to 5V, that will exceed the IO pin safe voltage rating and starts to inject current from 5V supply via the MCU to 3.3V supply. Also, having no bypass capacitors on the chips may be one cause why it does not work. Or the wire wrapping, it's not optimal for signals with fast edges like MCU outputs. \$\endgroup\$
    – Justme
    Jul 19 at 13:43
  • \$\begingroup\$ So that bypass capacitor would go on the 3.3V and 5V voltage supply? As for the SPI voltage levels, would you recommend a left shifter IC? \$\endgroup\$
    – orange
    Jul 20 at 0:49
  • \$\begingroup\$ I meant to write "level shifter" \$\endgroup\$
    – orange
    Jul 20 at 5:07
  • \$\begingroup\$ "That bypass"? That is why we asked for the actual schematics what is on the design and what is not, so a simplified block diagram is of no use. If you have no capacitors on power supplies on that board, it's time to start putting them in now. Typically, you put one bypass cap right next to each chip. Especially on a wire-wrap designs with high frequencies. Some amount of bulk capacitance here and there, especially at the supply input to the board, would not hurt either. Just connect the board to 3.3V supply first, to see if it is a problem of level shifting or not. \$\endgroup\$
    – Justme
    Jul 20 at 7:22

Your Answer

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.