diff options
20 files changed, 140 insertions, 5 deletions
diff --git a/gnuradio-examples/python/apps/hf_radio/input.py b/gnuradio-examples/python/apps/hf_radio/input.py index a7c871287..5984d8254 100644 --- a/gnuradio-examples/python/apps/hf_radio/input.py +++ b/gnuradio-examples/python/apps/hf_radio/input.py @@ -18,7 +18,12 @@ class input: self.src = usrp.source_c( ) self.subdev = usrp.pick_subdev( self.src, (usrp_dbid.BASIC_RX, - usrp_dbid.TV_RX)) + usrp_dbid.TV_RX, + usrp_dbid.TV_RX_REV_2, + usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO)) print self.subdev diff --git a/gnuradio-examples/python/usrp/usrp_am_mw_rcv.py b/gnuradio-examples/python/usrp/usrp_am_mw_rcv.py index b11355985..60f6c5825 100755 --- a/gnuradio-examples/python/usrp/usrp_am_mw_rcv.py +++ b/gnuradio-examples/python/usrp/usrp_am_mw_rcv.py @@ -44,7 +44,10 @@ def pick_subdevice(u): usrp_dbid.LF_RX, usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, - usrp_dbid.TV_RX_REV_3)) + usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO)) class wfm_rx_block (stdgui2.std_top_block): diff --git a/gnuradio-examples/python/usrp/usrp_tv_rcv.py b/gnuradio-examples/python/usrp/usrp_tv_rcv.py index 537e339be..4e13a83ab 100755 --- a/gnuradio-examples/python/usrp/usrp_tv_rcv.py +++ b/gnuradio-examples/python/usrp/usrp_tv_rcv.py @@ -62,6 +62,9 @@ def pick_subdevice(u): return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv.py index 098897cfe..fba2a1210 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv.py @@ -43,6 +43,9 @@ def pick_subdevice(u): return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) @@ -97,7 +100,11 @@ class wfm_rx_block (stdgui2.std_top_block): if not (dbid == usrp_dbid.BASIC_RX or dbid == usrp_dbid.TV_RX or dbid == usrp_dbid.TV_RX_REV_2 or - dbid == usrp_dbid.TV_RX_REV_3): + dbid == usrp_dbid.TV_RX_REV_3 or + dbid == usrp_dbid.TV_RX_MIMO or + dbid == usrp_dbid.TV_RX_REV_2_MIMO or + dbid == usrp_dbid.TV_RX_REV_3_MIMO +): print "This daughterboard does not cover the required frequency range" print "for this application. Please use a BasicRX or TVRX daughterboard." raw_input("Press ENTER to continue anyway, or Ctrl-C to exit.") diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py index 0103982b8..edfbc3657 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py @@ -51,6 +51,10 @@ def pick_subdevice(u): """ return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, + usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv_fmdet.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv_fmdet.py index 82c521d56..30744ee01 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv_fmdet.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv_fmdet.py @@ -43,6 +43,9 @@ def pick_subdevice(u): return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) class wfm_rx_block (stdgui2.std_top_block): diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv_nogui.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv_nogui.py index 44f868855..217f207c5 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv_nogui.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv_nogui.py @@ -40,6 +40,9 @@ def pick_subdevice(u): return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py index 84992955a..0d52ed7ee 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py @@ -43,6 +43,9 @@ def pick_subdevice(u): return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) class wfm_rx_block (stdgui2.std_top_block): diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv_sca.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv_sca.py index 75bbc0acd..39547b3ae 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv_sca.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv_sca.py @@ -72,6 +72,10 @@ def pick_subdevice(u): """ return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, + usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) diff --git a/gnuradio-examples/python/usrp/usrp_wxapt_rcv.py b/gnuradio-examples/python/usrp/usrp_wxapt_rcv.py index 11b8c431f..b356702a6 100755 --- a/gnuradio-examples/python/usrp/usrp_wxapt_rcv.py +++ b/gnuradio-examples/python/usrp/usrp_wxapt_rcv.py @@ -43,6 +43,9 @@ def pick_subdevice(u): return usrp.pick_subdev(u, (usrp_dbid.TV_RX, usrp_dbid.TV_RX_REV_2, usrp_dbid.TV_RX_REV_3, + usrp_dbid.TV_RX_MIMO, + usrp_dbid.TV_RX_REV_2_MIMO, + usrp_dbid.TV_RX_REV_3_MIMO, usrp_dbid.BASIC_RX)) diff --git a/gnuradio-examples/python/usrp2/usrp2_wfm_qt.py b/gnuradio-examples/python/usrp2/usrp2_wfm_qt.py index 0be21ceb9..0c7476921 100755 --- a/gnuradio-examples/python/usrp2/usrp2_wfm_qt.py +++ b/gnuradio-examples/python/usrp2/usrp2_wfm_qt.py @@ -194,7 +194,10 @@ class wfm_rx_block (gr.top_block): #if not (dbid == 0x0001 or #usrp_dbid.BASIC_RX # dbid == 0x0003 or #usrp_dbid.TV_RX # dbid == 0x000c or #usrp_dbid.TV_RX_REV_2 - # dbid == 0x0040): #usrp_dbid.TV_RX_REV_3 + # dbid == 0x0040 or #usrp_dbid.TV_RX_REV_3 + # dbid == 0x0043 or #usrp_dbid.TV_RX_MIMO + # dbid == 0x0044 or #usrp_dbid.TV_RX_REV_2_MIMO + # dbid == 0x0045 ): #usrp_dbid.TV_RX_REV_3_MIMO # print "This daughterboard does not cover the required frequency range" # print "for this application. Please use a BasicRX or TVRX daughterboard." # raw_input("Press ENTER to continue anyway, or Ctrl-C to exit.") diff --git a/gnuradio-examples/python/usrp2/usrp2_wfm_rcv.py b/gnuradio-examples/python/usrp2/usrp2_wfm_rcv.py index 8ea5baf57..1783660d6 100755 --- a/gnuradio-examples/python/usrp2/usrp2_wfm_rcv.py +++ b/gnuradio-examples/python/usrp2/usrp2_wfm_rcv.py @@ -84,7 +84,10 @@ class wfm_rx_block (stdgui2.std_top_block): if not (dbid == 0x0001 or #usrp_dbid.BASIC_RX dbid == 0x0003 or #usrp_dbid.TV_RX dbid == 0x000c or #usrp_dbid.TV_RX_REV_2 - dbid == 0x0040): #usrp_dbid.TV_RX_REV_3 + dbid == 0x0040 or #usrp_dbid.TV_RX_REV_3 + dbid == 0x0043 or #usrp_dbid.TV_RX_MIMO + dbid == 0x0044 or #usrp_dbid.TV_RX_REV_2_MIMO + dbid == 0x0045 ): #usrp_dbid.TV_RX_REV_3_MIMO print "This daughterboard does not cover the required frequency range" print "for this application. Please use a BasicRX or TVRX daughterboard." raw_input("Press ENTER to continue anyway, or Ctrl-C to exit.") diff --git a/gr-usrp/src/usrp_source_base.cc b/gr-usrp/src/usrp_source_base.cc index 85bd91715..5a5e20f3e 100644 --- a/gr-usrp/src/usrp_source_base.cc +++ b/gr-usrp/src/usrp_source_base.cc @@ -292,6 +292,10 @@ usrp_source_base::pick_rx_subdevice() USRP_DBID_FLEX_2400_RX, USRP_DBID_TV_RX, USRP_DBID_TV_RX_REV_2, + USRP_DBID_TV_RX_REV_3, + USRP_DBID_TV_RX_MIMO, + USRP_DBID_TV_RX_REV_2_MIMO, + USRP_DBID_TV_RX_REV_3_MIMO, USRP_DBID_DBS_RX, USRP_DBID_BASIC_RX }; diff --git a/usrp/host/apps/burn-db-eeprom b/usrp/host/apps/burn-db-eeprom index e9ff9f5bc..34f4c7015 100755 --- a/usrp/host/apps/burn-db-eeprom +++ b/usrp/host/apps/burn-db-eeprom @@ -36,6 +36,9 @@ daughterboards = { 'tvrx' : (None, (TV_RX, 0x0000)), 'tvrx2' : (None, (TV_RX_REV_2, 0x0000)), 'tvrx3' : (None, (TV_RX_REV_3, 0x0000)), + 'tvrx_mimo' : (None, (TV_RX_MIMO, 0x0000)), + 'tvrx2_mimo' : (None, (TV_RX_REV_2_MIMO, 0x0000)), + 'tvrx3_mimo' : (None, (TV_RX_REV_3_MIMO, 0x0000)), 'dtt754' : (None, (DTT754, 0x0000)), 'dtt768' : (None, (DTT768, 0x0000)), 'rfx400' : ((FLEX_400_TX, 0x0000), (FLEX_400_RX, 0x0000)), diff --git a/usrp/host/include/usrp/Makefile.am b/usrp/host/include/usrp/Makefile.am index 91d439234..d580d8a75 100644 --- a/usrp/host/include/usrp/Makefile.am +++ b/usrp/host/include/usrp/Makefile.am @@ -32,6 +32,7 @@ usrpinclude_HEADERS = \ db_flexrf.h \ db_flexrf_mimo.h \ db_tv_rx.h \ + db_tv_rx_mimo.h \ db_xcvr2450.h \ usrp_basic.h \ usrp_bytesex.h \ diff --git a/usrp/host/include/usrp/db_tv_rx_mimo.h b/usrp/host/include/usrp/db_tv_rx_mimo.h new file mode 100644 index 000000000..0a9bb486e --- /dev/null +++ b/usrp/host/include/usrp/db_tv_rx_mimo.h @@ -0,0 +1,34 @@ +/* -*- c++ -*- */ +// +// Copyright 2009 Free Software Foundation, Inc. +// +// This file is part of GNU Radio +// +// GNU Radio is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either asversion 3, or (at your option) +// any later version. +// +// GNU Radio is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with GNU Radio; see the file COPYING. If not, write to +// the Free Software Foundation, Inc., 51 Franklin Street, +// Boston, MA 02110-1301, USA. + +#ifndef DB_TV_RX_MIMO_H +#define DB_TV_RX_MIMO_H + +#include <usrp/db_tv_rx.h> + +class db_tv_rx_mimo : public db_tv_rx +{ + public: + db_tv_rx_mimo(usrp_basic_sptr usrp, int which,double first_IF, double second_IF); + int _refclk_divisor(); +}; + +#endif diff --git a/usrp/host/lib/Makefile.am b/usrp/host/lib/Makefile.am index 8482485f5..8e40692a5 100644 --- a/usrp/host/lib/Makefile.am +++ b/usrp/host/lib/Makefile.am @@ -110,6 +110,7 @@ libusrp_la_common_SOURCES = \ db_base.cc \ db_basic.cc \ db_tv_rx.cc \ + db_tv_rx_mimo.cc \ db_flexrf.cc \ db_flexrf_mimo.cc \ db_dbs_rx.cc \ diff --git a/usrp/host/lib/db_boards.cc b/usrp/host/lib/db_boards.cc index 070b8dd4e..d6c644704 100644 --- a/usrp/host/lib/db_boards.cc +++ b/usrp/host/lib/db_boards.cc @@ -24,6 +24,7 @@ #include <usrp/usrp_dbid.h> #include <usrp/db_basic.h> #include <usrp/db_tv_rx.h> +#include <usrp/db_tv_rx_mimo.h> #include <usrp/db_dbs_rx.h> #include <usrp/db_flexrf.h> #include <usrp/db_flexrf_mimo.h> @@ -72,6 +73,15 @@ instantiate_dbs(int dbid, usrp_basic_sptr usrp, int which_side) case(USRP_DBID_TV_RX_REV_3): db.push_back(db_base_sptr(new db_tv_rx(usrp, which_side, 44e6, 20e6))); break; + case(USRP_DBID_TV_RX_MIMO): + db.push_back(db_base_sptr(new db_tv_rx_mimo(usrp, which_side, 43.75e6, 5.75e6))); + break; + case(USRP_DBID_TV_RX_REV_2_MIMO): + db.push_back(db_base_sptr(new db_tv_rx_mimo(usrp, which_side, 44e6, 20e6))); + break; + case(USRP_DBID_TV_RX_REV_3_MIMO): + db.push_back(db_base_sptr(new db_tv_rx_mimo(usrp, which_side, 44e6, 20e6))); + break; case(USRP_DBID_FLEX_2400_TX): db.push_back(db_base_sptr(new db_flexrf_2400_tx(usrp, which_side))); diff --git a/usrp/host/lib/db_tv_rx_mimo.cc b/usrp/host/lib/db_tv_rx_mimo.cc new file mode 100644 index 000000000..d0dcb52a9 --- /dev/null +++ b/usrp/host/lib/db_tv_rx_mimo.cc @@ -0,0 +1,35 @@ +// +// Copyright 2008 Free Software Foundation, Inc. +// +// This file is part of GNU Radio +// +// GNU Radio is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either asversion 3, or (at your option) +// any later version. +// +// GNU Radio is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with GNU Radio; see the file COPYING. If not, write to +// the Free Software Foundation, Inc., 51 Franklin Street, +// Boston, MA 02110-1301, USA. + +#include <usrp/db_tv_rx_mimo.h> + +db_tv_rx_mimo::db_tv_rx_mimo(usrp_basic_sptr usrp, int which, + double first_IF, double second_IF) + : db_tv_rx(usrp, which,first_IF,second_IF) +{ + _enable_refclk(true);//enable FPGA refclock output on gpio 0 +} + +int +db_tv_rx_mimo::_refclk_divisor() +{ + return 16;// 64/16=> 4 Mhz refclock +} + diff --git a/usrp/host/lib/usrp_dbid.dat b/usrp/host/lib/usrp_dbid.dat index bd7fd7ecb..6bad9a298 100644 --- a/usrp/host/lib/usrp_dbid.dat +++ b/usrp/host/lib/usrp_dbid.dat @@ -71,6 +71,9 @@ "TV Rx Rev 3" 0x0040 "DTT754" 0x0041 "DTT768" 0x0042 +"TV Rx MIMO" 0x0043 +"TV Rx Rev 2 MIMO" 0x0044 +"TV Rx Rev 3 MIMO" 0x0045 "WBX LO TX" 0x0050 "WBX LO RX" 0x0051 |