Некоторое время я боролся за создание Arduino (мне удалось создать макетную версию с помощью кабеля для ISP- программатора). Говорят, что загрузчик Arduino сделан таким образом, что для программирования ATmega8 не требуется никаких внешних схем . Но когда я посмотрел на схемы, там была нормальная схема, необходимая для последовательного соединения. Тогда что на самом деле делает загрузчик?
arduino
bootloader
Rick_2047
источник
источник
Ответы:
Загрузчик - это небольшая программа во флэш-памяти AVR, которая никогда не перезаписывается и запускается при включении питания. Работа загрузчика состоит в том, чтобы читать данные программы из UART и записывать их во внутреннюю флэш-память. Без загрузчика единственным способом загрузить код является использование ISP.
AVR ATMega8 поставляется без кода во флэш-памяти. Код может быть загружен через контакты ISP (внутрисистемное программирование) с помощью программатора AVR ISP (или даже другого Arduino).
Для Arduino интернет-провайдер используется только один раз (при изготовлении) - для загрузки небольшого загрузчика. При включении питания загрузчик запускается и связывается с последовательным UART (контакты TX + RX). Теперь Arduino можно программировать через последовательные контакты с использованием протокола STK500.
Поскольку последовательные контакты (как правило) подключены к FTDI USB к последовательному чипу, Arduino также можно программировать через USB.
источник
Вы можете купить чипы ATmega328 с загрузчиком на них здесь .
источник
Они, вероятно, означают, что если вы покупаете предварительно собранный Arduino Uno, вам также не нужно покупать программиста. Как и во многих других электронных стартовых комплектах. Вы можете запрограммировать плату Arduino Uno только с помощью кабеля USB (A> B).
Однако, если вы собираетесь создавать собственный Arduino, вам, конечно, понадобится внешняя схема (например, программист AVR ISP) или что-то вроде Max232 или FTDI.
источник
Идея загрузчика Arduino заключается в том, что вам не нужно никакого специального оборудования или схем для их перепрограммирования, по сравнению с его первоначальным программированием или более старым микроконтроллером, которому часто требуется отдельный программист (например, PicKit2 для микроконтроллеров PIC). Загрузчик позволяет программировать через основное последовательное соединение.
Конечно, в то время вам требовался последовательный канал, обычно конвертер RS232 из TTL в RS232. После того, как последовательные порты были постепенно отключены, usb to serial стали повсеместными, что позволило заменить max232 или аналогичный. И теперь использование микроконтроллера Atmel с поддержкой USB делает это даже ненужным, поэтому один микросхема с минимальными пассивными частями может обеспечить функции Arduino и USB to Serial. Теперь вам нужен только USB-кабель и несколько пассивных, чтобы загрузить эскиз. Первоначальное программирование загрузчика все еще требует традиционного программирования ICSP.
источник