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.

IWRL6432: Information about the efuse

Part Number: IWRL6432

Tool/software:

Hi TI experts,

I am using SDK5.4.0.1 and IWRL6432 ES2. 

In the IWRL6432 TRM document, there is no detailed description of the efuse, such as the efuse's base address, the descriptions of the efuse registers, and what data is stored in the efuse, etc. Are there any documents available that provide information about the efuse?

Best regards,
Daniel

  • Hello.

    What data specifically are you looking for with the eFuse?

    Sincerely,

    Santosh

  • Hi Santosh,

    What does the value returned by SOC_getEfusePgVersion() represent? Does it have any relation to whether the device is trimmed? Additionally, if the device is trimmed, where is the calibration data stored in the efuse?

    Best Regards,
    Daniel

  • Hello.

    If you are using an ES2 device, they are all trimmed as all production devices are trimmed.  Is there a reason you need this check and/or the calibration data?

    Sincerely,

    Santosh

  • Hi Santosh,

    We have both ES1 and ES2 devices. From E2E, I learned that the ES2 device is a trimmed device and the calibration data is stored in the Efuse, correct?

    If this is correct, then based on the following screenshot from SDK L 5.4.0.1, is this only applicable to ES1 devices? For ES2 devices, it is not necessary to reserve 64KB of memory for calibration data, and the application appimage can be flashed at 0x00080000, right?

    I want to know where the calibration data is stored to confirm if it is already pre-flashed on the device.

    Best Regards,
    Daniel

  • Hello.

    If this is correct, then based on the following screenshot from SDK L 5.4.0.1, is this only applicable to ES1 devices? For ES2 devices, it is not necessary to reserve 64KB of memory for calibration data, and the application appimage can be flashed at 0x00080000, right?

    This diagram is applicable to the ES2 devices as well as this was not removed from the software, so during factory calibration the ate calibration data can be stored in that 64KB section of flash.  However, you can remove this if you want to as the trimmed devices will have the ATE calibration in the eFuse.  If you don't want to make any modifications to the code, however, you can simply change the location(ATE_CALIB_FLASH_OFFSET in motion_detect.h) at which this information is stored to somewhere at the bottom of any sector.

    I learned that the ES2 device is a trimmed device and the calibration data is stored in the Efuse, correct?

    This is correct.

    Sincerely,

    Santosh

  • Hi Santosh,

    If the saveEnable and restoreEnable in factoryCalibCfg are both set to 0 and appimage is flashed to 0x80000 by SBL, will it cause any operational issues with the ES2 devices when the application is launched by SBL?

    Best Regards,
    Daniel

  • Hello.

    I believe if the restore and save enables are set to 0, it looks like an error is triggered during the calibInit() function, so disabling it may cause some unintended behavior.  To avoid this, I would follow the recommendation in my previous answer to move the ATE calibration data to a different section of FLASH.

    Sincerely,

    Santosh

  • Hi Santosh,

    I tried setting both saveEnable and restoreEnable to 0 on the ES2 device. There were no errors, and everything appeared normal on the visualizer. However, I am not sure if there are any potential risks to do so.

    Best Regards,
    Daniel

  • Hello Daniel.

    After looking at the factoryCal() function, I agree that it should not cause any issues, but I would make sure that you modify calibInit to return 0 even if restoreEnable is set to 0.  Also make sure that restoreEnable is hard-coded to 0 in calibInit() as well.  However, for a sanity check, I would reset the board and see if the application still loads correctly.

    Sincerely,

    Santosh

  • Hi Santosh,

    If restoreEnable is hard-coded to 0 in calibInit(), then (1) for ES2 devices, gMmwMssMCB.factoryCalCfg.atecalibinEfuse will not be set to true, and (2) for ES1 devices, ateCalib->validityFlag will not be ATE_CALIB_DATA_VALID, which might cause issues, correct?

    Therefore, saveEnable and restoreEnable will only be set to 0 for ES2 devices, and will not be both set to 0 for ES1 devices.

    Best Regards,
    Daniel

  • Hello.

    Let me confirm that setting restoreEnable and saveEnable to 0 will not cause any issues for ES2 devices.  I don't believe it should, but I just want to confirm this.  But it definitely cannot be set to 0 for ES1 devices.

    Sincerely,

    Santosh

  • Hello.

    These functions also restore and save the factory calibration data into flash, which is stored at the offset set in factoryCal cli command.  I would make sure that these are still being saved during restore/saveCalib, and just remove any reference to storing or loading ATE calibration data into/from flash as opposed to setting saveEnable and restoreEnable to 0.

    Sincerely,

    Santosh