Когда-то в прошлом я записывал загрузчики на свежую партию из четырех ATmega328-PU, используя Arduino IDE (обратите внимание, что после 328 нет P - это немного более дешевая версия MCU без пикоэнергетики, не путать с ATmega328P- PU с буквой P ), и был удивлен следующим сообщением от avrdude:
avrdude: Device signature = 0x1e950F
avrdude: Expected signature for ATMEGA328 is 1E 95 14
Double check chip, or use -F to override this check.
Это означает, что avrdude думал, что чип не соответствует тому, что написано на его этикетке. Затем я изменил тип микросхемы в своей Arduino IDE на ATmega328P-PU и avrdude без проблем сжег загрузчик. Это означает, что микросхема была помечена как один MCU, а внутри она реагировала как другая, немного отличающаяся.
То, что я хотел бы знать, это:
Как редко это событие? У кого-нибудь был подобный опыт?( Оригинальный вопрос, не по теме )Можно ли это исправить? Как исправить подпись, чтобы avrdude правильно распознал чип?
Это кросс-пост из EE.SE . Я разместил этот вопрос там, но не привлек большого внимания, поэтому я хотел посмотреть, есть ли у кого-то из нашего сообщества подобный опыт.
Ответы:
Просматривая sparkfun, я нашел несколько новостных постов, которые показывают их борьбу с ошибочно помеченными чипами. Вот некоторые из них:
Sparkfun получил сомнительную посылку, если IC от нового продавца в Китае. Они решили проверить их перед отправкой в производство, и ни одна из их тестовых плат не работала. Используя азотную кислоту, они смогли снять корпус микросхем и получить металл, похожий на медь.
В другой статье они проанализировали некоторые подозрительные ИС от Atmel и обнаружили внутри полупроводниковую кремниевую пластину. Чипы не были функциональными ATmegas, но они имели кремний, в отличие от других.
источник
Не самый предпочтительный способ исправить ситуацию и, конечно, не первое решение, которое нужно рассмотреть, но вы можете подумать о программировании байтов подписи. Прежде чем пытаться это сделать, убедитесь, что вы действительно хотите это сделать, и вы исследовали, что нужно сделать, чтобы отменить это. Это может включать изменение файлов конфигурации на вашем компьютере ...
В любом случае способ установки байтов подписи контроллера заключается в следующем (не проверено, у меня нет запасного AVR):
источник
avrdude: writing signature (3 bytes)
- однако он не смог этого сделать:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f