Hello team,
Here's question from customer. Why the HWA need to be re-config at the start of every frame processing?
Suppose if using one subframe, we don't need to re-config the HWA all the time because the range FFT and dopper FFT are using different hwaParamCfg[paramsetIdx]
Please let me know if I have any mis-understanding here.
Thanks.
The reference code is copy from
"C:\ti\mmwave_automotive_toolbox_3_3_0\labs\lab0011_mrr_beamsteering\src\dss\dss_data_path.c"
void MmwDemo_interFrameProcessing(MmwDemo_DSS_DataPathObj *obj, uint8_t subframeIndx)
{
uint32_t rangeIdx, detIdx1, numDetObjPerCfar, numDetDopplerLine1D, numDetObj1D, numDetObj2D;
uint32_t dmOff;
uint32_t slowChirpOff;
volatile uint32_t startTime;
volatile uint32_t startTimeWait;
uint32_t waitingTime = 0;
uint32_t pingPongIdx = 0;
uint32_t dopplerLine, dopplerLineNext;
startTime = Cycleprofiler_getTimeStamp();
//only used for MRR:
slowChirpOff = obj->numDopplerBins * obj->numVirtualAntennas;
//Configure the EDMA for 2D HWA usage, either subframe type
MmwDemo_config2D_EDMA(obj);
//This HWA program fills obj->detMatrix. For MRR, it does an FFT on
//the first 128 "fast" chirps per virtual antenna per all range bins.
MmwDemo_config2D_HWA(obj, subframeIndx);
MmwDemo_dataPathTrigger2D(obj);
MmwDemo_waitEndOf2D_HWA();
if (obj->processingPath == MAX_VEL_ENH_PROCESSING)
{
//setup the first virtual antenna's data to be transferred.
//This needs to start with chirp 128 - the "slow" chirps.
Config_2d_and_Azm_Edma(obj, 0,
(uint8_t *)&obj->radarCube[slowChirpOff]);
//Kick the first transfer for secondDimFFTandLog2Computation().
MmwDemo_startDmaTransfer(obj->edmaHandle[EDMA_INSTANCE_DSS],
MRR_SF0_EDMA_CH_2D_IN_PING,
NULL,
0);
}
Regards,
Wesley