【问题标题】:Does Ardunino serial need a common groundArduino串口是否需要一个共同点
【发布时间】:2014-11-25 23:27:14
【问题描述】:

我有一台使用不同电源的设备,我正试图与之串行通信,它有 TX 和 RX 线、GND 和 2.7+ 线,它非常笨拙,所以它有自己的 PS。

目前我得到了一些奇怪的结果,所以想知道我是否需要在 Arduino GND 和 PS GND 以及设备 GND 之间使用一个公共 GND。

串行是否需要公共电压参考点?

它是大型 2560 R3

【问题讨论】:

    标签: arduino


    【解决方案1】:

    所有信号都需要参考电压。接地是为单端信号(例如 UART 使用的信号)提供此参考的原因。

    【讨论】:

    • 啊这样如果没有GND会导致乱码?
    【解决方案2】:

    UART信号由低电平和高电平信号组成。

    另一端的接收器为了能够理解您的 UART 信号,必须知道低电平和高电平信号是什么。

    所以你必须将你的UART GND接到接收器的GND,并且高电平电压必须对应你的接收器的TTL输入电平。

    例如,如果您的 UART 的高电平是 2.7v,而您的接收器输入电平是 5v,那么您有时可能会遇到错误的电平检测,因为 2.7v 可能会被检测为低电平输入。

    对于低电平输入,这没问题,因为 0v 总是 0v。

    【讨论】:

    • 是的,幸运的是 Arduino TTL 变化很大,可能是 2.8 到 5 伏……它需要敲打并且仍然有效
    【解决方案3】:

    抱歉,但是...您没有损坏您的 2.7V 设备吗?除了像 Ignacio 指出的那样使用公共接地之外,当您必须将某物与其他物连接时,您应该始终检查预期的正确电压电平是多少。

    那么您是否检查了高压和低压电平是否满足?我想不是。因为:

    1. Arduino Uno(我手头只有 328P 数据表,所以我会用这个)有一个 5V 供电的 Atmega328P。数据表中说 Vih 参数(感应为“高”值的最小电压)为 0.6Vcc,即 3V。所以如果你给他发一个 2.7V 的信号……你就做错了。
    2. 2.7V 器件的任何引脚上允许的绝对最大电压可能为 Vcc+0.3V。这意味着每个引脚的最大电压为3V;如果你超过这个电流开始流过保护二极管并且......你会烧毁你的设备。现在你给它 5V,所以.... 噗...

    如果不满足上述标准,您必须在两个电路之间放置一些东西。这是

    • 一个电阻分压器,如果您必须降低电压(只需两个电阻)和几个晶体管以使其更高
    • 光隔离器(您可以将地线分开)
    • 电压转换器(如 TXS0102)
    • 其他...

    【讨论】:

    • 是的,我正在关注设备内部测试板的教程,外部是 3 伏电池,但测试板没有电池且在稳压器之后,并指定 2.7v
    • 所以...确保您在芯片的规格范围内...否则您可能会损坏它...
    • 幸运的是它没有损坏它,我的连接很愉快。
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多