Режимы программирования Arduino, Bootloader, Arduino As isp
-
21-12-2019 - |
Вопрос
Я в настоящее время работаю над проектом, используя доску Arduino UNO (Rev3). В конце концов, я мог бы позволить ему работать независимо от Arduino, и это заставило меня думать, как работает все программирование и загрузчик.
Вот то, что я знаю / предполагаю до сих пор:
-
Доска имеет две чипы: ATMEGA328 (главный чип) и ATMEGA16U2 (используется в качестве USB-последовательного BIGID).
-
Прошивка ATMEGA16U2 может быть изменена путем активации DFU-режима и с использованием E.G. DFU-программист. Затем Arduino может быть распознан как устройство HDI / MIDI, но больше не программируется.
-
При программировании ATMEGA328 чип сбрасывается и на перезапуске загрузчик загружает и напишет новую программу через последовательное соединение и Atmega16U2-мост. ISP-интерфейс чипа не используется для загрузки новой программы. Кто инициирует сброс в первую очередь?
-
Arduino можно использовать в качестве POSP-программиста для программирования других внешних чипов. Для того, что некоторые прошивки загружаются на Aatmega328 aatmega328 isp-контакты чипа, которые будут запрограммированы, подключены к одному на доске Arduino. Затем Arduino-IDE настроен на использование ATMEGA328 в качестве программиста, а не перепрограммировать его.
Я надеюсь, по крайней мере, большинство из того, что я написал, правильно. Мои вопросы тогда:
Если я положу новый / пустой AVR на мою доску, как загрузчик попадает на этот чип? Как работает команда «Bootloader Bootloader»?
Можно ли загрузить шестигранный файл в ATMEGA328, не загружая загрузчик сначала? Может ли это сделать с помощью прошивки SpeciAF на ATMEGA16U2?
Спасибо!
jhannes
Решение
Программист ISP (либо ARDUINOIP, либо дискретный программист, такой как USBASP), можно использовать для программирования Flash, EEPROM, битов предохранителей и блокировку блокировки AVR, не требуя ранее существующего загрузчика.Он использует PIN-контакты SPI на устройстве для отправки команд устройству для манипулирования содержимым ненутичным хранением.
ATMEGA16U2 имеет только соединения UART к 328;Нет возможности программировать использование UART без загрузчика на 328.