Jump to content
  • 0

[IP] dvi2rgb_v1_7 EDID compatibility


pawel.pawelec

Question

Hi,

I'm using the dvi2rgb/rgb2dvi cores (latest repository version) to make a simple passthrough in the FPGA and have huge issues with the EDID memory.

Has it been confirmed at some point that the default 720p edid settings work properly with a GoPro Hero5 camera? I tried loading the default EDID, a properly cooperating monitor's EDID, prepared numerous EDIDs myself - every single one seems to fail so the camera is setting itself to the lowest supported resolution.

Had a go with a Panasonic DMC-G3 camera too but it behaves the same way.

Both sources work properly when connected directly to the monitor.

The EDID values are being read properly, this has been verified on an oscilloscope (the camera seems to be reading the 128 edid bytes twice though).

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

@pawel.pawelec,

Have you contacted the manufacturer of the camera?  What EDID settings have they recommended?

If they are non-responsive, then do you have an application, such as on your windows PC, with proper driver support, where the camera sets itself up properly?  You might wish to examine the EDID used within that application.  A touch of reverse engineering might go a long way to helping you understand what's going on.

Dan

Link to comment
Share on other sites

Thank you kindly for the reply.

 

I have not contacted GoPro itself, it does not seem to have an optimistic backlog of answering questions covering the hdmi output support; will give it a go. Might try Panasonic, I doubt they'll be willing to give out any information though.

Anyway, what I tried was pulling the EDID values from both monitors connected to my PC, which the Hero5 seems to accept, since it boots immediately in 1080p when connected directly to them. Edited the read-outs to an IP-accepted format and implemented - none seems to work though. The cameras read it, end up booting in a minimal supported resolution however.

I do not expect it to work that way since the FPGA buffers can have a hard time passing the serial clk of the core for 1080p but it should at least stay off in my understanding if the edid was read properly instead of going minimum.

Link to comment
Share on other sites

@pawel.pawelec,

Don't forget: EDID is nominally a 128-byte format, but it can have an optional 128-byte extension to bring it to a 256-byte format.  I had a problem, myself, by copying only the first 128-bytes from a working interface and not also copying the second 128-byte's of EDID.  If your device has both (my monitors do), you'll need both.

Dan

Link to comment
Share on other sites

That could be it since the tool I used for reading the monitors' EDIDs gave me only 128 bytes.

I haven't explored that path yet since the default EDID data files provided along with the core are 128 bytes long - that's why I decided to ask if anyone used them successfully with a Hero5. I'm not even sure it the i2c interface (and eeprom memory) implemented in the core provides the option to load a 256 byte long EDID. Will have a look, thanks for the input!

Link to comment
Share on other sites

Thanks for the sources. I ended up just copying the EDID data file contents and altering the EEPROM address space from 7 to 8 in the 1.7 version of the core. 1.6 really wasn't willing to cooperate with the 2016.4 version of Vivado. I'm fairly certain it should work properly since both the EEPROM and IIC driver vhdl sources are identical in these versions of the core.

The cameras don't react to it though. Will verify if all the 256 bytes are being transmitted on the DDC and if that's correct I'll try to load some other EDIDs.

Thanks for the help guys. Will update in case I do any progress with it.

 

 

In case anyone tries to actually push 1.6 through a newer Vivado, here is what I found out in the process:

Firstly, Vivado gives an error while adding the IP to the desing saying:

Error found in parameter dependencies in XGUI files. Invalid parameters found in dependency constraints of 'BUSIF_ENABLEMENT.ASYNCRST'

This can be fixed by simply deleting the <vendorExtensions> section from <busInterface> of both AsyncRst and SyncRst.

Then it couldn't locate the EDID memory source file - this can be dealt with by copying the file to an appropriate catalog in the .srcs directory.

In the end it goes down on implementation since Vivado calculates an output frequency of over 1650MHz on the SerialClk port. At this point I decided to check if the sources I'm interested in are even different at all ; )

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...