Other Parts Discussed in Thread: MMWCAS-RF-EVM
our condition: MMWCAS-RF-EVM and host cpu(ARM);
My configuration for BPM is as follows: Only one antenna channel is enabled, all receiving channels are enabled. I set two chirp, The first chirp is in the 0 phase and the second chirp is in the 180 phase.The frame configuration is:chirpStartIdx:0 chirpEndIdx:1 numloops:64.
We watched the doppler fft data.We think BPM don't work because there is a spectrum only in a specific place.
The relevant code is as follows:
bpmCfgArgs_master[0].chirpEndIdx = 0;
bpmCfgArgs_master[0.chirpStartIdx = 0;
bpmCfgArgs_master[0].constBpmVal =0;
bpmCfgArgs_master[0].reserved =0;
bpmCfgArgs_master[1].chirpEndIdx = 0;
bpmCfgArgs_master[1].chirpStartIdx = 0;
bpmCfgArgs_master[1].constBpmVal =2;
bpmCfgArgs_master[1].reserved =0;
bpmCfgArgs_slaver1[0].chirpEndIdx = 0;
bpmCfgArgs_slaver1[0.chirpStartIdx = 0;
bpmCfgArgs_slaver1[0].constBpmVal =0;
bpmCfgArgs_slaver1[0].reserved =0;
bpmCfgArgs_slaver1[1].chirpEndIdx = 0;
bpmCfgArgs_slaver1[1].chirpStartIdx = 0;
bpmCfgArgs_slaver1[1].constBpmVal =0;
bpmCfgArgs_slaver1[1].reserved =0;
......
{
int retVal = RL_RET_CODE_OK;
rlBpmChirpCfg_t bpmCfgArgs[30] = { 0 };
{
bpmnum = bpmchip1num;
}
if(deviceMap==2)
{
bpmnum = bpmchip2num;
}
if(deviceMap==4)
{
bpmnum = bpmchip3num;
}
if(deviceMap==8)
{
bpmnum = bpmchip4num;
}
printf("bpmnum is %d\n",bpmnum);
{
memcpy(&bpmCfgArgs[0],&bpmCfgArgs_master[0],bpmnum*sizeof(rlBpmChirpCfg_t));
}
if(deviceMap==2)
{
memcpy(&bpmCfgArgs[0],&bpmCfgArgs_slaver1[0],bpmnum*sizeof(rlBpmChirpCfg_t));
}
if(deviceMap==4)
{
memcpy(&bpmCfgArgs[0],&bpmCfgArgs_slaver2[0],bpmnum*sizeof(rlBpmChirpCfg_t));
}
if(deviceMap==8)
{
memcpy(&bpmCfgArgs[0],&bpmCfgArgs_slaver3[0],bpmnum*sizeof(rlBpmChirpCfg_t));
// bpmCfgArgs_slaver3[1].constBpmVal=32;
for(int i=0;i<bpmnum;i++)
retVal = rlSetBpmChirpConfig(deviceMap, &bpmCfgArgs[i]);
printf("bpmCfgArgs[%d].chirpStartIdx is %d\n",i,bpmCfgArgs[i].chirpStartIdx);
printf("bpmCfgArgs[%d].chirpEndIdx is %d\n",i,bpmCfgArgs[i].chirpEndIdx);
printf("bpmCfgArgs[%d].constBpmVal is %d\n",i,bpmCfgArgs[i].constBpmVal);
}
return retVal;
}
rlBpmModeCfg_t mode={0};
mode.b2SrcSel=0;
data.mode=mode;
rlSetBpmCommonConfig(RL_DEVICE_MAP_CASCADED_1,&data);
rlSetBpmCommonConfig(RL_DEVICE_MAP_CASCADED_2,&data);
rlSetBpmCommonConfig(RL_DEVICE_MAP_CASCADED_3,&data);
rlSetBpmCommonConfig(RL_DEVICE_MAP_CASCADED_4,&data);
printf("rlSetBpmCommonConfig end\n");