Post Go back to editing

fastlock profile with more than 8 profile saving.

Hello everyone!

I have been working with fastlock profile and I wanted to use more than 8 profile to hope the frequency.now i'm able to recall 8 profile,but i'm not getting what to do if I wanted to use more than 8 profile as i'm using your --> ad9361_fastlock_save(phy, 1, profile, values); function to save more that 8 profile. if i'm going to use more than 8 frequency then while recalling only last  8 frequency are coming instead of that I want continuous chian.

my sequence of execution is :     set_lo_tx --> store  --> load --> save  --> recall

Parents Reply Children
  • Hi 

    Before posting this doubt I have gone through above link , but still I need clarity about the procedure . Can you please help me with a example code which will help me to set more than 8 profiles.

    Thanks in advance 

    regards,

  • Attached is the code for setting more than 8 profiles:

    cd /sys/bus/iio/devices/iio\:device1/
    pwd
    for i in {1..8..1}
    do
       echo $((650000000 + $i * 100000000)) > out_altvoltage1_TX_LO_frequency
       sleep 0.1
       echo $i > out_altvoltage1_TX_LO_fastlock_store
       echo $i > out_altvoltage1_TX_LO_fastlock_save
       cat out_altvoltage1_TX_LO_fastlock_save
       cat out_altvoltage1_TX_LO_frequency
    done
    for i in {9..16..1}
    do
       echo $((1000000000 + $i * 200000000)) > out_altvoltage1_TX_LO_frequency
       echo $i > out_altvoltage1_TX_LO_fastlock_store
       echo $i > out_altvoltage1_TX_LO_fastlock_save  
       cat out_altvoltage1_TX_LO_fastlock_save
       cat out_altvoltage1_TX_LO_frequency 
    done
    echo 1 150,0,0,0,0,65,23,7,238,85,111,221,115,252,12,160 > out_altvoltage1_TX_LO_fastlock_load
    echo 2 85,0,0,0,0,114,31,15,238,85,111,221,114,221,43,183 > out_altvoltage1_TX_LO_fastlock_load
    echo 3 95,0,0,0,0,113,16,16,238,85,111,221,114,204,217,166 > out_altvoltage1_TX_LO_fastlock_load
    echo 4 105,0,0,0,0,113,31,15,238,85,127,221,114,204,154,176 > out_altvoltage1_TX_LO_fastlock_load
    echo 5 115,0,0,0,0,97,29,13,238,85,111,221,114,204,108,192 > out_altvoltage1_TX_LO_fastlock_load
    echo 6 125,0,0,0,0,97,27,11,238,85,111,221,114,236,73,160 > out_altvoltage1_TX_LO_fastlock_load
    echo 7 135,0,0,0,0,65,25,9,238,85,111,221,114,252,44,198 > out_altvoltage1_TX_LO_fastlock_load
    echo 8 145,0,0,0,0,65,23,7,238,68,110,238,114,252,22,166 > out_altvoltage1_TX_LO_fastlock_load
    echo "recalling first 8 profiles"
    for i in {1..8..1}
    do 
        echo $i > out_altvoltage1_TX_LO_fastlock_recall
        cat out_altvoltage1_TX_LO_frequency
    done 
    echo 9 140,0,0,0,0,65,24,8,238,85,110,221,113,252,32,192 > out_altvoltage1_TX_LO_fastlock_load
    echo 10 150,0,0,0,0,65,23,7,238,85,111,221,113,252,12,160 > out_altvoltage1_TX_LO_fastlock_load
    echo 11 80,0,0,0,0,114,31,15,238,85,111,221,112,253,99,163 > out_altvoltage1_TX_LO_fastlock_load
    echo 12 85,0,0,0,0,114,31,15,238,85,111,221,112,221,43,18 > out_altvoltage1_TX_LO_fastlock_load
    echo 13 90,0,0,0,0,114,30,14,238,85,111,221,112,237,253,1824 > out_altvoltage1_TX_LO_fastlock_load
    echo 14 95,0,0,0,0,113,16,16,238,85,111,221,112,204,217,166 > out_altvoltage1_TX_LO_fastlock_load
    echo 15 100,0,0,0,0,113,31,15,238,85,111,221,112,204,183,176 > out_altvoltage1_TX_LO_fastlock_load
    echo 16 105,0,0,0,0,113,31,15,238,85,127,221,112,204,155,176 > out_altvoltage1_TX_LO_fastlock_load
    echo "recalling 9-16 profiles" 
    for i in {9..16..1}
    do 
        echo $i > out_altvoltage1_TX_LO_fastlock_recall
        cat out_altvoltage1_TX_LO_frequency
    done 

  • when I use the above code for more than 8 profiles, the recall function didn't give the set profile. I am going to attach the  bash script  and  result below. Please guide:

    cd /sys/bus/iio/devices/iio\:device1/
    pwd
    for i in {1..8..1}
    do
    echo $((100000000+ $i * 25000000)) > out_altvoltage1_TX_LO_frequency
    sleep 0.1
    echo $i > out_altvoltage1_TX_LO_fastlock_store
    echo $i > out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_frequency
    done
    for i in {9..16..1}
    do
    echo $((325000000 + $i * 25000000)) > out_altvoltage1_TX_LO_frequency
    echo $i > out_altvoltage1_TX_LO_fastlock_store
    echo $i > out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_frequency
    done
    echo 1 150,0,0,0,0,65,23,7,238,85,111,221,115,252,12,160 > out_altvoltage1_TX_LO_fastlock_load
    echo 2 85,0,0,0,0,114,31,15,238,85,111,221,114,221,43,183 > out_altvoltage1_TX_LO_fastlock_load
    echo 3 95,0,0,0,0,113,16,16,238,85,111,221,114,204,217,166 > out_altvoltage1_TX_LO_fastlock_load
    echo 4 105,0,0,0,0,113,31,15,238,85,127,221,114,204,154,176 > out_altvoltage1_TX_LO_fastlock_load
    echo 5 115,0,0,0,0,97,29,13,238,85,111,221,114,204,108,192 > out_altvoltage1_TX_LO_fastlock_load
    echo 6 125,0,0,0,0,97,27,11,238,85,111,221,114,236,73,160 > out_altvoltage1_TX_LO_fastlock_load
    echo 7 135,0,0,0,0,65,25,9,238,85,111,221,114,252,44,198 > out_altvoltage1_TX_LO_fastlock_load
    echo 8 145,0,0,0,0,65,23,7,238,68,110,238,114,252,22,166 > out_altvoltage1_TX_LO_fastlock_load
    echo "recalling first 8 profiles"
    for i in {1..8..1}
    do
    echo $i > out_altvoltage1_TX_LO_fastlock_recall
    cat out_altvoltage1_TX_LO_frequency
    done
    echo 9 140,0,0,0,0,65,24,8,238,85,110,221,113,252,32,192 > out_altvoltage1_TX_LO_fastlock_load
    echo 10 150,0,0,0,0,65,23,7,238,85,111,221,113,252,12,160 > out_altvoltage1_TX_LO_fastlock_load
    echo 11 80,0,0,0,0,114,31,15,238,85,111,221,112,253,99,163 > out_altvoltage1_TX_LO_fastlock_load
    echo 12 85,0,0,0,0,114,31,15,238,85,111,221,112,221,43,18 > out_altvoltage1_TX_LO_fastlock_load
    echo 13 90,0,0,0,0,114,30,14,238,85,111,221,112,237,253,1824 > out_altvoltage1_TX_LO_fastlock_load
    echo 14 95,0,0,0,0,113,16,16,238,85,111,221,112,204,217,166 > out_altvoltage1_TX_LO_fastlock_load
    echo 15 100,0,0,0,0,113,31,15,238,85,111,221,112,204,183,176 > out_altvoltage1_TX_LO_fastlock_load
    echo 16 105,0,0,0,0,113,31,15,238,85,127,221,112,204,155,176 > out_altvoltage1_TX_LO_fastlock_load
    echo "recalling 9-16 profiles"
    for i in {9..16..1}
    do
    echo $i > out_altvoltage1_TX_LO_fastlock_recall
    cat out_altvoltage1_TX_LO_frequency
    done

  • You need to copy the printed saved profiles into the corresponding load API's.

    For ex; in the above picture, the first highlighted text corresponds to the first profile, the second one corresponds to the second profile and so on. You need to use the same in the load functions

  • thankyou for your kind response!  I got the desired profiles but when I check the results on the spectrum analyzer it shows any random profile in these 16 but I want to get all the profiles .how it would be possible?

  • thankyou for your kind response!  I got the desired profiles but when I check the results on the spectrum analyzer it shows any random profile in these 16 but I want to get all the profiles .how it would be possible?

  • do
    echo $i > out_altvoltage1_TX_LO_fastlock_recall
    cat out_altvoltage1_TX_LO_frequency
    done

    Using this part of the code, the profiles are recalled one by one and its corresponding LO frequencies are set for the chip. You can add sleep of 1 sec within the loop, so that you can see the LO frequency corresponding to all the 16 profiles  in your spectrum analyzer(without a wait period of 1sec, its sweeps very fast and  spectrum is not able to capture that)

    If you want to recall a single profile say 9th profile then get out of the loop and do:

    echo 9 > out_altvoltage1_TX_LO_fastlock_recall
    cat out_altvoltage1_TX_LO_frequency

  • thankyou for your response. I have made the necessary changes but still didn't get all the Los. let's suppose, I am covering a band from 100MHZ to 800MHZ when I see results on the spectrum analyzer I obtained Los at 125,275, 375,425,575,625,875. The profile setting script is given below. please guide, I want all the 16 profiles at the spectrum analyzer.

    cd /sys/bus/iio/devices/iio\:device1/
    pwd

    for i in {1..8..1}
    do
    echo $((75000000 + $i * 50000000)) > out_altvoltage1_TX_LO_frequency

    echo $i > out_altvoltage1_TX_LO_fastlock_store
    echo $i > out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_frequency
    done
    for i in {9..16..1}
    do
    echo $((75000000 + $i * 50000000)) > out_altvoltage1_TX_LO_frequency

    echo $i > out_altvoltage1_TX_LO_fastlock_store
    echo $i > out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_fastlock_save
    cat out_altvoltage1_TX_LO_frequency
    done

    echo 1 100,0,0,0,0,113,31,15,238,85,111,221,117,204,180,176> out_altvoltage1_TX_LO_fastlock_load
    echo 2 140,0,0,0,0,65,24,8,238,85,110,221,117,252,33,180> out_altvoltage1_TX_LO_fastlock_load
    echo 3 90,0,0,0,0,114,30,14,238,85,111,221,116,237,249,182> out_altvoltage1_TX_LO_fastlock_load
    echo 4 110,0,0,0,0,113,29,13,238,85,111,221,116,204,129,162> out_altvoltage1_TX_LO_fastlock_load
    echo 5 130,0,0,0,0,97,26,10,238,85,111,221,116,252,57,150> out_altvoltage1_TX_LO_fastlock_load
    echo 6 150,0,0,0,0,65,23,7,238,85,111,221,116,252,12,150> out_altvoltage1_TX_LO_fastlock_load
    echo 7 85,0,0,0,0,114,31,15,238,85,111,221,115,221,38,1832> out_altvoltage1_TX_LO_fastlock_load
    echo 8 95,0,0,0,0,113,16,16,238,85,111,221,115,204,213,166> out_altvoltage1_TX_LO_fastlock_load
    echo "recalling first 8 profiles"

    for i in {1..8..1}

    do
    sleep 1
    echo $i > out_altvoltage1_TX_LO_fastlock_recall

    cat out_altvoltage1_TX_LO_frequency
    done


    echo 9 105,0,0,0,0,113,31,15,238,85,127,221,115,204,152,176> out_altvoltage1_TX_LO_fastlock_load
    echo 10 115,0,0,0,0,97,29,13,238,85,111,221,115,204,107,192> out_altvoltage1_TX_LO_fastlock_load
    echo 11 125,0,0,0,0,97,27,11,238,85,111,221,115,236,73,160> out_altvoltage1_TX_LO_fastlock_load
    echo 12 135,0,0,0,0,65,25,9,238,85,111,221,115,252,44,194> out_altvoltage1_TX_LO_fastlock_load
    echo 13 145,0,0,0,0,65,23,7,238,68,110,238,115,252,22,160> out_altvoltage1_TX_LO_fastlock_load
    echo 14 77,0,249,255,63,114,31,15,238,85,111,221,114,253,122,151> out_altvoltage1_TX_LO_fastlock_load
    echo 15 82,0,249,255,63,114,31,15,238,85,111,221,114,221,64,167 > out_altvoltage1_TX_LO_fastlock_load
    echo 16 87,0,249,255,63,113,27,19,238,85,111,221,114,206,14,193> out_altvoltage1_TX_LO_fastlock_load
    echo "recalling 9-16 profiles"


    for i in {9..16..1}

    do
    sleep 1
    echo $i > out_altvoltage1_TX_LO_fastlock_recall

    cat out_altvoltage1_TX_LO_frequency

    done

  • While recalling the first 8 profiles, donot do it in a loop(delete the highlighted lines). Instead recall each profile one by one from 1 to 8 manually using below  and see the output in spectrum analyzer for each change

    echo 1 > out_altvoltage1_TX_LO_fastlock_recall

    Similarly recall each profile for 9 to 16 manually and see the output in spectrum