I am integrating a speed sensor (Honeywell SNDH-T4L-G01) which comprises 4 lines: VDD, VSS, A, B. The last two signals provide speed and direction information in a quadrature format.

These are open collector drivers, therefore in the control unit side a pull-up resistor shall be provided.

As the cable length to the sensor is around 3-4m, I am concerned about the capacitive coupling phenomena, as the quadrature signals are expected to switch at 7khz worst case in a quadrature fashion. I expect that both signals should cross-talk each other due to the weak pull-ups.

Cable shielding is mandatory, however the classical shielding schema (aluminium braid shielded cable with GND connection in one end) would not solve the crosstalking issue in my opinion, due to the capacitance of the line, the weak pull-up of the lines and the strong pull-down driver of the sensors.

Is it a good solution that I shield separately (VDD+A) and (GND+B) with the GND connection (and thus the connection between these shields, to avoid loops) being made at the control unit end?

I know trial and fine tuning is usual in these issues, but I want to start with the best shot possible.

  • \$\begingroup\$ You keep mentioning "weak" pull-ups. Why not strong pull-ups? Check how much current the sensor can sink, and size the pull-ups to use the full current. \$\endgroup\$ – Mark Jun 30 '16 at 7:47
  • \$\begingroup\$ Is there any option to put some driver electronics right near the speed sensor? Something on the order of a 16-pin SOIC package and a few SMD capacitors. \$\endgroup\$ – FiddyOhm Oct 28 '16 at 16:32
  • \$\begingroup\$ It doesn't really matter as long the crosstalk thresholds aren't enough to cause false triggers. That is the reason we use digital signals after all. Coincidentally reducing the rise/fall times by having capacitors to ground would reduce cross talk by reducing the high frequencies in general. I'm not actually sure that stronger pull ups or line accelerators would definitively help things because if it also increases the rise times that also causes more higher frequencies that can cross-couple. \$\endgroup\$ – DKNguyen May 22 '19 at 5:21

Your main problem is that the relatively sharp high-to-low transition on an open-collector output could cause a false high-to-low transition on the other channel (when in the high state), by capacitive coupling between those two wires. Transition in the other direction is much less sharp and thus less likely to cause issue, as noted in that other answer.

Shielding each channel independently would greatly improve the problem. With two pairs, it is better from that standpoint to have a pair for Gnd and A, and another for Vcc and B (than it is to have a power pair and a signal pair). Individually shielded pairs will help, especially if the shielding is grounded.

There are options to be less dependent on cabling

  • Add capacitors to GND on receiver inputs; they'll act as a capacitive voltage divider for the cross-channel capacitance. However that can worsens radiated EMI and magnetic coupling.
  • Reduce the value of pullup resistors (also needed to compensate for the rise time increase caused by above capacitors). However that can worsens radiated EMI and magnetic coupling.
  • Add series resistors on inputs, before the above capacitors; these will damp the parasitic negative-going spike; value needs to be a small fraction of the pullup resistors. These also shift the input threshold down, wich is good (see below).
  • Choose receivers input threshold (measured at oard input) significantly below half the pull-up voltage, like 1/4 (or equivalently increase the pull-up voltage if the receivers can accept that), so that you have voltage margin where it matters.
  • Use receivers with hysteresis (which is a way to lower the negative-going input thresold, which is the one that matters in the above).
  • Use slow receivers, or software filtering of fast receivers; to some degree, this is a free substitute for capacitors or/and hysteresis.
| improve this answer | |

Looking at the data sheet, the encoder outputs are open-collector and when 'on' can sink 20 mA with <0.5 V drop to VSS across them. So if your board interface circuitry runs off 5 V +- 10%, you could use a 330 R pull-up resistor and let it sink 15 mA, loading it to 75 %.

The outputs take 1 us to switch on and much longer to switch off. You'll find that it will have a nice rounded waveform, not a sharp-edged one. So your signals won't be able to produce transients to radiate and your 330 R pull-ups won't let those wires pick up much anyway.

On your control board, make sure you have decent interface circuitry with suitable hysteresis to clean up your slow-moving signals coming from a distance away.

| improve this answer | |
  • \$\begingroup\$ According to axotron.se/blog/… the size of the resistor will affect the time constant of the transient, but the initial condition's (the spike) magnitude is essentially the same due to the arrangement of the capacitances. \$\endgroup\$ – Manex Jul 1 '16 at 5:21
  • \$\begingroup\$ They're using I2C at 3.3 V with 4K7 pull-ups, so at the higher wire where they see noise, they have little pull-up current overcoming their crosstalk e.g. (3.3-2.8)/4700 ~= 100 uA. What voltages are available on your board and what's your logic input voltage? By the way, the data sheet states that the outputs are push/pull, not open-collector. They show a pull-up load but it looks like its actively driven high. No matter, though. \$\endgroup\$ – TonyM Jul 1 '16 at 6:13

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.