【问题标题】:Is it possible to program an Arduino from another embedded device?是否可以从另一个嵌入式设备对 Arduino 进行编程?
【发布时间】:2015-05-12 18:15:09
【问题描述】:

我目前正在开发一个系统(家庭项目 - 终于有时间了!)我想知道是否可以从 pic32 对 arduino 进行编程?系统目前两者都有,并且鉴于 pic32 proc 连接了 SD 卡,我想如果 SD 卡上部署了新固件,我可以使用该平台潜在地对所有其他系统进行编程。 只是想知道这是否可能?网上似乎没有任何东西,但也许我在谷歌上搜索错误的东西?我想 pic32 会充当 ISP 吗? 提前致谢.. 克里斯

【问题讨论】:

  • 您在网上查找资源的问题可能源于您在寻找 Arduino 材料而不是 Atmel 材料。 AVR 中 ISP 的详细信息已完整记录在 here
  • @Clifford 感谢您的链接,我将进一步调查,您说得对,我可能在产品方面过于具体。同样如下所述,每块板的功能似乎有所不同,因为 Atmel 路线似乎不太可变

标签: arduino embedded upgrade


【解决方案1】:

当然,为什么不呢,它只是 spi。我认为只是为了方便(上面带有 spi 的东西或对位爆炸微不足道的东西),我使用另一个微控制器来编程我的 avr(一个 msp430 或 mbed,它可以通过 USB 轻松编程)。 avrs 文档在协议上非常好。您也可以使用串行引导加载程序,但这会涉及到更多的组合,其中 arduino、uart 的速度、确切的方式以及您必须如何处理 dtr(重置),就像我还在搞砸那个每个 arduino 板类型都不同。除了 xmega 之外的 isp 接口,芯片与芯片之间存在识别号等差异,但更容易想出更通用的东西。 spi 接口的好处是处理器处于重置状态,因此您不依赖于引导加载程序、引导加载程序的版本或带有闪存的芯片由于某种原因导致挂起等。您应该通常获得与之前编程内容无关的相同编程体验。

【讨论】:

  • @Jon 感谢该 ISP 链接,它非常有趣!它支持了 dwelch 先生(我不能使用多个 @reference..:( )就它是 SPI 功能而言(这使得它在主 proc 所需的引脚数量方面也非常易于管理。我假设这将覆盖/清除 arduino 上保存的正常引导加载程序?除非编译器的 bin/hex 输出已经设置为正确的内存空间?
  • 我认为引导加载程序和应用程序有单独的闪存或单独访问的闪存库。不知道你可能是对的,很多不同的供应商数据在我脑海中蹦蹦跳跳,并不是每个人都通过单独的访问来保护引导加载程序闪存......
  • 在 SO 的答案中放置链接是一种不好的形式,所以我没有,cmets 没问题,您将需要特定芯片数据表了解某些细节,以及通用协议文档(如果有)他们。再次,atmel 非常擅长记录事物。有一个项目或一大块信息很难找到,avrdude 将它放在头文件或其他东西中,我最终找到了它,必须重新研究以确定该信息是什么。
  • github.com/dwelch67avr_samples 有一些非常简单的 msp430 和 mbed 代码,毫无疑问我也使用了树莓派,所以可能不确定是在树莓派目录中。 xmega 是一个不同的野兽,仍然绝对可行,但时机很关键,我认为它实际上不是 spi,非 xmega 是简单的,支持大量芯片,如 avrdude 你需要一张信息表,多少钱根据您找到的部分等闪烁。
  • @dwelch 感谢您的帮助和 github 存储库,我一有时间就会深入研究它,非常感谢您的帮助! (和其他人一样..)
猜你喜欢
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多