Arduino UNO для получения подписи чипа ATmega328P-PU
Хорошего дня.
Я успешно собрал и протестировал Arduino на макетной плате около 2 дней назад.
Устройство довольно простое, я добавил делитель напряжения и светодиод для индикации мощности.
Схемы выглядят следующим образом:
А это фотография самой платы:
Я использую ATmega328P-PU в качестве микросхемы микроконтроллера.
Я загрузил довольно много скетчей на плату, и все, казалось, работало хорошо. Вчера я пытался загрузить скетч, но у меня: "аврдуде: Фу ты! неверная сигнатура устройства".
Я перезагрузил компьютер, снова перестроил всю плату и еще раз попытался загрузить скетч, используя Arduino в качестве ISP. Сообщение снова изменилось на:
avrdude: Ожидаемая сигнатура для ATmega328P составляет 1E 95 0F Дважды проверьте чип или используйте -F, чтобы переопределить эту проверку. Найден неправильный микроконтроллер. Вы выбрали правильную плату в меню Сервис> Плата?
Я поискал в Интернете и нашел много форумов, предлагающих изменить параметры файла avrdude.conf на разные подписи "Хотя они в основном предназначены для людей, использующих ATmega328-PU, а не ATmega328P-PU", но это также не помогло.
Я снова попытался записать загрузчик, но по-прежнему получаю то же сообщение об ошибке.
Я попытался найти способ "восстановить" сигнатуру чипа, но у меня ничего не вышло.
Я знаю, что есть вероятность, что я каким-то образом замуровал чип, но откуда мне знать наверняка? и есть ли в любом случае, что можно использовать и Arduino в качестве инструмента для извлечения сигнатуры чипа или проверки того, мертв ли сам чип?
Спасибо
@MDChaara, 👍1
Обсуждение3 ответа
Лучший ответ:
Здесь есть хорошее объяснение сигнатур чипов Atmel.
Похоже, вы уже знаете это, поэтому для тех, кто ищет помощи:
В нем говорится, что в чипах Atmel, о которых вы упоминаете, есть разные сигнатуры. Что вы можете перезапустить программу Avrdude, используя переключатель "-F". Или вы можете изменить конфигурации Avrdude, чтобы использовать "другой" чип Atmel (однако последствия, если таковые были, неизвестны автору).
Это может быть очевидным шагом, но дважды проверьте правильность настроек целевой платы IDE.
Вы также можете захотеть проверить связь между программатором и целевым объектом. Вы могли бы подумать о снижении скорости. Но лучший способ - это охватить строки, чтобы увидеть, отправляются ли данные целевому объекту и отвечает ли целевой объект. Из этого вы можете сделать вывод, является ли проблема плохим подключением или был поврежден чип.
Если вы хотите копнуть глубже, используя программные инструменты, вы могли бы изучить возможность самостоятельного управления Avrdude. Здесь есть легко читаемый учебник, а также, как представляется, документ "все, что вы хотели знать" и многое другое здесь.
В 1-м уроке (из ladyada.net ) мы видим тест, в котором они намеренно пробуют неправильную подпись:
Просто для пинки попробуйте запустить эту команду avrdude -c usbtiny -p atmega8 -U flash: w: test_leds.hex
Вы увидите, что он останавливается на шаге 2, как только подпись отличается от ожидаемой, он останавливается. Это связано с тем, что код, скомпилированный для attiny2313, не будет выполняться на atmega8 (это верно для большинства микроконтроллеров, файлы .hex несовместимы)
Но что еще более интересно, Avrdude распечатывает подпись, прочитанную от цели! Итак, если вы запустите тот же тест, вы сможете определить, способен ли Avrdude вообще взаимодействовать с целью. То есть вы можете увидеть все нули или все единицы или даже альтернативное сообщение от Avrdude. Что может свидетельствовать о том, что цель не разговаривает.
Спасибо за подробный ответ. Я принял этот ответ, поскольку он указал мне на некоторые очень интересные находки. Одним из выводов является тот факт, что даже у "Брикованного" ATMEGA328P-PU или любого другого чипа AVR в этом отношении может быть восстановлена его "Девственность" в соответствии с [Этим сообщением] (http://www.avrfreaks.net/forum/avrdude-expected-signature-atmega8-1e-93-07 ), @MDChaara
Более года спустя я кое-чему научился, и я отвечаю на собственный вопрос, чтобы, если кто-нибудь столкнется с проблемой, с которой столкнулся я (а я знаю, насколько это напряженно), он мог попробовать. Это может помочь.
Одна из самых интересных вещей, которые я узнал, - это замечательная коллекция скетчей мистера Ника Гэммона (кто-то на самом деле назвал его мистером Ардуино), созданная именно для этого.
Если вам когда-нибудь понадобится узнать, какова сигнатура вашего ATmega328 (или любого микросхемы микроконтроллера arduino по этому вопросу), посетите этот сайт.
Основная причина, по которой я задал этот вопрос, заключалась в том, чтобы "разобрать" мои ATMega328s, и я действительно сделал что-то неправильно, что по сей день я не могу понять, что привело к тому, что 4 чипа выдали ошибку в вопросе. Как раз когда я собирался сдаться, я нашел эту ссылку с веб-сайта мистера Гэммона, которая устранила проблему в 3 из 4 ATmegas, четвертом, который я сохраняю для тестирования высоковольтного программатора в будущем.
Спасибо.
когда вы пытаетесь изменить подпись, есть 2 области, где отображается код 1E 95 0F. Если вы попытаетесь изменить подпись в неправильном положении, то появится сообщение об ошибке "микроконтроллер не найден". Однажды я совершил ту же ошибку. Я бы посоветовал вам воспользоваться опцией "Найти" в меню "Правка" и выполнить поиск кода. Редактировать > Найти > Поиск 1E 95 0F > (выберите "вниз") выполните следующий поиск.
- Не удается снова загрузиться после смены платы
- Что означает avrdude: Device signature = 0x000000? Неисправная проводка? Проблема с программным обеспечением? Неправильная инструкция?
- Программирование ATMega328P без платы Arduino всегда возвращает ошибку: avrdude: stk500_recv(): programmer is not responding
- AVRdude неправильно считывает значения байтов предохранителя
- Как записать загрузчик и загрузить скетчи на ATmega328P U (конкретно этой модели)?
- Загрузчик на ATmega328p (3.3V/8MHz), чувак не закончит свое дело
- Мой Arduino UNO включает светодиод навсегда когда я подключаю его к своему ноутбуку
- avrdude ser_open() can't set com-state
В настройках arduino включите подробный вывод. После этого при попытке загрузки должна быть видна сигнатура устройства, а также множество другой информации., @Gerben
Есть два простых способа, отличных от этого метода 1 - использование Atmel Studio [Click-here](https://www.fedevel.com/welldoneblog/2015/04/how-to-flash-arduino-bootloader-without-a-programmer/) [Способ 2 - Без Atmel Studio Нажмите здесь](http://make.kosakalab.com/make/electronic-work/burn_bootloader_uno_en /) Я успешно использовал метод 2 .Для метода 2, если вы используете Atmel Studio 7.0, вам нужна прошивка AVRISP MKII 1.18 [Скачать-здесь] (https://drive.google.com/file/d/1gBX5uzTJYtzl8awGih8z8CfOrCZJOi--/view?usp=sharing ) Если вышеуказанные веб-страницы недоступны, вы можете получить их в формате PDF ниже с моего Google диска, @Seyon Seyon