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]>)
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]>>) 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]>>:
> >>
> >>     
> >>     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]>>) 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]>>)
> >>         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]>>>) 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]>>>) 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]>>>>) 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]>>>
> >>             >          >      >
> >>             >
> >>
> 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