[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7348 - gnuradio/branches/developers/jcorgan/xcvr2450/gr-usrp/src,
jcorgan <=