2 # Copyright 2005 Free Software Foundation, Inc.
4 # This file is part of GNU Radio
6 # GNU Radio is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
11 # GNU Radio is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with GNU Radio; see the file COPYING. If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street,
19 # Boston, MA 02110-1301, USA.
22 from gnuradio import usrp1
27 import db_instantiator
28 from usrp_fpga_regs import *
29 from db_flexrf import *
31 # self._u.fpga_master_clock_freq()
34 class db_flexrf_2400_tx_mimo_a(db_flexrf_2400_tx):
35 def __init__(self, usrp, which):
36 db_flexrf_2400_tx.__init__(self, usrp, which)
37 self._enable_refclk(True)
40 def _refclk_divisor(self):
42 Return value to stick in REFCLK_DIVISOR register
46 class db_flexrf_2400_rx_mimo_a(db_flexrf_2400_rx):
47 def __init__(self, usrp, which):
48 db_flexrf_2400_rx.__init__(self, usrp, which)
49 self._enable_refclk(True)
52 def _refclk_divisor(self):
54 Return value to stick in REFCLK_DIVISOR register
58 class db_flexrf_2400_tx_mimo_b(db_flexrf_2400_tx):
59 def __init__(self, usrp, which):
60 db_flexrf_2400_tx.__init__(self, usrp, which)
63 def _refclk_divisor(self):
65 Return value to stick in REFCLK_DIVISOR register
69 class db_flexrf_2400_rx_mimo_b(db_flexrf_2400_rx):
70 def __init__(self, usrp, which):
71 db_flexrf_2400_rx.__init__(self, usrp, which)
74 def _refclk_divisor(self):
76 Return value to stick in REFCLK_DIVISOR register
80 class db_flexrf_1800_tx_mimo_a(db_flexrf_1800_tx):
81 def __init__(self, usrp, which):
82 db_flexrf_1800_tx.__init__(self, usrp, which)
83 self._enable_refclk(True)
86 def _refclk_divisor(self):
88 Return value to stick in REFCLK_DIVISOR register
92 class db_flexrf_1800_rx_mimo_a(db_flexrf_1800_rx):
93 def __init__(self, usrp, which):
94 db_flexrf_1800_rx.__init__(self, usrp, which)
95 self._enable_refclk(True)
98 def _refclk_divisor(self):
100 Return value to stick in REFCLK_DIVISOR register
104 class db_flexrf_1800_tx_mimo_b(db_flexrf_1800_tx):
105 def __init__(self, usrp, which):
106 db_flexrf_1800_tx.__init__(self, usrp, which)
109 def _refclk_divisor(self):
111 Return value to stick in REFCLK_DIVISOR register
115 class db_flexrf_1800_rx_mimo_b(db_flexrf_1800_rx):
116 def __init__(self, usrp, which):
117 db_flexrf_1800_rx.__init__(self, usrp, which)
120 def _refclk_divisor(self):
122 Return value to stick in REFCLK_DIVISOR register
126 class db_flexrf_1200_tx_mimo_a(db_flexrf_1200_tx):
127 def __init__(self, usrp, which):
128 db_flexrf_1200_tx.__init__(self, usrp, which)
129 self._enable_refclk(True)
132 def _refclk_divisor(self):
134 Return value to stick in REFCLK_DIVISOR register
138 class db_flexrf_1200_rx_mimo_a(db_flexrf_1200_rx):
139 def __init__(self, usrp, which):
140 db_flexrf_1200_rx.__init__(self, usrp, which)
141 self._enable_refclk(True)
144 def _refclk_divisor(self):
146 Return value to stick in REFCLK_DIVISOR register
150 class db_flexrf_1200_tx_mimo_b(db_flexrf_1200_tx):
151 def __init__(self, usrp, which):
152 db_flexrf_1200_tx.__init__(self, usrp, which)
155 def _refclk_divisor(self):
157 Return value to stick in REFCLK_DIVISOR register
161 class db_flexrf_1200_rx_mimo_b(db_flexrf_1200_rx):
162 def __init__(self, usrp, which):
163 db_flexrf_1200_rx.__init__(self, usrp, which)
166 def _refclk_divisor(self):
168 Return value to stick in REFCLK_DIVISOR register
172 class db_flexrf_900_tx_mimo_a(db_flexrf_900_tx):
173 def __init__(self, usrp, which):
174 db_flexrf_900_tx.__init__(self, usrp, which)
175 self._enable_refclk(True)
178 def _refclk_divisor(self):
180 Return value to stick in REFCLK_DIVISOR register
184 class db_flexrf_900_rx_mimo_a(db_flexrf_900_rx):
185 def __init__(self, usrp, which):
186 db_flexrf_900_rx.__init__(self, usrp, which)
187 self._enable_refclk(True)
190 def _refclk_divisor(self):
192 Return value to stick in REFCLK_DIVISOR register
196 class db_flexrf_900_tx_mimo_b(db_flexrf_900_tx):
197 def __init__(self, usrp, which):
198 db_flexrf_900_tx.__init__(self, usrp, which)
201 def _refclk_divisor(self):
203 Return value to stick in REFCLK_DIVISOR register
207 class db_flexrf_900_rx_mimo_b(db_flexrf_900_rx):
208 def __init__(self, usrp, which):
209 db_flexrf_900_rx.__init__(self, usrp, which)
212 def _refclk_divisor(self):
214 Return value to stick in REFCLK_DIVISOR register
218 class db_flexrf_400_tx_mimo_a(db_flexrf_400_tx):
219 def __init__(self, usrp, which):
220 db_flexrf_400_tx.__init__(self, usrp, which)
221 self._enable_refclk(True)
224 def _refclk_divisor(self):
226 Return value to stick in REFCLK_DIVISOR register
230 class db_flexrf_400_rx_mimo_a(db_flexrf_400_rx):
231 def __init__(self, usrp, which):
232 db_flexrf_400_rx.__init__(self, usrp, which)
233 self._enable_refclk(True)
236 def _refclk_divisor(self):
238 Return value to stick in REFCLK_DIVISOR register
242 class db_flexrf_400_tx_mimo_b(db_flexrf_400_tx):
243 def __init__(self, usrp, which):
244 db_flexrf_400_tx.__init__(self, usrp, which)
247 def _refclk_divisor(self):
249 Return value to stick in REFCLK_DIVISOR register
253 class db_flexrf_400_rx_mimo_b(db_flexrf_400_rx):
254 def __init__(self, usrp, which):
255 db_flexrf_400_rx.__init__(self, usrp, which)
258 def _refclk_divisor(self):
260 Return value to stick in REFCLK_DIVISOR register
264 # hook these daughterboard classes into the auto-instantiation framework
265 db_instantiator.add(usrp_dbid.FLEX_2400_TX_MIMO_A, lambda usrp, which : (db_flexrf_2400_tx_mimo_a(usrp, which),))
266 db_instantiator.add(usrp_dbid.FLEX_2400_RX_MIMO_A, lambda usrp, which : (db_flexrf_2400_rx_mimo_a(usrp, which),))
267 db_instantiator.add(usrp_dbid.FLEX_1800_TX_MIMO_A, lambda usrp, which : (db_flexrf_1800_tx_mimo_a(usrp, which),))
268 db_instantiator.add(usrp_dbid.FLEX_1800_RX_MIMO_A, lambda usrp, which : (db_flexrf_1800_rx_mimo_a(usrp, which),))
269 db_instantiator.add(usrp_dbid.FLEX_1200_TX_MIMO_A, lambda usrp, which : (db_flexrf_1200_tx_mimo_a(usrp, which),))
270 db_instantiator.add(usrp_dbid.FLEX_1200_RX_MIMO_A, lambda usrp, which : (db_flexrf_1200_rx_mimo_a(usrp, which),))
271 db_instantiator.add(usrp_dbid.FLEX_900_TX_MIMO_A, lambda usrp, which : (db_flexrf_900_tx_mimo_a(usrp, which),))
272 db_instantiator.add(usrp_dbid.FLEX_900_RX_MIMO_A, lambda usrp, which : (db_flexrf_900_rx_mimo_a(usrp, which),))
273 db_instantiator.add(usrp_dbid.FLEX_400_TX_MIMO_A, lambda usrp, which : (db_flexrf_400_tx_mimo_a(usrp, which),))
274 db_instantiator.add(usrp_dbid.FLEX_400_RX_MIMO_A, lambda usrp, which : (db_flexrf_400_rx_mimo_a(usrp, which),))
276 db_instantiator.add(usrp_dbid.FLEX_2400_TX_MIMO_B, lambda usrp, which : (db_flexrf_2400_tx_mimo_b(usrp, which),))
277 db_instantiator.add(usrp_dbid.FLEX_2400_RX_MIMO_B, lambda usrp, which : (db_flexrf_2400_rx_mimo_b(usrp, which),))
278 db_instantiator.add(usrp_dbid.FLEX_1800_TX_MIMO_B, lambda usrp, which : (db_flexrf_1800_tx_mimo_b(usrp, which),))
279 db_instantiator.add(usrp_dbid.FLEX_1800_RX_MIMO_B, lambda usrp, which : (db_flexrf_1800_rx_mimo_b(usrp, which),))
280 db_instantiator.add(usrp_dbid.FLEX_1200_TX_MIMO_B, lambda usrp, which : (db_flexrf_1200_tx_mimo_b(usrp, which),))
281 db_instantiator.add(usrp_dbid.FLEX_1200_RX_MIMO_B, lambda usrp, which : (db_flexrf_1200_rx_mimo_b(usrp, which),))
282 db_instantiator.add(usrp_dbid.FLEX_900_TX_MIMO_B, lambda usrp, which : (db_flexrf_900_tx_mimo_b(usrp, which),))
283 db_instantiator.add(usrp_dbid.FLEX_900_RX_MIMO_B, lambda usrp, which : (db_flexrf_900_rx_mimo_b(usrp, which),))
284 db_instantiator.add(usrp_dbid.FLEX_400_TX_MIMO_B, lambda usrp, which : (db_flexrf_400_tx_mimo_b(usrp, which),))
285 db_instantiator.add(usrp_dbid.FLEX_400_RX_MIMO_B, lambda usrp, which : (db_flexrf_400_rx_mimo_b(usrp, which),))