PLL Configuration (from EEPROM)

Opal Kelly devices with on-board PLLs allow PLL settings to be stored into EEPROM. To load the default settings, use the LoadDefaultPLLConfiguration() method. The LoadDefaultPLLConfiguration() method automatically finds the correct location in the EEPROM and configures the PLL on the FPGA according to the stored settings.

Settings stored in EEPROM are not guaranteed to be the recommended settings. The PLL settings in EEPROM can be both read and set, and LoadDefaultPLLConfiguration does not distinguish between factory settings and user-defined settings if they are stored in EEPROM.

C/C++

  OpalKelly::FrontPanelDevices devices;
  auto dev = devices.Open();
  dev->LoadDefaultPLLConfiguration();Code language: PHP (php)

C#

  okCFrontPanelDevices devices = new okCFrontPanelDevices();
  okCFrontPanel dev = devices.Open("");
  dev.LoadDefaultPLLConfiguration();Code language: JavaScript (javascript)

C# – Idiomatic API

using OpalKelly.FrontPanel.Api;

DeviceManager manager = new DeviceManager();
using (Device device = manager.OpenDevice())
{
    // Load the PLL settings stored in the device EEPROM and apply them.
    // GetPll() returns the device's PLL (22150 or 22393), or null if it has none.
    switch (device.GetPll())
    {
        case Pll22150 pll150: pll150.LoadDefaultConfiguration(); break;
        case Pll22393 pll393: pll393.LoadDefaultConfiguration(); break;
        default: Console.WriteLine("This device has no PLL."); break;
    }
}Code language: JavaScript (javascript)

Python

  devices = ok.FrontPanelDevices()
  dev = devices.Open()
  dev.LoadDefaultPLLConfiguration()

Python – Pythonic API

from frontpanel import DeviceManager

manager = DeviceManager()
with manager.open_device() as device:
    pll = device.get_pll()
    if pll is None:
        print("This device has no PLL.")
    else:
        # Load the PLL settings stored in the device EEPROM and apply them.
        pll.load_default_configuration()Code language: PHP (php)

Java

  public class Example {
      okCFrontPanelDevices devices;
      okCFrontPanel dev;

      public void LoadDefault() {
          devices = new okCFrontPanelDevices();
          dev = devices.Open("");
          dev.LoadDefaultPLLConfiguration();
      }
  }Code language: PHP (php)

JavaScript

const deviceManager = window.FrontPanelAPI.deviceManager;
const dev = await deviceManager.openDevice("");

try {
	const devicePLL = await dev.getPLL();

	await devicePLL.loadDefaultConfiguration();
}
catch(error) {
	console.error(`Failed to load default PLL configuration: ${error}`);
}Code language: JavaScript (javascript)