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