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.

[参考译文] TMS320F28335:TMS320F28335将 RS 转232 USB 转 TTL。 尝试 SCI 接收。 接收时缺少数据如何修复?

Guru**** 2392095 points
Other Parts Discussed in Thread: TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1439808/tms320f28335-rs-232-usb-to-ttl-with-tms320f28335-trying-sci-reception-missing-data-while-receiving-how-do-i-fix-it

器件型号:TMS320F28335

工具与软件:

您好!  

对于我们的项目要求、我们希望将 USB 数据转换为 TTL 格式。 为了实现这一点、我们使用了 器件:TMS320F28335。  

我们使用的是 USB 到 TTL 转换器。 TTL 输出连接到28335控制器卡的 SCI B 端口。  

接收器配置是根据特定链路中给出的步骤完成的(2.3配置问题症状--原因2)

链接: 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 

尽管有人观察到、发送器正在传输数据、但没有丢失任何数据、因为接收器未接收数据、请查找我们为此特定目的开发的附加代码。 您能不能看一下我们的代码并解决问题(如果有)。  

并连接在 TTL 侧 Rx 引脚中看到的波形:  

void Sci_Config()
{

    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1;     // enabiling peripheral clock
    EDIS;

    EALLOW;
    GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0;
    GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0;
    EDIS;

    ScibRegs.SCIFFRX.bit.RXFFIENA = 0;
    ScibRegs.SCIFFTX.bit.TXFFIENA = 0;
    ScibRegs.SCIRXST.bit.FE = 0;
    ScibRegs.SCIRXST.bit.OE = 0;
    ScibRegs.SCIRXST.bit.PE =0;
    ScibRegs.SCICTL1.bit.RXERRINTENA = 0;
    ScibRegs.SCICTL2.bit.RXBKINTENA = 0;
    ScibRegs.SCICTL2.bit.TXRDY = 0;
    ScibRegs.SCICTL1.bit.SWRESET = 1;

    ScibRegs.SCIFFTX.bit.TXFFINTCLR = 1;
    ScibRegs.SCIFFRX.bit.RXFFINTCLR = 1;

    ScibRegs.SCIFFRX.bit.RXFFOVRCLR = 1;

    ScibRegs.SCIFFTX.bit.TXFIFOXRESET = 0;
    ScibRegs.SCIFFRX.bit.RXFIFORESET = 0;

    ScibRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
    ScibRegs.SCIFFRX.bit.RXFIFORESET = 1;

    ScibRegs.SCICTL1.bit.TXENA = 0;   
    ScibRegs.SCICTL1.bit.RXENA = 0;

    ScibRegs.SCIFFTX.bit.SCIRST = 1;

    ScibRegs.SCICCR.all = 0x0007;

    ScibRegs.SCIHBAUD = 0x0000;    // Setting the baud rate (high register)
    ScibRegs.SCILBAUD = 0x0079;

    ScibRegs.SCICTL1.bit.TXENA = 1;
    ScibRegs.SCICTL1.bit.RXENA = 1;

    ScibRegs.SCICTL1.bit.SWRESET = 1;

    ScibRegs.SCIFFTX.bit.TXFFIL = 4;   
    ScibRegs.SCIFFRX.bit.RXFFIL = 4;

    ScibRegs.SCIFFTX.bit.SCIRST = 1;
    ScibRegs.SCIFFTX.bit.SCIFFENA = 1;
    ScibRegs.SCIFFTX.bit.TXFIFOXRESET =1;

    ScibRegs.SCIFFRX.bit.RXFIFORESET =1;

    ScibRegs.SCICTL1.bit.TXENA = 1;
    ScibRegs.SCICTL1.bit.RXENA = 1;

    ScibRegs.SCICTL1.bit.SWRESET = 1;
	
	EALLOW;
    GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3;     // Asynchronous input    (SCIRXDA)
    GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 2;     //config gpio as SCITXDA 
    GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 2;     //config gpioas SCIRXDA
    EDIS;

}

 

谢谢、此致、

Chaya

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

    尊敬的 Chaya:

    [报价 userid="559654" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1439808/tms320f28335-ms3202-232-usb-to-TTL-with-TMS320F28335-Trining-sci-receive-missing-data-while rs receiving-do-i-fix-it"]接收者未收到数据

    您能说明漏掉的数据吗? 缺失数据(移位、丢失帧等)是否有模式? 您能否清楚地描述  传输数据的情况以及接收到哪些数据/缺少哪些数据? 您是否能够在 SCI 线路上看到正确的信号输出、但在 C2000上看不到正确接收到 RXBUF (RXEMU)寄存器中的数据?

    此致、

    Allison

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

    您好!  

    我们将通过 USB 使用 GUI 传输命令、命令将以帧和帧的形式传输到 TI 实验套件、并从 STX 和 ETX 开始。 在 STX 和 ETX 之间、将插入命令字并进行传输。  

    前缀命令应作为命令帧从 USB 端口传输、命令帧的格式如下所示:

    在我们的测试过程中、命令"MD1"(4D 44 31)已发送到 SCI 端口、如下所示:

    SCI 应接收给定的数据 是"是" 以下是观察结果:  

    • 始终接收到文本02的开头  
    • 大多数时间都接收到文本03的结尾  
    • 在 STX 和 ETX 之间、偶尔会接收数据(MD1)或以随机方式接收、如下所示:
      • 02 4D 44 03;
      • 02 44 03;
      • 02 4D 4D 03;  
      • 02 03;
      • 02 31 31 4D 03;
      • 02 44 44 31 4D 03;
      • 02 4D 44;
      • 03 4D 4D 02  
    • 这种特殊的接收也是偶尔发生的

    • 在此处连接波形、TTL 输出:  

    谢谢、此致、  

    Chaya  

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

    尊敬的 Chaya:

    感谢您的明确解释和细节。 请允许我再花一天时间查看您提供的信息。 感谢您的耐心!

    此致、

    Allison

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

    尊敬的 Chaya:

    我很抱歉、我需要在这里多待一天才能得到适当的答复。

    此致、

    Allison

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

    尊敬的 Chaya:

    很抱歉耽误你的时间。 您能说明一下您使用的波特率吗? 您的 LSPCLK 分频器是什么(您运行的 LSPCLK 频率是多少)以及通信器件预期的波特率是多少? 由于 SCI 接收到的数据损坏、一个推测是这可能是时序不匹配。 我想确认波形是否始终反映正确的数据、但您会看到 SCI 缓冲器(RXBUF/SCIRXEMU)中接收到错误的数据。

    此致、

    Allison

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

    您好!  

    波特率为38.4khz。 LSPCLK、我们给出了150MHz (当我们在 SCILBAUD 寄存器中写入0x0079时、我们不使用波特率公式-(LSPCLK/(BAUD_RATE*8)-1)(根据手册))。

    但是、通过在示波器中测量此38.4khz、我们将 SCILBAUD 的值写入0x0079。  

    是的、波形始终反映正确的数据、但我们看到接收到错误的数据。   

    谢谢、此致、

    Chaya

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

    尊敬的 Chaya:

    Allison 目前不在办公室,直到节假日结束。 请预计响应会有延迟。 感谢您的耐心。

    此致、

    Aishwarya.

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

    尊敬的 Chaya:

    对于延迟延长、我们深表歉意。 您是否仍面临此问题、或者是否有任何进一步的更新可提供进度信息?

    感谢您提供波特率信息。 您能否澄清在接收不正确时看到的任何 RX 错误标志的状态?  

    此致、

    Allison

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

    您好!

    很抱歉耽误你的时间。 是的、我们仍然面临着这个问题。  

    一旦我们将对您进行检查和更新、我们未检查此标志的状态。  

    谢谢、此致、

    Chaya