Hi,
I'm trying to replicate the no-os example project available here on a zedboard. My goal is simpler than the no-os project linked before, what I want to do is to show an RGB pattern on an HDMI display using a my own hw design.
Image below shows the diagram I'm using:
After setting all the peripherals needed to run my project (e.g. IIC, TTC and GIC) and configuring clocking wizard ip-core to gain the proper pixel clock and sync signals (these are right, tested by oscilloscope) I set the HDMI-TX ip-core as follow in order to gain a resolution of 640x480:
Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x400), ((hdmiVideoParam->hLineActive << 16)|hdmiVideoParam->hLineWidth)); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x404), hdmiVideoParam->hSyncWidth); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x408), ((hdmiVideoParam->hEnableMax << 16) | hdmiVideoParam->hEnableMin)); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x440), ((hdmiVideoParam->vFrameActive) << 16) | hdmiVideoParam->vFrameWidth); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x444), hdmiVideoParam->vSyncWidth); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x448), (hdmiVideoParam->vEnableMax << 16) | hdmiVideoParam->vEnableMin); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x040), 0x1); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x04C), 0xF800); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x048), 0x0); Xil_Out32((XPAR_AXI_HDMI_TX_0_BASEADDR + 0x048), 0x3);
I add the TX library apis as the no-os project does, fixing the transmitter parameters properly:
LastDetMode = MODE_INVALID; TransmitterParm.Changed = TRUE; TransmitterParm.Mode = MODE_NONE; TransmitterParm.ReqOutputMode = OUT_MODE_HDMI; TransmitterParm.InPixelBitsPerColor = 8; TransmitterParm.InPixelFormat = SDR_422_SEP_SYNC; TransmitterParm.InPixelStyle = 2; TransmitterParm.InPixelAlignment = ALIGN_RIGHT; TransmitterParm.OutPixelEncFormat = OUT_ENC_RGB_444; TransmitterParm.InColorSpace = TX_CS_RGB; //modificato da TX_CS_YUV_601 TransmitterParm.OutColorSpace = TX_CS_RGB; //modificato da TX_CS_YUV_601 TransmitterParm.AudInterface = TX_I2S_STD; //modificato da TX_SPDIF TransmitterParm.DebugControl = 1; MuteState = MUTE_ENABLE;
After that my while(1) code is:
while(1) { if ((ATV_GetElapsedMs(start_count, NULL)) >= HDMI_CALL_INTERVAL_MS) { start_count = HAL_GetCurrentMsCount(); if (app_driver_enabled()) ADIAPI_TransmitterMain(); } }
I have no image displayed on screen and on uart output I got
Mute Audio and Video
APP: Driver Enabled
HPD changed to LOW
MSEN changed to LOW
Mute Audio and Video.
Any clues about the issue ? Can anybody helps me ?
thank you in advance,
Vincenzo
moved & edited thread
[edited by: emassa at 1:20 PM (GMT -4) on 15 Mar 2023]