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.

[参考译文] TMS570LS3137:Efuse SelfTest 和 ESM 错误

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582116/tms570ls3137-efuse-selftest-and-esm-error

器件型号:TMS570LS3137

你好。

我 对 efuse 错误有疑问。

ESM 错误标志组1通道40未被置位、我不知道这 种情况下的原因。

以下 代码是 "sys.selftest.c"中的"efcStuckZeroTest"。

在该函数中、将 "EFC_instruction_info_EN"替换为 "UINT32 ERROR_Checks "。

执行  "efcREG->BOUNDARY = output_enable;"。

我认为这些操作将 为 ESM 组1通道40设置一个单一位错误。

*
/* sourceId:selftest_sourceId_012 */
/* DesignId:selftest_DesignId_014 */
/*要求:HL_SR402 */
布尔 efcStuckZeroTest (空)

/*用户代码开始(29)*/
/*用户代码结束*/

   uint32 ESM_ESTATUS4、ESM_ESTATUS1;

   布尔结果= false;
   uint32 error_Checks = EFC_instruction_info_EN |
                                 EFC_instruction_error_EN |
                                 EFC_Autoload_error_EN     |
                                 EFC_self_test_error_EN  ;

   /*为自动加载错误、指令信息、
        指令错误和使用边界寄存器的自检错误
        驱动值1与所有错误*/
   efcREG->BOUNDARY =((uint32) output_enable | error_checks);

   /*从引脚寄存器读取。 该寄存器保存当前值
        误差的数量。 该值应为0x5c00。如果不是至少一个
        上述错误卡在0。 *
   if ((efcREG->引脚& 0x5C00U)== 0x5C00U)
   {
       ESM_ESTATUS4 = esmREG->SR4[0U];
       ESM_ESTATUS1 = esmREG->SR1[2U];
       /*检查 ESM 组1通道41是否被置位并且组3通道1是否被置位*/
       如果(((ESM_ESTATUS4 & 0x200U)=0x200U)&&((ESM_ESTATUS1 & 0x2U)=0x2U)
       {
          /*卡在零测试通过*/
          结果= true;
       }
   }

   /*将引脚恢复为低电平*/
   efcREG->BOUNDARY = output_enable;

   /*清除组1标志*/
   esmREG->SR4[0U]= 0x200U;

   /*清除组3标志*/
   esmREG->SR1[2U]=0x2U;

   /*一旦 LTC 计数器到期,nERROR 引脚将变为非活动状态*/
   esmREG->EKR = 0x5U;

   返回结果;

此致

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

    您必须设置"Single bit Error OE"、它是 EFCBOUND 中的位16。 否则、只设置位20将不会驱动单一位错误、并且会设置 ESM 错误组1的通道40。

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

    您好 QJ

    感谢你的答复。

    请参阅 以下操作:

    "efcREG->bound=((uint32) output_enable | error_checks);"。

    "output_enable"为0x0003C000。此设置为位16。

    除了位16、位14至21也被置位。

    仍然没有 报告给 ESM 组1通道40。

    此致