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.

[参考译文] LAUNCHXL-F28379D:针对 LAUNCHXL-F28379D 上 SCIB TX 和 RX 引脚的硬件环路测试

Guru**** 2535750 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/994470/launchxl-f28379d-hardware-loop-test-for-scib-tx-and-rx-pins-on-launchxl-f28379d

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件: C2000WARE

是否可以将 Launchpad LAUNCHXL-F28379D (即 J1引脚3和4)上的 SCIB TX 和 RX 引脚短接,并检查 RX 引脚是否正在接收通过 TX 引脚传输的串行位。 您能否共享该代码? 此外、如何在连接到运行 Code Composer Studio 的 Launchpad 的 PC 上监控此信息?

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

    您好!

    感谢您的提问。 专家将与您联系、询问任何后续问题。

    同时、以下是一些答案:

    1.是的、您可以按照 C2000Ware 中的"环回"示例短接引脚并查看结果输出、但使用外部连接而不是内部环回。 但是、如果您更愿意获得更具代表性的测试、则使用"echoback"示例将允许主机 PC 进行完整的往返

    在这两个示例中都提供了代码、但没有用于直接短接引脚的现有代码(尽管从我在1中提供的信息可以很容易地执行此操作)。

    3.可以、您可以在 CCS 中查看寄存器以查看结果(将能够查看为原始字节)。 如果您使用"echoback"示例、您可以直接看到您键入的字符被器件写回、因此我强烈建议您在尝试死区短路之前使用该示例。

    另一个注意事项:"回送"示例实际上正是您所需要的、唯一的区别是我们处理器件内部从 TX 到 RX 的短路。 这对于大多数测试应用来说更安全、因为可以确定短路是否牢固(有时会出现跳线等)、可能会松动并增加另一个误差源。 如果您可以、我建议您首先尝试使用该示例。

    此致、

    Vince

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

    您好、Vince

    感谢您的建议。 我看了 sci_echoback 示例。 我有以下疑问:  


    Launchpad 的 J1-J8引脚上不存在 GPIO28和 GPIO29。 因此、我不知道如何使用串行 DB9电缆的 PC-TX 和 PC-RX 连接它们。


    2.为了处理 SCI_B 回声卡上的代码,如果我进行以下更改,它应该能够处理我们的:  

    2.1分别将  引脚28和29的所有 GPIO_SetupPinMux ()和 GPIO_SetupPinOptions ()更改为19和18。

    2.2将 scia 的所有功能改为 scib。

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

    您好、Alok、

    [引用 userid="464283" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/994470/launchxl-f28379d-hardware-loop-test-for-scib-tx-and-rx-pins-on-launchxl-f28379d/3674138 #3674138]1. GPIO28和 GPIO29不存在于 Launchpad 的 J1-J8引脚上。 因此、我不知道如何将它们与串行 DB9电缆的 PC-TX 和 PC-RX 相连。[/QUERP]

    LaunchPad 为 SCI-B 和 SCI-C 提供 RX/TX 信号 如果您想使用 SCI-B、可以使用 GPIO 19 (RX)和 GPIO 18 (TX)。

    [引用 userid="464283" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/994470/launchxl-f28379d-hardware-loop-test-for-scib-tx-and-rx-pins-on-launchxl-f28379d/3674138 #3674138"]

    2.为了处理 SCI_B 回声卡上的代码,如果我进行以下更改,它应该能够处理我们的:  

    2.1分别将  引脚28和29的所有 GPIO_SetupPinMux ()和 GPIO_SetupPinOptions ()更改为19和18。

    2.2将 scia 的所有功能改为 scib。

    [/报价]

    echoback 程序不需要任何额外的硬件、您应该只需更改 GPIO 的引脚多路复用器并使用项目属性中的"_LAUNCHXL_F28379D"预定义。 请参阅此常见问题解答: https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/817224/faq-compiler-launchxl-f28379d-updating-default-sci-echoback-example-developed-for-control-card-to-work-with-launchpad?ReplyFilter=Answers&ReplySortBy=Answers&ReplySortOrder=Descending 

    要将 SCI-B 与 DB9电缆配合使用、是的、您需要将 SCIA 更改为 SCIB 配置、更改引脚复用。 另一件事是将 LaunchPad _LAUNCHXL_F28379D 的预定义添加到项目属性中,这一点很重要,这样您的 PLL 设置就可以在 InitSysCtrl()中正确定义。  

    有关类似信息、请参阅此帖子:  

    https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/720934/compiler-launchxl-f28379d-support-for-serial-communication 

    此致、

    Marlyn

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

    您好、Marlyn  

    根据您共享的链接、我能够使用 SCIA 配置执行 sci_echoback。 感谢您的指导。 我使用 PuTTY 监视在 GPIO42和43上交换的字符。 然后、我尝试通过将 TI Launchpad 上的 GPIO19和18短接来使用 SCIB 配置实现相同的配置。  
    这是我的代码:  

    //######################################################################################################################
    //
    //文件:example_2837xDSci_Echoback.c
    //
    //标题:SCI 回送。
    //
    //! addtogroup cpu01_example_list
    //!

    SCI 回送(sci_echoback)


    //!
    //! 此测试通过 SCI-B 端口接收和回波数据。
    //!
    //! PC 应用程序“超级终端”或其它终端
    //! 例如"putty"可用于查看来自 SCI 和的数据
    //! 以向 SCI 发送信息。 接收到的字符
    //! 将被发送回主机。
    //!
    //! b 正在运行\b 应用程序
    //! -#配置超级终端或其它终端、如 PuTTy:
    //!
    //! 对于超级终端、您可以使用随附的超级终端配置
    //! 文件 SCI_96.HT。
    //! 超级终端中加载此配置
    //! -#打开超级终端
    //! -#转至文件->打开
    //! -#浏览至项目位置和
    //! 选择 SCI_96.HT 文件。
    //! -#检查 COM 端口。
    //! 当前已为 COM1设置配置文件。
    //! 如果不正确,请断开连接(呼叫->断开连接)
    //! 打开"File-Properties"对话框并选择正确的 COM 端口。
    //! -#连接超级终端呼叫->呼叫
    //! 然后启动2837xD SCI 回送程序执行。
    //! -#该程序将打印一条问候语,然后请您回答
    //! 输入一个字符、它将回显到超级终端。
    //!
    //! 注意:如果无法打开.HT 文件,或者您正在使用
    //! 另一个终端、您可以使用以下设置打开 COM 端口
    //! -找到正确的 COM 端口
    //! -每秒位数= 9600
    //! -日期位= 8
    //! -奇偶校验=无
    //! -停止位= 1
    //! -硬件控制=无
    //!
    //! b 监视\b 变量\n
    //! - LoopCount -发送的字符数
    //!
    //! b 外部连接\n
    //! 通过收发器和电缆将 SCI-B 端口连接到 PC。
    //! - GPIO28为 SCI_B-RXD (连接到串行 DB9电缆的引脚3、PC-TX)
    //! - GPIO29为 SCI_B-TXD (通过串行 DB9电缆连接到 PIN2、PC-RX)
    //!
    //
    //######################################################################################################################
    //$TI 版本:F2837xD 支持库 V210 $
    //$Release Date:Tue Nov1 14:46:15 CDT 2016 $
    //版权所有:版权所有(C) 2013-2016 Texas Instruments Incorporated -
    // http://www.ti.com/ 保留所有权利$
    //######################################################################################################################

    //
    //包含的文件
    //
    #include "F28x_Project.h"

    //
    //全局
    //
    uint16环计数;

    //
    //函数原型
    //
    void scib_echoback_init (void);
    void scib_fifo_init (void);
    void scib_xmit (int a);
    void scib_msg (char * msg);

    //
    //主函
    //
    void main (void)

    uint16 ReceivedChar;
    char *msg;

    //
    //步骤1. 初始化系统控制:
    // PLL、安全装置、启用外设时钟
    //此示例函数位于 F2837xD_SYSCTRL.c 文件中。
    //
    InitSysCtrl();

    //
    //步骤2. 初始化 GPIO:
    //此示例函数位于 F2837xD_GPIO.c 文件和中
    //说明了如何将 GPIO 设置为其默认状态。
    //
    InitGpio();

    //
    //对于这个示例、只初始化针对 SCI-B 端口的引脚。
    // GPIO_SetupPinMux ()-设置 GPxMUX1/2和 GPyMUX1/2寄存器位
    // GPIO_SetupPinOptions ()-设置 GPIO 的方向和配置
    //这些函数可在 F2837xD_GPIO.c 文件中找到。
    //
    GPIO_SetupPinMux (19、GPIO_MUX_CPU1、0x2);
    GPIO_SetupPinOptions (28、GPIO_INPUT、GPIO_PushPull);
    GPIO_SetupPinMux (18、GPIO_MUX_CPU1、0x2);
    GPIO_SetupPinOptions (29、GPIO_OUTPUT、GPIO_异 步);

    //
    //步骤3. 清除所有_interrupts 并初始化 PIE 矢量表:
    //禁用 CPU __interrupts
    //
    Dint;

    //
    //将 PIE 控制寄存器初始化为默认状态。
    //默认状态为禁用所有 PIE __interrupts 和标志
    //被清除。
    //此函数位于 F2837xD_PIECTRL.c 文件中。
    //
    InitPieCtrl();

    //
    //禁用 CPU __interrupts 并清除所有 CPU __interrupt 标志:
    //
    IER = 0x0000;
    IFR = 0x0000;

    //
    //使用指向 shell 中断的指针初始化 PIE 矢量表
    //服务例程(ISR)。
    //这将填充整个表,即使是__interrupt
    //在本例中未使用。 这对于调试很有用。
    //可以在 F2837xD_DefaultIsr.c 中找到 shell ISR 例程
    //此函数可在 F2837xD_PieVect.c 中找到
    //
    InitPieVectTable();

    //
    //步骤4. 用户特定代码:
    //
    LoopCount = 0;

    scib_fifo_init();//初始化 SCI FIFO
    scib_echoback_init ();//初始化用于 echoback 的 SCI

    MSG ="\r\n\n\nHello World!\0";
    scib_msg (msg);

    MSG ="\r\n 您将输入一个字符,DSP 将回显它! \n\n";
    scib_msg (msg);

    for (;;)

    MSG ="\r\n 输入字符:\0";
    scib_msg (msg);

    //
    //等待 inc 字符
    //
    while (ScibRegs.SCIFFRX.bit.RXFFST ==0){}//等待空状态

    //
    //获取字符
    //
    ReceivedChar = ScibRegs.SCIRXBUF.ALL;

    //
    //回显字符
    //
    MSG ="您已发送:\0";
    scib_msg (msg);
    scib_xmit (ReceivedChar);

    LoopCount++;

    //
    // scib_echoback_init -测试1、SCIA DLB、8位字、波特率0x000F、
    //默认,1个停止位,无奇偶校验
    //
    void scib_echoback_init ()

    //
    //注意:SCIB 外设的时钟被打开
    //在 InitSysCtrl()函数中
    //

    ScibRegs.SCICCR.all = 0x0007;// 1停止位,无环回
    //无奇偶校验,8个字符位,
    //异步模式,空闲线协议
    ScibRegs.SCICTL1.all = 0x0003;//启用 TX、RX、内部 SCICLK、
    //禁用 RX ERR、睡眠、TXWAKE
    ScibRegs.SCICTL2.all = 0x0003;
    ScibRegs.SCICTL2.bit.TXINTENA=1;
    ScibRegs.SCICTL2.bit.RXBKINTENA=1;

    //
    // SCIA 为9600波特
    //@LSPCLK = 50MHz (200MHz SYSCLK) HBAUD = 0x02且 LBAUD = 0x8B。
    //@LSPCLK = 30MHz (120MHz SYSCLK) HBAUD = 0x01且 LBAUD = 0x86。
    //
    ScibRegs.SCIHBAUD.ALL = 0x0002;
    ScibRegs.SCILBAUD.ALL = 0x008B;

    ScibRegs.SCICTL1.ALL = 0x0023;//从复位中撤回 SCI

    //
    // scib_xmit -从 SCI 发送一个字符
    //
    空 scib_xmit (int a)

    while (ScibRegs.SCIFFTX.bit.TXFFST!= 0){}
    ScibRegs.SCITXBUF.ALL =A;

    //
    // scib_msg -通过 SCIB 发送消息
    //
    void scib_msg (char * msg)

    int i;
    I = 0;
    while (msg[i]!='\0')

    scib_xmit (msg[i]);
    i++;

    //
    // scib_fifo_init -初始化 SCI FIFO
    //
    void scib_fifo_init()

    SCIFFTX.ALL = 0xE040;
    ScibRegs.SCIFFRX.ALL = 0x2044;
    ScibRegs.SCIFFCT.all = 0x0;

    //
    //文件结束
    //

    这目前不起作用。 执行停留在此 while 循环中:  

      while (ScibRegs.SCIFFTX.bit.TXFFST!= 0){}

    对此有任何建议吗?

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

    您好、Alok、

    让我检查一下这个问题、并在星期一返回给您。

    此致、

    Marlyn

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

    您好!

    您需要更改

    GPIO_SetupPinOptions (19、GPIO_INPUT、GPIO_PushPull);
    GPIO_SetupPinOptions (18、GPIO_OUTPUT、GPIO_异 步);

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

    你(们)好  

    我做了以下更改:  

    GPIO_SetupPinOptions (19、GPIO_INPUT、GPIO_PushPull);
    GPIO_SetupPinOptions (18、GPIO_OUTPUT、GPIO_异 步);

    但它不起作用。 同样的问题仍然存在。  

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

    您好、Alok、

    映射到 launchpad 上 FTDI 芯片的物理连接是通过 SCIA TX/RX 引脚实现的。 如果要使用 SCIB、则需要具有外部 FTDI 连接器/UART 转 USB 收发器。 我在上面对不需要额外硬件的评论是使用 SCIA、很抱歉不清楚这一点。

    此致、

    Marlyn

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

    您好、Marlyn

    我没有 FTDI 连接器、可以使用 USB 转 RS 232连接器。 9引脚 RS 232连接器具有 TX 和 RX 引脚。 这两个引脚能否分别用于与 SCIB RX 和 SCIB TX 引脚连接以建立连接?

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

    您好、Alok、

    是的、这是另一个选项。

    此致、

    Marlyn

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

    您好、Marlyn

    我无法测试与 USB 转 RS-232转换器的上述通信。 但是、我使用了两个 LaunchPad、并且能够通过 SCI 引脚发送和接收数据。 感谢你的帮助。