Просмотр исходного кода

Добавил запись всех отгружаемых регистров в файл

Anatoliy Chigirinskiy 1 год назад
Родитель
Сommit
2fe6d304f9
1 измененных файлов с 28 добавлено и 15 удалено
  1. 28 15
      Devices/lmx2594.c

+ 28 - 15
Devices/lmx2594.c

@@ -141,6 +141,12 @@ void lmx2594_init(void *bar1) {
         uint32_t *ptr = bar1 + LMX_BASE_ADDR;
         *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-------------------------*/
@@ -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] | (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);
+    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
     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);
@@ -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
     uint32_t lmx_change_freq_regs[] = {
             lmx2594regs[112 - VCO_SEL],
-            lmx2594regs[112 - VCO_CAP_CTRL],
+            lmx2594regs[112 - CAP_CTRL_START],
             lmx2594regs[112 - VCO_DACISET],
             lmx2594regs[112-MASH_ORDER],
             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;
         *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("f_vco = %f\n", freq);
     printf("SEG1_EN %08X\n",lmx2594regs[112 - CHDIV_DIV2]);
     printf("N = %d\n", N);
     printf("frac_n = %u\n", frac_n);
     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) {
@@ -597,9 +606,9 @@ int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
     //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] | (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
     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);
@@ -660,7 +669,7 @@ int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd) {
 
     uint32_t lmx_change_freq_regs[] = {
             lmx2594regs[112 - VCO_SEL],
-            lmx2594regs[112 - VCO_CAP_CTRL],
+            lmx2594regs[112 - CAP_CTRL_START],
             lmx2594regs[112 - VCO_DACISET],
             lmx2594regs[112-MASH_ORDER],
             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;
         *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("f_vco = %f\n", f_vco);
     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_reg = %d\n", ch_div_reg);
     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;
 }