在不同的ICSP连接之间切换

时间:2016-02-28 23:24:00

标签: arduino arduino-uno atmega atmel electronics

我有一个要求,我需要在连接到Arduino 328P和16U2芯片的ICSP接头之间切换。我知道当它们连接在一起时我无法与它们通信,那么我将如何在两者之间切换?最好通过软件,也许带有继电器。

我知道我只需要一次切换4根线,因为两者的+ 5V和GND相同。只是我不知道从哪里开始寻找在两者之间切换的硬件解决方案。它需要是一个紧凑的解决方案,所以我成像4个单独的继电器会占用很大的空间,我不知道继电器如何处理通过它的数字信号,我没经验。

有人可以说明我应该如何处理这个问题吗?

非常感谢: - )

1 个答案:

答案 0 :(得分:0)

好吧,ICSP在SPI上,所以如果你不介意将它们连接在一起(毕竟16U2永远不会使用它的SPI),你可以将5V,GND,MISO,MOSI,CLK连接在一起。您不应该连接的唯一引脚是复位引脚(您可以使用继电器或简单的集成开关)。但是,如果你将两个MISO引脚连接在一起,我不知道Atmel处理器的表现如何,所以也许你应该避免。

更好的解决方案是尝试将它们与某些开关分开。最简单的是模拟双向开关IMHO(模拟开关不关心信号方向,所以它们对输入和输出引脚都很好)。如果你采用具有四个通道的(2:1)多路复用器,例如Analog ADG774,则更容易,但任何多路复用器都可以。

如果您计划使用3.3V微控制器或3.3V编程器,我建议您使用一些电压转换器而不是多路复用器。通常电压转换器也有一个使能引脚,所以你只需要适当地驱动它们。