从集中位置编程Arduino

时间:2014-07-11 00:04:51

标签: arduino ftdi

我有16个Arduinos,它们处于非常狭窄的空间,当我需要用FTDI电缆重新编程时,很难到达。我想拥有或创建某种集中的地方,我可以连接我的FTDI电缆,进行某种选择(某种类型的开关),然后将我的电缆所在的引脚连接到选定的arduino。

有没有人对如何实现这一点有任何想法?我玩过晶体管,但这需要很多,并没有完全奏效。

有没有我尚未找到的预制解决方案?

非常感谢!

1 个答案:

答案 0 :(得分:0)

这是一个想法! TCP到Serial。

听起来很复杂。

不是。

请参阅AVRDUDE手册中的以下内容

  

对于使用某种更高级别连接到串行端口的程序员   级别协议(相对于bit-bang风格的程序员),端口可以   指定为net:host:port。在这种情况下,而不是试图打开一个   本地设备,主机上的(TCP)端口的TCP网络连接   成立。假设远程端点是终端或   将网络流连接到本地串行端口的控制台服务器   实际程序员所附加的位置。假设端口   要正确配置,例如使用透明的8位数据   对于STK500,在115200波特处没有奇偶校验的连接。

有了这个,你可以把你的Arduino放在你选择的TCP到串口服务器的背后。有几种形式可供选择。思科有一个帮派TS(但这很昂贵,除非使用)。 lantronix(和其他人有单端设备。但是对于Linux,有“Net2Ser”可以提供你所有的ttyS(也就是串口/ COM端口)。

使用后者可以使用覆盆子或TP-Link TL-WR703N(

<小时/>

在最新的IDE 1.5.6r2中,为每个TCP到串行端口添加一个条目到./Arduino/hardware/arduino/avr/programmers.txt文件。用相应的值替换IP和端口时。

TCP2001.name=TCP 2001
TCP2001.communication=serial
TCP2001.protocol=stk500v1
TCP2001.program.protocol=stk500v1
TCP2001.program.tool=avrdude
TCP2001.program.extra_params=-Pnet:192.168.1.100:2001

TCP2002.name=TCP 2002
TCP2002.communication=serial
TCP2002.protocol=stk500v1
TCP2002.program.protocol=stk500v1
TCP2002.program.tool=avrdude
TCP2002.program.extra_params=-Pnet:192.168.1.100:2002

...

另外将“protocol”更改为“upload.protocol”./Arduino/hardware/arduino/avr/platform.txt中的以下行

tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i"

tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{upload.protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i"

有了这个,您可以使用“使用程序员上传”与选定的程序员通过TCP发送,而不是使用上传。


所有人都说,它只适用于Linux。

  

avrdude:ser_open():网络连接目前尚未针对Win32环境实现