Как прошить Arduino Pro Mini (от А до Я)
Приветствую Вас, читатели нашего ресурса. Сегодня мы поговорим об одном контроллере из серии Arduino, а именно об Arduino Pro Mini. Это маленький, компактный контроллер, имеющий все преимущества Arduino, но при этом очень компактный, можно сказать самый маленький из всех существующих Arduino контроллеров на данный момент. Многих так же привлекает и цена его Китайский копий, а стоят они от одного до двух долларов за штуку (местами и того меньше), что так же заставляет задуматься об его приобретении. Но существует и одна проблема, его не так-то уж и просто прошить, особенно Китайские копии, которые оснащают процессором Atmel ATmega168P, которыми некогда не оснащали официальные контроллеры Arduino Pro Mini и как следствие Arduino IDE отказывается их прошивать, сообщая о неправильной сигнатуре процессора.
Вот об этом мы сегодня и поговорим. Как прошить, что для этого нужно, ну и как заставить Arduino IDE работать с китайскими копиями.
Что для этого нужно?
Arduino Pro Mini очень компактный, а компактность требует жертв и жертва это — USB интерфейс который полностью выкосили в данном контроллере т.е. подключить Pro Mini к компьютеру напрямую у вас не получится и как следствие для этого понадобится либо специальный переходник USB в TTL или другой контроллер Arduino.
Далее мы разберем три способа как прошить Pro Mini и для всех трех способов нам что-то понадобиться:
- Первый способ. Прошиваем через адаптер USB в TTL – нужен сам адаптер в количестве одной штуки.
- Второй способ. Прошиваем через Arduino UNO – нужна Arduino UNO, но не простая, а в классическом исполнении, это та Arduino, в которой процессор выполнен в DIP корпусе и вставлен в черный разъем.
- Третий способ. Прошиваем через SPI интерфейс – нужна любая Arduino: UNO, Nano, Mega, Leonardo – не важно, главное чтобы был USB разъем для подключения к ПК.
Первый способ. Прошиваем через адаптер USB в TTL
Первым и самым простым способом загрузить свой скетч в Arduino Pro Mini — это приобрести специальный адаптер USB в TTL или как его называют UART переходник. Как правило, этот переходник это и есть та часть, которую вырезали из Arduino Nano, превратив ее в Arduino Pro Mini. Стоимость подобных переходников копеечная, а выбор и того больше. Китайцы наштопали их столько, что глаза разбегаться какой из них выбрать. При этом цена сего девайса не более одного вечно зеленого. После того как вы соедините Pro Mini и UART переходник проводами или шлейфом, остаётся только воткнуть его (переходник) в ПК, установить драйвер (не для всех переходников они требуются) и на этом собственно все. Ваш ПК определит переходник как очередной COM-порт, который появляется при подключении любой Arduino к ПК. Выбираете его, плату, с которой будете работать (Arduino Pro Mini) и спокойно загружаете свой скетч.
Единственным нюансом в данных переходниках, является наличие или отсутствие контактов RST или DTR. Рекомендую покупать переходники, на которых эти контакты есть. Они значительно упрощают жизнь и делают процесс прошивки беспроблемным. Если же вы купили уже переходник, на котором подобных контактов нет, то при каждой загрузке скетча в Arduino вам придется нажимать на кнопку Reset, что не всегда получается сделать вовремя, и это вносит свои неудобства.
Подключение переходник вы можете посмотреть по таблице ниже:
USB в TTL (UART) | Arduino Pro Mini |
---|---|
RX | RX |
TX | TX |
GND | GND |
5V | VCC |
RST или DTR или GRN | RST или DTR |
Второй способ. Прошиваем через Arduino UNO
Для этого способа нам понадобиться классическая Arduino UNO. Классическая эта та, в которой корпус микросхемы выполнен в DIP корпусе и вставлен в специальный разъем. Вот эту микросхему нам надо аккуратно поддеть отверткой. Тут важно не сломать процессор, поддевайте аккуратно, не погнув ноги.
Arduino UNO. Процессор выполнен в DIP корпусе.
Аккуратно поддеваем и вытаскиваем процессор отверткой.
После того как мы вытащили процессор из Arduino UNO мы по сути получили тот самый переходник USB в TTL, осталось только соединить проводами наш новый переходник и Arduino Pro Mini по следующей схеме:
Arduino UNO (без процессора) | Arduino Pro Mini |
---|---|
RX | RX |
TX | TX |
GND | GND |
5V | VCC |
RST | RST |
После того как вы соединили две Arduino воедино, можно приступать к прошивке Arduino Pro Mini. Подключаем Arduino UNO по USB к ПК. Выбираем в настройках Arduino IDE COM-порт, указываем, что мы теперь работаем не с Arduino UNO, а с Arduino Pro Mini и все, заливаем наши скетчи. Способ довольно интересный, если вы не боитесь испортить Arduino и рядом не оказалось переходника USB в TTL.
Третий способ. Прошиваем через SPI интерфейс
Третьим и самым неудобным способом загрузить свой скетч в Arduino Pro Mini это прошить его при помощи ICSP интерфейса. Данный интерфейс присутствует на большинстве плат Arduino. Основные контакты данного интерфейса выведены на порты с 10 по 13, а так же выведены отдельно в виде шести контактной колодки с подписью ICSP. Располагается колодка, как правило, в центральной правой части Arduino.
Прошивка Arduino Pro Mini в этом случае делиться на два этапа:
- Прошивка платы Arduino как ISP программатора.
- Настройка Arduino IDE и загрузка скетча в Arduino Pro Mini.
Первым делом мы должны подготовить наш будущий программатор. Возьмем для примера всю туже Arduino UNO. Далее пошагово:
- Запускаем Arduino IDE.
- Файл — Примеры — 11.ArduinoISP — ArduinoISP.
- Инструменты — Плата — Arduino UNO.
- Инструменты — Порт — Выбираем COM-порт.
- Компилируем и заливаешь в Arduino UNO.
Далее нам необходимо соединить две Arduino проводами по следующей схеме:
Arduino UNO (ISP) | Arduino Pro Mini |
---|---|
5V | VCC |
GND | GND |
10 | RST |
11 (MOSI) | 11 (MOSI) |
12 (MISO) | 12 (MISO) |
13 (SCK) | 13 (SCK) |
Теперь опять открываем Arduino IDE. Открываем в ней скетч который вы хотите залить в Pro Mini и выполняете следующие действия:
2. Инструменты — Плата — Arduino Pro Or Pro Mini
3. Инструменты — Процессор — ATmega168 (5V, 16 MHz)
4. Инструменты — Порт — Выбираете порт
5. Инструменты — Программатор — Arduino as ISP
6. Скетч — Загрузить через программатор
Как видите загружать скетч в этом режиме надо через специальное меню "Загрузить через программатор", а не через кнопку "Загрузить" на главной форме Arduino IDE. В этом и связано все неудобство. Если вы нажмете кнопку "Загрузить" как это делаете обычно, то вы зальете скетч в Arduino UNO, а не Arduino Pro Mini, что затрет там скетч программатора. Так же в этом режиме недоступен класс Serial, то есть отлаживать свой скетч обмениваясь сообщениями по COM-порту у вас так же не получится. Ну и еще одна ложка дегтя в том, что после данной перепрошивки, в большинстве случаев, перепрошить Arduino Pro Mini через переходник у вас так же больше не получиться. Исправляется это заливкой нового bootloader-а через меню "Инструменты" — "Записать Загрузчик".
Добавляем китайский Pro Mini в Arduino IDE
Как я уже говорил в данной статье, Китайские клоны порой оснащают процессорами которыми не оснащали официальные версии Arduino Pro Mini и как следствие при прошивке их вы можете увидеть следующую или подобную ошибку.
Исправляется это легко:
- Для начала необходимо открыть папку в которой расположена Arduino IDE.
- Затем переходим в следующую папку "Папка с Arduino IDE\hardware\arduino\avr\".
- Ищем там файл "boards.txt" и открываем его в текстовом редакторе.
- Ищем в файле следующую строку "pro.menu.cpu.16MHzatmega168.build.mcu=atmega168".
- И заменяем ее на "pro.menu.cpu.16MHzatmega168.build.mcu=atmega168p".
- Перезапускаем Arduino IDE и на этом все.
- Если у вас к примеру 328 процессор то делаем все так же, только ищем строку с цифрами 328.
Заключение
В данной статье я привел аж три варианта загрузки скетчей в Arduino Pro Mini. Лично я использую второй. Мне он больше нравиться.
Что будете использовать вы — выбирать вам. Оставьте в комментарии какой вариант вы предпочитаете.
Прошивка Arduino Pro Mini через Nano
Не так давно столкнулся с необходимостью использования Arduino Pro Mini в своем проекте и сразу же встал вопрос как заливать в нее скетч. Конечно продаются различные переходники UART при помощи которых этот вопрос снимается быстро, но в тот момент такого переходника не оказалось под рукой.
Почитав на сайте http://arduino.cc и посабирав информацию на разлинчых форумах, узнал о возможности прошивать Pro Mini при помощи других плат Arduino.
Итак, рассмотрим в чем заключается метод Arduino as ISP и что необходимо для этого на примере Arduino Nano.
Для возможности использования платы в родном Arduino IDE имеется пример скетча для перевода платы в программатор, этот пример уже самодостаточен для прошивки Pro Mini, найти его можно выбрав в меню Файл.
Далее в меню «Инструменты» выставляем нашу плату «программатор» и тип ее микроконтроллера.
Затем прошиваем Nano скетчем ArduinoISP, обратив внимание на скорость порта в функции setup, данная скорость будет использоваться непосредственно при прошивке Pro Mini в стандартном скетче ее значение равно 19200.
После того, как Nano будет подготовленна можем собирать breadboard, для прошивки Pro Mini по схеме указанной здесь http://arduino.cc/en/Tutorial/ArduinoISP.
То есть следующим образом:
- +5v -> Vcc
- GND -> GND
- D10 -> RST
- D11 -> D11
- D12 -> D12
- D13 -> D13
У меня получилось примерно так:
После того как все собрано и проверено можно подключить Nano к компьютеру, поморгав 7 раз обе платы готовы к работе.
Далее для прошивки нам необходимо убедиться, что при выставлении прошиваемой платы и программатора у нас используются одинаковые скорости порта, взяв за стандарт скорость из скетча. Для типа платы нужно найти файл boards.txt его путь относительно установленной программы IDE такой: Arduino/hardware/arduino/boards.txt. В нем нам нужно найти раздел параметров для платы Pro Mini выглядит она примерно так:
pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
У меня прошиваемая мини на 5 вольт с микроконтроллером ATmega328, если же у вас иная версия плата то вам нужно найти соответствующий вашей платы раздел.
Здесь необходимо убедиться что скорость выставлена верная:
Затем зайдем в файл programmers.txt, его путь Arduino/hardware/arduino/programmers.txt и убедимся в верности параметров:
arduinoisp.name=Arduino as ISP
arduinoisp.communication=serial
arduinoisp.protocol=stk500v1
arduinoisp.speed=19200
После того как убедились, что все параметры верны можно запускать IDE, если она была запущена то перезапустить. Это необходимо для того чтобы вступили силу новые параметры.
После запуска IDE нам нужно выставить в меню «Инструменты» нашу прошиваемую плату и тип программатора «Arduino as ISP»:
Теперь у нас все готово для прошивки. Выбираем нужный скетч, для пробы можно выбрать любой из примеров. А теперь особое внимание уделю как прошивать, обычная кнопка для прошивки нам не подойдет так как она предназначена для прошивки стандартным программатором т.е. в Arduino Nano и при ее нажатии мы просто прошьем Nano, что нам обсолютно не нужно.
Верный путь прошить Pro Mini лежит в меню «Файл» и называется он «Загрузить с помощью программатора», у меня стоит версия IDE 1.5.6-r2 там этот пункт называется «Вгрузить через программатор», по всей видимости трудности перевода в этом релизе, в версии 1.0.5-r2 все в порядке.
С первого раза может не получиться прошить, да и в дальнейшем возможно будет вылетать ошибка такого вида:
Однако не стоит беспокоится, если все собрано верно и спаяно надежно то, достаточно нажать «Reset» на Pro Mini, подождать пару секунд и плата успешно прошъется.
Прошивка Про Мини через Ардуино / TTL / USBasp
Как залить скетч в Arduino Pro Mini, ведь на плате нет программатора, а следовательно и USB порта. Для загрузки кода можно использовать переходник PL2303HX USB To RS232 TTL Auto Converter Adapter Module (UART), использовать внешний USBasp программатор или плату Arduino Uno / Nano или Arduino Mega. Рассмотрим в этой статье все возможные варианты загрузки скетча в Ардуино Про Мини.
О чем следует знать при прошивке Про Мини
Существует две версии Arduino Pro Mini — одна работает от 3.3 Вольта с частотой 8 МГц, вторая версия работает от 5 Вольт с частотой 16 МГц. Это важно при подключении питания к микроконтроллеру, если плату с питанием 3.3 В подключить к 5В, то она выйдет из строя. Во-вторых, следует узнать поддерживает ли Про Мини автоматический сброс (наличие пина DTR) — для чего это важно расскажем далее.
Для этого проекта потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- плата Arduino Pro Mini;
- USB-TTL конвертер / USBasp программатор;
- макетная плата;
- провода «папа-папа», «папа-мама».
Прошивка Arduino Pro Mini через Uno / Nano
Прошивка через другую плату Ардуино — более простой способ загрузки скетча в Pro Mini, при условии, что у вас есть в наличии Уно или Нано (Ардуино Мега тоже подойдет для этих целей). Вам не потребуется менять какие-либо настройки в Arduino IDE, достаточно будет подключить платы между собой, как на схеме ниже и закоротить проводом пины GND и RESET на контактах ICSP платы-программатора.
Как прошить Ардуино Про Мини через Ардуино Уно / Нано
После подключения Ардуино Уно к компьютеру в Arduino IDE, выбираем COM-порт, на котором сидит Уно и выбираем нужную модель Arduino Pro Mini. Далее нажимаем кнопку «Загрузить». Очень важная деталь! При начале компиляции скетча, необходимо нажать кнопку RST на плате Pro Mini, а когда начнется процесс загрузки — отпустить кнопку. Получается не всегда с первого раза, здесь от вас потребуется сноровка.
Прошивка Arduino Pro Mini через TTL (UART)
В Arduino Pro Mini не встроен USB-TTL мост, позволяющий плате общаться по последовательному соединению с компьютером. Поэтому для этого используют внешний USB-TTL (UART) программатор, который подключается к портам RX и TX Arduino и пинам питания. Перед загрузкой скетча Ардуино должен быть перезагружен, и для этого на платах есть пин DTR (Data Terminal Ready), который выполняет сброс.
Как прошить Ардуино Про Мини через USB-UART (TTL)
После подключения (согласно схеме, представленной выше), запускаем Arduino IDE, выбираем COM-порт, на котором сидит программатор и выбираем нужную модель Arduino Pro Mini (смотри картинку ниже). Далее нажимаем на кнопку «Загрузить». Если на Про Мини отсутствует пин DTR и не выполняется автоматический сброс, то сброс нужно производить вручную, нажав кнопку RST в момент компиляции скетча.
Загрузка прошивки с помощью USB-to-UART TTL конвертера
Если TTL программатор определяется как «неопознанное устройство», то скачайте и установите на компьютер драйвер для чипа, на базе которого построен модуль, например, CP2102, CH340/341, FT232 и т.д. И не забывайте, что существует две версии микроконтроллера Pro Mini — одна работает от напряжения 3.3 Вольта с частотой 8 МГц, вторая версия работает при напряжении 5 Вольт с частотой 16 МГц.
Прошивка Arduino Pro Mini через USBasp
Как прошить Ардуино Про Мини через ISP программатор
Перед использованием модуля, следует установить драйвера на компьютер. Скачайте драйвера для вашей модели программатора с официального сайта и установите их стандартным способом. После этого подключите программатор к компьютеру и убедитесь, что в диспетчере устройств появился USBasp программатор. Теперь можно подключать внешний USB-программатор к Arduino Pro Mini.
Как прошить Ардуино Про Мини через USBasp программатор
Соедините ISP-разъем программатора с пинами на Pro Mini согласно схеме, размещенной выше. Контакты должны быть надежными — воспользуйтесь для этого макетной платой и коннекторами. После подключения, зайдите в приложение Arduino IDE, выберите COM-порт, на котором висит USB программатор, вашу версию микроконтроллера Arduino, а также тип программатора (смотри картинку выше).
Загрузка прошивки в Arduino IDE с помощью USBasp
Для загрузки программы в плату (см. картинку выше) зайдите на вкладку «Скетч» в Arduino IDE и нажмите «Загрузить через программатор». При работе с программатором могут возникать ошибки при загрузке скетча. Чтобы их исправить проверьте надежность соединения USBasp с микроконтроллером, попробуйте вставить программатор в другой USB порт или переустановить драйвер для модуля USBasp.
Заключение. Все рассмотренные способы прошивки Arduino Pro Mini можно использовать и для прошивки других плат семейства Arduino. Кроме того, имея под рукой программатор вы можете не только загружать скетчи в микроконтроллер, но и выгружать скетчи из Arduino на компьютер. Что может быть весьма полезно.
Getting Started with the Arduino Pro Mini
The Arduino Pro Mini is intended for advanced users who require flexibility, low-cost, and small size. It comes with the minimum of components (no on-board USB or pin headers) to keep the cost down. It's a good choice for a board you want to leave embedded in a project. Please note that there are two versions of the board: one that operates at 5V (like most Arduino boards), and one that operates at 3.3V. Be sure to provide the correct power and use components whose operating voltage matches that of the board.
The Arduino Pro Mini is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page.
Use your Arduino Pro Mini on the Arduino Web IDE
All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor, you only need to install Arduino Create Agent to get started.
The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board.
Use your Arduino Pro Mini on the Arduino Desktop IDE
If you want to program your Arduino Pro Mini while offline you need to install the Arduino Desktop IDE
The board comes without built-in USB circuitry, so an off-board USB-to-TTL serial converter must be used to upload sketches. For the 3.3V Arduino Pro boards, this can be a FTDI TTL-232R-3V3 USB — TTL Level Serial Converter Cable or the SparkFunFTDI Basic Breakout Board (3.3V). For the 5V Arduino Pro boards, use a TTL-232R USB — TTL Level Serial Converter or the SparkFunFTDI Basic Breakout Board (5V). (You can probably also get away with using a 5V USB-to-serial converter with a 3.3V board and vice-versa, but it's not recommended.)
If using the FTDI cable on Windows, you'll need to make one configuration change to enable the auto-reset. With the board connected, open the Device Manager (in Control Panels > System > Hardware), and find the USB Serial Port under Ports. Right-click and select properties, then go to Port Settings > Advanced and check Set RTS on Close under Miscellaneous Options.
Open your first sketch
Open the LED blink example sketch: File > Examples >01.Basics > Blink.
Select your board type and port
For the 3.3V versions of the Arduino Pro Mini, select Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328P or Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 from the Tools > Board menu (depending on the microcontroller on your board). For the 5V versions of the Arduino Pro Mini, select Arduino Duemilanove or Nano w/ ATmega328P or Arduino Diecimila, Duemilanove, or Nano w/ ATmega168.
The Arduino Pro Mini connected to (and powered by) an FTDI TTL-232R-3V3 USB — TTL Level Serial Converter Cable. The green and black wires align with the labels "GRN" and "BLK" written next to the holes.
The Arduino Pro Mini connected to (and powered by) a SparkFun FTDI Basic Breakout Board and USB Mini-B cable. Note that on earlier Pro Mini boards the orientation of the 6-pin header may be reversed; check that the words GRN and BLK align on the Pro Mini and FTDI Basic Breakout.
Upload and Run your first Sketch
To upload the sketch to the Arduino Pro Mini, you need to press the upload button in the Arduino environment.
Click the Upload button in the upper left to load and run the sketch on your board:
Wait a few seconds — you should see the RX and TX LEDs on the board flashing. If the upload is successful, the message "Done uploading." will appear in the status bar.
Learn more on the Desktop IDE
See this tutorial for a generic guide on the Arduino IDE with a bit more info on the Preferences, the Board Manager, and the Library Manager.
Tutorials
Now that you have set up and programmed your Arduino Pro Mini board, you may find inspiration in our Project Hub tutorial platform.
Power
The board can be powered through USB via the six-pin programming header or from a regulated 5V or 3.3V (depending on the model) supply applied to the VCC pin or an unregulated supply on the RAW pin.
Connectors
Any standard 0.1" spaced header can be soldered to the holes on the Arduino Pro Mini. To use every pin requires two 12-pin headers, plus a six-pin header for programming if desired. Bare wire can also be soldered directly to the holes.
The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain.