J'ai reçu un ATmega328-PU mal signé. Comment puis-je résoudre ce problème?


12

Dans le passé, je brûlais des chargeurs de démarrage sur un nouveau lot de quatre ATmega328-PU en utilisant l'IDE Arduino (remarquez qu'il n'y a pas de P après 328 - c'est la version non picopower légèrement moins chère du MCU, à ne pas confondre avec l' ATmega328P- PU avec un P ), et a été surpris par le message suivant d'avrdude:

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

Cela signifie qu'avrdude pensait que la puce n'était pas ce que son étiquette disait. Ensuite, j'ai changé le type de puce de mon Arduino IDE en ATmega328P-PU et avrdude a brûlé le chargeur de démarrage sans se plaindre. Cela signifie que la puce a été étiquetée comme un MCU et en interne, elle a répondu comme un autre, légèrement différente.

Ce que j'aimerais savoir c'est:

  • Quelle est la rareté de cet événement? Quelqu'un a-t-il eu une expérience similaire? ( Question originale, hors sujet )

  • Est-il possible de réparer ça? Comment puis-je fixer la signature afin que avrdude reconnaisse correctement la puce?

C'est un cross-post de EE.SE . J'ai posté cette question là, mais n'a pas attiré beaucoup d'attention, donc je voulais voir si quelqu'un de notre communauté avait une expérience similaire.


1
Il semble que votre fournisseur ait simplement mal étiqueté certains 328P (ce que représente cette signature) comme 328P.
microtherion

Réponses:


4

En parcourant sparkfun, j'ai trouvé plusieurs articles de presse qui montrent leur lutte avec les puces mal étiquetées. Voici quelques-uns:

Sparkfun avait reçu un envoi douteux de circuits intégrés d'un nouveau vendeur en Chine. Ils ont décidé de les tester avant de les envoyer en production, et aucun de leurs panneaux de test n'a fonctionné. À l'aide d'acide nitrique, ils ont pu retirer le boîtier des circuits intégrés et former un gros morceau de métal qui ressemblait à du cuivre.

Dans un autre article, ils ont disséqué des circuits intégrés suspects d'Atmel et ont trouvé une plaquette de silicium semi-conducteur ON à l'intérieur. Les puces n'étaient pas des ATmegas fonctionnels, mais elles avaient du silicium, contrairement aux autres.


3
Pouvez-vous étoffer un peu cette réponse? Résumer les articles auxquels vous avez lié serait un bon début - en ce moment, si sparkfun tombe en panne pour une raison quelconque, votre réponse sera sans valeur.
Shog9

@ Shog9 Pourquoi? La question est loin de la base. Cette réponse est un résumé des cas de personnes recevant des puces mal étiquetées ( essentiellement des personnes partageant des expériences ). Qui cela va-t-il aider?
asheeshr

Je pourrais vous demander la même chose, @AsheeshR - pourquoi s'inquiéter d'une réponse quand la question est le problème? Quoi qu'il en soit, merci d'avoir ajouté le détail, TheDoctor.
Shog9

3

Ce n'est pas le moyen préféré de réparer les choses et certainement pas la première solution à considérer, mais vous pouvez envisager de programmer les octets de signature. Avant de tenter cela, assurez-vous absolument que vous voulez vraiment le faire et que vous avez étudié ce qui est impliqué pour l'annuler. Cela peut impliquer de modifier les fichiers de configuration sur votre ordinateur ...

Quoi qu'il en soit, la façon de définir les octets de signature du contrôleur est la suivante (non testé, je n'ai pas d'AVR de rechange):

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

2
Je sais que c'est très tard, mais je ne pense pas que ce soit une bonne idée de laisser cela comme la réponse acceptée incontestée: la signature sur un atmega328 n'est pas accessible en écriture, et à ma connaissance, la signature n'est pas accessible en écriture sur N'IMPORTE QUEL atmega ou attiny.
microtherion

2
Par intérêt, j'ai essayé l'approche ci-dessus, que avrdude a acceptée dans un sens: avrdude: writing signature (3 bytes)- mais elle n'a pas réussi:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f
Nick Gammon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.