AVR: Unterschied zwischen P-, A- und PA-Versionen

OP #1835408
Lesenswert?
• ▲
▼
Hallo zusammen,

ich blicke langsam bei der Benamsung der AVRs nicht mehr ganz durch. Zu 
Zeiten des ATmega8 war alles noch so einfach ;)
Mittlerweile wurde der ATmega8 (den es anscheinend wieder zu geben 
scheint...) ja durch den ATmega88 und seine Verwandten (ATmega48, 168, 
328) ersetzt. Soweit war das ja auch alles noch schön und gut, da gibt 
es wirklich einige nette Features (Zwei Compare-Kanäle pro Timer, CLKPR, 
etc.). Doch in der Zwischenzeit sind diese Versionen ja auch schon 
wieder "not recommended for new designs" mit dem Verweis auf die 
PA-Versionen. Aber was hat sich da geändert? Das P ist eigentlich klar, 
picoPower steht ja einfach für besonders sparsam. Aber was ist mit dem 
A? Der Titel vom ATmega88PA-Datenblatt sieht ja beispielsweise auch 
schon recht interessant aus:
ATmega48A/48PA/88A/88PA/168A/168PA/328/328P
Im Datenblatt an sich wird dann abgesehen von Ausnahmen 
(Instruktionsbreite bei Interruptvektoren, Speichervolumina, ...) auch 
gar nicht mehr grossartig auf die einzelnen Versionen eingegangen, somit 
sollten die doch ohnehin weitestgehend (binär-)kompatibel sein. Doch wo 
liegen denn nun wirklich die Unterschiede zwischen den A-, P-, PA- und 
"Ur"-versionen (Ohne Suffix)? Konkret geht es mir dabei vor Allem um die 
Kompatibilität zur avr-libc. Bezogen auf den 16kiB-Typen ATmega168XX 
wird hier ja der ATmega168, der ATmega168A und der ATmega168P 
unterstützt, nicht jedoch der ATmega168PA. Letzterer wird vom GCC zwar 
erkannt, jedoch mit der Fehlermeldung "ATmega168PA supported for 
assembler only" quittiert. Und das obwohl die P- und die PA-Version 
abgesehen von elektrischen Eigenschaften doch eigentlich identisch sein 
müssten o.O

Kann mir da jemand sagen, was mit welcher Einstellung nun wirklich 
sicher funktioniert? Die Programme kompiliert mit -mmcu=atmega168 
scheinen auch auf der PA-Version zu funktionieren, aber ist das 
zuverlässig und sicher?

Ich wäre froh, mir könnte da jemand etwas auf die Sprünge helfen...

Danke und Gruss,
Philipp
OP #1835438
Lesenswert?
• ▲
▼
Danke für den Hinweis Jan. Den Artikel hatte ich glatt übersehen. Sollte 
also soweit eigentlich problemlos gehen...

@Mod: Ich hatte den Thread in "GCC" gepostet, weil es mir insbesondere 
um die Kompatibilität zur libc ging. Aber da anscheinend eh alles 
binärkompatibel ist, hat das darauf wohl keinen Einfluss.
Beitrag #4997259 wurde von einem Moderator gelöscht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.