Add clock control hackrf_debug
This commit is contained in:
@ -148,19 +148,82 @@ int si5351c_write_register(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define SI5351C_CLK_POWERDOWN (1<<7)
|
||||||
|
#define SI5351C_CLK_INT_MODE (1<<6)
|
||||||
|
#define SI5351C_CLK_PLL_SRC (1<<5)
|
||||||
|
#define SI5351C_CLK_INV (1<<4)
|
||||||
|
#define SI5351C_CLK_SRC_XTAL 0
|
||||||
|
#define SI5351C_CLK_SRC_CLKIN 1
|
||||||
|
#define SI5351C_CLK_SRC_MULTISYNTH_0_4 2
|
||||||
|
#define SI5351C_CLK_SRC_MULTISYNTH_SELF 3
|
||||||
|
|
||||||
|
void print_clk_control(uint8_t clk_ctrl) {
|
||||||
|
uint8_t clk_src, clk_pwr;
|
||||||
|
printf("\tclock control = \n");
|
||||||
|
if(clk_ctrl & SI5351C_CLK_POWERDOWN)
|
||||||
|
printf("\t\tPower Down\n");
|
||||||
|
else
|
||||||
|
printf("\t\tPower Up\n");
|
||||||
|
if(clk_ctrl & SI5351C_CLK_INT_MODE)
|
||||||
|
printf("\t\tInt Mode\n");
|
||||||
|
else
|
||||||
|
printf("\t\tFrac Mode\n");
|
||||||
|
if(clk_ctrl & SI5351C_CLK_PLL_SRC)
|
||||||
|
printf("\t\tPLL src B\n");
|
||||||
|
else
|
||||||
|
printf("\t\tPLL src A\n");
|
||||||
|
if(clk_ctrl & SI5351C_CLK_INV)
|
||||||
|
printf("\t\tInverted\n");
|
||||||
|
clk_src = (clk_ctrl >> 2) & 0x3;
|
||||||
|
switch (clk_src) {
|
||||||
|
case 0:
|
||||||
|
printf("\t\tXTAL\n");
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
printf("\t\tCLKIN\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
printf("\t\tMULTISYNTH 0 4\n");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
printf("\t\tMULTISYNTH SELF\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
clk_pwr = clk_ctrl & 0x3;
|
||||||
|
switch (clk_pwr) {
|
||||||
|
case 0:
|
||||||
|
printf("\t\t2 mA\n");
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
printf("\t\t4 mA\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
printf("\t\t6 mA\n");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
printf("\t\t8 mA\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int si5351c_read_multisynth_config(hackrf_device* device, const uint_fast8_t ms_number) {
|
int si5351c_read_multisynth_config(hackrf_device* device, const uint_fast8_t ms_number) {
|
||||||
uint_fast8_t i;
|
uint_fast8_t i, reg_base, reg_number;
|
||||||
uint_fast8_t reg_base;
|
uint16_t parameters[8], clk_control;
|
||||||
uint16_t parameters[8];
|
|
||||||
uint32_t p1,p2,p3,r_div;
|
uint32_t p1,p2,p3,r_div;
|
||||||
uint_fast8_t div_lut[] = {1,2,4,8,16,32,64,128};
|
uint_fast8_t div_lut[] = {1,2,4,8,16,32,64,128};
|
||||||
|
int result;
|
||||||
|
|
||||||
printf("MS%d:", ms_number);
|
printf("MS%d:", ms_number);
|
||||||
|
result = hackrf_si5351c_read(device, 16+ms_number, &clk_control);
|
||||||
|
if( result != HACKRF_SUCCESS ) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
print_clk_control(clk_control);
|
||||||
if(ms_number <6){
|
if(ms_number <6){
|
||||||
reg_base = 42 + (ms_number * 8);
|
reg_base = 42 + (ms_number * 8);
|
||||||
for(i=0; i<8; i++) {
|
for(i=0; i<8; i++) {
|
||||||
uint_fast8_t reg_number = reg_base + i;
|
reg_number = reg_base + i;
|
||||||
int result = hackrf_si5351c_read(device, reg_number, ¶meters[i]);
|
result = hackrf_si5351c_read(device, reg_number, ¶meters[i]);
|
||||||
if( result != HACKRF_SUCCESS ) {
|
if( result != HACKRF_SUCCESS ) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user