Other Parts Discussed in Thread: IWR1642
Hello again,
From previous answers I have a better understanding of many of the configuration parameters now, however there are 2 sections that don't have enough detail:
1) cfarCfg:
Sample from long range cfg:
In the MMWAVE SDK user guide for the first parameter it states in the case of the IWR1642 chip: "For legacy mode, that field should be set to -1 whereas for advanced frame mode, it should be set to either the intended subframe number or -1 to apply same config to all subframes." and in a number of labs it is indeed set to -1, however in the traffic monitoring it is set to 4. Delving into the cli.c source code I see the following section:
/* Populate configuration: */
cfarCfg.cfarMethod = (uint16_t) atoi (argv[1]);
cfarCfg.cfarDiscardLeft = (uint16_t) atoi (argv[2]);
cfarCfg.cfarDiscardRight = (uint16_t) atoi (argv[3]);
cfarCfg.refWinSize[0] = (uint16_t) atoi (argv[4]);
cfarCfg.refWinSize[1] = (uint16_t) atoi (argv[5]);
cfarCfg.guardWinSize[0] = (uint16_t) atoi (argv[6]);
cfarCfg.guardWinSize[1] = (uint16_t) atoi (argv[7]);
cfarCfg.thre = (float) atoi (argv[8]) * 0.1f;
cfarCfg.dopplerSearchRelThr = (float) atoi (argv[9]) * 0.1f;
cfarCfg.log2MagFlag = (uint16_t) atoi (argv[10]);
cfarCfg.clRemoval = (uint16_t) atoi (argv[11]);
Which matches up with the config file section. Could somebody elaborate on:
a) What the various "cFarMethods" are and how they differ?
b) What the cFarDiscardLeft and cFarDiscardRight refer to and why would the DiscardLeft by set to a higher value?
c) What the refWin and GuardWin sizes do?
d) What the threshold (which looks like a range threshold in the code) and doppler threshold will effect?
e) What effect the remaining parameters have?
2) doaCfg:
Could these parameters also be explained in more detail:
Sample from cfg file:
doaCfg.doaMethod = (uint16_t) atoi (argv[1]);
doaCfg.vmaxUnrollFlag = (uint8_t) atoi (argv[2]);
doaCfg.doaGamma = (float) atoi (argv[3]) * 0.001f;
doaCfg.doaSideLobeLevel_dB = (uint16_t) atoi (argv[4]);
doaCfg.doaSearchRange = (float) atoi (argv[5]) * 0.1f;
doaCfg.doaSearchRes = (float) atoi (argv[6]) * 0.1f;
doaCfg.doaVarThr = (float) atoi (argv[7]) * 0.1f;
a) What are the various doaMethods and how do they differ?
b) What do the other parameters effect, in particular the search parameters as they effect range?
3) Also, I note from the SDK doc that bmpCfg might improve SNR - can this be used as part of the traffic monitoring lab? Would it be recommended as it relates to longer range detection?
Finally, in using the chirp estimator tool it suggest for longer range detection to use 1 tx antenna, but when I try this by changing the last parameter of chirpCfg to 3 I get no data back at all - is there a second section of the cfg file I need to change in conjunction to do this?