Как прошить arduino

Введение в Arduino Pro Mini

  • Arduino Pro Mini — это компактная, малогабаритная плата разработки оснащенная микроконтроллером Atmega328, встроенным в плату.
  • Плата имеет 14 контактов цифрового ввода/вывода , 6 из которых можно использовать в качестве выводов ШИМ .
  • Также у Arduino Pro Mini имеются 8 аналоговых выводов
  • Arduino Pro Mini значительно меньше Arduino Uno. Размеры платы Arduino Pro Mini — 18 мм х 33мм.
  • В зависимости от рабочего напряжения Arduino Pro Mini бывает двух типов:
  1. Рабочее напряжение: 5,0 В, кварцевый генератор: 16 МГц, регулятор напряжения: KB33.
  2. Рабочее напряжение: 3,3 В, кварцевый генератор: 8 МГц, регулятор напряжения: KB50.
  • Чтобы добиться минимального размера платы пришлось пожертвовать USB-портом и встроенным программатором.
  • Для написания и загрузки программного кода (скетча) используется официальное программное обеспечение Arduino под названием Arduino IDE (Integrated Drive Electronics — интегрированная среда разработки).
  • Arduino Pro Mini также имеет кнопку сброса и встроенный небольшой светодиод, который подключен к контакту номер 13.

Прошивка 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.

То есть следующим образом:

У меня получилось примерно так:

После того как все собрано и проверено можно подключить 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, подождать пару секунд и плата успешно прошъется.

Перепрошиваем 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 без использования какого-либо внешнего программатора.

Последовательный порт уже используется (Serial Port Already in Use)

Одна из самых простых проблем для решения. Она обычно происходит когда вы пытаетесь загрузить код программы в плату Arduino в то время когда открыто окно монитора последовательной связи (serial monitor) (но эта проблема в последних версиях Arduino IDE уже устранена) или вы пытаетесь его открыть во время обмена информацией между Arduino IDE и платой Arduino, или вы пытаетесь в это время использовать этот же самый COM порт для связи с другим устройством. То есть данная проблема возникает тогда, когда вы пытаетесь использовать последовательный порт одновременно для двух вещей.

Решение

Когда вы хотите загрузить программу в плату Arduino с помощью Arduino IDE, просто закройте (остановите работу) всех программ/приложений, которые в это же самое время могут использовать данный последовательный порт. Если в каких то программах вы не уверены, то отключите и снова подсоедините плату Arduino к компьютеру.

Что такое «прошить» и «прошивка»?

Давайте первым делом определимся, что означает слово «прошить»?  Думаю, вы часто слышали такие словосочетания, как «прошить телефон», «слетела прошивка», «кривая прошивка» и тд.  А что такое «прошивка»?

Прошивка — это грубо говоря, операционная система для маленьких устройств, таких как мобильный телефон, MP3-плеер, цифровой фотоаппарат и тд. То есть это  небольшая программка, которая управляет этим устройством. Также часто можно услышать и такое:» У меня «глючит» сотовый телефон, его надо срочно «перепрошить«.

В данном случае это означает, что надо заново установить операционную систему на мобильный телефон. Значит, «прошить МК»  означает закачать во внутрь него программу, которая бы управляла этим МК, а МК уже управлял бы каким-нибудь устройством.  То есть по идее, МК — это посредник между программой и каким-либо устройством, которым надо управлять ;-)

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

Любой из 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 IDE

Запустить Arduino IDE, выбрать плату (Инструменты\плата\»ваша плата»). См. первый скриншот.

Выбрать порт: инструменты\порт\«COM отличный от COM1, например COM3, COM5…» См. второй скриншот. Какой именно порт вы могли видеть при первом подключении Ардуино к компьютеру.Примечание: если у вас только СОМ1 — значит либо не встали драйвера, либо сдохла плата.

Готовые прошивки просто открываются двойным кликом

Чтобы загрузить прошивку, жмите кнопку ЗАГРУЗИТЬ на верхней панели инструментов, она в виде стрелочки.ВНИМАНИЕ, СОВЕТ! В ПУТИ К ПАПКЕ СО СКАЧАННЫМИ СКЕТЧАМИ НЕ ДОЛЖНО БЫТЬ РУССКИХ БУКВ! СОЗДАЙТЕ В КОРНЕ ДИСКА ПАПКУ ARDUINO, И РАБОТАЙТЕ В НЕЙ!

ВНИМАНИЕ, СОВЕТ! КАК ТОЛЬКО ДОСТАНЕТЕ ARDUINO ИЗ ПАКЕТИКА, СРАЗУ ПРОШЕЙТЕ В НЕЁ СКЕТЧ С МИГАНИЕМ СВЕТОДИОДА (blink.ino)Таким образом вы узнаете, что Ардуина изначально рабочая (на тот случай, когда после сборки/пайки она перестанет работать и прошиваться), то есть вы сами её сломали, а не она была изначально бракованная =)

Как установить библиотеку на Arduino
Допустим, скачали библиотеку. Её нужно разархивировать и положить в папку:
C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
C:\Program Files\Arduino\libraries\ (Windows x86)

Как пример — библиотека для дисплея на чипе TM1637, смотрите скриншот

В папке libraries должна появиться папка TM1637, в которой есть папка examples, и два файла с расширениями .h и .cpp . Эти два файла должны быть в каждой библиотеке.

Второй способ. Папка с библиотекой кладётся в папку со скетчем. Тогда скетч, использующий библиотеку, сможет ей пользоваться. Но для остальных скетчей эта библиотека будет недоступна!
 

Основные ошибки при прошивке Arduino (FAQ)

Ошибка компиляции

Возникает на этапе сборки и компиляции прошивки, ошибки компиляции вызваны проблемами в коде прошивки, то есть проблема сугубо софтварная. Слева от кнопки «загрузить» есть кнопка с галочкой — проверка. Во время проверки производится компиляция прошивки и выявляются ошибки, если таковые имеются. Ардуино в этом случае может быть вообще не подключена к компьютеру.

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текстошибки.
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием «название файла» no such file or directory. Это означает, что в скетче используется библиотека «название файла», и нужно положить её в Program Files/Arduino/libraries. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки можно поискать в гугле по «название файла».
  • При использовании каких-то особых методов и функций ошибкой может стать неправильно выбранная плата в «Инструменты/плата«.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк.

Ошибка загрузки

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

  • USB кабель, которым подключается Arduino, должен быть Data кабелем. Существуют кабели, предназначенные только для зарядки, у них внутри 2 провода. Data кабель имеет 4 провода, два из которых нужны для передачи данных.
  • Причиной ошибки загрузки являются неустановленные/криво установленные драйвера CH340, если у вас китайская NANO.
  • Также будет ошибка, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет — читай два пункта над этим, либо попробуй другой USB порт, или вообще другой компьютер.
  • Большинство проблем при загрузке, вызванных «зависанием» ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляется USB и прошиваем.
  • Если в описании ошибки встречается слово averdude или bootloader is not responding — с вероятностью 95% сдох загрузчик, например при случайном коротком замыкании провода на плату. Оставшиеся 5% — загрузчик «слетел», и его можно прошить заново программатором или другой Ардуиной. Подробнее об этом можно почитать в гугле по «как перепрошить загрузчик на Ардуино«.

 

Проверка

После прошивки нужно проверить работоспособность модуля. Для взаимодействия с ним можно использовать Terminal 1.9b или монитор порта из Arduino IDE. По умолчанию у модуля скорость передачи данных 9600 бод, 8 бит данных, без бита четности (N — Not) с 1 стоп-битом. Если в программе терминал стоит галочка напротив CR & LF или NL & CR (возврат каретки и начало новой строки), то её надо снять, символы в командах указывать не нужно.

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

Для проверки связи с модулем можно использовать тест команду AT, на что модуль должен ответить OK. Получить имя устройства — AT+NAME?, значение по умолчанию: HMSoft.

Перепрошивка Айпада через компьютер пошагово

Стандартный способ переустановки операционной системы — через компьютер с использованием программы iTunes.

Из-за того что iOS закрытая система и предназначена лишь для узкого круга мобильных устройств, прошить аппараты от Apple намного проще, чем Android-девайсы. Поэтому сделать это можно в домашних условиях будучи обычным пользователем.

Перед тем, как перепрошить гаджет, надо ознакомиться с моделями Айпада и последними версиями операционной системы для них:

  • iPad 1 — прошивка iOS 5.1.1;
  • Айпад 2 — iOS 9.3.5;
  • iPad 3 — iOS 9.3.5;
  • iPad 4 — iOS 10.3.3;
  • Айпад мини 1 — iOS 9.3.5;
  • iPad mini 2 — iOS 12.2;
  • iPad mini 3 — iOS 12.2;
  • iPad mini 4 — iOS 12.2;
  • iPad Air 1 — iOS 12.2;
  • iPad Air 2 — iOS 12.2;
  • iPad Air 2 — iOS 12.2.

Все остальные модели поддерживают новые и будущие версии прошивки.

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

Чтобы перепрошить iPad, нужно подсоединить его к компьютеру через USB-провод. При этом на компьютере должна быть установлена программа iTunes последней версии.

После установки программного обеспечения на компьютер требуется загрузить саму операционную систему. Скачать ее можно как с официального сайта, так и со стороннего ресурса, например, ipsw.me.

Вне зависимости от сайта, сначала надо выбрать модель планшета, а затем кликнуть по актуальной версии прошивки. Скачается файл формата ipsw, который будет использоваться для переустановки операционной системы.

Процесс прошивки iPad через iTunes

Когда подключение к компьютеру завершено, можно переходить непосредственно к перепрошивке.

Поэтапная инструкция:

  1. Открыть iTunes на компьютере.
  2. Подсоединить планшетник к компьютеру через провод.
  3. В Айтюнс выбрать свой iPad в списке слева.
  4. Удерживать клавишу Shift на компьютере Windows, или клавишу Alt (Option) для MacOS.
  5. Кликнуть на надпись “Восстановить iPad”.
  6. Откроется окно, в котором нужно выбрать загруженный до этого ipsw-файл.
  7. Кликнуть на кнопку “Открыть”.

Начнется переустановка.

Так как в этом способе прошивка не загружается из интернета, а устанавливается из файла на ПК, процесс займет немного времени.

Описание платы

Свойства arduino pro mini аналогичны, как и у платы Ардуино Уно и Нано. Их отличие заключается в невозможности прошить Pro Mini по USB-UART. Вместо этого для создания связи с компьютером используется проводник FTDI с преобразователем интерфейса или дополнительная плата Sparkfun. Также есть отличия по скорости, с которой работает чип. У arduino про мини скорость ниже, чем у Ардуино уно, но это практически не сказывается на проектах. 

Работать с Ардуино про мини нужно аккуратно. Если пользователь сожжет чип, подав на него чрезмерное напряжение, его будет невозможно вытащить и заменить. 

Разъемы не припаяны к платформе. Произвести подключение можно как через разъемы, так и навесным монтажом. Ножки можно припаять.

Существует 2 модели микроконтроллера arduino pro mini – на 3,3 В и 5 В. В первой используется тактовая частота 8 МГц, вторая работает на 16 МГц. Какая именно это модель, должно быть указано на корпусе. 

Скетч в микроконтроллер традиционно записывается через среду разработки Arduino IDE. Для загрузки кода потребуются специальные переходники. Изначально продается с уже установленной прошивкой. 

Технические характеристики микроконтроллера arduino pro mini:

  • Рабочее напряжение 3,3 В и 5 В (в зависимости от модели);
  • 14 пинов, 6 из которых используются как выводы ШИМ;
  • Постоянный ток для входа и выхода 40 мА;
  • Суммарный ток выводов – не более 200 мА;
  • 16 Кб флэш памяти, 2 Кб используются для загрузчика;
  • 1 Кб оперативной памяти;
  • 512 байт eeprom;
  • Тактовая частота – 8 МГц или 16 МГц в зависимости от модели;
  • I2c интерфейс;
  • Размеры платы 18х33 мм.

Питание можно подавать тремя способами:

  • Через переходник FTDI;
  • При подаче стабилизированного напряжения на контакт Vcc;
  • При подаче напряжения на контакт RAW.

Какие проекты можно реализовать на базе Ардуино Про Мини:

Управляемые конструкции для квадрокоптера; 

  • Таймер;
  • Устройство для анализа влажности почвы;
  • Автоматический полив растений;
  • Устройство для измерения осадков и скорости ветра;
  • Автоматизация аквариума.

И многие другие проекты для дома и дачи. 

26 сентября 2012 г.

Восстанавливаем bootloader у Arduino pro mini

Не стоит выкидывать Arduino, сейчас мы разберемся, как это поправить.

Подключаем внешний программатор

Сердце Arduino pro mini — это Atmega328, и, естественно этот микроконтроллер поддерживает ICSP — внутрисхемное программирование по SPI-интерфейсу. Мы можем взять любой программатор для AVR, например, дешевый USBasp, и залить bootloader в память с его помощью.

Подключим линии VCC, GND, SCK, RST, MISO и MOSI нашего программатора к Arduino, как показано на рисунке:

Получается вот такое чудо техники:

Шаманим в Arduino IDE

А шаманить, если честно, особо не придется, потому что разработчики позаботились о пользователях, которые ломают себе загрузчики, и вынесли кнопку на очень видное место.

Для начала правильно выберем борду из списка:

Теперь выберем программатор:

И нажмем волшебную кнопку Burn Bootloader:

Появится сообщение «Burning bootloader to I/O board (this may take a minute. )» , а потом «Done burning bootloader» .

Если этого не произошло, проверьте, правильно ли вы подсоединили программатор к Arduino mini и определился ли он операционной системой.

Загрузить прошивку на этот микроконтроллер можно несколькими способами:

  • Через другую плату ардуино, у которой есть встроенный USB-UART
  • С помощью специального программатора
  • Используя USBasp-программатор

Последние два способа очень похожи. Они отличаются лишь типом программатора. Поэтому в этой статье мы рассмотрим только прошивку с помощью другой Arduino и с помощью специального программатора.

Установка Atmel Studio

Скачайте и установите Atmel Studio (включая драйверы) отсюда. После установки подключите Arduino к USB-кабелю. Оба светодиода (RX и TX) должны мигать два раза (это означает, что 16U2 находится в режиме Atmel Studio). Новое устройство будет распознано.

Установите драйверы. Если они не распознаются автоматически, вы найдете их в USB-драйверах: С:Program FilesAtmel.

Перейдите в Диспетчер устройств, нажмите: Win + Pause -> Оборудование -> Диспетчер устройств. Проверьте, правильно ли установлен драйвер. Должно быть в Jungo Connectivity -> AVRISP MKII.

Вот теперь мы готовы прошить Arduino ATMEGA328P. Переходим к следующему шагу.

Установка программного обеспечения Atmel FLIP

На плате Arduino есть два микроконтроллера — ATMEGA328P (328P) и ATMEGA16U2 (16U2). Вы можете обновить прошивку 16U2, сделав его программатором AVRISP MKII, а затем использовать Atmel Studio для прошивки 328P.

Я пробовал разные варианты, но возникали разные проблемы. Многие рекомендации плохо работали в моем случае особенно в части перепрошивки загрузчика через ПО Arduino.

Переда началом прошивки Ардуино потребуется программное обеспечение Atmel (Microchip) FLIP для обновления прошивки внутри 16U2.

Скачиваем Flip с сайта Microchip — отсюда. Устанавливаем. Не должно возникнуть никаких проблем, просто следуйте инструкциям мастера установки.

Возьмите плату Arduino, отсоедините питание и USB. Замкните на ICSP1 пины 5-6 (16U2 RESET будет в низком состоянии).

Распиновка ICSP1

Выглядеть это будет так:

Далее подключите Arduino к USB. Разъедините пины на ICSP1 (5-6). В этот момент 16U2 переходит в режим DFU. Новое устройство USB должно быть распознано.

Если драйвер не устанавливается автоматически, установите его из: C:\Program Files\AtmelFlip3.4.7usb»

Перейдите в Диспетчер устройств: Win + Pause -> Оборудование -> Диспетчер устройств. Проверьте, правильно ли установлен драйвер. Он будет расположен под USB-устройствами Atmel -> ATmega16U2.

Как прошить Arduino PRO Micro 32u4. Обзор платы.

Привет друзья!

Так как у меня имеется несколько проектов, на базе Arduino PRO Micro.

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

Плата построена на базе микроконтроллера ATmega32u4, который работает на частоте 16 МГц. Как и большинство плат Arduino, прошивается напрямую через USB, без использования программатора.

Микроконтроллер имеет 32 КБ Flash памяти, 2,5 КБ оперативной памяти, и 1 КБ энергонезависимой памяти.

Главной особенностью платы является наличие USB интерфейса, благодаря которому, плата может работать как: джойстик, клавиатура, или как мышь.

На плате имеется 18 контактов, которые можно использовать как цифровые входы или выходы.
9 из них могут работать как аналоговые входы, и 5 из них могут работать как ШИМ выходы.

Для связи имеются шины: SPI, I2C, и UART. Они могут пригодиться для подключения: различных дисплеев, датчиков температуры, влажности, давления. Модулей GSM, GPS, Bluetooth, да чего угодно. При необходимости, можно программно создавать дополнительные линии связи, на любых свободных контактах.

Плату можно питать двумя способами: от 5 вольт через USB разъем, или через контакт RAW, подключив от 6 до 12 вольт.

На плате имеется светодиод для индикации питания, и еще два светодиода для индикации каналов RX и TX.

Как и остальные платы Arduino, Arduino PRO Micro прошивается при помощи приложения
Arduino IDE.
Загрузим на нее стандартный пример Blink, который находится во вкладке Файл/Примеры/Basics/Blink.

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

Подключаем плату к USB компьютера.
Во вкладке Инструменты выбираем пункт Arduino/Genuino Micro

А также выберем ком порт, к которому подключена плата.

У меня ком порт 31, у вас ком порт может быть другой.
Теперь нажимаем кнопку загрузить, и дожидаемся завершения загрузки.

Подключаем светодиод к первому пину, а второй его конец к минусу.

Максимально допустимая нагрузка на 1 пин составляет 40 миллиампер, а общая нагрузка на все пины не должна превышать 500 миллиампер, поэтому добавим в цепь сопротивление от 200 до 500 ом, чтобы не вывести из строя выход микроконтроллера, или сам микроконтроллер.

Arduino IDE, AVRDude

Рассмотрим как загрузить прошивку, имея толькоArduino IDE на компьютере с Windows.

Напомню, что вместе с Arduino IDE ставится и AVRDude, с помощью которого мы и загрузим прошивку.

Подготовка

  • Подключить плату к компьютеру
  • Запустить Arduino IDE
  • Определить к какому порту подключена Arduino, через меню, как показано ниже:

Выбор COM-порта ардуино

Определите в какой папкеустановлена Arduino IDE

Обычно – «C:Program Files (x86)Arduino»

Загрузка прошивки ардуино

Открываете командную строку и вводитеследующую команду, предварительно скорректировав ее под свои условия:

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avrdude» -«C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf» -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:Firware.hex:i

Обратите внимание на:

  • Путь к Arduino IDE (желтым),
  • Номер порта (голубым),
  • Скорость передачи данных (зеленым)
  • Название (путь) файла прошивки (фиолетовым)

Если при выполнении команды вы увидите ошибку как ниже

avrdude: stk500_recv(): programmer is not respondingavrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2Ошибка avrdude,avrdude: stk500_recv(): programmer is not respondingavrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2

, значит ваша плата не может работать соскоростью 115200, и необходимо установить скорость 57600.

Нажмите CTRL+C, чтобы прервать процесс.

Распределение памяти Arduino Pro Mini

Arduino Pro Mini имеет 3 типа встроенной памяти:

  1. FLASH объемом 32 КБ, из которых 0,5 КБ используется для кода загрузчика.
  2. SRAM размером 2 КБ.
  3. EEPROM размером 1КБ.
  • FLASH — это энергонезависимая память, которая используется для хранения программного кода. Поскольку это энергонезависимая память, программный код в ней сохраняется, даже если отключено питание.
  • SRAM (статическая оперативная память), еще ее называют RAM, является энергозависимой памятью и используется для хранения временных данных, то есть переменных. Данные теряются, если мы отключим питание.
  • EEPROM — это полу-энергозависимая память, поэтому ее можно стереть с помощью программирования.

Теперь давайте подробно рассмотрим распиновку Arduino Pro Mini:

Ниже представлена подробная схема распиновки Arduino Pro Mini:

Прошивка ардуино про мини с помощью 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. Откройте или напишите нужную вам прошивку. Будьте внимательны! Стандартная кнопка загрузки скетча нам не подходит. По умолчанию она заливает прошивку без использования программатора. Таким образом мы прошьем микроконтроллер, который должен выступать в качестве программатора. Чтобы этого не произошло нужно перейти в меню Скетч >> Загрузить через программатор.

Готово!

Программирование

Модуль Arduino Pro Mini
можно программировать через

Если вы хотите загрузить на 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 через 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 МГц.

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

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

USBasp-программатор и назначение его частей

Размер скетча слишком большой (Sketch Too Large)

Эта ошибка происходит когда размер кода программы больше чем объем перепрограммируемой памяти (flash memory, памяти для хранения программ) используемой вами платы Arduino. К примеру, объем этой памяти в плате Arduino Uno составляет 32 Кбайта, из которых 2 Кбайта заняты загрузчиком. Если вы попытаетесь загрузить в данную плату скетч объемом более 32 Кбайт, то увидите подобную ошибку.

Решение

Для решения этой проблемы модно использовать следующие способы уменьшения объема кода программы:

  1. Там, где это возможно, используйте целые типы данных (integer) вместо вещественных (float).
  2. Там, где это возможно, используйте при объявлениях переменных спецификатор “const”.
  3. Подключайте в программу только те библиотеки, которые вы будете использовать. Там, где это возможно, используйте облегченные версии используемых библиотек.
  4. Используйте специальные алгоритмы и другие способы уменьшения объема кода программы.

Более радикальным решением этой проблемы является смена платы Arduino на плату с большим объемом памяти. Например, плату Arduino Uno можно заменить на плату Arduino Mega, или даже на плату Arduino Due.

Выводы питания Arduino Pro Mini

  • Vcc: плата Arduino Pro Mini имеет 2 контакта плюса питания. На этих выводах находиться напряжение 5 В или 3,3 В в зависимости от версии платы.
  • GND: также плате есть 3 контакта GND (земля).
  • RAW: Этот вывод используется для подачи на плату внешнего стабилизированного напряжения. К этому выводу можно подключить внешний блок питания с напряжением от 5В до 12 В.
  • Reset: плата Pro Mini имеет 2 контакта сброса, которые пригодятся, если плата зависнет в процессе исполнения программы. Подача на этот контакт лог. 0 (соединить с GND) приведет к сбросу платы.

На рисунке ниже отмечены данные выводы Arduino Pro Mini:

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
DS-сервис
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: