Author Topic: Crosstalk on disconnected inputs  (Read 583 times)

0 Members and 1 Guest are viewing this topic.

Offline Rapsey

  • Contributor
  • Posts: 25
  • Country: be
Crosstalk on disconnected inputs
« on: October 06, 2018, 12:36:24 pm »
I'm trying to control a DotStar 0.5m LED strip (72 RGB LEDs) from a Raspberry Pi 3 model B (via SPI). Since DotStars are 5V devices and the Pi's logic is 3.3V I am using a 74AHCT125 as a logic level shifter, as recommended by the manufacturer:

A = 3.3V logic input, Y = 5V logic output, OE = output enable (low = enabled, high = disabled).

So I have a tiny circuit board built around this IC with 3 things connected to it:
  • 5V DC power supply (VCC, GND)
  • 5V output cable to the LED strip (VCC, DAT, CLK, GND)
  • 3.3V input cable from the Pi (DAT, CLK, GND)
The input and output cables are very short (40cm max). All the GNDs are interconnected.

This all works very well as long as the Pi is supplying input signals. The problem arises when there is no input, i.e. when:
  • The 3.3V input cable isn't connected to the Pi at all
  • The 3.3V input cable is connected but the Pi is powered off
  • The 3.3V input cable is connected and the Pi is powered on but not providing input signals
Note that this is all with the input cable connected to the circuit board. When the input cable is not connected to the circuit board there is no problem.

It seems clear that this is caused by crosstalk. Moving or fiddling with the input cable causes random LED flickering (doing the same thing on the output cable does nothing). The IC seems to be picking up input signals where there are none and although there's no voltage on these cables from the other end, the IC itself seems to apply some voltage to them.

Since I was using fairly thin 24 AWG stranded wire I first made a new input cable with much thicker, better insulated and probably overkill wire (17 AWG stranded power wire) and also sleeved the wires individually instead of having the 3 wires in 1 sleeve. The interference seems to be a bit less but it's still there.

Now I'm thinking, rather than trying to completely get rid of the crosstalk, maybe I should put those OE's to good use? The example provided by the manufacturer has them all tied to GND (= enabled). I should be able to have them tied to VCC (= disabled) and use an additional input pin on the Pi to make them low only when the LED strip is in use.

Do you think this an acceptable way of working around the problem or am I just being stupid here?

EDIT: Added one way of making OE high by default and low when the Pi commands it (so basically an inverter) using an NPN transistor. I'm not sure if these are sane resistor values but in simulation it works.

Input disconnected (or low):

« Last Edit: October 06, 2018, 03:26:27 pm by Rapsey »

Offline hsn93

  • Regular Contributor
  • *
  • Posts: 98
  • Country: bh
Re: Crosstalk on disconnected inputs
« Reply #1 on: October 07, 2018, 08:30:21 am »
i think u need to pull down your transistor inputs.

100k from v2 to gnd

« Last Edit: October 07, 2018, 08:32:11 am by hsn93 »

Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo