Hi Wade,
The issue can be demonstrated using the stock "replay_samples_from_file"
program (N310 UHD3.15).  Run with "trace" logging if you want even more
detail.  So, it's not really an issue related to multiple ports.  It's an
issue of connecting Replay port 2 (or likely port 3 as well) to an
arbitrary downstream port.
Rob

******* Here is the command that fails

$ replay_samples_from_file --file
Documents/waveforms/mtone_100_0p8_0_le.bin --replay_chan 2 --freq 2450e6
--rate 125e6
Creating the USRP device with: . . .

[INFO] [UHD] linux; GNU C++ version 7.4.0; Boost_106501;
UHD_3.15.0.0-7-g8d228dbe
[INFO] [MPMD] Initializing 1 device(s) in parallel with args:
mgmt_addr=192.168.20.2,type=n3xx,product=n310,serial=319821D,claimed=False,addr=192.168.20.2
[INFO] [MPM.PeriphManager] init() called with device args
`mgmt_addr=192.168.20.2,time_source=internal,product=n310,clock_source=internal'.
[INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
[INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000011312)
[INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000011312)
[INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)
[INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000)
[INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000002)
[INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000002)
[INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [0/FIFO_2] Initializing block control (NOC ID: 0xF1F0000000000000)
[INFO] [0/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000)
Using radio 0, channel 0
Using replay block 0, channel 2
Setting TX Freq: 2450.000000 MHz...
Actual TX Freq: 2450.000000 MHz...

Setting TX Rate: 125.000000 Msps...
Actual TX Rate: 125.000000 Msps...

Connecting 0/Replay_0 ==> 0/Radio_0
Error: LookupError: KeyError: [0/Radio_0] sr_write(): No such port: 2

On Fri, May 1, 2020 at 1:19 PM Wade Fife <wade.f...@ettus.com> wrote:

> See my responses below.
>
> On Fri, May 1, 2020 at 11:08 AM Rob Kossler <rkoss...@nd.edu> wrote:
>
>> Thanks Wade,
>> A few follow up questions:
>>
>>    - Regarding play_halt(), it sounds like this should never used if you
>>    are planning to start playout again (and the replay output feeds the DUC
>>    input).  Is this correct?  Or perhaps there is some way to clear the DUC?
>>
>> My recommendation would be to not call play_halt() if you are planning on
> restarting. It will take a little longer to stop because it has to wait to
> complete the current memory read and generate the final packet with EOB.
> I'd have to look into clearing the DUC, but I think the right thing to do
> is to let the replay block stop normally.
>
>>
>>    - In the meantime, what is the correct way of using the block in my
>>    situation where the replay is connected to the DUC and I want to 
>> repeatedly
>>    start/stop streaming?  Should I just remove the play_halt() call from the
>>    example and just wait for the buffer to flush following the stop streaming
>>    command?
>>
>> Yes, I would just remove the play_halt().
>
>>
>>    - Have you seen my other issue regarding use of the Replay Block on
>>    the N310 such that you can't connect the 4 Replay block ports to the 4 DUC
>>    ports to produce 4 Tx outputs using 3.15?  There is a graph connection /
>>    propagation issue that does not like Replay port 2 (3rd  port) connected 
>> to
>>    DUC_1 port 0.
>>
>> I'm not aware of any issues with respect to multiple ports. Can you
> provide more details on the issue you're seeing?
>
> Rob
>>
>> On Fri, May 1, 2020 at 11:37 AM Wade Fife <wade.f...@ettus.com> wrote:
>>
>>> Hi Rob,
>>>
>>> I wanted to give you a quick update. I was able to reproduce the issue
>>> you found. There were two problems.
>>>
>>> First, the example you shared calls play_halt() for the replay block
>>> each time replay is stopped. This basically stops it as soon as possible,
>>> even if that means it can't send a final packet with EOB. The DUC needs the
>>> EOB to start/stop cleanly or else the timestamps the DUC generates aren't
>>> correct when the next set of data comes through.
>>>
>>> The second problem I found is part of some known issues that are already
>>> fixed in UHD 4.0. I'm going to add these fixes to 3.15 since I know there
>>> was a lot of interest in the Replay block in 3.15. So once these fixes
>>> appear, you should be able to remove the call the play_halt() and the
>>> example will work as expected.
>>>
>>> Thanks,
>>>
>>> Wade
>>>
>>> On Thu, Apr 23, 2020 at 9:34 PM Rob Kossler <rkoss...@nd.edu> wrote:
>>>
>>>>
>>>> Great. I forgot to mention that I was using an n310.
>>>>
>>>> On Thu, Apr 23, 2020 at 10:18 PM Wade Fife <wade.f...@ettus.com> wrote:
>>>>
>>>>> Hi Rob,
>>>>>
>>>>> Thanks for the example! I'd take a look to see if I can reproduce the
>>>>> issue and figure out what's going on. I've been working recently on the
>>>>> Replay block, so I'm very interested to understand what's going on.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Wade
>>>>>
>>>>> On Thu, Apr 23, 2020 at 1:36 PM Rob Kossler via USRP-users <
>>>>> usrp-users@lists.ettus.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>> I am having an issue with UHD 3.15.LTS using the replay block.  When
>>>>>> I play out my previously stored samples the first time, everything works
>>>>>> fine.  But after stopping the first time, if I try to start playing out
>>>>>> again, I get a whole bunch of 'Lates' and no RF output.
>>>>>>
>>>>>> In order to duplicate the problem with an Ettus example, I modified
>>>>>> 'replay_samples_from_file' to add a loop and command prompt so that the
>>>>>> user could hit <enter> to start playing out while still using <ctrl-c> to
>>>>>> stop.  Unfortunately for me, this worked fine and did not show the 
>>>>>> problem.
>>>>>>
>>>>>> Next, I further modified the example to place a DUC block in between
>>>>>> the Replay block and the Radio.  Now it duplicates the issue perfectly
>>>>>> (modified example attached).
>>>>>>
>>>>>> So, perhaps I need to clear the DUC in some way when stopping the
>>>>>> streaming??  But if so, I'm not really sure how to do so.
>>>>>>
>>>>>> Thanks.
>>>>>> Rob
>>>>>>
>>>>> _______________________________________________
>>>>>> USRP-users mailing list
>>>>>> USRP-users@lists.ettus.com
>>>>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>>>>>
>>>>>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to