habe hier ein älteres Design mit dem ATMega16-U im 44 pin TQFP Gehäuse welcher mit 5V und 16 Mhz läuft. Dieses Teil ist ja immer schlechter erhältlich und wird langsam auch unverschämt teuer. Trotzdem habe ich jetzt eher versehentlich einen Tray ATMega16A-AU bestellt und auch erhalten. Im Datenblatt kann ich ausser dem größeren Betriebsspannungsbereich und Takt kaum Unterschiede feststellen. Gehe ich richtig in der Annahme, daß der A Typ den ohne A direkt ersetzen kann? 1) Muß man von der Firmware etwas neu übersetzen oder sogar anpassen? 2) Muß man die Options Bytes beim Flashen irgendwie anders setzen? 3) Funktioniert das Flashen mit dem AVRStudio 4.19 und AVRISP MK-II? Ist beim Wechsel sonst noch was zu beachten?
Üblicherweise gibt es in solchen Fällen ein Dokument über die Unterschiede.
:
Bearbeitet durch User
(prx) A. K. schrieb: > Üblicherweise gibt es in solchen Fällen ein Dokument über die > Unterschiede. Eines ist z.B. das hier: https://www.professordan.com/avr/techlib/techlib8/appnotes/pdf_avr/AVR522.pdf
J. V. schrieb: > habe hier ein älteres Design mit dem ATMega16-U im 44 pin TQFP Gehäuse ... > versehentlich einen Tray ATMega16A-AU bestellt ... > Gehe ich richtig in der Annahme, daß der A Typ den ohne A direkt > ersetzen kann? Zur Beantwortung dieser Fragen gibt es vom Atmel die "Migration Guide" genannten Appnotes. Da steht drin was man beachten muß wenn man von einem Typ auf den Nachfolger umsteigt. Ich habe hier "AVR523: Migration from ATmega8 to ATmega8A" vorliegen. Aus dem Dokument geht hervor, daß der ATmega8A das gleiche prinzipielle Design wie der ATmega8 ist, nur geshrinkt (vulgo: kleinere Strukturen). Damit einher geht eine verringerte Stromaufnahme. Und durch (vermutlich) schlechtere Prozeßbeherrschung streuen H- und L-Pegel etwas mehr. Sowohl bei Ein- als auch Ausgängen. IIRC war das bei allen ATxxx zu ATxxxA Wechseln so. Aber wenn du es sicher wissen willst, mußt du das Dokument finden und lesen.
J. V. schrieb: > Gehe ich richtig in der Annahme, daß der A Typ den ohne A direkt > ersetzen kann? Ergänzend zu den anderen Antworten: Die "A"-Typen sind sogenannte die-shrink-Derivate. Man hat das originale Design verkleinert (und damit billiger in der Produktion gemacht), indem man auf neuere Prozesse mit kleineren Strukturen gegangen ist, aber kein komplettes (teures) Redesign vorgenommen hat, sondern nur die Standardzellen verkleinert hat. Digital sind sie normalerweise völlig gleich zu den Vorgängern (ich glaube mich aber zu erinnern, dass es bei einem AVR eine Ausnahme gab). Analog wurden manche Dinge dadurch besser, bspw. kann man bei den meisten (oder allen) A-Derivaten den kompletten Frequenz-/Betriebsspannungsbereich mit dem gleichen Silizium abdecken, während es vorher immer noch eine "L" oder "V" genannte Variante gab mit geringerer zulässiger Betriebsspannung bei niedrigerem Takt.
Softwareseitig dürften die Unterschiede nicht allzu groß sein. Beide haven die gleiche Signatur: 0x1E9403. avrdude macht sich auch nicht die Mühe, zwiachen ATmega16 und ATmega16A zu unterscheiden, bzw. ATmega16A / m16a wird im avrdude.conf nicht definiert. Die GCC Header sind beim Auffinden von Unterschieden leider nicht sehr hilfreich; wie's aussieht wurden iom16.h und iom16a.h mit unterschiedlichen Generatoren erstellt. Hilfreicher sind da die ATDF (also XML) aus den Device-Packs. ATmega16A.atdf hat ein paar extra Bitfelfer definiert; dass damit zusätzliche Funktionalität verbunden ist aber eher unwahrscheinlich. ATmega16.atdf
1 | <register caption="USART Baud Rate Register High Byte" name="UBRRH" offset="0x40" size="1" mask="0x0F"/> |
ATmega16A.atdf
1 | <register caption="USART Baud Rate Register" name="UBRRH" offset="0x40" size="1" mask="0x8F"> |
ist wohl nur einen unwesentlichen Tippfehler.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.