Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

N310 set_rx_gain nonfunctional behaviour #627

Open
asut6330 opened this issue Aug 27, 2022 · 0 comments
Open

N310 set_rx_gain nonfunctional behaviour #627

asut6330 opened this issue Aug 27, 2022 · 0 comments

Comments

@asut6330
Copy link

Issue Description

When setting rx_gain_profile=manual and setting the gain of the various front end components (amp/dsa/rfic), there is buggy behavior exhibited. Firstly, the rfic gain has an inversion, for instance,
usrp->set_rx_gain(0, "rfic", 0);
printf("Gain rfic: %f dB\n", usrp->get_rx_gain("rfic", 0));
will print,
"Gain rfic: 30.000000 dB"

The set function seems to actually perform 30-gain.

Additionally, setting the "dsa" has no effect despite the step attenuator clearly being present in the frontend of the N310 device, as shown in the schematics.
usrp->set_rx_gain(0, "dsa", 0);

Can this functionality be confirmed in earlier versions of UHD?

Setup Details

[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.3.0.0-15-g5333d3d1

-- UHD Device 0

Device Address:
serial: 322C655
addr: 192.168.20.2
claimed: False
fpga: HG
mgmt_addr: 192.168.1.106
mgmt_addr: 192.168.20.2
name: ni-n3xx-322C655
product: n310
type: n3xx

Steps to reproduce the problem

` printf("Gain range start rfic: %f dB\n", usrp->get_rx_gain_range("rfic", 0).start());
printf("Gain range end rfic: %f dB\n", usrp->get_rx_gain_range("rfic", 0).stop());
usrp->set_rx_gain(0, "rfic", 0);
printf("Gain rfic: %f dB\n", usrp->get_rx_gain("rfic", 0));

printf("Gain range start dsa: %f dB\n", usrp->get_rx_gain_range("dsa", 0).start());
printf("Gain range end dsa: %f dB\n", usrp->get_rx_gain_range("dsa", 0).stop());
usrp->set_rx_gain(-15, "dsa", 0);
printf("Gain dsa: %f dB\n", usrp->get_rx_gain("dsa", 0));

printf("Gain range start amp: %f dB\n", usrp->get_rx_gain_range("amp", 0).start());
printf("Gain range end amp: %f dB\n", usrp->get_rx_gain_range("amp", 0).stop());
usrp->set_rx_gain(10, "amp", 0);
printf("Gain amp: %f dB\n", usrp->get_rx_gain("amp", 0));`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants