Other Parts Discussed in Thread: AWR1642
Tool/software: Code Composer Studio
Hello,
We are developling the AWR1642 EVB,now we hope we can get the 1DFFT results with CAN tools or with UART,how should we modify the code of mmw demo?
Thanks!
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: Code Composer Studio
Hello,
We are developling the AWR1642 EVB,now we hope we can get the 1DFFT results with CAN tools or with UART,how should we modify the code of mmw demo?
Thanks!
Hi
In dss_main.c:: MmwDemo_dssSendProcessOutputToMSS, you can add an extra message to send the 1D FFT output through UART. The 1D FFT output for one whole frame is stored in the variable radarCube.
You can modify the code corresponding to the rangeDopplerHeatMap to send the radarCube out.
if (pGuiMonSel->rangeDopplerHeatMap == 1)
{
itemPayloadLen = obj->numRangeBins * obj->numDopplerBins * sizeof(uint16_t);
message.body.detObj.tlv[tlvIdx].length = itemPayloadLen;
message.body.detObj.tlv[tlvIdx].type = MMWDEMO_OUTPUT_MSG_RANGE_DOPPLER_HEAT_MAP;
message.body.detObj.tlv[tlvIdx].address = (uint32_t) obj->detMatrix;
tlvIdx++;
totalPacketLen += sizeof(MmwDemo_output_message_tl) + itemPayloadLen;
}
ff you modify the above code as follows, it will send the radarCube instead of the rangedoppler heat map
if (1)
{
itemPayloadLen = obj->numVirtualAntAzim* obj->numRangeBins * obj->numDopplerBins * sizeof(uint16_t)*2;
message.body.detObj.tlv[tlvIdx].length = itemPayloadLen;
message.body.detObj.tlv[tlvIdx].type = MMWDEMO_OUTPUT_MSG_RANGE_DOPPLER_HEAT_MAP;
message.body.detObj.tlv[tlvIdx].address = (uint32_t) obj->radarCube;
tlvIdx++;
totalPacketLen += sizeof(MmwDemo_output_message_tl) + itemPayloadLen;
}
Set your frame rate to something small 0.25 Hz, since it would take a long time to transfer the 1D FFT output for a single frame
Regards
Anil
Hi,
No. It cannot be seen in the visualizer. You'd have to write your own visualizer to view the data.
Regards
Anil
Hello Anil,
I follow the solution you suggested above but I still encounter some failure!
Could you tell me how to set the frame rate to 0.25 Hz?
Because when i tried to set Frame periodicity = 4000 ms to achieve 0.25 Hz frame rate as suggested, it always generated some configuration errors! I discover that in both the visualizer and the Radar mmwave_calculation, the lowest allowable value of Frame rate is 1Hz, so I just wonder how you can do that?
When I set the frame rate equal to or higher than 1Hz, then some time issues are raised due to the long time it takes to transfer 1D FFT to output?
I also tried to adjust some variable like loop number and Idle time but it seems doesnt help! I set idle time up to 1000 usec and loop number down to 16. If I set idle time above this value then I encounter some configuration error again!
Could you suggest me some solution for this?
Thanks!
Best regards,
Taiga
Hi Taiga,
Apologies. I just realized that the slowest framerate is ~1Hz, and it seems as though the UART data rate isn't sufficient to transfer the radarcube in 1Hz. Could you share the exact error you are seeing when you set the frame rate to 1Hz?
My suggestion would be to reduce the size of the radarcube.
Could you try again with the 64 ADC samples per chirp, and only 16 chirps? You could try the following configuration.
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 3 0
adcCfg 2 1
adcbufCfg -1 0 0 1 0
profileCfg 0 77 7 7 58 0 0 68 1 64 5500 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
frameCfg 0 0 16 0 1000 1 0
lowPower 0 0
guiMonitor -1 1 1 1 1 1 1
cfarCfg -1 0 2 8 4 4 0 5120
cfarCfg -1 1 0 8 4 4 0 5120
peakGrouping -1 1 0 0 1 224
multiObjBeamForming -1 1 0.5
calibDcRangeSig -1 0 -5 8 256
extendedMaxVelocity -1 0
clutterRemoval -1 0
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
sensorStart
Regards
Anil