【问题标题】:Bootloader Arduino Uno Rev3引导加载程序 Arduino Uno Rev3
【发布时间】:2015-07-25 17:19:15
【问题描述】:

我想将 arduino uno Rev3 引导加载程序加载到我的 328P 芯片。我正在使用 USB ASP 和 Extreme Burner。

我查看了 arduino 安装文件夹,在“C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega”下有几个可用的 Hex 文件。顾名思义,我想我需要使用 ATmegaBOOT_168_atmega328.hex 文件。另外我知道我需要选择的保险丝位是 efuse-0x05 hfuse-0xD6 和 lfuse - 0xFF

谁能证实这一点?还有其他最新的 Hex 文件吗?

【问题讨论】:

    标签: arduino


    【解决方案1】:

    你想要的文件:optiboot_atmega328.hex

    它位于引导加载程序下的optiboot 文件夹中。

    正常的保险丝是:

    low: FF
    high: DE
    extended: 05
    

    Optiboot 是 512 字节的引导加载程序,通常安装在 Uno 芯片上。


    从数据表中可以看出,DE 的高保险丝使引导加载程序大小为 256(即 512 字节)。

    以及boards.txt 文件中用于 Uno 的相关条目(烧录引导加载程序时的标准熔断器):

    uno.name=Arduino Uno
    uno.upload.protocol=arduino
    uno.upload.maximum_size=32256
    uno.upload.speed=115200
    uno.bootloader.low_fuses=0xff
    uno.bootloader.high_fuses=0xde
    uno.bootloader.extended_fuses=0x05
    uno.bootloader.path=optiboot
    uno.bootloader.file=optiboot_atmega328.hex
    uno.bootloader.unlock_bits=0x3F
    uno.bootloader.lock_bits=0x0F
    uno.build.mcu=atmega328p
    uno.build.f_cpu=16000000L
    uno.build.core=arduino
    uno.build.variant=standard
    

    这证实了我建议的保险丝设置。

    【讨论】:

    • 根据数据表,BOOTSZ1、BOOTSZ1 设置启动大小为 128,如果两者都很高。这意味着它不是 512 字节!所以不是高字节应该是0xDA吗?事实上,在 makefile 中,我看到条目为 atmega328_isp: HFUSE = DA
    • 查看修改后的答案。实际上是 256 个字(不是 128 个),256 个字等于 512 个字节。 0xDA 的高保险丝将为您提供 1024 字(2048 字节)引导加载程序,这不是 Optiboot。
    • 谢谢。我查看了 168,因此保险丝位是错误的。但现在我有另一个问题。我的 328P 芯片用 8 MHz 晶振检测到,但用 16 MHz 晶振检测不到。看起来两者的保险丝设置都没有变化。我需要调试并查看问题出在哪里。我正在使用极端燃烧器
    • 板上的水晶是什么?你换过保险丝了吗?使用我推荐的保险丝和 16 MHz 晶体,它应该以 16 MHz 运行。
    • 单独发布在下面的链接stackoverflow.com/questions/31716875/…
    猜你喜欢
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多