【发布时间】:2014-06-18 08:07:28
【问题描述】:
我正在尝试设计一个 PCB,其中包含一个带 UART 接口的 CO2 传感器、一个使用 UART 的 Xbee 模块和一个 AtMega328 芯片。因为我在 AtMega328 上只有一个 UART,所以我将 SoftwareSerial 用于 CO2 模块。 Xbee 模块直接连接到 Atmega328 上的数字引脚 0 和 1(TX、RX)。这意味着如果我想对 Atmega328 进行编程,我必须断开 Xbee,反之亦然。 (编辑:我希望通过硬件串行保持 Xbee 连接。将 Xbee 连接到 SoftwareSerial 会阻止我对其进行配置和更改固件)。
在我之前尝试解决此问题时,我使用了 6 针接头和跳线 (3x2)。为了将 Xbee 连接到 Serial,我创建了一条将外部引脚连接在一起的电缆,让我可以刷新 Xbee 的固件。
我希望它由 Arduino 控制。就我对电子产品的有限了解而言,我将使用多个“双刀双掷”开关。如果我会使用(例如)NX3L2467,这会给我以下选项:
(F = FT232 UART 转 USB,D = ArDuino,X = Xbee 模块)。在我的示例中,我使用 5Y* 和 6Y* 来寻址第二个开关上的 1Y* 和 2Y* 引脚。
这反过来会产生以下真值表:
这种结构可以让我做我想做的事,将 Xbee 连接到 Duino,将 Duino 连接到 FTDI,将 FTDI 连接到 Xbee。使用其中两个开关是否是管理此问题的最有效方法,而无需转移到另一个微控制器?是否有一种 IC 能够在这些设备之间进行切换,而无需在每个连接之间设置两个“开关”?
【问题讨论】:
-
您可以使用 µC 的另一个接口并将其转换为 uart,例如 SPI2UART,而不是多路复用 uart 线路。这可能不符合成本效益,但如果您使用 arduino 和 xbee shield,我想成本不是您的主要限制因素。
-
我有一个定制的 PCB,上面有 SMD Arduino 和 Xbee 插座。在这个项目中,成本无疑是一个制约因素。我去看看 SPI2UART 项目,谢谢!我想我的问题不够清楚,我想我正在寻找硬件解决方案,但我不确定这个 stackoverflow 问题中提出的设置是否最有效。
标签: arduino switch-statement uart