[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] UHD USRP2 full duplex mystery solved
From: |
Marc Epard |
Subject: |
[Discuss-gnuradio] UHD USRP2 full duplex mystery solved |
Date: |
Tue, 14 Sep 2010 15:56:06 -0500 |
I've been attempting to do a full duplex send/recv using UHD on a USRP2 with an
XCVR2450.
The major problem I had was that issue_stream_cmd nearly always resulted in a
runtime error of "usrp2 no control response". It worked fine if I transmitted
w/o receiving or received w/o transmitting. The same code also worked when
using a 2nd USRP2 for receiving.
After a session with Wireshark and the UHD host source, I had my "Well, duh"
moment. When you call send, the data starts streaming to the USRP2 right away
-- even if you specify a timestamp in the future. The USRP2 starts sending back
PAUSE frames almost immediately, which throttles not only additional send data,
but also any commands to the control port.
The solution is to call issue_stream_cmd first (and start the recv thread),
then start the send thread. This was simple enough in my app because I was
specifying start times in the future anyway. It does prevent a method I was
going to use on a WBX where I start the send thread once and scan through
several receive frequencies before stoping the send thread.
Perhaps most of you knew about this gotcha already, but I hope this will help
someone else who encounters the problem. Anyway, it was fun investigating and I
learned a lot more about the UHD host code and protocols
-Marc
- [Discuss-gnuradio] UHD USRP2 full duplex mystery solved,
Marc Epard <=