Прошивка Arduino Pro Mini через Nano

Не так давно столкнулся с необходимостью использования Arduino Pro Mini в своем проекте и сразу же встал вопрос как заливать в нее скетч. Конечно продаются различные переходники UART при помощи которых этот вопрос снимается быстро, но в тот момент такого переходника не оказалось под рукой.

Почитав на сайте http://arduino.cc и посабирав информацию на разлинчых форумах, узнал о возможности прошивать Pro Mini при помощи других плат Arduino.

Итак, рассмотрим в чем заключается метод Arduino as ISP и что необходимо для этого на примере Arduino Nano.

Для возможности использования платы в родном Arduino IDE имеется пример скетча для перевода платы в программатор, этот пример уже самодостаточен для прошивки Pro Mini, найти его можно выбрав в меню Файл.

image

Далее в меню «Инструменты» выставляем нашу плату «программатор» и тип ее микроконтроллера.

image

Затем прошиваем Nano скетчем ArduinoISP, обратив внимание на скорость порта в функции setup, данная скорость будет использоваться непосредственно при прошивке Pro Mini в стандартном скетче ее значение равно 19200.

image

После того, как Nano будет подготовленна можем собирать breadboard, для прошивки Pro Mini по схеме указанной здесь http://arduino.cc/en/Tutorial/ArduinoISP.

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

Nano -> Pro Mini

  • +5v -> Vcc
  • GND -> GND
  • D10 -> RST
  • D11 -> D11
  • D12 -> D12
  • D13 -> D13


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

image

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

Здесь необходимо убедиться что скорость выставлена верная:

pro5v328.upload.speed=19200

Затем зайдем в файл 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»:

image

image

Теперь у нас все готово для прошивки. Выбираем нужный скетч, для пробы можно выбрать любой из примеров. А теперь особое внимание уделю как прошивать, обычная кнопка для прошивки нам не подойдет так как она предназначена для прошивки стандартным программатором т.е. в Arduino Nano и при ее нажатии мы просто прошьем Nano, что нам обсолютно не нужно.

Верный путь прошить Pro Mini лежит в меню «Файл» и называется он «Загрузить с помощью программатора», у меня стоит версия IDE 1.5.6-r2 там этот пункт называется «Вгрузить через программатор», по всей видимости трудности перевода в этом релизе, в версии 1.0.5-r2 все в порядке.

image

С первого раза может не получиться прошить, да и в дальнейшем возможно будет вылетать ошибка такого вида:

image

Однако не стоит беспокоится, если все собрано верно и спаяно надежно то, достаточно нажать «Reset» на Pro Mini, подождать пару секунд и плата успешно прошъется.

Благодарю за внимание на этом все, пока.
Share post

Comments 16

    +1
    На днях столкнулся с подобной задачей, но так и не смог побороть ошибку not in sync: resp=0x00.
    Правда вместо nano использовал mega.
    За туториал спасибо, буду пробовать :)
      +1
      Тоже на днях приехала ардуинка, помог мануал.
      Теперь прошиваюсь через шнурок PL2303 замечательно, неудобство только в том что нужно поймать момент отпускания резета.
        +2
        Если завести с PL2303 сигнал DTR и подключить его на ардуино (на линке он отмечен как сигнал GRN), то PL2303 сама будет правильно делать сброс когда надо и не надо искать момента отпускания.

        У PL2303 DTR находится на втором пине.
        У CP2102 DTR находится на 28-ом пине.
          0
          Хм, интересно попробую спасибо.
        +4
        Для прошивки Arduino Pro Mini, нет необходимости в ISP программаторе. Достаточно на Nano(UNO, MEGA и т.д.) соединить Reset с землёй (удобно джампером на ISCP разъеме) это переводит плату в UART переходник вне зависимости от залитого не неё кода. Изымать микросхему как в мануале комментарием выше, тоже не надо (У Nano то её не очень то и вытащишь). После чего соединить TX-TX, RX-RX, питание и землю. И прошивать как обычно, выбрав соответствующую Pro Mini плату в списке и COM порт который присвоился Nano. Reset надо нажать на Pro Mini перед заливкой, и как только надпись «Компилирование...» сменится «Загружаем» отпустить. Ещё у меня получилось заливать скетч через blutooth модуль типа HC-04/05/06/07.
          0
          Попробовал по вашему методу к сожалению не получилось, по поводу соединить TX-TX, RX-RX постоянно в порт падают данные и IDE подвисает при попытке загрузить. Возможно просто надо хорошенько все проверить, попробую еще раз вечером.
            0
            Попробуйте, а я вечером постараюсь снять видео.
              +1
              Это может быть из-за того что вы изменили скорость.
              pro5v328.upload.speed=19200

              Скорость порта при прошивки через UART должна быть 57600, как и по умолчанию прописано (для ATmega328).
                0
                Выставлял все скорости по умолчанию, не удается ее прошить возможно уже что то с самой arduino pro :) не выдержала эксперементов…
                  0
                  Тогда возможно через ISP, вы затерли загрузчик Arduino, попробуйте его и восстановить с помощью ISP, в IDE есть соответствующий пункт меню.
              +1

              Выложил видео. Оно ничего к написанному не добавляет, просто иллюстрирует.
              И будьте внимательны при использовании джампера, у UNO к примеру ISCP разъем развёрнут на 180 градусов относительно Nano.
                0
                Вы были правы перезалил загрузчик и все взлетело! Еще один отличный способ загружать скетч в Pro Mini. Я думаю вам его тоже стоит описать.
                Спасибо за подсказку.
              0
              «Вгрузить»? Теперь я знаю где работают пираты из начала 2000х. =)
                0
                10 мкФ конденсатор между землей и reset на ардуине-программаторе, хотя и рекомендован для Uno, сокращает количество ошибок 'not in sync' почти до нуля.
                  0
                  Я не ГН, и делаю ошибки в текстах сам, много, но ёлки-палки, есть же предел. Ладно, даже забудем о пунктуации, но «посабирав», "обсолютно", " не стоит беспокоится", и вроде как не «прошъется». Ну в ворде же проверить можно.

                  Это мне напомнило о родной «Ленте», где господа из подсобки написали ценник: «Астроханские орбузы»
                    0
                    Извиняюсь очень стыдно. Бывают моменты, что тороплюсь.

                  Only users with full accounts can post comments. Log in, please.