Немного о применении
- Загрузка скетча с 0-го адреса без загрузчика. Экономит память микроконтроллера и время загрузки. Особенно интересно в микросхемах с малой памятью — Atmega8 и различных Attiny.
- Установка загрузчика на «голую» Atmega328, чтобы в дальнейшем заливать в нее скетчи через RX/TX, как в обычную Ардуину.
- Замена загрузчика, например, на OPTIBOOT, нормально поддерживающий режимы сна и сторожевой таймер.
- Установка фьз-битов. Полезно при создании «батареечных проектов», когда отключается BOD — контроль входного напряжения и микроконтроллеру устанавливается режим работы с пониженной частотой, опять же для уменьшения напряжения питания до 2.8-3.3В и энергопотребления.
- Восстановление «мертвых» микроконтроллеров после неудачных экспериментов
Если нужно залить прошивку одной Ардуины через другую, то делается все тоже самое, только без платы. Соединяются вывод ардуин согласно схеме и точно так же программируется.
16 комментариев на «Ардуино в качестве программаторов AVR контроллеров»
Если ATmega328P-PU пришли с завода (изначально на работу с внутреннего генератора), схему необходимо всё равно собирать с внешним кварцем и двумя конденсаторами ? Мне в итоге нужно получить микроконтроллер с прошитым загрузчиком для работы с внешним 16MHz кварцем и питанием +5В.
Всем спасибо, уже разобрался ? Оказывается, проблема была в номинале керамических конденсаторов в обвязке кварца. Решил пересобрать на маленькой 170-ти контактной макетке. На внутреннем генераторе контроллер не заработал
А при установке этих конденсаторов обратил внимание на маркировку. По типоразмеру оказались одинаковые с 22pF, но только номиналом 100nF
Сразу же заменил — и всё заработало! Прошивал и на новой версии IDE Arduino 1.6.7 и на старой 1.0.1 — везде загрузчик успешно прошился.
Значит можно заливать прошивки которые не будут использованы в среде Ардуино? И что для этого надо сделать где установить и прочее
Какая то каша у вас ))) Прошивка — это бинарник для микроконтроллера AVR Среда Ардуино IDE позволяет редактировать исходник на С++ (вернее на Wiring), компилировать при помощи входящего в состав GCC компилятора с использованием своих библиотек и заливать его в МК при помощи AVRDUDE через загрузчик, находящийся в контроллере по интерфейсу UART. Также в Ардуино IDE можно настраивать работу с разными микроконтроллерами (не только AVR), загружать их в том числе и через различные программаторы
Если я правильно понимаю при такой схеме подключения нет необходимости в Uno ? Как вы описывали в другой статье программирование Atmega 328
В другой статье программатор USBASP а Ардуино УНО в качестве панельки для ATMega328, здесь в качестве программатора Ардуино. Любой — Nano/Uno?Pro Mini
Спасибо за ответ. я Так и понял. Если вдруг заинтересует Вас мог бы предложить тему создания умного дома начать с построения Блок схемы работы устройств.Например Orange Pi PC Plus + GL.iNet Mini WiFi Router Flash 64MB RAM. И соответственно устройств на базе ESP8266 в этой схеме.
ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn …. статья на esp8266.ru немного не дотягивает полнотой развертки…..может у Вас получиться более подробно обьяснить
Добрый вечер! А возможно ли как то сделать из ардуино уны высоковльтный программатор Fusebit Doctor?
Добрый вечер! А можно уточнить? Если я хочу по вашему способу прошить китайский заводской USBASP программатор на основе Atmega8A с кварцем на 12 MHz(чертовы китайцы льют в «камни» старые прошивки- из за них выдают ошибку и не шьют микроконтроллеры) при помощи Arduino Pro Micro, у нее кварц на 16 MHz и кристалл Atmega32u4- мне нужна какая либо обвязка внешняя к линии SCK? Или там можно в студии ардуино как-то справиться с проблемой разницы частот?
А какая разница на какой частоте работает программатор. Прошивка же не на тактовой процессора выполняется. Этим программатором из статьи я шил Меги 8 на 8МГц, Меги 328 на 16 и 8 и тиньки на всех их рабочих частотах. Главное, подключиться по ICMP. Там есть синхронизация
Кошак зачетный. Сидит и фигеет с происходящего)))
А ведь можно ардуино сразу к USB подцепить, напрямую. Чтобы как USBAsp определялся, ток где скетч на него взять?
А это все стандартное, можно Uno или Nano использовать, тогда и TTL конвертер нах не нужен.
nRF5 support
For SD card update use SDUnRF5 library.
To use remote upload from IDE with SDStorage or InternalStorage, copy platform.local.txt from extras/nRF5 folder, next to platform.txt in the nRF5 boards package. You can find the location of boards packages in Arduino IDE Preferences as the location of the preferences.txt file at the bottom of the Preferences dialog. It is clickable and opens the folder. There find the boards package in packages folder.
If SoftDevice is not used, the sketch is written from address 0. For write to address 0 the sketch must be compiled with -fno-delete-null-pointer-checks. The setting is in extras/nRF5/platform.local.txt.
If you use SoftDevice, stop BLE before applying update. Use to register a callback function. For example in setup and add the function to to sketch:
OTA update as download
The WiFi101OTA and ArduinoOTA libraries were created for upload from IDE. But in some scenarios as for example deployed sleeping battery powered devices it is better to have the update available for download by the device.
In advanced section of examples you can find examples of sketch update over download from a http server. One example shows update over the InternalStorage object of the ArduinoOTA library. The example for update over SD card doesn’t use this library at all.
The Blynk library uses this library in its Blynk.Edgent examples to store and apply user’s updated sketch downloaded from the Blynk IoT cloud storage.
Step Two — Connect Programmer to Target
After programming the board to create the Arduino Nano ISP
programmer, disconnect the USB cable and make the connections to the
target board.
You have to connect all the SPI wires (see breadboard layout below)
but you don’t really need to
connect the LEDs. One you might find useful is the heartbeat LED but it
is not essential. This will pulse slowly on and off, showing that the
ISP
program is active in the Nano.
In the breadboard layout below the LED connections are:
- pin D7 : Yellow : Programming.
- pin D8 : Red : Error.
- pin D9 : Green : Heartbeat.
TIP: Don’t bother with the LEDs — See the screen shots of IDE output below — you can see the programming status easily on that.
You can choose which pins will be used for MOSI, MISO and SCK
if you set PIN_MOSI, PIN_MISO and PIN_SCK to your desired pins — in the
sketch (save the sketch as a different file to allow editing) — in this
case the Ardino ISP sketch will use bit-banged SPI if these pins are
not set to the standard SPI pins.
Nano to Bare-board connections, and crystal+caps:
Перепрошивка загрузчика Arduino в ATMEGA328P через ATMEGA16U2
Довольно сложная часть нашего мероприятия по прошивке Ардуино. Вам нужно будет припаять некоторые провода. В основном нам нужно подключиться таким образом:
ICSP1 MISO2.Pin.1 -> ICSP MISO.Pin.1
ICSP1 SCK2.Pin.3 -> ICSP SCK.Pin.3
ICSP1 MOSI2.Pin.4 -> ICSP MOSI.Pin.4
JP2 PB4.Pin.1 -> ICSP RESET.Pin.5
Смотрите картинку ниже для понимания:
Подключите плату Arduino к USB-кабелю. Светодиоды RX и TX должны помигать два раза. Драйверы должны быть правильно распознаны (Jungo Connectivity -> AVRISP mkII). Запустите Atmel Studio. Зайдите в: Пуск -> Все программы -> Atmel -> Atmel Studio.
Перейдите в: Инструменты -> Программирование устройства. Выберите:
Инструмент -> AVRISP mkII
Устройство -> ATmega328P
Интерфейс -> ISP
Нажмите кнопку «Применить».
Установите частоту ISP на 16,1 кГц. Нажмите кнопку «Установить».
Программатор не будет работать, если вы установите очень низкую тактовую частоту ISP. Вы получите сообщение об ошибке: «ispProgramMem: получено состояние ошибки: получено 0x81, ожидаемое 0x00 (истекло время выборки контакта RDY / nBSY)». На английском будет звучать так: «ispProgramMem: Error status received: Got 0x81, expected 0x00 (RDY/nBSY pin sampling timed out)«. Однако максимальная скорость ISP также ограничена и не может превышать 1/4 частоты устройства.
Перейдите в «Подпись устройства» (Device signature) и нажмите кнопку «Читать» (Read). Вы должны увидеть правильную «подпись устройства»: 0x1E950F. Нажмите «Memories» и найдите hex файл загрузчика Arduino. Он находится в:
C:\Program Files\ Arduino\hardware\arduinobootloaders\optiboot\optiboot_atmega328.hex
Нажмите кнопку «Program». Если вы используете совершенно новый незапрограммированный ATMEGA328P, вы также должны запрограммировать FUSES. Перейдите в Fuses и используйте следующие значения: low_fuses = 0xff; high_fuses = 0xDE; extended_fuses = 0x05.
Вы успешно прошили 328P с загрузчиком Arduino. На следующем шаге мы вернем оригинальную прошивку 16U2.
Как запрограммировать Arduino Pro Mini с помощью программатора
В жизни начинающего ардуинщика рано или поздно наступает момент, когда хочется сэкономить на размере своего изделия, не жертвуя при этом функциональностью.
И тогда Arduino Pro Mini – отличное для этого решение! За счёт того, что у этой платы отсутствует встроенный USB-разъём, она в полтора раза меньше Arduino Nano. Но для того, чтобы её запрограммировать, придётся приобрести дополнительный – внешний – USB-программатор.
О том, как «залить» написанную программу в память микроконтроллера и заставить Arduino Pro Mini работать, и пойдёт речь в этой статье.
Нам понадобится:
1Программатор для Arduino
- Разъём типа USB-A используется, понятно, для подключения программатора к компьютеру.
- ISP-соединитель нужен для подключения к программируемой плате.
- Джампер JP1 контролирует напряжение на выводе VCC ISP-коннектора. Оно может быть 3,3 В или 5 В. Если целевое программируемое устройство имеет собственный источник питания, нужно убрать перемычку.
- Джампер JP2 используется для перепрошивки самого программатора; в данной статье этот вопрос не рассматривается.
- Перемычка JP3 нужна, если тактовая частота целевого устройства ниже 1,5 МГц.
- Светодиоды показывают: G – питание подаётся на программатор, R – программатор соединён с целевым устройством.
USBasp-программатор и назначение его частей
2Установка драйвера для программатора
Подключим программатор к USB-порту компьютера. Скорее всего, через какое-то небольшое время операционная система сообщит, что ей не удалось найти драйвер для данного устройства.
Сообщение об отсутствии драйвера для USBasp программатора
В этом случае скачаем драйвер для программатора с официального сайта. Распакуем архив и установим драйвер стандартным способом. В диспетчере устройств должен появиться программатор USBasp. Теперь программатор готов к работе. Отключаем его от компьютера.
Установка драйвера для USBasp программатора
Если вы испытываете трудности с установкой драйвера для USBasp программатора, то вам поможет статья «Как установить драйвер для программатора USBasp в Windows 8 и Windows 10».
3Схема подключенияArduino к программатору
Соединяем ISP-разъём программатора с выводами на Arduino Pro Mini согласно приведённой схеме.
Схема подключения Arduino Pro Mini к USBasp программатору
Воспользуемся макетной платой и соединительными проводами – это будет быстро и надёжно.
Плата Arduino Pro Mini подключена к USBasp программатору
Если вы планируете часто использовать платы Arduino Pro или Pro Mini в своей работе, то удобно будет спаять специальный переходник для быстрого подключения платы Arduino к программатору. На фото представлен мой вариант такого переходника.
Переходник для быстрого подключения платы Arduino Pro Mini к программатору USBasp
3Настройка Arduino IDEдля работы с программатором
Открываем среду разработки Arduino IDE. Выбираем нужную плату через меню: Инструменты Плата Arduino Pro or Pro Mini (Tools Board Arduino Pro or Pro Mini).
Нужно также выбрать тип микроконтроллера, который задаётся через меню Инструменты Процессор. У меня это ATmega 168 (5V, 16 MHz), у вас может быть другой. Это обычно написано на самом корпусе микроконтроллера и хорошо видно под увеличительным стеклом.
Настройка Arduino IDE для работы с программатором
Выберем тип программатора: Инструменты Программатор USBasp (Tools Programmer USBasp).
Укажем тип программатора в Arduino IDE
4Загрузка скетча в Arduinoс помощью программатора USBasp
Откроем скетч, который хотим загрузить в память микроконтроллера. Для примера пусть это будет мигание светодиодом: Файл Образцы 01. Basics Blink.
Подключаем программатор с подключённым к нему Arduino Pro Mini к компьютеру. Для того чтобы загрузить скетч в Ардуино с помощью программатора, можно поступить несколькими способами.
- Через меню Файл Загрузить через программатор.
- Используя сочетание клавиш Ctrl + Shift + U.
- Зажав клавишу Shift, нажать на кнопку со стрелкой вправо , которая обычно используется для загрузки скетча в память Ардуино стандартным способом.
Загрузка скетча в Arduino Pro Mini с помощью программатора USBasp
Это абсолютно эквивалентные способы, выбирайте самый удобный для себя. Это всё, программа «залита» в память микроконтроллера.
Обратите внимание
Если Arduino IDE выдаст предупреждение: warning: cannot set sck period. please check for usbasp firmware update. Не паникуйте, скетч всё равно записался в память микроконтроллера и будет работать.
2Установка драйвера для программатора
Подключим программатор к USB-порту компьютера. Скорее всего, через какое-то небольшое время операционная система сообщит, что ей не удалось найти драйвер для данного устройства.
Сообщение об отсутствии драйвера для USBasp программатора
В этом случае скачаем драйвер для программатора с официального сайта. Распакуем архив и установим драйвер стандартным способом. В диспетчере устройств должен появиться программатор USBasp. Теперь программатор готов к работе. Отключаем его от компьютера.
Установка драйвера для USBasp программатора
Если вы испытываете трудности с установкой драйвера для USBasp программатора, то вам поможет статья «Как установить драйвер для программатора USBasp в Windows 8 и Windows 10».
Простейшая схема программирования (и проверки работы)
Ниже приведен список комплектующих, необходимых для преобразования схемы прошивки загрузчика в простейшую схему программирования и проверки работоспособности.
Обозначение | Описание |
---|---|
R2 | Резистор 470 Ом, 0,25 Вт |
C4 | Конденсатор, керамический, 0,1 мкФ, 50 В |
LED1 | Светодиод, T1 3/4, желтый |
нет | Конвертер USB–TTL с выводом DTR |
Преобразовать схему прошивки загрузчика AT328P-PU в простейшую схему программирования и проверки работоспособности довольно просто. Ниже приведены принципиальная схема и фотография макета.
- Удалите все шесть перемычек между Arduino Uno и схемой прошивки программатора.
- Подключите R2 и LED1 между землей и выводом 19 микроконтроллера AT328P-PU.
- Подключите выводы 1, 3, 4 и 5 от USB-TTL конвертера к AT328P-PU, как показано ниже. Вывод 2 не используется.
- Подключите вывод 6 через конденсатор C4 (0,1 мкФ) к выводу 1 AT328P-PU. (C4 обеспечивает, чтобы сигнал DTR от преобразователя USB-TTL выдавал кратковременный сигнал сброса, а не тот сигнал, который остается на низком логическом уровне в течение длительного периода времени.)
Простейшая схема программирования AT328P-PUМакет простейшей схемы программирования AT328P-PU
Перепрошиваем Arduino ATMEGA16U2 в оригинальное ПО
Почти сделано. Нам нужно вернуть оригинальное программное обеспечение в ATMEGA16U2.
Отключите Arduino от питания и USB. Замкните на ICSP1 контакты 5-6. Подключите USB-кабель. Разомкните пины ICSP1 5-6.
Запустите программное обеспечение FLIP. Перейдите в: Пуск -> Все программы -> Flip -> Flip. Далее: Настройки -> Связь -> USB.
Нажмите «Открыть». Перейдите в: Файл -> Загрузить файл HEX.
Выберите файл:
С:\Program Files\Arduino\hardware\arduino\firmwares\atmegaxxu2\arduino-usbserial\Arduino-usbserial-atmega16u2-Uno-Rev3.hex
Нажмите «Выполнить».
Отсоедините USB-кабель и подключите его снова. Новое устройство USB должно быть распознано. Если драйвер не установлен автоматически, вы найдете его в: С:\Program Files\Arduino\drivers.
Перейдите в Диспетчер устройств: Win + Pause -> Оборудование -> Диспетчер устройств. Проверьте, правильно ли загружен драйвер. Вы должны увидеть его в: Ports -> Arduino Uno.
Теперь мы можем проверить любой скетч из примеров, типа Blink. Запустите программное обеспечение Arduino (Пуск -> Arduino).
Нажмите: Open (стрелка вверх) -> -> 01.Basics -> Blink.
Выберите COM-порт а: Инструменты -> Последовательный порт -> COM (выберите порт, на котором была распознана плата).
Нажмите значок «Загрузить» (стрелка вправо). Светодиод должен начать мигать.
Всё готово. Мы узнали как прошить Ардуино и успешно перепрограммировали ATMEGA328P без использования какого-либо внешнего программатора.
ESP8266 and ESP32 support
The ArduinoOTA library bundled with ESP8266 and ESP32 Arduino packages works only with native WiFi libraries. This library allows to upload a sketch to esp8266 or esp32 over Ethernet with Ethernet or EthernetENC library. Upload over the native WiFi library works too.
To use this library instead of the bundled library, the bundled library must be removed from the boards package library folder. To override the configuration of OTA upload in platform.txt, copy the platform.local.txt file from extras folder of this library next to platform.txt file in boards package installation folder. You can find the location of boards packages in Arduino IDE Preferences as the location of the preferences.txt file at the bottom of the Preferences dialog. It is clickable and opens the folder. There find the boards package in packages folder.
This library supports SPIFFS upload to esp8266 and esp32, but the IDE plugins have the network upload tool hardcoded to espota. It can’t be changed in configuration. To upload SPIFFS, call the plugin in Tools menu and after it fails to upload over network, go to location of the created bin file and upload the file with arduinoOTA tool from command line. The location of the file is printed in the IDE console window. Upload command example (linux):
(the same command can be used to upload the sketch binary, only use )
Прошивка ATmega328
У микроконтроллера нет собственного USB-порта. К компьютеру его можно подключить одним из двух способов:
Рассмотрим их подробнее.
Прошивка ATmega328 через USB-UART преобразователь
Для сборки программатора нам понадобится:
Соберите следующую схему
Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE — и прошейте свой контроллер.
Прошивка ATmega328 через Arduino Uno
Для сборки программатора нам понадобится:
Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE и прошейте свою Arduino.
В уроке мы покажем вам, как сделать свою собственную плату Arduino Uno своими руками, используя микроконтроллер ATmega328p IC. В итоге вы сможете понимать как в дальнейшем делать аналоги любых плат, плюс создавать свои. Может быть вы даже откроете свою компанию по производству плат и микроконтроллеров.
Так как Ардуино является платформой с открытым исходным кодом, довольно легко узнать о внутренностях и деталях всего того, что делает Arduino тем, чем она является. Таким образом, в этом уроке мы рассмотрим схему Arduino Uno, немного изменим ее в соответствии с нашими потребностями, изготовим под нее печатную плату и припаяем необходимые компоненты для создания финального продукта.
Мы не будем использовать какие-либо SMD-компоненты для создания своей версии Arduino Uno, потому что не у всех есть паяльная станция, а иногда найти SMD-компоненты очень сложно. Кроме того, наш метод в большинстве случаев дешевле, чем компоненты SMD. Для тех кто, только начинает разбираться в электронике — технологию поверхностного монтажа печатных плат также называют ТМП (технология монтажа на поверхность), SMT (англ. surface mount technology) и SMD-технология (от англ. surface mounted device — прибор, монтируемый на поверхность), а компоненты для поверхностного монтажа также называют «чип-компонентами».
Скетч-программатор.
Тема, на мой взгляд, интересная и позволяет мотивировать покупку нескольких Ардуино 😉 Жаль что обобщенной информации по ней не много. Есть разные заметки, в том числе на официальном сайте и форуме. Попытка обобщить их предпринята мной. И представлена это будет в основном в виде комментариев к линкам на оригинальные статьи (знакомство с которыми в любом случае имхо не лишнее) …
http://arduino.cc/en/Tutorial/ArduinoISP — Использование Arduino как программатора AVR ISP (Using an Arduino as an AVR ISP) — далее мой вольный перевод этой статьи (желтой подсветкой), курсивом мои дополнения …
«Это руководство рассказывает как использовать ардуину в качестве программатора AVR ISP (in-system programmer). Что дает возможность прошивки загрузчика (bootloader) в контроллер AVR (например ATmega168 or ATmega328 для дальнейшего их использования как Ардуино). Код прошивки ардуины, используемой в качестве программатора базируется на исходниках от Randall Bohn.Замечание: На текущий момент невозможно использовать Arduino Uno в качестве программатора ISP потому что прошитый в ее контроллер загрузчик (optiboot bootloader) не поддерживает скетч, превращающий ардуину в программатор. Но это пока … работы в направлении фикса ведутся …Инструкция:Для использования Ардуино-платы для прошивки загрузчика (bootloader) в чистый AVR контроллер нужно выполнить следующие шаги.
«
Чуть подробнее о подключении контроллера к «Ардуино-программатору».
Разъем ISP на плате ардуины имеет следующую распиновку (рисунок слева).
Контакты MOSI, MISO и SCK вы ведены на пины «DIGITAL» 11,12 и 13 соответственно. Контакт RESET прикручен к соответствующей ноге контроллера на плате ардуины, поэтому чтобы его «подергать» с платы «Ардуино-программатора» используется «цифровой пин» 10 на плате программатора (согласно скетчу ArduinoISP). Также скетчем предусмотрена установка информирующих светодиодов (не является обязательной) на ноги 7, 8 и 9 (Programming, Error и HeartBeat).
Еще раз о распиновке классического кабеля ISP от целевого MCU -> «Arduino ISP»:
1 -> 12 (MISO)2 -> VCC3 -> 13 (MOSI)4 -> 11 (SCK)5 -> 10 (RESET)6 -> GND
Номера контактов кабеля (слева) к целевому MCU соответствуют номерам ног разъема ISP ардуины.
Далее.
http://www.arduino.cc/playground/Code/Programmer2 — Описание и скетч, превращающий ардуину в программатор AVR совместимый с stk500v1 (скетч старинный, но вроде как с него началась идея Ардуино-программатора). Для работы с avrdude используется команда вида: avrdude -v -cstk500v1 -PCOMxx -b19200 … — причем указание скорости связи является обязательным и ключевым моментом!
http://arduino.cc/playground/Code/MegaISP — До сих пор развивающийся скетч Ардуино-программатора от Randall Bohn.
Пока немного и сумбурно … со временем откорректирую и дополню …
MiGeRA (январь 2012)
Программная эмуляция
Платформа Arduino Nano Every с микроконтроллером ATmega4809 поддерживает программную эмуляцию для полной совместимости с платой предшественника Arduino Nano с микроконтроллером ATmega328.
-
Включение совместимости:
Инструменты
Registaers Emulation
ATMEGA328 -
Отключение совместимости:
Инструменты
Registaers Emulation
None (ATMEGA4809)
Эмуляция будет полезна, только если одновременно выполнены следующие пункты:
- Ваш проект собран на базовой плате Arduino Nano.
- Вы решили перейти с платы Arduino Nano на плату Arduino Nano Every.
- В коде прошивки использованы не базовые функции языка C++, а именно регистры микроконтроллера ATmega328.
- Вам лень менять код.
Во всех остальных случаях рекомендуем не включать эмуляцию.
Шаг 4. Создаем печатную плату
Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.
После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.
Прошивка ардуино про мини с помощью Arduino Uno или Nano
Для того что бы прошить одну ардуинку через другую, нам понадобятся 2 платы Arduino, соединительные провода, USB кабель и компьютер. Я покажу как прошить Arduino Pro Mini с помощью Arduino Nano, но по этой же инструкции можно использовать и другие платы Arduino, такие как Uno, Mega и тд.
Для начала надо настроить нашу плату, которая будет выступать в роли программатора. Для этого подключим ее к USB компьютера и перейдем в Arduino IDE. В примерах уже есть готовый скетч, написанный специально для этой цели.
Выбор программатора
Выбираем этот скетч и прошиваем. Теперь мы готовы подключать Arduino Pro Mini. Подключаем следующим образом:
Arduino Nano -> Arduino Pro Mini
- +5v -> Vcc
- GND -> GND
- D10 -> RST
- D11 -> D11
- D12 -> D12
- D13 -> D13
У меня это выглядит так:
Arduino Pro Mini через Arduino Nano
Далее нам нужно выставить в меню «Инструменты» нашу прошиваемую плату и тип программатора «Arduino as ISP»:
Теперь мы можем прошить нашу Arduino Pro Mini. Откройте или напишите нужную вам прошивку. Будьте внимательны! Стандартная кнопка загрузки скетча нам не подходит. По умолчанию она заливает прошивку без использования программатора. Таким образом мы прошьем микроконтроллер, который должен выступать в качестве программатора. Чтобы этого не произошло нужно перейти в меню Скетч >> Загрузить через программатор.
Готово!
4Загрузка скетча в Arduinoс помощью программатора USBasp
Откроем скетч, который хотим загрузить в память микроконтроллера. Для примера пусть это будет мигание светодиодом: Файл Образцы 01. Basics Blink.
Подключаем программатор с подключённым к нему Arduino Pro Mini к компьютеру. Для того чтобы загрузить скетч в Ардуино с помощью программатора, можно поступить несколькими способами.
- Через меню Файл Загрузить через программатор.
- Используя сочетание клавиш Ctrl + Shift + U.
- Зажав клавишу Shift, нажать на кнопку со стрелкой вправо , которая обычно используется для загрузки скетча в память Ардуино стандартным способом.
Загрузка скетча в Arduino Pro Mini с помощью программатора USBasp
Это абсолютно эквивалентные способы, выбирайте самый удобный для себя. Это всё, программа «залита» в память микроконтроллера.
Обратите внимание
Если Arduino IDE выдаст предупреждение: warning: cannot set sck period. please check for usbasp firmware update. Не паникуйте, скетч всё равно записался в память микроконтроллера и будет работать.
2Установка драйвера для программатора
Подключим программатор к USB-порту компьютера. Скорее всего, через какое-то небольшое время операционная система сообщит, что ей не удалось найти драйвер для данного устройства.
Сообщение об отсутствии драйвера для USBasp программатора
В этом случае скачаем драйвер для программатора с официального сайта. Распакуем архив и установим драйвер стандартным способом. В диспетчере устройств должен появиться программатор USBasp. Теперь программатор готов к работе. Отключаем его от компьютера.
Установка драйвера для USBasp программатора
Если вы испытываете трудности с установкой драйвера для USBasp программатора, то вам поможет статья «Как установить драйвер для программатора USBasp в Windows 8 и Windows 10».
Как прошить плату Digispark на базе микроконтроллера ATtiny 85. Обзор платы.
Ниже представлены 4 самых часто встречаемых варианта плат, всех их объединяет наличие AVR
микроконтроллера ATtiny 85 с 8 битным процессором способным работать на частоте от 1 до 20 МГц.
Ее характеристики как и цена довольно скромные – всего 8 Кб памяти для хранения программ, 512 байт
оперативной памяти, 512 байт энергонезависимой памяти, 6 — цифровых входов/выходов, 4 — аналоговых входа,
3 — ШИМ выхода, 1 — I2C, 1 — SPI.
Зато у этой малышки имеется USB интерфейс, благодаря которому она может работать как джойстик,
клавиатура или мышь.
Благодаря наличию I2C и SPI к плате можно подключать различные датчики сервомоторы и даже LED дисплей.
Если вы решили сделать устройство где понадобится несколько кнопок, то всего лишь на один из аналоговых
входов можно смело вешать десяток кнопок с резистивной развязкой.
Так же на плате имеется стабилизатор напряжения для подключения от внешних источников питания (контакт
VIN) от 6 до 16 вольт (разработчики утверждают что стабилизатор выдерживает до 35 вольт). Плата отличается
особой экономностью, может потреблять всего 0,1 мкА.