Forum: Mikrocontroller und Digitale Elektronik Neuer Microcontroller von Atmel


von Frank E. (erdi-soft)


Lesenswert?

Hi Leute,

Atmel hat nen neuen Controller angekündigt. Hört sich ganz nett an, mit
seinen 32bit und (so wie es aussieht) DSP-Fähigkeit.

http://www.atmel.com/products/AVR32/

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Hmm. Wenn sie diese verkrampfte Harvard-Architektur beibehalten, dann
will ich das Teil nicht anfassen müssen.

von peter dannegger (Gast)


Lesenswert?

Ist ja alles nur wischiwaschi, was da so steht.

Interessant wäre doch die Architektur und der Befehlssatz.


Peter

von Micha (Gast)


Lesenswert?

Schade, nen AVR16-Neumann würde uns wohl mehr bringen.

von Jim (Gast)


Lesenswert?

Nunja, aber die Benchmarks sprechen für sich.

Einen ARM macht der ja locker lang (wohlgemerkt ARM11, nicht diese 7er
Schiene, auf der sie sich ja mit Philips bekämpfen).

Wenn der GCC portiert wird und der Preis attraktiv ist, wieso nicht?

von Frank E. (erdi-soft)


Lesenswert?

@Peter:

Da gibts ne PDF mit einigen Specs. Kann sowohl RISC als auch JAVA
verstehen...
Nur welche Architektur nun genau, steht da leider auch nicht. Oder ich
habs überlesen.

von Andi (Gast)


Lesenswert?

"Wenn der GCC portiert wird und der Preis attraktiv ist, wieso
nicht?"


Laut Atmel wurden die Benchmarks mit dem GCC 4.01 gemacht...

von Jim (Gast)


Lesenswert?

"Nur welche Architektur nun genau, steht da leider auch nicht. Oder
ich
habs überlesen."

Hast Du, es ist die AVR32-Architektur...

von Jim (Gast)


Lesenswert?

"Laut Atmel wurden die Benchmarks mit dem GCC 4.01 gemacht..."


Hmmm, das hört sich doch schon prima an!

von Andi (Gast)


Lesenswert?

"Hmmm, das hört sich doch schon prima an!"


Das schon, aber auf dem Logo für die AVR32-Architektur ist ein
BGA-Gehäuse abgebildet.
Das schließt schon mal selbstgemachte Prototypen aus :(
Hoffentlich kommen da noch andere Gehäuse.

von Jim (Gast)


Lesenswert?

Soviel zum Preis:

"Prices for the 32-bit MCUs are expected to be to be comparable to
those of high-end 32-bit MCUs."


Also nix mit ARM7 Ersatz!

von FeeJai (Gast)


Lesenswert?

Ja, die haben für Ihn ein Linux portiert und mit dem richtigen gcc den
Benchmark gemacht. Nun ist nur die Frage, ob man ihn auch ohne OS
betreiben kann.

MfG,
FeeJai

von Jim (Gast)


Lesenswert?


von romanua (Gast)


Lesenswert?


von Michael (Gast)


Lesenswert?

Da ich mir schon immer meine Digitalkamera selber bauen wollte, scheint
mir das Teil optimal zu sein. Ich hoffe nur, daß man dafür nicht mehr
diese lästigen 3,3V benötigt; 0,7V wären mir am liebsten 1/2 AA
Batterie reicht dann :-)

von ,,,, (Gast)


Lesenswert?

Du hast sorgen. Ich würde mal lieber für ein annehmbares Gehäuse beten.


Laufen denn die CMOS/CCD Sensoren nur mit 0.7V?

von Jim (Gast)


Lesenswert?

Es gibt zwei Mikroarchitekturen, die 32A ist für die kleineren und
billigeren Controller gedacht (keine Shadowregister in Interrupts und
für Returnadressen).
Es scheint also auch kleinere Varianten zu geben. Die kommen sicherlich
auch als TQFP64 oder ähnlich.
Den Markt kann Atmel sich nicht entgehen lassen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Micha:
"AVR16-Neumann" gibt's doch schon, nennt sich MSP430.

von Thomas W. (Gast)


Lesenswert?

Bin jetzt nicht der Digital-Experte, aber ich hab das immer so
verstanden, dass die Havard-Struktur für ein flottes DSP Design 1. Wahl
ist, da dort mehrere Operationen in einem Takt auf verschiedene
Speicherbereiche angewandt werden können. Das dadurch die
Programmierung unhandlicher wird ist eine andere Sache, aber der neue
Controller soll ja ausdrücklich DSP fähig sein. Hab ich da was falsch
verstanden? Klärt mich auf...

von Alex (Gast)


Lesenswert?

@Thomas

Das hast du richtig verstanden. Ich programmiere 16-Bit DSPs mit
Harvard Architektur in Assembler und finde daran absolut nichts
Negatives.

Alex

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

In Assembler kann man Harvard ja auch gerne haben, aber in C ist das ein
Krampf im Arsch ...
Man muss sich nur die zig "wie bekomme ich $irgendwas ins
Flash"-Threads hier ansehen.

von Alex (Gast)


Lesenswert?

Hmm, dem DSP-Compiler teile ich direkt mit, wohin er die Daten legen
soll (Daten- oder Programmspeicher) und damit hat es sich.

Allerdings hat der auch keinen Flash sondern besteht intern komplett
aus RAM. Anders wird es auch nichts mit "vernünftigen" Taktraten.

von Dirk (Gast)


Lesenswert?

Wenn ich mich recht entsinne, hatte ick mal vor ca 1 Jahr im Studium
gelernt, das DSPs alleine schon aus gründen der geschwindigkeit den
Speicher separieren. Programmspeicher und Datenspeicher sind getrennte
Speicher. Wenn Programm und Daten im selben Speicher liegen würden,
würde die arbeit des Programms durch zugriffe auf die Daten sich selber
behindern und umgekehrt. Logisch ist dann also eine trenung von daten
und programmspeicher. Das beide Speicher RAMs sind ist eine andere
Sache, es ist aber immernoch eine Harvard-Architektur.

CA

von Ulli (Gast)


Lesenswert?

Hallo wenn ich mich mal mit einmischen darf...
errinnert ihr euch noch an den guten alten 80c51 und seiner Neumann
Architektur? 12 Takte hat der gebraucht und dazu musste noch jedes Byte
durch den Akku hin und her geschickt werden ;-) ..finde ich schon ganz
gut so mit dem Avr Harvard System.
Dazu kommt bei dem hier, soweit ich es eben mal überschaut hab, das
noch als 7 fache Pipeline ausgelegt ergo müssten dadurch auch bis zu 7
Befehle gleichzeitig ausgeführt werden können also fast wie bei einen
Dsp - oder liege ich damit falsch?
Frage @ Rufus:
Wo ist das Problem, dafür etwas in C oder Asm zu schreiben
und wieso muss ich (so wie ich das verstanden habe) etwas in der
Programmausführung ins Flash schreiben? <- darin steht bei mir normal
das Programm und keine Variablen.

mfg Ulli

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

RAM-Variablen wollen anders behandelt werden als ROM-Konstanten, das
nervt besonders in C.

Dass der Ur-8051 12 Takte pro Befehl braucht hat mit Neumann <->
Harvard nicht viel zu tun, es gibt auch aktuelle Varianten mit 1 Takt
pro Befehl.

von Didi (Gast)


Lesenswert?

"Dazu kommt bei dem hier, soweit ich es eben mal überschaut hab, das
noch als 7 fache Pipeline ausgelegt ergo müssten dadurch auch bis zu 7
Befehle gleichzeitig ausgeführt werden können also fast wie bei einen
Dsp - oder liege ich damit falsch? "


Hmmm, also mein Pentium4 (Extreme Edition) hat eine Pipeline von 31
Stufen, ist aber nix DSP...

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Wenn der Compiler ordentlichen Support für Harvard bietet dann ist das
eigentlich die Architektur der Wahl wenn man nicht gerade
self-modifying Code schreiben will. Aber sowas tut man eigentlich nicht
mehr.

BTW:
Auch von-Neumann Maschinen wie die aktuellen x86er arbeiten auf der
Stufe des L1-Cache mit einer Harvard-Architektur. Das bringt natürlich
etwas Verwaltungsaufwand mit sich aber zumindest im Bereich der PC-,
Workstation- und Serverprozessoren spielen die paar zehntausend
Transistoren bei megabyteweise Cache auf dem Chip keine Rolle.

Matthias

von A.K. (Gast)


Lesenswert?

"Auch von-Neumann Maschinen wie die aktuellen x86er arbeiten auf der
Stufe des L1-Cache mit einer Harvard-Architektur."

Leider sind diese Begriffe ziemlich zweideutig.

Die klassische Bedeutung bezieht sich auf die Anzahl der Busse
(implementation architecture). Wie man an den PC-Prozessoren sieht, ist
das jedoch für jeden ausser den Chipdesignern völlig bedeutungslos
(386=Von-Neumann, 486=? [1 Cache aber 2 Busse], Pentium=Harvard).

Ich ziehe es vor, diese Begriffe auf die Anzahl Adressräume zu beziehen
(instruction set architecture).

Um diese Problematik auf die Spitze zu treiben hat Mitsubishi den M16c
erfunden. Technisch in beiden Interpretationsvarianten weitgehend eine
Von-Neumann-Architektur, hat man freilich beim Programmieren mit den
gleichen Beschränkungen wie bei Harvard-Architekturen zu kämpfen
(verschiedene Zugriffstechnik). Und der bzgl. Architektur exakt gleiche
R8c ist hingegen mustergültig Von-Neumannsch.

von A.K. (Gast)


Lesenswert?

"Wenn der Compiler ordentlichen Support für Harvard bietet dann ist das
eigentlich die Architektur der Wahl wenn man nicht gerade
self-modifying Code schreiben will"

...und man kein gesteigertes Interesse an portablem Code hat. Denn die
Klimmzüge, die der Compiler dafür treiben muss, sehen bei jedem
irgendwie anders aus.

Wobei das natürlich bei Programmen auf unterster Ebene egal ist. Wer
die Bits eines Controllers anspricht, ist ohnehin an den Controller-Typ
gebunden, und wenn er sich dann auch noch an den Compiler bindet, ist
das allenfalls auf sehr lange Frist störend.

Aber je grösser Programme werden, desto geringer ist der Anteil
gerätespezifischen Codes darin. Und desto grösser der Ärger mit
unterschiedlichen Speicherklassen, verschiedenen Stringfunktionen
dafür, usw.

von Lokko (Gast)


Lesenswert?

Hab den AVR32 heute auf der embedded world gesehen.
Hat mal eben fein Ice Age MPEG4 decodiert :)

Laut MSC kommen wohl erst die Varianten ohne Flash etc. auf den Markt
und dann für 9€ wenn man EINIGE abnimmt.

Auf der Messe war nur ein Developmentboard mit BGA zu bestaunen. Und
wie der Herr von MSC gesagt hat, verfügbar wohl Ende des Jahres. Wer
wie ich auf die AT91SAM7X Reihe wartet und Atmel schon was länger
kennt, denkt sich schon seinen Teil.

Zum Basteln wird das wohl nix werden. Aber wer sich so ein Dingen antun
will, der kann sich jetzt auch schon auf nen XScale stürzen. :)

von Philipp Sªsse (Gast)


Lesenswert?

In dem Schrieb, den die verteilt haben, stand etwas von "Produktion
läuft im zweiten Quartal an", aber das glauben sie wohl selbst nicht.

Und über die Architektur des AVR ärgert sich schon, wer ein paar
flexible Debugroutinen schreiben will (geschweige denn einen
Interpreter). Wenn es wenigstens etwas RAM im Befehlsadreßraum gäbe,
könnte man sich behelfen, aber dauernd temporäre Befehle flashen, das
kann es nicht sein. Und genügend Controller beweisen, das es nicht sein
muß!

von Thomas P. (pototschnig)


Lesenswert?

L1 cache hat mit Harvard nichts zu tun! Ob Harvard oder Neumann sieht
man in erster Linie daran, dass der Speicherbereich für Code und Daten
getrennt ist oder nicht. Der L1-Cache hat damit garnichts zu tun, weil
der von beiden Architekturen nicht definiert wird.

Zum DSP: Viele DSPs haben mehrere getrennte Speicher, z.B. 1 Bus für's
Programm, 2 Busse für Daten. "DSP-Befehle" bedeuten noch lange nicht,
dass man mehrere Busse haben muss, oder die Architektur Harvard ist.
Das bedeutet nur, dass "DSP-ähnliche" Befehle zur Verfügung stellen.
DSP-Befehle sind z.B. für Faltungsoperationen, transformationen usw...
hervorragend geeignet und stehen normalerweise auf normalen
nicht-DSP-Plattformen so nicht zur Verfügung.

Und jetzt zur Pipeline: Eine 7-stufige Pipeline bedeutet nicht, dass 7
Befehle "gleichzeitig ausgeführt werden können". Vielmehr bedeutet
das, dass eine Befehlsausführung in 7 Teilschritte zerlegt wird und in
jedem Teilschritt müssen weniger Aufgaben erledigt werden. Dadurch
lässt sich die Taktfrequenz deutlich erhöhen. Tatsache ist, dass aber 7
Befehle gleichzeitig bearbeitet werden - es sieht aber für den
außenstehenenden so aus, dass in jedem Taktzyklus 1 Befehl ausgeführt
wird. Der Pferdefuß an einer Pipeline ist, wenn unvorhergesehen Sprünge
im Programmcode vorkommen (bedingte Sprünge), denn dann muss die
Pipeline komplett ausgeleert und neu aufgefüllt werden, was (relativ)
lange dauert (=> enormes Problem beim P4 mit >30 Stufen!!).
Der AVR32 soll aber (laut vorläufigem Datenblatt) eine recht gute
Branch-Predict-Unit integriert haben, die zero-cycle-branches
ermöglicht. Das sollte theoretisch einen recht guten
Geschwindigkeitsvorteil bringen.

von Lupin (Gast)


Lesenswert?

Abgesehen von der Architektur soll der neue controller big endian werden
wenn ich das richtig verstehe - PCs sind doch little endian oder? - da
wird die Ansteuerung von Speichermedien ziemlich problematisch denke
ich mal.

Ich glaube die neuen controller werden absolut nicht bastler-freundlich

von Thomas P. (pototschnig)


Lesenswert?

@Lupin: Ja - der AVR32 ist BigEndian. Aber Probleme gibt's deswegen
kaum. Daten, die aus Bytes bestehen bleiben unverändert. Genauso wie
Strings oder ähnliches. Das Einzige was sich ändert ist die
Byte-Reihenfolge in einem 16- und 32Bit Datum (WORD, DWORD). Aber darum
braucht man sich normalerweise nicht zu kümmern, weil das ja der
Compiler für einen erledigt. Hier und da muss man schon etwas
aufpassen. Aber "ziemlich problematisch" würde ich das wirklich nicht
nennen.

Zum 2ten: Da bin ich mir nicht so sicher. Es soll laut dem Datenblatt
mehrere AVR32-Varianten geben. Den AVRA, der eine abgespeckte Version
darstellt und den AVRB. Der AVR-AP, der alles hat, ist die erste
Version vom AVRB. Vorhin hat jemand das PDF zum AVR32 gepostet, da
steht's nochmal drin.

Ich könnte mir aber vorstellen, dass es vom AVRA kleinere,
bastlerfreundlichere Devices gibt. Aber das weiß bis jetzt leider noch
niemand. Auf der Embedded World hatte ich mich mit jemandem von Atmel
unterhalten und der meinte, es wird welche mit und ohne
Memory-Interface geben, also auch Flash-Based. Die Informationen
natürlich ohne Gewähr :-)

von Philipp Sªsse (Gast)


Lesenswert?

"Hilfe! BigEndian!" Also ebenso wie PowerPC, HPPA, ARM, Alpha, Sparc,
68000 usw (ja, ich weiß: teilweise lassen die sich auch auf
LittleEndian umstellen, aber nur teilweise). Jetzt wird also schon der
Normalfall zum Nachteil erklärt? Gibt es außer x86 überhaupt eine
Architektur, die nur LittleEndian kann?

Wer damit Probleme hat, hat unsauber programmiert (beliebt:
Konfigurationsarray mit Integern bytesweise ins Eeprom schreiben. So
ein Code ist natürlich nicht mehr transportabel). Wer sich an die
Regeln hält und nicht gedankenlos mit unions jongliert, merkt nichts
davon.

Atmel weiß genau, was die Kunden am AVR schätzen und wird das nicht
über Bord werfen. Also: freudige Erwartung.

von Jussarian (Gast)


Lesenswert?

wie schon erwähnt, in der Pipeline werden keine Befehle gleichzeitig
abgearbeitet.

Die Pipiline dient zur vorrausschauenden Befehlsabarbeitung, wie dies
für Branch-Predict und zero-cycle-branches notwendig ist.

Damit ist aber bei Software-Zeitschleifen keine exate Zeitbestimmung
möglich.

Das bei bestimmten Befehlskombinationen die Pipline gelöscht wird, wäre
ein Rückschritt. Beim Infineon XC161CJ ist mir dieses Verhalten nicht
bekannt.

von Thomas P. (pototschnig)


Lesenswert?

@Jussarian: "vorausschauende Befehlsabarbeitung" ist etwas
irreführend. Das hört sich so an, als wärst du der Meinung die Pipeline
ist nur dazu da, um vorausschauen zu können wo als nächstes hingebrancht
wird. Der AVR32 hat einen eigenen Buffer drin, in dem "protokoliert"
wird, wie die letzten Sprünge waren. Und aus diesem Wissen entscheided
er dann, in welchem Pfad er weiterarbeitet. Ist die Annahme falsch,
muss die Pipeline geleert werden und er macht im richtigen Zweig
weiter. (Siehe AVR32-AP.PDF)

In dem Punkt gebe ich dir recht. Exakte Zeitbestimmt wird nicht
funktionieren. Das Branch-Predict-Feature ist vollständig unsichtbar
für den Programmierer.

Der Programmierer merkt davon nichts. Wenn der Prozessor/MC den
nächsten Branch richtig voraussieht, dann arbeitet er einfach weiter.
Irrt er sich aber, z.B. weil eine Schleife beendet wird, dann muss er
die Pipeline ausleeren und sie wieder auffüllen.

Du kannst gerne hier nochmal nachlesen:
http://de.wikipedia.org/wiki/Pipeline-Architektur

von hans dieter (Gast)


Lesenswert?

auf der embedded habe ich folgendendes beim stand von atmel gesehen:
- also der soll einen I- und D-Chache haben (also interne harvard, wie
bei allen heutigen schnellen prozessoren)
- neben bga und mlf soll es auch tqfp48 (+) varianten geben

von embedded Besucher (Gast)


Lesenswert?

Im April kommt bereits eine "abgespeckte" Version des AVR32

von Martin (Gast)


Lesenswert?

Gibt es denn schon ein richtiges Datenblatt?
Ich meine, wenn ein schneller Controller bastlerfreundlich sein soll,
dann sollte er zumindest PLL haben, denn ein schneller
externer Quartz ist keine so tolle Sache.
Wie groß groß soll der Flash- bzw. RAM-Speicher sein?

von Hans (Gast)


Lesenswert?

irgendwie kann ich mir beim besten willen nicht vorstellen, dass sich
atmel selbst konkurenz für einen chip macht..

wollten die nicht jetzt mal den sam7x oder wie das teil heißt mit
ethernet releasen? für meinen teil klingt das doch irgendwie ähnlich..
wobei dieser "arm32" eher arm9 kaliver hat wie sich das so anhört...

btw hans dieter... instruction und datacaches haben nix mit schnellen
prozessoren zu tun.. du kannst nur keinen externen ram mit 1Ghz
ansprechen ;) aber du kannst ja mal versuchen auf nem p4 oä. random
ramzugriffe zu machen.. da freut sich die performance ;)

die solln mal ein ding mit 256k ram  und 256k flash oder so machen...
das wär wirklich nett.. eigentlich würden schon 64k flash genügen... da
braucht nur ein loader platz haben der mir von ner mmc das prog in den
ram läd... och wär das schön ;) ein richtiger netter debugger :D

oder aber sdram auch auf dem kleinsten der familie...
73

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

>Exakte Zeitbestimmt wird nicht funktionieren.
Natürlich kann man das (theoretisch) machen. Das was der Prozessor
macht ist immer noch eindeutig bei gegebener Befehlsfolge. Das das aber
dermaßen komplex ist das man das nicht (praktisch) machen will ist eine
andere Geschichte.

>du kannst nur keinen externen ram mit 1Ghz ansprechen
<nitpickmode=on>
Das erzähl mal Firmen wie nVidia und ATI. Die fahren ihre Speicher mit
knapp unter 800MHz DDR. Da ist man nicht mehr weit weg von 1GHz echtem
Takt.
Noch extremer geht es bei Rambus zur Sache.
<nitpickmode=off>

Das Problem sind nicht die Transferraten. Ein P4 kann keinen
Instruktionsstrom von sechs GByte/s verarbeiten. Es sind viel mehr die
Latenzen. Die sind beim externen Speicher natürlich wesentlich größer
als bei L2 oder sogar L1-Cache.

Matthias

von A. N. (netbandit)


Lesenswert?

@Hans:

mal etwas Off Topic...
Ich kann mich da an so ein Display erinnern, was ist daraus geworden?

von Markus K. (markus-)


Lesenswert?

@Hans:
"die solln mal ein ding mit 256k ram  und 256k flash oder so
machen...
das wär wirklich nett.."

Du meinst sowas?
http://eu.renesas.com/fmwk.jsp?cnt=32192_root.jsp&fp=/products/mpumcu/m32r_family/m32r_ecu_series/32192_group/
1MB Flash, 176KB RAM, 160MHz.

von Frank E. (erdi-soft)


Lesenswert?

Hab das Teil gestern auf der Embedded World gesehen. Schaut schick aus.
Und dekodiert MPEG4 tatsächlich ohne ruckeln in QVGA-Auflösung.
Allerdings weiß ich nicht, mit wieviel MHz der gelaufen ist.

Was BigEndian angeht, so ist das kein Problem. Irgendwo stand was von
wegen Konvertiereinheit von Big in LittleEndian.

Kann im laufe des Tages näheres Posten, wenn ich die Datenblätter mal
näher gesichtet habe.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Naja, im PR-Material ist der Claim drin, das geht mit 100MHz, wo andere
zwischen 170 und 266 MHz Takt dafür brauchen.
Und die Peripherie wird gleichzeitig mit bedient.

Gruss
Jadeclaw.

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.