commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r10390 - in gnuradio/branches/developers/jcorgan/u2-wi


From: jcorgan
Subject: [Commit-gnuradio] r10390 - in gnuradio/branches/developers/jcorgan/u2-wip/usrp2: firmware/apps firmware/include firmware/lib host/lib
Date: Wed, 4 Feb 2009 15:46:44 -0700 (MST)

Author: jcorgan
Date: 2009-02-04 15:46:43 -0700 (Wed, 04 Feb 2009)
New Revision: 10390

Modified:
   
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/apps/app_common_v2.c
   
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/include/usrp2_eth_packet.h
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_base.h
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_basic.c
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_dbsrx.c
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_init.c
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_rfx.c
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_tvrx.c
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_xcvr2450.c
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/control.h
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.cc
   gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.h
Log:
Implements reset_db (privately) to reset daughterboard dynamic values to 
default at startup

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/apps/app_common_v2.c
===================================================================
--- 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/apps/app_common_v2.c 
    2009-02-04 21:25:49 UTC (rev 10389)
+++ 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/apps/app_common_v2.c 
    2009-02-04 22:46:43 UTC (rev 10390)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2007,2008 Free Software Foundation, Inc.
+ * Copyright 2007,2008,2009 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -500,6 +500,11 @@
                                set_lo_offset_cmd((op_freq_t *)payload));
       break;
 
+    case OP_RESET_DB:
+      db_init();
+      subpktlen = generic_reply(gp, reply_payload, reply_payload_space, true);
+      break;
+
     default:
       printf("app_common_v2: unhandled opcode = %d\n", gp->opcode);
       break;

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/include/usrp2_eth_packet.h
===================================================================
--- 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/include/usrp2_eth_packet.h
       2009-02-04 21:25:49 UTC (rev 10389)
+++ 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/include/usrp2_eth_packet.h
       2009-02-04 22:46:43 UTC (rev 10390)
@@ -193,6 +193,8 @@
 #define OP_SET_TX_LO_OFFSET_REPLY    (OP_SET_TX_LO_OFFSET | OP_REPLY_BIT)
 #define OP_SET_RX_LO_OFFSET          14
 #define OP_SET_RX_LO_OFFSET_REPLY    (OP_SET_RX_LO_OFFSET | OP_REPLY_BIT)
+#define OP_RESET_DB                  15
+#define OP_RESET_DB_REPLY            (OP_RESET_DB | OP_REPLY_BIT)
 
 /*
  * All subpackets are a multiple of 4 bytes long.

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_base.h
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_base.h    
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_base.h    
2009-02-04 22:46:43 UTC (rev 10390)
@@ -43,7 +43,8 @@
   u2_fxpt_gain_t       gain_max;       //< max gain that can be set (dB)
   u2_fxpt_gain_t       gain_step_size; //< (dB)
 
-  u2_fxpt_freq_t       lo_offset;      //< offset to add to tune frequency
+  u2_fxpt_freq_t       default_lo_offset;  //< offset to add to tune 
frequency, reset value
+  u2_fxpt_freq_t        current_lo_offset;  //< current value of lo_offset
 
   /*
    * Auto T/R control values

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_basic.c
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_basic.c   
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_basic.c   
2009-02-04 22:46:43 UTC (rev 10390)
@@ -42,7 +42,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.atr_mask =     0,
   .base.atr_txval =    0,
   .base.atr_rxval =    0,
@@ -68,7 +68,7 @@
   .base.is_quadrature = false,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  //.base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.atr_mask =     0,
   .base.atr_txval =    0,
   .base.atr_rxval =    0,
@@ -94,7 +94,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  //.base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.atr_mask =     0,
   .base.atr_txval =    0,
   .base.atr_rxval =    0,
@@ -120,7 +120,7 @@
   .base.is_quadrature = false,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  //.base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.atr_mask =     0,
   .base.atr_txval =    0,
   .base.atr_rxval =    0,

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_dbsrx.c
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_dbsrx.c   
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_dbsrx.c   
2009-02-04 22:46:43 UTC (rev 10390)
@@ -80,7 +80,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = db_dbsrx_init,
   .base.set_freq = db_dbsrx_set_freq,
   .base.set_gain = db_dbsrx_set_gain,

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_init.c
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_init.c    
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_init.c    
2009-02-04 22:46:43 UTC (rev 10390)
@@ -270,6 +270,7 @@
   //m = determine_tx_mux_value(tx_dboard);
   //dsp_tx_regs->tx_mux = m;
   //printf("tx_mux = 0x%x\n", m);
+  tx_dboard->current_lo_offset = tx_dboard->default_lo_offset;
 
   rx_dboard = lookup_dboard(I2C_ADDR_RX_A, &db_basic_rx, "Rx");
   //printf("db_init: rx dbid = 0x%x\n", rx_dboard->dbid);
@@ -278,6 +279,7 @@
   m = determine_rx_mux_value(rx_dboard);
   dsp_rx_regs->rx_mux = m;
   //printf("rx_mux = 0x%x\n", m);
+  rx_dboard->current_lo_offset = rx_dboard->default_lo_offset;
 }
 
 /*!
@@ -333,7 +335,7 @@
 bool
 db_set_lo_offset(struct db_base *db, u2_fxpt_freq_t offset)
 {
-  db->lo_offset = offset;
+  db->current_lo_offset = offset;
   return true;
 }
 
@@ -346,7 +348,7 @@
   u2_fxpt_freq_t actual_dxc_freq;
 
   // Ask the d'board to tune as closely as it can to target_freq+lo_offset
-  bool ok = db->set_freq(db, target_freq+db->lo_offset, 
&result->baseband_freq);
+  bool ok = db->set_freq(db, target_freq+db->current_lo_offset, 
&result->baseband_freq);
 
   // Calculate the DDC setting that will downconvert the baseband from the
   // daughterboard to our target frequency.

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_rfx.c
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_rfx.c     
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_rfx.c     
2009-02-04 22:46:43 UTC (rev 10390)
@@ -148,7 +148,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = rfx_init_rx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_rx,
@@ -179,7 +179,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
   .base.init = rfx_init_tx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_tx,
@@ -209,7 +209,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = rfx_init_rx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_rx,
@@ -240,7 +240,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
   .base.init = rfx_init_tx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_tx,
@@ -270,7 +270,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = rfx_init_rx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_rx,
@@ -301,7 +301,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
   .base.init = rfx_init_tx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_tx,
@@ -331,7 +331,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = rfx_init_rx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_rx,
@@ -362,7 +362,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
   .base.init = rfx_init_tx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_tx,
@@ -393,7 +393,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = rfx_init_rx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_rx,
@@ -424,7 +424,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(12.5e6),
   .base.init = rfx_init_tx,
   .base.set_freq = rfx_set_freq,
   .base.set_gain = rfx_set_gain_tx,

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_tvrx.c
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_tvrx.c    
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_tvrx.c    
2009-02-04 22:46:43 UTC (rev 10390)
@@ -88,7 +88,7 @@
   .base.is_quadrature = false,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = tvrx_init,
   .base.set_freq = tvrx_set_freq,
   .base.set_gain = tvrx_set_gain,
@@ -115,7 +115,7 @@
   .base.is_quadrature = false,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = true,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = tvrx_init,
   .base.set_freq = tvrx_set_freq,
   .base.set_gain = tvrx_set_gain,
@@ -142,7 +142,7 @@
   .base.is_quadrature = false,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = true,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = tvrx_init,
   .base.set_freq = tvrx_set_freq,
   .base.set_gain = tvrx_set_gain,

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_xcvr2450.c
===================================================================
--- 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_xcvr2450.c    
    2009-02-04 21:25:49 UTC (rev 10389)
+++ 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/firmware/lib/db_xcvr2450.c    
    2009-02-04 22:46:43 UTC (rev 10390)
@@ -107,7 +107,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = false,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = xcvr2450_init,
   .base.set_freq = xcvr2450_set_freq,
   .base.set_gain = xcvr2450_set_gain_rx,
@@ -129,7 +129,7 @@
   .base.is_quadrature = true,
   .base.i_and_q_swapped = true,
   .base.spectrum_inverted = false,
-  .base.lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
+  .base.default_lo_offset = U2_DOUBLE_TO_FXPT_FREQ(0),
   .base.init = xcvr2450_init,
   .base.set_freq = xcvr2450_set_freq,
   .base.set_gain = xcvr2450_set_gain_tx,

Modified: gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/control.h
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/control.h        
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/control.h        
2009-02-04 22:46:43 UTC (rev 10390)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2008 Free Software Foundation, Inc.
+ * Copyright 2008,2009 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.cc
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.cc    
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.cc    
2009-02-04 22:46:43 UTC (rev 10390)
@@ -173,6 +173,10 @@
       fprintf(stderr, "  gain_db_per_step = %g\n", rx_gain_db_per_step());
     }
 
+    // Ensure any custom values in hardware are cleared
+    if (!reset_db())
+      std::cerr << "usrp2::ctor reset_db failed\n";
+
     // default gains to mid point
     if (!set_tx_gain((tx_gain_min() + tx_gain_max()) / 2))
       std::cerr << "usrp2::ctor set_tx_gain failed\n";
@@ -1232,4 +1236,26 @@
     return ok;
   }
 
+  bool
+  usrp2::impl::reset_db()
+  {
+    op_generic_cmd cmd;
+    op_generic_t reply;
+
+    memset(&cmd, 0, sizeof(cmd));
+    init_etf_hdrs(&cmd.h, d_addr, 0, CONTROL_CHAN, -1);
+    cmd.op.opcode = OP_RESET_DB;
+    cmd.op.len = sizeof(cmd.op);
+    cmd.op.rid = d_next_rid++;
+    cmd.eop.opcode = OP_EOP;
+    cmd.eop.len = sizeof(cmd.eop);
+    
+    pending_reply p(cmd.op.rid, &reply, sizeof(reply));
+    if (!transmit_cmd(&cmd, sizeof(cmd), &p, DEF_CMD_TIMEOUT))
+      return false;
+
+    bool success = (ntohx(reply.ok) == 1);
+    return success;
+  }
+
 } // namespace usrp2

Modified: 
gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.h
===================================================================
--- gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.h     
2009-02-04 21:25:49 UTC (rev 10389)
+++ gnuradio/branches/developers/jcorgan/u2-wip/usrp2/host/lib/usrp2_impl.h     
2009-02-04 22:46:43 UTC (rev 10390)
@@ -108,6 +108,7 @@
     data_handler::result handle_control_packet(const void *base, size_t len);
     data_handler::result handle_data_packet(const void *base, size_t len);
     bool dboard_info();
+    bool reset_db();
 
   public:
     impl(const std::string &ifc, props *p);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]