PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

ZCU111 RFSOC PYNQ External clocking ( LMX2594 )

Hi,

I am using PYNQ with ZCU111 RFSOC board. I can reprogram the LMX2594 external PLL using the SDK baremetal drivers. However I have never succeeded in progamming the LMX2594 from PYNQ Pyhton drivers. I have taken one the of the standard demo designs and output each of the DAC and ADC clocks from the rf_data_converter IP. I divide the clocks by 16 (using BUFGCE and a flop ) and output the signals via J10 of the extender board. Thus I can “see” the adc and dac clocks. If I try and use the LMX2594 clock configuration routines from the PYNQ library the adc and dac clocks die.

Can anyone advise me on how to fix this?

Thanks
Simon

Found problem.

The Zynq Ultrascale+ MPSOc IP runs code to drive the I2C bus which programs the LMX2594 and other clock control devices.

DO NOT FORGET…you need to enable the I2C I/O for the Zynq processor. See the attached image.

Double click on the Zynq IP in the block diagram, then click on one of the I2C blocks in the Re-customize IP pop-up.

Then configure the I2C as per the image.

Note there is no error or warning if you do not do this…and then you cannot program the clocks!!

Enjoy.

2 Likes

Awesome. Many PS configurations are not changed after boot, and even after reloading the overlay. pynq at least reconfigures the PL clocks.