• 0
Blake

How to launch Digilent hdmi FMC with zc702 board

Question

Hi all,

I want to verify Digilent HDMI FMC on zc702 board, but the Zynq base TRD 15.04 was used Avnet HDMI FMC with IP - "avnet_hdmi_in" in the path "rdf0286-zc702-zvik-base-trd-2015-4\hardware\vivado\srcs\ip".

If I use the original SD image to boot up zc702 board with Digilent FMC on FMC2 slot.
The board could detect i2c@1 (FMC), but crashed by i2c fatal error.
If I modify the constraint file only - pin_zc702.xdc to match Digilent FMC I/O setting, then repacked the BOOT.BIN with modified bitstream.
The board could boot up successfully, but couldn't seem detect i2c@1 (FMC).

Could I replace the corresponding IP to launch the Digilent FMC only?
If yes, where could I get the right IP?

If not, could someone tell me what I missed? Thanks.

BR
Blake

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

Hi  @Blake,

 

Short update. I've recreated Adam project with a different setup and it works. I'm able to read different resolutions trough the first input of the FMC-HDMI adapter. I'm using a zybo to generate those resolutions, which further on are read by the VTC ip core. Check the images bellow:

The first image is the serial terminal from which I communicate with Zybo, and the second image shows the output values within the VTC ip core. 

zybo.thumb.png.0ad109270e135eb5fdd9628f62e4e019.pngzed.thumb.png.9c4efb7e1f2b01ede1069cb9f7dc5b72.png

 

I couldn't be able the replicate this using a laptop as an hdmi source, and that is because I think there are problems with the edid file used by Adam in his project. For now,  you can use his project as reference, and for future I will try to get rid off Zybo and add everything into Zed. Also if you check this link: https://forums.xilinx.com/t5/Xcell-Daily-Blog-Archived/Adam-Taylor-s-MicroZed-Chronicles-Part-216-Capturing-the-HDMI/ba-p/794874 you will found out that : "Initially in its free-running mode, the ADV7611 outputs video in 480x640 pixel format. Checking the VTC registers, it is also possible to observe that the detector has locked with the incoming sync signals and has detected the mode correctly, as shown in the image below: " So the message that you initially received is actually correct. I will keep you in touch with everything that I'm adding to this project. 

Best Regards,

Bogdan Vanca 

Share this post


Link to post
Share on other sites
  • 0

Hi @Blake

Sorry for my late reply. Please check the fallowing link: https://www.dropbox.com/s/87cm0faa66sdra9/fmc_hdmi_in_1.zip?dl=0 This is the first variant of the project. I will try to make new updates into the close future. The project reads on HDMI1 IN input the resolution given by HDMI OUT, so you have to make a loop-back between those two. For patterns I used the test pattern generator from Xilinx, which needs a license, although the license is free. So, you either request one from Xilinx, or you can try to copy the one that I have. Check the attached document. You have to copy the file on this location C:\Users\<your username>\AppData\Roaming\XilinxLicense. I will keep you in touch every time I add something new. If you have any questions please fell free to ask.

Best Regards,

Bogdan Vanca  

tpg.zip

Edited by BogdanVanca

Share this post


Link to post
Share on other sites
  • 0

Hi BogdanVanca,

Does there any update? I just want to make sure this issue is still processing.
Thanks.

BR
Blake

 

 

Share this post


Link to post
Share on other sites
  • 0

Hi @jpeyron,

Does there any update? 
It’s been almost three months since the last update.
Thanks.

BR
Blake

Share this post


Link to post
Share on other sites
  • 0

Hi @Blake,

Unfortunately, @BogdanVanca currently does not have the bandwidth to work on this. We will try to help with updating this project. It will take a little bit of time to get up to speed with the project. Sorry for any inconvenience this may cause. 

Best regards,

Jon

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Hi @Blake,

I was struggling with the same problem.
In Adam's project is mistake which result is an FMC-HDMI module is not recognizable by other devices.
The reason for that is not sending EDID at all.
The cause of this situation is wrong initialized EDID map.
In Adams example EDID is initialized by:

Quote

i=0;    
while(1){

        SendBuffer = adv7611_edid_content[ i ];
        XIicPs_MasterSendPolled(IicPs, &SendBuffer,1, 0x36);
        while (XIicPs_BusIsBusy(IicPs)) {
            /* NOP */
        }
        if (i==255){
            break;
        }
        i++;
    }

but the correct way is:

Quote

    i=0;
    while(1){
        iic_write2(IicPs, 0x36, i, adv7611_edid_content[ i ]);
        while (XIicPs_BusIsBusy(IicPs)) {
            /* NOP */
        }
        if (i==255){
            break;
        }
        i++;
    }

the body of iic_write2 is from LK example:

Quote

static int iic_write2( XIicPs *IicPs, u8 Address, u8 Register, u8 Data )
{
    u8 WriteBuffer[2];
    int Status;

    /*
     * A temporary write buffer must be used which contains both the address
     * and the data to be written, put the address in first
     */
    WriteBuffer[0] = Register;
    WriteBuffer[1] = Data;

    /*
     * Wait until bus is idle to start another transfer.
     */
    while (XIicPs_BusIsBusy(IicPs)) {
        /* NOP */
    }

    /*
     * Send the buffer using the IIC and check for errors.
     */
    Status = XIicPs_MasterSendPolled(IicPs, WriteBuffer, 2, Address);
    if (Status != XST_SUCCESS) {
        print("XIicPs_MasterSendPolled error!\n\r");
        return XST_FAILURE;
    }
}

By the way, in LucasKandle example initialization is done in same way as in Adam's example so is the reason why it not worked in your case.
 

I hope it will helps.
If you want I will post my working code for a ZedBoard with FMC-HDMI when I clean it because at the moment is kind of messy.

Edited by 19adam90
lack of [i] in function defintions it should be "SendBuffer = adv7611_edid_content[i];" and " iic_write2(IicPs, 0x36, i, adv7611_edid_content[i]);"

Share this post


Link to post
Share on other sites
  • 0

Hi @19adam90,

Thank you very much for your unselfish experience, I will give it a try later. :)

BR
Blake

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Hi @Blake,


If you will have some problems with this, let me know and I will post a file with full code.

Edited by 19adam90

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now