Разница в загрузчике Arduino Nano ATmega328P

Есть два загрузчика ATmega328P, старый и текущий. В чем разница между этими загрузчиками?

Известно, что Nano, продаваемые Arduino, используют новые загрузчики, но я не смог найти никаких примечаний к выпуску о загрузчике.

, 👍13

Обсуждение

насколько я вижу, «старый» загрузчик — «???/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex», а новый — «???/bootloaders/optiboot/optiboot_atmega328.hex» — «???» зависит в вашей системе, но его легко найти в Интернете, см. https://github.com/Optiboot/optiboot, @Jaromanda X

Я загружаю все свои платы на базе чипов 328P как Arduino Uno 16 МГц, поэтому мне не нужно беспокоиться о выборе правильного типа платы., @CrossRoads


1 ответ


Лучший ответ:

18

Загрузчик, который в настоящее время поставляется с официальными платами Arduino Nano и выбирается через Инструменты > Процессор > ATmega328P среды разработки Arduino после выбора Инструменты > Плата > Arduino Nano, имеет ту же версию. optiboot, используемый Arduino/Genuino Uno: https://github.com/arduino/ArduinoCore-avr/blob/master/boards. txt#L152

nano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

https://github.com/arduino/ArduinoCore-avr/blob/master /boards.txt#L72

uno.bootloader.file=optiboot/optiboot_atmega328.hex

Загрузчик, выбранный через Инструменты > Процессор > ATmega328P (старый загрузчик), — это "ATmegaBOOT" загрузчик.

В соответствии с определением оборудования Nano между двумя загрузчиками есть два существенных различия:

  1. Optiboot не переходит в бесконечный цикл сброса после сброса сторожевого таймера. ATmegaBOOT будет.
  2. Optiboot ожидает загрузку на скорости 115 200 бод. ATmegaBOOT, 57600. По этой причине старые платы не работают с выбором Инструменты > Процессор > ATmega328P и наоборот.

Существует еще одно очень существенное различие между двумя загрузчиками, от которого, к сожалению, вы не получите выгоды с новым определением платы/оборудования Arduino Nano: Optiboot помещается в загрузочный раздел размером 0,5 КБ, тогда как ATmegaBOOT требует загрузочного раздела 2 КБ. . К сожалению Arduino забыл поменять предохранитель BOOTSZ соответственно и так появилась возможность высвободить 1,5 КБ драгоценного флэш-память для пользователей Nano была потеряна. Готовность Arduino сознательно выпускать неисправное оборудование имеет исторический прецедент.

Мне не удалось найти примечания к выпуску загрузчика.

Примечания к выпуску Arduino еще не адаптированы к тому факту, что аппаратные пакеты могут выпускаться независимо от выпусков IDE, начиная с Arduino IDE 1.6.2. В примечаниях к выпуску IDE для следующего выпуска IDE есть примечание об изменении загрузчика:

https://github.com/arduino/Arduino/commit/ec179e5af67b7f1eeb5e46d22034798f8b24b7cb

Кроме этого, вы можете просмотреть историю коммитов:

https://github.com/arduino/ArduinoCore-avr/commit/1b14cc07331268e95eddcce2cc67e29ed667e

,

Можно ли прошивать nano с помощью загрузчика или существуют аппаратные различия, от которых зависит загрузчик?, @Claus

Аппаратных различий нет. Если вы прошиваете загрузчик, я советую сделать это, выбрав **Инструменты > Плата > Arduino/Genuino Uno**, потому что тогда вы получите все преимущества optiboot, включая дополнительную флэш-память на 1,5 КБ. Просто помните, что после этого вам понадобится плата Uno, когда вы будете использовать Nano., @per1234

*Выбрана плата Uno, @per1234

Возможно, стоит отметить: я только что получил «клон» AliExpress Nano, который (необычно для клона) имеет FT232R (вместо CH34x), что означает, что он прекрасно работает на моем Mac. Однако я обнаружил, что мне нужно выбрать *старый* загрузчик, чтобы иметь возможность загружать скетчи, что *кажется* противоречащим вашему сообщению (утверждая, что новый загрузчик используется для Nano). Однако, поскольку мой Nano является клоном, я думаю, что все пойдет., @Greenonline