raw pll set added
This commit is contained in:
@@ -335,6 +335,7 @@ uint8_t cm_si5351_getRevisionNumber(si5351_driver *inst);
|
||||
int cm_setInputSource(si5351_driver *inst, si5351_ClkSource clk_source);
|
||||
int cm_setPLLParameters(si5351_driver *inst,si5351_PLLs sel_pll, uint32_t a, uint32_t b, uint32_t c);
|
||||
int cm_setOutputMultiSynth(si5351_driver *inst,si5351_Outputs clk_output, uint32_t d, uint32_t e, uint32_t f);
|
||||
int cm_setOutputMultiSynthRaw(si5351_driver *inst,si5351_Outputs clk_output, uint32_t MSx_P1, uint32_t MSx_P2, uint32_t MSx_P3);
|
||||
int cm_setOutputEnable(si5351_driver *inst,si5351_Outputs clk_output, si5351_Outputs_state outputState);
|
||||
int cm_setCLKControl(si5351_driver *inst, si5351_Outputs clk_output, si5351_CLK_PDN clk_pdn);
|
||||
int cm_resetPLLs(si5351_driver *inst, uint8_t reset_PLLA, uint8_t reset_PLLB);
|
||||
|
||||
@@ -108,6 +108,53 @@ int cm_setPllParamRaw(si5351_driver *inst, si5351_PLLs sel_pll, uint32_t MSNx_P1
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cm_setOutputMultiSynthRaw(si5351_driver *inst,si5351_Outputs clk_output, uint32_t MSx_P1, uint32_t MSx_P2, uint32_t MSx_P3){
|
||||
|
||||
switch(clk_output){
|
||||
|
||||
case SI5351_OUTPUT_0:
|
||||
inst->device_data.multiSynth0Param.MSx_P1_17_16 = (MSx_P1 >> 16) & 0x3; // last division..
|
||||
inst->device_data.multiSynth0Param.MSx_P1_15_8 = (MSx_P1 >> 8) & 0xff;
|
||||
inst->device_data.multiSynth0Param.MSx_P1_7_0 = MSx_P1 & 0xff;
|
||||
|
||||
inst->device_data.multiSynth0Param.MSx_P2_19_16 = (MSx_P2 >> 16) & 0x3;
|
||||
inst->device_data.multiSynth0Param.MSx_P2_15_8 = (MSx_P2 >> 8) & 0xff;
|
||||
inst->device_data.multiSynth0Param.MSx_P2_7_0 = MSx_P2 & 0xff;
|
||||
|
||||
inst->device_data.multiSynth0Param.MSx_P3_19_16 = (MSx_P3 >> 12) & 0x3;
|
||||
inst->device_data.multiSynth0Param.MSx_P3_15_8 = (MSx_P3 >> 8) & 0xff;
|
||||
inst->device_data.multiSynth0Param.MSx_P3_7_0 = MSx_P3 & 0xff;
|
||||
|
||||
writeRegister(inst,SI5351_REG_MULTISYNTH_OUT_0, (uint8_t*) &inst->device_data.multiSynth0Param, sizeof(si5351_multiSynthxParameters_t));
|
||||
|
||||
break;
|
||||
|
||||
case SI5351_OUTPUT_1:
|
||||
inst->device_data.multiSynth1Param.MSx_P1_17_16 = (MSx_P1 >> 16) & 0x3; // last division..
|
||||
inst->device_data.multiSynth1Param.MSx_P1_15_8 = (MSx_P1 >> 8) & 0xff;
|
||||
inst->device_data.multiSynth1Param.MSx_P1_7_0 = MSx_P1 & 0xff;
|
||||
|
||||
inst->device_data.multiSynth1Param.MSx_P2_19_16 = (MSx_P2 >> 16) & 0x3;
|
||||
inst->device_data.multiSynth1Param.MSx_P2_15_8 = (MSx_P2 >> 8) & 0xff;
|
||||
inst->device_data.multiSynth1Param.MSx_P2_7_0 = MSx_P2 & 0xff;
|
||||
|
||||
inst->device_data.multiSynth1Param.MSx_P3_19_16 = (MSx_P3 >> 12) & 0x3;
|
||||
inst->device_data.multiSynth1Param.MSx_P3_15_8 = (MSx_P3 >> 8) & 0xff;
|
||||
inst->device_data.multiSynth1Param.MSx_P3_7_0 = MSx_P3 & 0xff;
|
||||
|
||||
writeRegister(inst,SI5351_REG_MULTISYNTH_OUT_1, (uint8_t*) &inst->device_data.multiSynth1Param, sizeof(si5351_multiSynthxParameters_t));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
int cm_setPLLParameters(si5351_driver *inst,si5351_PLLs sel_pll, uint32_t a, uint32_t b, uint32_t c){
|
||||
|
||||
uint32_t temp_val = 0;
|
||||
|
||||
Reference in New Issue
Block a user