Оглавление
- Распиновка Arduino Pro Mini
- Как запрограммировать Arduino Pro Mini с помощью программатора
- Перезапись загрузчика в Arduino Pro Mini
- Зачем перезаписывать загрузчик
- Что для этого нужно
- Подключение
- Настройка параметров загрузчика
- Настраиваем Arduino IDE
- Ошибка компиляции
- Ошибка загрузки
- Характеристики платы
- Прошивка arduino pro mini
- USB-TTL (UART)
- Заключение
Распиновка Arduino Pro Mini
Каждый из 14 цифровых выводов Pro, используя функции , , и , может настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:
- Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы имеют соединение с выводами TX-0 и RX-1 блока из шести выводов.
- Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции .
- ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи .
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
- LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.
На платформе Pro Mini установлены 6 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Четыре из них расположены на краю платформы, а другие два (входы 4 и 5) ближе к центру. Измерение происходит относительно земли до значения VCC. Некоторые выводы имеют дополнительные функции:
I2C: A4 (SDA) и A5 (SCL). Посредством выводов осуществляется связь I2C (TWI), для создания которой используется библиотека Wire.
Существует дополнительный вывод на платформе:
Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.
Как запрограммировать 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. Не паникуйте, скетч всё равно записался в память микроконтроллера и будет работать.
Перезапись загрузчика в Arduino Pro Mini
17 Июл 2014
Arduino Pro Mini весьма привлекательная плата из семейства Ардуино в первую очередь маленькими габаритами и ценой.
Зачем перезаписывать загрузчик
- Если загрузчик «слетел» и плата не прошивается. Выдает всегда: «avrdude: stk500_recv(): programmer is not responding».
- Если нужно переустановить ФЬЮЗ-биты, например, как в моем случае, отключить контроль напряжения питания для того чтобы запитать плату от 3.3В
- Или же вы решили совсем убрать загрузчик с целью экономии памяти и увеличения скорости загрузки, тогда вместо загрузчика заливается ваша программа по нулевому адресу.
Что для этого нужно
- Недорогой программатор USBASP
- Стандартные проводочки для подключения модулей к платам Arduino
- Драйвер USBASP (если программировать по Windows)
- Среда разработки Arduino IDE
Подключение
Все Arduino имеющие 6-пиновый IСSP разъем подключаются к программатору через такой переходник
Arduino Pro Mini ICSP на плате не имеет, поэтому подключаем проводками по следующей схеме
Подключаем программатор к USB компьютера, устанавливаем драйвер USBAsp (если он еще не установлен) и запускам среду Arduino IDE
Выбираем тип программатора USBASP
Выбираем тип контроллера. Если мы хотим просто восстановить загрузчик — выбираем Arduino Pro Mini 5В (или 3.3В в зависимости от платы). Если нам нужен OPTIBOOT без лишней головной боли — выбираем Arduino UNO
Затем жмем «Записать загрузчик»
Если все подключено и настроено правильно, то программатор довольно долго мигает лампочками.
Настройка параметров загрузчика
Последнее время применяю Aduino Pro Mini 5В с модулями NRF24L01+, требующих для питания 3.3В. Для питания таких плат от низкого напряжения нужно отключить во фьюзах контроль напряжения питания. Для этого открываем файл c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt и прописываем в нем характеристики желаемой прошивки:
atmega328_16.name=Atmega328_16 (3.3V, 16 MHz external)
atmega328_16.upload.protocol=arduino
atmega328_16.upload.maximum_size=32256
atmega328_16.upload.speed=115200
atmega328_16.bootloader.low_fuses=0xff
atmega328_16.bootloader.high_fuses=0xde
atmega328_16.bootloader.extended_fuses=0x07
atmega328_16.bootloader.path=optiboot
atmega328_16.bootloader.file=optiboot_atmega328.hex
atmega328_16.bootloader.unlock_bits=0x3F
atmega328_16.bootloader.lock_bits=0x0F
atmega328_16.build.mcu=atmega328p
atmega328_16.build.f_cpu=16000000L
atmega328_16.build.core=arduino
atmega328_16.build.variant=standard
1 |
atmega328_16.name=Atmega328_16(3.3V,16MHz external) atmega328_16.upload.protocol=arduino atmega328_16.upload.maximum_size=32256 atmega328_16.upload.speed=115200 atmega328_16.bootloader.low_fuses=0xff atmega328_16.bootloader.high_fuses=0xde atmega328_16.bootloader.extended_fuses=0x07 atmega328_16.bootloader.path=optiboot atmega328_16.bootloader.file=optiboot_atmega328.hex atmega328_16.bootloader.unlock_bits=0x3F atmega328_16.bootloader.lock_bits=0x0F atmega328_16.build.mcu=atmega328p atmega328_16.build.f_cpu=16000000L atmega328_16.build.core=arduino atmega328_16.build.variant=standard |
После этого шьем выбираем тип контроллера «Atmega328_16 (3.3V, 16 MHz external)» и пишем загрузчик.
Программируя «перешитый» Arduino Pro Mini через стандартный порт не нужно забывать устанавливать нужный тип контроллера
Posted in Arduino, Технологии | Метки: Arduino, ATMEGA328, USBASP
Настраиваем Arduino IDE
Запустить Arduino IDE, выбрать плату (Инструменты\плата\»ваша плата»). См. первый скриншот.
Выбрать порт: инструменты\порт\«COM отличный от COM1, например COM3, COM5…»
См. второй скриншот.Какой именно порт вы могли видеть при первом подключении Ардуино к компьютеру.
Примечание: если у вас только СОМ1 — значит либо не встали драйвера, либо сдохла плата.
Как пример — библиотека для дисплея на чипе TM1637, смотрите скриншот
В папке libraries должна появиться папка TM1637, в которой есть папка examples, и два файла с расширениями.h и.cpp . Эти два файла должны быть в каждой библиотеке.
Второй способ. Папка с библиотекой кладётся в папку со скетчем. Тогда скетч, использующий библиотеку, сможет ей пользоваться. Но для остальных скетчей эта библиотека будет недоступна!
Основные ошибки при прошивке Arduino (FAQ)
Ошибка компиляции
|
Ошибка загрузки
|
Характеристики платы
Техническая сторона Arduino Pro Mini:
- рабочее напряжение, требуемое для нормальной работоспособности – 3,3 и 5 Вольт;
- напряжение, используемое при входе – 3-12 или 5-12 Вольт;
- количество цифровых входов и выходов – 14 штук, 6 из которых эксплуатируются как выходы ШИМ;
- состояние постоянного тока, требуемого для входа и выхода – 40 мА;
- flash-память – 16 Кб, но 2 Кб предназначены для загрузчика;
- оперативная память – 1 Кб;
- eeprom – 512 байт;
- частота тактов – в первой модели 8 МГц, а во второй 16 МГц;
- Arduino pro включает i2c-интерфейс.
Также стоит отдельно сказать про размеры платы — они, на самом деле очень скромные. Многие кто знакомятся с линейкой Ардуино в первый раз всегда удивляются размерам, когда достают контроллер из коробки.
Ниже вы можете оценить плату в дюймах и в сантиметрах.
Прошивка arduino pro mini
Прошивка arduino pro mini
Миниатюрные размеры платы не позволяют прошить ее без внешней помощи. Есть несколько способов заливки скетча в микроконтроллер:
- Через адаптер USB в TTL;
- Через Ардуино Уно;
- Через SPI интерфейс с помощью любой платы ардуино с разъемом для подключения к компьютеру.
Самым простым методом является первый.
Прошивка через адаптер USB в TTL
В продаже можно найти специальный адаптер – UART переходник. Видов таких переходников много, стоимость каждого изделия невысокая. Советуется приобретать переходники с контактами RST или DTR, они упрощают процесс прошивки.
Для прошивки нужно подключить адаптер в Ардуино: нужно соединить земли с одного и другого устройства, Vcc – на +5В или +3,3 В (в зависимости от модели), RX – TX, TX – RX. Затем конструкцию нужно подключить к компьютеру, установить драйвер и начать прошивку. Компьютер определит, к какому порту подключена плата. Драйвер можно скачать с официального сайта. Скачанный архив нужно распаковать и установить.
Затем нужно запустить среду разработки Adruino IDE, выбрать нужную плату и номер порта и загрузить микропрограмму. Это делается следующим образом:
- Нажать «Загрузить»;
- Затем начнется компиляция – появится надпись «Компиляция скетча»;
После появление надписи «Загружаем» нужно нажать на плате кнопку Reset (в переходниках с RST или DTR нажимать кнопку не нужно).
Важно! Нажатие на Reset должно быть кратковременным.
Скетч будет загружен в микроконтроллер. Об успешном окончании процедуры можно понять по мигающему светодиоду.
Прошивка через Ардуино Уно
Для прошивки потребуется классическая плата Ардуино Уно в DIP корпусе. На ней должен быть специальный разъем, из которого нужно вытащить аккуратно микроконтроллер
Важно делать все действия внимательно, чтобы не погнуть ножки процессора
Проводами нужно подключить arduino pro mini к разъему. Как подключить контакты – RX-RX, TX-TX, GND-GND, 5V-VCC, RST-RST.
После подключения можно начать стандартную загрузку скетча через Arduino IDE.
Прошивка через SPI интерфейс
Этот способ является самым неудобным и трудоемким. Прошивание платы производится в 2 этапа:
Прошивка микроконтроллера Ардуино Уно как ISP программатора;
Настройка среды разработки и загрузка кода в Arduino Pro Mini.
Алгоритм проведения первого этапа:
- Запуск среды разработки Arduino IDE;
- Открытие «Файл» – «Примеры» – «11. ArduinoISP» – «ArduinoISP»;
- Далее «Инструменты» – «Плата» – «Ардуино уно»;
- «Инструменты» – «Порт», и выбирается нужный номер COM порта;
- Далее нужно произвести компиляцию и загрузить код в Ардуино Уно.
Затем обе платы нужно соединить проводниками по приведенной схеме: 5V – VCC, GND – GND, MOSI (11) – MOSI (11), MISO (12) – MISO (12), SCK (13) – SCK (13).
Теперь нужно настроить Arduino IDE для Arduino Pro Mini. Это делается следующим образом:
«Инструменты» – «Плата» – выбор нужной платы Arduino Pro Mini;
- В том же меню выбирается «Процессор» – выбор соответствующего процессора с нужной тактовой частотой;
- Затем нужно установить порт, к которому подключена плата;
- «Инструменты» – «Программатор» – Arduino as ISP;
- Затем нужно загрузить скетч через программатор.
Важно отметить, что загрузка кода должна происходить через специальное меню «загрузить через программатор». Здесь можно запутаться, потому такой способ и неудобен
Загрузка обычным способом приведет тому, что код зальется в Ардуино Уно.
После проведенной загрузки перепрошить микроконтроллер через переходник больше не получится. Придется заливать новый bootloader через «записать загрузчик».
Если при каком-либо виде загрузки прошивки возникают проблемы, нужно проверить подключение платы.
USB-TTL (UART)
Этот способ реализован прямо на платах Arduino при помощи USB-TTL (USB-UART) преобразователя, именно поэтому мы можем подключить плату к компьютеру и загрузить код. USB-TTL позволяет только загрузку данных во flash, остальные возможности (как у ISP программатора) ему недоступны. В то же время он ограничен только возможностями загрузчика, но в этом уроке мы рассматриваем только стандартные. Также USB-TTL мост позволяет микроконтроллеру общаться с компьютером по последовательному соединению (тот самый Serial и монитор com порта).
Есть платы без бортового USB-TTL, например Arduino Pro Mini. Для работы с ними нужно купить внешний USB-TTL преобразователь. Также загрузка прошивки через UART возможна и в “голый” микроконтроллер при условии наличия там загрузчика, который запишет принятый код во flash. Про запись загрузчика мы поговорим ниже.
UART “загружатор” подключается к пинам RX и TX Ардуино (или микроконтроллера), RX->TX и TX->RX, также обязательно подключается земля GND. Если у прошиваемой платы нет своего питания, то подключается и питание. Загрузчик отрабатывает при запуске МК, поэтому непосредственно перед загрузкой прошивки МК должен быть сброшен (перезагружен), и для этого на платах USB-UART есть вывод DTR (Data Terminal Ready), который подключается к пину RST Reset и собственно выполняет сброс перед перед загрузкой прошивки. На платах Pro Mini есть отдельный пин DTR.
USB-TTL | Arduino |
DTR | DTR |
RX | TX |
TX | RX |
GND | GND |
VCC/5V/3.3V | VCC |
Китайцы выпускают USB-TTL модули в широком ассортименте, но в целом они все одинаковые по своей сути. Ссылка на результат поиска на aliexpress, и ссылка на все USB-TTL в моём любимом магазине WAVGAT. Что использую я? В основном платку на CP2102. Перед заказом модуля обязательно убедитесь в том, что у него есть выход DTR, иначе этот модуль можно будет использовать только для “общения” с контроллером через COM порт.
Для работы с таким преобразователем нужно установить драйвер для чипа, на базе которого собран модуль, это может быть CP2102, CH340/341, FT232, PL2303 и другие. Прошивка загружается как обычно: выбираем порт, на котором сидит преобразователь, версию загрузчика и жмём загрузить, всё! Важный момент: на некоторых китайских версиях плат Arduino Pro Mini не распаян пин DTR, т.е. он не идёт на RST и автоматический сброс перед загрузкой прошивки не выполняется. В этом случае сброс нужно производить вручную, кнопкой RST, непосредственно перед загрузкой прошивки…
Загрузка прошивки посредством загрузчика (bootloader) возможна с любого UART устройства, даже через Bluetooth. Но об этом мы поговорим в отдельном уроке.
Заключение
В этой статье мы рассмотрели различные аспекты загрузки скетчей в Arduino Uno и Nano. Прошивка плат на базе микроконтроллеров ATmega328 и ATmega256, как правило, не сложна и может выполняться одним нажатием кнопки в Arduino IDE. За эту простоту мы должны благодарить встроенную программу-загрузчик, выполняющую за нас все основные действия на низком уровне.
Еще одним вариантом перепрошивки контроллера является использование другой платы адуино или специальных программаторов, использующих микросхемы CP2102 CH340, FTDI и другие. Этот метод требует дополнительных усилий и затрат, но позволяет гибко изменять параметры прошивки. Какой из двух вариантов выбрать – решать вам. Для новичков, безусловно, первым шагом станет использование Arduino IDE, благо, ее создатели сделали все, чтобы упростить этот процесс.
И поговорим о том, как мы будем записывать прошивку в Arduino.
Нас, прежде всего, интересуют три платы Arduino:
— Arduino Uno
– как самый распространенный вариант
— Arduino Nano
– компактный вариант, удобный для применения в небольших конструкциях
— Arduino Pro Mini
– дешевый компактный вариант без встроенного USB-UART преобразователя (для работы с ним понадобится внешний USB-UART преобразователь), но удобный в случае применения сети устройств.
Во всех вышеописанных платах используется микроконтроллер ATmega328 (в более старых версиях ATmega168).
ArduinoUploader.zip — Программа для записи Hex-файла в Arduino
Как и предыдущая, программка имеет простой интерфейс.
Процесс прошивки тот же:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт
— жмем Upload
Программа при записи открывает дополнительные окна и визуально отображает свои действия, что позволяет следить за процессом записи.
Автоматизация ARP Uploader. ARP Uploader как и XLoader работает через AVR Dude, но, в отличие от XLoader, показывает командную строку. Это дает возможность использовать AVR Dude напрямую в Make или Bat файле.
Дополнительные материалы.Драйвера Arduino.
Считаю не лишним напомнить, что для связи Arduino с компьютером в последнем должны присутствовать драйвера. Оставляю здесь архив с драйверами для Arduino (включая и старые драйвера в Old_Arduino_Drivers.zip и драйвера для FTDI-чипа в папке «FTDI USB Drivers»
Arduino_drivers.zip — Драйвера для Arduino
Стали появляться недорогие китайские Ардуины с драйвером CH340GDriver CH340G.zip — Драйвер для преобразователя USB-UART
Загрузчики Arduino
Если Вы решите собрать свою плату Arduino (а сложного там ничего нет, фактически, это голый ATmega328 или ATmega168), Вам понадобится загрузчик Bootloader который должен содержать МК для работы со средой (или программками для заливки Hex-файлов). Конечно, Вам для записи Hex-файлов в чистый МК понадобится программатор и придется выставить фьюзы.
ATmegaBOOT_168_atmega328.hex — Bootloader для ATmega328
Для правильной работы нужно установить фьюзы следующим образом Low: FF High: DA Ext: 05
Здесь можно скачать прошивку для ЧПУ на Ардуино. Все прошивки написаны в IDE Arduino.