Monday, 11 January 2016

grounding - Sending ground along with digital connections between boards


I have been wondering for quite a while whether it's good practice when connecting two boards together (powered from the same power supply, although each has its own regulator) to send ground connections along with the digital connections.


For instance, I had a board which contained a AVR atmega microcontroller (controlling an external ADC) connected directly to a FTDI USB to serial converter. This worked well. Now, I'm splitting the boards into an ADC board with the micro+ADC components and a board containing only the FTDI chip. The connectors on these boards are screw terminals, and I'm going to use SIP pins to connect the terminals together instead of wire. This ensures minimum distance the 8 logic signal has to travel between boards. The rise time of these signals are on the order of ns, and are running at 1MHz.


The question I'm having is whether it's good practice to add more pins for ground connections between boards. I understand that giving each digital pin its own ground pin will reduce coupling between pins and provide better ground return paths. However, that will add to the pin count. Also, I'm worried it will feed back noise between the boards.


Previously, when sending wires between other boards I've had capacitive coupling between them. So I'm trying to find what the standard practice for such a situation is.


Thanks in advance, M




Answer



In fact, it is almost mandatory to run at least one ground wire per cable-- even when that ground wire is not needed for power supply reasons! Some cables have many ground wires in them, and it is not uncommon to see as many ground wires as signal wires in a single cable.


The reason for this is Signal Integrity (SI), which is a big area of electrical engineering that includes EMI, ESD, RF emissions, and others. It involves being able to send a signal from point A to point B with as little distortion and noise as possible without emitting radio energy, picking up radio energy, or picking up static electricity discharges (which is like radio energy).


The whole subject of SI is huge and way beyond what I can cover here, but let me briefly cover two topics of SI: AC signal return path and loop area.


When you send a signal from point A to point B, wither those are chips on the same board or different boards, that signal has to return back to point A. Normally this is done on the power or ground wires. The path that this return signal takes is called the AC Signal Return Path. Controlling this return path is super important for SI, and we do a lot of things to control it. We do things like control the PCB trace (or cable wire) impedance. We put decoupling caps on the PCB (also called signal bypass caps!). And, of course, we put ground wires in our cables.


The loop area is simply the area that our signal loop takes. From point A, to point B, and back to point A. The smaller this loop area is, the less our signal will get distorted and the less noise we will emit and/or pick up. To make this loop area smaller, we use multi-layer PCB's with power and ground planes. We use twisted-pair cables where a ground wire is twisted with a signal wire. We use multiple power and/or ground wires in a single cable.


Now, imagine your setup with two PCB's talking to each other, but no ground wire directly between those PCB's. A signal from PCB A goes to PCB B, then to the power supply via the GND wire, then back to PCB A. Depending on the exact configuration of cables, the loop area could be a square foot or more! But if the PCB's have a ground plane, and the cables have a ground wire, then the loop area could be just 1% of that (about 1.5 square inches).


Again, I overly simplified this but I'm sure you get the idea. SI is a huge and difficult subject that even "experts" who have been doing this for 10+ years have difficulty understanding. But stick with it and in time you'll get the hang of it!


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...