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.

[参考译文] TMDS570LS31HDK:SL_SelfTest_SCI SCI_ANALY_loopback_test 卡在等待引脚进入空闲状态。

Guru**** 1701580 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/1230508/tmds570ls31hdk-sl_selftest_sci-sci_analog_loopback_test-stuck-waiting-for-pin-to-go-idle

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

当 在 SL 库中运行 SCI_ANALOIP_TEST 时、测试在等待 SCI 进入空闲状态时挂起。 虽然我注意到文档中提到必须正确校准 pinmux、但我无法确定错误配置了哪些引脚。 我在调用 SL 测试之前调用 HALCoGen 标准 sciInit ()函数,所以我不确定还需要做些什么来确保测试不会挂起。

...

感谢任何帮助。

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

    环回测试不需要引脚多路复用。

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

    您好、QJ:

    那么、应该为该回送测试配置什么? 我在 Halcogen 中启用了 SCI、并且我在运行环回测试之前调用 sciInit ()、但测试会在等待 Tx 引脚变为空闲状态时挂起。

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

    您的环回测试中使用的是哪个 SCI?

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

    您好、QJ、您好、符合我的配置。  

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

    您好、Robin、

    我刚刚进行了 SCI 回扫测试、结果运行良好。

    /*包含文件*/

    #include "sys_common.h"

    /*用户代码开始(1)*/
    #include "sci.h"

    #define TSIZE 18
    UINT8文本[TSIZ]={'M'、'I'、'C'、'R'、'O'、'C'、'O'、'N'、'T'、'O'、'L'、'L'、'E'、'R'、'S、'、'、'、'、'、'、'、'、'、'};


    #define UART scilinREG

    /*用户代码开始(2)*/
    unsigned char rxData[18];
    /*用户代码结束*/

    /**@fn void main (void)
    *@简介应用程序主要功能
    *@注意此功能默认为空。
    *
    *此函数在启动后调用。
    *用户可以使用此函数来实施应用程序。
    */

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

    int main (空)
    {
    /*用户代码开始(3)*/
    UINT32长度= TSIZE;
    Uint8 *文本;

    文本=text[0];

    sciInit();/*初始化 sci/sci-lin */

    _enable_irq();

    sciEnableLoopback (UART、Digital_LBK);

    /**-将 SCI 配置为接收8字节的命令信息*/
    sciReceive (UART、1、rxData);

    while (length --)
    {
    while ((UART->FLR 和0x4)=4);/*等待直至忙*/
    sciSendByte (UART、*文本++);/*发出文本*/
    };


    while (1)/*连续无玩法*/

    /*用户代码结束*/

    返回0;


    /*用户代码开始(4)*/
    /**@fn void sciNotification (unsigned flags)*/
    void sciNotification (sciBASE-t * sci、无符号标志)
    {
    /**检查有效命令
    **-入门
    *! -命令结束
    */

    /**-准备好接收下一个命令*/
    sciReceive (UART、1、rxData);

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

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

    您好、QJ。 理想情况下、我们应使用 SafeTI 库来运行该测试。 我已经加倍了您在这里的设置、从用户方面、我已经将所有内容都匹配起来。 但是、当我运行 SafeTI 命令 slRet = SL_SelfTest_LIN (LIN_ANAL_Loopback_test、SL_LIN1)时、或者如果 SCI 等效命令仍然挂起。

    下面是一个例子:

        bool slRet = false;
    
        /* Run SCI Analog Loopback test. */
        /* IRQ & FIQ are normally disabled before runtime */
        _enable_interrupt_();
        slRet = SL_SelfTest_LIN(LIN_ANALOG_LOOPBACK_TEST, SL_LIN1);
        if (slRet != true) {
            return false;
        }


    这里是挂起的地方:



    除此之外、在 LIN 测试中、我认为有一个错误:

    此行不会检查正确的寄存器。 我认为它应该类似于 SCI 测试的检查、看起来像

    if (((LIN_GCR0_RESET_BITE|LIN_GCR1_SWRST_BIT)!=(SL_LINREG->GCR1和 LIN_GCR1_SWRST_BIT)|(SL_LINREG->GCR0和 LIN_GCR0_RESET_BIT))

    请确认这是否是错误以及是否可以测试 SL API 函数。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请确认这是否是错误,以及您是否可以测试 SL API 函数。

    您是对的。 它是软件错误。

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

    您好、QJ:

    是否有任何关于您是否能够使 SL 函数在您的终端上工作的更新? 谢谢。

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

    您好、Robin、

    我还没有测试过它。 我会这么做的

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

    您好、Robin、

    QJ 卡住了其他问题、所以我会进行测试、并尽快为您提供更新。

    --

    谢谢。此致、
    Jagadish。

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

    您好、Robin、

    我想我发现了这个问题:

    但是、当我运行 SafeTI 命令 slRet = sl_SelfTest_lin (lin_analog_loopback_test、sl_LIN1)时、或者 SCI 等效文件仍挂起。

    为什么要运行"sl_SelfTest_LIN"函数来 执行 SCI 模拟环回?

    实际上、 您应该直接运行"sl_SelfTest_SCI"函数?

    实际上"sl_SelfTest_LIN"将用于 LIN 环回测试、而不用于 SCI 环回测试。 即使大多数寄存器地址相同、但我们无法保证 LIN 和 SCI 的寄存器中的所有位都相同。

    因此、请使用正确的函数并对其进行测试。

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    是的、我最初使用 SCI 版本运行它、出现了此问题、并测试了 LIN 以防万一。 不幸的是、这两个选项都不起作用。 谢谢

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

    您好、Robin、

    可以使用"sl_SelfTest_SCI"函数。

    我遇到的唯一问题是、它卡在以下情况。

    如果我们没有在引脚多路复用器中启用 SCI 引脚、  

    如果我们为 SCI 启用 pinmux、则我不会看到 sl_SelfTest_SCI 函数的任何其他问题。

    为了简化调试、我刚刚将  sl_SelfTest_SCI 函数代码复制到新项目中并进行了测试。 下面是我测试的项目:

    e2e.ti.com/.../SCI_5F00_Analogue_5F00_Loopback_5F00_test_5F00_LS3137.zip

    --

    谢谢。此致、
    Jagadish。