The XEM8350 and BRK1900 (platform reference for the ECM1900) use the Silicon Labs Si5338 programmable clock generator to synthesize custom clock frequencies. The FPGA communicates with the Si5338 over an I2C interface.
This sample will read in Si5338 register settings stored in a CSV file then write them to an Si5338 connected to a FrontPanel device through the Opal Kelly I2C core.
Generating a Clock Design
The free Silicon Labs ClockBuilder Pro software is used to generate programming for the Si5338 based on your custom clock requirements. The tool outputs a CSV file (
si5338_data.csv) which may be transferred to the Si5338 over the I2C interface.
The tool is comprised of two components:
- Simple FPGA gateware that implements an I2C controller to communicate with the Si5338
- A simple software script, run within FrontPanel, that sends the programming information to the FPGA for programming to the Si5338
The tool can be used directly to set up the Si5338 as needed. Additionally, you can incorporate the design sources into your own application and gateware.
Building the Design
This design uses the Opal Kelly I2C Controller core. The source files for the core (required to build the design) can be downloaded from the Opal Kelly OpenSource GitHub.
With the I2C core added to the project this sample can be built in the same manner as other Opal Kelly samples.
This sample application runs entirely within FrontPanel, making use of XFP Lua scripting available in FrontPanel version 5.1 and later.
To use the sample:
- Configure the FPGA with the sample bitstream
/tmpon your hard drive (this is where
si5338.luawill look for
- Click Setup Si5338 in the XFP window
- Wait for “Status: Done” to appear
- The counter running on the LED’s should run at a rate appropriate for the new clock rate