Hi all,

I'm trying to write an RFNoC application which generates very short bursts
-- 20 samples or less -- which are then upsampled. I'm running into
problems with the radio underflowing which I believe has to do with the DUC.

I can reduce the problem to the following -- create an RFNoC graph (UHD
only, no gr-ettus) with a radio and a DUC. Wire the DUC to the radio and
get a tx_streamer pointing to the DUC. Set the DUC to interp=1024. Start
the streamer via calling the radio's set_tx_streamer().

Now send a packet to the DUC, a short one. Try 20 samples. You'll see a
bunch of underflows come back, and if you set EOB then the radio will stop
transmitting. (Incidentally, why is that? If I set EOB and the transmission
results in an underflow, subsequent bursts won't transmit at all.)

If I pull the radio out of the loop and gather the DUC output on the host,
Wireshark shows I'm receiving a whole slew of length-88 packets. That's 20
samples after the 64-bit header. So, it looks to me like axi_rate_change
inside the DUC isn't resizing the output packets, it's just sending out *lots
of them* -- in this case, 1024 20-sample packets for every input packet.
This doesn't make a whole lot of sense to me as it's inefficient, and I can
fully believe the radio is underflowing while trying to swallow a whole
mess of short packets at full radio rate.

So: is this intended behavior, and is there anything I can do to change
that behavior besides padding my bursts?

Nick
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to