xWRL6432 MMWAVE-L-SDK  05.04.00.01
aoaprochwa.h File Reference

Introduction

Implements Datapath Angle of Arrival processing functionality using the HWA. Based on the RF parameters, rangeFFT output and detected points aoaProc configures hardware accelerator FFT engine in FFT mode, does recalculation for detected points doppler FFT, doppler phase compensation, rearranges the data in memory for elevation-azimuth FFT and finally outputs the elevation and azimuth indices.

It also configures data input and output EDMA channels to bring data in and out of AoA Processing memory during Doppler FFT recalculation and AoA calculation.

The process is triggered in the inter-frame processing time after 2D-FFT and detected points.

After HWA processing is done, it generates interrupt to AoA DPU, at the same time triggers EDMA data output channel to copy out elevation-azimuth indices. EDMA interrupt done interrupt is triggered by EDMA hardware after the copy is completed.

Go to the source code of this file.

Data Structures

struct  DPU_AoAProcHWA_InitParams
 AoAProc DPU initial configuration parameters. More...
 
struct  DPU_AoAProcHWA_HwaCfg
 AoAProc DPU HWA configuration parameters. More...
 
struct  DPU_AoAProcHWA_EdmaCfg
 AoAProc DPU EDMA configuration parameters. More...
 
struct  DPU_AoAProcHWA_HW_Resources
 AoA DPU HW configuration parameters. More...
 
struct  DPU_AoAProcHWA_maxDetMatrix_Resources
 AoA DPU HW configuration parameters. More...
 
struct  DPU_AoAProcHWA_StaticConfig
 AoA DPU static configuration parameters. More...
 
struct  DPU_AoAProcHWA_Config
 AoAProc DPU configuration parameters. More...
 
struct  DPU_AoAProcHWA_OutParams
 DPU processing output parameters. More...
 

Macros

#define DPU_AOAPROCHWA_EINVAL   (DP_ERRNO_AOA_PROC_BASE-1)
 Error Code: Invalid argument. More...
 
#define DPU_AOAPROCHWA_ENOMEM   (DP_ERRNO_AOA_PROC_BASE-2)
 Error Code: Out of memory. More...
 
#define DPU_AOAPROCHWA_EINPROGRESS   (DP_ERRNO_AOA_PROC_BASE-3)
 Error Code: DPU is in progress. More...
 
#define DPU_AOAPROCHWA_EHWARES   (DP_ERRNO_AOA_PROC_BASE-4)
 Error Code: Out of HWA resources. More...
 
#define DPU_AOAPROCHWA_ESEMA   (DP_ERRNO_AOA_PROC_BASE-5)
 Error Code: Semaphore creation failed. More...
 
#define DPU_AOAPROCHWA_ESEMASTATUS   (DP_ERRNO_AOA_PROC_BASE-6)
 Error Code: Bad semaphore status. More...
 
#define DPU_AOAPROCHWA_EEXCEEDHWAMEM   (DP_ERRNO_AOA_PROC_BASE-7)
 Error Code: Configure parameters exceed HWA memory bank size. More...
 
#define DPU_AOAPROCHWA_ECUBEFORMAT   (DP_ERRNO_AOA_PROC_BASE-8)
 Error Code: Unsupported radar cube format. More...
 
#define DPU_AOAPROCHWA_EDETMFORMAT   (DP_ERRNO_AOA_PROC_BASE-9)
 Error Code: Unsupported detection matrix format. More...
 
#define DPU_AOAPROCHWA_EDETMSIZE   (DP_ERRNO_AOA_PROC_BASE-10)
 Error Code: Insufficient detection matrix size. More...
 
#define DPU_AOAPROCHWA_EWINDSIZE   (DP_ERRNO_AOA_PROC_BASE-11)
 Error Code: Wrong window size. More...
 
#define DPU_AOAPROCHWA_MAX_NUM_HWA_PARAMSET   12
 Maximum number of HWA paramsets used by DPU. Computed as follows:
(1 for Doppler-FFT)*2(ping/pong) + (2 for Doppler-Compensation for Tx1 and Tx2)*2(ping/pong) + (3- for azimuth, elevation FFT, finding the maxima)*2(ping/pong) = 10. More...
 
#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT   6
 Number of HWA paramsets used by DPU for 2D FFT + Doppler compensation Computed as follows:
(1 for Doppler FFT and 2 for Doppler Compensation - for 1st Tx and 2nd Tx)*2(ping/pong) = 6. More...
 
#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT_ONLY   2
 Number of HWA paramsets used by DPU for 2D FFT if numTx antennas = 1 (Doppler compensation is not required) Computed as follows:
(1 for Doppler FFT)*2(ping/pong) = 2. More...
 
#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_AOA   6
 Number of HWA paramsets used by DPU for AoA Computed as follows:
(1 paramset for azimuth FFT + 1 paramset for elevation FFT + 1-paramset to find the maxima)*2(ping/pong) = 6. More...
 
#define DPU_AOAPROCHWA_NUM_HWA_MEMBANKS   4
 Number of HWA memory banks needed. More...
 

Typedefs

typedef void * DPU_AoAProcHWA_Handle
 Handle for AoA Processing DPU. More...
 

Functions

DPU_AoAProcHWA_Handle DPU_AoAProcHWA_init (DPU_AoAProcHWA_InitParams *initCfg, int32_t *errCode)
 
int32_t DPU_AoAProcHWA_Dopplerprocess (DPU_AoAProcHWA_Handle handle, DPU_AoAProcHWA_OutParams *outParams)
 
int32_t DPU_AoAProcHWA_AoAprocess (DPU_AoAProcHWA_Handle handle, DPU_AoAProcHWA_OutParams *outParams)
 
int32_t DPU_AoAProcHWA_deinit (DPU_AoAProcHWA_Handle handle)
 
int32_t DPU_AoAProcHWA_config (DPU_AoAProcHWA_Handle handle, DPU_AoAProcHWA_Config *cfg)
 

Macro Definition Documentation

◆ DPU_AOAPROCHWA_MAX_NUM_HWA_PARAMSET

#define DPU_AOAPROCHWA_MAX_NUM_HWA_PARAMSET   12

Maximum number of HWA paramsets used by DPU. Computed as follows:
(1 for Doppler-FFT)*2(ping/pong) + (2 for Doppler-Compensation for Tx1 and Tx2)*2(ping/pong) + (3- for azimuth, elevation FFT, finding the maxima)*2(ping/pong) = 10.

◆ DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT

#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT   6

Number of HWA paramsets used by DPU for 2D FFT + Doppler compensation Computed as follows:
(1 for Doppler FFT and 2 for Doppler Compensation - for 1st Tx and 2nd Tx)*2(ping/pong) = 6.

◆ DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT_ONLY

#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT_ONLY   2

Number of HWA paramsets used by DPU for 2D FFT if numTx antennas = 1 (Doppler compensation is not required) Computed as follows:
(1 for Doppler FFT)*2(ping/pong) = 2.

◆ DPU_AOAPROCHWA_NUM_HWA_PARAMSET_AOA

#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_AOA   6

Number of HWA paramsets used by DPU for AoA Computed as follows:
(1 paramset for azimuth FFT + 1 paramset for elevation FFT + 1-paramset to find the maxima)*2(ping/pong) = 6.

◆ DPU_AOAPROCHWA_NUM_HWA_MEMBANKS

#define DPU_AOAPROCHWA_NUM_HWA_MEMBANKS   4

Number of HWA memory banks needed.

Typedef Documentation

◆ DPU_AoAProcHWA_Handle

typedef void* DPU_AoAProcHWA_Handle

Handle for AoA Processing DPU.

Function Documentation

◆ DPU_AoAProcHWA_init()

DPU_AoAProcHWA_Handle DPU_AoAProcHWA_init ( DPU_AoAProcHWA_InitParams initCfg,
int32_t *  errCode 
)

◆ DPU_AoAProcHWA_Dopplerprocess()

int32_t DPU_AoAProcHWA_Dopplerprocess ( DPU_AoAProcHWA_Handle  handle,
DPU_AoAProcHWA_OutParams outParams 
)

◆ DPU_AoAProcHWA_AoAprocess()

int32_t DPU_AoAProcHWA_AoAprocess ( DPU_AoAProcHWA_Handle  handle,
DPU_AoAProcHWA_OutParams outParams 
)

◆ DPU_AoAProcHWA_deinit()

int32_t DPU_AoAProcHWA_deinit ( DPU_AoAProcHWA_Handle  handle)

◆ DPU_AoAProcHWA_config()

int32_t DPU_AoAProcHWA_config ( DPU_AoAProcHWA_Handle  handle,
DPU_AoAProcHWA_Config cfg 
)