|
@@ -141,6 +141,12 @@ void lmx2594_init(void *bar1) {
|
|
|
uint32_t *ptr = bar1 + LMX_BASE_ADDR;
|
|
uint32_t *ptr = bar1 + LMX_BASE_ADDR;
|
|
|
*ptr = lmx2594regs[i];
|
|
*ptr = lmx2594regs[i];
|
|
|
}
|
|
}
|
|
|
|
|
+ FILE * f = fopen("init.txt", "w");
|
|
|
|
|
+ for (int i = 0; i < sizeof(lmx2594regs) / 4; i++) {
|
|
|
|
|
+ fprintf(f, "0x%08X\n", lmx2594regs[i]);
|
|
|
|
|
+ }
|
|
|
|
|
+ fclose(f);
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*-------------------------LMX2594 Frequency Set-------------------------*/
|
|
/*-------------------------LMX2594 Frequency Set-------------------------*/
|
|
@@ -254,8 +260,8 @@ int lmx_freq_set_main_band(void *bar1, double freq, double f_pd) {
|
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] & (~BITM_LMX2594_R20_VCO_SEL);
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] & (~BITM_LMX2594_R20_VCO_SEL);
|
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] | (vco_core << BITP_LMX2594_R20_VCO_SEL);
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] | (vco_core << BITP_LMX2594_R20_VCO_SEL);
|
|
|
// Set the VCO_CAP_CTRL
|
|
// Set the VCO_CAP_CTRL
|
|
|
- lmx2594regs[112 - VCO_CAP_CTRL] = lmx2594regs[112 - VCO_CAP_CTRL] & (~BITM_LMX2594_R19_VCO_CAP_CTRL);
|
|
|
|
|
- lmx2594regs[112 - VCO_CAP_CTRL] = lmx2594regs[112 - VCO_CAP_CTRL] | (vco_cap_ctrl_strt << BITP_LMX2594_R19_VCO_CAP_CTRL);
|
|
|
|
|
|
|
+ lmx2594regs[112 - CAP_CTRL_START] = lmx2594regs[112 - CAP_CTRL_START] & (~BITM_LMX2594_R78_VCO_CAP_CTRL_START);
|
|
|
|
|
+ lmx2594regs[112 - CAP_CTRL_START] = lmx2594regs[112 - CAP_CTRL_START] | (vco_cap_ctrl_strt << BITP_LMX2594_R78_VCO_CAP_CTRL_START);
|
|
|
// Set the VCO_DACISET
|
|
// Set the VCO_DACISET
|
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] & (~BITM_LMX2594_R17_VCO_DACISET);
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] & (~BITM_LMX2594_R17_VCO_DACISET);
|
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] | (vco_daciset_strt << BITP_LMX2594_R17_VCO_DACISET);
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] | (vco_daciset_strt << BITP_LMX2594_R17_VCO_DACISET);
|
|
@@ -311,7 +317,7 @@ int lmx_freq_set_main_band(void *bar1, double freq, double f_pd) {
|
|
|
// Determine which regs are changed and send only those
|
|
// Determine which regs are changed and send only those
|
|
|
uint32_t lmx_change_freq_regs[] = {
|
|
uint32_t lmx_change_freq_regs[] = {
|
|
|
lmx2594regs[112 - VCO_SEL],
|
|
lmx2594regs[112 - VCO_SEL],
|
|
|
- lmx2594regs[112 - VCO_CAP_CTRL],
|
|
|
|
|
|
|
+ lmx2594regs[112 - CAP_CTRL_START],
|
|
|
lmx2594regs[112 - VCO_DACISET],
|
|
lmx2594regs[112 - VCO_DACISET],
|
|
|
lmx2594regs[112-MASH_ORDER],
|
|
lmx2594regs[112-MASH_ORDER],
|
|
|
lmx2594regs[112-PFD_DLY_SEL],
|
|
lmx2594regs[112-PFD_DLY_SEL],
|
|
@@ -334,17 +340,20 @@ int lmx_freq_set_main_band(void *bar1, double freq, double f_pd) {
|
|
|
uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
|
|
uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
|
|
|
*data_ptr = lmx_change_freq_regs[i];
|
|
*data_ptr = lmx_change_freq_regs[i];
|
|
|
}
|
|
}
|
|
|
|
|
+ char filename[100];
|
|
|
|
|
+ sprintf(filename, "%f.txt", freq);
|
|
|
|
|
+ FILE * f = fopen(filename, "w");
|
|
|
|
|
+ for (int i = 0; i < sizeof(lmx2594regs) / 4; i++) {
|
|
|
|
|
+ fprintf(f, "0x%08X\n", lmx2594regs[i]);
|
|
|
|
|
+ }
|
|
|
|
|
+ fclose(f);
|
|
|
|
|
+ printf("File has been written\n");
|
|
|
printf("N_div = %f\n", N_div);
|
|
printf("N_div = %f\n", N_div);
|
|
|
printf("f_vco = %f\n", freq);
|
|
printf("f_vco = %f\n", freq);
|
|
|
printf("SEG1_EN %08X\n",lmx2594regs[112 - CHDIV_DIV2]);
|
|
printf("SEG1_EN %08X\n",lmx2594regs[112 - CHDIV_DIV2]);
|
|
|
printf("N = %d\n", N);
|
|
printf("N = %d\n", N);
|
|
|
printf("frac_n = %u\n", frac_n);
|
|
printf("frac_n = %u\n", frac_n);
|
|
|
printf("frac_d = %u\n", frac_d);
|
|
printf("frac_d = %u\n", frac_d);
|
|
|
- printf("LMX2594 Registers\n");
|
|
|
|
|
- for (int i = 0; i < sizeof(lmx_change_freq_regs) / 4; i++) {
|
|
|
|
|
- printf("0x%08X\n", lmx_change_freq_regs[i]);
|
|
|
|
|
- }
|
|
|
|
|
- return 0;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
|
|
int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
|
|
@@ -597,9 +606,9 @@ int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
|
|
|
//Set the VCO_CORE
|
|
//Set the VCO_CORE
|
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] & (~BITM_LMX2594_R20_VCO_SEL);
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] & (~BITM_LMX2594_R20_VCO_SEL);
|
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] | (vco_core << BITP_LMX2594_R20_VCO_SEL);
|
|
lmx2594regs[112 - VCO_SEL] = lmx2594regs[112 - VCO_SEL] | (vco_core << BITP_LMX2594_R20_VCO_SEL);
|
|
|
- // Set the VCO_CAP_CTRL
|
|
|
|
|
- lmx2594regs[112 - VCO_CAP_CTRL] = lmx2594regs[112 - VCO_CAP_CTRL] & (~BITM_LMX2594_R19_VCO_CAP_CTRL);
|
|
|
|
|
- lmx2594regs[112 - VCO_CAP_CTRL] = lmx2594regs[112 - VCO_CAP_CTRL] | (vco_cap_ctrl_strt << BITP_LMX2594_R19_VCO_CAP_CTRL);
|
|
|
|
|
|
|
+ // Set the VCO_CAP_CTRL_START
|
|
|
|
|
+ lmx2594regs[112 - CAP_CTRL_START] = lmx2594regs[112 - CAP_CTRL_START] & (~BITM_LMX2594_R78_VCO_CAP_CTRL_START);
|
|
|
|
|
+ lmx2594regs[112 - CAP_CTRL_START] = lmx2594regs[112 - CAP_CTRL_START] | (vco_cap_ctrl_strt << BITP_LMX2594_R78_VCO_CAP_CTRL_START);
|
|
|
// Set the VCO_DACISET
|
|
// Set the VCO_DACISET
|
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] & (~BITM_LMX2594_R17_VCO_DACISET);
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] & (~BITM_LMX2594_R17_VCO_DACISET);
|
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] | (vco_daciset_strt << BITP_LMX2594_R17_VCO_DACISET);
|
|
lmx2594regs[112 - VCO_DACISET] = lmx2594regs[112 - VCO_DACISET] | (vco_daciset_strt << BITP_LMX2594_R17_VCO_DACISET);
|
|
@@ -660,7 +669,7 @@ int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
|
|
|
|
|
|
|
|
uint32_t lmx_change_freq_regs[] = {
|
|
uint32_t lmx_change_freq_regs[] = {
|
|
|
lmx2594regs[112 - VCO_SEL],
|
|
lmx2594regs[112 - VCO_SEL],
|
|
|
- lmx2594regs[112 - VCO_CAP_CTRL],
|
|
|
|
|
|
|
+ lmx2594regs[112 - CAP_CTRL_START],
|
|
|
lmx2594regs[112 - VCO_DACISET],
|
|
lmx2594regs[112 - VCO_DACISET],
|
|
|
lmx2594regs[112-MASH_ORDER],
|
|
lmx2594regs[112-MASH_ORDER],
|
|
|
lmx2594regs[112-PFD_DLY_SEL],
|
|
lmx2594regs[112-PFD_DLY_SEL],
|
|
@@ -684,6 +693,13 @@ int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
|
|
|
uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
|
|
uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
|
|
|
*data_ptr = lmx_change_freq_regs[i];
|
|
*data_ptr = lmx_change_freq_regs[i];
|
|
|
}
|
|
}
|
|
|
|
|
+ char filename[100];
|
|
|
|
|
+ sprintf(filename, "%f.txt", freq);
|
|
|
|
|
+ FILE * f = fopen(filename, "w");
|
|
|
|
|
+ for (int i = 0; i < sizeof(lmx2594regs) / 4; i++) {
|
|
|
|
|
+ fprintf(f, "0x%08X\n", lmx2594regs[i]);
|
|
|
|
|
+ }
|
|
|
|
|
+ fclose(f);
|
|
|
printf("N_div = %f\n", N_div);
|
|
printf("N_div = %f\n", N_div);
|
|
|
printf("f_vco = %f\n", f_vco);
|
|
printf("f_vco = %f\n", f_vco);
|
|
|
printf("SEG1_EN %08X\n",lmx2594regs[112 - CHDIV_DIV2]);
|
|
printf("SEG1_EN %08X\n",lmx2594regs[112 - CHDIV_DIV2]);
|
|
@@ -693,9 +709,6 @@ int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
|
|
|
printf("chan_div = %d\n", chan_div);
|
|
printf("chan_div = %d\n", chan_div);
|
|
|
printf("chan_div_reg = %d\n", ch_div_reg);
|
|
printf("chan_div_reg = %d\n", ch_div_reg);
|
|
|
printf("LMX2594 Registers\n");
|
|
printf("LMX2594 Registers\n");
|
|
|
- for (int i = 0; i < sizeof(lmx_change_freq_regs) / 4; i++) {
|
|
|
|
|
- printf("0x%08X\n", lmx_change_freq_regs[i]);
|
|
|
|
|
- }
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|