Hi,
This is my 1st post in this forum, so first : a BIG THANKS to the whole Raspberry Pi team and foundation for their GREAT work. And a special mention to Gert and Dom who unveiled details about this DPI interface. This is exactly what I needed to play with something I have been eager to try for some time : driving LCD panels directly in LVDS.
I just bought a brand new B+ board (my original 2012 rev1 was too old for this...) and gave it a shot with a scope.
What I managed to do so far :
- enabled Pixel Clock and Data Enable signals on GPIO_0 and GPIO_1 through a custom dt-blob.bin . (this forbids the use of ID pins for HAT detection, but doesn't matter, kernel just sees this as "no connected HAT"). These are the lines I added to dt-blob-dpi.dts :
Code: Select all
pin@p0 { function = "dpi"; termination = "no_pulling"; }; // Pixel Clock
pin@p1 { function = "dpi"; termination = "no_pulling"; }; // Data Enable
- tried "dpi_output_format=7" and got 24bits color depth signals
- Tried several display modes and inspect signals on an oscilloscope. Even managed to use custom timings through the use of "hdmi_timings=" option in config.txt (not dpi_timing as I tried 1st)
Everything works just fine, I am almost to the point where I could start routing a small board to serialize those data in LVDS for a panel.
The problem is : the
DATA ENABLE signal I observe have perfect timings but
negative polarity. Every datasheet found on the net show
DATA ENABLE high for data transfer, but the one out of RPi is low when transferring.
Anyone can confirm this? Somebody knows how to change output polarity (maybe through device tree dts/dtb)?