Josh,
I applied your changes below for WBX. Yes, a transmitter doesn't see
packets from itself anymore. However, in my experiment, two nodes
using tunnel.py could not talk to each other anymore. So I changed
the code back and two nodes resumed their communication channel.
Your description of the effect of this code change sounds OK, what
problems might not be revealed. For example, how quick does it take
for the mixer switching between TX and RX, a few micro-seconds or at
the scale of milli-seconds?
> diff --git a/host/lib/usrp/dboard/db_rfx.cpp b/host/lib/usrp/dboard/db_rfx.cpp
> index 725b5cc..e12091b 100644
> --- a/host/lib/usrp/dboard/db_rfx.cpp
> +++ b/host/lib/usrp/dboard/db_rfx.cpp
> @@ -198,7 +198,7 @@ rfx_xcvr::rfx_xcvr(
> //setup the rx atr (this does not change with antenna)
> this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX,
> dboard_iface::ATR_REG_IDLE, _power_up | ANT_XX | MIXER_DIS);
> this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX,
> dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_XX | MIXER_DIS);
> - this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX,
> dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_RX2| MIXER_ENB);
> + this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX,
> dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_RX2| MIXER_DIS);
>
> //set some default values
> set_rx_lo_freq((_freq_range.start() + _freq_range.stop())/2.0);
On 04/20/2011 07:01 PM, Josh Blum wrote:
On 04/20/2011 03:24 PM, Feng Andrew Ge wrote:
Josh,
Thanks for the clarification.
Does it mean that, by this hacked code, turning off RX mixer at
transmitting time happens on FPGA? Or does it happen at UHD on the host
side?
In this case the mixer is controlled by FPGA GPIOs that automatically
change state when the streaming mode in the FPGA changes state (RX only,
TX only, full duplex). The effect is instantaneous with some small lag
time for the mixer.
-Josh
Andrew
On 04/20/2011 06:15 PM, Josh Blum wrote:
On 04/20/2011 03:03 PM, Feng Andrew Ge wrote:
Josh,
When you say " In any case, you can shutoff the rx mixer in full duplex
mode with this little change:", is it true that this radio, once started
with the changed code, cannot receive anymore at it runtime?
No: When, and only when, the device is simultaneously transmitting _and_
receiving (full duplex mode); the change will cause the rx mixer to be
turned off. This effectively feeds noise into the ADC.
So if you are always receiving, the mixer will only turn off when you
pass samples into the usrp sink block (which causes a transmission to
occur). Once all samples have been transmitted, the mixer will come
back on.
The change is a "quick hack" and is not the recommended way to do things.
-Josh
|