discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Quesion on AUX ADC of AD9862


From: Su Jinzhao
Subject: Re: [Discuss-gnuradio] Quesion on AUX ADC of AD9862
Date: Thu, 18 Jun 2009 11:34:37 +0800

Hi,
 
   Eric
On Wed, Jun 17, 2009 at 1:52 AM, Eric Blossom <address@hidden> wrote:
On Tue, Jun 16, 2009 at 09:15:34PM +0800, Su Jinzhao wrote:
> Hi,
>
> I want to read RSSI value using analog AUX ADC, I think we can read RSSI
> through AUX_ADC_A1 pin of AD9862, I looked through the code
> of usrp_read_aux_adc in file
> /root/gnuradio/gnuradio-3.1.3/usrp/host/lib/legacy/usrp_primes.cc,

If you are using usrp_standard_rx, or gr.usrp_source_*, you can do
this much more simply by using:

 adc_val = u->read_aux_adc(which_side, which_adc)

http://gnuradio.org/doc/doxygen/classusrp__basic__rx.html
http://gnuradio.org/doc/doxygen/classusrp__standard__rx.html

You didn't mention which daughterboard you are using.  Not all
daughterboards have an analog RSSI output.
 
> my question is:
> 1.The AD 9862 specification says: "The AUX SPI can be enabled and configured
> by setting register AUX ADC CTRL. Setting register use pins high enables the
> AUX SPI port.", but in the above code AUX_ADC_CTRL_AUX_SPI was not set high(
> In my opinion, aux_adc_control should be added with | = AUX_ADC_CTRL_AUX_SPI
> because usrp_9862_write and usrp_9862_read all need SPI operation, so we
> should enable AUX API), Is this a mistype or another method ?

The code is correct.  There are a couple of ways to use the AUX ADCs.
We use them by polling, not over the AUX SPI bus.

> 2.stefan.bruens in the list had said that the low 16 bits is the RSSI value,
> I want to know why did the above code combine the high and low 16-bit and
> format the data into 12-bit ?

This is a digital RSSI, determined post high-speed ADC.  You can look
at the computation here:

 http://gnuradio.org/trac/browser/gnuradio/trunk/usrp/fpga/sdr_lib/rssi.v


> 3. Even with the RSSI value (int type), what should I do to convert that
> value into dBm unit ?

You would need to calibrate the entire signal path.  Left as an exercise...

Eric
 
    my new questions are (Sorry for my talkactive ^_^ ) :
    1. Autually, I was indeed use u->read_aux_adc(which_side, which_adc) in my python code, However, I can't step into the C++ code while using pdb to debug my python code, so I am not sure whether read_aux_adc() really call the function usrp_read_aux_adc in file gnuradio-3.1.3/usrp/host/lib/legacy/usrp_prims.cc ?
     2. In the function usrp_read_aux_adc, we can read values of registers 26-33 directly, so I am confused with the relation between usrp_read_aux_adc and the rssi.v code, do they have no relation ?
    3. If I want to convert the RSSI value into dBm units, means that I have to find the reference voltage and resistance,( however, on page 16 and 30 of AD9860_9862 specification, settings of bits Refsel B/A are illustated self-contradictory), and then calculate the power with voltage and resistance ? Please confirm me whether my idea is correct. 
     4. By the way, I am using daughterboard RFX2400 and RFX900, so I think this two daughterboards have no problem with RSSI output.


--
Su Jinzhao

reply via email to

[Prev in Thread] Current Thread [Next in Thread]