diff options
| author | Ashish Chaudhari <ashish@ettus.com> | 2016-03-13 23:16:12 -0700 | 
|---|---|---|
| committer | Ashish Chaudhari <ashish@ettus.com> | 2016-03-21 17:46:23 -0700 | 
| commit | 2ea1f108b9dc88e12c7d565045d7279fabf4fcbd (patch) | |
| tree | 851fbb35f36f3d3ecb376cce95edb880c233372a | |
| parent | 721f2dd9c1b29b219c9e036f856e7f64f495728c (diff) | |
| download | uhd-2ea1f108b9dc88e12c7d565045d7279fabf4fcbd.tar.gz uhd-2ea1f108b9dc88e12c7d565045d7279fabf4fcbd.tar.bz2 uhd-2ea1f108b9dc88e12c7d565045d7279fabf4fcbd.zip  | |
x300: DSP updates to support heterodyne dboards
| -rw-r--r-- | host/lib/usrp/x300/x300_impl.cpp | 2 | ||||
| -rw-r--r-- | host/lib/usrp/x300/x300_io_impl.cpp | 7 | 
2 files changed, 7 insertions, 2 deletions
diff --git a/host/lib/usrp/x300/x300_impl.cpp b/host/lib/usrp/x300/x300_impl.cpp index 4f49f7e73..b9d4e56b1 100644 --- a/host/lib/usrp/x300/x300_impl.cpp +++ b/host/lib/usrp/x300/x300_impl.cpp @@ -989,12 +989,14 @@ void x300_impl::setup_radio(const size_t mb_i, const std::string &slot_name, con      perif.framer = rx_vita_core_3000::make(perif.ctrl, radio::sr_addr(radio::RX_CTRL));      perif.ddc = rx_dsp_core_3000::make(perif.ctrl, radio::sr_addr(radio::RX_DSP));      perif.ddc->set_link_rate(10e9/8); //whatever +    perif.ddc->set_tick_rate(mb.clock->get_master_clock_rate());      //The DRAM FIFO is treated as in internal radio FIFO for flow control purposes      tx_vita_core_3000::fc_monitor_loc fc_loc =          mb.has_dram_buff ? tx_vita_core_3000::FC_PRE_FIFO : tx_vita_core_3000::FC_PRE_RADIO;      perif.deframer = tx_vita_core_3000::make(perif.ctrl, radio::sr_addr(radio::TX_CTRL), fc_loc);      perif.duc = tx_dsp_core_3000::make(perif.ctrl, radio::sr_addr(radio::TX_DSP));      perif.duc->set_link_rate(10e9/8); //whatever +    perif.duc->set_tick_rate(mb.clock->get_master_clock_rate());      ////////////////////////////////////////////////////////////////////      // create time control objects diff --git a/host/lib/usrp/x300/x300_io_impl.cpp b/host/lib/usrp/x300/x300_io_impl.cpp index a9fb5d830..a4621c89f 100644 --- a/host/lib/usrp/x300/x300_io_impl.cpp +++ b/host/lib/usrp/x300/x300_io_impl.cpp @@ -106,12 +106,15 @@ void x300_impl::update_subdev_spec(const std::string &tx_rx, const size_t mb_i,          chan_to_dsp_map[i] = radio_idx;          //extract connection -        const std::string conn = _tree->access<std::string>(mb_root / "dboards" / spec[i].db_name / (tx_rx + "_frontends") / spec[i].sd_name / "connection").get(); +        const fs_path fe_path(mb_root / "dboards" / spec[i].db_name / (tx_rx + "_frontends") / spec[i].sd_name); +        const std::string conn = _tree->access<std::string>(fe_path / "connection").get();          if (tx_rx == "tx") {              //swap condition              _mb[mb_i].radio_perifs[radio_idx].tx_fe->set_mux(conn);          } else { -            _mb[mb_i].radio_perifs[radio_idx].ddc->set_mux(usrp::fe_connection_t(conn)); +            double if_freq = (_tree->exists(fe_path / "if_freq/value")) ? +                _tree->access<double>(fe_path / "if_freq/value").get() : 0.0; +            _mb[mb_i].radio_perifs[radio_idx].ddc->set_mux(usrp::fe_connection_t(conn, if_freq));              _mb[mb_i].radio_perifs[radio_idx].rx_fe->set_mux(false);          }      }  | 
