This commit is contained in:
2025-04-13 19:18:57 +02:00
parent 1102fbd4d5
commit d6fb9d8856

View File

@@ -15,6 +15,12 @@ enum{
};
static int clear_buffer(si5351_driver *inst){
memset(inst->device_data,0, sizeof(inst->device_data));
}
static int readRegister(si5351_driver *inst,uint8_t data_addr, uint8_t *data, uint32_t len){
// Write what kind of addr we would like to read from:
@@ -32,6 +38,7 @@ static int writeRegister(si5351_driver *inst,uint8_t data_addr, uint32_t len){
// Set address
inst->device_data[0] = data_addr;
inst->i2c_transfer_evt(inst->i2c_transfer_inst,&inst->device_data[0],len+1, SI5351_I2C_SET);
clear_buffer(inst);
return 0;
}
@@ -40,6 +47,7 @@ static int writeRegisterbyte(si5351_driver *inst,uint8_t data_addr, uint8_t data
// Set address
uint8_t buff[2] = {data_addr,data};
inst->i2c_transfer_evt(inst->i2c_transfer_inst,&buff[0],2, SI5351_I2C_SET);
clear_buffer(inst);
return 0;
}
@@ -146,10 +154,6 @@ int cm_setOutputEnable(si5351_driver *inst,si5351_Outputs clk_output, si5351_Out
}
outputEnableControl->CLK0_OEB = 0;
outputEnableControl->CLK1_OEB = 0;
outputEnableControl->CLK2_OEB = 0;
writeRegister(inst,SI5351_REG_OUTPUT_ENABLE_CONTROL, sizeof(si5351_outputEnableControl_t));
@@ -161,7 +165,7 @@ int cm_setCLKControl(si5351_driver *inst, si5351_Outputs clk_output, si5351_CLK_
si5351_CLK_Control_t *CLKx_control = (void*)&inst->device_data[1];
CLKx_control->CLK_PDN = clk_pdn;
CLKx_control->CLK_INV = 0;
CLKx_control->CLK_IDRV = SI5351_DRIVE_STRENGTH_8MA;
switch (clk_output)
@@ -239,14 +243,6 @@ int cm_resetPLLs(si5351_driver *inst, uint8_t reset_PLLA, uint8_t reset_PLLB){
return 0;
}
/*
uint8_t cm_si5351_getRevisionNumber(si5351_driver *inst){
// Read Device Status register:
readRegister(inst,0x00, (uint8_t *) &inst->device_data.deviceStatus, sizeof(si5351_deviceStat_t));
return inst->device_data.deviceStatus.REVID;
}*/
int cm_si5351_init(si5351_driver *inst, void *i2c_transfer_inst, setGet_I2C_Event_fpt i2c_transfer_evt){