我有16个Arduinos,它们处于非常狭窄的空间,当我需要用FTDI电缆重新编程时,很难到达。我想拥有或创建某种集中的地方,我可以连接我的FTDI电缆,进行某种选择(某种类型的开关),然后将我的电缆所在的引脚连接到选定的arduino。
有没有人对如何实现这一点有任何想法?我玩过晶体管,但这需要很多,并没有完全奏效。
有没有我尚未找到的预制解决方案?
非常感谢!
答案 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环境实现