Jump to content
  • 0

How to launch Digilent hdmi FMC with zc702 board


Blake

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

Link to comment
Share on other sites

Recommended Posts

Hi @Blake,

Since the board was not purchased from Digilent directly, you will need to pursue an RMA with Haley Technology (note that we don't have control over what they decide to do) and then Haley Technology will pursue their own RMA with Digilent as needed.

Thank you,
JColvin

Link to comment
Share on other sites

Hi JColvin,

I already entrusted the agent to handle the replacement request, thanks.

Hi Bogdan Vanca,

We also ordered another HDMI-FMC which is in the purchase process.
Could you provide the bin file that you previously mentioned for quickly verifying HDMI-FMC?
It will be helpful for us to verify HDMI-FMC quickly, thanks.

BR
Blake

Link to comment
Share on other sites

Hi BogdanVanca,

I must thank you again for your detailed explanation.
My question as below :
1. 
No matter I plugged hdmi input source into input of FMC or not, the return message was the same.
I think the message of frame size (480x640) and video mode 5 (VGA) were the default message.
Therefore, the project seems to not detect the input source from FMC, right?  (My input source/path is NB's display port -> DP to HDMI -> HDMI_IN of FMC)

2.
I don't understand following sentence very well.
"I think that your problem may come from the way you wrote your verification algorithm."
Actually, I don't change the code flow of this project; I just add some debug message to check the initial flow.
I also print the address of each step as below :
Hello World
SendBuffer[0] = ff
SendBuffer[1] = 80
iic_IO_hdmi_config[0][0] = ff
iic_IO_hdmi_config[0][1] = 80
~~~ XST_FAILURE
SendBuffer[0] = f4
SendBuffer[1] = 80
iic_IO_hdmi_config[1][0] = f4
iic_IO_hdmi_config[1][1] = 80
SendBuffer[0] = f5
SendBuffer[1] = 7c
iic_IO_hdmi_config[2][0] = f5
iic_IO_hdmi_config[2][1] = 7c
SendBuffer[0] = f8
SendBuffer[1] = 4c
iic_IO_hdmi_config[3][0] = f8
iic_IO_hdmi_config[3][1] = 4c
SendBuffer[0] = f9
SendBuffer[1] = 64
iic_IO_hdmi_config[4][0] = f9
iic_IO_hdmi_config[4][1] = 64
SendBuffer[0] = fa
SendBuffer[1] = 6c
iic_IO_hdmi_config[5][0] = fa
iic_IO_hdmi_config[5][1] = 6c
SendBuffer[0] = fb
SendBuffer[1] = 68
iic_IO_hdmi_config[6][0] = fb
iic_IO_hdmi_config[6][1] = 68
SendBuffer[0] = fd
SendBuffer[1] = 44
iic_IO_hdmi_config[7][0] = fd
iic_IO_hdmi_config[7][1] = 44
SendBuffer[0] = 1
SendBuffer[1] = 6
iic_IO_hdmi_config[8][0] = 1
iic_IO_hdmi_config[8][1] = 6
SendBuffer[0] = 2
SendBuffer[1] = f5
iic_IO_hdmi_config[9][0] = 2
iic_IO_hdmi_config[9][1] = f5
SendBuffer[0] = 3
SendBuffer[1] = 80
iic_IO_hdmi_config[10][0] = 3
iic_IO_hdmi_config[10][1] = 80
SendBuffer[0] = 5
SendBuffer[1] = 28
iic_IO_hdmi_config[11][0] = 5
iic_IO_hdmi_config[11][1] = 28
SendBuffer[0] = 6
SendBuffer[1] = a6
iic_IO_hdmi_config[12][0] = 6
iic_IO_hdmi_config[12][1] = a6
SendBuffer[0] = b
SendBuffer[1] = 44
iic_IO_hdmi_config[13][0] = b
iic_IO_hdmi_config[13][1] = 44
SendBuffer[0] = c
SendBuffer[1] = 42
iic_IO_hdmi_config[14][0] = c
iic_IO_hdmi_config[14][1] = 42
SendBuffer[0] = 14
SendBuffer[1] = 7f
iic_IO_hdmi_config[15][0] = 14
iic_IO_hdmi_config[15][1] = 7f
SendBuffer[0] = 15
SendBuffer[1] = 80
iic_IO_hdmi_config[16][0] = 15
iic_IO_hdmi_config[16][1] = 80
SendBuffer[0] = 19
SendBuffer[1] = 83
iic_IO_hdmi_config[17][0] = 19
iic_IO_hdmi_config[17][1] = 83
SendBuffer[0] = 33
SendBuffer[1] = 40
iic_IO_hdmi_config[18][0] = 33
iic_IO_hdmi_config[18][1] = 40
62
 Control 9 Status F00 Error 7F0000 Int Status 0 H and V Size 1E00280 Detector Timing Status 7 Video Mode = 5

If I just want to transfer the hdmi input signal from fmc to hdmi output of Zedboard, is there any sample project for reference?
Thanks.


BR
Blake

Link to comment
Share on other sites

Hi Sirs, 

Unfortunately, I got confused again.
We already received another HDMI-FMC card, but the symptom was the same.

 I found some new message when I first time to upgrade EEPROM via FRU programmer.

*****************************************************************************
---------------------------------------------------------- 
FMC-HDMI IPMI FRU programmer 
This app checks the FRU data in the EEPROM on the FMC-HDMI and upgrades it, if necessary. 
---------------------------------------------------------- 
Common Header Checksum failed. 
Invalid FRU data. Force upgrade? [y/n] 
Please enter FMC-HDMI serial number (seven characters just below the barcode): 

Starting the FMC EEprom program... 
Generating IPMI... 
Writing IPMI data to EEprom address 0... 
Reading back IPMI data from EEprom address 0... 
Verifying data... 
Writing IPMI data to EEprom address 16... 
Reading back IPMI data from EEprom address 16... 
Verifying data... 
Writing IPMI data to EEprom address 32... 
Reading back IPMI data from EEprom address 32... 
Verifying data... 
Writing IPMI data to EEprom address 48... 
Reading back IPMI data from EEprom address 48... 
Verifying data... 
Writing IPMI data to EEprom address 64... 
Reading back IPMI data from EEprom address 64... 
Verifying data... 
Writing IPMI data to EEprom address 80... 
Reading back IPMI data from EEprom address 80... 
Verifying data... 
Writing IPMI data to EEprom address 96... 
Reading back IPMI data from EEprom address 96... 
Verifying data... 
Writing IPMI data to EEprom address 112... 
Reading back IPMI data from EEprom address 112... 
Verifying data... 
Writing IPMI data to EEprom address 128... 
Reading back IPMI data from EEprom address 128... 
Verifying data... 
Writing IPMI data to EEprom address 144... 
Reading back IPMI data from EEprom address 144... 
Verifying data... 
Writing IPMI data to EEprom address 160... 
Reading back IPMI data from EEprom address 160... 
Verifying data... 
Done, exiting. 
Upgrade succeeded.

*****************************************************************************

I think it will be a very small chance that we got two defect HDMI-FMC card with the same issue, right?
Therefore, do you have any idea about my situation?

BTW, when I build the project - Zed_FMC_HDMI; I met following critical warring. Does this have any effect?

image.thumb.png.71825116e60ca563f33e6125d8169284.png


BR
Blake

Link to comment
Share on other sites

Hi Sir,

I already blocked by this issue for a long time, let me rearrange my problem clearly; and wish it helpful for us.
My purpose is to verify the input of HDMI-FMC with Zedboard, the connection environment as below :
Camera or NB output -> HDMI-FMC input1 -> Zedboard HDMI output -> Display

I tried the following sample projects :
1. LK tutorial + zc702 (base on original code without any modification)
I can see initial message from UART port without any error.
When I plug the hdmi connector to input1 of FMC, the LED(LD1) was on and the preview of camera was turned off.
But it is nothing happen on display.
I tried to set debug message and found the failure on i2c reset config as previous code flow.

2. Adam Taylor FMC-HDMI-Zed + Zedboard (base on original code without any modification)
Regardless, I programmed the original bitstream or generated by me; the UART log always showed  
"control 9 status F00 Error 7F00000 Int Status 0 H and V Size 1E00280 Detector Timing Status 7 Video Mode = 5"
I set the debug message again and found the same failure.

We originally suspected this is HW issue of FMC, but I just received another FMC last week and verified it with previous flow.
Unfortunately, the symptom was the same.
I think it will be a very small chance that we got two defect HDMI-FMC card with the same issue.


My question as below :
1. Does the failure of i2c reset config be a key point? Or we can just ignore it.

2. For the Zedboard, what config should we take care first?
e.g. the 
Vadj select J18, I used the default config of 2.5V.

3. For the sample code  Adam Taylor FMC-HDMI-Zed
3.1 
The constraint file - const.xdc as below :
# FMC2    
set_property PACKAGE_PIN M19 [get_ports {clk}];  # "FMC-LA00_CC_P"
set_property PACKAGE_PIN G16 [get_ports {hsync_in}];  # "FMC-LA19_N"
set_property PACKAGE_PIN E20 [get_ports {iic_0_scl_io}];  # "FMC-LA21_N"
set_property PACKAGE_PIN F19 [get_ports {active_video_in}];  # "FMC-LA22_N"
set_property PACKAGE_PIN G19 [get_ports {vsync_in}];  # "FMC-LA22_P"
set_property PACKAGE_PIN E15 [get_ports {GPIO_O}];  # "FMC-LA23_P"
set_property PACKAGE_PIN C22 [get_ports {Int_in}];  # "FMC-LA25_N"
set_property PACKAGE_PIN D22 [get_ports {iic_0_sda_io}];  # "FMC-LA25_P"

set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 34]];
set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 35]];


There are only defined the input of FMC, how about the HDMI output?
The default config is LVCMOS18, should I modify it? (although I already modified it to 2.5V, but nothing different)


3.2 Could you help to check the Block design as below :
image.thumb.png.0ef52aa3613400219e89890eb8ea5c79.png

4. For quickly verification, could you help to provide the bin file to verify the HDMI-FMC?

Finally, thank you very much for your help.

BR
Blake

Link to comment
Share on other sites

On 11/2/2018 at 5:43 AM, Blake said:

Common Header Checksum failed. 

 

Invalid FRU data. Force upgrade? [y/n] 
Please enter FMC-HDMI serial number (seven characters just below the barcode): 

Hello Blake,

Sincere apologies for the process taking so long. I will have to ask for your patience again. @BogdanVanca will send you a test project for the Zedboard + FMC-HDMI combo and instructions on how to execute the tests that are also used in manufacturing.

I have to commend you for the clear description of the problem and all the debug work you already did. The message quoted above is expected for the first run on a new FMC-HDMI. It is unrelated to your issue.

Let's wait for the test project and see the results before we go further.

Link to comment
Share on other sites

Hello @Blake,

I've created for you an image that test your FMC-HDMI adapter. It does a basic data transfer between the HDMI output of the ZedBoard and both of the adapter hdmi inputs. Prior to this it also uses all the I2C lines. Please check the .rar attached file. In order to recreate the test, please fallow the fallowing steps:

1.Make sure that you have everything in place, check the bellow instructions and the first image.

  • Connect USB cable from PC to ZED USB PROG port (J17)
  • Connect USB cable from PC to ZED UART port (J14)
  • Connect FMC-HDMI board to FMC connector J1 (of ZED)
  • Connect Power cable to J20 (of ZED)
  • Set mode jumpers for JTAG programming (all to GND)
  • Set J18 (of ZED) jumpers to 3V3 or 2V5. I'v tested both variants.
  • Create a loop between HDMI-OUT J9(ZED) and FMC-HDMI IN1 of the adapter.
  • Turn ZED board onIMG_20181114_133648.thumb.jpg.8416c40c67932205763223175dcebee8.jpg

2. Open Vivado (I used Vivado 2017.4).

  • Open Vivado, and click on Open Hardware Manager within the Welcome Page.
  • After this click on Auto-Connect.
  • You should see the Zed into the upper left panel.Check the image bellow.

step_1.thumb.PNG.c4c79b65cc7a2d0c90813c14b037a9be.PNG

3. Add Configuration Memory Device

  • Right click on xc7z020_1 and choose "Add Configuration Memory Device". Check image bellow.step_2.thumb.png.2dd139802d368da372476d120d841e5b.png

4. Choose the right memory device for ZED. 

  • Please choose "s25fl256s-3.3v-qspi-x1-dual_stacked" from the list. Click to program the device. Check images bellow.step_3.thumb.png.dcc0ab78e183d28417bfe5c8a761ed58.pngstep_4.thumb.png.7aa1439c2dc8e0e745411b791c94b3bf.png

 

 5.Program the device with the files attached to this message.

  • For "Configuration file" you choose BOOT.bin.
  • For "Zynq Fsbl" you choose fsbl.elf. 
  • Click OK.

step_5.thumb.png.f7d8846f22e41ab1b07aee63fb216642.png

6. Wait until it gets programmed. After finish, you click OK. step_6.thumb.png.c42fe620eddb93891fd27411dc02be17.pngstep_7.thumb.png.e218307814abe79f17bcd45bf6095983.png

7. Prepare the board for testing. 

  • Open a serial terminal, termite, putty, teraterm etc. Find the COM port and choose 115200 for baud rate.
  • Set jumpers for QSPI programming (MIO5 on 3V3 and SIG, the others on 3V3 and GND).
  • Power OFF the Board.
  • Power ON  the Board. 
  • The image should boot. See the image bellow.  

IMG_20181114_134554.thumb.jpg.d872cd13fefac2161e95d3dcb31fde12.jpg

8.Do the actually test.

  • Make sure that the HDMI-OUT (ZED) is connected to HDMI-IN1 of the FMC-HDMI adapter. 
  • Press ENTER.
  • Wait for the test to finalize. 

step_8.thumb.png.4fba02f37b87954e2da4e3deaad7eb61.png

  • Make sure that the HDMI-OUT (ZED) is connected to HDMI-IN2 of the FMC-HDMI adapter. Make sure that your adapter is not loose
  • Press ENTER.
  • Wait for the test to finalize.step_9.thumb.png.d1a91b63353fee23a3914b5583f798c7.png

9.Check the results, and give me an update :) .

 

image.rar

Link to comment
Share on other sites

Hi BogdanVanca,

First, thank you very much for your full and clear support.:)
The test result as below :
DDR audio write: started.
DDR audio write: completed (total 34).
DDR video write: started (length 2073600)
----------------------------------------------------------
Digilent FMC-HDMI adapter Test
----------------------------------------------------------
Please connect the HDMI cable to the first input (HDMI1 IN), and after that press ENTER to continue
Start testing the first input of the FMC-HDMI adapter (HDMI1 IN)

MM2S Status: 0x10001
Configuring HDMI Output (ADV7511).
MM2S Status (after config.): 0x10001
S2MM Status: 0x10001
Configuring HDMI Input (ADV7611).
S2MM Status (after config.): 0x10001
Starting the Audio I2S testing...
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x0
Audio data: 0x7F81B380
Audio data: 0x7EAF3400
Audio data: 0x7F37FC00
Audio data: 0x7DEAA000
Audio data: 0x79BFE000
Audio data: 0x77AA8000
> Right audio channel OK.
Audio data: 0x77AA8000
Audio data: 0x55E68000
> Left audio channel OK.
> State of the INT1 before config.: 1
> State of the INT1 after config.: 0

Starting the CEC testing...
Sending CEC packet.
-----------------------------------------------------------

HDMI1: PASS
-----------------------------------------------------------
The test for the first input of the FMC-HDMI adapter has ended
Please connect the HDMI cable to the second input (HDMI2 IN), make sure that the adapter didn't get loose and after that, press ENTER to continue
Start Testing the second input of the FMC-HDMI adapter (HDMI2 IN)

Configuring HDMI Output (ADV7511).
Sending CEC packet.
-----------------------------------------------------------

HDMI2-IN: PASS
-----------------------------------------------------------
The test for the second input of the FMC-HDMI adapter has ended
----------------------------------------------------------
Digilent FMC-HDMI adapter Test has ended
----------------------------------------------------------

The test results were similar on my both hdmi-FMC, I think my HW should run well; right?

Now my question is why we used the same project (e.g. Adam Taylor FMC-HDMI-Zed) but couldn't get the expected result?
About the I2C reset fail of initial process of FMC(ADV7611), does it a key point of initial process or I can just ignore it?
Especially, I met the same failed point in different project (LK tutorial / Adam Taylor FMC-HDMI-Zed) with different platform (ZC702 / Zedboard).

BR
Blake

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...