TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F28027:F2802x SCI 波特率问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603351/tms320f28027-f2802x-sci-baud-rate-issue

器件型号:TMS320F28027
Thread 中讨论的其他器件:controlSUITE

您好、香榭丽舍

我在 F28027 Launchpad 上进行了测试、如果 PC (主机)波特率设置为 SCI 波特率的整数倍、例如主机为115200、F28027 SCI 为9600 (115200/9600 = 12)、则 SCI 帧错误位将很少设置、 也就是说、 在大多数情况下、没有帧错误、也没有任何其他 SCI 错误、同时接收到的错误。

请建议您如何在不设置任何错误位的情况下识别此类错误吗? 谢谢!

此致、

Linda

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

    Linda、

    SCI 模块在 SCICLK 周期采样(每个位时间内8个采样)。 如果它看到4个连续的低电平值、那么它会检测到一个起始位。 除非检测到起始位、否则无法发生帧错误。

    我想我要说的是:由于您的数据比 SCICLK 快得多、因此对哪个值进行采样很可能是随机的...采样值不是来自同一条消息。 如果 SCI 碰巧对4个连续的低电平值进行采样、则它会检测到一个开始位、收集一些垃圾数据、并且可能错过了停止位、从而导致帧错误位被置位。 我预计这将发生在 P (0)^4、其中 P (0)是在任何给定时间发生0的概率。 如果您发送的数据有很多1或 消息之间有很长的时间、那么我希望这种情况不会发生。

    您是否考虑使用自动波特率检测?

    此致、
    Cody

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

    Linda、

    [引用用户="Linda Zhang84708"]

    关于此问题、客户无法接受使用自动波特率检测、您是否愿意建议是否可以使用其他软件错误检测方法?

    [/报价]

    当使用 UART 协议时、由用户来定义波特率设置。 SCI 模块能够检测消息的波特率是否太慢、但 不能检测消息的波特率是否太快。 例如、为了帮助用户检测这些问题、存在多个标志"帧错误"和"中断检测"。  然后由应用程序代码来解决问题、我们提供了自动波特功能来帮助用户确定正确的波特率、但这需要发送器发送已知值。

    我不知道有什么好的软件解决方案、但是我认为可以使用 eCAP 模块观察传入的数据并确定正确的波特率。 但是、这仍然需要发送器发送已知信号、这与自动波特率检测非常相似。

    结论:检测波特率配置过快的发送器的方法不好。 用户应确保不会发生这种情况、或者开发一种定期检查 波特率是否配置错误的解决方案。

    此致、
    Cody

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

    您是否想建议是否有示例代码来使用 eCAP 模块观察传入的数据并确定正确的波特率? 谢谢!

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

    Linda、

    我想首先指出的是、这不是一个仅限于软件的修复。 这将需要一些外部硬件并由客户进行验证。

    但是、我们没有这方面的 controlSUITE 示例、因为它不是标准用例 \device_support\f28m35x\V210\F28M35x_examples_Control\ECAP_CAPTURE_PWM 应向您展示如何设置 eCAP 模块。

    UART 不适用于此类错误检测、如果客户需要此类错误检测、则 SPI 或其他同步协议可能更适合他们。

    希望这对您有所帮助、
    Cody