Tengo un ATmega328-PU mal firmado. ¿Cómo puedo arreglar eso?

12

En algún momento del pasado, estaba quemando cargadores de arranque en un nuevo lote de cuatro ATmega328-PU usando el Arduino IDE (tenga en cuenta que no hay P después de 328, es la versión un poco más barata no picopower del MCU, que no debe confundirse con el ATmega328P- PU con una P ), y me sorprendió el siguiente mensaje de avrdude:

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

Eso significa que avrdude pensó que el chip no era lo que decía su etiqueta. Luego cambié el tipo de chip en mi Arduino IDE a ATmega328P-PU y avrdude quemó el gestor de arranque sin quejas. Lo que eso significa es que el chip fue etiquetado como un MCU e internamente respondió como otro, ligeramente diferente.

Lo que me gustaría saber es:

  • ¿Qué tan raro es este evento? ¿Alguien ha tenido una experiencia similar? ( Pregunta original, fuera de tema )

  • ¿Es posible arreglar esto? ¿Cómo puedo arreglar la firma para que avrdude reconozca el chip correctamente?

Esta es una publicación cruzada de EESE . Publiqué esta pregunta allí, pero no atrajo mucha atención, así que quería ver si alguien de nuestra comunidad tuvo una experiencia similar.

Ricardo
fuente
1
Parece que su proveedor simplemente etiquetó erróneamente algunos 328P (que es lo que representa esta firma) como 328.
microtherion

Respuestas:

4

Mientras navegaba por sparkfun, encontré varias publicaciones de noticias que muestran su lucha con chips mal etiquetados. Aquí hay algunos:

Sparkfun había recibido un envío cuestionable si los circuitos integrados de un nuevo vendedor en China. Decidieron probarlos antes de enviarlos a producción, y ninguno de sus paneles de prueba funcionó. Utilizando ácido nítrico, pudieron quitar la carcasa de los circuitos integrados y formar un trozo de metal que parecía cobre.

En otro artículo, diseccionaron algunos circuitos integrados sospechosos de Atmel, y encontraron una oblea de silicio semiconductor en el interior. Los chips no eran ATmegas funcionales, pero tenían silicio, a diferencia de los otros.

TheDoctor
fuente
3
¿Puedes dar un poco de respuesta a esta respuesta? Resumir los artículos a los que se vinculó sería un buen comienzo, en este momento, si el sparkfun falla por algún motivo, su respuesta no tendrá valor.
Shog9
@ Shog9 ¿Por qué? La pregunta está fuera de lugar. Esta respuesta es un resumen de instancias de personas que reciben chips mal etiquetados ( esencialmente personas que comparten experiencias ). ¿A quién va a ayudar esto?
asheeshr
Podría preguntarle lo mismo, @AsheeshR: ¿por qué preocuparse por una respuesta cuando la pregunta es el problema? De todos modos, gracias por agregar el detalle, TheDoctor.
Shog9
3

No es la forma preferida de arreglar las cosas y ciertamente no es la primera solución a considerar, pero puede considerar programar los bytes de firma. Antes de intentar esto, esté absolutamente seguro de que realmente desea hacer esto y ha investigado qué implica deshacer esto. Esto puede implicar el cambio de archivos de configuración en su computadora ...

De todos modos, la forma de configurar los bytes de firma del controlador es la siguiente (sin probar, no tengo un AVR de repuesto por ahí):

avrdude -p atmega328 -c arduino -P /dev/ttyUSB003 -b 19200 -v -U signature:w:0x1E,0x95,0x14:m
jippie
fuente
2
Sé que es muy tarde, pero no creo que sea una buena idea dejar que esto permanezca como la respuesta aceptada sin respuesta: la firma en un atmega328 no se puede escribir, y que yo sepa, la firma no se puede escribir en CUALQUIER atmega o attiny
microtherion
2
Por interés, probé el enfoque anterior, que avrdude aceptó en cierto sentido: avrdude: writing signature (3 bytes)- sin embargo no lo logró:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f
Nick Gammon