Other Parts Discussed in Thread: AWR2944
To test waveform configurtion with the follwing command list
sensorStop flushCfg dfeDataOutputMode 4 channelCfg 15 15 0 adcCfg 2 0 adcbufCfg -1 1 0 0 1 lowPower 0 0 profileCfg 0 76.175 4.42 1.2 21.98 0 0 8.30078125 1.0 512 25000.0 0 0 42 advChirpCfg 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 advChirpCfg 1 0 1 0 0 0 0 0 1 0 1024 1 0 0 0 0 advChirpCfg 2 0 1 0 0 0 0 0 1 0 2048 1 0 0 0 0 advChirpCfg 3 0 1 0 0 0 0 0 1 0 3072 1 0 0 0 0 advChirpCfg 4 0 1 0 0 0 0 0 1 0 4096 1 0 0 0 0 advChirpCfg 5 0 1 0 0 0 0 0 1 0 5120 1 0 0 0 0 advChirpCfg 6 0 1 0 0 0 0 0 1 0 6144 1 0 0 0 0 advChirpCfg 7 0 1 0 0 0 0 0 64 1 7168 64 0 0 0 0 advChirpCfg 8 0 1 0 0 0 0 0 64 1 8192 64 0 0 0 0 advChirpCfg 9 0 1 0 0 0 0 0 64 1 9216 64 0 0 0 0 advChirpCfg 10 0 1 0 0 0 0 0 64 1 10240 64 0 0 0 0 LUTDataCfg 0 0 LUTDataCfg 1 43333333.33332825 LUTDataCfg 2 0 LUTDataCfg 3 0.17999999999999972 LUTDataCfg 4 0 LUTDataCfg 5 15 LUTDataCfg 6 0 LUTDataCfg 7 0.0 241.875 123.75 5.625 247.5 129.375 11.25 253.125 135.0 16.875 258.75 140.625 22.5 264.375 146.25 28.125 270.0 151.875 33.75 275.625 157.5 39.375 281.25 163.125 45.0 286.875 168.75 50.625 292.5 174.375 56.25 298.125 180.0 61.875 303.75 185.625 67.5 309.375 191.25 73.125 315.0 196.875 78.75 320.625 202.5 84.375 326.25 208.125 90.0 331.875 213.75 95.625 337.5 219.375 101.25 343.125 225.0 106.875 348.75 230.625 112.5 354.375 236.25 118.125 LUTDataCfg 8 0.0 292.5 225.0 157.5 90.0 22.5 315.0 247.5 180.0 112.5 45.0 337.5 270.0 202.5 135.0 67.5 0.0 292.5 225.0 157.5 90.0 22.5 315.0 247.5 180.0 112.5 45.0 337.5 270.0 202.5 135.0 67.5 0.0 292.5 225.0 157.5 90.0 22.5 315.0 247.5 180.0 112.5 45.0 337.5 270.0 202.5 135.0 67.5 0.0 292.5 225.0 157.5 90.0 22.5 315.0 247.5 180.0 112.5 45.0 337.5 270.0 202.5 135.0 67.5 LUTDataCfg 9 0.0 185.625 11.25 196.875 22.5 208.125 33.75 219.375 45.0 230.625 56.25 241.875 67.5 253.125 78.75 264.375 90.0 275.625 101.25 286.875 112.5 298.125 123.75 309.375 135.0 320.625 146.25 331.875 157.5 343.125 168.75 354.375 180.0 5.625 191.25 16.875 202.5 28.125 213.75 39.375 225.0 50.625 236.25 61.875 247.5 73.125 258.75 84.375 270.0 95.625 281.25 106.875 292.5 118.125 303.75 129.375 315.0 140.625 326.25 151.875 337.5 163.125 348.75 174.375 LUTDataCfg 10 0.0 151.875 303.75 95.625 247.5 39.375 191.25 343.125 135.0 286.875 78.75 230.625 22.5 174.375 326.25 118.125 270.0 61.875 213.75 5.625 157.5 309.375 101.25 253.125 45.0 196.875 348.75 140.625 292.5 84.375 236.25 28.125 180.0 331.875 123.75 275.625 67.5 219.375 11.25 163.125 315.0 106.875 258.75 50.625 202.5 354.375 146.25 298.125 90.0 241.875 33.75 185.625 337.5 129.375 281.25 73.125 225.0 16.875 168.75 320.625 112.5 264.375 56.25 208.125 frameCfg 0 0 64 16 512 3.41704 2 0 guiMonitor -1 2 1 0 0 0 1 cfarCfg -1 1 3 16 0 0 1 24.0 0 7 0 1 cfarCfg -1 0 3 16 0 0 1 15.0 0 7 0 1 compressionCfg -1 1 0 0.5 8 intfMitigCfg -1 15 18 localMaxCfg -1 6 40 antennaCalibParams 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 measureRangeBiasAndRxChanPhase 0 1.5 0.2 analogMonitor 0 0 calibData 0 0 0 aoaFovCfg -1 -90 90 -90 90 sensorStart
It starts ok.
Callback of mmwave is:
static int32_t MmwDemo_eventCallbackFxn(uint8_t devIndex, uint16_t msgId, uint16_t sbId, uint16_t sbLen, uint8_t *payload) { uint16_t asyncSB = RL_GET_SBID_FROM_UNIQ_SBID(sbId); /* Process the received message: */ CLI_write("[Msg Id: 0x%x] [Sub Block Id: 0x%x]\n", msgId, asyncSB);
it prints
Done mmwDemo:/> aoaFovCfg -1 -90 90 -90 90 Done mmwDemo:/> sensorStart [Msg Id: 0x80] [Sub Block Id: 0x4] Debug: Init Calibration Status = 0xffe All commands are sent, waiting for response from device [Msg Id: 0x80] [Sub Block Id: 0x12] Sensor Started Done
Also, I added a frameStart ISR in mss,
#define WAVEFORM_CFG_INTR CSL_MSS_INTR_DFE_FRAME_START_TO_MSS static void frame_start_ISR (void *arg) { // int32_t errCode; // MMWave_MCB* ptrMMWaveMCB = (MMWave_MCB*)arg; // updateAdvChirpCfg(ptrMMWaveMCB, &errCode); gFrameCounter++; SemaphoreP_post(&gMmwMssMCB.UartExportSemHandle); HwiP_clearInt((uint32_t)WAVEFORM_CFG_INTR); return; } int32_t register_frame_start_intr(MMWave_Handle ptrMMwaveHandle) { int32_t retVal = 0; int32_t status = SystemP_SUCCESS; HwiP_Params hwiPrms; HwiP_Params_init(&hwiPrms); hwiPrms.intNum = WAVEFORM_CFG_INTR; hwiPrms.callback = &frame_start_ISR ; hwiPrms.args = (void *)ptrMMwaveHandle; status = HwiP_construct(&frameStartHwiObject, &hwiPrms); if(SystemP_SUCCESS != status) { retVal = -1; } else { HwiP_enableInt((uint32_t)WAVEFORM_CFG_INTR); } return 0; }
if frameStart INTR occurs, it should print the frameCnt in mmwDemo_mssUartDataExportTask
void mmwDemo_mssUartDataExportTask(void* args) { while (1) { /* Export the Data: */ CLI_write ("Frame: %d\n", getFrameCounter()); SemaphoreP_pend(&gMmwMssMCB.UartExportSemHandle, SystemP_WAIT_FOREVER); if ((gMmwMssMCB.ptrResult.size[0]) == sizeof(DPC_ObjectDetection_ExecuteResult)){ MmwDemo_handleObjectDetResult(); } } }
But it seems no frame trigged, and mmwave report no error.
what' wrong with the waveform configuration, how to fix this problem.