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