Самостоятельная перепрошивка Arduino Pro Mini. Программирование Arduino Pro-mini.

Когда меня спрашивают: "Хочу научится программировать микроконтроллеры, с чего начать, что купить?", то с моей точки зрения ответ однозначен: "Покупаем Arduino Pro Mini и пробуем, если все получается - переходим к более сложным вещам".

Что такое Ардуино

Несмотря на название раздела не буду рассказывать, что такое Ардуино и откуда оно взялось, так как привел в свое время неплохую статью об этом - . Просто вспомним, что под понятием Ардуино обычно понимают совокупность трех вещей: платы или платформы Arduino (в данном случае Arduino Pro Mini), среды разработки Arduino IDE и языка программирования C++ с набором специальных библиотек. Любую из этих трех вещей мы можем подменить на аналог, но об этом мы поговорим позже. А пока просто скачаем Arduino IDE с официального сайта - www.arduino.cc/en/Main/Software и установим его на компьютер.

Что же мы купили?

Если мы все купили правильно, то перед собой мы увидим две платки

Верхняя плата - это собственно и есть Arduino Pro Mini, нижняя - USB-UART / USB-TTL конвертер
Последний может выглядеть не так, как на фото, а иметь вид готового кабеля.

(Лично я советовал бы выбрать первый вариант, но это как говорится на вкус и цвет …)

Теперь о плате/платформе Arduino Pro Mini: Конструктивно она представляет собой плату с распаянным на ней микроконтролером, кнопкой RESET, микросхемой питания и прочей, не существенной для нас на данном этапе, периферией.
Существует две версии Pro Mini: одна работает от 3.3В при частоте 8 МГц, другая - от 5В при 16 МГц. В основе платы лежит микроконтроллер Atmega 168 или Atmega 328 - отличие между ними заключается в объеме внутрисистемно программируемой Flash памяти - 16 или 32 кБайта. Это так называемая "память программ", т.е. память в которую будет записана программа и содержимое ее не будет изменятся в процессе работы. Напомню, что Atmega построен по так называемой Гарвардской архитектуре () в которой "память программ" и "память данных" реализованы отдельно, для большего быстродействия и надежности. "Память данных" делится на 2 части: оперативную SRAM, которая что у 168, что у 328 составляет 1 Кб, и постоянную EEPROM (Electrically Erasable Programmable Read-Only Memory) объемом 512 байт, данные из которой не "теряются" при отключении питания.
В зависимости от исполнения на плате может быть 30, 32 или 34 вывода (PIN). На картинке ниже показана"максимальный" 34 пиновый вариант


Посмотрели? Страшно? Давайте разберемся что где.
GND - это у нас выводы куда подключается "земляные" провода, т.е. приходит/выводится "-" питания
VCC - плюсовые выводы для питания платы напряжением 5В (иногда 3,3В). Таке этот вывод моно использовать для подачу "наружу" опорного напряжение для цифровых входов.
RAW - вывод используется, если у нас нет стабилизированного напряжения 5В, но есть постоянное в диапазоне от 7 до 12В. Иногда указывают максимальное значение 30В - т.е. то напряжение которое микросхема питания может выдержать непродолжительное время не перегреваясь.
Помним, что в автомобиле диапазон напряжений от 12 до 15,5В, поэтому подключать RAW к "+" авто напрямую нельзя и нужно собрать схему по питанию следующего вида:


В принципе, заменив микросхему 7812 на 7805, можно питать Pro Mini и через вывод VCC

TXD и RXD - выводы UART/USART -
RST - он же RESET - в мануале написано насчет него написано следующее "низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino". На деле это означает что когда этот вывод подключается к земле, происходит перезапуск (сброс) Arduino Pro Mini.
Выводы обозначенные на плате цифрами с 2 до 13 - цифровые выводы (Обязательно читаем - ), могут настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Они могут выводить значения только высокого (3,3В или 5В в зависимости от версии) или низкого (0В) уровня. Некоторое из них обозначенные на схеме выше как PWM могут выводить ШИМ сигнал () с разрешением 8 бит (от 0 до 255)
Выводы А0-А7 - аналоговые входы с 10 битным АЦП (). В зависимости от исполнения платы их может быть от 4 до 8. Эти выводы могут также работать как цифровые.
DTR (Data Terminal Ready) - Готовность приемника данных.

Некоторые из описанных выводов могут выполнять намного больше функций, что видно из схемы, но об этом мы поговорим позже, по мере того как будем использовать эти функции.

Подключаемся

Схема подключения достаточно простая и ошибиться достаточно сложно



Единственное что посоветую использовать не идущие в комплекте провода, а купить разъем питания на 6 контактов с шагом контактов 2,54мм. Он называется NS25 - 2,54 мм и такой же на 5 контактов для подключения к USB-UART / USB-TTL конвертеру.

После подключения у меня получилось так


Можно выпаять гребенку на конвертере и припаяться проводами непосредственно к плате - это позволит отказаться от одного из разьемных соединений и защитить конвертер, одев на него термоусадку.

Как видно используется только по 4 провода - это связано с тем, что у меня на обоих конвертерах нет вывода DTR

Что такое DTR и что делать если его нет?

Данный вывод предназначен для того, чтобы USB-serial контроллер Arduino перезагружал МК каждый раз, когда терминальная программа (в т.ч. Serial monitor, встроенный в ПО Arduino IDE) устанавливает соединение. Реализовано это следующим образом: у USB-serial контроллера вывод DTR (Data Terminal Ready) связан с выводом RESET. Если программа, работающая с виртуальным последовательным портом, использует DTR, то при установке соединения МК перезагружается.
Само по себе это обеспечивает беспроблемную загрузку скетча из Arduino IDE - МК перезагружается перед загрузкой кода. В этом смысле автоматическая перезагрузка облегчает жизнь. Кроме того, перезагрузка при подключении терминала тоже может оказаться удобной, т.к. довольно много скетчей выводят какую-то полезную информацию через последовательный порт, при этом скетч выполняется сразу после загрузки в МК, когда терминал еще не подключен (т.к. недавно порт был занят), так что увидеть вывод скетча в первые секунды его работы было бы нельзя. Перезагрузка в момент подключения терминала позволяет получить весь вывод, начиная с момента загрузки МК.
В случае, если этот вывод отсутствует, то у нас есть 3 варианта
1) Купить другой конвертер:)
2) Распаять вывод самому. (Как это сделать написано здесь - new-tech.in.ua/tips/109-usb-uart-converter)
3) Отправлять на перезагрузку вручную при помощи кнопки RESET расположенной на плате - об этом ниже.

Подключаем плату к компьютеру

Я не буду рассказывать как устанавливать драйвера конвертера и Arduino IDE - все достаточно стандартно.
Если все сделали правильно, то при подключении конвертера в системе появится виртуальный СОМ - порт. Это легко увидеть:


На правой картинке появляется дополнительный порт СОМ10 (у вас номер может быть другим) - его нужно выбрать, клацнув по нему мышкой.
Далее проверяем правильность указания платы, программатора - все должно быть как на картинке выше.
Указываем микроконтроллер 168 или 328, 5В или 3,3В


Почувствуем себя программистами

Попробуем залить простейшую программу. Для этого воспользуемся библиотекой примеров и тем, что у нас на самой плате на 13 выводе припаян светодиод. Скорее всего программа мигания этим светодиодом будет загружена в качестве тестовой, но мы все равно загрузим свою:). Находится этот пример тут:

Листинг программы:

//Процедура инициализации
void setup() {
// инициализируем вывод 13 на вывод.
pinMode(13, OUTPUT);
}

// Основное тело программы
void loop() {
digitalWrite(13, HIGH); // включаем светодиод (Подаем сигнал высокого уровня на вывод 13)
delay(500); // ждем 500 милисекунд (в стандартном примере 1000, что означает одну секунду)
digitalWrite(13, LOW); // выключаем светодиод (Подаем сигнал низкого уровня на вывод 13)
delay(500); // ждем 500 милисекунд после чего идем опять в начало основной программы
}

Данная программа будет выполняться по кругу пока включен микроконтроллер.

"Заливаем" программу

Тут все просто - нажимаем на кнопочку "вгрузить"


Если вывод DTR не подключен, то нажимаем на плате кнопку RESET и не отпускаем пока внизу окна Arduino IDE не появится надпись "вгружаем" - этот момент важно не пропустить, иначе микроконтроллер не будет своевременно перезагружен и заливка программы не состоится. Если DTR подключен, то просто ждем

Для создания "радиолюбительских микроконтроллерных поделок" я иногда использую сравнительно недорогие модули Evolution Light SEM0010M из магазина Ekits.ru . Модуль не представляет собой чего-то выдающегося: на небольшой макетной плате распаяна Atmel-овская Mega (существуют разные варианты), к ней приделан кварцевый резонатор и... все! больше ничего нет! если не считать разъема для внутрисхемного программирования ISP. В общем-то, очень удобно - не надо паять мелкий многовыводный корпус, заботиться о подключении программатора, искать плату для распайки периферии... И среда программирования Algorithm Builder очень удобна для создания не слишком увесистых программ.

Все хорошо, но "жаба душила": жаль 250 рублей за "это чудо". Раз связавшись с Aliexpress , решил посмотреть - а нет ли чего подобного у более технологично развитых юго-восточных соседей? И нашел - среди многочисленного семейства клонов Arduino дешевизной выделяется маленькая плата Arduino Pro Mini . Цена примерно в полтора-два раза дешевле, однокристалка - существенно мощнее. Кроме кварца есть кое-какая индикация, стабилизатор напряжения, кнопка сброса!!! И, главное, поддержка сообществом Arduino! Без минусов, конечно, не обойтись - нет места для установки периферии и, что не слишком существенно, очень долгая доставка - до двух месяцев...
В-общем, для пробы, за те же 250 рублей я заказал наборчик (на фото слева), состоящий из платы контроллера и моста USB-UART bridge для программирования ардуины. В вышеозначенном магазине такой набор звучит примерно так: CP2102 Module + Pro Mini Module Atmega328 5V 16MHZ For Arduino. Параметры набора продавец описывает следующим образом:

CP2102 Module Description:

Name: CP2102, USB to TTL Module
Baud Rate Range: 300-1Mbps
Control chip: CP2102
Working voltage: 4V-5.25V
Support: Windows 98SE, 2000, XP, Vista, Window7, Mac OS 9, Mac OS X & Linux 2.40
Output voltage: Dual voltage output (3.3V and 5V)
Output indicator: Power indicator, TXD indicator
Output current: 100mA (with current limiting protection)
6 Pins for: RST TXD RXD GND 5V 3.3V

Pro Mini description:

1.14 Digital input / output ports RX, TX D13, D2 ~~ of,
2 or 8 analog input port A0 to A7
3. The TTL level serial transceiver port RX / TX
4.6 PWM ports, D3, D5 , D6, D9, D10, D11 . Using Atmel Atmega328P-AU microcontroller supports serial download
7. Support for external 5V ~ 12V DC power supply
8. Support 9V battery-powered the
9 clock frequency 16MHz
10. Dimensions: 33.3 * 18.0 (mm)

Получив посылку, изучение наборчика я начал с CP2102 Module, т.к. тут и паять ничего не нужно - воткнул в USB порт и "любуйся" результатом. Мост "в миг" обнаруживается системой и устанавливается (с помощью соответствующего драйвера) как Silicon Labs CP210x USB to UART Bridge (COM9) (ну, номер порта - кому как повезет...) Позднее этот модуль у меня прописался и на других машинах: и на Windows XP, и на Windows 7 Starter (!). Поиграв с модулем (игрушки как-нибудь опишу в другом разделе...), решил я заняться делом и посмотреть - как себя ведет с этим модулем Pro mini.
Подключил по вполне логичной, на мой взгляд, схеме:

Нынешний путь "ленивого радиоинженера" - лезем в интернет и... обнаруживаем: такая проблема встречается у многих. Предлагается масса путей ее решения, но единого внятного метода - нет! Придется идти своим путем. Пробуем:

  • Изменяем скорость обмена в файле "C:\Program Files\Arduino\hardware\arduino\boards.txt" (раздел "Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328", параметр "pro5v328.upload.speed=57600" (из ряда 9600, 14400, 19200, 28800, 38400, 57600, 115200) - ну как же без этого...
  • Смена сигналов Rx - Tx - меняем провода местами - ведь восточные друзья "могли напутать"
  • Нажимаем кнопку Reset в разные моменты, а так же пробуем подключить пятый провод между GRN и RST (вроде бы сброс должен автоматом проходить)
  • Подключаем Pro mini к UNO без ATMega328 - пытаемся заменить мост USB - UART на тот, что стоит на Arduino UNO
Того, что нам надо - нормальная работа Bootloader в Pro mini при заливке скетча - не получаем. Упорно выдается все тоже сообщение, а светодиод на Pro mini "ехидно подмигивает одиночными вспышками". Но, нет худа без добра, получаем некий полезный результат...

Программирование Pro mini через UNO при изъятой "меге" из платы UNO

Контакты Arduino UNO R3
GND
5V
TX (1)
RX (0)
RESET

Контакты Arduino Pro mini
GND
VCC
TX
RX
RST

При таком соединении плат (микросхему контроллера, конечно, из платы UNO надо убрать), в Arduino 1.0.5 выбираем Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328, портСОМ8 (тот что в диспетчере соответствует Arduino), скорость (см boards.txt) оставляем "изначальную" 57600 - программирование скетча проходит без проблем! Убеждаемся, что скорость в Pro mini "прошита" 57600, а не как везде написано 19200 или 9600! Уже хорошо - найден хоть какой-то метод заливки скетча!

Проверка/Оформление/Редактирование: Мякишев Е.А.

Черновик


Arduino Pro Mini

Arduino Pro Mini – это микроконтроллерный модуль на базе чипа ATmega328 . У него 14 цифровых I/O контактов (из которых 6 можно использовать для ШИМ ), 6 налоговых контактов , встроенный резонатор, кнопка сброса и отверстия для крепежа гребешков с контактами. Чтобы подать на модуль питание или организовать коммуникацию через USB , его 6-контактный гребешок можно подключить к FTDI -кабелю или макетной плате Sparkfun .

Модуль Arduino Pro Mini предназначен для полустационарного использования. У него нет предустановленных гребешков, что позволяет использовать разные типы коннекторов и припаивать провода напрямую.

Распиновка Arduino Pro Mini совместима с Arduino Mini .

Arduino Pro Mini предлагается в двух версиях. Одна работает на 3,3 вольтах и с частотой 8 МГц , а вторая – на 5 вольтах и с частотой 16 МГц .

Кроме того, Arduino Pro Mini была разработана и выпускается компанией Sparkfun Electronics . Информацию о гарантии можно почитать .

Входные и выходные контакты

Любой из 14 цифровых контактов Pro Mini можно использовать и в качестве входного, и в качестве выходного контакта – при помощи функций pinMode() , digitalWrite() и digitalRead() . Они оперируют на 3,3 и 5 вольтах (в зависимости от модели). Каждый контакт может получать/отдавать не более 40 миллиампер и оснащен встроенным подтягивающим резистором (по умолчанию отключен) номиналом 20-50 кОм .

Кроме того, некоторые контакты могут выполнять специальные функции:

  • Последовательная передача данных : 0-ой (RX) и 1-ый (TX) контакты. Используются для получения (RX ) и передачи (TX ) последовательных TTL -данных. Эти контакты подключены к контактам TX-0 и RX-1 на 6-контактном гребешке .
  • Внешние прерывания : 2-ой и 3-ий контакты. Эти контакты можно настроить на запуск прерывания при переключении на значение LOW , нарастающем/убывающем фронте импульса или изменении значения. Более подробно читайте в статье о функции attachInterrupt() .
  • ШИМ : 3-ий , 5-ый , 6-ой , 9-ый , 10-ый и 11-ый контакты. Эти контакты обеспечивают 8-битную ШИМ при помощи функции analogWrite() .
  • Интерфейс SPI : 10-ый (SS) , 11-ый (MOSI) , 12-ый (MISO) и 13-ый (SCK) контакты. Они поддерживают SPI -коммуникацию, обеспечиваемую оборудованием самой Arduino , но не языком Arduino .
  • Встроенный светодиод : 13-ый контакт . Это светодиод, по умолчанию встроенный в плату Arduino и управляемый 13-ым цифровым контактом . Если на этот контакт подано значение HIGH , то светодиод включится, а если LOW , то выключится.
  • Интерфейс I2C : A4 (SDA) и A5 (SCL) контакты. Они поддерживают TWI -коммуникацию (I2C -коммуникацию) при помощи библиотеки Wire .
  • Reset : если подать на эту линию LOW , это сбросит микроконтроллер. Как правило, используется, чтобы добавить на «шилд» кнопку сброса, т.к. подключение «шилда» к плате блокирует кнопку сброса на самой плате.

Кроме того, модуль Arduino Pro Mini оснащен 8 входными аналоговыми контактами , каждый из которых имеет 10-битное разрешение (т.е. позволяют работать с данными в диапазоне от 1 до 1024 ). Четыре из них расположены на гребешках на краю модуля, а два (4-ый и 5-ый ) – в отверстиях во внутренней части модуля. По умолчанию вольтовой диапазон в них составляет от Vcc до GND .

Коммуникация

На Arduino Pro Mini есть множество средств для коммуникации с компьютером, а также другими платами Arduino и микроконтроллерами. Во-первых, чип ATmega328 может общаться через последовательную коммуникацию UART TTL , доступную на 0-ом (RX) и 1-ом (TX) цифровых контактах. В IDE Arduino есть монитор порта, позволяющий отправлять и получать через USB -соединение текстовые данные – как от самой платы, так и на нее.

Для последовательной коммуникации через любой из цифровых контактов Arduino Pro Mini используйте библиотеку SoftwareSerial . Чип ATmega328 также поддерживает коммуникацию через интерфейсы I2C (TWI) и SPI . Чтобы упростить использование шины I2C , IDE Arduino использует библиотеку Wire ; подробнее о ней читайте).

Впрочем, загрузчик можно обойти и программировать ATmega328 при помощи аппаратного программатора. Инструкции читайте .

Автоматический (программный) сброс

Если вы хотите загрузить на Arduino Pro Mini новый скетч, для этого необязательно нажимать кнопку сброса вручную. Эта модель устроена таким образом, что позволяет выполнить сброс при помощи ПО , которое запущено на компьютере, подключенном к Arduino . Один из шести контактов на 6-контактном гребешке подключен (через 100-нанофарадный конденсатор ) к линии сброса ATmega328 . Этот контакт подключается к одной из аппаратных линий конвертера USB-Serial , отвечающих за управление потоками и подключенных к гребешку: при использовании FTDI -кабеля это RTS , при использовании макетной платы Sparkfun это DTR . Когда эта линия получает значение LOW , значение на линии RESET падает настолько, что этого хватает для сброса чипа.

IDE Arduino использует эту возможность, чтобы позволить вам загружать код простым нажатием на кнопку загрузки, находящуюся на панели инструментов. Это значит, что у загрузчика будет более короткий таймаут, поскольку передачу на Reset -линию значения LOW можно привязать к началу загрузки.

Эта система влияет на работу Pro Mini и в другом. Когда Pro Mini подключена к компьютеру на Mac OS X или Linux , то сбрасывается каждый раз при настройке соединения между нею и программой (через USB ). Следующие полсекунды на Pro Mini выполняется запуск загрузчика. Хотя Pro Mini запрограммирована на игнорирование дефектных данных (то есть всего, что не имеет отношение к загрузке нового кода), она все же перехватит несколько байт, отправленных ей после открытия соединения.

Таким образом, если первом запуске скетча плата получает разовую конфигурацию или другие данные, сделайте так, чтобы программа, с которой он коммуницирует, перед отправкой этих данных подождала примерно секунду.

Физические характеристики

Размеры Arduino Pro Mini составляют примерно 1,77 на 3,3 см .

После приобретения платы Ардуино Про Мини некоторые пользователи сталкиваются с проблемой прошивки, так как, чтобы прошить эту плату , необходимо купить ещё специальный программатор. В связи с этим, вы заинтересуетесь, как можно прошить плату без программатора? К счастью, сделать это достаточно просто. В этой статье подробно рассмотрим, как прошить или перепрошить Arduino Pro Mini. Давайте разбираться. Поехали!

Для перепрошивки вам понадобится Ардуино Uno. Первым делом нужно соединить GND с землёй, UCC - с плюсом, RXI и NX0 с такими же входами на Uno, а GRN - с reset. Лучше всего будет подать трёхвольтное напряжение. При подаче питания на плате загорится красный индикатор. Не забудьте предварительно достать из Uno контроллер ATMEGA.

Теперь необходимо подключить плату к компьютеру. Затем запустите на своём ПК Sketch. Находясь в главном окне утилиты, откройте меню «Файл» и нажмите на пункт «Примеры», далее наведите курсор на раздел «Basics» и в появившемся списке нажмите «Blink». После этого перейдите к верхней панели и откройте меню «Сервис». Выберите в нём пункт «Плата». В списке плат необходимо будет отметить строку «Arduino Pro Mini (5V, 16MHz) w/ATmega328» вместо той, что отмечена по умолчанию. Также не забудьте указать в настройках необходимый com-порт.


Затем нажмите кнопку «Загрузить» в программе. Как только в нижней строке появится слово «загрузка», нажмите на плате «reset». На экране вы увидите сообщение о том, что загрузка завершена. Готово. Перепрошивка успешно выполнена.

Теперь рассмотрим, как сделать то же самое, только через Nano. Откройте Sketch и перейдите в меню «Файл», выберите раздел «Образцы». В появившемся списке кликните по «ArduinoISP». Затем нужно зайти в «Инструменты», выбрать пункт «Плата» и отметить «Arduino Nano».

Выполните прошивку Nano с помощью скетча ArduinoISP. Проверьте скорость порта в функции setup. Именно такой будет скорость во время прошивки Pro Mini. В стандартном Sketch скорость равна 19200.

Подготовив Nano, приступайте к сборке breadboard, чтобы перепрошить Про Мини. Подключите +5V к Vcc, GND соедините с таким же входом, D10 с RST, а D11, D12 и D13 с аналогичными входами на Pro Mini.


Теперь необходимо подключить Nano к ПК. Прежде чем приступить к перепрошивке, убедитесь, что у вас используются равные скорости порта, ориентируясь на скорость из Sketch. Отыщите текстовый файл «boards» в папке «arduino». Открыв его, найдите строку:

pro5v328.name=Arduino Pro Mini (5V, 16 MHz) w/ ATmega328

Если вы используете другую версию , выберите соответствующую. Проверьте заданную скорость. Также следует проверить настройки в текстовом файле «programmers».

Если с настройками всё в порядке, запустите/перезапустите IDE. После этого перейдите в меню «Инструменты» и укажите плату, которую нужно прошить вместе с типом программатора «Arduino as ISP».

На следующем шаге нужно открыть раздел «Файл» и кликнуть по пункту «Вгрузить через программатор». Так же, как и в вышерассмотренном случае, необходимо нажать на плате кнопку «reset», чтобы успешно выполнить перепрошивку. Всё. Готово.

Теперь вы будете знать, как можно прошить или перепрошить Ардуино Pro Mini без специального программатора. Пишите в комментариях была ли полезной для вас эта статья, рассказывайте другим пользователям о своём опыте прошивки Ардуино, и задавайте любые интересующие вопросы по рассмотренной теме.

В жизни начинающего ардуинщика рано или поздно наступает момент, когда хочется сэкономить на размере своего изделия, не жертвуя при этом функциональностью. И тогда Arduino Pro Mini - отличное для этого решение! За счёт того, что у этой платы отсутствует встроенный USB-разъём, она в полтора раза меньше Arduini Nano. Но для того, чтобы её запрограммировать, придётся приобрести дополнительный - внешний - USB-программатор. О том, как «залить» написанную программу в память микроконтроллера и заставить Arduino Pro Mini работать, и пойдёт речь в этой статье.

Инструкция по порядку программирования Arduino Pro Mini программатором

Вам понадобится

  • Arduino Pro Mini;
  • USBasp-программатор;
  • компьютер;
  • соединительные провода.

1 Программатор для Arduino

Сначала пара слов о самом программаторе. Купить такой можно за 2 доллара в любом китайском интернет-магазине.

  • Разъём типа USB-A используется, понятно, для подключения программатора к компьютеру.
  • ISP-соединитель нужен для подключения к программируемой плате.
  • Джампер JP1 контролирует напряжение на выводе VCC ISP-коннектора. Оно может быть 3,3 В или 5 В. Если целевое программируемое устройство имеет собственный источник питания, нужно убрать перемычку.
  • Джампер JP2 используется для перепрошивки самого программатора; в данной статье этот вопрос не рассматривается.
  • Перемычка JP3 нужна, если тактовая частота целевого устройства ниже 1,5 МГц.
  • Светодиоды показывают: G - питание подаётся на программатор, R - программатор соединён с целевым устройством.

2 Установка драйвера для программатора

Подключим программатор к USB-порту компьютера. Скорее всего, через какое-то небольшое время операционная система сообщит, что ей не удалось найти драйвер для данного устройства.



В этом случае скачаем драйвер для программатора с официального сайта . Распакуем архив и установим драйвер стандартным способом. В диспетчере устройств должен появиться программатор USBasp. Теперь программатор готов к работе. Отключаем его от компьютера.



3 Схема подключения Arduino к программатору

Соединяем ISP-разъём программатора с выводами на Arduino Pro Mini согласно приведённой схеме.