Какой программатор выбрать для arduino uno в ide
Перейти к содержимому

Какой программатор выбрать для arduino uno в ide

  • автор:

Запись загрузчика в Arduino или Iskra с помощью другой платы

Рассмотрим запись загрузчика на примере платы Iskra Neo. Для удобства назовём её исполняемой платой. В роли программатора возьмём плату Arduino Uno.

В роли программатора могут выступать не все платы Arduino. Полный список подходящих плат — в конце статьи.

Подготовка платы программатора

Откройте «Диспетчер устройств».

Подключите плату-программатор к компьютеру по USB. В диспетчере устройств раскройте вкладку «Порты (COM и LPT), найдите в ней название вашей платы программатора и запомните её номер.

Запустите среду Arduino IDE

Выберите интересующую нас плату. Для этого перейдите в меню: Инструменты Плата и выберите плату «Arduino Uno»

Укажите в Arduino IDE, на каком COM-порту находится плата-программатор. Для этого зайдите в меню: Инструменты Порт и укажите номер COM-порта.

Аналогично укажите программатор AVRISP mkIIavrisp . Зайдите в меню: Инструменты Программатор и выберите программатор «AVRISP mkII».

Откройте скетч, который сделает из платы Arduino программатор. Для этого в меню: Файл Образцы и выберите пример «ArduinoISP».

Загрузите скетч в программатор.

Теперь наша плата стала полноценным программатором.

Соединение платы программатора с исполняемой платой

Загрузчик прошивается через внутрисхемный разъём ICSP. Его распиновка представлена ниже: Соедините плату программатор с исполнительной платой согласно таблице:

Контакты платы программатора Контакты платы исполнителя
1 пин разъёма ICSP 1 пин разъёма ICSP
2 пин разъёма ICSP 2 пин разъёма ICSP
3 пин разъёма ICSP 3 пин разъёма ICSP
4 пин разъёма ICSP 4 пин разъёма ICSP
10 пин контактной колодки 5 пин разъёма ICSP
6 пин разъёма ICSP 6 пин разъёма ICSP

Запись загрузчика

Подключите плату программатор к компьютеру. При этом плата исполнитель уже должна быть подключена к программатору (см. предыдущий пункт).

Запустите среду Arduino IDE.

Выберите интересующую нас плату исполнитель. Для этого в меню: Инструменты Плата укажите плату «Arduino Leonardo»

Проверьте, что выбранный COM-порт остался прежним. Для этого перейдите в меню Инструменты Порт .

Измените тип программатора на Arduino as ISP . Зайдите в меню Инструменты Программатор и выберите программатор «Arduino as ISP».

Теперь обе платы и среда настроены. Запишите загрузчик. Для этого в меню Инструменты выберите пункт «Записать загрузчик»

Если все шаги были пройдены правильно, на плате-программаторе начнут мигать светодиоды RX и TX . В окне статуса Arduino IDE должна появиться надпись «Запись загрузчика завершена»

У вас всё получилось. Теперь можно смело переходить к продолжению настройки платы или к экспериментам.

Arduino.ru

Как то понадобилось мне позаливать скетч из Arduino IDE в мелкий восьминогий ATTiny85, как правило, для этого используется Arduino с соответствующим скетчем ArduinoISP. Несколько китайских клонов Arduino Nano у меня имелось, поэтому и использовал их. Все бы хорошо, но мне не недоставало одного вывода. Точнее он имеется у тини (вывод RESET), но чтобы задействовать его как цифровой вход, нужно запрограммировать соответствующий фьюз. С помощью ArduinoISP это можно сделать только один раз, и последующие попытки заливки скетчей с помощью этого и других программаторов ISP становятся невозможными, поскольку вывод с функцией RESET становится не доступным. Если дальнейшей модификации скетча (программы) не требуется, то и проблем нет, но в процессе разработки какого то устройства требуется неоднократная перепрошивка мк. Выход из этой ситуации один – использование высоковольтного программатора. Для AVR контроллеров с выводами 8, 14 используется высоковольтное последовательное программирование, а для мк с выводами 20 и больше – высоковольтное параллельное. Я озадачился поиском подобного программатора, но для меня было принципиально важно, чтобы он был на основе Arduino и работал из под Arduino IDE. Рассматривал вариант использования восстановителя фьюзов для тини, но уж очень хлопотная получается перепрошивка. Это нужно сначала восстановить фьюз, затем перепрошить мк, затем фьюз и т.д. В силу своих скромных способностей в программировании, вариант самому написать скетч для высоковольтного программатора на Arduino отпадал. А вот поиск в инете увенчался успехом. Спасибо парню по имени Matthias Neerache, который создал для нас этот уникальный софт для ардуино.

Итак, какие функции умеет выполнять Arduino под управлением этой «подопытной обезьяны» (ScratchMonkey). Из мануала —

ScratchMonkey использует расширенную версию протокола STK500v2. Он реализует следующие методы программирования:

— ISP (In-Sistem Programming) внутрисхемное программирование использует 4х проводный протокол SPI для программирования и поддерживается почти всеми AVR мк. Главный недостаток – при определенных установках фьюзов может быть не пригодным для использования. В ISP режиме ScratchMonkey работает аналогично встроенному в IDE ArduinoISP программатору. Однако, ScratchMonkey немного более универсальный, поддерживает микроконтроллеры с более чем 128КБ флэш-памяти, и может работать с различными настройками фьзов определяющих режим генератора тактовой частоты мк. Имеет дополнительный выход XTAL (сигнал тактовой частоты), что позволяет запрограммировать мк с настройкой фьюзов на внешний генератор. Кроме того, ScratchMonkey может эмулировать SPI (на те же пины) на более низкой частоте чем аппаратный SPI (Limp Mode), что позволяет программировать мк с внутренним генератором тактовой частоты, настроенным на 128 кГц.

— HVSP (High Voltage Serial Programming) высоковольтное последовательное используется для программирования мк 8 и 14 пин и не зависит от состояния фьюзов. Требует внешний источник 12В и транзисторный ключ для подачи высокого напряжения на RESET пин.

— HVPP (High Voltage Parallel Programming) высоковольтное параллельное используется для программирования мк от 20 пин и выше, не зависит от состояния фьюзов. Также требует внешний источник 12В и транзисторный ключ для подачи высокого напряжения на RESET пин.

— TPI (Tiny Programming Interface) Тини программный интерфейс для мк семейства ATtiny4/5/9/10 (SOT23-6 package). ТПИ использует только 3 вывода, и может работать либо в режиме низкого напряжения или в режиме высокого напряжения. RESET пин может использоваться как обычные линии ввода/вывода.

Более чем достаточно функций для моих целей. Для начала тестирования составил простейшую схему (рис.1) на основе диаграммм из мануала ScratchMonkey и изготовил на макетке типа шилда для Arduino Nano (клона), Рис.2,3 (только ISP и HVSP режимы). Транзистор любой n-p-n.

02.jpg

03.jpg

Для начала этот программатор нужно “прописать” в ArduinoIDE . Делаем так: в папке ScratchMonkey/hardware/scratchmonkey , находим и открываем файл programmers.txt , копируем из него строки:

scratchmonkey_stk500v2.name=ScratchMonkey (STK500 Mode)
scratchmonkey_stk500v2.communication=serial
scratchmonkey_stk500v2.protocol=stk500v2

scratchmonkey_stk500v2_hvsp.name=ScratchMonkey HVSP (STK500 Mode)
scratchmonkey_stk500v2_hvsp.communication=serial
scratchmonkey_stk500v2_hvsp.protocol=stk500hvsp

Вставляем эти строки в аналогичный файл IDE: arduino-1.6.12/hardware/arduino/avrp/rogrammers.txt. Добавляем к этим строчкам еще по 3 строки (выделены на рис.4), без них не работает. Открываем ArduinoIDE и видим, что добавились два программатора ScrstchMonkey (Рис.5).

04.jpg

05.jpg

В IDE открываем скетч ScratchMonkey.ino и прежде чем залить в Arduino добавим одну строчку. Дело в том, что при высоковольтном последовательном программировании было выявлено, что пин D11Arduino, подающий напряжение питания на мк при обращении к нему остается в 1, а значит программируемый мк остается под напряжением все время, что «не есть гуд». Я не знаю с какой целью автор это упустил, но при параллелном программировании питание отключается после обращения к мк. Открываем вкладку с файлом SMoHWIF_HVSP.h, находим функцию Stop() и добавляем строку digitalWrite(HVSP_VCC, LOW) Рис.6.

06.png

Компилим и заливаем скетч в Arduino (без шилда). Вставляем Arduino в шилд, подключаем к разъему (ISP или HVSP) через переходник Attiny. Для режима HVSP подключаем 12V. В пункте Инструменты/Программатор выбираем соответствующий программатор (Рис.5). В пункте «Плата» выбираем предварительно установленные тини. Как добавить ATTiny в IDE здесь. Открываем в IDE файл скетча для тини и заливаем в мк кнопкой «Загрузка» или «Загрузить через программатор».

Что бы сделать действительно универсальный программатор AVR микроконтроллеров из Arduino родилась такая схема, Рис.7, реализующая все возможности ScratchMonkey.

08.jpg

Как видим схема гораздо проще, по сравнению с программаторами с аналогичными возможностями. На линии портов установлены ограничительные резисторы 1кОм, с целью предотвращения кз на этих линиях при неблагоприятных условиях. DD2 – dc/dc конвертер на микросхеме ME2149F 5/12V c Aliexpres Рис.8.

09.png

Или самодельный на MC34063, Рис.9. Рис.9

SA1 включает высокое напряжение и переключает низковольтный и высоковольтный режимы. Светодиоды показывают состояние программатора. Разъем XR1 (Debag) для дополнительной отладки программатора, если что-то пойдет не так и сообщений avrdude не достаточно. Подключается к выводам RX и общий конвертера USB/UART, например к такому, Рис.10:

10.jpg

На компе запускается еще один ArduinoIDE и включается монитор предварительно выбранного порта. В мониторе будет выводиться информация ввиде как на рис. 11 слева. Расшифровка этой информации также показана на рисунке. Режим отладки «включается» в файле SmoConfig.h, где в одной из строк
#undef DEBUG_ISP
#undef DEBUG_HVSP
#undef DEBUG_HVPP
#undef DEBUG_TPI
#undef DEBUG_COMM
#undef нужно заменить на #define . Залить скетч заново в Arduino. Следует отметить, что процессы чтения/записи в режиме отладки замедляются раз в 100.

11.jpg

12_pre.png

При параллельном программировании к разъему HVPP контроллеры подключаются согласно таблице 1 и даташиту.

Чтобы работали индикаторы и программатор TPI, как заявляет автор, необходимо пропатчить исходники avrdude, заново собрать и скомпилировать.

Кому интересно как это делается можно посмотреть здесь , но сначала нужно пропатчить ( внести изменения в исходники avrdude). Patch –файл можно найти в папке ScratchMonkey — avrdude.patch.

Пропатченные и скомпилированные файлы avrdude.exe и avrdude.conf вставляются в папки ArduinoIDE вместо штатных файлов. В файл programmers.txt вставляются строки:

scratchmonkey.name=ScratchMonkey ISP/TPI
scratchmonkey.communication=serial
scratchmonkey.protocol=scratchmonkey
scratchmonkey.program.protocol= scratchmonkey
scratchmonkey.program.tool=avrdude
scratchmonkey.program.extra_params=-P

scratchmonkey_hvsp.name=ScratchMonkey HVSP
scratchmonkey_hvsp.communication=serial
scratchmonkey_hvsp.protocol=scratchmonkey_hvsp
scratchmonkey_hvsp.program.protocol= scratchmonkey_hvsp
scratchmonkey_hvsp.program.tool=avrdude
scratchmonkey_hvsp.program.extra_params=-P

scratchmonkey_hvpp.name=ScratchMonkey HVPP
scratchmonkey_hvpp.communication=serial
scratchmonkey_hvpp.protocol=scratchmonkey_pp
scratchmonkey_hvpp.program.protocol= scratchmonkey_hvpp
scratchmonkey_hvpp.program.tool=avrdude
scratchmonkey_hvpp.program.extra_params=-P

Готово. В списке программаторов IDE должны добавиться три программатора:

При программировании должны работать индикация и TPI программирование.

Так как ScratchMonkey использует avrdude, то он будет работать и с оболочками дуды. Например с AVR8-Barn-O-Mat (барномат), необходимо только в установках указать пути расположения файлов avrdude, тогда при следующем запуске «барномата» в списках программаторов увидим ScratchMonkey. Оболочки удобны при заливке HEX-файлов.

Какой программатор выбрать для arduino uno в ide

Текущее время: Пн мар 11, 2024 08:08:05

Часовой пояс: UTC + 3 часа

Запрошенной темы не существует.

Часовой пояс: UTC + 3 часа

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y

Работоспособность сайта проверена в браузерах:
IE8.0, Opera 9.0, Netscape Navigator 7.0, Mozilla Firefox 5.0
Адаптирован для работы при разрешениях экрана от 1280х1024 и выше.
При меньших разрешениях возможно появление горизонтальной прокрутки.
По всем вопросам обращайтесь к Коту: kot@radiokot.ru
©2005-2024

Какой программатор выбрать для arduino uno в ide

Arduino Uno в качестве программатора AVR

Автор: Coolerr
Опубликовано 29.04.2013
Создано при помощи КотоРед.

Всем мяу, статья про то как Arduino использовать в качестве программатора для AVR микроконтроллеров. Началось всё с того, что в спешке на выход своего программатора я подал 12в, прощально мигнув светиком проггер умер. Вот такой был.

Вспомнив, что есть у меня Ардуина решил использовать её, хрень то универсальная. Драйвера и Arduino IDE скачать можно по ссылке https://arduino.cc/en/Main/Software

Подключаем ардуину устанавливаем дрова, в диспетчере устройств смотрим компорт на который повисла ардуина, если далеко, то меняем на поближе. В Arduino IDE выбираем нужный порт и нужную плату. Заливам скетч(в архиве ArduinoISP.pde), прям в скетче написаны пины ардуины 10-reset, 11-MOSI, 12-MISO, 13-SCK

питание контроллера берем прям с платы. Один нюанс, дабы ардуина не сделала автосброс контроллера после прошивки нужно поставить кондер 10мкф25в на пины ардуины reset и GND. Вот так

В том же архиве есть прога для прошивки avrdude, но так как она консольная и фьюзы через консоль прошивать та ещё задача, там же лежит ГУИшная морда AVR Burn-O-Mat, касаемо её работы сначала нужно запустить файл install_giveio.bat, а потом start.bat появится вот такое окно, про него рассказывать не буду т.к все и так понятно.

Заходим в настройки, здесь прописываем пути к файлам avrdude.exe и avrdude.conf выбираем программатор avrisp и порт который мы выбирали в Arduino IDE, в самом низу дописываем доп команду -b 19200 это скорость порта, без этой строки нифига не получится, жмём применить и ок.

Дальше по накатанной, шьём hex открываем окно Fuses

здесь тоже ничего нового, fuse как CodeVision снятая галка=1, есть режим пользователя и эксперта, различие в красных строчках в пользователе залочен SPIEN и RSTDISBL.
Собственно на этом всё, спасибо за внимание!

А да, фотка девайса с которого всё началось

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *