Python Code for the Si514 Programmable Xtal Oscillator
I’ve put together a number of project using the Si5351. However, I’ve got to admit that with its surface mount package and need for an external crystal, it’s kind of a hassle to work with. For that reason, I purchased a few Si514 to see how they compare.
The Si514 is a single frequency user-programmable I2C oscillator, similar to the Si570. It covers the frequency range from 100 kHz to 170 MHz (or in some cases, 250 MHz). Some things I particularly like about it are the integrated crystal and the availability of a package whose surface mount pad spacing is compatible with stripboard. It doesn’t have as wide a frequency range as the Si570 or Si5351 but my projects typically involve frequencies below 30 MHz so that’s ok. And being able to easily order them through DigiKey is another plus.
To try it out I mounted the chip on a small piece of stripboard to serve as a carrier and connected it to an AdaFruit Trinket programmed to act as a USB-to-I2C interface. I modified the Si5351 Python code I had previously written to work with the Si514 and, after fixing a few bugs, had a working clock.
But Where’s the Software?
Like the code I previously wrote for the Si5351, the Python code for the Si514 is available in my GitHub repo. It was written to work with the previously mentioned I2C Stick software but should be easy to modify for use with another I2C interface.
To use the software, pull the files from the repo, place them in a a convenient location, and execute the command:
$ ./py514 -f [frequency_in_Hz]
If you don’t specify the frequency it will use a default of 10 MHz.
When I started working on this I was a little surprised I didn’t see more projects out there using the Si514. Considering its small size and availability, I think it’s time to start updating some of my other projects to use it.