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.

Ricardo
źródło
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.

Doktor
źródło
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
jippie
źródło
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