Post Go back to editing

On chip Synchronization of LOs in ad9361z7035

Category: Software
Product Number: adrv9361z7035
Software Version: adrv9361z7035

Dear all;

I am using the adrv9361z7035-BOB. I am facing the problem during LO tuning between 2400-2500 MHz When I start to sweep input 2400-2500 MHz it working fine as frequency changes. When I start sweep input change frequency from 2450-2500 MHz then its behave on output side 2400-2500 MHz. I am using 2 profiles from available on chip 8 profiles .I think its LO synchronization problem if yes/no then guide me. 

 I am using following steps:

  1. I set RF BW: 50 MHz
  2. Two Center Frequencies: 2425 MHz, 2475 MHz
  3. dwell Samples:1200
  4. hop enable:1
  5. Check the Script below 

Script

/*
#!/bin/sh

find_zynq_base_gpio () {
for i in /sys/class/gpio/gpiochip*; do
if [ "zynq_gpio" = `cat $i/label` ]; then
return `echo $i | sed 's/^[^0-9]\+//'`
break
fi
done
return -1
}

if [ `id -u` != "0" ]
then
echo "This script must be run as root" 1>&2
exit 1
fi

for i in $(find -L /sys/bus/iio/devices -maxdepth 2 -name name)
do
dev_name=$(cat $i)
if [ "$dev_name" = "ad9361-phy" ]; then
phy_path=$(echo $i | sed 's:/name$::')
cd $phy_path
break
fi
done

if [ "$dev_name" != "ad9361-phy" ]; then
exit
fi

#Setup 8 Profiles 1MHz spaced
##band1-P1
echo 2225000000 > out_altvoltage1_TX_LO_frequency
echo 2225000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2425000000 MHz"
echo 0 > out_altvoltage1_TX_LO_fastlock_store
echo 0 > out_altvoltage0_RX_LO_fastlock_store
##band1-P2
echo 2275000000 > out_altvoltage1_TX_LO_frequency
echo 2275000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2475000000 MHz"
echo 1 > out_altvoltage1_TX_LO_fastlock_store
echo 1 > out_altvoltage0_RX_LO_fastlock_store

##band1-P3
echo 2225000000 > out_altvoltage1_TX_LO_frequency
echo 2225000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2425000000 MHz"
echo 2 > out_altvoltage1_TX_LO_fastlock_store
echo 2 > out_altvoltage0_RX_LO_fastlock_store

##band1-P1
echo 2275000000 > out_altvoltage1_TX_LO_frequency
echo 2275000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2425000000 MHz"
echo 3 > out_altvoltage1_TX_LO_fastlock_store
echo 3 > out_altvoltage0_RX_LO_fastlock_store
##band1-P2
echo 2225000000 > out_altvoltage1_TX_LO_frequency
echo 2225000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2475000000 MHz"
echo 4 > out_altvoltage1_TX_LO_fastlock_store
echo 4 > out_altvoltage0_RX_LO_fastlock_store

##band1-P3
echo 2275000000 > out_altvoltage1_TX_LO_frequency
echo 2275000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2425000000 MHz"
echo 5 > out_altvoltage1_TX_LO_fastlock_store
echo 5 > out_altvoltage0_RX_LO_fastlock_store
##band1-P1
echo 2225000000 > out_altvoltage1_TX_LO_frequency
echo 2225000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2425000000 MHz"
echo 6 > out_altvoltage1_TX_LO_fastlock_store
echo 6 > out_altvoltage0_RX_LO_fastlock_store
##band1-P2
echo 2275000000 > out_altvoltage1_TX_LO_frequency
echo 2275000000 > out_altvoltage0_RX_LO_frequency
echo "Initializing PROFILE $i at 2475000000 MHz"
echo 7 > out_altvoltage1_TX_LO_fastlock_store
echo 7 > out_altvoltage0_RX_LO_fastlock_store


#Enable Fastlock Mode
iio_attr -D ad9361-phy adi,tx-fastlock-pincontrol-enable 1
echo 0 > out_altvoltage1_TX_LO_fastlock_recall

iio_attr -D ad9361-phy adi,rx-fastlock-pincontrol-enable 1
echo 0 > out_altvoltage0_RX_LO_fastlock_recall


echo "Entering to find the hopping IP"

for i in $(find -L /sys/bus/iio/devices -maxdepth 2 -name name)
do
dev_name=$(cat $i)
if [ "$dev_name" = "axi-hopper" ]; then
phy_path=$(echo $i | sed 's:/name$::')
echo "Hopping IP found"
cd $phy_path
break
fi
done

if [ "$dev_name" != "axi-hopper" ]; then
echo "Hopping IP not found"
exit
fi

echo 1 > hopping_enable
echo 1200 > dwell_samples

*/

Thanks 

Parents Reply Children
  •  Hi ;

    I want to cover the 100 MHz bandwidth, for this purpose I set two LOs in my above shared bash script to cover 100 MHz bandwidth.

    Case1: RF_in from 2200MHz-2250Mhz . I got RF_out from 2200-2250 MHz ., RF_BW 50MHz

    Test scenario : Dwell sample 1200 , Hopping enable 1 ,

    System clock  245760000
    dwell time = single hop time/clock period

    Fast_lock_Profile  [profile 0 2225MHz,Profile 1 2275MHz, profile 2 2225MHz,Profile 3 2275MHz,profile 4 2225MHz,Profile 5 2275MHz,profile 6 2225MHz,Profile 7 2275MHz,]

    RF_in : RF_out

    2201 MHz : 2201MHz

    .

    .

    .

    .

    .

    2249MHz: 2249MHz

    PROBLEM:

    RF_in : RF_out

    2251 MHz : 2201MHz [ it should be  2251 MHz]

    2252 MHz : 2202MHz [ it should be 2252 MHz]

    2253 MHz : 2203MHz [ it should be 2253 MHz]

    2254 MHz : 2204MHz [ it should be 2254 MHz]

    2255 MHz : 2205MHz [ it should be 2255 MHz]

    .

    is there any issue with dwell_sample ? because in HDL design I given constant 1 to hdl_hop_en1

  • Ok so you are trying to use the Frequency Hopping example to control the profiles.

    You said you want to cover 2x 50 MHz bands but you are using 8 profiles. Why do you use 8 profiles?

    When manually control the profiles (without the custom IP) do they operate as expected?

    -Travis

  • Dear  ;

    Thanks for your response.

    As per my understanding, Yes I am using both Hopping IP in HDL design and hopping_enable in the bash script  to control the profiles. I am also little bit confused about what is wrong or right.

    I use 2x profiles before above shared script but I got RF_OUT level down on spectrum analyzer. When I notice this issue then I repeat 2x 50 MHz in 8 profiles due to which RF_OUT level up on spectrum analyzer.

    When I want to control the profiles without Custom IP then profiles do not operate as expected.

    Thanks