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.

IWR6843: IWR6843 monitoring

Part Number: IWR6843

I want to enable IWR6843's monitoring API,But I ran into some problems
I call the API MmwaveLink_setRfTempMonConfig below, in MmwDemo_mssMmwaveEventCallbackFxn, add RL_RF_AE_MON_TEMPERATURE_REPORT_SB, But there is no response.
I call the following API MmwaveLink_setRfTxPowMonConfig once a second and return an error with error code 263
(Error: rlRfTxPowrMonConfig retVal=263)


Added in the API MmwDemo_mssMmwaveEventCallbackFxn corresponding response time


case RL_RF_AE_MON_TEMPERATURE_REPORT_SB:
{
System_printf ("*********RL_RF_AE_MON_TEMPERATURE_REPORT_SB*******\n");
memcpy(&monTempReport, payload, sizeof(rlMonTempReportData_t));
MmwaveLink_verifyTemperatureRep(&monTempReport);
return 1;
}
case RL_RF_AE_MON_TX0_POWER_REPORT:
{
memcpy(&monTx0powRep, payload, sizeof(rlMonTxPowRep_t));
MmwaveLink_verifyTxPower(&monTx0powRep, MMWAVELINK_TEST_MON_TX0_POWER);
return 1;
}


The following code

rlTempMonConf_t tempMonCfg =
{
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved0 = 0,
.anaTempThreshMin = -10,
.anaTempThreshMax = 20,
.digTempThreshMin = -10,
.digTempThreshMax = 20,
.tempDiffThresh = 20,
.reserved1 = 0,
.reserved2 = 0,
};
rlTxPowMonConf_t tx0PowMonCfg =
{
.profileIndx = 0x0,
.rfFreqBitMask = HIGHEST_CENTER_LOWEST_RF_FRQ_IN_PROFILES_SWEEP_BW,
.reserved0 = 0x0,
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved1 = 0x0,
.txPowAbsErrThresh = 35,
.txPowFlatnessErrThresh = 35,
.reserved2 = 0x0,
.reserved3 = 0x0,

};

rlTxPowMonConf_t tx1PowMonCfg =
{
.profileIndx = 0x0,
.rfFreqBitMask = HIGHEST_CENTER_LOWEST_RF_FRQ_IN_PROFILES_SWEEP_BW,
.reserved0 = 0x0,
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved1 = 0x0,
.txPowAbsErrThresh = 35,
.txPowFlatnessErrThresh = 35,
.reserved2 = 0x0,
.reserved3 = 0x0,
};
rlTxPowMonConf_t tx2PowMonCfg =
{
.profileIndx = 0x0,
.rfFreqBitMask = HIGHEST_CENTER_LOWEST_RF_FRQ_IN_PROFILES_SWEEP_BW,
.reserved0 = 0x0,
.reportMode = MON_REPORT_MODE_PERIODIC_WITH_THRESHOLD_CHECK,
.reserved1 = 0x0,
.txPowAbsErrThresh = 35,
.txPowFlatnessErrThresh = 35,
.reserved2 = 0x0,
.reserved3 = 0x0,
};
rlAllTxPowMonConf_t allTxPowMonCfg =
{
.tx0PowrMonCfg = &tx0PowMonCfg,
.tx1PowrMonCfg = &tx1PowMonCfg,
.tx2PowrMonCfg = &tx2PowMonCfg,

};

int32_t MmwaveLink_setRfTempMonConfig (void)
{
int32_t retVal;
/* Set Temperature monitor configuration */
retVal = rlRfTempMonConfig(RL_DEVICE_MAP_INTERNAL_BSS,(rlTempMonConf_t*)&tempMonCfg);
/* Check for mmWaveLink API call status */
if(retVal != 0)
{
/* Error: Link reported an issue. */
System_printf("Error: rlRfTempMonConfig retVal=%d\n", retVal);
return -1;
}

return 0;
}

int32_t MmwaveLink_setRfTxPowMonConfig (void)
{
int32_t retVal;
/* Set TX Power monitor configuration */
retVal = rlRfTxPowrMonConfig(RL_DEVICE_MAP_INTERNAL_BSS,(rlAllTxPowMonConf_t*)&allTxPowMonCfg);
/* Check for mmWaveLink API call status */
if(retVal != 0)
{
/* Error: Link reported an issue. */
System_printf("Error: rlRfTxPowrMonConfig retVal=%d\n", retVal);
return -1;
}

return 0;
}

  • Hello,

    I would recommend initially that you go compile and run the mmwavelink test sample code for monitoring. This will let you know if the device you are using supports all the API's needed. Generally you need the safety device in order to do monitoring (which requires the Safety Diagnostic Library package), but I believe there are a few monitoring API's that work on all devices.

    Regards,

    Pedrhom Nafisi

  • Thank you for your reply. For the above problem, I did not call rlRfDigMonEnableConfig, but when I called it, an error code 250 (Device Type is not ASILB) was generated, which is printed on my IWR6843 chip

    Iwr6843

    QG

    06zc159

    678A ABL G1

    I think it's a security device and IT's ES2.0

  • Hello,

    I cross referenced your device's lot information and have found that it is a non-functional safety device. This can be found in figure 12-1 in the 6843 data sheet for decoding your device's feature (https://www.ti.com/lit/ds/symlink/iwr6843.pdf?ts=1656609831157). The mmwavelink test discussed prior will provide insight into whether the issue is related to your implementation, or if the device does not support the API.

    Regards,

    Pedrhom Nafisi