无线升级?


Answers:


6

我找到的最好,最简单的解决方案是使用Adafruit的Bluefruit EZ-Link。他们有一个模块,您可以将其插入“串行/电源/重置”引脚(此处链接)或uno的屏蔽层(此处链接)。他们也提供了很好的说明和操作指导(此处链接),非常好。基本上,它在arduino IDE中显示为串行蓝牙链接,您可以像平常一样对其进行编程。它的另一个好处是不仅可以用于编程,还可以用于发送和接收数据。


4

通过在普通固件中添加“启动”命令,我们已在Arduino Pro Mini(ATMega328P)上实现了远程更新。它是如何工作的:

  • 主机将命令“启动”发送到远程Arduino。
  • Arduino跳至引导加载程序(Pro Mini的程序地址为0x3C00)
  • 主机使用avrdude(AVR109协议)通过链接发送新固件

这不需要新的引导加载程序或硬件。但是,对于商用设备而言,这不是一个好的解决方案,因为如果上载的固件已损坏,则在不进行硬重置的情况下,该板将无法进入引导加载程序模式。

某些无线通信设备(例如XBees)具有可远程切换的GPIO。将其连接到Arduino重置引脚将允许将板重置为引导加载程序。


3

Arduino的云可以远程重新刷新(通过WiFi或网线两种):你必须下选择自己的IP地址“工具>板” Arduino的IDE的菜单,然后按下上传按钮如常。


2

可以编写在RAM中运行的引导加载程序(甚至在Flash中,也许在特殊的引导块中运行-取决于微控制器)。
该引导程序必须能够建立无线通信,了解协议并擦除/写入闪存。
基本上有两种软件升级方法:

  1. 引导加载程序会在启动时查找“软件升级”命令。如果收到,它将等待编程序列。如果未收到,它将启动应用程序。
  2. 该应用程序能够接收这样的命令,然后将控制权交给引导加载程序。

您选择哪种协议几乎无关紧要。只要确保有足够的资源将其保存在RAM / Flash中即可。例如,在Arduino Due上,有足够多的资源可用于任何此类实现。


啊! 您是否会偶然知道一些在某处实现了这种功能的免费代码?
约翰内斯·恩斯特


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.