Gain distribution with Flex 400

How is gain distributed when the UHD USRP block is told to set the total
gain to a particular value?

I am using GRC with UHD controlling a USRP with a Flex400 daughter
board. I
set the gain in the GRC block to 20dB, which results in the line
“self.uhd_usrp_source_0.set_gain(20, 0)” in the Python output file.

My understanding is that the codec on the USRP has an internal PGA whose
gain can be set between 0 and 20dB and that the Flex400’s mixer also has
a
PGA whose gain can be set between 0 and 45dB.

Does this mean that I can set the gain in the USRP source block to
anywhere
between 0 and 65dB (with the driver deciding how to distribute the gain
between the two PGAs), or is there a way to control separately the two
PGAs?

Thanks, Sivan T.

On Thu, 2011-08-04 at 12:54 +0300, Sivan T. wrote:

also has a PGA whose gain can be set between 0 and 45dB.

Does this mean that I can set the gain in the USRP source block to
anywhere between 0 and 65dB (with the driver deciding how to
distribute the gain between the two PGAs), or is there a way to
control separately the two PGAs?

UHD handles gain distribution generally from the front end inward, for
best NF. You can control individual gains like so:

self.uhd_usrp_source_0.set_gain(20, “PGA0”, 0)

You can get a list of gain controls with:

self.uhd_usrp_source_0.get_gain_names(0)

–n