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.

[参考译文] AM3358:AM3358上的 UART 传输出现/不一致(有时)

Guru**** 2540720 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1284090/am3358-uart-transmission-stumbles-is-inconsistent-on-am3358-sometimes

器件型号:AM3358

您好!

由于 AM3358上所用软件的复杂性、我有一个问题不容易解释。 因此、我正在寻找更多的想法、原因是什么/在哪里可以进一步调查。

以下情况:此 AM3358上运行有一个裸机固件(确切地说、是这样:在此 BeagleBone 上)。该固件利用 SOC 的中断加载接口。 其中一个接口是基址为 0x48022000的 UART1。 该 UART 利用48 MHz 输入时钟、根据过采样模式和传输速率计算相关时钟分频值。 这一切工作正常、使用示波器观察传输的数据时、得到的信号非常完美、并且仅具有低抖动。

现在、有时(可能是在固件中的某些其他东西正在运行时、具体情况尚不清楚)传输的信号或多或少地受到损坏、大多数情况下、停止位似乎因最后一个数据位过长而被过冲。 有时、其他位似乎也过长。 因此、整个数据传输的时序似乎不同步。

由于我 完全不知道、固件的其他哪些部分可能会对此处产生影响、因此我的问题是:什么可能导致此类行为? 在传输位(而不是字节!)的位置、UART 可能会以这种奇怪的方式发生故障 是延迟的吗? 欢迎任何想法和提示、以便我找到一个起点来查看!  

谢谢:-)

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

    您好!

    我已将您的问题分配给我们的专家。 由于 TI 印度的公共假日、您的回复可能会延迟。

    很抱歉耽误你的时间。

    此致、

    苏伦

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

    Michael、您好!

    感谢您访问德州仪器 E2E 支持论坛。

    我相信您可以从 UART 的波特率开始、在我们的 SDK 示例中、该波特率目前默认设置为115200。

    您可以尝试在回调模式和阻塞模式之间切换、除了要考虑的这个重要因素外、还需要考虑在中断或轮询模式下运行的 UART 模块。

    此致、

    瓦伊布哈夫

    基于 ARM 的处理器 | 常见问题解答 AM62x 和 AM62A | 常见问题解答 AM64x

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

    好的、这实际上并不是我的问题的答案?

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

    您好!

    我在 Linux 中支持 UART、但从未有此类停止位损坏的问题报告。 我会将您的问题发送给我们的 UART 硬件专家以征求意见。

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

    Michael、您好!

    从硬件方面、我看到以下注释。 我假设此行为 是间歇性的、并取决于某些特定的 固件条件。  

    现在、有时(可能是在固件中的某些其他东西正在运行时、具体情况尚不清楚)传输的信号或多或少地受到损坏、大多数情况下、停止位似乎因最后一个数据位过长而被过冲。 有时、其他位似乎也过长。 因此、整个数据传输的时序似乎不同步。

    您能介绍一下与处理器的 UART 连接吗?

    是该 UART 直接连接到处理器还是两者之间有收发器。

    是否接通接收器引脚以及 UART 接口是否受到外部保护?

    您是否在特定 UART 上看到此问题?

    此致、

    斯里尼瓦萨

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

    您好 Kallikuppa:

    在硬件侧有一个 ST232CDR 连接到 UART1、用于执行与 RS232信号电平之间的信号转换:

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

    Michael、您好!

    谢谢你。

    您能否在 RX 输入上添加一个电阻器、如下所示并进行测试?

    此致、

    斯里尼瓦萨

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

    Michael、您好!

    您能帮助我了解一下您正在使用的电源和波特率吗?

    https://www.st.com/resource/en/datasheet/st232b.pdf

    5V 供电的多通道 RS 至232驱动器和接收器

    此致、

    斯里尼瓦萨

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

    大家好!

    好的、该电阻器不会产生差异。

    此转换器由5V 电源供电、最高运行速率为115600bps。

    但我认为我们走错了路、我认为这不是硬件问题、原因如下:

    -串行端口的输出在大部分时间都能正常工作

    -在某些 SOFTWAE 条件下,意味着完全相同的硬件连接,问题出现

    并且:当问题发生时、输出不会损坏、但位确实会移位。 Beams 当最后一个传输的位更长(因此它与停止位重叠)时、整个帧更长。 意味着数据本身仍然存在、但 会以某种方式延迟/拉伸。 我认为外部硬件不能做到这一点。

    稍后我将尝试提供一些示波器布线。

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

    好的、正如前面所讨论的、这是输出看起来的样子。 上面的迹线显示了正确的传输、没有错误。 下面的线迹显示传输的数据完全相同、但发生了问题:

    红线显示了单字节的边界。 这是在将上面的迹线与下面的迹线进行比较时发生的情况:

    -第一个字节被正确传输

    -在第二个字节中,在低位中,停止位的长度约为三倍

    -在第三个字节中,最后一个数据位的长度在小写的情况下约为三倍

    这都会导致用下面的浅蓝色线标记错误的字节长度。 在两种情况下、输出端的信号形状都很好、因此我认为外部硬件不存在问题。

    在同一固件中、正在运行多种其他中断。 但假设其中一个中断服务例程花费的时间过长、这不应影响传输中单个位的长度、因为这是在硬件中完成的、对吗?

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

    Michael、您好!

    谢谢你。  

    请注意、处理器 IO 不能承受5V 的电压。

    我不确定这是否是个问题、但处理器似乎在建议的电源电压范围之外运行。

    您能否使用支持3.3V 电压的收发器并执行一些测试?

    转换器使用5V 电源

    此致、

    斯里尼瓦萨

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

    好的、这一切都与 SoC 的输入(也称为 RX)相关。 有一个小缓冲器用于将 SoC 的信号转换为3.3V、因此一切都正常。

    我的问题与 SoC 的输出(也称为 TX)有关。  请参阅我上面的文章、当问题发生时、传输的单个位比应有的长三倍。 所以我很确定这不是接线或信号问题、因为这不能解释为什么位(以及接下来的整个数据字节)需要更长的时间。

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

    Michael、您好!

    感谢您提供宝贵意见。

    如果他有任何想法,我会分配给他。

    快捷问题:

    您是否尝试降低 测试速度、是否有类似 观察结果?

    是在特定一个还是多个板上观察到的。 您是否探测了时钟?

    此致、

    斯里尼瓦萨

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

    尊敬的 Kalikuppa:

    该问题也发生在较低的传输速度和其他板上(同时尝试5个不同的 BBB)。

    我在哪里可以测量时钟?  

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

    Michael、您好!

    谢谢你。

    问题也发生在较低的传输速度和其他主板上(同时尝试了5个不同的 BBB )。

    请详细说明。 能否添加观察到问题和未观察到问题的速度。

    我可以在哪里测量时钟?  [/报价]

    我知道您正在使用蜂骨吗?  

    此致、

    斯里尼瓦萨

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

    在使用范围从9600到115200bps 没有速度问题发生。 其他速度不使用。 请参阅上面我的解释:问题发生在固件的某些(未知)状态/状况。 因此、使用完全相同的 UART 参数时、它一次会发生、一次可以完美地运行。

    是的、它是 Beagle Bone。

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

    Michael、您好!

    谢谢你。

    我知道您尝试了5个数字并查看所有问题。

    我想这可能不是时钟。

    请参阅下面的时钟信息。

    此致、

    斯里尼瓦萨

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

    您好 

    这是 SoC 的通用时钟输入、而不是特定于 UART 的时钟输入? 您希望 检查哪一个、24MHz 时钟和/或32kHz 时钟?

    迈克尔

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

    Michael、您好!

    即24 MHz。

    此致、

    斯里尼瓦萨

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

    它稳定在大约24MHz

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

    Michael、您好!

    谢谢你。

    我将重新分配给软件 专家。

    此致、

    斯里尼瓦萨

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

    Michael、您好!

    硬件似乎没有问题。 您是否在裸机固件中使用了 TI 的任何软件栈? 请注意、TI 已停止支持 AM335x 器件的裸机软件开发。 如果您使用的是 TI 软件堆栈、比如 Starterware、Processor SDK 等、我可以为您推荐一些资源。

    此致、

    建中市

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

    您好、建中:

    感谢您的反馈。 最初它基于 StarterWare、但由于不再受支持、它同时是一个自己的实现。

    我预计硬件不会有什么问题、我认为这是其他东西的某种副作用。 这就是我问的原因、如果在传输期间增加单一位的长度、会产生什么影响。

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

    Michael、您好!

    恐怕我们无法在这方面提供很多软件帮助。 请参阅 此公告 、 希望您可以 从其中找到一些有用的资源。

    此致、

    建中市

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

    好的、那么让我第三次重复这个:我不需要任何特定的软件帮助! 我只需要一些硬件在什么条件下可能表现出这种行为的信息! 我不希望您调试我的应用、不希望您通过一些软件片段提供即用型解决方案、我只是想获取可能会让硬件以这种错误方式运行的信息。

    由于 AM335的参考手册和器件勘误表均未描述类似的内容、所以我不知道在哪里可以询问此问题。

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

    Michael、您好!

    在使用范围从9600到115200 bps 没有速度问题发生。 其他速度不使用。 请参阅上面我的解释:问题发生在固件的某些(未知)状态/状况。 因此、如果使用完全相同的 UART 参数、它一次就会发生、一次就可以完美地工作。

    基于上述内容、您能否详细说明故障百分比。 如果您测试了20次、您会看到问题的次数。

    问题是否取决于传输的长度、或者您是否观察到特定模式或是否存在随迭代而变化的位。

    此致、

    斯里尼瓦萨

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

    Michael、您好!

    能否请您确认前台是否一致、您未看到任何错误。

    请分享您正在使用的 UART 配置。

    此致、

    斯里尼瓦萨

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据上述内容,您能否详细说明故障百分比。 如果您测试了20次,您会看到该问题的次数。

    当问题发生时、每发送一个第二到第三个字节就会看到一个损坏的位

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

    传输速度或停止位长度等参数对问题没有影响、它使用所有可能的值发生。

    除此之外、UART 模块将始终运行且不存在奇偶校验、配置模式 B、除数锁存禁用、不间断运行、UART16X 工作模式、48 MHz 基本时钟等。 您还需要了解其他信息吗?

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

    Michael、您好!

    基于上述内容、您能否详细说明故障百分比。 如果您测试了20次、您会看到问题的次数。

    当问题发生时、每发送一个第二到第三个字节就会看到一个损坏的位

    [/报价]

    请帮助我了解受损数据包传输的频率。

    此致、

    斯里尼瓦萨

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

    请帮助我了解受损数据包传输的频率。

    [/报价]

    好的、您的问题到底是什么? 如上所述:问题发生在每发送第2到第3个字节内。 这意味着什么频率?

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

    Michael、您好!

    发生问题时,每传输一个二到三个字节就会看到损坏的位

    如果尝试10次传输、有多少次传输 存在此问题?  

     接下来的10个变速器是否显示类似模式?

    此致、

    斯里尼瓦萨

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果尝试10次传输,有多少次传输 存在此问题?  [/报价]

    "传输"对您来说是什么? 如果一个传输至少包含3个字节、那么每个传输都会显示问题。 当问题发生时、总是会发生、重新启动/重试传输无法解决任何问题。

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

    Michael、您好!

    谢谢你。

    传输是指发送一个已知大小的数据,一旦知道大小被发送,暂停一段时间. 重复相同步骤。  

    这是您有时提到的初始输入。

    现在、有时(可能是在固件中的某些其他东西正在运行时、具体情况尚不清楚)传输的信号或多或少地受到损坏、大多数情况下、停止位似乎因最后一个数据位过长而被过冲。 有时、其他位似乎也过长。 因此、整个数据传输的时序似乎不同步。

    现在、我了解了每次数据包传输超过3个字节时、都会每次观察到这个错误。

    您能否确认了解情况。

    此致、

    斯里尼瓦萨

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

    是的、我可以确认这是正确的。

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

    Michael、您好!

    谢谢你。

    我没有任何其他客户报告类似问题。

    我必须向团队内部核实。

    您能否确认 Beagle Bone 版本或您正在使用的版本。

    此致、

    斯里尼瓦萨

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

    您能否确认 Beagle Bone 版本或您正在使用的版本。

    [/报价]

    这种情况在 BeagleBone Black 的最新版本以及 BeagleBone Green (也是最新版本)中出现。 我们总共尝试了五种不同的电路板。

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

    Michael、您好!

    谢谢你。

    让我从内部向团队核实一下。

    此致、

    斯里尼瓦萨

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

    有任何关于此问题的新闻吗?

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

    Michael、您好!

    谢谢你。

    我已联系器件专家并内部跟进。

    我还没有从他们那里听到。

    我将根据收到的任何输入向您提供最新信息。

    此致、

    斯里尼瓦萨

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

    我这边有消息:将编译器从 v18LTS 更新到 v20LTS 似乎至少改善了这种情况。 我们无法验证这是否真正彻底解决了问题、或者如果这种情况更不可能发生、我这边有两个问题:

    -编译器版本是否可以负责这一点?

    -编译器中的哪些变化可能会解决这个问题?

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

    Michael、您好!

    感谢您提供宝贵意见。

    关于编译器问题-我建议启动一个新的主题、引用编译器版本并询问您的问题。

    此致、

    斯里尼瓦萨