We have used iMX8MQ processor on our custom board design. Currently going through a compliance testing.
HDMI is giving a hard time to qualify the EMC certifications. Find attached image showing the results of radiated emission scan of our custom board with 1080p HDMI display.
- We followed all guidelines provided in Hardware design guide for iMX8M.
- The intra & inter pair for HDMI traces are 5 mil & 20 mils.
- Impedance controlled to 100 ohm differential for all HDMI signals
- Routed in internal layer with continuous ground plane reference
- Added ground via close to differential signal vias
- Used EMI filter near to HDMI connector
We explored & came across few parameters which can help to get reduce the radiated emissions above, those are:
Slew rate, Voltage Swing, Drive strength and terminations.
Want to know where we can tune above parameters using register settings in iMX8M.
Any help here would be greatly appreciated.
Hello Ritesh Patel,
The steps you have followed look correct. There are some guidelines mentioned on the following thread, where a document for the i.MX6 is referenced, but these guidelines should apply also for the i.MX8MQ.
Additionally, you may want to review the layout for placement of other components and adequate control of emissions by providing close enough grounding to each signal.
It seems the frequencies are multiples of the pixel clock. I'd try to enable spread spectrum clocking; looking at the graphs I don't think that is (fully) enabled. BTW Is the HDMI monitor outside the EMC chamber and did you put ferrite cores (at least 5 pieces!) around the cable from the monitor to make sure the monitor isn't injecting emissions back into the cable?
Thanks Nico Coesel for your response.
Can you please provide some reference from where we can enable spread spectrum clocking for HDMI disp?
We are using FCC certified HDMI monitor. So we kept monitor inside the EMC chamber. Also the HDMI cable is not sufficient in length to run HDMI disp outside the chamber.
We used single clamp ferrite core on HDMI cable but that didn't help much.
I've found an #ifdef SSC_ON_INIT in the HDMI driver in the kernel (version 4.14.78). If you define this in the file drivers/mxc/hdp/all.h then it should be enable. I have no idea whether it works. After all it is commented out by default and no official way to enable it.
Still I very very strongly recommend to get a longer HDMI cable and place the monitor outside the chamber. I guess the monitor will be FCC class A (consumer) and not class B (industrial). Looking at the graphs the monitor itself will likely pass class A but not B. Also it makes not much sense for the iMX8 board to emit so much radiation on multiples of 148.5MHz. On the iMX8 board the pixel clock itself has very little relation to the HDMI signals which are in the GHz range and scrambled to reduce EMI. The only place where the pixel clock is used / created is in the monitor.
For iMX6D/Q, there are few configuration setting related to the HDMI_PHY on page # 1799 & 1800 related to Driver Edge Rate Control, Termination, Voltage level and Pre-emphasis.
We want to control these parameters in iMX8MQ HDMI PHY. Please provide the details or any reference.