commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r7348 - gnuradio/branches/developers/jcorgan/xcvr2450/


From: jcorgan
Subject: [Commit-gnuradio] r7348 - gnuradio/branches/developers/jcorgan/xcvr2450/gr-usrp/src
Date: Fri, 4 Jan 2008 21:01:33 -0700 (MST)

Author: jcorgan
Date: 2008-01-04 21:01:33 -0700 (Fri, 04 Jan 2008)
New Revision: 7348

Modified:
   gnuradio/branches/developers/jcorgan/xcvr2450/gr-usrp/src/db_xcvr2450.py
Log:
Implemented tx and rx gain as dB.

Modified: 
gnuradio/branches/developers/jcorgan/xcvr2450/gr-usrp/src/db_xcvr2450.py
===================================================================
--- gnuradio/branches/developers/jcorgan/xcvr2450/gr-usrp/src/db_xcvr2450.py    
2008-01-05 02:44:01 UTC (rev 7347)
+++ gnuradio/branches/developers/jcorgan/xcvr2450/gr-usrp/src/db_xcvr2450.py    
2008-01-05 04:01:33 UTC (rev 7348)
@@ -122,9 +122,11 @@
         self.tx_bb_gain = 3        # 0 = maxgain-5dB, 1 = max-3dB, 2 = 
max-1.5dB, 3 = max
         self.pabias_delay = 15     # 0 = 0, 15 = 7uS
         self.pabias = 0            # 0 = 0 uA, 63 = 315uA
-        self.rxgain = 64           # 0 = min, 127 = max
-        self.txgain = 32           # 0 = min, 63 = max
+       self.rx_rf_gain = 0        # 0 = 0dB, 1 = 0dB, 2 = 15dB, 3 = 30dB
+       self.rx_bb_gain = 16       # 0 = min, 31 = max (0 - 62 dB)
 
+        self.txgain = 63           # 0 = min, 63 = max
+
         # Initialize GPIO and ATR
         self.tx_write_io(TX_SAFE_IO, TX_OE_MASK)
         self.tx_write_oe(TX_OE_MASK, ~0)
@@ -251,7 +253,9 @@
 
     # Rx Gain (11)
     def set_reg_rxgain(self):
-        self.reg_rxgain = (self.rxgain<<4) | 11
+        self.reg_rxgain = (
+           (self.rx_rf_gain<<9) |
+           (self.rx_bb_gain<<4) | 11)
         self.send_reg(self.reg_rxgain)
 
 
@@ -406,11 +410,29 @@
                 return False
 
     def set_rx_gain(self, gain):
-        self.rxgain = int(gain)
+       if gain < 0.0: gain = 0.0
+       if gain > 92.0: gain = 92.0
+       
+       # Split the gain between RF and baseband
+       # This is experimental, not prescribed
+       if gain < 31.0:
+           self.rx_rf_gain = 0                    # 0 dB RF gain
+           self.rx_bb_gain = int(gain/2.0)
+           
+       if gain >= 30.0 and gain < 60.5:
+           self.rx_rf_gain = 2                    # 15 dB RF gain
+           self.rx_bb_gain = int((gain-15.0)/2.0)
+    
+       if gain >= 60.5:
+           self.rx_rf_gain = 3                    # 30.5 dB RF gain
+           self.rx_bb_gain = int((gain-30.5)/2.0)
+    
         self.set_reg_rxgain()
 
     def set_tx_gain(self, gain):
-        self.txgain = int(gain)
+       if gain < 0.0: gain = 0.0
+       if gain > 30.0: gain = 30.0
+        self.txgain = int((gain/30.0)*63)
         self.set_reg_txgain()
 
 class db_xcvr2450_base(db_base.db_base):
@@ -462,9 +484,8 @@
        print "db_xcvr2450_tx: __init__"
         db_xcvr2450_base.__init__(self, usrp, which)
 
-    # FIXME: this is not in dB
     def gain_range(self):
-       return (0, 63, 1)
+       return (0, 30, (30.0/63.0))
 
     def set_gain(self, gain):
         return self.xcvr.set_tx_gain(gain)
@@ -479,9 +500,8 @@
        print "db_xcvr2450_rx: __init__"
         db_xcvr2450_base.__init__(self, usrp, which)
 
-    # FIXME: this is not in dB
     def gain_range(self):
-       return (0, 127, 1)
+       return (0.0, 92.0, 1)
 
     def set_gain(self, gain):
         return self.xcvr.set_rx_gain(gain)





reply via email to

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