Я не понимаю концепцию Arduino

8

Некоторое время я боролся за создание Arduino (мне удалось создать макетную версию с помощью кабеля для ISP- программатора). Говорят, что загрузчик Arduino сделан таким образом, что для программирования ATmega8 не требуется никаких внешних схем . Но когда я посмотрел на схемы, там была нормальная схема, необходимая для последовательного соединения. Тогда что на самом деле делает загрузчик?

Rick_2047
источник
1
никакие внешние схемы не являются абсурдным требованием ... чтобы общаться с компьютером через последовательный порт, вам, по крайней мере, нужен трансивер RS232, как, например, MAX232; или, как это делает Arduino, вы можете напрямую связываться с TTL UART через интерфейсный чип USB, такой как FTDI.
Викацу

Ответы:

12

Загрузчик - это небольшая программа во флэш-памяти AVR, которая никогда не перезаписывается и запускается при включении питания. Работа загрузчика состоит в том, чтобы читать данные программы из UART и записывать их во внутреннюю флэш-память. Без загрузчика единственным способом загрузить код является использование ISP.

AVR ATMega8 поставляется без кода во флэш-памяти. Код может быть загружен через контакты ISP (внутрисистемное программирование) с помощью программатора AVR ISP (или даже другого Arduino).

Для Arduino интернет-провайдер используется только один раз (при изготовлении) - для загрузки небольшого загрузчика. При включении питания загрузчик запускается и связывается с последовательным UART (контакты TX + RX). Теперь Arduino можно программировать через последовательные контакты с использованием протокола STK500.

Поскольку последовательные контакты (как правило) подключены к FTDI USB к последовательному чипу, Arduino также можно программировать через USB.

Тоби джеффи
источник
Итак, вы говорите, что если у меня есть чип atmega8 с сожженным в нем загрузчиком, я могу удалить все схемы для провайдера и просто подключить правильные контакты последовательного порта к arduino? Также можете подсказать, как мне соединить серийник с atmega8
Rick_2047
2
Если у вас есть загрузчик, вот очень минимальная схема Arduino. Подключите ваш компьютер (через преобразователь уровня TTL) к контактам TX / RX / GND. profmason.com/wp-content/uploads/2008/09/arduinopins.jpg Для получения дополнительной информации см. этот вопрос: chiphacker.com/questions/2512/ftdi-basic-breakout-5v
Тоби Джаффей
1
Max232 преобразует последовательный уровень RS232 (как это происходит из 9-контактного разъема на ПК) в сигналы уровня TTL (5 В), подходящие для разговора с Arduino / AVR. Схема max232 может быть заменена последовательным чипом FTDI USB to TTL для подключения к ПК.
Тоби Джаффей
2
Небольшое примечание: загрузчик Arduino очень долго слушает новый код на последовательном порту при запуске. Старые загрузчики Arduino ждут несколько секунд, прежде чем начать выполнение кода. Новые загрузчики запускаются очень быстро и должны быть сброшены по линии DTR от FT232. Если вы планируете использовать max232, загрузите старый загрузчик. Также проверьте Sparkfun ( sparkfun.com/commerce/tutorial_info.php?tutorials_id=104 ) для некоторых хороших учебных пособий по AVR.
bpijls
2
Это фактический код объекта AVR. Arduino превосходит некоторые конкурирующие платформы (например, Basic Stamp) в том, что он запускает скомпилированный объектный код, а не интерпретатор.
Тоби Джаффей
3

Вы можете купить чипы ATmega328 с загрузчиком на них здесь .

Леон Хеллер
источник
Я только что заказал 4 сегодня (хотя с сайта ZA) :)
Леппи
1

Они, вероятно, означают, что если вы покупаете предварительно собранный Arduino Uno, вам также не нужно покупать программиста. Как и во многих других электронных стартовых комплектах. Вы можете запрограммировать плату Arduino Uno только с помощью кабеля USB (A> B).

Однако, если вы собираетесь создавать собственный Arduino, вам, конечно, понадобится внешняя схема (например, программист AVR ISP) или что-то вроде Max232 или FTDI.

Superpelican
источник
0

Идея загрузчика Arduino заключается в том, что вам не нужно никакого специального оборудования или схем для их перепрограммирования, по сравнению с его первоначальным программированием или более старым микроконтроллером, которому часто требуется отдельный программист (например, PicKit2 для микроконтроллеров PIC). Загрузчик позволяет программировать через основное последовательное соединение.

Конечно, в то время вам требовался последовательный канал, обычно конвертер RS232 из TTL в RS232. После того, как последовательные порты были постепенно отключены, usb to serial стали повсеместными, что позволило заменить max232 или аналогичный. И теперь использование микроконтроллера Atmel с поддержкой USB делает это даже ненужным, поэтому один микросхема с минимальными пассивными частями может обеспечить функции Arduino и USB to Serial. Теперь вам нужен только USB-кабель и несколько пассивных, чтобы загрузить эскиз. Первоначальное программирование загрузчика все еще требует традиционного программирования ICSP.

проезжий
источник