TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP SCI

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Forrest:

单步看一下吧。看看SCI收到的数据是什么数据,程序中写到SCI发送寄存器的又是什么数据。

另外下面例程包中的sci_echoback例程也可以参考。

focus.ti.com.cn/…/sprc832.html

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Leo zhou:

回复 Forrest:

单步调试时,程序写入到SCITXBUF中的数据依次是17、34、51、68、85、102、119、136、153、170、187、204、221、238、255和0,而接收数据SCIRXBUF中的数据依次是221、17、255、51、17、85、51、119、85、153、119、187、153、221、187和255。这个现象是和原因,另外发送数据是使用查询模式,接收使用中断模式。请求帮助,谢谢!

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Forrest:

回复 Leo zhou:

在做loopback实验吗?那可以参考scia_loopback例程。

1、既然单独收发送数据均正常,那说明硬件没有问题

2、既然“发出来的数据和接收到的数据不相同”;那么应该是程序中什么地方写的有问题,您可以单步/断点;看看程序什么地方有问题,是芯片接收到的数据错误导致发送的数据错误;还是接收到的数据正确,但程序没写好导致发送的数据不是您想要发送的数据。

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Young Hu:

Leo

您好!

最大的可能是程序上的问题。您可以看一下到底收到的数据是什么。

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Leo zhou:

回复 Young Hu:

谢谢!

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Johnson Chen1:

回复 Leo zhou:

楼主可以全速跑,将发送和接收到得数据放入RAM中,如连续放8个字节,然后停下来看一下,接收和发送的数据是否一样,如果不一样看接收是否正确。软件上查一些软件上是否因为其它的中断导致接收数据部正确。

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Leo zhou:

SCI通讯测试时,DSP上电后13ms时,用示波器测得SCITX发出一个“Framing Error”,其占据超过发送一帧数据(包括:1位起始位,8位数据位,1位停止位)的时间,然后接下发出来的数据是正确的,但第一组数据的校验和CheckSum有误,以下组的数据和校验和均是正确的,发送的每一组数据间间隔1000ms。每次上电后示波器上都会出现“Framing Error”这现象且只出现一次,请问如何解决?谢谢!

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Johnson Chen1:

回复 Leo zhou:

想知道上电13ms时发的一帧数据,是软件上控制要发数只是发出来的数据不对,还是说这时软件上没有要发数据,是不应该出现的帧?还有就是第一组数的校验和不对,是因为多发了一帧数据,导致实际数据少发了一帧吗?能否详细介绍一些,你的软件流程?方便的话,楼主可以将最小项目附上来,我们实际分析一下。

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Forrest:

回复 Johnson Chen1:

Framing Error产生在SCI发送端发送的数据不符合接收端的要求的数据格式,然后被接收端判定为Framing Error,噪声也是导致Framing Error的一种可能。

楼主上电后,TI的28027的SCI初始化有按照TI例程的初始化步骤么?楼主是怎么确认Framing Error的?28027和其他设备,比如电脑通信电脑也无法正常接收第一帧数据吗?

你好,我使用的是TMS320F28027,波特率是9600,单独收发送数据均正常。现在将接收到的数据发送出来,发现发出来的数据和接收到的数据不相同,请问这种现象有哪些原因?谢谢!

Leo zhou:

回复 Johnson Chen1:

       上电13ms时发的一帧数据不是软件控制要发的数据,是不应该出现的数据帧!这样需要发的第一组数据的校验和有误,但软件控制发送的数据是正确的,第二组以后的数据和校验和都是正确的。

SCITX:GPIO12

SCIRX:GPIO28

程序如下

1)、SCI初始化

   SciaRegs.SCICCR.all =0x0007;                   // 1 stop bit,  No loopback                                                                                // No parity,8 char bits,                                                                                // async mode, idle-line protocol   SciaRegs.SCICTL1.all =0x0003;                  // enable TX, RX, internal SCICLK, Disable RX ERR, SLEEP, TXWAKE   SciaRegs.SCICTL2.bit.TXINTENA =0;   SciaRegs.SCICTL2.bit.RXBKINTENA =1;   SciaRegs.SCIHBAUD = 0x00;   SciaRegs.SCILBAUD = 0xC2;   SciaRegs.SCIFFTX.all=0xC022;   SciaRegs.SCIFFRX.all=0x0022;   SciaRegs.SCIFFCT.all=0x00;

   SciaRegs.SCICTL1.all =0x0023;                             // Relinquish SCI from Reset   SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;   SciaRegs.SCIFFRX.bit.RXFIFORESET=1;

2)、发送模块

main()

{

    ……………… 

  for(;;)                        

{     asm("nop");     SCI_Delay();                                // 1000ms

    for(i=0;i<32;i++)    {           sdataA[i] = i + 1;    }

    for(SCI_NUM=0;SCI_NUM<34;SCI_NUM++)    // Send Data    {             SciaRegs.SCITXBUF = sdataA[SendCount];           while(SciaRegs.SCICTL2.bit.TXRDY == 0){};           while(SciaRegs.SCICTL2.bit.TXEMPTY == 0){};            DELAY_US(500);              if(SCI_NUM < 32)            {                 CheckSum = CheckSum + sdataA[SendCount];            }           else            {                sdataA[32] = CheckSum & 0x00FF;                sdataA[33] = ((CheckSum & 0xFF00) >> 8) & 0x00FF;            }

            SendCount++;

            if(SendCount == 34)             {                  SendCount = 0;                  CheckSum = 0;             }        }     SCI_SendDelay();                    // 100ms

}

}

截取的上电时波形图如附件001.png,请帮忙!谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » DSP SCI
分享到: 更多 (0)