aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/usrp1/dsp_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/usrp/usrp1/dsp_impl.cpp')
-rw-r--r--host/lib/usrp/usrp1/dsp_impl.cpp55
1 files changed, 29 insertions, 26 deletions
diff --git a/host/lib/usrp/usrp1/dsp_impl.cpp b/host/lib/usrp/usrp1/dsp_impl.cpp
index e9900131f..1a8993a01 100644
--- a/host/lib/usrp/usrp1/dsp_impl.cpp
+++ b/host/lib/usrp/usrp1/dsp_impl.cpp
@@ -29,19 +29,19 @@ using namespace uhd::usrp;
/***********************************************************************
* RX DDC Initialization
**********************************************************************/
-void usrp1_impl::rx_ddc_init(void)
+void usrp1_impl::rx_dsp_init(void)
{
- _rx_ddc_proxy = wax_obj_proxy::make(
- boost::bind(&usrp1_impl::rx_ddc_get, this, _1, _2),
- boost::bind(&usrp1_impl::rx_ddc_set, this, _1, _2));
+ _rx_dsp_proxy = wax_obj_proxy::make(
+ boost::bind(&usrp1_impl::rx_dsp_get, this, _1, _2),
+ boost::bind(&usrp1_impl::rx_dsp_set, this, _1, _2));
- rx_ddc_set(DSP_PROP_HOST_RATE, double(64e6/10));
+ rx_dsp_set(DSP_PROP_HOST_RATE, double(64e6/10)); //FIXME magic number
}
/***********************************************************************
* RX DDC Get
**********************************************************************/
-void usrp1_impl::rx_ddc_get(const wax::obj &key, wax::obj &val)
+void usrp1_impl::rx_dsp_get(const wax::obj &key, wax::obj &val)
{
switch(key.as<dsp_prop_t>()){
case DSP_PROP_NAME:
@@ -53,7 +53,7 @@ void usrp1_impl::rx_ddc_get(const wax::obj &key, wax::obj &val)
return;
case DSP_PROP_FREQ_SHIFT:
- val = _ddc_freq;
+ val = _rx_dsp_freq;
return;
case DSP_PROP_CODEC_RATE:
@@ -61,7 +61,7 @@ void usrp1_impl::rx_ddc_get(const wax::obj &key, wax::obj &val)
return;
case DSP_PROP_HOST_RATE:
- val = _clock_ctrl->get_master_clock_freq()/_ddc_decim;
+ val = _clock_ctrl->get_master_clock_freq()/_rx_dsp_decim;
return;
default: UHD_THROW_PROP_GET_ERROR();
@@ -90,13 +90,13 @@ unsigned int compute_freq_word(double master, double target)
return (unsigned int) v;
}
-void usrp1_impl::rx_ddc_set(const wax::obj &key, const wax::obj &val)
+void usrp1_impl::rx_dsp_set(const wax::obj &key, const wax::obj &val)
{
switch(key.as<dsp_prop_t>()) {
case DSP_PROP_FREQ_SHIFT: {
double new_freq = val.as<double>();
- _iface->poke32(FR_RX_FREQ_0, compute_freq_word(64e6, new_freq));
- _ddc_freq = new_freq;
+ _iface->poke32(FR_RX_FREQ_0, compute_freq_word(64e6, new_freq)); //FIXME magic rate
+ _tx_dsp_freq = new_freq;
return;
}
case DSP_PROP_HOST_RATE: {
@@ -110,8 +110,8 @@ void usrp1_impl::rx_ddc_set(const wax::obj &key, const wax::obj &val)
return;
}
- _ddc_decim = rate;
- _iface->poke32(FR_DECIM_RATE, _ddc_decim/2 - 1);
+ _rx_dsp_decim = rate;
+ _iface->poke32(FR_DECIM_RATE, _rx_dsp_decim/2 - 1);
}
return;
@@ -123,20 +123,20 @@ void usrp1_impl::rx_ddc_set(const wax::obj &key, const wax::obj &val)
/***********************************************************************
* TX DUC Initialization
**********************************************************************/
-void usrp1_impl::tx_duc_init(void)
+void usrp1_impl::tx_dsp_init(void)
{
- _tx_duc_proxy = wax_obj_proxy::make(
- boost::bind(&usrp1_impl::tx_duc_get, this, _1, _2),
- boost::bind(&usrp1_impl::tx_duc_set, this, _1, _2));
+ _tx_dsp_proxy = wax_obj_proxy::make(
+ boost::bind(&usrp1_impl::tx_dsp_get, this, _1, _2),
+ boost::bind(&usrp1_impl::tx_dsp_set, this, _1, _2));
//initial config and update
- tx_duc_set(DSP_PROP_HOST_RATE, double(64e6/10));
+ tx_dsp_set(DSP_PROP_HOST_RATE, double(64e6/10)); //FIXME magic number
}
/***********************************************************************
* TX DUC Get
**********************************************************************/
-void usrp1_impl::tx_duc_get(const wax::obj &key, wax::obj &val)
+void usrp1_impl::tx_dsp_get(const wax::obj &key, wax::obj &val)
{
switch(key.as<dsp_prop_t>()) {
case DSP_PROP_NAME:
@@ -148,7 +148,7 @@ void usrp1_impl::tx_duc_get(const wax::obj &key, wax::obj &val)
return;
case DSP_PROP_FREQ_SHIFT:
- val = _duc_freq;
+ val = _tx_dsp_freq;
return;
case DSP_PROP_CODEC_RATE:
@@ -156,7 +156,7 @@ void usrp1_impl::tx_duc_get(const wax::obj &key, wax::obj &val)
return;
case DSP_PROP_HOST_RATE:
- val = _clock_ctrl->get_master_clock_freq() * 2 / _duc_interp;
+ val = _clock_ctrl->get_master_clock_freq() * 2 / _tx_dsp_interp;
return;
default: UHD_THROW_PROP_GET_ERROR();
@@ -167,16 +167,19 @@ void usrp1_impl::tx_duc_get(const wax::obj &key, wax::obj &val)
/***********************************************************************
* TX DUC Set
**********************************************************************/
-void usrp1_impl::tx_duc_set(const wax::obj &key, const wax::obj &val)
+void usrp1_impl::tx_dsp_set(const wax::obj &key, const wax::obj &val)
{
switch(key.as<dsp_prop_t>()) {
case DSP_PROP_FREQ_SHIFT: {
double new_freq = val.as<double>();
- _codec_ctrl->set_duc_freq(new_freq);
- _duc_freq = new_freq;
+ _codec_ctrls[DBOARD_SLOT_A]->set_duc_freq(new_freq);
+ _tx_dsp_freq = new_freq;
return;
}
+
+ //TODO freq prop secondary: DBOARD_SLOT_B codec...
+
case DSP_PROP_HOST_RATE: {
unsigned int rate =
_clock_ctrl->get_master_clock_freq() * 2 / val.as<double>();
@@ -187,8 +190,8 @@ void usrp1_impl::tx_duc_set(const wax::obj &key, const wax::obj &val)
return;
}
- _duc_interp = rate;
- _iface->poke32(FR_INTERP_RATE, _duc_interp / 4 - 1);
+ _tx_dsp_interp = rate;
+ _iface->poke32(FR_INTERP_RATE, _tx_dsp_interp / 4 - 1);
return;
}
default: UHD_THROW_PROP_SET_ERROR();