Post Go back to editing

ADRV 9002

Thread Summary

The user asked how to enable Fast Recovery Mode and why hbUnderRangeLowThresh and hbUnderRangeMidThresh values remain unchanged when adjusting the Peak Over/Underload Threshold in TES ARGO-NAVIS version 0.28.0. Fast Recovery Mode can only be enabled via C99 or Python APIs, not in the TES GUI. The HB detector can be disabled in TES under the Gain Control tab, and the user can manually set the threshold values using APIs in MATLAB or C. The Rx Gain table is accessible from 187 to 255 in TES, and the user can generate MATLAB code from TES to use as a baseline for configuration.
AI Generated Content

Hello,

I have  a two-part question regarding the TES system ARGO-NAVIS version 0.28.0. 

1) How can I enable Fast Recovery Mode?

2) Why do the values of hbUnderRangeLowThresh and hbUnderRangeMidThresh remain unchanged when I adjust the Peak Over/Underload Threshold. This raises concerns about he validity  of these values, since in some cases even hbUnderRangeHighThresh ends being lower than the aforementioned values 

Thread Notes

Parents
  • Hi,

    For the first question, Fast Attack and Fast Recovery Modes for the AGC can only be enabled using API calls in C99, or Python sample code. These modes are not in the TES GUI.
    Details on the name and usage of APIs is located in the SDK folder - file named ADRV9001_API.chm

    For question 2, please provide more information, where are you reading the values of hbUnderRangeLowThresh and hbUnderRangeMidThresh? 
    These are not shown in TES, only Peak/Power Over/Underload Thresholds.
    If you are using APIs already, then just configure them as you need and continue using APIs. (You can use both APIs and TES at the same time, but TES will not update the values).

    Regards,
    Deniss

  • For question number 2, I observed the values I mentioned by samping codes in C and checking the corresponding coomands. These values are hbUnderRangeLowThresh = 5826,
    hbUnderRangeMidThresh = 8230, and they dont change by using TES. In the upcoming week I will conduct tests in matlab to check if the aforementioned values change. 

    Meanwhile is there any chance to have fully access of the default Rx gain table? The ADRV9001 GUIDE provides information only from 255-253 gain table index and from 189-187 

    Regards John 

  • Hi,

    A stated in the User Guide, and shown between Figures 164 and 165, you can see that 165 is Fast Attack enabled and 164 is disabled - please review the differences.

    As stated in red and yellow, the AGC does not wait for update counter, and does attacks immediately when in Fast Attack mode.
    So, to say it again for you, the second and third attack is immediately after the first attack.
    It is very clearly explained in the User Guide.

    Your gain tables are not valid at all and make no sense, and I am not sure what you are doing to get these tables. If you inspect the MATLAB code, it just grabs the real gain table from where TES is installed.

    Something is going wrong in your MATLAB code for those values to print/exist.
    Standard MATLAB sample code takes the values from TES. TES is key.

    Please debug your code and figure out what is going wrong. 
    Then return if you have issues with anything from our side/development.

    Regards,
    Deniss

    • Thanks Dennis, maybe i wasn't clear with my previous question. Let's assume fast attack is enabled and the overloadcounter is equal to 5, the upperthershold is equal to -3. Now let's say that the upper threshold is exceeded 5 times causing overrange condition so an attack occurs. Now lets say that the step was low and the signal is still above -3 for example -2.6. Is the AGC going to attack immediately to bring signal below -3, for example -3.2 or does it have to measure 5 cycles again, in order to attack. I dont refer to gain update counter at all.

    For the second part of your answer I run ADRV by using matlab. The reason is because TES configuration is incomplete because a lot of values, especially those regarding HB detector, aren't contained. Matlab contains every value I need for configuration. The gain table you saw is a result of your generated code not mine and is seen inside command window while running the code 

  • Hi Dennis, 

    In addition to my previous question i would like to specify what agcunderrangeintervals mean for the three levels of HB detector.The guide says that it sets the time constant in agc cycles (5.43ns) that the agc recovers when the signal peaks are less than the underrange. Does that means that agcunderrangeintervals are equal to the time needed for a recovery to occur when an underrange happens or the time for agc to reset after hb detect underrange condition.

     Last, what is hboverloadpowermode is exactly? Whats the difference between this and enablehboverload.

    Thank you 

  • Hi Dennis, do you have something for me? 

  • Hi John, 

    Please follow the below thread, it has most of the explanation that you are looking for. Let me know if that helps. 

     RE: What does apdUpperThreshPeakExceededCnt actually count?  

    Regards

    Rahul 

  • Hi Rahul,

    I have already informed by the aforementioned article, although it's informative it doesn't reply to the above. It doesn't provide information regarding agcinterval and it says that the counter resets after an attack, so does that mean that if a second simultaneously attack is needed it won;t happen until a defined value of clock cycle exceeded ? 

    Furthermore, I don't have a completed answer for using matlab to run the ADRV, regarding gain table indices, hbunderrangemid/low/thresses, hboverloadpowermode.

    We are working on your device every day in order to make it better, so providing  information  directly without reference to the guide would be very helpful.

    Regards

    John

  • Hi John, 

    I have already informed by the aforementioned article, although it's informative it doesn't reply to the above. It doesn't provide information regarding agcinterval and it says that the counter resets after an attack, so does that mean that if a second simultaneously attack is needed it won;t happen until a defined value of clock cycle exceeded ? 

    The main difference between normal mode and fast attack mode is that in normal mode the gain is adjusted during a certain interval i.e., your gain update period whereas in fast attack mode the gain is adjusted as soon as the counter exceeds.

    Now assume that a peak power of incoming signal is around 5dBm and the threshold is set to 0dBm. In both the modes of AGC, the counter goes high if the signal peak power exceeds 0dBm and then a 2dB of attenuation is implemented assuming the step size is of 2dB. Here the signal's peak power is 3dBm after the attenuation. It is still above the threshold, so the counter gets reset and wait for certain number of clock cycle to flag it and then gain is adjusted. This is the working mechanism. I hope this is clear now. 

    Furthermore, I don't have a completed answer for using matlab to run the ADRV, regarding gain table indices, hbunderrangemid/low/thresses, hboverloadpowermode.

    We recommend the customer to first try the configuration in TES and once happy with the configuration then use other platforms such MATLAB, C or python. You can generate the MATLAB code under the sample code tab. This will generate the MATLAB code as per the configuration done by the user. Please find the relevant link related to MATLAB code

     Produce and Edit MATLAB Sample Code  

    Some configuration that can not be done using TES, the user can change those setting using python interface, which allows the user to use TES along with Python interface for changing necessary setting which is not available in TES. In order to do so, please open the python script provided in "ADRV9001 Transceiver Evaluation Software\Examples\Python". Than modify the main file  in order to update the settings as per the users requirement.

    Note: This feature is only available for python. 

    For example, in the below example I can read the register and read the external path delay using python while TES is in use. There are few examples provided such as reading the register value, calculating the path delay, inspecting the channels, configuring the channels etc. The rest of configuration which are not provided is the users job to write the code as per the requirement.  

    In order to know the API sequence and the details of the data structure you can use the driver debugger option as shown below 

    This will give the sequence of API used while programming as well as any change made by the user after programming. Again here we have 4 language that user can chose as shown below

    For instance, after programming I would like to change the normal attack mode to fast attack mode, and as you know we can not do that in TES directly. So first, I will figure out which API is needed to change the attack mode. First I will opt for Python option in the driver debugger and then go the gain control tab 

    Then I will modify some setting in gain control tab, for instance max gain changing from 255 to 250. Then go back to the receiver tab, you will find the APIs are updated in the driver debugger. This give us a code in Python which can be used for changing the configuration using the python interface. 

    Then updating the code to enable the fast recovery can be done in python. As you can see from the below screen grab, I was able to change the attack mode to fast attack. 

    Regarding the gain table, this gain table is loaded from the path "ADRV9001 Transceiver Evaluation Software\Resources\Adi.Adrv9001.GainTables\public" during initialization. Once TES is programmed you can check if the gain table is loaded correctly by cross checking the gain table file in the path w.r.t the gain table shown under the Gain control tab. 

    If you are not seeing a proper gain table being loaded then the file might have been modified in the path "ADRV9001 Transceiver Evaluation Software\Resources\Adi.Adrv9001.GainTables\public".


    We are working on your device every day in order to make it better, so providing  information  directly without reference to the guide would be very helpful.

    We appreciate the effort you’re putting in to make things work! Blush The User Guide is a valuable resource that we strongly encourage you to review before posting questions. It contains in-depth details that are often difficult to convey fully in a forum post. Many users find that reading the guide not only answers their current questions but also helps prevent future issues. If, after reviewing the guide, you still find information missing or unclear, we’re absolutely here to help you out.

     

    Can I know what are we trying to achieve here? Whats the end goal, so that we can provide you with proper guidance. 

    Regards

    Rahul

  • Thank you for your detailed answer, and your time. Do we have information about hbunderangelow/midthresh? Whenever we change apd thresholds the hbunderrangegighthresh and hbhighthresh are changing too, using the equation it the guide. But there is not equation for the other two thresholds. Furthermore, by sampling code in C I observed with my manager that these 2 values are always equal to:

    hbUnderRangeLowThresh = 5826,
    hbUnderRangeMidThresh = 8230,
    Second, what is the command hboverloadpower mode does? I have read the guide but i want to know whats the primarly target of this particular command is practical uses
Reply
  • Thank you for your detailed answer, and your time. Do we have information about hbunderangelow/midthresh? Whenever we change apd thresholds the hbunderrangegighthresh and hbhighthresh are changing too, using the equation it the guide. But there is not equation for the other two thresholds. Furthermore, by sampling code in C I observed with my manager that these 2 values are always equal to:

    hbUnderRangeLowThresh = 5826,
    hbUnderRangeMidThresh = 8230,
    Second, what is the command hboverloadpower mode does? I have read the guide but i want to know whats the primarly target of this particular command is practical uses
Children
No Data