On 03/27/2018 05:47 PM, Firdavs Pulat wrote:
Hi Marcus,
I tried to use the set_agc_mode the same way, but I get an error
during the build process that says: 'class uhd::usrp::multi_usrp' has
no member named 'set_agc_mode.' This API is in the ad9361_ctrl, but it
seems to be looking for it in multi_usrp. How would I include the
ad9361_ctrl?
The AGC_MODE actually is controllable via the property-tree which is an
internal thing. There's no direct mapping of this functionality through the
multi_usrp API.
You want to peruse this part of the UHD manual:
https://files.ettus.com/manual/classuhd_1_1property__tree.html
And note that ad936x_manager.cpp adds subscriptions from the property
tree to actual driver functions.
Also, is there a way to read what all the AD registers are set to so I
know the default values? When I use the getter functions (e.g.,
self.uhd_usrp_source_0.get_gain()) in the python code, it doesn't seem
to do anything.
Thank you
On Wed, Mar 21, 2018 at 1:26 PM, Marcus D. Leech <mle...@ripnet.com
<mailto:mle...@ripnet.com>> wrote:
On 03/21/2018 02:24 PM, Firdavs Pulat wrote:
Hi Marcus,
Thank you for your help and patience!
Following your suggestion, I think I was able to turn the AGC on.
Now, I'm wondering what mode it's running at (e.g., slow, fast,
etc). Looking at the multi_usrp class, I don't see any API's to
set the mode. But in the ad9361_ctrl class, I see an API called
set_agc_mode. Can I use that API the same way I'm using
set_rx_agc? I tried the following command: uhd_usrp_probe
--string /mboards/0/dboards/A/rx_frontends/A/gain/agc/mode/value,
and it returned 'slow', so I assume the default mode of AGC is slow?
I know you said AGC isn't used by most applications, but the
reason why I'm asking all of this is because our application was
using the AD9361 chip and we were enabling AGC then, so I'm
trying to do the same here with Ettus B200 since the RFIC is the
same.
Thanks!
You should be able to use set_agc_mode() in the same way.
On Tue, Mar 20, 2018 at 3:11 PM, Marcus D. Leech
<mle...@ripnet.com <mailto:mle...@ripnet.com>> wrote:
On 03/20/2018 03:27 PM, Firdavs Pulat wrote:
Hi Marcus,
Could you please elaborate on the "extend the Gnu Radio
multi_usrp" part? Maybe you could point me to some examples
one how to set these (I assume others must have played
around with them since it's so essential), or documentation
on how that's done? I'm just not sure where/how in the
usrp_source impl source code I would set them. I have been
looking online, but haven't found anything of use yet.
Thank you!
In the Gnu Radio source code, in gr_uhd/usrp_source_impl.cc
If you look at any of the setter functions for various device
parameters, you'd pattern your call to set_rx_agc() after one
of those. The lowest-impact
way to do it would be to "hijack" the existing gain-setting
function, and have it look for "magic" gain value that then
turns on hardware AGC
via the set_rx_agc() function.
In reality, very few applications use the hardware AGC in the
chip, which is one of the reasons that it hasn't yet been
"mapped" into the GR
API wrapper.
On Thu, Mar 8, 2018 at 10:58 AM, Marcus D. Leech
<mle...@ripnet.com <mailto:mle...@ripnet.com>> wrote:
On 03/08/2018 10:43 AM, Firdavs Pulat wrote:
Hi all,
Are there APIs as part of gnuradio that give access
to the low level ADI registers (to both probe, and
set)? For instance, I'm trying to see if the AGC is
currently turned on on B200mini, and if it's, what
kind of mode it is on (e.g., slow or fast). Looking
at it the USRP manual online, I see functions like
set_agc, set_agc_mode, etc. I just don't have any
idea how/where to actually use/set these. Could
anyone please help me out?
Thanks!
No need to tinker with ADI registers.
The multi_usrp API provides access to a set_rx_agc function:
https://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html#abdab1f6c3775a9071b15c9805f866486
<https://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html#abdab1f6c3775a9071b15c9805f866486>
However, you'd have to extend the Gnu Radio multi_usrp
"wrapper" (in gr-uhd in the main Gnu Radio codebase) to
provide access to set_rx_agc().
Note that in many cases, hardware AGC doesn't really
work the way you'd like it to, since its "world view"
may be very very different than the view
of your particular application.
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
<https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio