Проблема загрузчика ATmega328P : [avrdude: stk500_recv(): programmer is not responding]

Я использую плату arduino uno и поместил новый чип ATmega328 в гнездо в качестве простой настройки, как указано в инструкции по установке Minicore. Однако я не могу записать загрузчик. Я использую ваш миникор и выбрал чип ATmega328. Я попытался использовать внутренний кристалл 8 МГц, а также внешний кристалл 16 МГц, но получил ту же ошибку. Я даже попытался использовать другой ATmega328P, но результат был тот же. Вот результат:

avrdude: Version 6.3-20201216
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Administrator\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.1.2/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : stk500v1
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03

avrdude done.  Thank you.

Error while burning bootloader.

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

Вот другие соединения, которые я использовал:

Serial connection

FTDI/UART connection

Не могли бы вы помочь мне это исправить? Спасибо

, 👍-1

Обсуждение

Есть ли у вас программатор STK500 версии 1, который вы используете для записи загрузчика? Или вы просто подключаете Arduino к USB и молитесь, чтобы что-то чудесным образом произошло?, @Majenko

У меня нет такого программиста, но есть программист AVR asp. Для минимальной настройки я подумал, что мне просто нужно заменить новую ATmega в сокете, а затем записать загрузчик, подключив arduino к usb. Но я даже не молился :) Может быть, я неправильно понял минимальную настройку., @Zaffresky

Я также попытался с помощью соединения FTDI/UART и интернет-провайдера записать загрузчик, но получил ошибку подписи., @Zaffresky

Я отредактировал оригинальный пост с скетчами подключения, @Zaffresky

Чтобы запрограммировать загрузчик, вам нужен либо аппаратный программатор, либо работающий Arduino для использования в качестве программатора. Но я в замешательстве (и, вероятно, вы тоже). Вы говорите, что вставили микросхему в розетку, а затем показываете нам схему с макетом..., @Majenko

Вот последовательность того, что я пробовал до сих пор. Сначала я попытался записать загрузчик с ATmega328P и другими компонентами на макете, следуя двум различным схемам подключения, показанным выше. Я получил ошибку "avrdude: Yikes! Неверная сигнатура устройства. Дважды проверьте соединения и повторите попытку или используйте -F, чтобы переопределить эту проверку". Наконец я просто заменил ATmega на моей рабочей плате uno, чтобы сжечь загрузчик., @Zaffresky

Первое-это то, что вам нужно сделать, а не второе. Установите его снова на макете и снова попробуйте различные учебные пособия. Многие упускают из виду отключение автоматического последовательного сброса Arduino, который вы должны сделать, чтобы он работал., @Majenko

Я начал новый с чистой проводки и попробовал учебник на сайте arduino, и он использует подтягивающий резистор на выводе сброса. Это сработало :) Спасибо за указатель, @Zaffresky

вы не можете записать загрузчик в ATmega, поставив его на Uno. даже если ATmega находится на Uno, вы должны использовать программатор (или другой Arduino в качестве программиста с Arduino в качестве скетча ISP)., @Juraj

@Juraj да, я неправильно понял один из учебников. Я думал, что, просто поместив его в гнездо платы uno, мне не понадобятся никакие внешние схемы, такие как колпачки, резисторы и кристалл. Кроме того, я мог бы использовать последовательное USB-соединение на плате для записи загрузчика. Но теперь все ясно, @Zaffresky


1 ответ


Лучший ответ:

0

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

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

  • Добавьте малозначимый подтягивающий резистор для СБРОСА
  • Добавьте высокоточный конденсатор между СБРОСОМ и GND
  • Вырежьте след "RESET-EN" на нижней стороне платы

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

,

Я воспользовался первым методом. Однако даже с резистором 10K он работал, @Zaffresky