Expand description
A platform agnostic Rust driver for the Si5351, based on the
embedded-hal
traits.
§The Device
The Silicon Labs Si5351 is an any-frequency CMOS clock generator.
The device has an I²C interface.
§Usage
Import this crate and an embedded_hal
implementation:
extern crate stm32f103xx_hal as hal;
extern crate si5351;
Initialize I²C bus (differs between embedded_hal
implementations):
use hal::i2c::I2c;
type I2C = ...;
let i2c: I2C = initialize_i2c();
Then instantiate the device:
use si5351;
use si5351::{Si5351, Si5351Device};
let mut clock = Si5351Device<I2C>::new(i2c, false, 25_000_000);
clock.init(si5351::CrystalLoad::_10)?;
Or, if you have an Adafruit module, you can use shortcut functions to initializate it:
use si5351;
use si5351::{Si5351, Si5351Device};
let mut clock = Si5351Device<I2C>::new_adafruit_module(i2c);
clock.init_adafruit_module()?;
And set frequency on one of the outputs:
use si5351;
clock.set_frequency(si5351::PLL::A, si5351::ClockOutput::Clk0, 14_175_000)?;
Structs§
- Device
Status Bits - Si5351
Device - Si5351 driver