1
\$\begingroup\$

This is a strange question and I don't know if I will be able to describe it correctly. There have been several instances working with a system that basically consists of a board camera, an FPGA, and TFT display where I can eliminate image noise by physically touching a specific wire or pin. For example, the current system I'm working on has pretty strong red noise in the live camera image. If I specifically touch the CAM_DATA[7] pin (the MSB for red), the noise disappears. It also disappears when the oscilloscope probe is connected to that pin, but not when the ground clip is attached. What effect does a person touching a specific wire/pin have on a circuit and how can I reproduce this "solution" with a basic components? ( I have verified that the issue is not just a loose wire or loose connection that is coincidentally going away because I'm pushing on it.)

\$\endgroup\$
  • 5
    \$\begingroup\$ Capacitance to ground? \$\endgroup\$ – Chris Hansen Jan 9 '17 at 6:21
  • 14
    \$\begingroup\$ Every time in over forty years of working with electronics when we noticed a phenomenon like you describe there would be a standing joke: "I guess we will have to ship an engineer with every system" or "Make sure that the scope is on the BOM". \$\endgroup\$ – Michael Karas Jan 9 '17 at 6:32
  • 1
    \$\begingroup\$ you should try to identify the cause, are you missing termination and thus seeing extra crosstalk? \$\endgroup\$ – Jasen Jan 9 '17 at 7:09
  • 2
    \$\begingroup\$ Tell us the type of signal being applied to the FPGA pin in question. E.g. Is it a logic level signal created by another IC on the same PCB? Or is it a signal directly from the camera? How long is the route of this signal? Is it confined to the PCB? Or, is it delivered over a wire or cable? If so, how long is that connection? \$\endgroup\$ – FiddyOhm Jan 9 '17 at 7:18
  • 2
    \$\begingroup\$ See this answer \$\endgroup\$ – Neil_UK Jan 9 '17 at 9:18
7
\$\begingroup\$

Touching a pin does not eliminate the circuit issue, it just hides it. Your circuit still have an issue, and a big one - this particular CAM_DATA[7] bus signal has insufficient timing relative to bus clock, likely an insufficient hold time. A finger, or tweezers, or scope probe all do have some capacitance, 3pF, 5pF, or 10pF. Attaching a probe (or touching a pin) increases signal propagation delay (or elongates signal edge) on that particular signal, so it gets properly latched, and the overall data don't have intermittent corruption anymore.

Actually, the fact that you have discovered this kind of sensitivity is a good sign, since it likely means that the entire bus has a serious problem that must be fixed. Under some voltage or temperature or component variation the this effect can show up on some other data line. You need to check the entire bus for violation of hold time and make sure the data-clock relationship meets specifications with some margins. If the timing is tight, it could be that the bus does not have trace length matching, or something else.

Since it looks like the bus is an input to FPGA, advancing internal clock will fix the problem - it is likely that the clock insertion delay was uncounted for relative to the data I/O cell delay.

ADDITION: After the bus timing is fixed, I would recommend a quick and dirty test: when your system is running a relevant test, firmly press a wet finger over the bus traces, and see what happens. A good high-speed bus, with typical 50-Ohm traces and solid timing will continue to function, while a marginal bus will break down and show some garbage artifacts. Just applying a finger over solder mask increases the signal propagation delay along the bus transmission line (by 50-100ps), which might cause data integrity problem on a poorly implemented bus. Of course, the "wet finger test" does not replace a thorough validation of bus margins by clock timing margining and data skew checking.

There is an excellent elaboration on the "wet finger test".

\$\endgroup\$
1
\$\begingroup\$

The effect is to add some resistance and capacitance to ground (or to +V if you happen to touch that as well). Mostly you are shifting (delaying) the edge of a signal. Sometimes it is due to lengthening the rise time of the signal. Sometimes it due to attenuating the signal, so that it takes longer to "get up the rising slope" to the level where the edge is sensed. If you touch +V instead of ground, you can sometimes decrease the rise time and shift the edge the other way. In any case, for signals that are switching very close in time to their reference clock, this sort of disturbance shows up in the result.

If you could put the clock and the signal in question on a scope and watch what happens when you touch the pin, you would readily see what I've described.

\$\endgroup\$
  • 3
    \$\begingroup\$ And yes, as @Michael Karas put in his comment, I've also announced at times, "Well, we'll have to ship it with the scope probe attached". \$\endgroup\$ – gbarry Jan 9 '17 at 7:13
  • 2
    \$\begingroup\$ Just update the user manual with a picture of where the user needs to press. \$\endgroup\$ – mkeith Jan 9 '17 at 7:18
1
\$\begingroup\$

I don't have an answer for what's wrong but I have a quick and dirty work around if it has to go out the door. Take 2 pieces of small gauge solid insulated hook up wire (14-20 ga.) and tightly twist it together. Solder 1 end to the pin and the other to ground. Take your wire cutters and start trimming off the twisted wire until the image is stable. If the image never stabilizes start with a longer piece of twisted wire. That's always worked for me.

What you did is called a gimmick capacitor with about 1 picofarad per inch depending on wire size. They were SOP for tuning the finals amplifier on RF rigs to get the feed back from the plate to the grid just right. It is still useful anywhere you need a very small capacitance, particularly a variable one.

If it still won't stabilize I would try solding one wire to the pin and the other to V+ and start trimming again. If that does't fix it you do have a really weird problem.

When you touch a pin you also inject 300 to 600 microvolts of ~60 cycle AC on the pin as well.

\$\endgroup\$

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.