0
\$\begingroup\$

I have a board which has two ground planes, analog and digital, that on this board are completely separate. The grounds connect on another board, which is connected via a flat cable.

All signals on top of the two powerplanes are independent (i.e. they interact on the other board only), except for four "jack detect" signals, which detect when a plug is inserted into a jack on the analog side. These need to cross to the digital side. The jack detect signals are DC except when a plug is inserted or removed. The voltages involved are \$0\$ or \$3.3\mathrm{V}\$, depending on jack state, and read via an I2C expander on this board. The following is a schematic for one of four jack detects, others are identical.

schematic

simulate this circuit – Schematic created using CircuitLab

When nothing is connected to the jack, the switch is closed, and R3, which is connected to the virtual ground of the opamp (powered from analog \$3.3V\$ and connected to analog ground) pulls the input low enough to read a logic zero at the I2C expander. So in this case the current comes from the opamp and goes to the digital \$3.3V\$ and the I2C expander. When a plug is inserted, the switch opens and R1 pulls the input up to (digital) \$3.3V\$. In this case the current travels entirely in the digital side, and there's no problem.

The digital side and the jack detect signals obviously only need to be clean enough to always read the correct logic state. However, the analog side contains somewhat sensitive signals, which we need to read to about 12-bit accuracy.

My question: this requires crossing the ground plane split from the analog to the digital side. How should I do it? Some options with justification:

  1. Sure, there's a loop that travels to via the flat cable to the other board, where the grounds meet. However, the current involved is minuscule, the \$100\mathrm{k\Omega}\$ resistors alone limit it to \$16.5\mathrm{\mu A}\$ (and in reality much less than this), so I just jump over the split with R2.
  2. I connect the powerplanes under R2. Now there's no large loop for the jack detect current. However, other ground loops become possible in principle, and I need to make sure that this connection is not the preferred return path for any other signal. I should be fine with high frequency signals, since those want to travel under their respective tracks, right? However, depending on resistances in the flat cable, connectors and the other PCB, some DC signals might want to take a shortcut here, causing ground offsets (biggest currents traveling between the boards are some tens of \$\mathrm{mA}\$, so at 12 bits, 1 LSB error corresponds to about \$0.1\Omega\$ resistance).
  3. Connect the power planes next to R2 with a capacitor. However, this doesn't seem to make sense since there shouldn't be any problems at high frequencies anyway.
  4. Bring the jack detects all the way to the other PCB and cross them where the power planes do connect. This cannot be done, as there's not enough conductors in the flat cable, currently the only digital signal between the boards is the I2C bus.

Currently I have a prototype using option 1., which works perfectly fine. So perhaps none of this matters at all, for DC and such low currents?

\$\endgroup\$
  • \$\begingroup\$ Given that you're mixing analog and digital signals together on this board anyway, this seems to be much ado about nothing. I would go ahead and connect the two ground planes to each other, at a single point that's near the I2C expander chip. \$\endgroup\$ – Dave Tweed Nov 16 '18 at 13:55
0
\$\begingroup\$

I agree with Dave Tweed. I forgot to connect the two grounds on a recent design and was puzzled by, albeit small, switching noise I was seeing on a photodiode net. Eventually I discovered the issue and connected the grounds at one point, this got rid of the switching noise.

\$\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.