The Si5351 is an extremely useful device, containing multiple clock generators with many versatile programming options that go well beyond its original purpose of providing a clock for digital circuitry. It has in particular found a spot in RF projects, where it provides a cheap and effective stand-in for a variable frequency oscillator in everything from receivers to VNAs. It’s fair to say that programming the Si5351 isn’t the easiest of tasks though, and joining the various attempts to make this simpler is [MR-DOS], who has created an Si5351 library for the STM32 range of ARM Cortex M processors. Fortunately for those afflicted by the semiconductor shortage there’s the advice that porting it to other architectures should only require the relatively manageable task of modifying the i2c function for the new hardware.
Instead of being a full abstraction layer for frequency generation, this library provides functions to give access to the nuts-and-bolts of the chip such as PLL dividers. Thus there’s a need to understand the workings of a PLL and calculate its parameters, while in return much more flexibility over the chip’s operation can be had. We like this approach even though it requires a little more work from the developer.
Over the years this device has attracted a variety of libraries, this isn’t the first we’ve featured.
Header image: Adafruit Industries (CC BY-NC-SA 2.0)