This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
Hi ,
For MRR Beamsteering example, 1D (range) FFT processing performed by the HWA .
I'd like to know ,
1. What's HWA input mode? Mapped or Isolated ?
2. What's radarCube formats?
Where can I check above questions in the source code?
Thanks
BRs
Bruce
Hi,
The HWA input is Mapped. This can be seen in the HWA configuration.
1. What's HWA input mode? Mapped or Isolated ?
The radar cube format is transposed, ready to be processed by 2D FFT
It is as follows
( chirp1, sample 1 (Rx1,2,3,4); chirp2 sample 1 ; ... chirpN sample 1
chirp 1 sample 2; .. chrip N sample 2
...
2. What's radarCube formats?
Hi Cesar,
For "HWA input is Mapped "and "radar cube format" you mentioned, is it like the diagram shown as below?
./ti/mmwave_sdk_03_06_02_00-LTS/packages/ti/datapath/dpu/rangeproc/docs/doxygen/html/dpu_rangehwa.html
Or any other similar diagram to show it?
Thanks
BRs
Bruce
Hi Cesar,
Where I can find HWA configuration(Mapped input mode) in MRR Beamsteering source codes?
Thanks
BRs
Bruce
Hi,
The HWA State Machine Register FFT1DEN controls the ADC buffer sharing mode.
For Range FFT it is enabled in dss_main.c in
Hi Cesar,
Is it correct for below understanding?
"HWA_FEATURE_BIT_ENABLE" => Mapped
" HWA_FEATURE_BIT_DISABLE" => Isolated
Yes,
Please view the HWA documentation.
https://www.ti.com/lit/ug/swru526b/swru526b.pdf
Table 2 - State Machine Registers
thank you
Cesar
Hi Cesar,
For MRR in MmwDemo_interFrameProcessing() function, I am confused for Slow chirp .
For radarCube[slowChirpOff] to obj->dstPingPong[0], I copy related codes and have the chart to show my understanding.
void MmwDemo_interFrameProcessing(MmwDemo_DSS_DataPathObj *obj, uint8_t subframeIndx){
...
slowChirpOff = obj->numDopplerBins * obj->numVirtualAntennas;
...
// 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]);
..
}
Config_2d_and_Azm_Edma() => EDMAutil_configType2b()
In EDMAutil_configType2b() function for this case, related EDMA config parameters are as below,
bCount = 128;
cCount = 4
sourceBindex = 16
destinationBindex = 4
sourceCindex = 4
destinationCindex=512
The Radar cube and dstPingPong are as the picture:
The value copied from Radar cube[512] to dstPingPong [0], is it correct? Or any misunderstanding?
Thanks
BRs
Bruce
Hi,
Please find attached some documentation about the MRR Beamsteering demo.
This is all the documentation we have available for this demo.
For additional information please study the source code provided.
thank you
Cesar
Hi Cesar,
Thanks for the document, one thing I'd to clarity for the source codes about MRR.
Since array size of dstPingPong is 256, but cCount is 4 about below operation.
Will it repeat 4 times automatically or just once ?
if it's just once, why set cCount as 4?
In EDMAutil_configType2b() function for this case, related EDMA config parameters are as below,
bCount = 128;
cCount = 4
sourceBindex = 16
destinationBindex = 4
sourceCindex = 4
destinationCindex=512
Hi,
CCount is the number of Rx Antennae if I remember correctly. So, it will repeat 4 times.
For EDMA configuration I recommend you view the online training
https://www.ti.com/video/4163923727001
After viewing this you can refer to the EDMA chapter in the TRM
https://www.ti.com/lit/ug/swru520e/swru520e.pdf
Figure 13-5, 13-6, 13-7 help understand the EDAM transfer configuration
thank you
Cesar
Hi Cesar,
Yes, I have read EDMA chapter in the TRM.
From the codes , CCount is the number of Rx Antennae, so it will repeat 4 times.
Then My question is:
Since array size of dstPingPong is 256, but cCount is 4 .
/* 2D FFT. */
MMW_ALLOC_BUF(dstPingPong, cmplx16ReIm_t, heapL1start, MMWDEMO_MEMORY_ALLOC_DOUBLE_WORD_ALIGN, 2 * obj->numDopplerBins)
In EDMAutil_configType2b() function for this case, if it repeats 4 times, it will exceed 256. (128*4 = 512)
Any EDMA configuration I missed?
Thanks
BRs
Bruce
Hi,
I understand your question.
I would need to review and run the code
Unfortunately I will only be able to do that next week
thank you
Cesar
I was a able to look at the code earlier than what I have thought
EDMAutil_configType2b() configures a SyncAB type transfer.
Please review the TRM block diagram for this type of transfer.
In AB-synchronized transfer, each EDMA sync event performs the transfer of one frame.
In this case only 1 Rx will be transferred in one frame. This is the reason why the size of the dstPingPong buffer is sufficient
thank you
Cesar
Hi Cesar,
Thanks for your reply.
Another question is about EDMAutil_configHwaTranspose() function.
It is SyncAB type transfer as well, how does it repeat 128 times(cCount = numChirpsPerFrame / 2) ?
It will transfer HWA data to radar Cube as below chart.
Is any different setting between EDMAutil_configType2b() and EDMAutil_configHwaTranspose() ?
EDMAutil_configType2b() performs the transfer of one frame.
EDMAutil_configHwaTranspose() performs 128 times frame by frame.
EDMAutil_configHwaTranspose() =>
config.paramSetConfig.sourceAddress = (uint32_t)pSrcAddress;
config.paramSetConfig.destinationAddress = (uint32_t)pDestAddress;
config.paramSetConfig.aCount = numAnt * 4;
config.paramSetConfig.bCount = numRangeBins;
config.paramSetConfig.cCount = numChirpsPerFrame / 2; => 128 times
config.paramSetConfig.bCountReload = 0; // config.paramSetConfig.bCount;
config.paramSetConfig.sourceBindex = numAnt * 4;
config.paramSetConfig.destinationBindex = numChirpsPerFrame * numAnt * 4;
config.paramSetConfig.sourceCindex = 0;
config.paramSetConfig.destinationCindex = numAnt * 4 * 2;
config.paramSetConfig.linkAddress = EDMA_NULL_LINK_ADDRESS;
config.paramSetConfig.transferType = (uint8_t)EDMA3_SYNC_AB;
Thanks
Bruce
Hi
You will notice that transpose transfer has intermediate chaining enabled. So, a new EDMA sync event is created after one frame teansfer has completed. This EDMA event is produced by the EDMA chained.
Thank you
Cesar