首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino编程模式,bootloader,Arduino作为ISP

Arduino编程模式,bootloader,Arduino作为ISP
EN

Stack Overflow用户
提问于 2014-04-12 19:01:02
回答 1查看 1.6K关注 0票数 0

我目前正在使用Arduino Uno (rev3)板进行一个项目。最终,我可能会让它从Arduino独立运行,这让我思考了整个编程和引导加载程序是如何工作的。

以下是我到目前为止所知道/假设的情况:

  1. 该板有两种芯片: ATmega328 (主芯片)和ATmega16u2 (用作USB到串行显像管).
  2. ATmega16u2的固件可以通过激活DFU模式和使用例如DFU-程序员来改变.Arduino可以被识别为HDI / Midi设备,但不再是可编程的。
  3. 当对ATmega328进行编程时,芯片正在重置,重新启动时,引导加载程序将通过其串行连接和ATmega16u2桥加载和写入新程序。芯片的ISP接口不用于上传新程序.首先是谁发起了重置?
  4. Arduino可以作为一个ISP程序员来编程其他外部芯片.为此,将一些固件加载到AATmega328上,要编程的芯片的ISP引脚连接到Arduino板上的芯片上。然后,Arduino-IDE被配置为使用Atmega328作为程序员,而不是重新编写它。

我希望,至少我所写的大部分是正确的。我的问题是:

如果我把一个新的/空白的AVR放在我的板上,引导加载器是如何进入该芯片的?“刻录引导程序”命令是如何工作的?

是否可以在不首先上传引导加载程序的情况下将十六进制文件上载到ATmega328?这能通过在ATmega16u2上使用专门的固件来完成吗?

谢谢!

约翰斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-12 19:06:09

ISP程序员( ArduinoISP或离散程序员(如USBasp) )可以用于对AVR的flash、EEPROM、fuse位和锁位进行编程,而不需要预先存在的引导加载程序。它使用设备上的SPI引脚向设备发送命令,以操作非易失性存储内容。

ATmega16U2只具有到'328的UART连接;在‘328上没有引导加载器就无法使用UART进行编程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23034811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档