Forum: Mikrocontroller und Digitale Elektronik Geschichtsfragen zu Atmel ATMega


von J. V. (janvi)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

Üblicherweise gibt es in solchen Fällen ein Dokument über die 
Unterschiede.

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

(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

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.