Hi Julian,

Sorry for the late reply and thanks for the answer.

I have been debugging the configuration printing the entries of "set_agc"
that I have found on cpp/py files in the uhd driver and ettus repositories,
and I can confirm that the code is not getting to the ad9361_device.cpp as
I thought in the beginning.

If I go through the code from my python script to the ad9361_device.cpp
configuration file I see the following:

   - The python scripts calls for ettus.rfnoc_rx_radio.set_agc method,
   which is found in ettus repository (for usrp_source is on gnuradio/uhd lib)


   - The rfnoc_rx_radio class is defined in
   gr-ettus/lib/rfnoc_rx_radio_impl.h, where there is also a pointer to the
   radio_control class defined:


>>
>>
>> *class rfnoc_rx_radio_impl : public rfnoc_rx_radio{public:
>> rfnoc_rx_radio_impl(::uhd::*
>>
>>
>> *rfnoc::noc_block_base::sptr block_ref);    ~rfnoc_rx_radio_impl();
>> /*** API ***************************************************************
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ******/    double set_rate(const double rate);    void set_antenna(const
>> std::string& antenna, const size_t chan);    double set_frequency(const
>> double frequency, const size_t chan);    void set_tune_args(const
>> ::uhd::device_addr_t& args, const size_t chan);    double set_gain(const
>> double gain, const size_t chan);    double set_gain(const double gain,
>> const std::string& name, const size_t chan);    void set_agc(const bool
>> enable, const size_t chan);    void set_gain_profile(const std::string&
>> profile, const size_t chan);    double set_bandwidth(const double
>> bandwidth, const size_t chan);    void    set_lo_source(const std::string&
>> source, const std::string& name, const size_t chan);    void
>> set_lo_export_enabled(const bool enabled, const std::string& name, const
>> size_t chan);    double set_lo_freq(const double freq, const std::string&
>> name, const size_t chan);    void set_dc_offset(const bool enable, const
>> size_t chan);    void set_dc_offset(const std::complex<double>& offset,
>> const size_t chan);    void set_iq_balance(const bool enable, const size_t
>> chan);    void set_iq_balance(const std::complex<double>& correction, const
>> size_t chan);private:    ::uhd::rfnoc::radio_control::*
>> *sptr d_radio_ref;};*
>>
>
   - In gr-ettus/lib/rfnoc_rx_radio_impl.cpp when set_agc command is
   received, it returns a call to the pointer I mention before, and therefore,
   to the radio_control class:

*void rfnoc_rx_radio_impl::set_agc(*
>>
>> *const bool enable, const size_t chan){    return
>> d_radio_ref->set_rx_agc(*
>> *enable, chan);}*
>>
>
   - The radio_control class is found in the UHD driver repository in
   uhd/host/include/uhd/rfnoc/radio_control.hpp which is virtually implemented
   as radio_control_impl class in e3xx_radio_control_impl.cpp
   (host/lib/usrp/board/e3xx)
   - This file calls to the ad9361_ctrl class which is implemented in
   e3xx_ad9361_iface.cpp (host/lib/usrp/board/e3xx)
   - At this point, there is a call for the rpc_client where I get kind of
   lost about how to change the registers this way:



>>
>>
>> *void set_agc(const std::string& which, bool
>> enable){_rpcc->request_with_token<void>(this->_rpc_prefix + "set_agc",
>> which, enable);}*
>>
>


To be brief:

   - When debugging I can't see that my code gets to the only configuration
   file I found which is the ad9361_device.cpp
   - The set_agc command seems to be manage through the rpc_client (I think
   this is related to the module peripheral manager which is a "layer of
   control that UHD uses to access, configure and control the hardware",
   https://files.ettus.com/manual/page_mpm.html)
   - Inside the code, in multi_usrp files there is a comment that the
   specific configuration of the AGC is set in the property_tree but I don't
   know how to write the configuration registers of the agc through the
   property_tree.


So my questions here are:

   1. How can I set the configuration registers of the AGC, through the MPM
   or the property tree?
   2. Are there examples on how I can set these registers through the MPM
   or the property_tree?


Kind Regards,

Maria

El mié, 24 mar 2021 a las 11:20, Julian Arnold (<[email protected]>)
escribió:

> Maria,
>
> that sounds about right!
> However, to make absolutely sure GNU Radio picks up the modified libuhd
> you could add a print statement somewhere in your UHD code.
> You could also compare your UHD install prefix to the path gr-uhd
> uses for linking libuhd.
>
> Below is the patch I used for my tests:
>
> diff --git a/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp
> b/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp
> index 9e088871d..0e5bc86c5 100644
> --- a/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp
> +++ b/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp
> @@ -1089,7 +1089,7 @@ void ad9361_device_t::_setup_gain_control(bool agc)
>           _io_iface->poke8(0x0FD, 0x4C); // Max Full/LMT Gain Table Index
>           _io_iface->poke8(0x0FE, 0x44); // Decr Step Size, Peak
> Overload Time
>           _io_iface->poke8(0x100, 0x6F); // Max Digital Gain
> -        _io_iface->poke8(0x101, 0x0A); // Max Digital Gain
> +        _io_iface->poke8(0x101, 0x02); // Max Digital Gain
>           _io_iface->poke8(0x103, 0x08); // Max Digital Gain
>           _io_iface->poke8(0x104, 0x2F); // ADC Small Overload Threshold
>           _io_iface->poke8(0x105, 0x3A); // ADC Large Overload Threshold
> @@ -1098,14 +1098,14 @@ void ad9361_device_t::_setup_gain_control(bool agc)
>           _io_iface->poke8(0x108, 0x31);
>           _io_iface->poke8(0x111, 0x0A);
>           _io_iface->poke8(0x11A, 0x1C);
> -        _io_iface->poke8(0x120, 0x0C);
> +        _io_iface->poke8(0x120, 0x04);
>           _io_iface->poke8(0x121, 0x44);
>           _io_iface->poke8(0x122, 0x44);
>           _io_iface->poke8(0x123, 0x11);
>           _io_iface->poke8(0x124, 0xF5);
>           _io_iface->poke8(0x125, 0x3B);
>           _io_iface->poke8(0x128, 0x03);
> -        _io_iface->poke8(0x129, 0x56);
> +        _io_iface->poke8(0x129, 0x11);
>           _io_iface->poke8(0x12A, 0x22);
>       } else {
>           _io_iface->poke8(0x0FA, 0xE0); // Gain Control Mode Select
>
>
> Cheers,
> Julian
>
> On 3/24/21 9:59 AM, Maria Muñoz wrote:
> > Hi Julian,
> >
> > I have the chance to test the AGC with a B210 and perform the same graph
> > as you send me but I am unable to see what you saw so I think I'm
> > missing something.
> > I also have UHD 4.0 and GNURadio 3.8 (installed by source).
> >
> > The steps I take are these:
> >
> >   * First, I change the ad9361_device.cpp that is in uhd repository in
> >     //uhd/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp,
> >     registers 0x101, 0x120, 0x129, 0x123 and 0x12A./
> >   * Then, I do "make" and "make install" to compile the changes in
> >     build-host folder.
> >   * After that, I generate the python script for the GRC flow graph and
> >     move the "set_agc" command after the "set_rate" one.
> >   * Finally, I run the python.
> >
> > I can't see my waveform between the values I set. Is there something
> > wrong with those steps? Did you do anything else?
> >
> > King Regards,
> >
> > Maria
> >
> > /
> > /
> >
> > El mar, 23 mar 2021 a las 9:23, Maria Muñoz (<[email protected]
> > <mailto:[email protected]>>) escribió:
> >
> >     Hi Julian,
> >
> >     Thanks for the checking!
> >
> >     I have also checked my graph and samp_rate is setting first, so I'll
> >     try to test it with a sine waveform as you suggested and see if that
> >     works. If not, maybe is an RFNoC/gr-ettus problem. I'll put an issue
> >     in the gr-ettus repository in that case.
> >
> >     Thanks again for your help.
> >
> >     Kind Regards,
> >
> >     Maria.
> >
> >     El mar, 23 mar 2021 a las 0:36, Julian Arnold
> >     (<[email protected] <mailto:[email protected]>>) escribió:
> >
> >         Maria,
> >
> >         I couldn't resist trying this myself, as your modifications
> seemed
> >         reasonable.
> >
> >         So I did set up a simple test with a b210 connected to my siggen
> >         feeding
> >         it with a tone of varying power at 2.4102GHz.
> >
> >         For the default UHD AGC settings I could confirm that the signal
> >         was
> >         kept between -10 dBFS and -12 dBFS (20 * log10(|x|) over a
> >         pretty wide
> >         input power range.
> >         This was using GR 3.8 and UHD 4.0.
> >
> >         However, I had to modify the generate flow-graph slightly, as
> >         the AGC
> >         was enables before the sample-rate was set (maybe double check
> >         that, too).
> >
> >         Afterwards, I used your settings (I did change reg 0x129 to 0x11
> >         (1dB
> >         +-), though).
> >         Also those settings worked as expected and the signal was nicely
> >         kept
> >         between -2 dBFS and -4 dBFS.
> >
> >         Attached is a picture of the flow-graph I used for testing.
> >         Maybe you
> >         could also start by testing with a sine wave to verifying that
> your
> >         values get applied properly.
> >
> >         Cheers,
> >         Julian
> >
> >         On 3/22/21 6:21 PM, Maria Muñoz wrote:
> >          > Hi Julian,
> >          >
> >          > Sure.
> >          >
> >          > I am receiving a QPSK through the radio and plotting it in a
> >         QT graph
> >          > (see grc.png)
> >          > If I have AGC disable, I get what is shown in
> >         "test_without_agc.png",
> >          > then if I enable it, I see what is on "test_with_agc.png"
> where
> >          > "Quadrature" is always center more or less in 0.25 which
> >         might fit with
> >          > the values given by default (inner high threshold = -12dBFS,
> >         inner low
> >          > threshold = -10 dBFS).
> >          >
> >          > If I change the ad9361_device.cpp (attached) from line 1085,
> >         by changing
> >          > registers 0x101, 0x120 and 0x129 with values 0x02, 0x04 and
> 0x16
> >          > respectively to move between -2dbFS and -4 dBFS,  I see the
> same
> >          > waveform that I have in "test_with_agc.png" (I expect it to
> >         be around 0.7)
> >          >
> >          > Kind regards,
> >          >
> >          > Maria
> >          >
> >          > El lun, 22 mar 2021 a las 17:45, Julian Arnold
> >         (<[email protected] <mailto:[email protected]>
> >          > <mailto:[email protected]
> >         <mailto:[email protected]>>>) escribió:
> >          >
> >          >     Maria,
> >          >
> >          >     would you mind sharing your patch? Otherwise, it’s hard
> >         to tell what
> >          >     exactly is going on.
> >          >
> >          >     Cheers,
> >          >     Julian
> >          >
> >          >>     Am 22.03.2021 um 16:24 schrieb Maria Muñoz
> >         <[email protected] <mailto:[email protected]>
> >          >>     <mailto:[email protected] <mailto:[email protected]
> >>>:
> >          >>
> >          >>     
> >          >>     Hi Julian,
> >          >>
> >          >>     I re-open this topic to ask a question about the
> >         configuration of
> >          >>     the ad9361 registers in GNUradio/RFNoC
> >          >>
> >          >>     As I understand, when AGC is enabled in slow mode, there
> >         are 4
> >          >>     configurable thresholds (inner low, inner high,
> >         outer low, and
> >          >>     outer high) and also 4 configurable steps to reach the
> zone
> >          >>     between the inner thresholds.
> >          >>
> >          >>     I have found the configuration of these registers
> >          >>
>  in /uhd/host/lib/usrp/common/ad9361_driver/ad9361_device.cpp
> >          >>     and changed their values there. Then, I have recompiled
> >         uhd (make
> >          >>     & make install) but, when I re-run my graph I see no
> >         change in my
> >          >>     waveform (it seem to stay in the same limits as the
> default
> >          >>     configuration).
> >          >>
> >          >>     Am I missing any other step that I have to done to
> >         configure these
> >          >>     parameters?
> >          >>
> >          >>     Kind Regards,
> >          >>
> >          >>     Maria
> >          >>
> >          >>     El vie, 12 mar 2021 a las 10:04, Maria Muñoz
> >         (<[email protected] <mailto:[email protected]>
> >          >>     <mailto:[email protected]
> >         <mailto:[email protected]>>>) escribió:
> >          >>
> >          >>         Ok Julian, I will check the tree node and try to
> >         modify the
> >          >>         properties. Thanks again for the help!
> >          >>
> >          >>         Kind Regards,
> >          >>         Maria
> >          >>
> >          >>         El jue, 11 mar 2021 a las 18:26, Julian Arnold
> >          >>         (<[email protected]
> >         <mailto:[email protected]> <mailto:[email protected]
> >         <mailto:[email protected]>>>)
> >          >>         escribió:
> >          >>
> >          >>             Maria,
> >          >>
> >          >>             >>
> >         /self.ettus_rfnoc_rx_radio_0.set_rx_agc(False, 0)/
> >          >>             >>
> >          >>             >> but I have received the following errorThat's
> >         why I
> >          >>             gave the reference ([1]) showing the correct
> >         syntax ;)
> >          >>             Anyways, glad it worked out for you!
> >          >>             You might consider filing a bug issue against
> >         gr-ettus on
> >          >>             github.
> >          >>
> >          >>             >> By the way, I have read that there are
> >         several modes
> >          >>             for AGC
> >          >>             >> (fast,slow,hybrid..) I was wondering which
> >         type is
> >          >>             implemented by
> >          >>             >> default and if it is possible to change AGC
> >         mode in the
> >          >>             flowgraph.
> >          >>             Those modes were mainly dictated by the AD9361.
> >         Default
> >          >>             should be
> >          >>             "slow". The "hybrid" mode is not implemented as
> >         far as I know.
> >          >>             Which mode you want ("slow" / "fast") depends on
> the
> >          >>             signal you want to
> >          >>             receive. For burst-mode digital signals you
> >         might want to
> >          >>             switch to the
> >          >>             "fast" mode.
> >          >>             However, I think this is only possible by
> >         directly writing
> >          >>             to the corresponding property-tree node. Again,
> >         I'm not
> >          >>             sure about
> >          >>             UHD-4.0/gr-ettus though.
> >          >>
> >          >>             Cheers,
> >          >>             Julian
> >          >>
> >          >>
> >          >>             On 3/11/21 5:26 PM, Maria Muñoz wrote:
> >          >>             > Hi Julian,
> >          >>             >
> >          >>             > I have initially changed the python generated
> >         for my
> >          >>             flowgraph with this
> >          >>             > line:
> >          >>             >
> >          >>             > /self.ettus_rfnoc_rx_radio_0.set_rx_agc(False,
> 0)/
> >          >>             >
> >          >>             > but I have received the following error:
> >          >>             >
> >          >>             > T/raceback (most recent call last):
> >          >>             >    File "constellation_soft_decoder.py", line
> >         301, in
> >          >>             <module>
> >          >>             >      main()
> >          >>             >    File "constellation_soft_decoder.py", line
> >         277, in main
> >          >>             >      tb = top_block_cls()
> >          >>             >    File "constellation_soft_decoder.py", line
> >         166, in
> >          >>             __init__
> >          >>             >
> >         self.ettus_rfnoc_rx_radio_0.set_rx_agc(True, 0)
> >          >>             > AttributeError: 'rfnoc_rx_radio_sptr' object
> >         has no
> >          >>             attribute 'set_rx_agc'/
> >          >>             >
> >          >>             > But rfnoc_radio_impl.cc defines it:
> >          >>             >
> >          >>             > /void rfnoc_rx_radio_impl::set_agc(const bool
> >         enable,
> >          >>             const size_t chan)
> >          >>             > {
> >          >>             >      return d_radio_ref->set_rx_agc(enable,
> chan);
> >          >>             > }/
> >          >>             >
> >          >>             > Searching the rfnoc_rx_radio_sptr with grep
> >         takes me to
> >          >>             "swig" files. I
> >          >>             > have looked at ettus_swig.py and seen that the
> >         command
> >          >>             name is set_agc
> >          >>             > instead of set_rx_agc:
> >          >>             >
> >          >>             > /def set_agc(self, enable: "bool const", chan:
> >         "size_t
> >          >>             const") -> "void":
> >          >>             >          r"""
> >          >>             >          set_agc(rfnoc_rx_radio self, bool
> >         const enable,
> >          >>             size_t const chan)
> >          >>             >          Enable/disable the AGC for this RX
> >         radio (if
> >          >>             available)
> >          >>             >          """
> >          >>             >          return
> >         _ettus_swig.rfnoc_rx_radio_set_agc(self,
> >          >>             enable, chan)/
> >          >>             > /
> >          >>             > /
> >          >>             > Changing this in the flowgraph.py seems to
> >         work!! Thanks
> >          >>             for the help on
> >          >>             > this! I put this information here just in case
> >         someone
> >          >>             is stuck in the
> >          >>             > same point.
> >          >>             >
> >          >>             > By the way, I have read that there are several
> >         modes for
> >          >>             AGC
> >          >>             > (fast,slow,hybrid..) I was wondering which
> type is
> >          >>             implemented by
> >          >>             > default and if it is possible to change AGC
> >         mode in the
> >          >>             flowgraph.
> >          >>             >
> >          >>             > Kind Regards,
> >          >>             >
> >          >>             > Maria
> >          >>             >
> >          >>             >
> >          >>             > El mié, 10 mar 2021 a las 12:03, Maria Muñoz
> >          >>             (<[email protected] <mailto:[email protected]>
> >         <mailto:[email protected] <mailto:[email protected]>>
> >          >>             > <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>>>) escribió:
> >          >>             >
> >          >>             >     Hi Jules,
> >          >>             >
> >          >>             >     Thank you, I will try it and let you know
> >         as soon as
> >          >>             possible.
> >          >>             >
> >          >>             >     By the way, I have checked the python
> >          >>             generated using the UHD USRP
> >          >>             >     SOURCE block (instead of the RFNoC radio
> >         block) with
> >          >>             AGC active and
> >          >>             >     it generates the set of AGC fine. So, as
> >         you said,
> >          >>             it is fixed in
> >          >>             >     gr-uhd but it might still be a bug in
> >         gr-ettus.
> >          >>             >
> >          >>             >     Thanks again for the help!
> >          >>             >
> >          >>             >     Kind Regards,
> >          >>             >
> >          >>             >     Maria
> >          >>             >
> >          >>             >     El mié, 10 mar 2021 a las 11:25, Julian
> Arnold
> >          >>             >     (<[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>>>) escribió:
> >          >>             >
> >          >>             >         Maria,
> >          >>             >
> >          >>             >          >> So, if I understand correctly, I
> >         have to put
> >          >>             there also
> >          >>             >         something like
> >          >>             >          >>
> >          >>
> >           "self.ettus_rfnoc_rx_radio_0.set_rx_agc(enable,0)" isn't it?
> >          >>             >
> >          >>             >         Exactly! Take a look at [1] for the
> >         correct syntax.
> >          >>             >
> >          >>             >         [1]
> >          >>             >
> >          >>
> >
> https://github.com/EttusResearch/gr-ettus/blob/1038c4ce5135a2803b53554fc4971fe3de747d9a/include/ettus/rfnoc_rx_radio.h#L97
> >          >>             >
> >          >>             >         Let me know if that worked out for you.
> >          >>             >
> >          >>             >         Cheers,
> >          >>             >         Julian
> >          >>             >
> >          >>             >
> >          >>             >         On 3/10/21 9:59 AM, Maria Muñoz wrote:
> >          >>             >          > Hi Julian,
> >          >>             >          >
> >          >>             >          > Thanks for the quick answer.
> >          >>             >          >
> >          >>             >          > I think you might be right about
> >         the possible
> >          >>             bug turning on
> >          >>             >         the AGC
> >          >>             >          > from GRC. I have checked the flow
> graph
> >          >>             generated and there's no
> >          >>             >          > set_rx_agc enable option (I checked
> >         the c++
> >          >>             definition block
> >          >>             >         where this
> >          >>             >          > option did appear but I hadn't look
> >         at the
> >          >>             python generated).
> >          >>             >          >
> >          >>             >          > The lines related to the radio in my
> >          >>             flowgraph are these:
> >          >>             >          >
> >          >>             >          > /self.ettus_rfnoc_rx_radio_0 =
> >          >>             ettus.rfnoc_rx_radio(
> >          >>             >          >              self.rfnoc_graph,
> >          >>             >          >              uhd.device_addr(''),
> >          >>             >          >              -1,
> >          >>             >          >              -1)
> >          >>             >          >
> >          >>             self.ettus_rfnoc_rx_radio_0.set_rate(samp_rate)
> >          >>             >          >
> >          >>             self.ettus_rfnoc_rx_radio_0.set_antenna('RX2', 0)
> >          >>             >          >
> >          >>             self.ettus_rfnoc_rx_radio_0.set_frequency(cf, 0)
> >          >>             >          >
> >          >>             self.ettus_rfnoc_rx_radio_0.set_gain(gain, 0)
> >          >>             >          >
> >          >>
> >           self.ettus_rfnoc_rx_radio_0.set_bandwidth(samp_rate, 0)
> >          >>             >          >
> >          >>             self.ettus_rfnoc_rx_radio_0.set_dc_offset(True,
> 0)
> >          >>             >          >
> >          >>             self.ettus_rfnoc_rx_radio_0.set_iq_balance(True,
> 0)/
> >          >>             >          >
> >          >>             >          > So, if I understand correctly, I
> >         have to put
> >          >>             there also
> >          >>             >         something like
> >          >>             >          >
> >          >>
> >           "self.ettus_rfnoc_rx_radio_0.set_rx_agc(enable,0)" isn't it?
> >          >>             >          >
> >          >>             >          > Kind Regards,
> >          >>             >          >
> >          >>             >          > Maria
> >          >>             >          >
> >          >>             >          > El mié, 10 mar 2021 a las 9:16,
> >         Julian Arnold
> >          >>             >         (<[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>>
> >          >>             >          > <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>
> >          >>             >         <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>>>>) escribió:
> >          >>             >          >
> >          >>             >          >     Maria,
> >          >>             >          >
> >          >>             >          >     I might not be the right person
> >         to answer
> >          >>             this, as my
> >          >>             >         experience with
> >          >>             >          >     UHD 4.0 is relatively limited
> >         at the moment.
> >          >>             >          >
> >          >>             >          >     However, I cant tell you that
> >         the AGC on
> >          >>             B2x0 devices is
> >          >>             >         controlled via
> >          >>             >          >     software (using set_rx_agc()).
> >         There is
> >          >>             no need to
> >          >>             >         directly modify the
> >          >>             >          >     state of any pins of the FPGA.
> >          >>             >          >
> >          >>             >          >     I vaguely remember that there
> >         was a bug
> >          >>             in an earlier
> >          >>             >         version of gr-uhd
> >          >>             >          >     (somewhere in 3.7) that made it
> >         difficult
> >          >>             to turn on the
> >          >>             >         AGC using GRC.
> >          >>             >          >     That particular one is fixed in
> >         gr-uhd.
> >          >>             Not sure about
> >          >>             >         gr-ettus, though.
> >          >>             >          >
> >          >>             >          >     Maybe try using set_rx_agc()
> >         manually in
> >          >>             you flow-graph
> >          >>             >         (*.py) and see
> >          >>             >          >     if that helps.
> >          >>             >          >
> >          >>             >          >     Cheers,
> >          >>             >          >     Julian
> >          >>             >          >
> >          >>             >          >     On 3/9/21 5:11 PM, Maria Muñoz
> via
> >          >>             USRP-users wrote:
> >          >>             >          >      > Hi all,
> >          >>             >          >      >
> >          >>             >          >      > I was wondering if it is
> >         possible to
> >          >>             enable AGC from
> >          >>             >         the RFNoC radio
> >          >>             >          >      > block in GNURadio. I use UHD
> 4.0
> >          >>             version and GNURadio
> >          >>             >         3.8 with
> >          >>             >          >     gr-ettus.
> >          >>             >          >      >
> >          >>             >          >      > I see that the RFNoC Rx
> >         radio block has an
> >          >>             >         enable/disable/default
> >          >>             >          >     AGC
> >          >>             >          >      > option in the GNURadio block
> >         which I
> >          >>             assume calls the
> >          >>             >         UHD function
> >          >>             >          >      > "set_rx_agc"
> >          >>             >          >      >
> >          >>             >          >
> >          >>             >
> >          >>
> >            (
> https://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html#abdab1f6c3775a9071b15c9805f866486
> )
> >          >>             >          >      >
> >          >>             >          >      > I have also checked on the
> >         FPGA side
> >          >>             that there is a
> >          >>             >         pin from
> >          >>             >          >     FPGA to
> >          >>             >          >      > AD9361 called XCVR_ENA_AGC
> >         which is
> >          >>             set always to 1 on
> >          >>             >         the top
> >          >>             >          >     level of
> >          >>             >          >      > the FPGA image (see attached
> >         file
> >          >>             "e320.v", line 872).
> >          >>             >         This pin,
> >          >>             >          >      > according to
> >          >>             >          >      >
> >          >>             >          >
> >          >>             >
> >          >>
> >
> https://www.analog.com/media/en/technical-documentation/data-sheets/AD9361.pdf
> >          >>             >          >
> >          >>             >          >      > is the "Manual Control Input
> for
> >          >>             Automatic Gain
> >          >>             >         Control (AGC)".
> >          >>             >          >      > Must be this pin set to 0 to
> >         have AGC
> >          >>             working?
> >          >>             >          >      > If not, how can I get AGC
> >         working?
> >          >>             I've made some tests
> >          >>             >          >      > enabling/disabling this
> >         option but I
> >          >>             do not see any
> >          >>             >         changes
> >          >>             >          >     between the
> >          >>             >          >      > waveforms received.
> >          >>             >          >      >
> >          >>             >          >      > Any help would be
> appreciated.
> >          >>             >          >      >
> >          >>             >          >      > Kind Regards,
> >          >>             >          >      >
> >          >>             >          >      > Maria
> >          >>             >          >      >
> >          >>             >          >      >
> >          >>             _______________________________________________
> >          >>             >          >      > USRP-users mailing list
> >          >>             >          >      > [email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>
> >          >>             >         <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>>
> >          >>             >         <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>
> >          >>             >         <mailto:[email protected]
> >         <mailto:[email protected]>
> >          >>             <mailto:[email protected]
> >         <mailto:[email protected]>>>>
> >          >>             >          >      >
> >          >>             >
> >          >>
> >
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> >          >>             >          >      >
> >          >>             >          >
> >          >>             >
> >          >>
> >
>
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to