Other Parts Discussed in Thread: AWR1642
Hi,
I would like to use the Rx Saturation Monitor on the awr1642 board to monitor the saturation of the channels. In my project I am using mmwave_sdk_03_05_00_04. The tests were run on the board, which are located in the C:\ti\mmwave_sdk_03_05_00_04\packages\ti\control\mmwavelink\dfptest folder. From their results, you can see that MON_RX_IF_SATURATION failed:
Debug: Starting test number 8. StartStop with reconfiguration, iteration number 8
Debug: Finished setLowPowerMode
Debug: Init time calibration status [0x800017fe]
Debug: RF start successfully
Debug: Received 100 latent fault reports.
Debug: Max latent fault wait = 2.
Debug: Starting Sensor..
Debug: Frame Stop Async Event
All 300 frames received.
Debug: Received 100 latent fault reports.
Debug: Max latent fault wait = 2.
[Debug]: Received Zero reports for monitoring feature MON_TEMP
[Debug]: Received 150 reports for monitoring feature MON_RX_GAIN_PH
[Debug]: Received 150 reports for monitoring feature MON_RX_IF_STAGE
[Debug]: Received 150 reports for monitoring feature MON_TX0_POWER
[Debug]: Received 150 reports for monitoring feature MON_TX1_POWER
[Debug]: Received 150 reports for monitoring feature MON_TX0_BALL_BRK
[Debug]: Received 150 reports for monitoring feature MON_TX1_BALL_BRK
[Debug]: Received 150 reports for monitoring feature MON_SYNTHESIZER_FREQ
[Debug]: Received 150 reports for monitoring feature MON_TX0_INT_ANA_SIG
[Debug]: Received 150 reports for monitoring feature MON_TX1_INT_ANA_SIG
[Debug]: Received 150 reports for monitoring feature MON_INT_RX_SIG
[Debug]: Received 150 reports for monitoring feature MON_INT_PMCLKLO_SIG
[Debug]: Received 150 reports for monitoring feature MON_INT_GPADC_SIG
[Debug]: Received 150 reports for monitoring feature MON_PLL_CONTROL_VOLT
[Debug]: Received 150 reports for monitoring feature MON_DCC_CLOCK_FREQ
Error Monitoring feature MON_RX_IF_SATURATION : expected 150 reports. Received 0.
[Debug]: Received 100 reports for Digital latent fault.
[Debug]: Received 150 reports for Digital periodic report.
[Debug]: Received 46 reports for periodic calibration.
[Debug]: Received 150 report headers.
--- Test 8 (reconfig) result:
Feature: Test: Failed
Based on the documentation and tests, the following configuration was created and called in mss:
#define CQ_NUM_SLICES 10U
rlMonAnaEnables_t anaMonConfig = {
.enMask = (1U << 0U | 1U << 15U | 1U << 24U | 1U << 25U),
.ldoScEn = 0,
};
retVal = rlRfAnaMonConfig(RL_DEVICE_MAP_INTERNAL_BSS, &anaMonConfig);
if (retVal != RL_RET_CODE_OK) {
System_printf("Error: rlRfAnaMonConfig [Error %d]\n", retVal);
return retVal;
}
rlRxSatMonConf_t rxSatMonCfg = {
.profileIndx = 0U,
.satMonSel = 3U,
.reserved0 = 0U,
.primarySliceDuration = 4U,
.numSlices = CQ_NUM_SLICES,
.rxChannelMask = 0U,
.reserved1 = 0U,
.reserved2 = 0U,
.reserved3 = 0U,
.reserved4 = 0U
};
/* Set RX IF Stage monitor configuration */
retVal = rlRfRxIfSatMonConfig(RL_DEVICE_MAP_INTERNAL_BSS, &rxSatMonCfg);
/* Check for mmWaveLink API call status */
if (retVal != RL_RET_CODE_OK) {
/* Error: Link reported an issue. */
System_printf("Error: rlRfRxIfSatMonConfig retVal=%d\n", retVal);
return retVal;
}
rlSigImgMonConf_t sigImgMonCfg = {
.profileIndx = 0U,
.numSlices = CQ_NUM_SLICES,
.timeSliceNumSamples = 4U,
.reserved0 = 0U,
.reserved1 = 0U,
};
/* Set RX IF Stage monitor configuration */
retVal = rlRfRxSigImgMonConfig(RL_DEVICE_MAP_INTERNAL_BSS, &sigImgMonCfg);
/* Check for mmWaveLink API call status */
if (retVal != RL_RET_CODE_OK) {
/* Error: Link reported an issue. */
System_printf("Error: rlRfRxSigImgMonConfig retVal=%d\n", retVal);
return retVal;
}
In dss I get values from addresses CQ1 = 0x21028800U and CQ2 = 0x21029000U, each chirp. And I get the following values:
CQ2: numSlices=10, p[0]=0, s[0]=0, p[1]=0, s[1]=0, p[2]=0, s[2]=0, p[3]=0, s[3]=0, p[4]=0, s[4]=0
CQ1: numSlices=10, p[0]={r:-100,i:-90}, p[1]={r:-101,i:-94}, p[2]={r:-105,i:-92}, p[3]={r:-102,i:-88}, p[4]={r:-102,i:-88}, p[5]={r:-102,i:-88}, p[6]={r:-102,i:-86}, p[7]={r:-103,i:-90}, p[8]={r:-104,i:-89}, p[9]={r:-102,i:-88}, p[10]={r:0,i:0}, p[11]={r:0,i:0}, p[12]={r:0,i:0}, p[13]={r:0,i:0}, p[14]={r:0,i:0}
CQ2: numSlices=10, p[0]=0, s[0]=0, p[1]=0, s[1]=0, p[2]=0, s[2]=0, p[3]=0, s[3]=0, p[4]=0, s[4]=0
CQ1: numSlices=10, p[0]={r:-99,i:-92}, p[1]={r:-102,i:-91}, p[2]={r:-101,i:-94}, p[3]={r:-102,i:-91}, p[4]={r:-102,i:-90}, p[5]={r:-101,i:-90}, p[6]={r:-105,i:-92}, p[7]={r:-103,i:-92}, p[8]={r:-103,i:-90}, p[9]={r:-102,i:-89}, p[10]={r:0,i:0}, p[11]={r:0,i:0}, p[12]={r:0,i:0}, p[13]={r:0,i:0}, p[14]={r:0,i:0}
CQ2: numSlices=10, p[0]=0, s[0]=0, p[1]=0, s[1]=0, p[2]=0, s[2]=0, p[3]=0, s[3]=0, p[4]=0, s[4]=0
CQ1: numSlices=10, p[0]={r:-99,i:-88}, p[1]={r:-101,i:-92}, p[2]={r:-105,i:-93}, p[3]={r:-102,i:-88}, p[4]={r:-100,i:-91}, p[5]={r:-101,i:-90}, p[6]={r:-103,i:-91}, p[7]={r:-101,i:-90}, p[8]={r:-101,i:-92}, p[9]={r:-101,i:-90}, p[10]={r:0,i:0}, p[11]={r:0,i:0}, p[12]={r:0,i:0}, p[13]={r:0,i:0}, p[14]={r:0,i:0}
Thus, the SigImgMon values change, but the SatMon values always remain zero, even when the corner reflector is close.Have the following questions, does SaturationMonitor work on awr1642 with mmwave_sdk_03_05_00_04? Can you get the most complete information about the work of SaturationMonitor? And are there any working examples for setting up, receiving and processing information from SaturationMonitor?
Regards,
Dmitriy!