cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
wufubao
Visitor
Visitor
2,301 Views
Registered: ‎03-15-2017

How to initialize a peripheral JESD204 in Zynq

I got a Zynq UltraScale+ MPSoC (ZCU102 board)

 

Like AXI_GPIO connected to the LEDs, I write REG bits according to the address defined in file "xparamenter.h" in bsp.
and the APIs provided by "xgpiops.h" drives the GPIO in PL part.

/*xparamenter.h */
/* Definitions for peripheral AXI_GPIO_0 */
#define XPAR_AXI_GPIO_0_BASEADDR 0x80000000
#define XPAR_AXI_GPIO_0_HIGHADDR 0x8000FFFF
#define XPAR_AXI_GPIO_0_DEVICE_ID 0
#define XPAR_AXI_GPIO_0_INTERRUPT_PRESENT 0
#define XPAR_AXI_GPIO_0_IS_DUAL 0
/* using the APIs provided by "xgpio.h" */
/* Initialize the GPIO driver */
Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID);
if (Status != XST_SUCCESS) {
return XST_FAILURE;
}

So I added the JESD204 IP core to the block design and connected the AXI_FPD from Zynq to s_axi from JESD204 IP core and export the Hardware to SDK. It turns out that I got a peripheral JESD204

/* Definitions for peripheral JESD204_0 */
#define XPAR_JESD204_0_BASEADDR 0xA0000000
#define XPAR_JESD204_0_HIGHADDR 0xA000FFFF


And I have no idea how to initialize the peripheral JESD204_0 because there's no such driver for JESD204

 

So do I need to write the driver file on my own? Or just refer to some PDF file.

 

If I need to write the driver, could someone told me how to find a tutorial, because I really know little about PL-PS interface. The doc that Xilinx provided are not clear enough in SDK coding, or maybe I too stupid for this stuff :-(

 

Thx!

Tags (3)
0 Kudos
4 Replies
yawenluo16
Observer
Observer
693 Views
Registered: ‎05-28-2019

Hi Fubao,

Did you figure it out? I'm facing the same problem as you were, don't know how/where to get the JESD204 driver to configure the jesd registers. Any documents, link or idea will be appreciated! 

0 Kudos
schumerth
Adventurer
Adventurer
626 Views
Registered: ‎06-05-2015

Below is how I read/write to the JESD

Xil_Out(baseaddr + offset, value)  -- write

Xil_In32(baseaddr + offset)  -- read

The baseaddr is what is set in the block diagram.  The offset is what register you want to access.  Refer to https://www.xilinx.com/support/documentation/ip_documentation/jesd204/v7_2/pg066-jesd204.pdf for the register space.

 

Edit: wrote address, when I ment to write register.

 

 

yawenluo16
Observer
Observer
623 Views
Registered: ‎05-28-2019

thanks a lot! you're very kind.

0 Kudos
schumerth
Adventurer
Adventurer
621 Views
Registered: ‎06-05-2015

Your welcome!

0 Kudos