【问题标题】:Additional UART on Raspberry Pi2Raspberry Pi2 上的附加 UART
【发布时间】:2015-11-18 14:53:42
【问题描述】:

树莓派 2 板上有一个 UART(UART0:GPIO 14 和 15)用于串行通信。

我想知道,在只能使用 GPIO 而不是 USB 端口的情况下,是否可以自定义/编程其他 GPIO 以用作额外的 UART。

如果是,怎么做?

谢谢

【问题讨论】:

  • 你很困惑:你不将 GPIO 用作 UART(除非你是 bit-banging)。 UART 是实际的外围设备,它占用芯片上的硅。它是一个与 SoC 上的 GPIO 不同的功能块。它通过一些总线连接到 CPU,也通过与 GPIO 复用的引脚连接到电路板。连接更多外围设备(如 UART 芯片)的典型方法是通过 SoC 的外部总线(如果有的话)。请注意,USB 也是一种总线。
  • 板上有 USB 端口,但由于我们的应用需求,我们点使用它们。参考 Raspberry Pi2 引脚排列,我找不到任何表明任何引脚用作 SoC 外部总线的信息。是否可以使用外部 UART 适配器芯片并将其输出连接到一些 GPIO(除了连接到板上 UART 组件的那些)并从中获取串行数据?
  • SoC 外部总线被路由到外部存储器(例如 DRAM、闪存、外部外围芯片),通常在板头上不可用。我不明白“外部UART适配器芯片”(形容词太多)。你对术语比较草率。 UART 的 “输出” (?) 可能是其外部接口,将其 RxD 和 TxD 连接到 GPIO 没有任何意义。 UART 内部接口应连接到总线,而不是 GPIO。查看 UART 芯片数据表;您至少需要 11 个引脚/线。
  • 也许从 SPII2C 到简单 UART 芯片的适当接口将是一个很好的解决方案。 Bit bang 协议并不快,但对于某些应用程序来说可能就足够了。驱动程序将是另一个问题。

标签: uart raspberry-pi2 gpio serial-communication


【解决方案1】:

没问题!对于拥有多个虚拟/软件 UART,有许多位碰撞解决方案。只是为他们谷歌,但使用PIGPIO 库可能更好。 Herehere 是另外两个例子。

这是一个 Python 脚本示例(使用 PIGPIO 库)。

#!/usr/bin/python

import sys
import time
import difflib
import pigpio

RX=18

try:
        pi = pigpio.pi()
        pi.set_mode(RX, pigpio.INPUT)
        pi.bb_serial_read_open(RX, 9600, 8)

        print "DATA - SOFTWARE SERIAL:"
        while 1:
                (count, data) = pi.bb_serial_read(RX)
                if count:
                        print data
                time.sleep(1)

except:
        pi.bb_serial_read_close(RX)
        pi.stop()

【讨论】:

    【解决方案2】:

    在 Raspberry Pi 上的 IMO 位敲击是黑暗且充满恐惧的。您可以使用 USB 串行设备,但如果您使用的是 Windows IoT Core,它们绝对必须基于 FTDI。 (基于Linux,相信你没有这个限制)

    Raspberry Pi 上的单个 UART 确实缺乏。我的解决方案是使用 Arduino Nano 来控制我的传感器——每个 Nano 一个传感器。 Raspberry Pi 通过 USB 迷你电缆通过 USB 串行通信与每个 Nano 通信。

    您可以使用的其他东西是 CP2102 USB 转 TTL/串行模块。将它连接到您的外部设备,然后将 CP2102 连接到 Pi 上的 USB 端口。我还没有尝试过,但预计会在下周左右。

    这是我找到的几个 FTDI USB 串行设备。

    USB to 6 Wire Header

    USB to DB9

    【讨论】:

      猜你喜欢
      • 2015-08-08
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      相关资源
      最近更新 更多