Mam nieprawidłową ATmega328-PU. Jak mogę to naprawić?


12

Kiedyś paliłem bootloadery na nowej partii czterech ATmega328-PU za pomocą Arduino IDE (zauważ, że nie ma P po 328 - to nieco tańsza wersja MCU bez picopowera, nie mylić z ATmega328P- PU with P ), i był zaskoczony następującą wiadomością od avrdude:

avrdude: Device signature = 0x1e950F 
avrdude: Expected signature for ATMEGA328 is 1E 95 14 
Double check chip, or use -F to override this check. 

Oznacza to, że avrdude uważał, że chip nie jest tym, co mówi jego etykieta. Następnie zmieniłem typ układu w moim Arduino IDE na ATmega328P-PU i avrdude spalił bootloader bez żadnych skarg. Oznacza to, że chip był oznaczony jako jeden MCU i wewnętrznie zareagował jako inny, nieco inny.

Chciałbym wiedzieć:

  • Jak rzadkie jest to wydarzenie? Czy ktoś miał podobne doświadczenie? ( Oryginalne pytanie, nie na temat )

  • Czy można to naprawić? Jak mogę naprawić podpis, aby avrdude poprawnie rozpoznał układ?

Jest to cross-post z EE.SE . Zadałem to pytanie, ale nie zwróciłem na to uwagi, więc chciałem sprawdzić, czy ktoś z naszej społeczności ma podobne doświadczenia.


1
Wygląda na to, że twój sprzedawca po prostu błędnie oznaczył niektóre 328P (co reprezentuje ten podpis) jako 328.
— microtherion

Odpowiedzi:


4

Przeglądając Sparkfun, znalazłem kilka postów z wiadomościami, które pokazują ich walkę ze źle oznakowanymi żetonami. Tu jest kilka:

Sparkfun otrzymał wątpliwą przesyłkę, jeśli IC od nowego sprzedawcy w Chinach. Postanowili przetestować je przed wysłaniem do produkcji i żadna z ich płyt testowych nie działała. Używając kwasu azotowego, byli w stanie usunąć obudowę układów scalonych i znaleźć kawał metalu, który wyglądał jak miedź.

W innym artykule dokonali analizy podejrzanych układów scalonych firmy Atmel i znaleźli w środku półprzewodnikowy krzemowy opłatek. Chipy nie były funkcjonalne ATmegas, ale miały krzem, w przeciwieństwie do innych.


3
Czy potrafisz trochę wyjaśnić tę odpowiedź? Podsumowanie artykułów, do których linkujesz, byłoby dobrym początkiem - teraz, jeśli iskrzenie znika z jakiegokolwiek powodu, twoja odpowiedź będzie bezwartościowa.
— Shog9

@ Shog9 Dlaczego? Pytanie jest daleko od bazy. Ta odpowiedź jest streszczeniem przypadków otrzymywania błędnie oznakowanych żetonów (w zasadzie osób dzielących się doświadczeniami ). Komu to pomoże?
— asheeshr

Mógłbym zadać ci to samo, @AsheeshR - po co martwić się odpowiedzią, gdy pytanie stanowi problem? W każdym razie dzięki za dodanie szczegółów, TheDoctor.
— Shog9

3

Nie jest to preferowany sposób naprawy rzeczy, a na pewno nie pierwsze rozwiązanie do rozważenia, ale można rozważyć zaprogramowanie bajtów podpisu. Przed podjęciem próby upewnij się, że naprawdę chcesz to zrobić, i sprawdziłeś, co jest konieczne, aby to cofnąć. Może to obejmować zmianę plików konfiguracyjnych na komputerze ...

W każdym razie sposób na ustawienie bajtów podpisu kontrolera jest następujący (nieprzetestowany, nie mam zapasowego AVR):

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

2
Wiem, że jest bardzo późno, ale nie sądzę, aby dobrym pomysłem było pozostawienie tej odpowiedzi jako niekwestionowanej: podpis na atmega328 nie jest zapisywalny, a według mojej wiedzy podpis nie jest zapisywalny na ŻADNEJ atmega lub attiny.
— microtherion

2
Z zainteresowania zainteresowałem się powyższym podejściem, które avrdude zaakceptowało w pewnym sensie: avrdude: writing signature (3 bytes)- jednak to się nie udało:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f
— Nick Gammon
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.