changeset 217:fefe921a9784

Use DDS4 for shifting Sr beatnote frequency to 10 kHz
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Tue, 15 Apr 2014 13:35:07 +0200
parents 72fafb670eaf
children a3494d2806ee
files FXAnalyse.c FXAnalyse.h FXAnalyse.uir
diffstat 3 files changed, 30 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/FXAnalyse.c	Mon Apr 14 12:50:21 2014 +0200
+++ b/FXAnalyse.c	Tue Apr 15 13:35:07 2014 +0200
@@ -248,7 +248,7 @@
 int nobs = 0;
 int settling = 0;
 
-double f0_DDS1 = 110000000.0, f0_DDS2, f0_DDS3, df_DDS3;
+double f0_DDS1 = 110000000.0, f0_DDS2, f0_DDS3, f0_DDS4, df_DDS3;
 
 double SlopeTime1 = 40.0, DeltaT_1 = 40.0, delta_f_lock_1 = 500e3;
 double SlopeTime2 = 40.0, DeltaT_2 = 40.0, delta_f_lock_2 = 500e3;
@@ -1052,7 +1052,7 @@
 						
 						// record current DDS frequencies
 						f0_DDS2 = ad9912.frequency[1];
-						f0_DDS3 = ad9912.frequency[2];
+						f0_DDS4 = ad9912.frequency[3];
 						
 						t1 = utc;
 						t2 = t3 = 0.0;
@@ -1088,9 +1088,9 @@
 							SetCtrlVal(MainPanel, PANEL_DDS1, ad9912.frequency[0]);
 							
 							// adjust DDS3 to keep beatnote within the bandpass filter
-							double fDDS3 = f0_DDS3 + Sign1 * Sign3 * N3/N1 * Ndiv * delta_f_lock_3;
-							ad9912_set_frequency_w(&ad9912, 2, fDDS3);
-							SetCtrlVal(MainPanel, PANEL_DDS3, ad9912.frequency[2]);
+							double fDDS4 = f0_DDS4 + Sign1 * Sign3 * N3/N1 * Ndiv * delta_f_lock_3;
+							ad9912_set_frequency_w(&ad9912, 3, fDDS4);
+							SetCtrlVal(MainPanel, PANEL_DDS4, ad9912.frequency[3]);
 							
 							// allow counter to settle
 							settling = 3;
@@ -1142,9 +1142,9 @@
 							SetCtrlVal(MainPanel, PANEL_DDS1, ad9912.frequency[0]);
 
 							// adjust DDS3 to keep beatnote within the bandpass filter
-							double fDDS3 = f0_DDS3 - Sign1 * Sign3 * N3/N1 * Ndiv * delta_f_lock_3;
-							ad9912_set_frequency_w(&ad9912, 2, fDDS3);
-							SetCtrlVal(MainPanel, PANEL_DDS3, ad9912.frequency[2]);
+							double fDDS4 = f0_DDS4 - Sign1 * Sign3 * N3/N1 * Ndiv * delta_f_lock_3;
+							ad9912_set_frequency_w(&ad9912, 3, fDDS4);
+							SetCtrlVal(MainPanel, PANEL_DDS4, ad9912.frequency[3]);
 							
 							// allow counter to settle
 							settling = 3;
@@ -1195,10 +1195,10 @@
 							// back to nominal frep
 							ad9912_ramp_frequency_w(&ad9912, 0, f0_DDS1, FREP_STEP_SIZE);
 							ad9912_set_frequency_w(&ad9912, 1, f0_DDS2);
-							ad9912_set_frequency_w(&ad9912, 2, f0_DDS3);
+							ad9912_set_frequency_w(&ad9912, 3, f0_DDS4);
 							SetCtrlVal(MainPanel, PANEL_DDS1, ad9912.frequency[0]);
 							SetCtrlVal(MainPanel, PANEL_DDS2, ad9912.frequency[1]);
-							SetCtrlVal(MainPanel, PANEL_DDS3, ad9912.frequency[2]);
+							SetCtrlVal(MainPanel, PANEL_DDS4, ad9912.frequency[3]);
 							
 							// done
 							Measuring_3 = N_MEASUREMENT_NONE;
@@ -1243,7 +1243,7 @@
 							Sign3 = -1.0;
 						else
 							Sign3 = +1.0;
-						ad9912_set_frequency_w(&ad9912, 3, Frequency3);
+						ad9912_set_frequency_w(&ad9912, 0, Frequency3);
 						Getsign3 = FALSE;
 						SetCtrlVal(MainPanel, PANEL_SIGN3, Sign3);
 					}
@@ -1342,13 +1342,13 @@
 						}
 					
 						if (recenter.sr) {
-							// adjust DDS3 frequency to keep Ch3 reading at 10 kHz
-							double freq = ad9912.frequency[2];
+							// adjust DDS4 frequency to keep Ch3 reading at 10 kHz
+							double freq = ad9912.frequency[3];
 							double adj = 10000 - rollmean_ch3.mean;
 							freq = freq + adj;
-							ad9912_set_frequency_w(&ad9912, 2, freq);
-							SetCtrlVal(MainPanel, PANEL_DDS3, ad9912.frequency[2]);
-							logmsg("recenter Sr beatnote (ch3) to 10 kHz: DDS3 adjustment=%+3e", adj);
+							ad9912_set_frequency_w(&ad9912, 3, freq);
+							SetCtrlVal(MainPanel, PANEL_DDS4, ad9912.frequency[3]);
+							logmsg("recenter Sr beatnote (ch3) to 10 kHz: DDS4 adjustment=%+3e", adj);
 						}
 					
 						recenter.t0 = utc;
@@ -1675,7 +1675,7 @@
 					Measuring_3 = FALSE;
 					ad9912_ramp_frequency_w(&ad9912, 0, f0_DDS1, FREP_STEP_SIZE);
 					ad9912_set_frequency_w(&ad9912, 1, f0_DDS2);
-					ad9912_set_frequency_w(&ad9912, 2, f0_DDS3);
+					ad9912_set_frequency_w(&ad9912, 3, f0_DDS4);
 					break;
 			}
 			
@@ -1729,7 +1729,7 @@
 	return 0;
 }
 
-int  CVICALLBACK CB_OnFind275K (int panel, int control, int event, 
+int  CVICALLBACK CB_AdjustDDSFreq (int panel, int control, int event, 
 		 void *callbackData, int eventData1, int eventData2)
 {
 	double frequency;
@@ -1738,16 +1738,21 @@
 		case EVENT_COMMIT:
 			switch (control)
 			{
-				case PANEL_FIND275K2:
+				case PANEL_ADJUST_DDS2:
 					frequency = ad9912.frequency[1] + 275000 - Ch4;
 					ad9912_set_frequency_w(&ad9912, 1, frequency);
 					SetCtrlVal(MainPanel, PANEL_DDS2, ad9912.frequency[1]);
 					break;
-				case PANEL_FIND10K3:
+				case PANEL_ADJUST_DDS3:
 					frequency = ad9912.frequency[2] + 10000 - Ch2;
 					ad9912_set_frequency_w(&ad9912, 2, frequency);
 					SetCtrlVal(MainPanel, PANEL_DDS3, ad9912.frequency[2]);
 					break;
+				case PANEL_ADJUST_DDS4:
+					frequency = ad9912.frequency[3] + 10000 - Ch3;
+					ad9912_set_frequency_w(&ad9912, 3, frequency);
+					SetCtrlVal(MainPanel, PANEL_DDS4, ad9912.frequency[3]);
+					break;
 			}
 			break;
 	}
@@ -2158,6 +2163,7 @@
 	}
 	return 0;
 }
+
 int CVICALLBACK CB_DedriftDDSFreq (int panel, int control, int event,
 		void *callbackData, int eventData1, int eventData2)
 {
--- a/FXAnalyse.h	Mon Apr 14 12:50:21 2014 +0200
+++ b/FXAnalyse.h	Tue Apr 15 13:35:07 2014 +0200
@@ -101,9 +101,9 @@
 #define  PANEL_SIGN2                      65      /* control type: numeric, callback function: CB_BeatnoteSign */
 #define  PANEL_FINDSIGN1                  66      /* control type: command, callback function: CB_OnFindSign */
 #define  PANEL_SIGN1                      67      /* control type: numeric, callback function: CB_BeatnoteSign */
-#define  PANEL_FIND10K3_2                 68      /* control type: command, callback function: CB_OnFind275K */
-#define  PANEL_FIND10K3                   69      /* control type: command, callback function: CB_OnFind275K */
-#define  PANEL_FIND275K2                  70      /* control type: command, callback function: CB_OnFind275K */
+#define  PANEL_ADJUST_DDS4                68      /* control type: command, callback function: CB_AdjustDDSFreq */
+#define  PANEL_ADJUST_DDS3                69      /* control type: command, callback function: CB_AdjustDDSFreq */
+#define  PANEL_ADJUST_DDS2                70      /* control type: command, callback function: CB_AdjustDDSFreq */
 #define  PANEL_RESETSLOPE                 71      /* control type: command, callback function: CB_OnResetSlope */
 #define  PANEL_CHECKBOX_STOPIFAUTODE      72      /* control type: radioButton, callback function: CB_OnStopSlopeCancellingOnUnlocked */
 #define  PANEL_CHECKBOX_KEEPSLOPE         73      /* control type: radioButton, callback function: CB_OnCROX */
@@ -157,6 +157,7 @@
 
      /* Callback Prototypes: */
 
+int  CVICALLBACK CB_AdjustDDSFreq(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_BeatnoteSign(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_ChangeDDSOut(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_ChangeDDSStep(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
@@ -172,7 +173,6 @@
 int  CVICALLBACK CB_OnCROX(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_OnEstimateN(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_OnEventMain(int panel, int event, void *callbackData, int eventData1, int eventData2);
-int  CVICALLBACK CB_OnFind275K(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_OnFindSign(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_OnFreqPlot(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
 int  CVICALLBACK CB_OnLoggingPanelEvent(int panel, int event, void *callbackData, int eventData1, int eventData2);
Binary file FXAnalyse.uir has changed