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.

[参考译文] TMS320F28P659DK-Q1:SCI:接收到错误的数据

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1648556/tms320f28p659dk-q1-sci-receiving-incorrect-data

器件型号: TMS320F28P659DK-Q1

您好、

我在 P659DK8 上配置 SCI-B 以 9600 波特、无奇偶校验、一个停止位进行通信。 传输工作无瑕疵、每个字节以 10 位(一个开始位,8 个数据位和一个停止位)进行传输。

一个是接收端、FTDI 转 USB 适配器用于响应。 根据逻辑分析仪、数据也会以每字节 10 位的速率发送。

  • 在接收端和发送端以及逻辑消息发送端、逻辑器件使用相同的解码器设置并以每字节 10 位的速率解码流
  • 测量发送数据包(32 字节)和接收端(10 字节)上的波特率、表示完全相同的 9600.4 波特率

但是、n ü µC 似乎错误地解释了传入的数据流。 当我查看线路上的接收数据并将其与 SCI 外设实际接收到的数据进行比较时、数据每字节移动一位。  

外设似乎不期望停止位。

我没有看到任何描述外设发送端和接收端的不同行为的寄存器配置。 我没有找到任何描述此问题的勘误表、我阅读了“我的 C2000 SCI 未正确发送和/或接收数据、如何解决此问题?“ 常见问题解答。

这里的问题可能是什么?

此致
Torsten

附注:

我测量了传输波特率、方法是从第一个开始位的开始到最后一个停止位的开始。 传输的数据包含 32 个字节、因此授权序列有 319 位。 测量序列长度为 33227µs。 => 104.16µs

接收端也一样:发送 10 个字节、整个周期的长度为 10312µs => 104.16µs

一个是接收端、一条线我看到字节序列:0x00、0x02、0x01、0x01、0x05 0x25、0xB3、0x83、0xFE、0x00。 但是、C2000 SCI 外设仅接收到 9 个字节:0x00、0x81、0x40、0xA0、0x50 0x69、0x1b、0xf3、0x00

当我比较前 5 个字节时、似乎第一个字节被正确接收、第二个字节被移动一位、第三个字节被 2 移动、依此类推:

0000 0,000,0100 0,000,1000 0,000,1000 0,000,1010 0000
0000 0,000,1000 0,001,0000 0,010,0000 0,101,0000 1010

 

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

    您好、

    该专家目前已离职。 请预计响应会延迟、直到他们下周返回。  

    此致、
    Aj Favela.  

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

    尊敬的 Torsten:

    对延迟深表歉意。 您能否检查 SCIRXST 寄存器中是否出现任何错误标志? 根据您的描述、我怀疑发生了一个框架错误。

    此外、您配置的 LSPCLK 频率是多少? 这将告诉我们器件可能达到的预期波特率与实际波特率之间的已知误差。  

    此致、

    Delaney

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

    尊敬的 Delaney:

    在那里没有设置错误标志。 我使用 9600 波特进行了测试。 将 LSPCLKDIV 设置为 14、将 BBR 设置为 185。

    同时、我更改了代码以利用 FIFO、现在它可以正常工作、无需更改任何其他内容。 您是否有涵盖在没有 FIFO 的情况下外设使用的测试?

    对我来说、问题可以解决、因为我找到了一个有效的解决方案、希望可以移植到其他 C2000 衍生产品。

    此致  

    Torsten