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 (<mamuk...@gmail.com>)
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 (<jul...@elitecoding.org>)
> 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 (<mamuk...@gmail.com
>> > <mailto:mamuk...@gmail.com>>) 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
>> >     (<jul...@elitecoding.org <mailto:jul...@elitecoding.org>>)
>> 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
>> >         (<jul...@elitecoding.org <mailto:jul...@elitecoding.org>
>> >          > <mailto:jul...@elitecoding.org
>> >         <mailto:jul...@elitecoding.org>>>) 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
>> >          >      > USRP-users@lists.ettus.com
>> >         <mailto:USRP-users@lists.ettus.com>
>> >         <mailto:USRP-users@lists.ettus.com
>> >         <mailto:USRP-users@lists.ettus.com>>
>> >          >      >
>> >
>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>> >          >      >
>> >          >
>> >
>>
>
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to