Api Programming - Analog Devices ADRV9001 User Manual

Hide thumbs Also See for ADRV9001:
Table of Contents

Advertisement

Preliminary Technical Data
Freq. Discriminator
NB Prog. FIR
Low-pass filtering for smoothing the output FD signal
Resampler
Contact an Analog Devices Application Engineer for the specific filter profiles of Rx Programmable FIR and NB Programmable FIR.
In summary, in the frequency deviation output mode, the rxnbdem can provide more important resources as followed:
A 2k-depth FIFO,
A spur-free carrier frequency offset correction,
A profile-switchable channel filter,
An accurate digital frequency discriminator,
A low-pass filter or a pulse shaping filter for the frequency deviation, and
A precise frequency deviation resampler.
All above resources can be manually enabled and controlled by the BBIC.

API PROGRAMMING

Configuration for blocks in rxnbdem subsystem is profile related on so far, all relative blocks are enabled or bypassed in profile by
selecting Rx "IQ" mode or "Frequency Deviation" mode, more user configurable capability will be added in later software release.
Carrier Frequency Corrector API Programming
The API function adi_adrv9001_Rx_FrequencyCorrection_Set() is provided to set CFC frequency word, as mentioned earlier, the
frequency correction word should be in the range of min (±20k,20% of sample rate) (will change the limitation in later software). And the
frequency correct operation can take effect immediately or at the start of next available frame by setting the parameter "immediate" to
"Ture" or "False".
Rx Programmable FIR Filter API Programming
Profile predefined Rx PFIR coefficients or customized Rx PFIR coefficients are atomically loaded during chip initialization, there is no
need for baseband processor to call any PFIR coefficients loading API function.
The configuration structure adi_adrv9001_PfirWbNbBuffer_t is defined as the following for the programming FIR filter coefficients.
typedef struct adi_adrv9001_PfirWbNbBuffer
{
uint8_t
adi_adrv9001_PfirSymmetric_e symmetricSel; /* symmetric selection */
adi_adrv9001_PfirNumTaps_e
adi_adrv9001_PfirGain_e
int32_t
} adi_adrv9001_PfirWbNbBuffer_t;
Baseband processor can prepare new FPIR coefficients in one or more adi_adrv9001_PfirWbNbBuffer_t instances and call the API
function adi_adrv9001_arm_NextPfir_Set() in "PRIMED" or "RF_ENABLED" state to load each required instance into ADRV9001
hardware. Multiple PFIRs using the same coefficients can be loaded in a single call. However, note that the old coefficients remain in
effect until adi_adrv9001_arm_Profile_Switch() is called.
The API function adi_adrv9001_arm_NextRxChannelFilter_Set() calls adi_adrv9001_arm_NextPfir_Set() once or twice as needed to
update channel filter coefficients for Rx1, Rx2, or both. Either PFIR pointer may be NULL to prevent modifying the corresponding PFIR
but it is an error if both PFIR pointers are NULL.
The ADRV9001 performs the PFIR coefficients switch for all channels that have new coefficients prepared and waiting when the API
command adi_adrv9001_arm_Profile_Switch() is called. If ADRV9001 is in PRIMED state, the new coefficients will take effect on the
next transition to RF_ENABLED. If it is in RF_ENABLED, they take effect immediately.
An example python code for the RX PFIR coefficients switch is in below:
pfir_dmr_12p5k_coeff = [1,4,10,14,10,-8,-36,-56,-43,18,110,176,140,-36,-296,\
-477,-385,65,717,1164,945,-116,-1630,-2655,-2161,224,3612,5917,4823,-660,-8930,\
-15835,-16492,-8267,6681,21178,26054,15428,-8503,-34452,-46572,-33192,4645,50326,\
77802,65235,9575,-66663,-122526,-118715,-41686,81623,189288,211654,109809,-93600,\
numCoeff;
tapsSel;
gainSel;
coefficients[ADI_ADRV9001_WB_NB_PFIR_COEFS_MAX_SIZE]; /* coefficients */
Enabled with D = 1
Pulse Shaping
Disable
/* number of coefficients */
/* taps selection */
/* gain selection */
Rev. PrC | Page 189 of 338
UG-1828
Enable for manual control

Hide quick links:

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ADRV9001 and is the answer not in the manual?

This manual is also suitable for:

Adrv9002Adrv9003Adrv9004

Table of Contents

Save PDF