Page 1 of 1

EMC problems at 426 MHz with DPI24 enabled

Posted: Tue Feb 27, 2018 6:49 am
by mbatte
Hi everyone!

I have some EMC problems using the DPI at the CM3 module.

We connected a 7” TFT display (with capacitive touch) to the CM3 via the DPI24.
Because the display seems not to use the HSYNC and VSYNC signals, we modified the default DTBS file so we can use the pins for the I2C of the touch module.

Here is a snipped from the modified dpi24.dtbs:

Code: Select all

fragment@1 {
		target = <0xdeadbeef>;

		__overlay__ {

			dpi24_pins {
				brcm,pins = <0x0 0x1 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b>;
				brcm,function = <0x6>;
				brcm,pull = <0x0>;
				phandle = <0x1>;
			};
		};
	};

Here a snippet of our config.txt

Code: Select all

#MB: use custom mode for DPI
dtoverlay=dpi24
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0
#framebuffer_width=1024
#framebuffer_height600
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x73017
hdmi_timings=1024 1 40 48 88 600 1 13 3 32 0 0 0 60 0 36864000 3

#MB: activate I2C for touch
dtoverlay=i2c1-bcm2708,sda1_pin=2,scl1_pin=3,pin_func=4
From the functional side of view everything seems to run correct. We can see the console of the raspbian lite image and the touch is also working for our user software.

Now we did some measurements with our EMC department. They found out the pi is emitting a frequency of approximately 426 MHz at a level higher than allowed.
We further fount out, the interference comes directly from the BCM2837. We can clearly see the emitted frequency at our spectrum analyzer with a loop antenna. We did the measurement with our own base board as well as the CM3IO.
Next thing we tried is to disable the PCLK using the command “raspi-gpio set 0 ip”. Now the emitted frequency is gone.
We think the frequency has some connection to the PCLK signal of the DPI, but cannot find out which (426 MHz is not even close to an integer multiple of the PCLK).

Can anyone help to clarify where this frequency may come from and how to solve this EMC problem?

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Tue Feb 27, 2018 6:45 pm
by GordonTGopher
The integrator programme could be a good starting point: https://www.raspberrypi.org/blog/raspbe ... programme/

Gordon

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Tue Feb 27, 2018 8:58 pm
by gsh
If it goes away when you set the GPIO to no longer output the clock then the problem is the clock. What is the PCLK frequency you have set (did you measure it with a scope?)

It's almost definitely standard problems with DPI, there are 26 signals at 3.3v all going up and down at around half the clock frequency plus a few syncs and the clock itself. When you set the alternate GPIO setting this doesn't make any difference to anything happening on the Pi itself, the clock has just been stopped being transmitted into the pin, so this means the problem is either insufficient capacitance on the bank supply or just poor signal conditioning across the PCB to the display connection. It is almost impossible to understand exactly what it is that's causing the problem, the loop antenna doesn't really tell you much because it's only measuring H field so can't tell you why it's happening.

I assume you have a minimum four layer PCB with at least one complete ground plane?

Gordon

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Wed Feb 28, 2018 8:33 am
by mbatte
Thank you for your fast reply.

Yes, correct, we are using a four layer PCB with a complete ground plane.

We have set a PCLK of 36.864 MHz (1024 * 600 Pixel @ 60 Hz ) and can measure this frequency with a scope. The emitted frequency can be measured at 426 MHz with a spectrum analyzer.
426 MHz / 36.864 MHz = 11,56
This is not a full integer so we don’t think this can be a harmonic of the PCLK.

We are measuring the “EMI radiated” according to “EN 300220-1” and “EN 55032”. We used the loop antenna to locate the maximum of the emitted field. As mentioned before the maximum can be found directly at the edge of the BCM2837.
If we put the CM3 from our base board to the CM3IO board the loop antenna still shows a high level directly next to the chip.

The last day we also found out that the emitted frequency moves if we use cold spray to the BCM2837. The 19.2 MHz oscillator doesn’t move.

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Wed Feb 28, 2018 9:20 am
by gsh
If the peak disappears when you change the alternate setting on the CLK pin then the problem can only be one of the following:

1) insufficient capacitance / poor power supply to CM3
2) ground loops in the CLK signal from the CM3 to the display
3) The display

It's possible the display itself is causing some other frequency, although doesn't explain why it would change when cooling the BCM283x. Other possibility is that the signal edge quality is changing with temperature which changes it's general makeup.

Can you use:

for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do \
echo -e "$src:\t$(vcgencmd measure_clock $src)" ; \
done

before and after cooling to see if the clock is changing (with respect to the oscillator) with temperature. It's possible there is some other clock output that is causing some noise, but again if changing the alternate setting of the GPIO then the only difference is whether the pin toggles, everything else inside the chip is the same. Meaning the problem is related only to the clock... I would guess your clock is not square and you are seeing some other effects (such as the rlc of the external wires resonating at that frequency)

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Wed Feb 28, 2018 12:18 pm
by mbatte
To your first three points:
1) Our measurements of the power supplies of our base board look stable and quite noise free. Connecting the CM3 to the CM3IO also shows 426 MHz. We assume the power supply of the CM3IO is also okay. Nothing connected to the CM3IO except the CM3.
2) We will check our base board for ground loops. Again, CM3IO shows the same prblems, so I have not much hope
3) With disconnected Display the 426 MHz can still be measured.

Here the requested data before cooling:
arm: frequency(45)=600000000
core: frequency(1)=250000000
h264: frequency(28)=250000000
isp: frequency(42)=250000000
v3d: frequency(43)=250000000
uart: frequency(22)=47999000
pwm: frequency(25)=99995000
emmc: frequency(47)=250000000
pixel: frequency(29)=338000
vec: frequency(10)=108000000
hdmi: frequency(9)=0
dpi: frequency(4)=36867000


and after:
arm: frequency(45)=600000000
core: frequency(1)=250000000
h264: frequency(28)=250000000
isp: frequency(42)=250000000
v3d: frequency(43)=250000000
uart: frequency(22)=48000000
pwm: frequency(25)=99995000
emmc: frequency(47)=250000000
pixel: frequency(29)=337000
vec: frequency(10)=108000000
hdmi: frequency(9)=0
dpi: frequency(4)=36867000


For me this looks stable.

One more question: Can you please explain, what is the clock related to "pixel"? Is it correct that this clock has a value != 0 if we use DPI?

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Wed Feb 28, 2018 1:04 pm
by gsh
With the CM3+CMIO3 board, if you switch the alternate setting does the peak disappear?

Can you terminate the clock line on the CMIO3 board with a suitable resistance, probably around 100R should suffice.

Gordon

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Wed Feb 28, 2018 3:52 pm
by mbatte
Yes, when setting GPIO0 to input with

Code: Select all

raspi-gpio set 0 ip
the peak disappears.

100 Ohm connected to this GPIO at the CMIO3 shows no effect.

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Wed Feb 28, 2018 4:46 pm
by gsh
One other thought we had is whether this is some multiplication of the audio PWM output frequency and the PCLK frequency

Can you try setting the PWM outputs to inputs using raspi-gpio tool to see if this has any effect?

Re: EMC problems at 426 MHz with DPI24 enabled

Posted: Thu Mar 01, 2018 9:31 am
by mbatte
We already tried to disabel all other GPIO except the PCLK with the raspi-gpio tool. This had no effect.
We also disabled the PWN in the config.txt with no effect.

Another thuogth by our side:

Code: Select all

for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do \
echo -e "$src:\t$(vcgencmd measure_clock $src)" ; \
done
There is a value at "pixel" is this correct when using DPI?

Best Regards
Markus