Tengo una configuración con un ATMega32 funcionando perfectamente. Al reemplazar el ATMega32 con un ATMega32A, ya no pasa nada, ni siquiera oscila el oscilador de cristal. De acuerdo con la nota de cambio de Atmel, la resistencia pull-up de restablecimiento tiene un buen valor y los capacitores pull junto al cristal también están en su lugar. Probé con muchas partes diferentes (todas de un envío) del ATMega32A, siempre con el mismo comportamiento. Cambiando de nuevo a ATMega32 todo está bien de nuevo.
Finalmente configuro un circuito solo con el AVR, restablezco pull-up, crystal y pull-capacitors. ATMega32 funciona (cambios de cristal), ATMega32A no funciona (cambios de cristal no).
¿Se te ocurre algo que no sea que todos los ATMega32A que tengo en el laboratorio están rotos?
No ha mencionado los bits de fusibles en ninguna parte; es posible que deba configurar los bits de fusibles ATmega32A en los valores adecuados. Ese suele ser el problema cuando el oscilador no funciona. Los dos dispositivos pueden tener bits de fusible configurados para diferentes osciladores y/o tiempos de inicio.
Aunque las especificaciones son las mismas, es posible que obtenga diferentes comportamientos al ejecutar las piezas ligeramente fuera de las especificaciones, debido a los diferentes procesos de fabricación. Por ejemplo, si sus condensadores de carga en el cristal no estuvieran en el rango correcto, el ATmega32 podría haber funcionado de todos modos, mientras que el ATmega32A podría ser más exigente. Lo mismo ocurre con el voltaje, la corriente de suministro, el ruido de suministro, las restricciones de tiempo en el programador, etc.
Hola para mi ATMEGA32A PU
esto ayuda:
avrdude -c usbasp -p m32 -B 3
Para escribir un archivo hexadecimal en el microcontrolador, uso:
avrdude -c usbasp -p m32 -B 3 -U flash:w:Program.hex
Finalmente, descubrí lo que estaba saliendo mal y fue completamente mi culpa, y fue Chris Stratton quien dio la pista importante.
Los dispositivos AVR más antiguos se han configurado con los fusibles para que funcionen con un cristal externo. Los más nuevos están configurados para funcionar con el oscilador interno. De hecho, este es mucho más lento y mi avrdude simplemente estaba hablando demasiado rápido ... esa fue también la razón por la que no pude leer o escribir los fusibles. Después de encontrar el interruptor -B de avrdude, todo vuelve a estar bien.
Gracias de nuevo a todos los que respondieron y comentaron aquí.
jon l
dext0rb
m.alin
wollud1969