Ich habe ein Setup mit einem ATMega32, das perfekt läuft. Beim Austausch des ATMega32 gegen einen ATMega32A passiert nichts mehr, nicht einmal der Quarzoszillator schwingt. Laut Changenote von Atmel hat der Reset-Pullup-Widerstand einen guten Wert und die Pull-Kondensatoren neben dem Quarz sind auch vorhanden. Ich habe es mit vielen verschiedenen Teilen (alle aus einer Lieferung) des ATMega32A versucht, immer das gleiche Verhalten. Beim Wechsel zurück zum ATMega32 ist alles wieder in Ordnung.
Schließlich baue ich eine Schaltung nur mit dem AVR auf, setze Pull-up, Quarz und Pull-Kondensatoren zurück. ATMega32 funktioniert (Kristallschaukeln), ATMega32A funktioniert nicht (Kristallschaukeln nicht).
Fällt Ihnen etwas ein, außer dass alle ATMega32A, die ich im Labor habe, kaputt sind?
Sie haben nirgendwo Sicherungsbits erwähnt - möglicherweise müssen Sie die ATmega32A-Sicherungsbits auf die richtigen Werte einstellen. Das ist normalerweise das Problem, wenn der Oszillator nicht funktioniert. Die zwei Vorrichtungen können Sicherungsbits haben, die für unterschiedliche Oszillatoren und/oder Startzeiten gesetzt sind.
Auch wenn die Spezifikationen gleich sind, kann es aufgrund unterschiedlicher Herstellungsprozesse zu unterschiedlichen Verhaltensweisen kommen, wenn die Teile leicht außerhalb der Spezifikationen laufen. Wenn beispielsweise Ihre Ladekondensatoren auf dem Kristall nicht ganz im richtigen Bereich waren, hat der ATmega32 möglicherweise trotzdem funktioniert, während der ATmega32A wählerischer sein könnte. Gleiches gilt für Spannung, Versorgungsstrom, Versorgungsrauschen, Zeitbeschränkungen des Programmierers usw.
Hallo für mich ATMEGA32A PU
das hilft:
avrdude -c usbasp -p m32 -B 3
Um eine Hex-Datei in den Mikrocontroller zu schreiben, verwende ich:
avrdude -c usbasp -p m32 -B 3 -U flash:w:Program.hex
Schließlich fand ich heraus, was falsch lief, und es war völlig meine eigene Schuld, und es war Chris Stratton, der den wichtigen Hinweis gab.
Ältere AVR-Geräte wurden mit Sicherungen konfiguriert, um mit einem externen Quarz zu arbeiten. Neuere sind so konfiguriert, dass sie mit dem internen Oszillator arbeiten. Dieser ist in der Tat viel langsamer und mein avrdude sprach einfach zu schnell ... das war auch der Grund, warum ich die Fuses nicht lesen oder schreiben konnte. Nachdem ich den Schalter -B von avrdude gefunden habe, ist alles wieder in Ordnung.
Nochmals vielen Dank an alle, die hier geantwortet und kommentiert haben.
Jon L
dext0rb
m.Alin
willud1969