主题中讨论的其他器件:HALCOGEN
您好、我在 SL 库中发现了一个错误。
在 EFUSE_self_test_staged_at_zero 中、有一条线用于为组3通道1清除 ESM 中断和 nERROR 引脚。 但是、组1通道41中断没有此类线路。 在默认状态下、ESM g1.41不会触发 nERROR 引脚响应或中断。 但是、如果在软件(即 HALCOGEN)中配置为触发这两个条件、就无法清除 nERROR。
我认为这是一个错误。 在 TRM 32.3.2.4中明确指出 ESM g3.1和 g1.41是作为测试的一部分设置的、这正是我观察到的。 我还在 TRM 12.1.2中发现、无论中断启用状态如何、ESM 事件都被存储。 在测试中、只要 ESM 中断寄存器备份被恢复、nERROR 引脚就变为低电平、这与此一致。
重现步骤:
在 HALCOGEN 中配置 ESM 组1中的电子保险丝自检 nERROR 和中断响应:
运行 SL_SelfTest_EFuse EFUSE_self_test_staged_at_zero 测试。
efuseConfig.numPatterns = 0U; /* Stuck at Zero test does not use pattern generation.*/ efuseConfig.seedSignature = 0U; /* Stuck at Zero test does not use seed. */ efuseConfig.failInfo.stResult = ST_FAIL; efuseConfig.failInfo.failInfo = EFUSE_ERROR_NONE; slRet = SL_SelfTest_EFuse(EFUSE_SELF_TEST_STUCK_AT_ZERO, true, &efuseConfig); if ( (slRet != true) || (efuseConfig.failInfo.stResult != ST_PASS) || (efuseConfig.failInfo.failInfo = EFUSE_ERROR_NONE) ) { return false; }
测试应通过、但 nERROR 将生效。
可以修改测试以添加以下调用
if ((uint32)(1u << ESM_G1ERR_EFUSE_SELTEST_ERR) == (uint32)(sl_esmREG->SR1[0] & (uint32)(1u << ESM_G1ERR_EFUSE_SELTEST_ERR))) { _SL_HoldNClear_nError(); }
这将修复错误。
我能确认这是一个错误吗? 谢谢你。