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.

[参考译文] TMS320F28069M:串行通信问题

Guru**** 2534260 points
Other Parts Discussed in Thread: TMS320F28069M, DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018093/tms320f28069m-serial-communication-issues

器件型号:TMS320F28069M
主题中讨论的其他器件: DRV8301

您好!
我们设计了一个 PCB,目标是使用 InstaSpin 控制 BLDC 电机。 我们使用的微控制器是 TMS320F28069M。 我必须使用115.2 kbaud、8位、一个停止位、无流量控制或其他类似问题的 UART 与 LCD 通信。 所以,我一直在尝试 TI 提供的一些示例。 回送示例工作正常。 但是、在运行回显返回示例时、我仅收到 gibberish、使用 RealTerm 或 TeraTerm 作为终端程序。 起初、我以为 USB 转串行转换器出现故障(在 Windows 10中没有明确支持)。 我有一个新的 USB 转串行、但结果相同。 现在,我将直接进入一台拥有一个真正串行端口的机器上(幸运的是)。 还是一样的…
我对回波示例的响应很少,因此现在我使用它来重复传输单个字符(9600波特),而不是原始的115.2K。
您可以在所附文件的示波器输出中看到输出符合预期、且波特率适当。 对于我尝试传输的每个字符、我会反复看到这一点。 有一次我认为这可能是一个大端字节序与小端字节序问题,但您将在随附的文字文档中看到,情况并非如此。 使用 Code Composer、我可以监控"msg"的值、该变量存储串行端口的最终输出、并且它也始终是我所期望的。
我使用回显回显的方式有一个很大的区别,那就是我尝试使用 B 串行端口发送和接收,并且示例是为 A 串行端口设置的。 A 端口的引脚对我来说是不可用的、因为它们用于其他用途。

我已经尝试了 RealTerm 中各种可能的设置更改(我认为)、这让我感到非常兴奋、因为这样一个显然简单的过程应该会出现如此错误。
我提供了当前用于此示例项目的.c 文件(包括我所做的更改)。 如果您需要任何.h 文件、请告诉我。

e2e.ti.com/.../Outputs.zip

谢谢、
Dave

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

    您好!

    您能否验证 SW3的位置(TRST/ISO SCI 通信信号使能)。 通信是通过 FTDI–FT2232芯片进行的吗?

    e2e.ti.com/.../1780.qsg_5F00_hw_5F00_cncd28069miso.pdf

    正如您所说的示波器输出符合预期、包括波特率、问题似乎是主机 PC 如何解释它。

    您是否尝试使用 CCS 串行监视器(调试会话->查看-> 终端->串行终端)

    此致、

    Yashwant

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

    您好、Yashwant、

    此电路板是(有点)原始设计。 其中大部分已从 DRV8301评估套件中取出。 没有 SW3。 我已附上 原理图的相关页面。 我尚未尝试使用 CCS 串行监视器。 我今天将尝试一下。

    我同意,这个问题似乎是对接受国的解释 我已经用两台 PC (两台都是 Windows 10)尝试过这种方法。

    我还尝试使用 RealTerm 连接这两台 PC,通信是完美的。

    注意:原理图显示了转换为 RS485的 RS232信号。 我开始使用 RS485信号、通过 RS485转 RS232转换器与 PC 通信。 当我注意到乱码输出时、我直接从微控制器开始使用信号。 可能我使用了错误的 RS232 (0至3.3V)电平、使问题变得更糟、但我在使用转换器时看到了同样的情况。

    奇怪-在我的原始邮件中包含附件很容易、但现在在答复中、我似乎无法找到如何执行...

    现在、我将发送该图、而不附加原理图页面。 如果您需要查看、请告诉我如何将其发送给您。

    谢谢、

    Dave

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

    您好、Dave、

     请在您试用  CCS 串行监视器后告知我们结果。

    此致、

    Marlyn

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

    大家好、Marlyn 和 Yashwant、

    嗯、这很奇怪。 我昨天发布了有关串行监视器输出的信息。 现在已经消失了...

    无论如何、当我发送 CCCCCCC 等...时、CCS 串行监视器会输出 yyyyyyyyyyyyy 等...即79hex、RealTerm 显示的内容相同。

    我还尝试通过 PCB 板载 RS485转换器、然后通过 RS485转 RS232转换器与 PC 进行通信。 其原因可能是计算机的串行端口由于处于错误的电压电平而错误地解释了它收到的数据。 我获得的结果与直接从串行端口输出获取输出时所得到的结果完全相同。 我最终使用直接来自串行端口 B 输出引脚的输出的唯一原因是输出变乱、我想转换器可能会把它弄乱。 情况并非如此。

    总结-

    回送工作正常。 只要器件与自身通信、F28069就会将发送的"C"解释为接收到的"C"。

    当我尝试在其他某个设备上接收串行输出时、消息会变乱。 这适用于2台不同的 Windows 10计算机。 对于我使用的任何终端程序( 包括使用 CCS Monitor 查看它时)、都是如此。

    乍一看、它看起来好像输出被反转和顺序相反、但并非每个字符都是这样处理的(请参阅我附加到原始帖子的 zip 文件)。 当我用示波器查看它时、它看起来很好-波特率、信号质量和消息本身都符合预期。 消息的字节序可能不是终端程序所期望的、但 RealTerm 可能会读取大端字节序或小端字节序输入(只需选中或取消选中"Bigendian"复选框)。 在任何情况下、字节序只会考虑位顺序的差异、而不是位值的异常。

    接下来我要尝试使用端口 A、因为回声站示例是这样设置的。

    当我将其设置为端口 B 时、可能会错过一些东西

    谢谢、

    Dave

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

    您好、Dave、

    这是一个奇怪的问题。 我仔细查看了您提供的代码、没有什么突出的。 配置 SCI-A 后、请告知我们状态

    您提到环回工作正常。 您是否使用环回示例确认了这一点? 此类回送是器件内部的。 作为另一项检查、我将运行环回示例、但禁用环回位、然后连接 TX/Rx 引脚以实际创建一个外部环回、在这里、信号将其传输到引脚并返回。 如果这正常工作并且器件读取正确的值、那么我认为您可以排除引脚/器件的任何问题。

    此致、

    Marlyn

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

    您好、Marlyn、

    是-我查看了环回示例、但没有尝试实际连接 Tx 和 Rx。 我将这样做、并告诉您该实验和 SCI-A 的结果

    谢谢、

    Dave

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

    您好、Marlyn、

    我想我已经了解了问题的根源。 我认为 RS485到 RS232转换器不是。 它是一个485到直接串行数据、用于直接与微控制器上的串行端口进行通信。 RS232是负逻辑、包括起始位和停止位。 当我仔细查看数据时、看起来终端程序(或其他程序)将所有内容反相、然后将停止位视为起始位、将开始位视为数据。 最后、我感到很震惊、如果一切都被颠倒了、那么可能是因为 PC 的串行端口需要所有的信号都处于正确的 RS232中、这不是我要发送的信号。 同样、当我将微控制器串行端口的输出直接连接到 RS232转 USB 转换器时。 微控制器不会以 RS232格式输出数据。 我有一些 RS232驱动器芯片。 现在、我将使用其中一个信号通过一个板载试验电路板来传输来自微控制器的信号。 我还订购了一个 RS485转 USB 转换器。 如此尴尬的错误! 很抱歉耽误你的时间。 让我们考虑关闭此 TT。 感谢您的帮助!

    此致、

    Dave