1
\$\begingroup\$

I have an LCD interface for a Beaglebone Black that is failing EMC. The Pixel clock is 65 MHz and is failing there as well as 195 MHz. Here is what the schematic looks like:

enter image description here

The setup is 24 bits RGB that is converted to LVDS, which there are 4 lanes of data and the differential clock. I found the input LCD clock from the beaglebone to the LVDS transmitter was the worst, especially at 195 MHz. I greatly reduced the EMI by putting in a LC filter (BLM21BB201SN1D with a 22 pF Cap). Here is what it looked like before (195 MHz at center):

enter image description here

After:

enter image description here

The clock integrity was unaffected and this likely would be enough to pass. However, there is still a lot of ringing on the LVDS clock side and I would like to improve it. I tried putting in the same LC filter for the clock but it just impeded the clock too much. I was thinking of adding a common mode filter between the + and - clock but not sure that is the best way filter it. Any thoughts on how to do this would be appreciated.

Edit 1: Adding pictures of layout

enter image description here

enter image description here

enter image description here

enter image description here

\$\endgroup\$
7
  • \$\begingroup\$ Common mode filters on the clock usually work well. Ferrite core around the whole cable usually works well. Also, for LCD's, providing grounding spring fingers from the metal case of the LCD back down to the main PCB can work wonders. Note that 65 MHZ has a long wavelength. Even 195 MHz is over 1 meter wavelength. So if you ground all 4 corners of the LCD, you can provide a decent ground return for your failing frequencies. Shielding the cable could possibly also help. The shield would need to be terminated to GND on the main PCB. \$\endgroup\$
    – user57037
    Apr 25, 2021 at 22:25
  • \$\begingroup\$ Problem is the noise is constant even with the display disconnected. It’s a medical grade display so it isn’t surprising that it isn’t contributing to the emissions. I suppose I could try the ferrite core on the cable, but because the emissions are being picked up from the interface board I don’t think it will help much. \$\endgroup\$
    – Ih8th3c0ld
    Apr 26, 2021 at 1:19
  • \$\begingroup\$ Try it. I have been in this business for a long time. Disconnecting the cable does not always help, especially if the cable is nearby. If ferrites and common mode chokes do not help, try shielding the cable and tying the shield to the LCD frame or backing as well as to the main PCB. Don't ignore what I said about spring fingers from the main PCB to the screen (assuming some type of tablet-like mechanical layout). What I guaratntee you is that a small simple ground plane PCB will have a hard time failing at 65 MHz. There has to be a resonance going on between disparate parts or cabling. \$\endgroup\$
    – user57037
    Apr 26, 2021 at 4:20
  • \$\begingroup\$ If there are other cables besides the LCD cable, put ferrites on them, too. \$\endgroup\$
    – user57037
    Apr 26, 2021 at 4:20
  • \$\begingroup\$ Re-reading, I realize I may have misunderstood something. You put a filter on the single-ended input to the differential clock driver, and that knocked down the emissions? That suggests that the differential signals are not the biggest part of the problem. Are you able to adjust the drive strength of the beagle-bone clock by changing a register setting inside the beagle bone? Usually this is the best way to slow down a clock whose edges are too fast for EMI. Next best way is with an RC rather than an LC. LC filters tend to cause the signal to ring. \$\endgroup\$
    – user57037
    Apr 26, 2021 at 4:40

3 Answers 3

2
\$\begingroup\$

Probably what is happening is there is intra-pair skew between the clock line pair lines. Any imbalance in the pair has to make its way back via ground or any of the other connected signals as common-mode noise. This is true of the other pairs as well.

A common-mode filter on the clock will definitely help (as it will with the other signals too.) There’s a whole product category of 0402-sized CM filters designed for HDMI that can be used for this.

Could also try an overall ferrite clamp-on filter for the cable.

\$\endgroup\$
8
  • \$\begingroup\$ The LVDS cable to the display is twisted pair, shielded and all equal lengths. I measured the noise with the cable disconnected and there was dB reduction so at the very least it is not making it worse. Ok so I can look at a common mode filter. So lets say I use something like a DLP31DN900ML4, do you think it would be impactful enough at 195 MHz? Based on the data sheet it it looks like the best option if I dont want to impede the 65 MHz clock. Also if I do the clock do I have to do the data lines too? \$\endgroup\$
    – Ih8th3c0ld
    Apr 25, 2021 at 21:19
  • \$\begingroup\$ Sorry no dB reduction \$\endgroup\$
    – Ih8th3c0ld
    Apr 25, 2021 at 22:10
  • \$\begingroup\$ common mode filters have minimal effect on differential signal. The whole point is to filter the common mode signal and allow the differential signal to pass through unimpeded. The differential impedance for all the chokes listed in that datasheet is below 10 Ohms at 100 MHz. I think you would be able to use any of them. I would definitely try putting a ferrite over the whole cable to see what happens. \$\endgroup\$
    – user57037
    Apr 25, 2021 at 22:19
  • 1
    \$\begingroup\$ Not only do CM filters not attenuate the signal, they have the effect of cancelling skew, so they even improve the signal integrity a bit. \$\endgroup\$ Apr 25, 2021 at 22:33
  • \$\begingroup\$ So why would the BLM21BB201SN1D impede the clock so much? It has no impedance below 70 MHz. I’ll try to get a screen shot of the clock with and without the beads but it should have little impact on the 65MHz clock correct? \$\endgroup\$
    – Ih8th3c0ld
    Apr 25, 2021 at 23:30
1
\$\begingroup\$

Your question doesn't include any PCB layout visuals, which is usually the exacerbator of EMI issues, not schematics (although an absence of termination - source or destination - can often be the root cause). Until then, most answers here can't be much more than a stab in the dark (see above), or hand-wavy generalities (see within ;).

I think you have two separate problems here; the 65 & 195MHz on the TTL side, and the ringing on the LVDS side.

TTL side: You're measuring energy escaping from your board, particularly at the 3rd harmonic (though your plots are zoomed way in, so we can't see what the comparative intensity of the fundamental or higher-order harmonics is).

"High speed" isn't just about the signal's switching frequency, but also about its rise/fall-time. If 3x (195MHz) is your main culprit, this is clearly driven by rise/fall-time, not clock-speed, thus transmission line characteristic impedance, and probably termination thereof - or a lack of it - is the cause.

Like great plane crash disasters, it's rarely just one thing that brings you down, but a combination of things.

Judging by the distance between LCD_CLK & the nearest GND on J1/BONEP8 - aka loop area - the high-order harmonics are probably escaping mostly that way.

So what's under this LCD_CLK track (gnd plane), what's its return path? IOW, how much area is there between LCD_CLK & GND? Do you have a broken GND plane (don't do that) between LCD_CLK's source & destination that's forcing the LCD_CLK's return-path to be deviated around the broken GND plane?

What's the GND on the J1/BONE8 header closest to LCD_CLK? That's a bit of a rhetorical question, we can see there's GNDs all and only up the far end, so that's a problem (especially with a chunky 0.1"-pitch header!). So even if you have a solid unbroken GND plane from the J1/BONEP8 header to under U1, you've still got a loop (in 2 or 3 dimensions) as it hops over J1 from the Bone to your board.

Possible solutions:

  • reduce ALL the LCD_x signal's slew rates, if you can configure that (minimises the intensity of the source of the problem).

  • reduce ALL the LCD_x signal's drive-current, if you can configure that (minimises the intensity of the source of the problem).

  • if you have a break in your board's GND plane, fix that. deliberate breaks/segmentation of GND planes almost always causes problems, especially if you have control over where things are laid out to control return current flows in the first place.

  • If that doesn't help (enough), then characteristic impedance termination at source or destination is likely necessary, to reduce the intensity of those high-order harmonics. Because you're using a 'Bone, you don't have the option to put in source-termination, so all you can do is put an RC filter at the destination end, right beside U1.31. Filter values will be determined by how closely your LCD_x signal's track & GND plane geometry (transmission line characteristic impedance) match the source impedance (Beagle's GPIO), so you'll have to research that with the specifics of your situation.

  • Assuming I'm right, that the source of your problem is rise/fall-time creating strong higher harmonics encountering impedance mismatches along the way, and escaping via a undesirably large loop-area as it goes over J1 & J2, then your problem isn't only LCD_CLK, but all of those LCD_X signals (although they're switching less frequently, each time they do they generate noise), it's just that LCD_CLK is the one that sticks out the most; evidence of this is visible in your 'scope plots, and can be further confirmed by seeing those smaller spikes move to other frequencies as the content of your video output changes). Whether that's enough to cause you to ultimately fail EMC can't be gleaned from your question (application, applicable emissions limits, system-level considerations, etc).

  • despite the point above, if LCD_CLK is your primary problem (on the TTL side), if you have the opportunity to move LCD_CLK to a different GPIO pin (sorry I'm not familiar enough with the OMAPs to know), one that's closer to a GND on J1/J2, then you'll substantially close that loop-area and have less EMC-compliance-busting energy escaping.

LVDS side: You say you've got ringing on the diff-pair line(s)? That means you've got some of your diff-pair's signal bouncing back from the panel, which means you've got impedance mis-match somewhere along that transmission line between the LVDS-out pins of U1, & the panel's LVDS-receiver chip.

Without knowing anything else about the system (panel, what it's destination diff-pair terminators are, what the characteristic impedance of the LVDS-cable is, what connectors you're using, etc etc etc), it's impossible to dive in further.

\$\endgroup\$
7
  • \$\begingroup\$ I added a few pictures of my layout, I will to clarify on a few things you brought up. It is a 4 layer board with a solid ground plane, not broken up. The power plane is broken up and used in a few places for my VCC (3.3Vdc), 5 Vdc, 12 Vdc and 24 Vdc. That would be the yellow layer in the first picture. I hid it in the next 3 so you could see the bottom later. The closest GND for the LCD_CLK pin is from a mounting stud to the left of J1 (P8). Those 4 through hole pads are for ground only, I added them in to limit the loop area. \$\endgroup\$
    – Ih8th3c0ld
    Apr 26, 2021 at 18:04
  • \$\begingroup\$ As for the Spectrum analyzer, it only has a 40 MHz span, and even if it had more it would only confuse viewers as there is so much ambient noise. Fortunately the lab helped me determine the exact points of failure which as of now is really just the 195 Mhz. I should note that I had removed the header pin from the LCD_CLK and found the noise had disappeared from my board. I then used a near field probe (E-field) to scan the pins on the Beaglbone to see which was the culprit and it was far and away the Clock. Not to say the RGB data lines cant be improved but they dont seem to be emitting much. \$\endgroup\$
    – Ih8th3c0ld
    Apr 26, 2021 at 18:11
  • \$\begingroup\$ Last thing I should mention is there is 100 Ohm termination across each pair of data and clock on the display itself. The cable is twisted pair and the it is shielded, the shield being to the PCB's GND. \$\endgroup\$
    – Ih8th3c0ld
    Apr 26, 2021 at 18:21
  • \$\begingroup\$ @lh8th3c0ld Thanks for the screenshots, helps a bit. I'm not a fan of using mounting studs as a ground-return, at least not in a situation where SI is an issue, but it's not like you have a lot of better options if the Beagle header pinout isn't under your control, but still trying to send slightly-high-ish speed signals over them. You didn't mention if relocating LCD_CLK to another pin is an option. \$\endgroup\$
    – Techydude
    May 9, 2021 at 13:59
  • \$\begingroup\$ @lh8th3c0ld "had removed the header pin from the LCD_CLK and found the noise had disappeared from my board" - pls clarify?! what did you remove, in what circumstances? \$\endgroup\$
    – Techydude
    May 9, 2021 at 14:02
1
\$\begingroup\$

Keep in mind: You are having problem with a small circuitry, and every small things matter.

  1. Adding "extra" filtering on signal lines is the last step, though it is the first choice to attempt for it feels easy. And, you just cannot ignore that sure losing signal margin.

  2. SN75LVS83 inputs likely have 50 ohms impedance. While there is no impedance consideration in your circuitry. When the traces are getting long, it becomes significant factor. Though you said it is "ringing", make sure it is not from the impedance matching problem. I am loosely stating this, because the "ringing" has to be addressed first. Following is the remedies to put the ringing (generally, "noise due to signal") under control.

enter image description here

  1. Design enter image description here

(a) Separate VCC, IOVCC, PLLVCC, LVDSVCC. Generously use L&C LPF for isolation. R&C LPF works as fine as L&C. Bulk caps in "0.01 + 0.1 + 1uF" does not do anything (I promise :-)) for the purpose as in your circuitry.

(b) & (c) Add decoupling & Bulk caps here. No bulk caps are needed around the device pins.

  1. Layout enter image description here

(1) A very example of un-tuned antenna. Try to shorten, balance, guard, shield, match impedance, all or as much as you can.

(2) Data lines are in sync with the clock as well. Thus they sing in harmony with the clock, helping clock to emphasized the noise. Apply the same strategy as the clock signal.

(3) These area, other power entry point as well, is where the bulk caps go.

(4) You are wasting capacitors here. Be mindful. We are running into huge problems with part shortage globally. :-)
Do as instructed in the (a), and only one capacitor is enough, I would go with 0.01uF.
The key is, how you construct and control the current path, both the VCC/VDD and GND. That is the art of the decoupling. Whatever you do, place the cap right next to the device pin. I had good result by placing the caps on the solder side, right underneath the device pin. "See" every mills of distance as a circuit, that passing current.

(5) Fill the blank area with copper-pour. It does not cost at all, but, is an effective way to pickup extra emissions.

(6) Good Luck, and let us know how your progress goes.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.