Hi,
I have been trying to understand how to make an application where I use
two USRPs one acting as TX and the other as RX. Both the USRP have two
RFX2400 daughter boards so I would like to transmit two streams and
receive two streams. My starting point was the
“fm_tx_2_daughterboards.py” which I think I understand.
First question (Tx):
-The tx_mux setting for the top_block in “fm_tx_2_daughterboards.py”
is 0xBA98 which is understandable. If I use
MuxVal=usrp.determine_tx_mux_value(self.u,(1,0))+usrp.determine_tx_mux_v
alue(self.u,(0,0))
I get 0x9898 which I do not understand.
Then I wanted to write a corresponding rx_2 and I started with the mux
from the description of the rx mux, here I don’t know which ADC is on
RxA and RxB so I cannot figure out the appropriate setting.
In case I use
MuxVal=usrp.determine_rx_mux_value(self.u,(0,0))+usrp.determine_rx_mux_v
alue(self.u,(1,0));
I get 0x24, which kind of odd ? If I do
usrp.determine_rx_mux_value(self.u,(0,1))
I get an error (I thought this meant side A Rx2)
I guess I’m all confused and don’t understand the documentation, can
someone please explain the Rx mux and the automatic setting?
Secondly, I tried to add a wfm modulation in the tx top_block (looking
at usrp_wfm_rcv_nogui.py as receiver) and from the error message I got
there is a problem with types but unfortunately for me I don’t see
where and why
:
mod_rate = self.usrp_rate
audio_rate = self.usrp_rate/10
self.gutsa = blks2.wfm_tx (audio_rate, mod_rate)
self.gutsb = blks2.wfm_tx (audio_rate, mod_rate)
sig0 = example_signal_0(audio_rate)
sig1 = example_signal_1(audio_rate)
intl = gr.interleave(gr.sizeof_gr_complex)
self.connect(sig0, self.gutsa, (intl, 0))
self.connect(sig1, self.gutsb, (intl, 1))
:
To me it appears as if the interleaver cannot take complex inputs.
I appreciate any response to my confusion.
/Ulf