Merged -r11480:11507, r11508 from nldudok1/tvrx_mimo_merge_with_trunk into trunk...
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 28 Jul 2009 23:01:46 +0000 (23:01 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 28 Jul 2009 23:01:46 +0000 (23:01 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11513 221aa14e-8319-0410-a670-987f0aec2ac5

20 files changed:
gnuradio-examples/python/apps/hf_radio/input.py
gnuradio-examples/python/usrp/usrp_am_mw_rcv.py
gnuradio-examples/python/usrp/usrp_tv_rcv.py
gnuradio-examples/python/usrp/usrp_wfm_rcv.py
gnuradio-examples/python/usrp/usrp_wfm_rcv2_nogui.py
gnuradio-examples/python/usrp/usrp_wfm_rcv_fmdet.py
gnuradio-examples/python/usrp/usrp_wfm_rcv_nogui.py
gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py
gnuradio-examples/python/usrp/usrp_wfm_rcv_sca.py
gnuradio-examples/python/usrp/usrp_wxapt_rcv.py
gnuradio-examples/python/usrp2/usrp2_wfm_qt.py
gnuradio-examples/python/usrp2/usrp2_wfm_rcv.py
gr-usrp/src/usrp_source_base.cc
usrp/host/apps/burn-db-eeprom
usrp/host/include/usrp/Makefile.am
usrp/host/include/usrp/db_tv_rx_mimo.h [new file with mode: 0644]
usrp/host/lib/Makefile.am
usrp/host/lib/db_boards.cc
usrp/host/lib/db_tv_rx_mimo.cc [new file with mode: 0644]
usrp/host/lib/usrp_dbid.dat

index a7c8712878515648f7df9eb0fb71ab49ae79779c..5984d8254ec5656301aff1694e1b2c910e3fc213 100644 (file)
@@ -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
 
index b1135598501429bf9e2b7a16a28e51472a4f1225..60f6c5825b2acef62a1dc5ee070aac1e89e404d2 100755 (executable)
@@ -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):
index 537e339befb95c725bccf2d96c9d560c7236ade9..4e13a83ab51c14cda204d4a53fdbe51c5437667a 100755 (executable)
@@ -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))
 
 
index 098897cfe2345d73bf745b03419ab3b67b3272b0..fba2a12107f2a84b0a89e7d57119ad6e0d2b0ea8 100755 (executable)
@@ -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.")
index 0103982b8d06f4d170bed64efef9cb7f1a21d968..edfbc365713af1396003ac78876d3e25bf79898e 100755 (executable)
@@ -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))
 
 
index 82c521d567ca63ed03a6474aa3e043769ab528d7..30744ee01036663708ee78403a2ba1dc615b6b8b 100755 (executable)
@@ -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):
index 44f86885567cd32ad32806bce25f5578ed5cdf30..217f207c5a9d47902c705ea1f486f9877ce42f52 100755 (executable)
@@ -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))
 
 
index 84992955a20f79eddfa209b805222afe89775c83..0d52ed7ee3c4085eb4337a0f39b631391f2dfa3a 100755 (executable)
@@ -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):
index 75bbc0acd6941feaca546a1f86f3d69cb2f291f8..39547b3ae0cf33ad3de5a53698bbacc8d60f5738 100755 (executable)
@@ -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))
 
 
index 11b8c431f27f697eadf1e0abcbd19fde4f445772..b356702a688e9c6a3caae6389c9d5e70cb8fa93d 100755 (executable)
@@ -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))
 
 
index 0be21ceb988f438d8cb6ee6594cb572e2a0c9073..0c74769211227b193f1a483f93bcfaad4331c762 100755 (executable)
@@ -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.")
index 8ea5baf574f8f84a489e5886db756b1797d3ed70..1783660d6641db49d56b1d42f5d536dc187e4457 100755 (executable)
@@ -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.")
index 85bd9171545a6643c9e75cb253a62483be1891fb..5a5e20f3e3decb142c4c940c0d112712aa3532c4 100644 (file)
@@ -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
   };
index e9ff9f5bc61c6e6f6cbfb657dc28e6f5924a8895..34f4c7015b1580e1a1ba5b81a29503822ba30461 100755 (executable)
@@ -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)),
index 91d439234b045f25c558326cb32959b1b57732c0..d580d8a755c5bc84f551831e1fdff8572644c3c6 100644 (file)
@@ -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 (file)
index 0000000..0a9bb48
--- /dev/null
@@ -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
index 8482485f58533090682703213bc32d79e271e0dc..8e40692a553412f6b71a73dd42608cfc4d3665ba 100644 (file)
@@ -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                    \
index 070b8dd4eda47e6faa1344617d870ef74dd5ff03..d6c6447046fbe9e51fc43297053a7d0d9670ce1b 100644 (file)
@@ -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 (file)
index 0000000..d0dcb52
--- /dev/null
@@ -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
+}
+
index bd7fd7ecbdc287498ef4fbac1916e050b3b23475..6bad9a2987d7a619dfa9a83d115d9c3b00a1a3df 100644 (file)
@@ -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