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: Warm reset at boot up seen on ES1 on new PCBs but not on old PCBs and not on ES2

Part Number: IWR6843
We have started to test some new PCBs with ES1.
Some of them print the warm reset message once or multiple times at boot up, running different software such as SDK demos.

We have only seen the warm reset at boot up, not later during the time that the chip has been run, for at least half an hour.

We have never seen the warm reset on the previous boards we have with ES1.

We have never seen the warm reset on ES2.

Can TI provide some insight into this behavior?
Is there any difference between the ES1 and ES2 which might explain that we never see this on the ES2?
The message is shown below:
"
Initializing MMWave
Issuing warm reset...�Debug: UART Instance @080156f4 has been opened successfully
Debug: UART Instance @08015700 has been opened successfully
Initializing MMWave
Issuing warm reset...�Debug: UART Instance @080156f4 has been opened successfully
"
And so on.
Below is a summary of the behavior we have seen on different boards, there is no clear pattern tough.
We have tried different software, there is no clear pattern.  But we have seen that on some boards the warm reset happens about 10 times (it prints the warm reset message 10 times) then it runs fine, power cycling the unit sometimes result in some limited amount of warm reset printouts.
This was seen running a continuous wave of 61.25GHz firmware built with the SDK3.01.01.0.2. It works fine using the SDK3.01.01.02 demo and SDK3.02.00.04 demo however.
We also have one board that is stuck in the warm reset and never boots properly, no matter how long it is kept on, running continuous wave of 61.25GHz firmware built with the SDK3.01.01.0.2. It works fine using the SDK3.01.01.02 demo and SDK3.02.00.04 demo however.
Another board works fine using the SDK3.01.01.02 demo and SDK3.02.00.04 demo.
The continuous wave firmware gives 2 -  ~50 warm resets during power up then works fine, same thing happens during a power cycle.
  • I've asked an expert to look into this and we should have an answer for you in the next few days.

     

    Cheers,

    Akash

  • Further investigation shows that the warm reset print we see was added by us in the following place to warn us of a BSS boot timeout.

    SDK 3.1.1.2:

    /src/mss/main.c  in the  MmwDemo_initTask ()

    /*****************************************************************************
         * mmWave: Initialization of the high level module
         *****************************************************************************/

        /* Initialize the mmWave control init configuration */
        memset ((void*)&initCfg, 0 , sizeof(MMWave_InitCfg));

        /* Populate the init configuration: */
        initCfg.domain                  = MMWave_Domain_MSS;
        initCfg.socHandle               = gMmwMCB.socHandle;
        initCfg.eventFxn                = MmwDemo_eventCallbackFxn;
        initCfg.linkCRCCfg.useCRCDriver = 1U;
        initCfg.linkCRCCfg.crcChannel   = CRC_Channel_CH1;
        initCfg.cfgMode                 = MMWave_ConfigurationMode_FULL;
        initCfg.executionMode           = MMWave_ExecutionMode_ISOLATION;

        /* Initialize and setup the mmWave Control module */
        System_printf ("Initializing MMWave\n");
        gMmwMCB.ctrlHandle = MMWave_init (&initCfg, &errCode);
        if (gMmwMCB.ctrlHandle == NULL)
        {
            MMWave_ErrorLevel   errorLevel;
            int16_t             mmWaveErrorCode;
            int16_t             subsysErrorCode;

            MMWave_decodeError (errCode, &errorLevel, &mmWaveErrorCode, &subsysErrorCode);

            if (errorLevel == MMWave_ErrorLevel_ERROR &&
                subsysErrorCode == 13481) { /* SOC_EINTERNAL, can't check for it directly since it gets truncated to 14 bits... */

                /* BSS boot timeout, issue warm reset */
                MmwDemo_warmReset();
            } else {
                System_printf ("Error: mmWave Control Initialization failed [Error code %d]\n", errCode);
                MmwDemo_debugAssert(0);
            }

            return;
            
        }

    So the question is why these BSS boot timeout has started to show up on some of the new PCBs.

  • Hello,

    The firmware update in SDK 3.1.1.2 improved the robustness of the APLL clock calibration procedure. Prior to this version, the APLL calibration, which is done by BSS during power-up could fail on certain IWR6843 ES1.0 devices, causing the BSS power-up to hang-up in the above loop. The firmware update made the calibration procedure deterministic.

    On ES2.0 there is improvement done on the hardware APLL clock calibration  Hence this problem is not present in ES2.0 silicon. 

    Hence we recommend to use ES2.0 silicon going forward. 

    Thanks and regards,

    CHETHAN KUMAR Y.B.