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.

[参考译文] Linux/processor-SDK-AM335X:UART 波特率

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/767765/linux-processor-sdk-am335x-uart-baud-rate

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

各位专家、您好

硬件: BeagleBone Black

软件: 最新的 TI SDK

我正在尝试以3000000波特率操作 UART

我的问题:

我是否需要对软件进行任何更改才能实现这种波特率?

 此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您要使用的波特率不是 AM335X 的标准。 您可以在1.843Mbps 或最高3.6884Mbps 之间进行选择。
    由于没有可用的分频器值(值分别为2和1 @ 48MHz、13x)、因此两者之间不受支持。

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

     嗨、Michail 根据数据表、3000000的波特率是可能的、请参阅 AM335X 的附加文件、位于3970页

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

    我从4344页的表19-25中导出了我的信息、其中波特率不在列表中、我将在表中再次检查此差异。

    忘记提到我正在查看的内容

    www.ti.com/.../spruh73p.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Michail、我给您发送的是一份完整的技术参考手册、我想我从 TI 网站上花了很长时间、但现在它位于此链接中
    elinux.org/.../Spruh73c.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nick、

    应支持3000000波特率。 您是否尝试在应用中设置波特率并遇到任何问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 bin Liu、您可以验证最新 TI SDK 中的串行驱动程序是否支持每秒3000000位的速度、因为设置此速度后、我无法查看任何数据

    此致

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

    您好、Nick、

    您的意思是您看不到任何数据? 您在 UART 总线分析器或接收应用程序上看不到数据?

    您是否以任何较低的波特率看到数据?

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

    是的、我在中看不到任何数据

    内核配置

    设备驱动程序-->

    字符设备-->

    串行驱动程序-->

    “8250/16550 and compatible serial support”(8250/16550和兼容串行支持)我看到此驱动程序已启用,您能否确认此驱动程序是否支持3Mbps

    顺便说一下,我们使用的是 TI SDK 版本: 适用于 AM335x v04.00.00.04的 Processor SDK Linux 下载 我知道这是3个版本,但仍然是

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请描述您的测试设置、哪个 UART 端口? 是否有与 UART 相关的软件更改? 哪个程序以及如何写入和读取? 使用较低的波特率(例如115200)时、测试是否通过?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请使用随附的 C 代码、它适用于所有波特率低于230400的情况、当我将波特率增加到3000000时、它不起作用

    e2e.ti.com/.../5822.main.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您不能正确使用 cfsetispeed()/cfsetospeed()。 请参阅文档'man cfsetospeed'、传递到函数中的速度参数必须是常数之一- B 它仅上升到 B230400。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    即使我使用此链接(github.com/.../linux-serial-test.c)中提到的 Linux-serial-test -y 0x55 -z 0x0 -p /dev/ttyS1 -b 3000000 我仍然看不到3000000的波特率、我认为这是内核串行驱动程序可能的问题 请帮助检查此驱动程序是否支持3000000波特率

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

    Nick、

    您使用什么来检查波特率? 我运行了相同的命令"linux-serial-test -y -x55 -z 0 -p /dev/ttyS1 -b 3000000"、并且在 UART 总线分析器上看到波特率是正确的。 请查看下面的屏幕截图。

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

    我没有听到您的反馈,我认为您能够解决您的问题。 如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)。 谢谢。