开源改变世界

带有 Optiboot 的 Arduino Nano #759

推推 grbl 2年前 (2022-10-28) 277次浏览 0个评论
打开
chamnit 打开了这个问题 on 10 Jul 2015 · 10 条评论
打开

带有 Optiboot 的 Arduino Nano#759

chamnit 打开了这个问题 on 10 Jul 2015 · 10 条评论

注释

带有 Optiboot 的 Arduino Nano #759
成员

尚尼特 评论 on 10 Jul 2015

我得到了几个 Arduino Nano,并一直在考虑摆脱它使用的大 2.0KB Duemilanove 引导加载程序,并用更小的 0.5KB Uno Optiboot 替换它。这基本上意味着您可以在 Nano 中比以前多塞入 1.5KB。这一点很重要,因为 Grbl 正好处于 Duemilanove 的 30KB 闪存限制的边缘,而 Uno 有 31.5KB。

我已经设法将 Optiboot 刻录到我的 Nano 上以释放额外的空间。有人知道这样做有什么问题吗?

这就是我的做法,我对可能发生的事情不承担任何责任,即使它似乎完全无害。

  • 将 Nano 和 AVR 编程器连接到我的电脑,而 AVR 编程器连接到 Nano 的 ICSP 头。(您也可以使用另一个 Arduino 作为 AVR 程序员。)
  • 启动 Arduino IDE。
  • 在工具->板子下拉菜单中选择“ARDUINO UNO”作为板子类型。不是 Arduino Nano。
  • 单击工具下拉菜单中的“刻录引导加载程序”。

这会将 Optiboot 刻录到 Nano 上,释放 1.5KB 闪存空间,现在将像 Arduino Uno 一样运行。确保从那时起选择 Arduino Uno 作为电路板类型。

带有 Optiboot 的 Arduino Nano #759

应该注意的是,有问题的大小(即 2KiB 与 512 字节)由熔断器设置决定,而不是由上传的 .hex 图像的物理大小决定 ;-) 这意味着,对于新的较小图像实际上会给您带来任何好处,您必须确保已对​​正确的熔丝进行了编程,以便 AVR 本身知道“特殊”区域现在只有 512 字节。

带有 Optiboot 的 Arduino Nano #759
成员作者

尚尼特 评论 2015 年 7 月 10 日

@csdexter:是的,保险丝设置了 2KB 和 0.5KB 大小是正确的。但是,我很确定“Burn Bootloader”工具在 Optiboot 刷新之前正确设置了这些保险丝。此外,Arduino IDE 在其“boards.txt”文件中为 Uno 和 Duemilanove/Nano 设置了闪存限制。不确定,但这表明 Arduino IDE 将检查并防止您超出此限制,具体取决于您使用的板。

带有 Optiboot 的 Arduino Nano #759
成员作者

尚尼特 评论 on 10 Jul 2015

@csdexter: 我检查了保险丝,只是为了确定。Arduino IDE (1.6.5) 在刷入引导加载程序之前确实烧毁了保险丝。

带有 Optiboot 的 Arduino Nano #759

@chamnit– 效果如何?你有没有发现任何问题?如果没有,我也会这样做。

带有 Optiboot 的 Arduino Nano #759
成员作者

尚尼特 评论 on 14 Jul 2015

@109JB: 到目前为止,一切都很好。我已经将母排针焊接到几个 Nanos 和 3d 打印的外壳中,它大约是一包口香糖那么大。在过去的几天里,它们一直是我的专用开发板,我还没有发现任何明显的问题。尽管其中一个没有很好地闪烁并在串行终端中返回了很多垃圾。不知道那里发生了什么,但再次烧录引导加载程序将其带回来。

带有 Optiboot 的 Arduino Nano #759

/usr/share/arduino/hardware/arduino/bootloaders/optiboot

自述文件 optiboot.c 等看起来很有用

几个可配置的选项:

/* LUDICROUS_SPEED:                                       */
/* 230400 baud :-)                                        */

/* TIMEOUT_MS:                                            */
/* Bootloader timeout period, in milliseconds.            */
/* 500,1000,2000,4000,8000 supported.                     */
带有 Optiboot 的 Arduino Nano #759

“不确定,但这表明 Arduino IDE 会检查并阻止你超过这个限制,具体取决于你使用的板子。”

这是报告使用的闪存百分比所必需的。我不确定 IDE 是否足够智能以防止下载对目标来说太大的图像。

我听说如果图像太大,您可以炸毁引导加载程序。我自己没有做过任何破坏测试;)

带有 Optiboot 的 Arduino Nano #759
成员作者

尚尼特 评论 2015 年 8 月 28 日

这是与 Uno 的 Optiboot 一起运行的 Arduino Nano 的更新。我偶尔会遇到一些闪烁例程无法正常工作的问题。它会超时而不是闪烁。解决方案是在闪烁例程开始后立即硬重置 Nano。需要一些练习才能正确把握时机,但它确实有效。因此,如果有人遇到此问题,这是一种解决方案。

带有 Optiboot 的 Arduino Nano #759

如果您切断链接以防止它在每次重置串行链接时重新启动,这听起来就像您必须在 Uno 上执行的操作。IIRC,avrdude 切换其中一条串行线路以强制重置,如果您切断 UNO 上的链接,则必须在正确的时间进行手动重置。看来你必须在大约半秒内把它弄好。所以,正如你所说,它需要一些练习。

带有 Optiboot 的 Arduino Nano #759

@chamnit你用这个线程节省了我的睡眠时间——在烧掉 optiboot 后,我​​无法将草图上传到我的 nano——不知道我必须选择新板作为 Uno 而不是 nano…非常感谢 :)

带有 Optiboot 的 Arduino Nano #759
 
添加标题文本添加粗体文本,<Ctrl+b>添加斜体文本,<Ctrl+i>
添加引号,<Ctrl+Shift+.>添加代码,<Ctrl+e>添加链接,<Ctrl+k>
添加项目符号列表,<Ctrl+Shift+8>添加编号列表,<Ctrl+Shift+7>添加任务列表,<Ctrl+Shift+l>
直接提及用户或团队引用问题、拉取请求或讨论

添加已保存的回复

喜欢 (0)

您必须 登录 才能发表评论!