Использование контроллера ATmega328 с Arduino без платы. Прошивка загрузчика(bootloader) Arduino 33

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

между выводами 9 и 10 контроллера, подцепить резонатор номиналом 16 MHz

Но как быть если мы хотим использовать отдельно купленные контроллеры ATmega328 на плате Ардуино?

Для этого необходимо загрузить в контроллер Arduino — ..

Как это сделать?

1. Выбираем «Файл>>Примеры>>Arduino ISP»
2. Загружаем в нашу Ардуино выбранный скетч.
3. Далее «Сервис>>Плата» и выбираем тип платы для которой хотим записать загрузчик, в нашем случае — «Arduino UNO»
4. Далее «Сервис>>Программатор>>Arduino as ISP»
5.Подключаем наш ATmega328 согласно пинам из Arduino ISP

1
2
3
4
5
// pin name: not-mega: mega(1280 and 2560)
// slave reset: 10: 53
// MOSI: 11: 51
// MISO: 12: 50
// SCK: 13: 52 
// pin name: not-mega: mega(1280 and 2560)
// slave reset: 10: 53
// MOSI: 11: 51
// MISO: 12: 50
// SCK: 13: 52 

6. Между ногами 9 и 10, прошиваемого контроллера, подключаем резонатор номиналом 16 MHz

SimpleBreadboardAVR.png

7. В меню сервис выбираем «Записать загрузчик«.

Вот и все. Теперь смело вынимаем контроллер из платы Ардуино и вместо него вставляем прошитый. Возвращаем настройки Программатора.

Для облегчения прошивки контроллеров AVR с использованием Arduino ISP разработаны платы расширения Arduino ISP Shield. Заказать из Китая можно за 15$

PS. Тестировалось на Ардуино 1.0.5

33 комментс для “Использование контроллера ATmega328 с Arduino без платы. Прошивка загрузчика(bootloader) Arduino

  1. Ответить Артём Чамайкин Мар 9, 2014 19:32

    единтственное из ВСЕГО интернета

  2. Ответить Влад Апр 2, 2014 19:08

    ошибка при записи загрузчика

    avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

    • Ответить Slava Апр 7, 2014 09:40

      Проверьте пожалуйста все свои действия.
      Все ли сделано правильно?
      Вы случайно не вытащили основной контроллер из платы?

  3. Ответить Vadim Апр 7, 2014 01:16

    A можно данным способом заменить Atmega 328 на Atmega 8?

  4. Ответить Vadim Апр 7, 2014 12:05

    Вы имеете в виду с помощью Arduino UNO прошить Atmega 8 правельно я понимаю?

    По схемме ниже (смотрите фото), в место Atmega328 подключя Atmega8 получется залить код на Atmega8? Спосибо 😉

    • Ответить Slava Апр 7, 2014 14:53

      Вы имеете в виду с помощью Arduino UNO прошить Atmega 8 правильно я понимаю?

      Да )

      По схеме ниже (смотрите фото), в место Atmega328 подключая Atmega8 получается залить код на Atmega8?

      К сожалению, нет в наличие Atmega8. Не могу дать точный ответ, пока сам не попробую. Но в теории, если зальете бутлоадер Ардуино в Atmega8 то можно и прошить.

  5. Ответить Дмитрий Апр 20, 2014 18:51

    Все работает, до этого ошибался, снимая оригинальный контроллер, нажимал «Записать загрузчик сразу». Спасибо за подсказку.

  6. Ответить KazakOFF Сен 4, 2014 11:31

    Пришли мне контроллеры, загружаю загрузочник, и после записи скетча бут удачно слетает, что может быть?
    Я лично полагаю что не выставлены фьюзы.

    • Ответить Slava Сен 4, 2014 13:20

      скетч как записывается?
      контроллер устанавливаете на плату?
      Ошибки есть при этом?
      Прошивка осуществлялась строго по инструкции в статье?

      • Ответить KazakOFF Сен 4, 2014 13:43

        1.Да
        2.Нет, в этом не смысла, у меня отдельный uart
        3.Нет,
        4.Да

        При этом у меня валется Atmega8 в нее залил бот все отлично.

        • Ответить Slava Сен 4, 2014 14:42

          Попробуй вставить его вместо основного контроллера на плату, залить скетч.

          У меня было такое, что 13 пин начинал светится и скетч не работал.

          Так, прошивка идет не через Arduino ISP?

          • Ответить KazakOFF Сен 4, 2014 18:30

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

  7. Ответить Константин Мар 17, 2015 22:40

    Не ставится(((

    Arduino: 1.6.1 (Windows 7), Плата»Arduino Uno»

    Ошибка при записи загрузчика

    avrdude: Error: Could not find USBtiny device (0x2341/0x49)

    Это сообщение будет содержать больше информации чем
    «Отображать вывод во время компиляции»
    включено в Файл > Настройки

    • Ответить Slava Мар 18, 2015 22:19

      проблема с USB попробуйте подключить через USB HUB версии 2.0

      • Ответить Константин Мар 22, 2015 20:54

        спасибо,проблема решилась.

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

        Arduino: 1.6.1 (Windows 7), Плата»Arduino Uno»

        avrdude: Yikes! Invalid device signature.

        Double check connections and try again, or use -F to override

        Ошибка при записи загрузчика

        this check.

        • Ответить Slava Мар 31, 2015 17:56

          по идее, ничего менять не нужно просто заменить на новую и прошить…проблема осталась?

  8. Ответить Вячеслав Апр 10, 2015 11:13

    Добрый день! Скажите, а фьюзы при заливке в чистый контроллер нужно как-то изменять? Спасибо

  9. Ответить Сергей Май 26, 2015 13:50

    прошиваю через ардуино нано, выводит вот это, туплю не могу понять почему
    Arduino: 1.6.3 (Windows 7), Плата»Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)»

    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xff

    Ошибка при записи загрузчика

    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xff

    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff

    Это сообщение будет содержать больше информации чем
    «Отображать вывод во время компиляции»
    включено в Файл > Настройки

  10. Ответить Anton Апр 4, 2016 10:19

    На 4-х контроллерах пробовал и на всех выдает:

    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.

    Ошибка при записи загрузчика

  11. Ответить Владислав Авг 23, 2016 00:58

    ***failed;
    avrdude: verification error, first mismatch at byte 0x0000
    0xfd != 0x05
    avrdude: verification error; content mismatch
    Ошибка при записи загрузчика.

    Все уже перепроверил, все равно не работает

  12. Ответить Олег Сен 7, 2016 08:11

    Я, как понимаю, частоты должны совпадать или использовать другой загрузчик под вашу частоту.

  13. Ответить Жека Сен 23, 2016 22:54

    Вообще, к ногам резонатора надо подвесить емкости по 22 пф, иначе может не запуститься тактовый генератор.

  14. Ответить Айдар Дек 28, 2016 00:06

    Прошивал атмега 328р-pu с помощью ардуино уно с таким же мкс, через IDE 1.8.0. Выдает ошибку и загорается красн светодиод. failed. avrdude. Warning. invalid value for unused bits in fuse «efuse», should be set to 1 according to datasheet. This behavior is deprecated and will result in an error in future version. You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).
    Как быть? Я начинающий.

  15. Ответить Айдар Дек 28, 2016 16:42

    Последняя версия IDE 1.8.0 не грузит загрузчик в атмегу328, пишет ошибку. Взял наугад версию IDE 1.6.5 установился сразу, воткнул в уно — работает.

    • Ответить Slava Янв 15, 2017 19:59

      Пользуюсь до сих пор Ардуино 1.0.5
      Для себя, пока, не вижу смысла переходить на более новую.

  16. Ответить Алексей Янв 11, 2017 07:45

    ***failed;
    avrdude: WARNING: invalid value for unused bits in fuse «efuse», should be set to 1 according to datasheet
    This behaviour is deprecated and will result in an error in future version
    You probably want to use 0xfd instead of 0x05 (double check with your datasheet first).
    но загрузчик защёл( проверил на параллельном программаторе тритон), какая то трабла с фьюзами, будет ли работать?

    • Ответить Егор Янв 31, 2017 23:58

      Найди файл:
      — С:\Program Files\Arduino\hardware\arduino\avr\boards.txt
      — C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt (если на 64-битной винде)

      В нем должна быть строка
      uno.bootloader.extended_fuses=0x05
      Исправь её на:
      uno.bootloader.extended_fuses=0xFD

      Решение взято отсюда: http://github.com/arduino/Arduino/issues/5404

Добавить комментарий