Electrical – Filtering out OLED electrical noise

adcemi-filteringfilterpower supplysignal

I have an OLED display and a high gain op-amp on the same circuit. When OLED is powered on and displaying something, it creates a electrical noise on the output of the opamp. Here is what I tried:

  • Opamp and OLED power lines are decoupled with closely-positioned 100nf ceramic caps.
  • The display is mounted directly behind of the said opamp. To determine if noise is not caused by radiated EMI by the display itself, I connected the display away from the PCB by running a wire. No change.
  • Added an LC filter to op-amp supply (ferrite bead and 100n+10u after). No change.
  • If I supply the OLED with a seperate power supply, the problem goes away (output looks same as if OLED disconnected).

Here is a scope capture. Please ignore the rising/falling edges.

scope capture

The OLED driver internally generates ~9V for driving the display. It uses a capacitance multiplier for that and probably that's my problem.

Any help/idea on filtering this supply noise would be appreciated.

Edit 1:

  • Current draw of the OLED: 10mA@5V
  • What is opamp doing: It is MCP601 that I'm using as a thermocouple frontend. Output goes to an ADC (no load).
  • Other noise sources: Circuit is supplied with (clean) 12V, goes through on-board 5V linear regulator (with its input and output caps). Everything (OLED, op-amp and MCU) is on the same supply.
  • Routing: Two layer PCB with ground pour on each layer. I did not do star grounding though.
  • Decoupling on OLED: I modded the OLED board with its supply passes through a ferrite+100n, no change.
  • Ferrite bead: I tried what I have on hand, BLM21PG331SN1D and FBMJ2125HS250NT.

Best Answer

A large (330uF) capacitor between VDD,VSS is definitly worth doing but you should also investigate tweaking your OLED init code. Many OLED's have lots of config options to do with voltages and frequencies that can really make a difference to the amount of electrical noise they make by reducing their overall current draw but also by altering the "pattern" of said current draw.

I had the same problem as you with SSD1327 OLED from waveshare. The default configs work great but produced a significant amount of noise in my audio output. The main turned out to be the refresh rate that was well into the audible range at around 120Hz and much higher than actually necessary. A bit of tweaking to the internal oscillator config reduced the frame rate to a much lower value leading to less noise in the audible range. Futher tweaking to drive voltages reduced the scale of that noise so much that is almost unnoticable in my application.

I wrote more about it over on the EEVblog