diff options
| author | Nicholas Corgan <nick.corgan@ettus.com> | 2012-12-18 14:33:31 -0800 | 
|---|---|---|
| committer | Nicholas Corgan <nick.corgan@ettus.com> | 2012-12-18 14:33:31 -0800 | 
| commit | 8b4cc038e3ec1234522b53379fea68f8eceb3ace (patch) | |
| tree | 33a5e6cdb23d25fd68f1de9a3b643e9a83598a9c | |
| parent | 8206bf8f121f97f78271ff8bed5f46c77d626101 (diff) | |
| parent | 7a062c3822d247b76ee85da122c442afce27205b (diff) | |
| download | uhd-8b4cc038e3ec1234522b53379fea68f8eceb3ace.tar.gz uhd-8b4cc038e3ec1234522b53379fea68f8eceb3ace.tar.bz2 uhd-8b4cc038e3ec1234522b53379fea68f8eceb3ace.zip | |
Merge branch 'xcvr2450_r21' into maint34
| -rw-r--r-- | host/lib/usrp/dboard/db_xcvr2450.cpp | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/host/lib/usrp/dboard/db_xcvr2450.cpp b/host/lib/usrp/dboard/db_xcvr2450.cpp index 439e1b35e..108a85161 100644 --- a/host/lib/usrp/dboard/db_xcvr2450.cpp +++ b/host/lib/usrp/dboard/db_xcvr2450.cpp @@ -190,6 +190,7 @@ static dboard_base::sptr make_xcvr2450(dboard_base::ctor_args_t args){  UHD_STATIC_BLOCK(reg_xcvr2450_dboard){      //register the factory function for the rx and tx dbids      dboard_manager::register_dboard(0x0061, 0x0060, &make_xcvr2450, "XCVR2450"); +    dboard_manager::register_dboard(0x0061, 0x0059, &make_xcvr2450, "XCVR2450 - r2.1");  }  /*********************************************************************** @@ -370,7 +371,7 @@ double xcvr2450::set_lo_freq_core(double target_freq){      //variables used in the calculation below      double scaler = xcvr2450::is_highband(target_freq)? (4.0/5.0) : (4.0/3.0); -    double ref_freq = this->get_iface()->get_clock_rate(dboard_iface::UNIT_TX); +    double ref_freq = this->get_iface()->get_codec_rate(dboard_iface::UNIT_TX);      int R, intdiv, fracdiv;      //loop through values until we get a match @@ -410,6 +411,16 @@ double xcvr2450::set_lo_freq_core(double target_freq){      //new band select settings and ad9515 divider      this->update_atr(); +    const bool div_ext(this->get_tx_id() == 0x0059); +    if (div_ext) +    { +        this->get_iface()->set_clock_rate(dboard_iface::UNIT_TX, ref_freq/_ad9515div); +    } +    else +    { +        this->get_iface()->set_clock_rate(dboard_iface::UNIT_TX, ref_freq); +    } +      //load new counters into registers      _max2829_regs.int_div_ratio_word = intdiv;      _max2829_regs.frac_div_ratio_lsb = fracdiv & 0x3; | 
