Я отримав пропущений ATmega328-PU. Як я можу це виправити?


12

Колись раніше я спалював завантажувачі на свіжій партії з чотирьох ATmega328-PU за допомогою Arduino IDE (зауважте, що P після 328 немає - це дещо дешевша версія непідключення 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 . Я розмістив це питання там, але не привернув особливої ​​уваги, тому хотів дізнатися, чи є хтось із нашої громади подібний досвід.


1
Здається, що ваш постачальник просто помилково позначив деякі 328P (що і являє собою цей підпис) як 328s.
мікротерйон

Відповіді:


4

Під час перегляду іскрофону я знайшов кілька новин, які демонструють їхню боротьбу з неправильно поміченими фішками. Ось декілька:

Sparkfun отримав сумнівну доставку, якщо ІС від нового продавця в Китаї. Вони вирішили протестувати їх перед тим, як відправити їх у виробництво, і жодна їх тестова дошка не працювала. Використовуючи азотну кислоту, вони змогли зняти корпус ІС і змогли заграти метал, схожий на мідь.

В іншій статті вони розсікали деякі підозрілі мікросхеми від Atmel, і знайшли всередині напівпровідникові кремнієві пластини ON. Чіпи не були функціональними ATmegas, але вони мали кремній на відміну від інших.


3
Ви можете трохи уточнити цю відповідь? Підбиття підсумків статей, з якими ви посилаєтесь, було б хорошим початком - зараз, якщо іскробезпека знищиться з будь-якої причини, ваша відповідь буде марною.
Shog9

@ Shog9 Чому? Питання - далеко не база. Ця відповідь є коротким описом випадків, коли люди отримують неправильно помічені фішки ( по суті люди обмінюються досвідом ). Хто це допоможе?
asheeshr

Я міг би запитати у вас те саме, @AsheeshR - навіщо турбуватися про відповідь, коли питання є проблемою? У будь-якому випадку, дякую за додавання деталей, TheDoctor.
Shog9

3

Не кращий спосіб виправити речі, і, звичайно, не перше рішення, яке слід розглянути, але ви можете розглянути можливість програмування байтів підпису. Перш ніж спробувати це, будьте абсолютно впевнені, що ви дійсно хочете це зробити, і ви дослідили, що пов'язано з цим. Це може включати зміну файлів конфігурації на вашому комп'ютері ...

У будь-якому випадку спосіб встановити байти підпису контролера полягає в наступному (не перевірено, у мене немає запасного AVR):

avrdude -p atmega328 -c arduino -P /dev/ttyUSB003 -b 19200 -v -U signature:w:0x1E,0x95,0x14:m

2
Я знаю, що це дуже пізно, але я не думаю, що це було б гарною ідеєю, щоб це не стояло як прийняту відповідь безперечно: Підпис на atmega328 не може бути записаний, і наскільки мені відомо, підпис не може бути записаний у будь-якій атмезі чи дрібничка.
мікротерйон

2
З інтересу я спробував описаний вище підхід, який avrdude прийняв у певному сенсі: avrdude: writing signature (3 bytes)- проте цього не вдалося зробити:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f
Нік Гаммон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.