无需计算机即可将Arduino作为ISP


12

有没有人看到或知道一种将固件作为数据预加载(使用计算机或任何其他方式)到设置为作为isp的arduino上,然后使用该arduino将isp接口插入另一个并上传固件的方法。

明确地说-我正在寻找一种方法,使arduino草图的上传成为可能,而无需直接连接到功能完善的计算机。

理想情况下,涉及的步骤是:

  1. 编写新的草图/固件
  2. 编译固件
  3. 将复制固件作为数据写入Arduino A(将Arduino A设置为可作为ISP使用)
  4. 从计算机上卸下Arduino A
  5. 在单独的位置使用ISP标头将Arduino A连接到Arduino B
  6. 使用某种方法(可能是按钮)触发Arduino A将预加载的固件上传到ArduinoB。

我假设从理论上讲它可以工作,因为上传固件只是跨SPI接口的字节交换,但我不确定现实。

我正在考虑的方案是,如果我将arduino(永久地)安装在远离计算机(我没有笔记本电脑,也不想买一台笔记本电脑)的地方,那么重新编程将很麻烦它。

我考虑过的另一种方法是使用DIL封装的ATMEGA,然后可以从板上卸下该板,并在计算机上进行编程,然后返回板上。但是,我宁愿不要冒险弯曲引脚和不必卸下引脚的麻烦。芯片每次我想重新编程。


结果是您将只能使用已加载到程序员(Arduino A)中的精确草图/固件对其他Arduino进行编程。因此,仅在生产线中进行复制才有用,是吗?如果需要更改草图上的任何内容,则需要回到计算机进行修改并再次加载。我说对了吗?
里卡多

1
是否可以将“闪存映像”复制到另一支支架(例如SD卡)上的目标上?
jfpoilpret 2014年

是的 我想这对一条生产线也是有好处的。我的情况是,我将arduino粘在难以移动的外壳中,并且与我的计算机不在同一房间(也很难移动)。因此,每次我想更改它时,我都会很高兴将其加载到Arduino A上。
m3z 2014年

2
这样做是出于对引导加载程序进行编程的有限目的-github.com/WestfW/OptiLoader-但应适用于小于可用闪存减去工具尺寸的任何有效负载。对于更大的有效负载固件,应该可以使用外部存储设备(或仅是Arduino Mega?)。
克里斯·斯特拉顿

@ChrisStratton对我来说很合适。谢谢
m3z 2014年

Answers:


5

我认为µProg –具有SD的微型,快速,便携式AVR编程器可以满足您的需求。您可以将多个文件存储在SD卡中(十六进制,eep等),然后从设备菜单中选择无需PC即可写入目标MCU的文件。
最好的部分是它是免费提供的(PCB,原理图,固件等)。

一种便携式AVR编程器!在需要更新设备固件的任何地方提供帮助,目标设备位于难以到达的位置,并且您不能(或不想)随身携带一堆电线。简单易用,制造价格便宜,超小,超快,使用SD卡…

特征:

  • 超小–尺寸44 x 39 x 5.5毫米
  • 超快–写入速度高达12,5kB / s,读取速度高达14,5kB / s
  • 使用廉价的存储介质–小型MICRO SD卡
  • 支持FAT16和FAT32文件系统
  • 可以读取,写入,验证闪存和eeprom存储器
  • 可以读取,写入,验证保险丝位和锁位
  • 写入和读取BIN,HEX和TXT文件
  • 可以设置熔丝位的默认值,擦除存储器
  • 便宜,易于获得,LPH7779图形显示
  • 每次操作后显示有趣的动画
  • 标准编程头– Atmel 6针ISP
  • 具有自动更新其固件(从SD)的功能
  • 使用非常简单,四键导航
  • 用户设置菜单
  • 编程速度自动选择(高达4MHz)
  • 以3V工作,将3V供电的芯片编程

支持的芯片列表

在此处输入图片说明


看起来不错。将在周末进行调查。
m3z 2014年

我不知道前几天我怎么错过这个问题。我只是和一个朋友谈论自己创建这个确切的项目。然后我看到你的答案。
Madivad 2014年

4

对于您想要的东西,我没有直接的解决方案,但是可以的。您可以破解引导加载程序固件,以便它读取固件闪存代码并通过ISP上传。

如果两个arduino的MCU总共只有32k的总闪存容量,虽然您显然无法在目标AVR上上传32k固件,但您需要使Flasher的闪存容量大于目标闪存(1284p或2560兆像素就足够了,或者328 / 32u4足以使168或attin闪现)。唯一的例外是要使固件的刷新方式小于总内存(例如闪烁的草图)。

最后,这并非易事,因为它是100%纯的AVR代码,但是您可以做到。看一下:

我实现的方法是使所有内容都适合闪存设备的引导程序,因此它读取固件(从0x00到引导程序起始地址的所有内容),并通过将AVRISP与Optiboot合并通过ISP进行刷新。

无论如何,对于一个关于引导加载程序和AVR的研讨会来说,这是一个有趣的项目,我可能会建议在我当地的hackerspace上!;-)

高温超导


谢谢,AVRISP源代码看起来并不像我预期的那么复杂。周末我将对此进行深入了解
m3z 2014年

您当地的黑客空间在哪里?:)
Madivad 2014年

它在法国Le Loop
zmo 2014年

没问题,那就是投票赞成的;-)
zmo
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.