So this trace is from the encoder on a large brushless motor that runs at low speed. 24V supply, about 6 amps when running, accelerating from a stop.
It seems to work pretty well just by putting a 10 nanofarad capacitor next to ground on the input, but I'm not sure that's the best way. And it may still be getting some false counts.
Because of the location of the motor driver the wire runs are about 0.6m, ~2 ft long.
That pulse is the motor driver making tiny adjustments back and forth I'm pretty sure. This is showing without the capacitor filter so you can see the full noise.
Filtered the noise is attentuated about 10x and the false counts seem to stop, I can't put a much larger capacitor on there because it would filter the pulses from the encoder too much.
Would an inline inductor help? Maybe sheild the signal wires and grounding the sheild to the driver ground?
At max speed the encoder pulses should get to be about 15kHz, 5 volts, 50% duty cycle. It works if they are rounded off as long as the edge of one phase is still above 3.5V or so when the other phase changes. Experimentally I determined that 47nF was too much for that to work. 10nF seems to work though it rounds it off a bit.
I could even put a capture board right by the motor with some filtering and to convert the signal to digital or current. But that seems a bit overkill.
I'm sure there is some well known best approach here. What would you all recommend?