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.

[参考译文] TMS570LS0914:使用 HalCoGen 选择电子保险丝卡在零测试的版本 B

Guru**** 2390755 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1279180/tms570ls0914-selecting-version-b-of-efuse-stuck-at-zero-test-using-halcogen

器件型号:TMS570LS0914
主题中讨论的其他器件:HALCOGEN

尊敬的 TI 团队:

我正在使用 HalCoGen 为我的平台生成自检代码。 对于 eFuse 卡在零位测试、我希望使用卡在零位测试的版本 B (因为我不希望将 ERROR 引脚设置为低电平)。

在 HalCoGen 中、我可以看到在哪里启用 eFuse 自检、但我没有找到选择方法来选择一直处于零测试的 eFuse 版本 B。 是否可以通过 HalCoGen 选择卡在零测试的版本 B?

此致、

埃利耶瓦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Elieva:

    遗憾的是、HALCoGen 不具有该设置来为版本 B 电子保险丝卡在零测试中生成代码。 默认情况下、它只能生成版本 A 代码。

    唯一的方法是注释版本 A 代码、并且必须为版本 B 编写我们自己的代码。

    我刚刚修改了我自己的版本 A 代码、并为您的测试创建了版本 B 代码。 它是:

    boolean efcStuckZeroTest(void)
    {
    /* USER CODE BEGIN (29) */
    /* USER CODE END */
    
        uint32 ESM_ESTATUS4;
    
        boolean result = FALSE;
        uint32 error_checks = EFC_INSTRUCTION_INFO_EN  |
                                      EFC_INSTRUCTION_ERROR_EN |
                                      EFC_SELF_TEST_ERROR_EN   ;
    
        /* configure the output enable for auto load error , instruction info,
             instruction error, and self test error using boundary register
             and drive values one across all the errors */
        efcREG->BOUNDARY = ((uint32)OUTPUT_ENABLE | error_checks);
    
        /* Read from the pin register. This register holds the current values
             of above errors. This value should be 0x5800.If not at least one of
             the above errors is stuck at 0. */
        if ((efcREG->PINS & 0x5800U) == 0x5800U)
        {
            ESM_ESTATUS4 = esmREG->SR4[0U];
    		
            /* check if the ESM group1 channel 41 is set*/
            if ((ESM_ESTATUS4 & 0x200U) == 0x200U)
            {
               /* stuck-at-zero test passed */
               result = TRUE;
            }
        }
    
        /* put the pins back low */
        efcREG->BOUNDARY = OUTPUT_ENABLE;
    
        /* clear group1 flag */
        esmREG->SR4[0U] = 0x200U;
    
        /* The nERROR pin will become inactive once the LTC counter expires */
        esmREG->EKR = 0x5U;
    
        return result;
    }

    --
    谢谢。此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢!