added frequency offset capability. Set to 12.5e6 on TX, 0 on RX for now
authormatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 17 Dec 2008 23:02:59 +0000 (23:02 +0000)
committermatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 17 Dec 2008 23:02:59 +0000 (23:02 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10125 221aa14e-8319-0410-a670-987f0aec2ac5

usrp2/firmware/lib/db_rfx.c

index 8e265b58511b41c07fed4409e998f9322e69334f..b127f2c335d6991e98ef282a700eb167e2a2f8e4 100644 (file)
@@ -72,7 +72,8 @@ struct db_rfx_common {
   unsigned char CP1;
   unsigned char CP2;
   int freq_mult;
-  int spi_mask;
+  int spi_mask;  
+  u2_fxpt_freq_t freq_offset;
 };
 
 struct db_rfx_dummy {
@@ -162,7 +163,8 @@ struct db_rfx_400_rx db_rfx_400_rx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_RX_DB,
-  .common.freq_mult = 2
+  .common.freq_mult = 2,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(0)
 };
 
 
@@ -193,7 +195,8 @@ struct db_rfx_400_tx db_rfx_400_tx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_TX_DB,
-  .common.freq_mult = 2
+  .common.freq_mult = 2,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6)
 };
 
 struct db_rfx_900_rx db_rfx_900_rx = {
@@ -223,7 +226,8 @@ struct db_rfx_900_rx db_rfx_900_rx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_RX_DB,
-  .common.freq_mult = 2
+  .common.freq_mult = 2,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(0)
 };
 
 
@@ -254,7 +258,8 @@ struct db_rfx_900_tx db_rfx_900_tx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_TX_DB,
-  .common.freq_mult = 2
+  .common.freq_mult = 2,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6)
 };
 
 struct db_rfx_1200_rx db_rfx_1200_rx = {
@@ -284,7 +289,8 @@ struct db_rfx_1200_rx db_rfx_1200_rx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_RX_DB,
-  .common.freq_mult = 2
+  .common.freq_mult = 2,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(0)
 };
 
 
@@ -315,7 +321,8 @@ struct db_rfx_1200_tx db_rfx_1200_tx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_TX_DB,
-  .common.freq_mult = 2
+  .common.freq_mult = 2,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6)
 };
 
 struct db_rfx_1800_rx db_rfx_1800_rx = {
@@ -345,7 +352,8 @@ struct db_rfx_1800_rx db_rfx_1800_rx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_RX_DB,
-  .common.freq_mult = 1
+  .common.freq_mult = 1,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(0)
 };
 
 
@@ -376,7 +384,8 @@ struct db_rfx_1800_tx db_rfx_1800_tx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_TX_DB,
-  .common.freq_mult = 1
+  .common.freq_mult = 1,  
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6)
 };
 
 
@@ -407,7 +416,8 @@ struct db_rfx_2400_rx db_rfx_2400_rx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_RX_DB,
-  .common.freq_mult = 1
+  .common.freq_mult = 1,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(0)
 };
 
 
@@ -438,7 +448,8 @@ struct db_rfx_2400_tx db_rfx_2400_tx = {
   .common.CP1 = 7,
   .common.CP2 = 7,
   .common.spi_mask = SPI_SS_TX_DB,
-  .common.freq_mult = 1
+  .common.freq_mult = 1,
+  .common.freq_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6)
 };
 
 
@@ -477,9 +488,7 @@ rfx_set_freq(struct db_base *dbb, u2_fxpt_freq_t freq, u2_fxpt_freq_t *dc)
 
   *dc = 0;
   struct db_rfx_dummy *db = (struct db_rfx_dummy *) dbb;
-  //u2_fxpt_freq_t desired_n = db->common.freq_mult*freq/phdet_freq;
-  //int N_DIV = u2_fxpt_freq_round_to_int(desired_n);
-  u2_fxpt_freq_t desired_n = ((1LL<<20) * db->common.freq_mult*freq)/phdet_freq;
+  u2_fxpt_freq_t desired_n = ((1LL<<20)*db->common.freq_mult*(freq+db->common.freq_offset))/phdet_freq;
   int N_DIV = u2_fxpt_freq_round_to_int(desired_n);
   int B = N_DIV/PRESCALER;
   int A = N_DIV - PRESCALER*B;