150-Arduino ISP и Algorithm Builder USB adapter из Arduino Nano

Автор: | 22.04.2018

В этой статье я покажу, как просто сделать AVR-программатор из Arduino Nano. Способ не новый и не оригинальный – это штатная возможность Arduino IDE.

В свое время первым программатором для AVR, обычно, становился программатор «5-проводков» который подключался к LPT или COM — порту. Он же выступал программатором для единичных устройств, когда нужно было раз прошить МК и больше к этому не возвращаться. Сейчас подобные нужды (первый программатор или программатор для одного устройства) не перестали быть актуальны. Проблема в том, что LPT и COM — порта становятся редкостью (а в ноутбуках их уже давно нет). Сейчас для программатора нужно использовать USB-порт, но есть проблема — сборка программатора под USB для начинающего довольно сложная задача. Выход есть — купить недорогой программатор типа USBasp. В случае если USBasp (или другой) Вам достать не получилось, то есть вариант собрать программатор из Arduino Nano – получится не хуже.

Arduino ISP

Этот программатор (вернее скетч для него) включен в официальную Arduino IDE (пример под названием «Arduino ISP»).

Все очень просто. Нужно Arduino Nano, несколько проводков и несколько резисторов.

*для Arduino ISP цепи DBG (включая и резистор 10 кОм) не нужны – об этом дальше.

Обвязку можно спаять прямо на Ардуине, как это сделал я. Или собрать на макетке для одного раза, а потом использовать Ардуину для чего-то еще.

После того, как схема собрана, нужно записать в МК прошивку программатора. Это можно сделать 2-мя способами – либо из Arduino IDE либо из моего gcManager. В последнем случае не придется делать каких либо правок по настройке проекта, кроме того я подготовил варианты на разные скорости (19200 и 115200 бод).

После того как прошивка записана – Вы становитесь счастливым обладателем 😉 программатора «Atmel AVR ISP». Это имя нужно будет выбирать в программах для программирования. Например, в avrdudess это выглядит так:

 

Algorithm Builder USB adapter

Кроме стандартного Atmel AVR ISP, в эту конструкцию можно записать прошивку нестандартного USB адаптера для Algorithm Builder. В этом случае и понадобится ранее не нужная цепочка DBG (это для однопроводной отладки программы в кристалле).

Не вижу смысла что-то писать об этом адаптере – те, кто пользуются Билдером и так знают что это такое. Прошивку можно записать прямо из  gcManager (там-же есть и исходник – стандартный из установки, но подправленный для ATmega328p).

(Visited 6 265 times, 5 visits today)

150-Arduino ISP и Algorithm Builder USB adapter из Arduino Nano: 22 комментария

  1. Виталий

    Добрый день!
    Будет ли данный программатор для Билдера работать на плате НАНО 3?

  2. GetChiper Автор записи

    Привет!
    Да.
    Я его для билдера и делал. В том числе работает и отладка, если что.

  3. Алексей

    Здравствуйте!
    А вот у меня обратная ситуация. Есть программатор для Билдера. Можно в него что-то залить чтобы пользоваться стандартными средствами типа Ардуино?

  4. GetChiper Автор записи

    Привет!
    Насколько я помню, там стоит тини2313?
    Если так. то ардуина получится из такого программатора так себе…
    Ну а теоретически можно залить какой нибудь кастомный загрузчик ардуиновский и работать из под ардуино IDE (при этом свободной памяти под проекты будет килобайта 2).
    В общем, не стоит оно того.

  5. Алексей

    Не-не-не. Ардуина мне из него не нужна. Мне программатор нужен. Только чтобы он из под среды ардуино работал.

  6. Алексей

    Ну т.е. наоборот, можно в этот программатор для Билдера записать прошивку от Atmel AVR ISP или какого-то другого программатора чтобы его можно было использовать как программатор из среды Ардуино?

  7. GetChiper Автор записи

    В среде Arduino IDE в примерах есть ArduinoISP — это программатор. Если скомпилировать проект под тини2313, переназначив при этом ноги для программирования, то должно получится. Правда тут будет несколько проблемных мест — нужно IDE научить компилировать под тини2313 и нужен другой программатор чтоб залить потом хекс в тини2313

  8. Алексей

    Скетч использует 3790 байт (92%) памяти устройства. Всего доступно 4096 байт.
    Глобальные переменные используют 393 байт (153%) динамической памяти, оставляя -137 байт для локальных переменных. Максимум: 256 байт.

    Это переписывать надо, отлаживать, обрезать. Проще другой программатор собрать на Arduino Nano как у Вас. Есть ещё прошивка USBTinyISP, она точно подойдёт. Но то же самое, заморочек много. Я надеялся как-то малой кровью этот девайс использовать. Сам по себе он не плохой FTDI, гальваническая развязка. Думал у него может какая-то близкая прошивка или схема к чему-то. Но, похоже, проще выбросить и не тратить время.

  9. Alexander

    хм… А где сам скетч? …под AlgoritmBuilder ?

  10. GetChiper Автор записи

    Исходник под AlgoritmBuilder находится в папке проекта (соответственно исходник под AlgoritmBuilder )

  11. Сергей

    Доброго временисуток. Немного работаю в среде AlgoritmBuilder , решил сделать програматор с вашего примера, только среда AlgoritmBuilder не видет нано адаптера. Прошивку заливал с gcManager под ардуиновским загрузчиком. Что может быть не так ?

  12. Сергей

    У Вас отладка хорошо работала ? Все даные с кристала получали ?

  13. Сергей

    Прошил сегодня ардуино мини, тоже самое не работает. Сможете проверить что не так?

  14. GetChiper Автор записи

    Привет!
    В настройках билдера поставили галочку — работать через адаптер?
    Кроме того, нужно оставить галку — держать порт открытым. Это нужно для того что при открытии порта сбрасывается ардуина и загрузчик не дает работать коду программатора. Соответственно, первый старт программатора будет неудачным, дальше все работает как нужно, без сбоев.
    Отладку проверял — все работает отлично.

  15. Сергей

    С открытием порта не пробовал, галку работы через адаптер ставил. Адаптер начинает видить , а кристал нет.

    Может фюзы перепрошить чтоб стартовал не с загрузчика ?
    На attyni работает, только вот плату собырать нехочется. На nanо всё есть.

  16. Сергей

    Да ещё вопрос, Вы в коде что меняли или просто сменили только порта ?

  17. GetChiper Автор записи

    Вся идея в том чтобы сделать программатор без другого программатора — поэтому фьюзы не менялись — они остаются родными ардуиновскими (отсюда и проблема с первым запуском загрузчика).
    Но если делать плату на постоянную работу, то да — можно отключить фьзами запуск загрузчика.

    В программе пришлось сделать немного изменений (не только порта). Исправленный исходник есть в папке проекта.

  18. Сергей

    Тут ситуация с фьюзами. Те которые были ардуиновские не шли, перепрошить на фьюзы которые в Вашем коде билдера, заработало. Пробовал на uno, mini, с фьюзами ардуины, не хочет работать. Не могу понять в чем причина. Разница от ардуиновских и тех которые Вы установил в билдера, на мой взгляд не критична, может только что-то с настройками кварца.

  19. GetChiper Автор записи

    Я себе точно прошивал родным загрузчиком ардуины — все работало.
    Правда вариантов ардуин существует вагон и маленькая тележка — может что не так было во фьюзах…

  20. Сергей

    Доброго времени суток. Уважаемый автор, для проверки своих наблюдений , могу просить вас проверить меня? Я тут сравним фьюзы которые были на ардуино нано и Вашей прошивкой в АБ, и обнаружил что в ардуино запрограмирован CKDIV8, я не буду описывать его назначение, но в нём была вся загвоздка неверной работы программы.

  21. GetChiper Автор записи

    Привет!
    CKDIV8 должен быть деактивирован (то есть не активный), что в ардуиновских родных фьюзах, что в прошивке программатора.

  22. GetChiper Автор записи

    Перепроверил в своем исходнике — он деактивирован.

Добавить комментарий