Thank you very much for your help Josh! I'll let you know if we end up
going this way in our design.

On Sun, Sep 30, 2012 at 7:01 PM, Josh Blum <j...@ettus.com> wrote:

>
>
> On 09/29/2012 09:45 AM, Anisha Gorur wrote:
> > Thanks Josh,
> > What I am looking for on the TX side of things is basically the same
> thing
> > I have on the RX side. If I set the subdev spec on the basic RX to "A:A
> > A:B" and then use usrp->set_rx_freq(uhd::tune_request_t(freq)) for each
> > channel, I get two separate rx channels, both with their own IQ pairs. On
> > the TX side I only manage to have one IQ pair, as in I through TX_A and Q
> > through TX_B. We were trying for a 4 channel transmit on 2 USRPs, so that
> > they could all be connected by s MIMO cable. One more question, when you
> > say "too complicated to be worth it", generally, what kind of
> modification
> > would be necessary?
>
> The reason for the complication is there is this whole flow control
> implementation for the TX. Here is my suggestion:
>
> On the host, interleave your MIMO channels. So send 1 TX channel where
> the samples are ch0IQ0, ch1IQ0, ch0IQ1....
>
> In the FPGA, a good way is to modify the top level to have two DUC
> chains. See right here:
>
> http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/fpga/usrp2/top/N2x0/u2plus_core.v#L716
>
> Instantiate two DUC chains. Most of the wires can stay the same. Since
> this is MIMO, you want both DUC chains to have the same settings
> anyways. What you want to do here is to play with the strobe_tx signal
> such that every even strobe is off for DUC0 and every off strobe is off
> for DUC1... thats effectively the deinterleave. Also notice how the
> tx_fe outputs are connected.
>
> reg even;
> always @(posedge dsp_clk)
>    if (~run_tx) even <= 0;
>    else if (strobe_tx) even <= ~even;
>
> duc_chain #(.BASE(SR_TX_DSP), .DSPNO(0)) duc_chain0
>      (.clk(dsp_clk),.rst(dsp_rst), .clr(clear_tx),
>
> .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp),
>       .set_stb_user(set_stb_user), .set_addr_user(set_addr_user),
> .set_data_user(set_data_user),
>       .tx_fe_i(tx_fe_i),.tx_fe_q(),
>       .sample(sample_tx), .run(run_tx), .strobe(strobe_tx & even),
>       .debug() );
>
> duc_chain #(.BASE(SR_TX_DSP), .DSPNO(0)) duc_chain1
>      (.clk(dsp_clk),.rst(dsp_rst), .clr(clear_tx),
>
> .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp),
>       .set_stb_user(set_stb_user), .set_addr_user(set_addr_user),
> .set_data_user(set_data_user),
>       .tx_fe_i(tx_fe_q),.tx_fe_q(),
>       .sample(sample_tx), .run(run_tx), .strobe(strobe_tx & ~even),
>       .debug() );
>
>
> -Josh
>
> > Thanks for your time!
> > -Anisha
> >
> > On Fri, Sep 28, 2012 at 6:36 PM, Josh Blum <j...@ettus.com> wrote:
> >
> >>
> >>
> >> On 09/28/2012 08:49 AM, Anisha Gorur wrote:
> >>> Hello All,
> >>>
> >>> I am using a USRP N210. When i set the subdev spec for my basic RX
> >>> daughterboard as "A:A A:B" I can receive two channels. However, if I
> try
> >> to
> >>> do something similar for the basic TX I get an error like "The user
> >>> specified 2 channels, but there are only 1 tx dsps on mboard 0." I
> assume
> >>> this is because there is only one DUC chain in the N210. Is there a way
> >> to
> >>> modify this so that I can have two DUC chains in the same way that I
> have
> >>> two DDC chains?
> >>> Thanks,
> >>> Anisha
> >>
> >> I think adding two complete DUC chains into N210 would be too
> >> complicated to be worth it.
> >>
> >> Is there something specific that you cant do with the single DUC chain?
> >> As long as the cordic is set to zero, I and Q will remain completely
> >> separate from host samples, all the way to the SMA connectors A and B.
> >>
> >> Otherwise, perhaps you need a different rotation for I vs Q? I think
> >> that would be better accomplished by two different cordics. Then perhaps
> >> a custom DSP in the FPGA is for you:
> >>
> >>
> http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/fpga/README.txt#L29
> >>
> >> I hope that helps.
> >>
> >> -josh
> >>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Discuss-gnuradio mailing list
> >>> Discuss-gnuradio@gnu.org
> >>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >>>
> >>
> >> _______________________________________________
> >> Discuss-gnuradio mailing list
> >> Discuss-gnuradio@gnu.org
> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> >>
> >
> >
> >
>



-- 
Anisha Gorur
Class of 2012
Electrical Engineering
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to