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.

[参考译文] TMS320F2800137:串行通信

Guru**** 2949580 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1277582/tms320f2800137-serial-communication

器件型号:TMS320F2800137
主题中讨论的其他器件:SysConfig

在进行 SCI 通信时、数据不会进入 RX 缓冲区 SAR 位、我已像这样配置 SCIA

SciaRegs.SCICTL1.bit.TXWAKE=1;
SciaRegs.SCIHBAUD.bit.baud = 0x05;
SciaRegs.SCILBAUD.bit.baud = 0x15;
SciaRegs.SCICCR.bit.SCICHAR=7;
// SciaRegs.SCICCR.bit.ADDRIDLE_MODE=1;
SciaRegs.SCICCR.bit.PARITYENA=1;
SciaRegs.SCICCR.bit.quality=1;
SciaRegs.SCICCR.bit.stopbits=1;
SciaRegs.SCIRXST.bit.RXWAKE =1;
SciaRegs.SCICTL1.bit.TXENA=1;
SciaRegs.SCICTL1.bit.RXENA=1;
SciaRegs.SCICTL1.bit.SWRESET = 1;
SciaRegs.SCICTL2.bit.RXBUKINTENA=1;
// SciaRegs.SCIFFRX.all = 0x0022;
SciaRegs.SCIFFRX.bit.RXFFIENA=1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
SciaRegs.SCICTL1.all = 0x0023;

在 ISR 中  

{

RecData= SciaRegs.SCIRXBUF.bit.sar;

////// 清除标志//////////////////
// SciaRegs.SCICTL1.bit.SWRESET = 1;
SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;
// PieCtrlRegs.PIEACK.ACK8=;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
PieCtrlRegs.PIEACK.all = PIEACK_group9;

}

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

    当我启用环回时、它工作正常、但当我短接 TX 和 Rx 引脚时、它不工作。 紧急。

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

    尊敬的 Manoj:

    您是否已将正确的 GPIO 配置为 复用 SCI TX 和 SCI RX? 默认情况下、SCI 不连接到引脚。

    请使用 SysConfig 了解具体方法(SysConfig 会生成 SCI 所需的所有代码)。

    此致、

    文斯

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

    SysConfig 无法为我提供对所有寄存器的访问权限、并且它有一些错误。

    GPIO 配置如下所示

    //Gpio28////
    GpioCtrlRegs.GPAQSEL2.bit.GPIO28=2;
    GpioCtrlRegs.GPAGMUX2.bit.GPIO28=0;
    GpioCtrlRegs.GPAMUX2.bit.GPIO28=1;//配置为 SCIA RX
    GpioCtrlRegs.GPAPUD.bit.GPIO28=0;//上拉已启用
    //Gpio29////
    GpioCtrlRegs.GPAGMUX2.bit.GPIO29=0;
    GpioCtrlRegs.GPAMUX2.bit.GPIO29=1;//配置为 SCIA TX
    GpioCtrlRegs.GPAPUD.bit.GPIO29=0;//上拉已启用

    中断

    PieCtrlRegs.PIEIER9.bit.INTx1=1;  //SCIARX 中断

    IER |= M_INT9;

    PieVectTable.SCIA_RX_INT=&SciARxIsr;  // SCIC 中断函数

    启用环回数据传输时。 请帮我解决这个问题。

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

    尊敬的 Manoj:

    您能否提供 TX 和 RX 引脚的示波器捕获? 我认为 SCI 没有到达您要输出到的引脚、仍然会出现问题。

    这是它在环回中正常工作但在引脚短接时无法正常工作的唯一方法。

    还要仔细检查您使用的引脚是否是正确的引脚。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031947/faq-my-c2000-sci-is-not-transmitting-and-or-receiving-data-correctly-how-do-i-fix-this

    此致、

    文斯

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

       

    波形是 TX 引脚上的信号、硬件为 Launchpad IO28、并且选择 IO29开关连接到 Booster Pack

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

    Manoj,

    硬件已经使用这两个引脚(IO28/29)、如 SysConfig 中的下图所示:

    必须在 Launchpad 上更改跳线以使 TX 和 RX 连接到引脚。

    请示波器捕获 RX 引脚、然后查看信号是否到达该引脚。

    此致、

    文斯

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

    在上图中、CH1信号是 Tx 引脚上的信号、这意味着信号将进入 BoosterPack、我将 SEL1开关保持为1、这样、信号就会 路由到 BoosterPack。

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

    尊敬的 Manoj:

    您可以示波器捕获 RX 引脚吗? 看起来信号可能没有到达 RX 引脚。 即使这样、IO28和 IO29之间似乎没有任何连接、因此您需要使用一根导线跳接这些引脚。

    此致、

    文斯

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

    我保留了这张照片作为参考、说 SEL1开关保留在 Booster Pack 上。 我用跳线短接 IO28和 IO29 (在这张照片中它没有)。

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

    尊敬的 Manoj:

    您能否使用 SysConfig 尝试一次、并至少将其用作必须生成什么内容的参考?

    SysConfig 没有为我提供所有寄存器的访问权限,它有一些错误。

    请提供您试图访问 SysConfig 不允许的哪些寄存器、以及您提到的错误。

    此致、

    文斯

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

    我理解 SysConfig 的工作非常简单、但我们开发了所有带有位字段的代码、只有 sci 通信有问题、请使用我使用的配置进行仿真、并确认我所做的操作是否正确。

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

    尊敬的 Manoj:

    您是否正在使用 device.h 并且已设置"_LAUNCHXL_F2800137"预定义符号?

    请参阅板用户指南中突出显示的文本:

    在调试方面、我们不支持 E2E 中的代码转储调试。 不过、我可以提供一些一般性指导。

    我建议您构建并浏览 sci_ex1_loopback.c 示例中的所有代码行、然后查看是否缺少任何配置项。

    您还可以将 SCIA 寄存器与您自己的寄存器进行比较、以查看是否有任何配置不同。

    注意:我使用默认的 sci_ex1_loopback.c 示例在 LaunchPad 上测试了相同的设置、但仅做了修改、以便禁用环回、而且它能够正常工作、不会出现任何问题。

    此致、

    文斯