Imported Upstream version 3.0
[debian/gnuradio] / gr-usrp / src / db_flexrf_mimo.py
1 #
2 # Copyright 2005 Free Software Foundation, Inc.
3
4 # This file is part of GNU Radio
5
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 2, or (at your option)
9 # any later version.
10
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.
15
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.
20
21
22 from gnuradio import usrp1
23 import time,math
24
25 import usrp_dbid
26 import db_base
27 import db_instantiator
28 from usrp_fpga_regs import *
29 from db_flexrf import *
30
31 # self._u.fpga_master_clock_freq()
32
33 # MIMO Classes
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)
38         self.R_DIV = 1
39
40     def _refclk_divisor(self):
41         """
42         Return value to stick in REFCLK_DIVISOR register
43         """
44         return 16
45
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)
50         self.R_DIV = 1
51
52     def _refclk_divisor(self):
53         """
54         Return value to stick in REFCLK_DIVISOR register
55         """
56         return 16
57     
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)
61         self.R_DIV = 16
62
63     def _refclk_divisor(self):
64         """
65         Return value to stick in REFCLK_DIVISOR register
66         """
67         return 1
68
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)
72         self.R_DIV = 16
73
74     def _refclk_divisor(self):
75         """
76         Return value to stick in REFCLK_DIVISOR register
77         """
78         return 1
79     
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)
84         self.R_DIV = 1
85
86     def _refclk_divisor(self):
87         """
88         Return value to stick in REFCLK_DIVISOR register
89         """
90         return 16
91
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)
96         self.R_DIV = 1
97
98     def _refclk_divisor(self):
99         """
100         Return value to stick in REFCLK_DIVISOR register
101         """
102         return 16
103     
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)
107         self.R_DIV = 16
108
109     def _refclk_divisor(self):
110         """
111         Return value to stick in REFCLK_DIVISOR register
112         """
113         return 1
114
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)
118         self.R_DIV = 16
119
120     def _refclk_divisor(self):
121         """
122         Return value to stick in REFCLK_DIVISOR register
123         """
124         return 1
125
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)
130         self.R_DIV = 1
131
132     def _refclk_divisor(self):
133         """
134         Return value to stick in REFCLK_DIVISOR register
135         """
136         return 16
137
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)
142         self.R_DIV = 1
143
144     def _refclk_divisor(self):
145         """
146         Return value to stick in REFCLK_DIVISOR register
147         """
148         return 16
149     
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)
153         self.R_DIV = 16
154
155     def _refclk_divisor(self):
156         """
157         Return value to stick in REFCLK_DIVISOR register
158         """
159         return 1
160
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)
164         self.R_DIV = 16
165
166     def _refclk_divisor(self):
167         """
168         Return value to stick in REFCLK_DIVISOR register
169         """
170         return 1
171
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)
176         self.R_DIV = 1
177
178     def _refclk_divisor(self):
179         """
180         Return value to stick in REFCLK_DIVISOR register
181         """
182         return 16
183     
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)
188         self.R_DIV = 1
189
190     def _refclk_divisor(self):
191         """
192         Return value to stick in REFCLK_DIVISOR register
193         """
194         return 16
195     
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)
199         self.R_DIV = 16
200
201     def _refclk_divisor(self):
202         """
203         Return value to stick in REFCLK_DIVISOR register
204         """
205         return 1
206     
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)
210         self.R_DIV = 16
211
212     def _refclk_divisor(self):
213         """
214         Return value to stick in REFCLK_DIVISOR register
215         """
216         return 1
217
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)
222         self.R_DIV = 1
223
224     def _refclk_divisor(self):
225         """
226         Return value to stick in REFCLK_DIVISOR register
227         """
228         return 16
229     
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)
234         self.R_DIV = 1
235
236     def _refclk_divisor(self):
237         """
238         Return value to stick in REFCLK_DIVISOR register
239         """
240         return 16
241     
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)
245         self.R_DIV = 16
246
247     def _refclk_divisor(self):
248         """
249         Return value to stick in REFCLK_DIVISOR register
250         """
251         return 1
252     
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)
256         self.R_DIV = 16
257
258     def _refclk_divisor(self):
259         """
260         Return value to stick in REFCLK_DIVISOR register
261         """
262         return 1
263     
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),))
275
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),))
286