ISP-программатор на основе Arduino

Описание

Регулярно заказываю платы Arduino и компоненты к ним на известном всем китайском мегабазаре. Что бы там не говорили некоторые, качество плат ничем не отличается от оригинальных (те которые с «made in italy») - ибо все равно и те и другие делаются у «дядюшки Ляо». Но периодически встречается плата без прошитого бутлоадера. То есть она как бы рабочая, а скетч не заливается. Открыть спор с поставщиком и вернуть деньги за плату конечно же можно, но нам ведь нужны не деньги, а сама плата, так? Причем крайне желательно рабочая. Почему бы не пришить бутлоадер самим? В этом случае у нас есть несколько вариантов:

  1. Купить ISP-программатор и прошить бутлоадер с помощью него. Хороший вариант, тем более что такой программатор стоит совсем недорого. А как быть, если программатора просто нет под рукой? Тогда смотрим второй вариант.
  2. Взять имеющуюся под рукой вторую рабочую плату Arduino и прошить лоадер с помощью нее. Вот этот случай мы и рассмотрим.

Необходимые компоненты и навыки

Нам понадобится:

  1. Любая плата Arduino с рабочим загрузчиком. У меня была под рукой Arduino Mega 2560 - на ее примере и будем рассматривать;
  2. Конденсатор на 10мкФ;
  3. Макетная плата Breadbone;
  4. 8 cоединительных проводов male-male (для Arduino Nano - 10);
  5. Установленный на компьютере Arduno IDE;
  6. Умение читать и понимать прочитанное.

Принцип работы

Каждая плата Arduino может загружаться со своего загрузчика, прошитого на микроконтроллере, а может и с внешнего загрузчика. Вот именно это мы и используем для прошивки отсутствующего бутлоадера. Нам достаточно просто подать загрузить на рабочую плату скетч программатора (он есть в примерах Arduino IDE), соединить рабочую плату с прошиваемой и запустить процесс прошивки. Все остальное выполняется автоматчиески.

На платах соединяем контакты 5V, GND, MOSI, MISO и SCK. Также нам понадобится поключить контакт SS на плате-программаторе к контакту RESRT на прошиваемой плате. Какие контакты куда подключать на наиболее известных платах можно увидеть в следующей таблице.

MOSI MISO SCK SS
Mega 51 50 52 53
Nano 11 12 13 10
Uno 11 12 13 10
LeonardoICSP 11ICSP 12ICSP 13ICSP 10

Порядок действий

Условимся, что в качестве программатора будем использовать плату Arduino Mega 2560(Возможно также пользоваться любой другой - для этого надо просто поменять используемые контакты). Итак:

  1. Соберем схему для прошивки:
    1. Для прошивки Arduino Mega
    2. Для прошивки Arduino Nano
    3. Для прошивки Arduino Uno
    4. Для прошивки Arduino Leonardo
  2. Подключим Arduino Mega, которая у нас выступает в рои программатора(на рисунках она справа) к компьютеру, запустим Arduino IDE;
  3. Выберем порт (Инструменты→Порт→COM-порт) и тип платы (Инструменты→Плата→Arduino Mega or Mega 2560);
  4. Откроем скетч с программатором (Файл→Образцы→Arduino ISP) и загрузим ее на плату (Файл→Выгрузить);
  5. Выберем тип прошиваемой платы (Сервис→Плата→Arduino Uno(или тот тип, с которым хотим работать)) и тип программатора (Сервис→Программатор→Arduino as ISP);
  6. Запишем загрузчик командой Сервис→Записать загрузчик. Примерно в течение минуты загрузчик будет записан. Если выдало ошибку, отключите Mega2560 от компьютера, проверьте схему - вероятнее всего где-то закралась ошибка и попробуйте снова.
isp-programmator_na_osnove_arduino.txt · Последние изменения: 2015/08/02 16:32 — ansealk
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика