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.

IWR6243: Problems while flashing Firmware

Part Number: IWR6243

Tool/software:

Hi Team,

I recently opened up some threads about weird configuration behavior of the IWR6243 with a custom software based on the mmWave Link Liberary from DFP 6.4.1.0 Package.

See: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1445655/iwr6243-profile-configuration-error

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1441750/iwr6243-bug-in-configuration

Those Problems seemed like a Firmware issue to me. I recently noticed that the Radar SS Firmware is outdated while reading out the Master and Radar SS Firmware of the IWR6243. Using the rlDeviceGetVersion() API from the mmWave Link Library, i got the following versions:

Rf: 2.2.0.13

Master: 2.2.1.7

Looking into the release notes of the DFP 6.4.1.0 i found this table, showing that the version on my sensor is not the current version:

So i downloaded the Firmware with the metaImage.h File and reading out the Versions after the Download shows the following:

Rf 6.4.1.13

Master 2.2.1.7

So, the RadarSS updates successfully, but the MSS stays at the ROM Version. After Firmware Downloading, i am performing the rest of my confuguration. Static Configuration runs smoothly (ADC, LP, Datapath, ...) but as soon as i perform the Rf Init, i get a Device Boot Error, with a Fatal Firmware Error Flag.

Why do i get this Error? Could this be because the Master SS stays at the ROM Version and not the PATCH Version. What exactly is the PATCH Version in this context and how can i apply it?

Best regards,

Tim

  • Hi,

    We are looking into your query. Please allow us a couple of days to respond.

    Regards,

    Sharan

  • Hello Tim.

    I am looking into this and will have an update for you soon.  Apologies for the delay in response and thank you for your patience.

    Sincerely,

    Santosh

  • Hi Santosh,

    i further investigated this issue. I want to show you the Content of the Received Async Messages upon calling the rlRfInit Function:

    AWR_AE_MSS_RFERROR_STATUS_SB:

    Error Status = 1 --> BSS FW assert

    AWR_AE_RF_CPUFAULT_SB:

    faultType = 3 --> RF Processor Firmware Fatal Error

    errorCode = 0 --> Undefined error code

    lineNum = 833

    faultLR = 178850

    faultPrewLR = 0

    faultSpsr = 1610613023

    faultAddr = 0

    faultErrStatus = 65535

    AWR_AE_RF_ESMFAULT_STATUS_SB:

    ESM_GROUP1_ERROR = 0 --> no fault

    ESM_GROUP2_ ERROR = 0 --> no fault

    AWR_ANALOGFAULT_AE_SB:

    FAULT_TYPE = 0 --> no fault

    Unfortunately, the expected AWR_AE_RF_INITCALIBSTATUS_SB is not received. Maybe this helps you answering my question

  • Hello Tim.

    Have you tried rebuilding your custom application with this updated firmware?  It looks like you had the 2243 version of the firmware instead of the 6243 version of the firmware(hence the 2.2.x.x DFP), which might explain the issue with the invalid configurations.  Can you try rebuilding your custom application as it may be still using the old RadarSS firmware, which would also explain the invalid firmware error.

    Sincerely,

    Santosh

  • Hi Santosh,

    yes, i changed out the old mmWave Link Library with the current one from the XWR6243-RESTRICTED Package. The Firmware I am downloading onto the IWR6243 is also from there.

    Sincerely,

    Tim

  • Maybe the following Infos help you answering my question:

    I am calling the mmWave Link APIs in the following order:

    • rlDevicePowerOn for Master
    • rlDeviceFileDownload for Master
    • rlDeviceRfStart for Master
    • rlDeviceGetVersion for Master
    • rlSetChannelConfig for Master

    • rlDeviceAddDevices for Slave
    • rlDeviceFileDownload for Slave
    • rlDeviceRfStart for Slave
    • rlDeviceGetVersion for Slave
    • rlSetChannelConfig for Slave

    • rlRfSetLdoBypassConfig for Master and Slave
    • rlSetAdcOutConfig for Master and Slave
    • rlSetLowPowerModeConfig for Master and Slave
    • rlDeviceSetDataFmtConfig for Master and Slave
    • rlDeviceSetDataPathConfig for Master and Slave
    • rlDeviceSetDataPathClkConfig for Master and Slave
    • rlDeviceSetHsiClk for Master and Slave
    • rlDeviceSetCsi2Config for Master and Slave

    Up to this Point everything works fine. Then the following API Fails with the above described errors:

    • rlRfInit for Master

    In the example Implementation of the mmWave Link Library, they perform a Calibration Restore before calling the rlRfInit but i am unsure about this step. They seem to load a Calibration File (PhShiftCalibrationData_0.txt to _4.txt), but i cant find examples of those files. Is this Step needed?

    Sincerely,

    Tim

  • Hello Tim.

    Did you also update any file that includes the updated 62xx_metaImage.h file and recompile with this change?  Given that you seemed to have the 2243 version of the DFP, the source code may have included the incorrect header file, but because the header files are named differently you will need to update the source code to include this new header file and recompile.

    In the example Implementation of the mmWave Link Library, they perform a Calibration Restore before calling the rlRfInit but i am unsure about this step. They seem to load a Calibration File (PhShiftCalibrationData_0.txt to _4.txt), but i cant find examples of those files. Is this Step needed?

    According to the cascade example in the DFP, the text files are generated by the cascade example project.  Have you tried running the example application to generate these files and then try running software with these calibration txt files?

    Sincerely,

    Santosh

  • Hi Santosh,

    thank you for your answer. Unfortunately, due to my hardware setup, i am not able to run to Cascade Example Project. From my current understanding, the IWR6243 should perform a calibration on its one upon Rf Init if i don't load any Calibration Files.

    I am using the DFP Version from the XWR6243-RESTRICTED Package. From there i get the mmWave Link and the Firmware metaImage. mmWave Link itself does not include the Firmware metaImage. You have to include the download of this file in a Application which includes mmWave Link and use the rlDownloadFile to download it to the Sensor.

    The Firmware File i am using is called xwr62xx_metaImage.h, which from the Name seems to be correct. As far as i understand it this firmware does not get loaded into some sort of non volatile memory but only into ram, because the firmware update gets lost upon restart. But looking into the DFP Release Notes, this should be correct as for example the radarSS is stated as RAM (see the picture in the first message of this thread)

    So i am kinda clueless why this does not work

    Sincerely,

    Tim

  • For more Info:

    those are all the Informations i get from the rlDeviceGetVersion API after Firmware Download:

     RF Version [ 6. 4. 1.13] Date: 10.5.22
     RF Patch [0.0.0] Date: 0.0.0
     RF HW [9.1.4]
     MSS Version [ 2.  2. 1.  7] Date: 17.3.20
     MSS PATCH [2.6.3] Date: 11.4.22
     MSS HW [9.1.4]
     mmWave Link Version [ 2. 2. 3. 2] Date: 4.2.22

  • I did some further research by disabling certain calibration steps in rfInit with the rlRfInitCalibConfig API. It seems like every calibrations works except for the Tx Power Calibration. When i try to enable this calibration, the setup fails with the above described error codes.

  • Hi Tim.

    From my understanding, you had the 2243 version of the DFP working, but you swapped out the mmwave link library, the RadarSS, and the mmwaveLink Library to try to get it working on the 6243?  I believe that should be enough, but I would just recommend replacing your current DFP package with the 6243 to avoid having to do any migration steps that are listed in the 2243 release notes. 

    Could you also provide some details on your HW setup and how you are trying to load the software?  Are you trying to load into SFLASH and then boot onto the device?  And is your application code just sending mmWave Link APIs over SPI?

    • rlDevicePowerOn for Master
    • rlDeviceFileDownload for Master
    • rlDeviceRfStart for Master
    • rlDeviceGetVersion for Master
    • rlSetChannelConfig for Master

    • rlDeviceAddDevices for Slave
    • rlDeviceFileDownload for Slave
    • rlDeviceRfStart for Slave
    • rlDeviceGetVersion for Slave
    • rlSetChannelConfig for Slave

    • rlRfSetLdoBypassConfig for Master and Slave
    • rlSetAdcOutConfig for Master and Slave
    • rlSetLowPowerModeConfig for Master and Slave
    • rlDeviceSetDataFmtConfig for Master and Slave
    • rlDeviceSetDataPathConfig for Master and Slave
    • rlDeviceSetDataPathClkConfig for Master and Slave
    • rlDeviceSetHsiClk for Master and Slave
    • rlDeviceSetCsi2Config for Master and Slave

    Also, the API sequence can be checked against the API sequence that is in the interface control document, as well as a migration guide for the 2243 to the 6243 though replacing everything with the contents of the 6243 DFP should remove any need to do this migration.

    Finally, I will follow up offline to provide some resources on how to confirm that you are sequencing the APIs correct and if you have configured the commands correctly.

    Sincerely,

    Santosh