[USRP-users] X300 STREAM_MODE_NUM_SAMPS_AND_DONE length limitation

Vladimir www2008_2 at mail.ru
Mon Oct 2 11:46:58 EDT 2017


Derek,

Thanks for the reply!

When you say "try modifying that area of the logic", you refer to FPGA code (which I assume is related with rebuilding the firmware image)? Or to host side code where I can simply increase that assertion limit to some more bits (say to 0x7fff ffff) and see if it produces problems receiving samples?

> so if the DDC is used to lower the sample rate then the maximum number of samples which can be received with STREAM_MODE_NUM_SAMPS_AND_DONE is reduced by the decimation factor.

When (under what condition) should I notice the effect of this factor? Because now I use 200 MHz master clock and sample at 100 MSps rate, and I'm able to receive all 0x0fffffff samples which is the assertion limit.

> While the continuous mode is less convenient when you need a very specific number of samples it does not require very much helper code to receive any arbitrary number of samples and flush any excess ones away.

I understand that, still additional efforts are needed here. Eg, are there any example code on how to do this flushing correctly? Because rx_samples_to_file stops streaming just by Ctrl-C handler, without any additional actions. After I issued stop streaming cmd, how should I do such a flush operation? I mean I want to avoid waiting for any timeouts which will prolongate the overall input duration. If it's not possible without waiting for time out, then of which order this time out should be, to make it minimal?

Vladimir

>Понедельник,  2 октября 2017, 16:59 +03:00 от Derek Kozel <derek.kozel at ettus.com>:
>
>That assertion is protecting a register in the Radio Block on the FPGA. You could try modifying that area of the logic which is counting the outputted samples as they are packetized. I do not believe that other areas of the code would be impacted (other than that assertion in the host code of course).
>
>While the continuous mode is less convenient when you need a very specific number of samples it does not require very much helper code to receive any arbitrary number of samples and flush any excess ones away. The overhead of doing so is minimal when only done once every few seconds.
>
>A related note to be aware of is that the num_samps value is actually at the radio clock sample rate not the final sample rate, so if the DDC is used to lower the sample rate then the maximum number of samples which can be received with STREAM_MODE_NUM_SAMPS_AND_DONE is reduced by the decimation factor.
>
>Regards,
>Derek
>
>On Fri, Sep 29, 2017 at 7:53 AM, Vladimir via USRP-users  < usrp-users at lists.ettus.com > wrote:
>>Hello,
>>
>>Trying to save more than 2 sec trace with X300 at Fsamp = 100MHz, I encounter some block length limit of 0x0fffffff = 268.4 MSamps, which means only 2.6 sec of time. A bit surprised to see this in 64-bit environment... The assertion is in module rx_vita_core_3000.cpp:
>>
>>UHD_ASSERT_THROW(stream_cmd.num_samps <= 0x0fffffff);
>>
>>Is this some physical limit, or it can be patched to a larger value? It's kind of inconvenient to solve this through continuous streaming when you need a trace of a certain length...
>>
>>Vladimir
>>
>>
>>
>>_______________________________________________
>>USRP-users mailing list
>>USRP-users at lists.ettus.com
>>http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20171002/67a5bc73/attachment-0002.html>


More information about the USRP-users mailing list