Forráskód Böngészése

Изменения в ключе SW4_RF. Небольшие правки

zaytsev.mikhail.olegovich@gmail.com 1 éve
szülő
commit
93c6e5b5df
2 módosított fájl, 35 hozzáadás és 20 törlés
  1. 9 5
      Devices/lmx2594.c
  2. 26 15
      Devices/tmsgheaders.c

+ 9 - 5
Devices/lmx2594.c

@@ -748,13 +748,15 @@ int lmx_freq_set(void *bar1, double freq,double f_pd) {
     // Set the 4 Mosi mode
     usleep(1);
     uint32_t cfg_reg = get_cfg_reg();
-    SET_REGISTER_PARAM(cfg_reg,CFG_REG_SPI_MODE_BITM,CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_4MOSI); 
+    SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_MODE_BITM, CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_4MOSI); 
     uint32_t *spi_mode = bar1 +CFG_REG_ADDR;
     *spi_mode = cfg_reg;
     usleep(1);
-    *spi_mode = SET_REGISTER_PARAM(cfg_reg,CFG_REG_RST_FOR_FPGA_BITM, CFG_REG_RST_FOR_FPGA_BITP,CFG_REG_RST_FOR_FPGA_ON);
+    SET_REGISTER_PARAM(cfg_reg, CFG_REG_RST_FOR_FPGA_BITM, CFG_REG_RST_FOR_FPGA_BITP, CFG_REG_RST_FOR_FPGA_ON);
+    *spi_mode = cfg_reg;
     usleep(1);
-    *spi_mode = SET_REGISTER_PARAM(cfg_reg,CFG_REG_RST_FOR_FPGA_BITM, CFG_REG_RST_FOR_FPGA_BITP,CFG_REG_RST_FOR_FPGA_OFF);
+    SET_REGISTER_PARAM(cfg_reg, CFG_REG_RST_FOR_FPGA_BITM, CFG_REG_RST_FOR_FPGA_BITP, CFG_REG_RST_FOR_FPGA_OFF);
+    *spi_mode = cfg_reg;
     if (freq < 100e3 || freq > 45e9) {
         printf("Frequency range is 100 kHz to 45 GHz\n");
         return -1;
@@ -771,10 +773,12 @@ int lmx_freq_set(void *bar1, double freq,double f_pd) {
     }
     // Return the 1 MOSI mode
     usleep(1);
-    *spi_mode = SET_REGISTER_PARAM(cfg_reg,CFG_REG_SPI_MODE_BITM,CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_1MOSI);
+    SET_REGISTER_PARAM(cfg_reg,CFG_REG_SPI_MODE_BITM,CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_1MOSI);
+    *spi_mode = cfg_reg;
     // Switch the keys 
-     usleep(1);
+    usleep(1);
     key_switch(bar1, freq,lmx_freq);
+    set_cfg_reg(cfg_reg);
     return 0;
 }
 

+ 26 - 15
Devices/tmsgheaders.c

@@ -4,7 +4,8 @@ uint32_t cfgReg = CFG_REG_RST_FOR_FPGA_OFF		|
 				  CFG_REG_WIDTH_SPI_TMSG_24_BIT	|
 				  CFG_REG_MOD_1					|  
 				  CFG_REG_LR_GPIO_0				|
-				  CFG_REG_HR_GPIO_0;
+				  CFG_REG_HR_GPIO_0				|
+				  CFG_REG_SPI_MODE_1MOSI;
 
  uint32_t tmsgGpioReg = FPGA_AM_CTRL_0			| 
 						DDS_SAW1_FPGA_0			| 
@@ -95,7 +96,7 @@ void key_switch (void  *bar1, double freq, double lmx_freq) {
 		}
 		else if (freq >5500e6 && freq <= 6000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_MIXER_RF_1 | SHIFT_REG_GPIO_SW_015_RF_1  | SHIFT_REG_SW_RF_0;
+			*ptr = SHIFT_REG_SW_MIXER_RF_1 | SHIFT_REG_GPIO_SW_015_RF_1  | SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1;
 		}
 		// Header for GPIO_REG 1MOSI
 		*ptr = 	(SB_HEADER_SPI_MODE_1MOSI) | 
@@ -113,33 +114,42 @@ void key_switch (void  *bar1, double freq, double lmx_freq) {
 	else if (freq > 6000e6 && freq <= 27000e6) {
 		if (freq > 6000e6 && freq <= 7500e6){
 		// Data for Shift Reg
-		*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			// Data for GPIO_REG
+			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_1);
+			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
 		}
 		else if (freq > 7500e6 && freq <= 9000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			// Data for GPIO_REG
+			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_1);
+			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
 		}
 		else if (freq > 9000e6 && freq <= 15000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			// Data for GPIO_REG
+			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_1);
+			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
 		}
 		else if (freq > 15000e6 && freq <= 18000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_0);	// temporary solution. need GPIO_ADRF_V1_1
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
 		}
 		else if (freq > 18000e6 && freq <= 22000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_0);
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
 		}
 		else if (freq > 22000e6 && freq <= 27000e6){
 			// Data for Shift Regs
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_1);
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_0);
@@ -169,11 +179,11 @@ void key_switch (void  *bar1, double freq, double lmx_freq) {
 		double freq_div2 = freq / 2;
 		if (freq_div2 > 13500e6 && freq_div2 <= 15000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_1;
 		}
 		else if(freq_div2 > 15000e6 && freq_div2 <= 18000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_0);	// temporary solution. need GPIO_ADRF_V1_1
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
@@ -181,7 +191,7 @@ void key_switch (void  *bar1, double freq, double lmx_freq) {
 		else if (freq_div2 > 18000e6 && freq_div2 <= 18500e6)
 		{
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_0);
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
@@ -208,16 +218,17 @@ void key_switch (void  *bar1, double freq, double lmx_freq) {
 		*ptr = cfgReg;
 	}
 	else if (freq > 37000e6 && freq <= 45000e6) {
-		if (freq / 2 > 18500e6 && freq / 2 <= 22000e6){
+		double freq_div2 = freq / 2;
+		if (freq_div2> 18500e6 && freq_div2 <= 22000e6){
 			// Data for Shift Reg
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_0);
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_1);
 		}
-		else if(freq / 2 > 22000e6 && freq / 2 <= 27500e6){
+		else if(freq_div2 > 22000e6 && freq_div2 <= 27500e6){
 			// Data for Shift Regs
-			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_1 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
+			*ptr = SHIFT_REG_SW_RF_0 | SHIFT_REG_SW4_RF_0 | SHIFT_REG_GPIO_SW_015_RF_0 | SHIFT_REG_GPIO_SW_X2_RF_0;
 			// Data for GPIO_REG
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V1_BITM, GPIO_ADRF_V1_BITP, GPIO_ADRF_V1_1);
 			SET_REGISTER_PARAM(tmsgGpioReg, GPIO_ADRF_V2_BITM, GPIO_ADRF_V2_BITP, GPIO_ADRF_V2_0);