Hello, colleagues.
I’m developing an application in pure C++ using libusrp to interface to
USRP1 device. The rbf file in use is inband_2rxhb_2tx.rbf from 3.2.2
release.
My test application sends bursts of samples to libusrp specifying write
timestamps. The problem is that I want to start transmitting as quickly
as
possible upon application startup, but actual transmission is delayed
for
about a minute.
Since inband code takes into account the write timestamp in USB packet I
think it might be the case when I start with wrong write timestamp.
Since
USRP clock runs at 64e6 Hz and timestamp is 32 bit integer the clock
should
turn around approximately every 67 seconds. So the maximum time I need
to
wait for transmission if I specify wrong timestamp is about a minute.
I understand that some time is needed to load the rbf to USRP. (Assume
it is
about a few seconds)
I tried to determine the right timestamp by firstly reading a few
samples,
acquiring current timestamp and using it as initial write timestamp
(additionally I added a fixed timestamp to account for delay between
reading
and writing to USRP). This still did not have an effect on actual
transmission start time.
Could you advise on how to start transmitting as quickly as possible?
Thanks.
P.S.: I really need to use rbf with 2RX and 2 TX antennas with inband
signaling.