From 46aadbb2e9ca5aaccec4698824c2016772f3e1f7 Mon Sep 17 00:00:00 2001 From: jcorgan Date: Tue, 28 Jul 2009 23:01:46 +0000 Subject: [PATCH] Merged -r11480:11507, r11508 from nldudok1/tvrx_mimo_merge_with_trunk into trunk. This branch was created with a corrupted merge tracking database, so manual merge and remove of merge info properties was needed. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11513 221aa14e-8319-0410-a670-987f0aec2ac5 --- .../python/apps/hf_radio/input.py | 7 +++- .../python/usrp/usrp_am_mw_rcv.py | 5 ++- gnuradio-examples/python/usrp/usrp_tv_rcv.py | 3 ++ gnuradio-examples/python/usrp/usrp_wfm_rcv.py | 9 ++++- .../python/usrp/usrp_wfm_rcv2_nogui.py | 4 +++ .../python/usrp/usrp_wfm_rcv_fmdet.py | 3 ++ .../python/usrp/usrp_wfm_rcv_nogui.py | 3 ++ .../python/usrp/usrp_wfm_rcv_pll.py | 3 ++ .../python/usrp/usrp_wfm_rcv_sca.py | 4 +++ .../python/usrp/usrp_wxapt_rcv.py | 3 ++ .../python/usrp2/usrp2_wfm_qt.py | 5 ++- .../python/usrp2/usrp2_wfm_rcv.py | 5 ++- gr-usrp/src/usrp_source_base.cc | 4 +++ usrp/host/apps/burn-db-eeprom | 3 ++ usrp/host/include/usrp/Makefile.am | 1 + usrp/host/include/usrp/db_tv_rx_mimo.h | 34 ++++++++++++++++++ usrp/host/lib/Makefile.am | 1 + usrp/host/lib/db_boards.cc | 10 ++++++ usrp/host/lib/db_tv_rx_mimo.cc | 35 +++++++++++++++++++ usrp/host/lib/usrp_dbid.dat | 3 ++ 20 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 usrp/host/include/usrp/db_tv_rx_mimo.h create mode 100644 usrp/host/lib/db_tv_rx_mimo.cc diff --git a/gnuradio-examples/python/apps/hf_radio/input.py b/gnuradio-examples/python/apps/hf_radio/input.py index a7c87128..5984d825 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 b1135598..60f6c582 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 537e339b..4e13a83a 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 098897cf..fba2a121 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 0103982b..edfbc365 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 82c521d5..30744ee0 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 44f86885..217f207c 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 84992955..0d52ed7e 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 75bbc0ac..39547b3a 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 11b8c431..b356702a 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 0be21ceb..0c747692 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 8ea5baf5..1783660d 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 85bd9171..5a5e20f3 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 e9ff9f5b..34f4c701 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 91d43923..d580d8a7 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 00000000..0a9bb486 --- /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 + +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 8482485f..8e40692a 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 070b8dd4..d6c64470 100644 --- a/usrp/host/lib/db_boards.cc +++ b/usrp/host/lib/db_boards.cc @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -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 00000000..d0dcb52a --- /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 + +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 bd7fd7ec..6bad9a29 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 -- 2.30.2