Не могу записать загрузчик на Atmega328P с помощью Arduino Uno

Я пытаюсь создать Arduino Uno по схеме, описанной на схеме ниже, которую я взял из здесь.

Я опробовал эту схему на версии Atmega328 PDIP (с правильными подключениями, поскольку PDIP имеет распиновку, отличную от этой TQFP), и мне удалось создать и использовать свою собственную Arduino.

Однако, когда я использовал версию TQFP и распечатал эту схему на печатной плате, я не могу записать загрузчик с помощью Arduino UNO.

Я дважды проверил распиновку из таблицы данных Atmega328P, и они верны. С помощью тестера я также проверил наличие соединений.

Кстати, я использовал следующие связи.

Arduino Digital Pin 13 to SCLK
Arduino Digital Pin 12 to MISO
Arduino Digital Pin 11 to MOSI
Arduino Digital Pin 10 to RESET
Arduino 5V to VCC
Arduino GND to GND

Я также записал программу ArduinoISP на Arduino UNO, выбрал Arduino в качестве ISP и выбрал Arduino UNO в качестве платы.

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

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

Я просмотрел разные форумы, и они говорят только о проверке соединений, которые я уже проверил.

, 👍0


3 ответа


1

У меня была эта проблема в прошлом, и это всегда было одно из двух решений

  1. Провода были неправильно настроены, и я увидел это только после N-го раза
  2. Неправильный чип, я пытался запрограммировать 328, хотя он ожидал 328p.

И секретный третий вариант:

  1. Некоторые чипы/провода/и т.д. был разбит/сожжен/плох.

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

,

Сегодня я много раз проверял соединения, и они были правильными. Кроме того, я раньше неправильно разместил Atmega328PB. После внесения необходимых изменений в программное обеспечение я успешно записал загрузчик. Теперь, когда у меня возникла эта проблема, это также правильный чип. И я уже использовал 3 чипа и поменял много проводов, так что я бы хотел это исключить?, @noobiejp


0

В конструкции отсутствуют конденсаторы 0,1 мкФ на VCC, AVCC и Aref.

Aref не следует подключать напрямую к 5 В. Он подключен внутри через мультиплексор, и ему требуется только 0,1 мкФ к Gnd. Если Aref подключен напрямую, а затем в эскизе выбран внутренний источник опорного напряжения 1,1 В, это может повредить чип.

Замените резистор 220 Ом на D13/SCK на 1К. 220 Ом создает значительную нагрузку на линию SCK для программатора. 1K обеспечит достаточно яркий светодиод.

Есть ли у вас сопротивление 0,1 мкФ между DTR последовательного программатора и выводом сброса? Программисту необходим прямой контроль над линией сброса, а последовательному программисту (например, базовому модулю FTDI) необходимо пройти через колпачок, чтобы создать импульс сброса.

,

На самом деле у меня есть заглушка между VCC, AVCC и GND, которую я не включил на скриншот. Теперь, когда вы упомянули об этом, я вижу небольшую дугу (искру) на контакте AREF. Что я сделал, так это вынул контакт, чтобы отсоединить его от AVCC и VCC, и припаял крышку 100 нФ к GND. Однако он создал большую дугу на штифте., @noobiejp

Кроме того, раньше я заказывал Atmega328PB вместо Atmega328P. Тогда я получаю сообщение об ошибке в подписи устройства. Я внес некоторые изменения, основываясь на материалах разных форумов, и мне удалось записать загрузчик и загрузить эскиз. Теперь у меня есть правильный Atmega328P, установленный в той же компоновке, и у меня возникла эта проблема., @noobiejp

Под дугой вы имеете в виду, что видите искры? Это совсем не хорошо. С линией 5 В все в порядке?, @CrossRoads

Да, я имею в виду искру. И я не могу понять, почему. Линия 5В в порядке. Однако на осциллографе можно увидеть некоторые всплески всякий раз, когда на выводе AREF образуется искра., @noobiejp


1

Arduino на макетной плате вот ссылка... https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

Если загрузчик записан с помощью Arduino Uno в atmega328, код будет загружен один раз и запустится правильно, но в следующий раз, когда вы попытаетесь записать код в atmega328, код не будет записан в atmega328. Я тоже пробовал этот способ, но у меня он сработал только один раз, тогда я купил usbasp (цена 1,5 доллара), чтобы навсегда записать загрузчик. после записи загрузчика с помощью usbasp у меня все работает идеально. Просто подключите кристалл с фильтрующим конденсатором, этого достаточно, чтобы сжечь загрузчик. приведенная выше конфигурация предназначена на тот случай, если вы захотите использовать ее в качестве MCU.

,

На самом деле это ссылка, по которой я основал свою схему. Кроме того, я только что купил чипы, поэтому думаю, что в них нет загрузчиков. Я попробовал перезаписать загрузчик на DIP Atmega328p, который использовал раньше. Работает., @noobiejp