цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Используем Arduino Mega 2560 в качестве внутрисхемного программатора (ISP)

Используем Arduino Mega 2560 в качестве внутрисхемного программатора (ISP)

Автор: Mike(admin) от 31-05-2015, 17:08

Если вы самостоятельно изготавливаете Arduino, и для программирования микроконтроллера у вас нет под рукой внутрисхемного программатора или другой платы Arduino, кроме Arduino Mega 2560, то можно без проблем задействовать и ее для прошивки чипа.



Что потребуется:


  • Arduino Mega
  • Плата с микроконтроллером ATmega, который нужно прошить
  • Конденсатор 100 нФ
  • USB-кабель, соединяющий Arduino Mega с компьютером
  • Среда разработки Arduino IDE
  • Несколько проводов для соединения Arduino Mega с самодельным Arduino

Основная трудность заключается в том, что у Arduino Mega другая распиновка в отличие от Arduino UNO, Duemilanove или Diecimila, поэтому руководства использования в качестве программатора перечисленных плат не подходят. Подробнее про распиновку Arduino Mega можно узнать здесь.


Вам нужно соединить Arduino Mega 2560 с платой с чипом Atmega 168/328 следующим образом:


Используем Arduino Mega 2560 в качестве внутрисхемного программатора (ISP)

Итак, для начала нужно загрузить скетч ArduinoISP. Откройте Arduino IDE, выберите Tools – Board – Arduino Mega 2560 (Сервис – Плата – Arduino Mega 2560). Выберите корректный COM-порт: Tools – Serial port – нужный порт (Сервис – Последовательный порт – нужный порт). Теперь перейдите в File – Examples – ArduinoISP (Файл – Примеры – ArduinoISP). Перед вами откроется скетч ArduinoISP. Нажмите кнопку Upload (Загрузить) и загрузите его в Arduino Mega 2560.


После того, как скетч будет полностью загружен, подключите конденсатор 100 нФ между линией питания +5 В и выводом RESET на Arduino Mega, чтобы отключить автосброс. В противном случае ничего не получится.


Далее выберите плату, которую хотите запрограммировать. Если у вас, например, микроконтроллер Atmega328 с осциллятором 16 МГц, то следует выбрать Arduino Duemilanove or Nano /w Armega 328.


Выберите Tools – Burn Bootloader – Arduino as ISP (Сервис – Программатор – Arduino as ISP). После загрузки кода вы сможете наслаждаться вашим самодельным Arduino.


Если у вас возникли ошибки:


  • Проверьте правильность выбора платы
  • Если у вас появилась ошибка типа avrdude: stk500_getsync(): not in sync: resp=0x00, то вы не поместили конденсатор 100 нФ между линией питания +5 В и выводом RESET на Arduino Mega
  • Если у вас другая ошибка, то ищите ответ в гугле
  • Если не нашли ответ в гугле, то воспользуйтесь тематическими форумами про Arduino

Если при программировании вашего Arduino появилась ошибка avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51, значит не в порядке автосброс (DTR). То есть Arduino IDE не может перезагрузить Arduino, и загрузка кода заканчивается провалом. Чтобы избежать этого, вы можете:


  • Нажать кнопку сброса на Arduino, кода появляется «Binary sketch size: xxxx bytes (of a xxxxxxx byte maximum)»
  • Если это не помогло, то вы можете подключить USB-кабель к компьютеру, но не к Arduino, и после того, как появится «binary sketch…», быстро воткнуть кабель в Arduino
  • Если и это не помогло, то вы можете держать нажатой кнопку сброса на Arduino, нажать Upload (Загрузить) в Arduino IDE и отпустить кнопку, когда появится «binary sketch size ...»
  • Если и это не помогло, то вы можете нажать кнопку сброса после появления «binary sketch size ... » и держать ее 2-10 секунд
  • Если и это не помогло, то вы можете заново загрузить загрузчик
  • Если и это не помогло, то вы можете взять другую плату Arduino, если есть такая в запасе
  • Если и это не помогло, то остается только спросить на форуме



Перевод © digitrode.ru


<Via>


Теги: Arduino




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

Комментарии:

Оставить комментарий