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.

[参考译文] TMS570LC4357:STC2测试

Guru**** 2403425 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1267176/tms570lc4357-stc2-test

器件型号:TMS570LC4357

Hello 支持、

您能提供一个示例项目工作区、它在 TMS570LC43xx 器件系列中为 NHET 运行 STC2吗?

我没有权限查看此目录或下面给出的线程内的页面。

感谢任何帮助。

e2e.ti.com/.../tms570lc4357-stc2-execution-always-fails

谢谢你。

此致

Ktmn

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

    尊敬的  Ktmn:

    布尔 STC2_SelfTest (Uint32 no_of_intervals、Uint32 max_timeout、布尔 Restart_test)
    {
    UINT32 tempVal = 0u;
    布尔值 retval = false;

    /*配置时钟分频器*/
    systemREG2->STCCLKDIV =(2U<<24U);//使用 VCLK2/2

    /*配置间隔计数并重新启动/继续*/
    stcREG2->STCGCR0 =(no_of_intervals << 16U)|(0x1 << 0U);
    if (Restart_test)
    {
    stcREG2->STCGCR0 |= 0x00000001U;

    /*真实测试、无故障注入、设置 STCSCSCR */
    stcREG2->STCSCSCR = 0u;

    /*设置超时值*/
    stcREG2->STCTPR = max_timeout;//0xFFFFFFFFu;

    stcREG2->STCGSTAT = 0x3U;//在启用测试之前清除状态标志
    stcREG2->STCFSTAT = 0xFU;//清除自检失败状态标志

    /*启用 STC 运行*/
    stcREG2->STCGCR1 =(0u << 8u)|(0xAu << 0U);//在两个 HET 模块上启用自检

    for (tempVal = 0U;tempVal < 32u;tempVal++){

    while (!(stcREG2->STCGSTAT 和0x1));//等待直到设置 TEST_DONE

    /*获得测试结果*/
    IF (STC_STCGSTAT_TEST_FAIL =(STC_STCGSTAT_TEST_FAIL 和 STcREG2->STCGSTAT))
    {
    /*测试完成且失败*/
    /*清除错误*/
    stcREG2->STCGSTAT = STC_STCGSTAT_TEST_FAIL;

    否则
    {
    RetVal = true;

    返回(返修);

    e2e.ti.com/.../stc_5F00_selftest.c

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

    感谢您的答复。 我还有一个问题、那就是我们是否有机会同时(并联)测试两个 STC (STC1和 STC2)?

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

    尊敬的 Ktmn:

    并行运行 STC1和 STC2自检没有问题。 但我没有并行运行测试。

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

    感谢您的回复。  还有一个问题。 对代码存在如下误解:

    /*清除 fstat 和 GStat 寄存器中的错误标志*/
    stcREG1->STCGSTAT = 0x3;
    stcREG1->STCFSTAT = 0x1F;

    在注释行中、它说它清除了 fstat 和 gstat 中的错误标志。 不过、看起来它没有清除标志、而是设置了错误位。 此外、当我删除这两行时、输出不会改变。 您能解释一下这些行的含义吗?

    此致、

    Ktmn

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

    尊敬的 Ktmn:

    向 GSTAT 和 FSTAT 寄存器的状态位写入1即可将其清零为默认值。  

    这些状态位也可通过上电复位和启用 STC 自检(将0xA 写入 STC_ENA)来清除。