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.
Respuestas:
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.
fuente
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í):
fuente
avrdude: writing signature (3 bytes)
- sin embargo no lo logró:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f