i.MX6 HDMI blanks out

cancel
Showing results for 
Search instead for 
Did you mean: 

i.MX6 HDMI blanks out

218 Views
Contributor III

I've been working on a modification to the mxc_ipuv3 frame buffer driver to clone one display to another by using the IC block in the IPU to scale and center the source frame buffer on the destination frame buffer.  The modifications to the driver are basically working.  It does clone an LVDS (resolution 1024x600) to an HDMI (1080p), and the image on the HDMI is scaled so that the vertical resolutions match, and scaled image is centered on the HDMI screen.  The modification only actively clones the source frame buffer while the device file for the source is open.  When the driver is not actively cloning (ie no one is using the source framebuffer) there is no problem with the HDMI. 

However, occasionally while the driver is actively cloning, the HDMI will intermittently go dark. While it is dark, the HDMI monitor tells me there is no signal.  It is as if the HDMI phy has shut off.

I'm also noticing while this is happening, the temperature of the CPU is ~60C as reported by:

cat /sys/class/thermal/thermal_zone0/temp

Is there a thermal limit on the HDMI phy? 

If not I'm wondering what else could be causing this intermittent shutdown of the HDMI signal from my i.MX6DQ?

0 Kudos
3 Replies

72 Views
NXP TechSupport
NXP TechSupport

Hi Robert

one can try to increase hdmi drive strength

About Drive strength of HDMI in i.MX6DQ. 

Try to reproduce issue on nxp sabre reference board to check

if issue related to custom hardware: unstable clocks, power supplies.

May be useful : IMX6DQ6SDLHDG, Hardware Development Guide for i.MX 6Quad, 6Dual, 6DualLite, 6Solo Families of Applic...

There also can be linux "blanking" :

How do I prevent the LCD from turning off after 20 min ? 

https://community.nxp.com/thread/329043 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

72 Views
Contributor III

I've disabled the FRAMEBUFFER_CONSOLE in the kernel configuration.  So I don't think the problem is the Linux screen blanking.  However, I hadn't considered the HDMI drive strength.  

Some more details:

I'm using 2 different LVDS panels to develop this driver modification, one is 24-bit (RGB24) and the other is a 16-bit (RGB565). All 3 monitors (both LVDS and the HDMI) work flawlessly for 30 min or longer using the unmodified driver, and the HDMI works with either a 24-bit frame buffer or 16 bit frame buffer.

The cloning driver works flawlessly to drive both the 16-bit LVDS and HDMI frame buffers for 30 min or longer.  The blanking problem appears about 4-5 minutes while cloning 24-bit buffers for both LVDS and HDMI.

One of my early problems cloning the 24-buffers was figuring out the pixel packing order.  Even though both the 24-bit LVDS panel and 24-bit HDMI pannel use RGB24, I ended up needing to change the ipu_task input format from RGB24 to BGR24 and leaving the output format RGB24.  That combination ended up scaling with the correct color on the output monitor.  Other pixel packing orders produced scaled images but with incorrect colors.

The other thing I thought I should be able to accomplish is use different pixel formats for the input and output, but I never got that working. The scaling appears to work in for different input and output pixel formats, but the color is all wrong.  It would be nice to have an input format of RGB565 and output format of RGB24 (or vice versa).

Is it likely that the drive strength is borderline so that it works with a 16-bit buffer but doesn't work with a 24-bit buffer?

0 Kudos

72 Views
NXP TechSupport
NXP TechSupport

>Is it likely that the drive strength is borderline so that it works with a 16-bit buffer

>but doesn't work with a 24-bit buffer?

one can try to cool/heat part to see difference.

Best regards
igor

0 Kudos