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

Reply via email to