¿ATmega328 con Optiboot no es compatible con Arduino?

Recientemente compré varios chips ATmega328 cargados con Optiboot (Arduino Uno) para algunos proyectos en los que estoy trabajando, pero noté algo extraño en ellos. Ya tengo muchas placas Arduino en mi colección, pero esta vez quería hacer un proyecto muy básico basado en Arduino con un pequeño número de componentes.

Piense en algo como Arduino Sleep Watchdog Battery .

Con todos los chips también pedí resonadores ZTT de 16 MHz .

Pero si enciendo el ATmega328 y conecto un LED a D13, el ATmega328 se encenderá y parpadeará el LED, pero a un ritmo cada vez mayor, y luego dejará de parpadear después de unos tres segundos.

Pensando que podría haber sido mi cableado, intenté usar los chips ATmega328 en mis otras placas Arduino y noté lo mismo. Pensando que podría ser un chip defectuoso, probé tres chips en diferentes placas, todos con el mismo problema. En caso de que tuviera un componente defectuoso que soplara los chips, ninguno de los chips ATmega328 ha tocado un componente que tenga otro chip defectuoso.

Si trato de cargar un boceto, recibo un error de "no sincronizado" y no se puede cargar.

Todos los chips parecen haber venido de SparkFun /LBE. Uno de los proveedores de chips me dijo que hay un lote defectuoso de SparkFun, pero no puedo encontrar nada que lo respalde.

Pensando que el cargador de arranque podría estar dañado, configuré otro Arduino como programador de ISP, pero seguía dándome errores y devolviendo la firma del chip como un ATmega168 (quitando la etiqueta, confirmé que el chip realmente es un ATmega328P-PU), pero como este fue mi primer intento de usar un programador de ISP, atribuí este problema a un error del usuario (yo) y pedí un programador de ISP listo para usar (aún por recibir).

¿Como puedo solucionar este problema?

¿Probaste alguno de ellos con un cristal? Por lo que he visto, los resonadores pueden no ser lo suficientemente precisos para la comunicación en serie en algunos casos. Aún así, no explicaría el problema principal. ¿Alguno de ellos también funcionó con oscilador interno?
Probé con cristales y resonadores y ambos tenían el mismo problema, sin un cristal, los chips no parecen ejecutar el boceto cargado y supuse que se debía a que las banderas debían configurarse al grabar el gestor de arranque, seguí este tutorial y no se pudo cargar el cargador de arranque usando el oscilador interno arduino.cc/en/Tutorial/ArduinoToBreadboard
Probé un chip en una placa ATmega168 con un cristal de 16 MHz y mostró el mismo problema. También probé uno de los otros chips en una placa que tenía un cristal de 8mhz/12mhz y también tenía el mismo problema. Así que no creo que el problema esté relacionado con el cristal/oscilador.
Las "babosas" chispeantes deberían ser historia ahora; los chips no eran atmegas en absoluto, sino algún componente de la fuente de alimentación y se vendieron pegados a un certificado de broma después de que se descubrió el problema, también eran de montaje superficial, no DIP. Cuando leyó una firma atmega168, ¿estaba usando un arduino basado en '168 como ISP? Probablemente estabas hablando con su cargador de arranque, no con el boceto del ISP. Por supuesto, es posible que los 168 se etiqueten fraudulentamente como 328P, pero no estaría dispuesto a sospecharlo hasta que tenga un ISP 328P conocido y funcione en el mismo socket donde falló el desconocido.

Respuestas (1)

El problema era el firmware cargado. Después de volver a grabar el firmware en todos los chips, todo parece funcionar.

Es curioso que todos los chips que pedí tuvieran el mismo gestor de arranque corrupto.