PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AT32 oder doch was anderes?



Che Guevara
08.12.2014, 14:40
Hi,

ich würde mich gerne mal mit 32bit Mikrokontrollern befassen, bin mir aber nicht sicher, ob die Atmel 32bit Fraktion geeignet ist.
Ich verwende seit einigen Jahren die ATMega und ATXMega, würde eigentlich auch gerne bei Atmel bleiben (und beim Atmel Studio).
Allerdings fällt mir auf, dass viele andere Projekte eher die STM32 oder LPC42xx einsetzen und auch im Internet findet man nicht soviele Infos über die AT32.
Nutzt jemand von euch die Dinger? Und welchen Programmer sollte ich verwenden? Hab mal ein Auge auf den AVR Dragon geworfen, der ist mit 60 € gerade noch so im Budget.
Genauer gesagt würde ich gerne die AT32UC3C Serie verwenden, die scheint mir am geeignetsten (da DMA, EventSystem, ADC, SPI, DAC, TWI, ...).
Spricht was dagegen oder nutzt jemand von euch auch die Controller?

Gruß
Chris

Rabenauge
08.12.2014, 15:12
Hm-weiss ja nicht, wie du zu Arduino stehst (es heisst dass man die Dinger auch mit Atmel-Studio programmieren kann, ich verzichte darauf bisher aus Bequemlichkeit) aber nen Arduino Due-Clone (nen legalen, wohlgemerkt) bekommst du für 30€....zum antesten vielleicht ne preiswerte Sache?

Che Guevara
08.12.2014, 15:20
Hi,

also grundsätzlich möchte ich die µCs schon selbst verbauen (mache auch meine Platinen selbst), zum probieren würde ich mir aber einen Arduino zulegen.
Allerdings hat der Due einen SAM3X8E drauf, ich wollte aber einen AT32UC3C verwenden (u.a. weil die auch FPU haben).
Oder ist der Unterschied zwischen beiden nicht so groß, sodass ich es mal "riskieren" könnte?

Gruß
Chris

TheDarkRose
08.12.2014, 17:10
Nimm direkt einen SAM, also einen ARM-Microcontroller, damit bist du eben wie mit dem Arduino oder anderen Boards mit z.B. STM32 auf der selben Architektur. Die AT32 sind eine spezielle Architektur von Atmel die eigentlich nicht wirklich eine Daseinsberechtigung hat ^^

Che Guevara
08.12.2014, 17:48
Ah, danke für den Hinweis, nicht dass ich dann noch der einzige bin, der die AT32 verwendet xD
Da muss ich mich erst mal einlesen, sind die den annäherungsweise "vergleichbar" mit den Megas z.b.? Oder muss ich dann wieder relativ früh anfangen (Led, ..)?

Gruß
Chris

TheDarkRose
08.12.2014, 17:51
Mit den Mega ist natürlich der AT32 vergleichbar, da beides die AVR-Architektur nutzt. Nur am 32bit Markt regiert einfach die ARM Architektur. Mit entsprechenden Libraries (Arduino) ist dort aber nicht viel Unterschied.

seite5
08.12.2014, 18:24
Hi,
Bist dann nicht der Einzige, ich verwende AT32 genau aus der oben genannten Familie. Sehr einfacher Einstieg mit ATMEL Studio, auch wenn
man keins der dort gelisteten Boards verwendet. Beim AT32 hat nicht jede Int-Quelle ihren eigenen Vektor, wie man's vom XMEGA kennt, für
Applikationen mit vielen Ints und "kleinen" Zahlen nehm ich deshalb immer noch den 8-bitter.
32-bit kenn ich noch den PIC, der Chip ist ähnlich nur die IDE (MPLAB) ist i.V. zu Atmel Studio zum Fürchten.
Hab vor kurzem auch mal ein ARM-Board von ATMEL mit Atmel Studio zum Laufen gebracht, ähnlich einfacher Einstieg, wenn mann das ASF
verwendet.
mfg
Achim

Peter(TOO)
08.12.2014, 18:24
Hallo Chris,

Für welche Architektur du dich entscheidest ist erst mal relativ egal, wichtig sind andere Punkte (Ich beziehe mich mal auf den Hobbybereich):

1. Erhältlichkeit. Was nutzt dir die tollste CPU, wenn man sie nur als Industriekunde und ab 1'000 Stück bekommt?

2. Einstiegskosten (Compiler, Programer usw.) Auch hier: was nutzt ein tolle CPU, wenn sie durch einen schlechten Compiler ausgebremst wird?

3. Chip-Kosten

4. Unterstützung: Ich weiss nicht wie fit du bist und wie weit du alleine zurecht kommst. Manchmal ist es besser eine gängige CPU zu verwenden, zu welcher es Foren gibt und man leicht Hilfe bekommt, als einen leistungsfähigen Exoten, bei welchem man alleine mit seinem Problem im Wald steht.

5. FPU: Ob du eine benötigst, hängt von deinen Aufgaben und deinen mathematischen Fähigkeiten ab. Die meisten Aufgaben, lassen sich auch ohne FP-Berechnungen lösen.

6. Peripherie: Da kommt es drauf an, was man benötigt, also auf die Aufgabenstellung. Passende Peripherie ist Teil der Gesamtleistung des Systems. Man kann auch ein UART rein per Software aufbauen, braucht aber entsprechend Rechenleistung und ist langsamer als Hardware! Oft nutzen auch Bibliotheken die Hardware nicht optimal aus. Einfache Bibliotheken für z.B. UARTs nutzen oft keine Interrupts.

7. Speicher: hängt von der Komplexität der Aufgabe ab und von der CPU-Architektur (wie viel Code wird für eine Aufgabe generiert).

8. 8/16/32-Bit: Bei Bitfummeleien (typische SPS-Aufgaben) und der Datenübertragung mit einem UART bringen 32-Bit kaum etwa, da profitiert man meist nur von der moderneren Architektur (höherer Takt, weniger Takte pro Befehl). Der Vorteil einer grösseren Wortbreite kommt dann aber beim Rechnen zu Tage!


Mir ist es mittlerweile egal, welchem Kontroller man mir vorsetzt, ich programmiere, nach bald 40 Jahren Erfahrung, Alle, wenn es sein muss auch in Assembler. Nur die 8051-Architektur mag ich nicht, die haben eine bekloppte Speicherverwaltung. Ein Freund, beruflich Compilerbauer, sagt dazu "Hirnschaden" :-(

MfG Peter(TOO)

Che Guevara
09.12.2014, 06:12
Hi,

also wenn ich schon auf 32bit umsteige (zumindest teilweise), mach ichs schon "richtig" und setze auf die ARM Controller.
Momentan habe ich einen XMega192A3U im Betrieb, läuft mit 32MHz und hat einige Kommunikationen am Laufen (2x USART, 2x SPI, 1x TWI, 10x PWM), außerdem werden einige Daten berechnet und der DMA schaufelt fast pausenlos ;)
Deswegen möchte ich es mal mit etwas "stärkerem" probieren, FPU wär schonmal geil (weniger Aufwand), muss aber nicht zu 100% sein....
Wichtig sind mir die 32bit, denn der Großteil der Variablen sind 32bit, dadurch werden die math. Funktionen um einiges schneller.
Die Kosten sollten sich natürlich im Rahmen halten, bin ja armer Student ...
Relativ wichtig wäre auch noch das Gehäuse, mehr als QFN64 wird größenmässig schon schwierig ;)

Gruß
Chris

Mxt
09.12.2014, 07:15
Hallo,

wenn viel gerechnet wird, sind bei ARM-Controllern die Typen mit FPU eindeutig vorzuziehen. Ein Cortex-M4f hat in der FPU 32 zusätzliche Register. Dadurch muss der Prozessor bei gemischten float und int Berechnungen, z.B. Vektor- oder Matrizenberechnungen, viel weniger Registerinhalte sichern und wieder nachladen.

Bei sowas ist z.B. ein ST Nucleo F401 Board (Cortex M4f) etwa fünf mal schneller als ein Arduino Due (Cortex M3), obwohl beide mit 84 MHz laufen.

Appropos Nucleo, auch wenn es wohl nichts für dich ist, solltest du, wenn du mit ARM-Controllern anfängst, mal diese Seiten gesehen haben:
http://developer.mbed.org/platforms/
http://developer.mbed.org/handbook/Homepage

ARM hat seine eigene herstellerübergreifende Software (im Moment NXP, Freescale, ST, Nordic und Renesas) für die Controller. Im Moment ist das ganze Webbasiert, für nächsten Herbst ist aber eine offline Software angekündigt. Ist ein bischen wie Arduino in groß, hat aber den Vorteil, dass Sachen wie DSP, RTOS, Ethernet, SD-Karte, USB usw. herstellerübergreifend vorhanden sind.

oberallgeier
09.12.2014, 08:07
... wenn ich schon auf 32bit ... setze auf die ARM Controller ... FPU wär schonmal geil ... armer Student ...Hallo Chris,

die 32Bit hatten mich auch angemacht, und das Argument "arm" kennt ja fast jeder Hobbyist. Ich hatte mir für den Einstieg in die 32Bitter/ARM/schnell... das
STM32F4DISCOVERY-Board (http://www.watterott.com/de/STM32F4Discovery) gekauft, ein richtiges Schnäppchen. Vielleicht wär das was für Dich? 32-bit ARM Cortex-M4F core, LQFP100, FPU, etliche Peripherie on board, und Hertz ohne Ende (na ja, hört irgendwo jenseits 150 MHz auf) und das für 17 Flocken. IDE gibts (auch) als Freeware, Programmer on board - alles klingt bestens.

Bisher bin ich noch nicht in dieser Leistungsklasse, weil der Einstieg wohl für meine dünnen Kenntnisse reichlich schwer ist, mein aktuelles Projekt mit mehreren Controllern ausreichend bestückt ist und mich schwer beschäftigt - aber ganz vordergründig bin ich wohl eher für den aufwendigen Einstieg (noch) zu bequem.

Mxt
09.12.2014, 08:28
bin ich wohl eher für den aufwendigen Einstieg (noch) zu bequem.
Ja, das ist der Knackpunkt. Wenn man das angeht, wie bei den 8-Bit Controllern, ist der Einstieg ziemlich hart.

Deswegen gibt es ja z.B. neben den ST-Discovery auch die ST-Nucleo (genauso die Freescale Freedom oder NXP mbed Boards).
http://www.watterott.com/de/NUCLEO-F401RE

Zum ersten Programm vergehen da nur ein paar Minuten. Lass mal hier rechts oben das Video laufen:
http://developer.mbed.org/getting-started/

Später kann man immer noch auf eine große IDE umsteigen. DMA oder auch der Bedarf an Hardware-Debugging wären so ein Punkt. Aber es ist nicht so, dass sich die Chiphersteller nicht Arduino genau angesehen haben. Man braucht nicht erst tagelang das Datenblatt studieren, um ein erstes Programm zu schreiben. Die meisten großen Hersteller haben auch Boards, die man wie einen Arduino "einfach benutzen kann".

Che Guevara
12.12.2014, 08:38
Hi,

danke für eure Antworten, ich habe mich entschieden, erstmal nen Arduino Due zu bestellen, um mir das ganze mal anzusehen. Wenns mir zusagt, werde ich wohl die Chips wieder selbst in meine Platinen verbauen, wie immer.
Mir ist aber aufgefallen, dass die Auswahl bei den Cortex-M3-Typen (ATMEL) relativ gering ist (also was die blanken Chips angeht). Welche "Generation" würdet ihr mir den empfehlen? Denke mal, da gibts dann keine allzu großen Unterschiede mehr (außer bei Ausstattung)?!
Am liebsten hätte ich einen mit FPU, also >=M4 ?!
Prinzipiell brauche ich einen Chip mit einiger Hardware (2x SPI, 2x USART, 1x TWI, 8x PWM), max. QFN100 (64 wär mir lieber).

Gruß
Chris

Mxt
12.12.2014, 09:14
Hallo,

also den Cortex M4 gibt es mit und ohne FPU. Typische Vertreter mit M4 ohne FPU im Bastelbereich sind z.B. FRDM-K20D50M oder der Teensy 3.1
https://www.pjrc.com/teensy/teensy31.html
Letzterer ist eine preiswerte Alternative zum Due, wenn man was für die Steckplatine sucht.

Wenn wir mal die FPU beiseite lassen, ist ein M4 immer noch etwas schneller als ein gleichgetakteter M3. Der M4 braucht teilweise weniger Takte pro Befehl und hat auch einen erweiterteten Befehlssatz. Insbesondere hat er SIMD-Befehle, die Schleifen stark beschleunigen können.

Gibt auch ein Buch dazu: "Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors".

Che Guevara
16.12.2014, 17:25
Hi,

also ich habe mich jetzt für den STM32F407VG (auf dem Discovery Board) entschieden und NICHT für den Arduino Due. Grund dafür ist, dass ich (subjektiv) mehr Infos zu den STM32 finde. Außerdem ist auf dem Discovery Board schon ein Programmer dabei, also eigentlich für lau.
Das Teil kommt hoffentlich morgen an, mal sehen, wie weit ich damit komme. Als IDE hab ich jetzt mal EM::Blocks runtergeladen, mal schauen ob ich dabei bleibe. Danke für die Tips!

Gruß
Chris