Forum: Mikrocontroller und Digitale Elektronik Ist für den Wiedereinstieg ein AVR32 dass was ich will?


von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

Schönen guten Tag und frohe Ostern.

Ich habe mich seit fast 2 Jahren nichtmehr mit Elektronik und 
Microcontrollern beschäftigt.
Doch so langsam packt mich doch wieder der Bastel- und Frickelwahn und 
ich will mal wieder was in dem Bereich machen.
Zuvor habe ich die PIC16FXXX als Microcontroller verwendet, die fallen 
aber für mich jetzt flach weil es dafür keine gescheite IDE für Linux 
gibt,
ausserdem sind mir diese µCs inzwischen zu schwachbrüstig.

Nun was will ich?
- Entwicklungsumgebung nativ unter Linux (Ubuntu) nix mit Wine etc.
- "Brenner" und "Brennsoftware" zum Flashen des µCs muss 
Linux-kompatibel sein.
- Gute Dokumentation von Brenner und Evalboard.
- C als Programmiersprache.


Ich habe mich schon mal ein wenig umgeschaut und finde, dass der Atmel 
AVR32UC in etwa das ist was mir zusagen würde, weil:
- Toolchain (IDE?) für Linux
- Lässt sich in C Programmieren
- Hat ordentlich Bums (Rechenleistung)
- Viel Programmspeicher (512kb)
- Anständig IO (ADC, PWM, USART, SPI, I2C, etc.)

Für den Einstig würde ich mir das "UC3A Evalboard" aus dem Shop 
bestellen, einfach drauf aufs Steckbrett und lod gehts :-)

Nur habe ich noch ein paar dinge die mir noch nicht klar sind:
- Ist das "UC3A Evalboard" empfehlenswert?
- Gibt es noch andere günstige Einsteigsmöglichkeiten?
- Brauche ich für das "UC3A Evalboard" noch einen extra Brenner?
- Wie ist das mit diesen Fuses die es bei den AVRs gibt? Ich habe 
gelesen, dass ein häufiger Anfängerfehler dazu führt, dass daer µC 
unbrauchbar wird.
- Welche Software benötige ich um die AVR32 Programmieren und Flashen zu 
können?
- Wie schaut es aus mit der Lebenszeit für die AVR32? Ist absehbar ob 
die bald abgekündigt werden etc.
- Sollte ich mich vielleicht doch eher nach nem ARM umsehen, da diese 
Prozessorfamilie aller Wahrscheinlichkeit nicht so bald abgekündigt 
wird?

Mit freundlichen Grüssen
Thomas

von fchk (Gast)


Lesenswert?

Nimm doch einen Grashüpfer:

http://www.embedded-projects.net/index.php?page_id=237

Wenn Du unbedingt Linux willst, bekommst Du dort die volle Ladung, und 
solange Du Dir den Bootloader nicht zerschießt, brauchst Du auch keinen 
Programmer. Wenn doch: Der Atmel JTAG mkII wird unterstützt. Den 
brauchst Du auch für die kleineren AVR32, und der geht auch für die 
AVRs. Es sind zwar 300 Euro, aber die wirst Du eben investieren müssen. 
Wenn Du Realtime-Tracing willst, brauchst Du den Atmel One!, aber der 
kostet das doppelte.

Du hast reichlich Pins, und das Linux auf dem AVR32 unterstützt auch die 
AVR32 Peripherie inkl LCD-Controller, I2C, SPI etc etc.

Zum Entwickeln hast Du eine ganz normale gcc Toolchain, es ist alles 
dabei.

Die Fuses gibts auch auf dem AVR32, aber da kannst Du Dich nicht mehr 
aussperren, da die Auswahl der Clock softwaremäßig geht und das Teil 
immer mit dem internen RC-Oszillator startet. Das wäre vielleicht auch 
beim AVR sinnvoll gewesen, aber es hat wohl niemand dran gedacht.

Bezüglich der Lebenszeit der Architektur würde ich mir keine Sorgen 
machen, so neu wie die ist.

Alternativen:
Wenn Das ganze unter Linux laufen soll: ARM9 oder Cortex A8, ansonsten 
Cortex M3. Ich würde eher auf die Cortex Prozessoren gehen, weil das 
Interrupthandling dort um Klassen besser ist und Du wirklich alles in C 
machen kannst. Bei ARM 7/9/11 ist immer noch etwas Assemblercode 
notwendig. Außerdem Ist beim Cortex die Peripherie mehr vereinheitlicht, 
was den Umstieg von einem Hersteller zum anderen sehr erleichtert. Bei 
ARM 7/9/11 ist nur der nackte Prozessorkern vorgegeben, alles andere ist 
herstellerspezifisch.

Zur Enwicklungsumgebung etc.: thumb-2 Support im gcc ist noch relativ 
neu, d.h. aufpassen, dass Dein gcc das kann. Die Codequalität des gcc 
ist im Vergleich zu IAR und Keil/ARM (Keil gehört jetzt ARM, und die 
Compiler kommen eben vom Prozessordesigner) eher mäßig, aber was anderes 
wird eh außerhalb Deiner Reichweite und außerhalb Deiner Linux-Welt 
sein.

Es gibt relativ preiswerte JTAG-Adapter auf Basis des FTDI2232 für ARM, 
aber für SWD (Single Wire Debug, braucht weniger Pins als JTAG) und für 
die ETM (Embedded Trace Macrocell) brauchst Du wieder was richtiges wie 
Segger JLINK oder Keil uLink nebst passender Software, und das sind dann 
wieder einige 100€ mehr.

Ansonsten: MIPS z.B. in Form des PIC32, aber auch da verläßt Du die 
Linux-Welt wieder.

fchk

von Phil S. (zippi)


Lesenswert?

Hi,

>>Wenn Du unbedingt Linux willst, bekommst Du dort die volle Ladung
Der will nur die IDE in Linux haben und nicht, dass der Prozessor das 
Unterstützt.

>- Ist das "UC3A Evalboard" empfehlenswert?
Also das "UC3A Evalboard" Kannst du nehmen. Ist auch ein Bootloader 
drauf. Der Befindet sich auch in jeder MCU wenn du die Einzel kaufst. 
Also so kannst du später auch eigene Boards entwickeln und brauchst 
keinen Speziellen Programmer.

>- Gibt es noch andere günstige Einstiegsmöglichkeiten?
Alvidi Board: 
http://www.alvidi.de/shop/product_info.php?info=p7_AVR32-Module.html&XTCsid=0ef8e3b98a6503a8ba46547a0d35fc03
Ist auch fast 1:1 Kompatibel. Ein Großer unterschied ist nur, dass das 
Board hier aus dem Shop Jumper hat, womit du die Taster und LEDs die auf 
dem Board sind deaktivieren kannst.

>- Brauche ich für das "UC3A Evalboard" noch einen extra Brenner?
Wegen Bootloader nein. Zum debuggen JTAG ICE MKII gibt es China Dinger 
bei Ebay für ca. 80Euro.

>- Wie ist das mit diesen Fuses die es bei den AVRs gibt? Ich habe
>gelesen, dass ein häufiger Anfängerfehler dazu führt, dass der µC
>unbrauchbar wird.
Naja eigentlich brauchst du dich hier nicht so um die Fuses zu kümmern, 
da du z.b. Clock Frequenz im Programmcode einstellst.

>- Welche Software benötige ich um die AVR32 Programmieren und Flashen zu
>können?
Programmieren: AVR32 Studio
Flashen: FLIP
Alles kostenlos bei Atmel.com

>- Wie schaut es aus mit der Lebenszeit für die AVR32? Ist absehbar ob
>die bald abgekündigt werden etc.
Die AP7000 ja, Aber die UC3 nicht. Die haben jetzt auch erst noch ne FPU 
angekündigt für die UC3 und neue Arten.

>- Sollte ich mich vielleicht doch eher nach nem ARM umsehen, da diese
>Prozessorfamilie aller Wahrscheinlichkeit nicht so bald abgekündigt
>wird?
Naja da die UC3 wohl nicht so schnell abgekündigt werden, hat sich die 
frage erledigt.


Sonst noch Fragen?

Gruß
Zippi

von MCUA (Gast)


Lesenswert?

von MIPS würde ich die Finger lassen.
Die Dinger setzt keiner ein!
MIPS ist bisher nur insgesamt auf die Stückzahlen gekommen wegen extrem 
weniger Projekte mit extrem hohen Mengen.
soweit ich weiss hat MIPS bisher auch (deshalb) nur einen einzigen 
Liz.nehmer gefunden. (Microch.)

...gugg mal bei Renesas...

von fchk (Gast)


Lesenswert?

@MCUA

Unterschätze MIPS nicht. Du wirst Dich wundern, wo das Zeugs überall 
drin steckt. Beispiel Broadcom. In vielen Broadcom Gigabit Ethernet 
Controllern steckt ein kleiner MIPS drin - vielleicht auch auf Deinem 
Mainboard. Oder Router wie der Linksys WRT54 haben MIPS drin. 
Laserdrucker. HP zum Beispiel. DVB-Receiver und DVD/BluRay-Player. Sigma 
Designs (baut DVB-Decoderchips) ist z.B. MIPS-Lizenznehmer, genauso wie 
Toshiba, NEC, Panasonic/Matsushita und Sony. Mich würde auch nicht 
wundern, wenn Dein nächster Fernseher MIPS drin hat.

Wie gesagt: unterschätze die Leute nicht. Die sind 10 Jahre länger am 
Markt als ARM.

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

Erstmal vielen Dank für die Antworten.

>Wenn Du unbedingt Linux willst, bekommst Du dort die volle Ladung

Auf dem µC muss nicht unbedingt Linux laufen, das währe wahrscheinlich 
auch absoluter Overkill.

Aller Wahrscheinlichkeit werde ich mir das UC3A Evalboard aus dem Shop 
besorgen.

Mit ein Grund für meine Entscheidung ist auch, dass der Umstieg für 
"Kleinkram" von AVR32 zu AVR dann nicht so heftig einschlägt als wie 
wenn man von ARM zu AVR umsteigt. Jedoch will ich mich erstmal primär 
dann mit dem AVR32 beschäftigen.

mfg
Thomas

von holger (Gast)


Lesenswert?

>Mit ein Grund für meine Entscheidung ist auch, dass der Umstieg für
>"Kleinkram" von AVR32 zu AVR dann nicht so heftig einschlägt als wie
>wenn man von ARM zu AVR umsteigt. Jedoch will ich mich erstmal primär
>dann mit dem AVR32 beschäftigen.

Zieh dir nen ARM Board und lass den AVR32 links liegen.
Der hat gegen die ARM Konkurrenz doch sowieso keine Chance.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>von AVR32 zu AVR dann nicht so heftig einschlägt
Das ist Unglaube unterm Volk ;)
AVR und AVR32 haben bis auf 3 Buchstaben nichts gemeinsam.

von MCUA (Gast)


Lesenswert?

>Unterschätze MIPS nicht. Du wirst Dich wundern, wo das Zeugs überall
>drin steckt. Beispiel Broadcom.......

ja, im Kommunik.markt sind die stckzahlmässig stark vertretem. Aber es 
sind immer (wie gesagt) rel. WENIGE Projekte mit SEHR VIELEN 
Stückzahlen.
Aber damit ein Comtroller insgesamt interessant wird, oder für rel viele 
Projekte eingesetzt werden können soll, müssen auch viele Leute bereit 
sein, diesen zu unterstützen. Und gemau das ist bei MIPS nicht der Fall. 
Es gibt fast keine Projekte mit 100er oder 1000er Stückzahlen, in denen 
MIPS eingesetzt wird. (Deine Beispiele zeigen auch das. Baut vieleicht 
jede Firma mit 10..100 Leuten Laserdrucker ?)
Das ist für viele Leute (richtigerweise) ein driftiger Grund das nicht 
einzusetzen. Es bringt überhaupt nichts, wenn MIPS irgentwo im Fernseher 
drin sein sollte, aber fast kein Mensch etwas mit MIPS zu tun hat.
Und MIPS gibts seit den 80ern (!), und eine Architektur, die es in 20-30 
Jahren in keinster Weise zum Durchbruch geschafft hat, wird es auch in 
Zukunft nicht schaffen.

Und technisch gesehen sind die bei weitem nicht so , als dass man drauf 
angewiessen wäre.

von Frank K. (fchk)


Lesenswert?

Hallo thomas1123,

da Du in C programmieren wirst, ist der Prozessorkern eher 
nebensächlich. Für Dich ändert sich dann nur so viel, dass Du dann 
andere Peripherie hast und vielleicht noch einige Details im 
Interrupthandling anders sind. Ansonsten ist das aus Programmierersicht 
völlig egal.

Der AVR32 hat etwas mehr Rechenleistung pro MHz CPU-Takt als 
beispielsweise ein ARM7, aber nicht so viel, dass es wirklich 
entscheidend wäre.

Die 8 Bit AVRs sind noch einmal eine ganze Ecke anders als die AVR32. Da 
hast Du dann nämlich auf einmal zwei getrennte Adressräume: einen für 
Programmcode und einen für Daten. Um Daten aus dem Flash zu lesen, gibts 
dann Prozessorbefehle wie LPM. Da musst Du dann noch einmal umdenken. 
Von daher ist es egal, ob Du jetzt ARM oder AVR32 nimmst. Für den 
beschränkten Geldbeutel ist es vorteilhaft, dass es für ARM schon für 
25€ einen USB-JTAG Adapter gibt (Amontec), denn irgendwas in der 
Richtung brauchst Du einfach unabhängig von der Architektur, weil das 
ganze sonst in Blindflug ausartet. Ansonsten ist das egal. Olimex hat 
genügend nette Cortex M3 Board (wie gesagt, ARM7 empfehle ich nicht 
mehr).

fchk

von Peter D. (peda)


Lesenswert?

Thomas Müller schrieb:
> Mit ein Grund für meine Entscheidung ist auch, dass der Umstieg für
> "Kleinkram" von AVR32 zu AVR dann nicht so heftig einschlägt als wie
> wenn man von ARM zu AVR umsteigt.

Ich halte es für deutlich sinnvoller, es umgekehrt zu machen. Man hat 
bei den kleinen doch erstmal ne ganze Menge Probleme weniger.
Besonders gerne nehme ich bei den AVRs die ganz kleinen (ATtiny25 .. 
ATmega328).

Ich finds schon etwas seltsam, auf nem 32Bitter die Grundlagen lernen zu 
wollen (LED blinken, Taste abfragen, ADC, Timer, I2C, ..).
Dann hat man nämlich bei Nichtfunktionieren einen riesen Wust an 
möglichen Fehlerquellen (Hardware, Toolchain, Konfiguration, 
Initialisation, ...) neben Deinem eigentlichen Programm.
Und wenn man etwas zersemmelt, ist das ganze teure Eval-Board hin und 
nicht nur ein billiger MC im DIP-28, den man dann einfach vom Sockel 
zieht und den nächsten reinsteckt.


Das Upgraden auf nen 32-Bitter geht deutlich leichter, wenn man schon 
auf nem 8-Bitter zuhause ist. Und man weiß, daß die damit getesteten 
Routinen bereits laufen.
Allerdings würde ich zum ARM Cortex M3 tendieren, da gibt es ja schon 4 
Anbieter (Luminary/TI, ST, NXP, Atmel), scheint also recht 
zukunftsträchtig zu sein.


Peter

von MCUA (Gast)


Lesenswert?

>da Du in C programmieren wirst, ist der Prozessorkern eher
>nebensächlich. Für Dich ändert sich dann nur so viel, dass Du dann
>andere Peripherie hast und vielleicht noch einige Details im
>Interrupthandling anders sind. Ansonsten ist das aus Programmierersicht
>völlig egal.

Nur andere Peripherie ?
Aber das können 100e (manchmal 1000) Seiten Beschreibung sein.
Das kann man nicht so einfach umschalten.
Und egal ob in C oder in ASM: Die Peripherie muss man kennen, sonst kann 
mans nicht bedienen.
Also sollte man sich schon <vorher> genau ansehen, was man nehmen 
möchte.

Anfangen würde ich auf jeden Fall mit einem 8-Biter, weil einfacher.
ausserdem haben auch 8 Biter heute schon beachtliche Leistung.

(! STM32-72MHz hat nur ca 30MHz Flash, also 2 Wait-st's. !!! (das hat ST 
auf den Datasheets auf 1. Seite bei Features bewusst weggelassen ))

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.