PCB grounding: analog, digital & theirs supply - Page 1
Forum section: electronics / general

author: mike_piw
author_rank: Newbie
timestamp: March 28, 2022, 01:03:54 pm
content: Hi everyone,I'm designing PCB witch is kind of extension for STM32 Nucleo H743ZI.One of the most important funcionality for this set is ultra-low noise measurement of few 0-10V analog signals (each input with op-amp buff).There will be aslo some digital pheripherials (eg. spi & uart devices) on PCB.Whole set will be supplied from external PSU +18V, so I need 2 stabilizers: one 5V for Nucleo and digital stuff and +12V for analog buffs.My question is about correct grounding for ultra-low noise analog mesurements. I'm familiar with ideas of star-grounding and seperate analog & digital ground.Fortunetely Nucleo have AGND pin for analog measurements, so GND from op-amp buffs should go there, but I'm not shure how to connect GND of supply for those buffs.This supply inclueds LC filter, 12V stabilizer ans some cap's.Which point of ground is correct for this purpose: AGND Nucleo pin (with op-amp buffs) or input PSU plug with all other (for digital lines aslo) stabilizers? Or maybe other way?Thanks for any advice!

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 28, 2022, 07:42:59 pm
content: Asking what point to ground it at, is probably already the wrong question; but showing why, unfortunately isn't so easy.For simplicity's sake, just pour ground over everything. If it's 2-layer boards, add vias to stitch top and bottom grounds, particularly near component pins/pads, and at trace/bus crossings. Maximize the area where signals/components sit above or below a ground. Note that, anywhere traces or rows of component pads cross, a negative space is created through both pours, where ground is not adjacent to them. Minimize these areas, and stitch around them to close the area of that loop.For 4+ layer boards, just pour GND/VCC inner layers, and route signals on outer layers without much concern. Do avoid placing tight rows of vias, which create a slot in the planes -- give space every 4 vias or so, so planes can pour between them.This largely solves issues of EMC: signal quality, susceptibility, emissions.Then,address the DC/signal accuracy issues. If you find too much voltage drop across the plane (likely some ~mV), route the signals between areas differentially, adding differential sense amps as needed. That is, bring along the ground reference, but do it as a net tie or 0-ohm jumper to the reference point, and reference all your signal chain to that. Add filtering (RCs?) as needed to maintain signal quality / stability. This obviates the need for full system star grounding, which is likely to be an EMC disaster.You're not using the internal ADC, right? That's a, let's see here... Ah, up to 16 bits, not bad. So, if true 16 bits is achievable at all (by the device itself, in the best of circumstances), some care is probably required. And, I doubt that you will have good enough conditions through a stack of dev boards, regardless of how good your customer stacker is. Build a dedicated board, don't worry about doing it this way.The next best you can do, with the dev board stack as-is, is differential ADC measurements. Either actual differential, or simultaneous sampling (probably an option, if it's so equipped, I didn't check), or pseudo-differential (sample one channel after the other, subtract in SW) -- in order of preference. You may need to add filter caps to the ADC pins, near the MCU, to keep bandwidth (and noise) down at the point of measurement.If you'll have current flows in various directions, and multiple grounded (earthed) signal sources/sinks, ground loop is inevitable. The best you can do here is isolate each input channel (or set thereof), using probably a separate ADC (and maybe MCU) on the high side to communicate the readings via digital isolator. The second best is to use differential inputs, preferably actually balanced differential, but unbalanced (coax, RCA jack, whatever) can be used in the same way as well, specifically using a low impedance (but not zero) ground-return path, so that EMI is shunted (bypass caps between jack/shield and circuit GND) while some DC/signal offset is allowed through (dropping across a modest value (say 100R) resistor, but limited by TVS diode, say). Use a differential receiver and the signal will come in with good quality, as long as the common mode range is not violated.Tim

author: thm_w
author_rank: Super Contributor
timestamp: March 28, 2022, 09:24:25 pm
content: Relevant thread:https://www.eevblog.com/forum/microcontrollers/stm32h7-adc-performance-ya-gotta-read-the-fine-print!/

author: nctnico
author_rank: Super Contributor
timestamp: March 29, 2022, 12:12:49 am
content: Quote from: T3sl4co1l on March 28, 2022, 07:42:59 pmHmm, do you really think an ADC inside an ST MCU can achieve 16 bit? Remember it is ST! ENOB is less than 14 bitstypicalaccording to the datasheet without worst case specs.For anything that needs absolute precision, an external ADC is the way to go. Then things like amplification, differential inputs can be handled properly. I'd be careful with using opamp buffers. These can add offsets and noise. My preference is to use an ADC which has an integrated front-end that can do signal conditioning if necessary. That way you get a very optimal design without having much risk poor performance due to having many external components.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 29, 2022, 02:35:52 am
content: Hey, as the other user's sig says... there are lies, damn lies, and ADC specs.As the plot in the other thread shows, it might be reasonable at lower sample rates. The same forces that make package type an issue, will extend out to the PCB as well. So, some care is required, and that thread illustrates what kinds of things you'll need.On the upside, even at 1Msps, if it's a true repeatable 16 bits, it's a lot more than most MCUs, and outperforms many low and mid-level standalone chips. Assuming, of course, the limitations are acceptable -- by the sound of it, there's no mux while meeting those requirements (the direct/fast pin stuff), a rather big irritation in a lot of applications.Tim