discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Accessing the ADI registers on B200mini


From: Marcus D. Leech
Subject: Re: [Discuss-gnuradio] Accessing the ADI registers on B200mini
Date: Wed, 21 Mar 2018 14:26:55 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

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 <address@hidden> 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 <address@hidden> 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

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
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio





reply via email to

[Prev in Thread] Current Thread [Next in Thread]