[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Behavior of sample scheduler with hardware RX/TX (USRP)
From: |
Lukas Haase |
Subject: |
Behavior of sample scheduler with hardware RX/TX (USRP) |
Date: |
Wed, 6 May 2020 21:09:49 +0200 |
Hi,
I am discussing this question on usrp-users right now but I think this may
actually be a question regarding the scheduler in gnuradio.
I have the following simple flow graph (USRP in loopback configuration):
+---------+
+---------------+ | |
| Cosine Source |---+-------------------------------------->| QT GUI |
+---------------+ | +-----------+ +-------------+ | Freq |
`--->| USRP Sink | | USRP Source |---->| Sink |
+-----------+ +-------------+ | |
+---------+
Both Source+Sink use the same motherboard which resets its time as follows:
self.uhd_usrp_sink_0.set_time_unknown_pps(uhd.time_spec())
Furthermore, I let streaming start at the same time:
self.uhd_usrp_sink_0.set_start_time(uhd.time_spec(1.0))
self.uhd_usrp_source_0.set_start_time(uhd.time_spec(1.0))
The very puzzling result: I only get a string of L's, most likely from USRP
Sink, indicating that samples arrived too late (later than 1s).
I can "fix" this in two ways:
1.) I break the connection from "Cosine Source" to "QT Freq Sink". Then both
input and output sample streams are independent
2.) I let USRP Sink streaming start *later*:
self.uhd_usrp_sink_0.set_start_time(uhd.time_spec(1.1))
self.uhd_usrp_source_0.set_start_time(uhd.time_spec(1.0))
Fix #1 I cannot use because I need both signals in my algorithm. Fix #2 is
unsatisfying because it feels unreliable and if I add blocks like "Skip Head"
with a sufficiently high number (which I want to use to align my signals within
gnuradio" I receive "U" (Underrun, USRP Sink did not receive enough samples
from gnuradio).
My question is: How does the scheduler work exactly if we call the work
functions of these blocks work1, work2, work3, work4?
In which time order are they called and what makes it to break the above
diagram when USRP Source/Sink start streaming at the same time?
Thanks,
Lukas
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Behavior of sample scheduler with hardware RX/TX (USRP),
Lukas Haase <=