mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-10 18:03:41 +00:00
50778af656
This adds many missing functions needed for convenient use that are reinterpreted from the C code in https://github.com/dmalnati/picoinf Thank you! Signed-off-by: deadprogram <ron@hybridgroup.com>
80 lines
1.4 KiB
Go
80 lines
1.4 KiB
Go
package si5351
|
|
|
|
// The I2C address which this device listens to.
|
|
const AddressDefault = 0x60 // Assumes ADDR pin is low
|
|
const AddressAlternative = 0x61 // Assumes ADDR pin is high
|
|
|
|
const (
|
|
OUTPUT_ENABLE_CONTROL = 3
|
|
|
|
CLK0_CONTROL = 16
|
|
CLK1_CONTROL = 17
|
|
CLK2_CONTROL = 18
|
|
CLK3_CONTROL = 19
|
|
CLK4_CONTROL = 20
|
|
CLK5_CONTROL = 21
|
|
CLK6_CONTROL = 22
|
|
CLK7_CONTROL = 23
|
|
|
|
MULTISYNTH0_PARAMETERS_1 = 42
|
|
MULTISYNTH0_PARAMETERS_3 = 44
|
|
MULTISYNTH1_PARAMETERS_1 = 50
|
|
MULTISYNTH1_PARAMETERS_3 = 52
|
|
MULTISYNTH2_PARAMETERS_1 = 58
|
|
MULTISYNTH2_PARAMETERS_3 = 60
|
|
|
|
SPREAD_SPECTRUM_PARAMETERS = 149
|
|
|
|
PLL_RESET = 177
|
|
|
|
CRYSTAL_INTERNAL_LOAD_CAPACITANCE = 183
|
|
)
|
|
|
|
const (
|
|
CRYSTAL_LOAD_6PF = (1 << 6)
|
|
CRYSTAL_LOAD_8PF = (2 << 6)
|
|
CRYSTAL_LOAD_10PF = (3 << 6)
|
|
)
|
|
|
|
const (
|
|
CRYSTAL_FREQ_25MHZ = 25000000
|
|
CRYSTAL_FREQ_27MHZ = 27000000
|
|
)
|
|
|
|
const (
|
|
PLL_A = iota
|
|
PLL_B
|
|
)
|
|
|
|
const (
|
|
R_DIV_1 = iota
|
|
R_DIV_2
|
|
R_DIV_4
|
|
R_DIV_8
|
|
R_DIV_16
|
|
R_DIV_32
|
|
R_DIV_64
|
|
R_DIV_128
|
|
)
|
|
|
|
const (
|
|
MULTISYNTH_DIV_4 = 4
|
|
MULTISYNTH_DIV_6 = 6
|
|
MULTISYNTH_DIV_8 = 8
|
|
)
|
|
|
|
// Frequency constants (in Hz)
|
|
const (
|
|
CLKOUT_MIN_FREQ = 8000 // 8 kHz
|
|
CLKOUT_MAX_FREQ = 150000000 // 150 MHz
|
|
MULTISYNTH_MAX_FREQ = 150000000 // 150 MHz
|
|
MULTISYNTH_SHARE_MAX = 100000000 // 100 MHz
|
|
MULTISYNTH_DIVBY4_FREQ = 150000000 // 150 MHz
|
|
PLL_VCO_MIN = 600000000 // 600 MHz
|
|
PLL_VCO_MAX = 900000000 // 900 MHz
|
|
)
|
|
|
|
const (
|
|
SI5351_PLL_C_MAX = 1048575
|
|
)
|