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.

AWR2944: Fault injection about miscThreshFault

Part Number: AWR2944

Hi,

I want to validate the fault injection about miscThreshFault. According to the description about miscThreshFault in SDK:

    /**
     * @brief This field indicates whether faults should be forced in the threshold comparisons \n
               in the software layer of some monitors. If a fault is enabled, the logic in the \n
               min-max threshold comparisons used for failure detection is inverted, causing a \n
               fault to be reported. During these faults, no hardware fault condition is  \n
               injected in the device.
               This fault can be seen in GPADC_INTERNAL_SIGNALS_MONITOR. \n
                Bit Enable Fault
                0  EXTERNAL_ANALOG_SIGNALS_MONITOR
                1  GPADC_INTERNAL_SIGNALS_MONITOR
                Others RESERVED
                For each bit, 1 = inject fault, 0 = remove injected fault
     */
    rlUInt8_t  miscThreshFault;

There are two item, bit0 EXTERNAL_ANALOG_SIGNALS_MONITOR and bit1 GPADC_INTERNAL_SIGNALS_MONITOR.

After I inject fault bit0 EXTERNAL_ANALOG_SIGNALS_MONITOR and frame ending, AWR2944 reported event RL_RF_AE_MON_GPADC_INT_ANA_SIG_REPORT successfully.

but for bit1 GPADC_INTERNAL_SIGNALS_MONITOR,  AWR2944 reported  noting.

My config for rlRfGpadcIntAnaSignalsMonConfig is as below:

static void BssFaultInject_SetConfig_miscThreshFault(void)
{
    rlReturnVal_t ret = 0;
    rlGpadcIntAnaSignalsMonConf_t config = { 0 };

    config.reportMode = 1;
    ret = rlRfGpadcIntAnaSignalsMonConfig(RL_DEVICE_MAP_INTERNAL_BSS, &config);
    if (ret != 0)
    {
        test_print("return:%d\n", ret);
        DebugP_assert(0);
    }  
} 

Could you please give some advice? Thanks.

  • Hi,

    Have you enabled this monitor using the AWR_MONITOR_ANALOG_ENABLES_CONF_SB as per the ICD. If yes please share the snippet of that well. If no, please enable it and check your observations. 

    Thanks,

    Pradipta.

  • Yes, I did it.

    the AWR_MONITOR_ANALOG_ENABLES_CONF_SB config is as below:

    const rlMonAnaEnables_t BssFaultInject_MonitorEnableConfig = 
    {
        /* Do in mmwDemo_cfgAnalogMonitor function by parameter MMWDEMO_ANALOG_MONITOR_RX_SATURATION_DETECTOR=24, MMWDEMO_ANALOG_MONITOR_RX_SIG_IMG_BAND=25(mss_main.c) */
        .enMask1 =  (1u << 0 ) |  /*TEMPERATURE_MONITOR_EN */
                    (1u << 1 ) |  /*RX_GAIN_PHASE_MONITOR_EN */
                    (0u << 2 ) |  /*RX_NOISE_MONITOR_EN (Reserved in AWR294x) */
                    (1u << 3 ) |  /*RX_IFSTAGE_MONITOR_EN */
                    (1u << 4 ) |  /*TX0_POWER_MONITOR_EN */
                    (1u << 5 ) |  /*TX1_POWER_MONITOR_EN */
                    (1u << 6 ) |  /*TX2_POWER_MONITOR_EN */
                    (1u << 7 ) |  /*TX0_BALLBREAK_MONITOR_EN */
                    (1u << 8 ) |  /*TX1_BALLBREAK_MONITOR_EN */
                    (1u << 9 ) |  /*TX2_BALLBREAK_MONITOR_EN */
                    (1u << 10) |  /*TX_GAIN_PHASE_MONITOR_EN */
                    (1u << 11) |  /*TX0_PHASE_SHIFTER_MONITOR_EN */
                    (1u << 12) |  /*TX1_PHASE_SHIFTER_MONITOR_EN */
                    (1u << 13) |  /*TX2_PHASE_SHIFTER_MONITOR_EN */
                    (1u << 14) |  /*SYNTH_FREQ_MONITOR_LIVE_EN */
                    (0u << 15) |  /*EXTERNAL_ANALOG_SIGNALS_MONITOR_EN (Reserved in AWR294x) */
                    (1u << 16) |  /*INTERNAL_TX0_SIGNALS_MONITOR_EN */
                    (1u << 17) |  /*INTERNAL_TX1_SIGNALS_MONITOR_EN */
                    (1u << 18) |  /*INTERNAL_TX2_SIGNALS_MONITOR_EN */
                    (1u << 19) |  /*INTERNAL_RX_SIGNALS_MONITOR_EN */
                    (1u << 20) |  /*INTERNAL_PMCLKLO_SIGNALS_MONITOR_EN */
                    (1u << 21) |  /*INTERNAL_GPADC_SIGNALS_MONITOR_EN */
                    (1u << 22) |  /*PLL_CONTROL_VOLTAGE_MONITOR_EN */
                    (1u << 23) |  /*DCC_CLOCK_FREQ_MONITOR_EN */
                    (1u << 24) |  /*RX_IF_SATURATION_MONITOR_EN */
                    (0u << 25) |  /*RX_SIG_IMG_BAND_MONITORING_EN (Reserved in AWR294x) */
                    (0u << 26) |  /*RX_MIXER_INPUT_POWER_MONITOR (Reserved in AWR294x) */
                    (0u << 27) |  /*RESERVED */
                    (0u << 28) |  /*SYNTH_FREQ_MONITOR_NON_LIVE_EN */
                    (1u << 29) |  /*TX3_POWER_MONITOR_EN (AWR294x only) */
                    (1u << 30) |  /*TX3_BALLBREAK_MONITOR_EN (AWR294x only) */
                    (1u << 31),   /*INTERNAL_TX3_SIGNALS_MONITOR_EN (AWR294x only) */
        /**
         * @brief  LDO short circuit monitoring enable. There are no reports for these monitors. \n
                   If there is any fault, the asyncevent RL_RF_AE_ANALOG_FAULT_SB will be sent. \n
                     Bit    Description \n
                     b0     APLL LDO short circuit monitoring \n
                            0 - disable, 1 - enable \n
                     b1     SYNTH VCO LDO short circuit monitoring \n
                            0 - disable, 1 - enable \n
                     b2     PA LDO short circuit monitoring(not applicable for AWR294x) \n
                            0 - disable, 1 - enable \n
                     b3     VMON circuit monitoring enable(not applicable for AWR294x) \n
                            0 - disable, 1 - enable \n
                     b15:4  RESERVED \n
                   @note 1: The VMON circuit monitoring is not supported in AWR2243/xWR6243 device. \n
                   @note 2: In AWR294x devices, there is a separate VMON monitoring configuration \n
                            and enable API - AWR_MONITOR_VMON_CONF_SB \n
                   @note 3: In AWR294x devices, APLL LDO Short Circuit and VMON faults are not \n
                            reported by the RSS firmware. Fault signals are mapped to the MSS ESM \n
                            and should be responded to by the MSS application. Please refer to the \n
                            TRM for more information. \n
        */
        .ldoVmonScEn = (1u << 0) | 
                       (1u << 1),    
        /**
         * @brief If any bit in this field is set to 1, the associated monitors are enabled. \n
                   Bit   Analog monitoring control \n
                    0    TX3_PHASE_SHIFTER_MONITOR_EN (only applicable to AWR294x) \n
                    1    TX_PHSHIFTER_DAC_MONITOR (only applicable to AWR294x) \n
                 15:2    RESERVED \n
         */
        .enMask2 = (1u << 0) | 
                   (1u << 1),    
        
    };
    
    void BssFaultInject_Init(void)
    {
        rlReturnVal_t ret = 0;
        ret = rlRfAnaMonConfig(RL_DEVICE_MAP_INTERNAL_BSS, (rlMonAnaEnables_t*)&BssFaultInject_MonitorEnableConfig);
        if (ret != RL_RET_CODE_OK)
        {
            test_print("return:%d\n", ret);
            DebugP_assert(0);
        }
        BssFaultInject_SetStatus(BSS_FAULT_INJECT_STATUS_START);
    }

  • Hi,

    I noticed that the fault miscThreshFault have only one bit valid(bit0 GPADC_INTERNAL_SIGNALS_MONITOR) in the last version DFP(mmwave_dfp_02_04_08_01). The detailed description is as below:

        /**
         * @brief This field indicates whether faults should be forced in the threshold comparisons \n
                   in the software layer of some monitors. If a fault is enabled, the logic in the \n
                   min-max threshold comparisons used for failure detection is inverted, causing a \n
                   fault to be reported. During these faults, no hardware fault condition is  \n
                   injected in the device.
                   This fault can be seen in GPADC_INTERNAL_SIGNALS_MONITOR. \n
                    Bit Enable Fault
                    0  GPADC_INTERNAL_SIGNALS_MONITOR \n
                    The reported values of the monitored GPADC internal signals are also swapped \n
                    when this fault is enabled. \n
                    Others RESERVED
                    For each bit, 1 = inject fault, 0 = remove injected fault.
    
         */
        rlUInt8_t  miscThreshFault;

    and the DFP version  I used is mmwave_dfp_02_04_06_00.

    So I guess the fault injection also don't support bit1 of miscThreshFault, could you confirm it.

  • Hi,

    Let me check the code and documentation and get back to you on this.

    Thanks,

    Pradipta.

  • Hi,

    The comment description in the SDK needs to be updated. The ICD reflects the correct description for this bit as below. Also you got the event related to GPADC_Internal_Signals_monitor.

    External Analog Signals is not valid here. 

    Thanks,

    Pradipta.

  • Thanks for your help.