Hallo Leute,
Ich möchte einen großen Hexapod bauen und suche dafür einen schnellen
µC.
Mein letzter Hexa lief mit zwei ATmega644 (20MHz) und war trotz heftiger
optimierung zu 60-70% ausgelastet.
Dieses mal möchte ich noch deutlich anspruchsvollere Bewegungen
berwerkstelligen und weniger auf Optimierung achten um Zeit zu Sparen
und den Code leserlicher zu machen. Dazu brauche ich einen besseren µC.
Da ich mich aber bisher nur mit AVRs auskenne, frage ich lieber nach =)
Der Controller sollte recht mächtig sein!
Um etwas präziser zu werden:
- Sehr gerne fpu
- mehr als 60MHz
- 32bit Architektur
- mehrere 16bit Timer
- mit C programmierbar
- Freier Compiler und Debugger
- Umfangreiches Tutorial oder Buch sollte vorhanden und beschaffbar
sein.
- Preis unter 300Euro
Ich hab schon an ARMs gedacht, aber ich hab noch nie mit welchen
gearbeitet und kenne mich damit also kein bisschen mit aus. Außerdem
solls da nicht so viele von mit einer fpu geben.
Fpu ist aber schon wichtig, weil ich dieses mal mit doubles rechnen will
(nein, es ist nicht oversized... und ja, ich brauche diese
Genauigkeit...) und allgemein auch gerne mal mit einer fpu arbeiten
möchte.
Ich danke schonmal im Voraus für Tips!
Gruß, Yaro
>- Sehr gerne fpu
Unsinn.
>- Umfangreiches Tutorial oder Buch sollte vorhanden und beschaffbar>sein.
Abgelehnt;)
>Ich hab schon an ARMs gedacht,
Die richtige Richtung.
>Außerdem solls da nicht so viele von mit einer fpu geben.
Macht nichts.
>Fpu ist aber schon wichtig,
Nö.
>und allgemein auch gerne mal mit einer fpu arbeiten möchte.
Ich würde auch gerne mal mit einem Porsche zur Arbeit fahren.
Aber eigentlich reicht auch ein Polo.
Hoi
Schau mal in Richtung ADUC702x oder ADUC706x schauen.
Hat zwar glaub ich keine FPU aber genug Performance für nen Hexa.
Für den 7026er gibts ein nettes Tutorial
Die haben sogar ein PLA eingebaut.
Lukas
Yaro schrieb:> - Sehr gerne fpu
Das gibts sicher im ARM9, ARM11 Bereich was.
> - mehr als 60MHz
Hat jeder 32bitter (jaja, ich weiss, kuriose Ausnahmen gibt's immer...
> - 32bit Architektur
z.B ARM Cortex-M3, ARM9, ARM11
> - mehrere 16bit Timer
Hat auch jeder 32Bitter.
> - mit C programmierbar
Ist auch jeder.
> - Freier Compiler und Debugger
Gibt's auch für jeden. --> GCC
> - Umfangreiches Tutorial oder Buch sollte vorhanden und beschaffbar> sein.
Dafür gibt's das Internet
> - Preis unter 300Euro
Im Fall eines Cortex solltest Du mit ca. 10 Euro rechnen. ARM9/11 sind
ein bisschen, aber nicht viel teurer. Für 100 Euro kriegst Du ein Board
mit RAM, Flash etc schon drauf.
Gruäss
Simon
Wow....das ist zu viel auf einmal =)
erstmal zu Markus Müller:
hab den Artikel durchgelesen. Scheint ein interessanter Controller
zusein, aber eine fpu ist (sofern ich es nicht übersehen habe) nicht
drin. Der Rest sieht meinen Anforderungen entsprechend aus. Nur hat mich
noch etwas gestört, dass die Open-Source Alternative (libopenstm32) für
die Peripherie noch in Entwicklung ist.
@holger: Wenn du dir einen Firmenwagen aussuchen dürftest, würdest du
immer noch den Polo nehmen?
@Lukas: Kennst du zufällig eine Übersichtstabelle mit denen?
@Simon Huwyler: Wo könnt ich mich genauer über ARM11 informieren? Wo
gibts gute Eval-Boards?
Gruß, Yaro
Hobby: Cortex-M3 / ARM7
Beruf: ARM9/ARM11 (weil teuer, weil Multilayer usw.)
Ja der STM32 hat keine FPU drin, allerdings rechnet der sehr schnell. Am
besten mal ein kleines Demo-Board kommen lassen und einen Test
programmieren, kostet nicht viel.
Markus Müller schrieb:> Beruf: ARM9/ARM11 (weil teuer, weil Multilayer usw.)
Ausser eben Du nimmst so ein Board, auf dem alles schon drauf ist. Kein
Eval-Board, sonder ein Subsystem. Die sind 'ne feine Sache und gar nicht
so teuer. Die eigene HW kann man dann auf 'nem Mutterbrett mit 2-4 Lagen
"selber basteln".
Yaro schrieb:> @Cyclon: FPGA ist etwas oversized =)
..und soweit ich weiß kann man die auch nicht in C programmieren.
(oder kann man schon C-code ordentlich synthetisieren?)
typ schrieb:> ..und soweit ich weiß kann man die auch nicht in C programmieren.
Wahrscheinlich war FPGA+Softcore gemeint.
Edit:
Nicht nur wahrscheinlich, steht ja sogar mit dabei. :)
... oder aber ein FPGA mit Hardcore. Z.B. Smart Fusion von Actel. Die
haben 'nen Cortex-M3 drin und jede Menge Zellen, mit denen jede Menge
Pulspattern für jede Menge Servos für jede Menge Beine synthetisiert
werden können.
(oder aber ein separates FPGA dafür. Ich kenne mich mit
Hexawieheissendienochmal? Hexapods nicht aus, aber was ich auf Youtube
gesehen habe, sieht a)cool, b) nach was mit viel so parallel laufendem
Zeug aus. Ich sähe da durchaus Möglichkeiten, wie ein FPGA den Prozi
unterstützen könnte.
@Simon Huwyler: Ich hab da grad mal nachgeschaut. Ich möchte zwar viel
Power haben, aber das ist schon deutlich zu viel! Damit könnte ich ja 10
Hexapoden gleichzeitig steuern =)
@Markus Müller: Hab mir grad den Cortex-M3 angeschaut. Sieht ebenso sehr
gut aus! Mit 100MHz brauche ich dann nicht wirklich eine fpu (auch wenn
cih gerne mal eine auprobieren würde)
STM32 und Cortex-M3.
Welche Vorteile hat ARM9 gegenüber den beiden anderen?
Was ist leichter zum Unstieg von 8-bit AVR?
Also erstmal: STM32 IST ein Cortex-M3.
Ein ARM9 ist einfach ein grösseres Kaliber. Hat üblicherweise MMU,
(Cortex-M3 in einigen Fällen auch, aber seltener), und ist generell für
"Grösseres" ausgelegt. Den solltest Du eigentlich nur mit einem
Betriebssystem à la embedded Linux einsetzen.
So wie ich das einschätze, bist Du mit einem M3 super bedient. Das kann
STM32, NXP oder sonstwas sein.
Der Umstieg von 8-Bittern ist definitiv viiiiiiel leichter im Fall
Cortex-M3.
A propos Betriebssystem: Hast Du schon eins? Ansonsten kann ich Dir
FreeRTOS ans Herz legen. Linux bringst Du in 'nen STM32 nicht rein.
@Simon Huwyler: Kennst du vielleich auch ein gutes ARM9 Board?
@Daniel: Sind die auch schnell genug?
@Stephan: Um ehrlich zu sein, kenn ich mich mit FPGA+Softcore kein
bisschen aus. Mit FPGAs wollte ich mich aber noch nicht beschäftigen,
das kommt in einem Jahr oder so. Will erstmal den Unstieg auf 32bit
machen.
Des Prog für den Hexa geht auch ohne FPGA, und was die Servos angeht, so
werde ich wahrscheinlich sowieso nicht die Standart-Servos verwenden,
die man über PWM anspricht sondern welche die mit RS-485 angesprochen
werden.
Gruß, Yaro
Auch wenn dies eine vielleicht nicht ganz korrekte Pauschalaussage ist:
Der entscheidende Unterschied beim ARM9 zu seinen ARM7-ähnlichen
Gegenstücken (STM32, Cortex) ist seine MMU (Memory Management Unit). Die
braucht man, um ein vollwertiges Linux laufen zu lassen. Wer lieber ohne
Betriebssystem programmiert, profitiert vom ARM9 gar nicht so viel - mal
von den mehr MHz abgesehen.
Yaro schrieb:> @Simon Huwyler: Kennst du vielleich auch ein gutes ARM9 Board?
Ob's gut ist, weiss ich erst, wenn ich's habe, bestellt ist es schon.
:-) Auch auf cutedigi.com. Da gibt's eins für 120$.
Aber eben, ARM9 halte ich nicht unbedingt für eine gute Wahl. Das ist
mehr was, wenn Du was mit graphischen Oberflächen machst und/oder Linux
o.ä. machst. Was Du vorhast, sieht mir wie eine klassische uC-Geschichte
aus. Und dazu sind die Cortex-M3 bestens geeignet.
Wow... Das mit dem Betriebssystem kommt schon etwas überraschend. Ich
hab zwar schon oft gehört, dass Leute auf ihre µC ein Betriebssystem
drauf machen, aber ich habe nie gewusst, wozu das wirklich gut ist =)
Brauche ich unbedingt eins?
Eigentlich wollte ich den Controller direkt ansprechen. Brauche genaue
Timings und Genaue Zeiten, in denen Meine Funktionen ausgeführt werden
können. Wird mir da ein Betriebssystem nicht einen Strich durch die
Rechnung machen?
Tut mir Leid, wenn ich blöde Fragen Stelle, aber ich habe mich bischer
nur mit den 8-bit AVRs befasst. Dort zwar mit vielen verschiedenen, aber
eben nur 8bit AVR...
Stefan L. schrieb:> typ schrieb:>> ..und soweit ich weiß kann man die auch nicht in C programmieren.>> Wahrscheinlich war FPGA+Softcore gemeint.>> Edit:> Nicht nur wahrscheinlich, steht ja sogar mit dabei. :)
so so, softcore... kannte ich noch garnicht... erscheint mir aber auch
vom Preis/Leistungsverhältnis nicht wirklich sinnvoll.
laut artikel:
>Nachteile:>> * Geringere Geschwindigkeit als Hard Cores
Du kannst dir auch mal die C2000 Reihe von TI anschauen.
Das sind Mikrocontroller mit DSP Kern laufen mit bis zu 300 MHz
sind aber ein bischen anspruchsvoller was die Programmierung angeht.
Ich hab nochmal nachgeschaut... ARM9 ist für mich im Moment wohl
wirklich noch etwas zu groß... Die Aufgaben, die ich verrichten will,
werde ich auch mit deutlich weniger Power schaffen... und eigentlich
will ich auch ohne Betriebssystem auskommen =)
PIC32 :) Ist pro MHz schneller als Cortex-M3, hat viel Flash und RAM.
Compiler ist kostenlos.
Softcore im FPGA ist kompliziert und langsam. Hardcore ist zu viel und
teuer. Um mit FPGAs überhaupt klar zu kommen, brauchst du schon paar
Jährchen ;)
Grüße,
Anguel
Also, für die Arbeit ohne Betriebssystem ist der ARM9 nicht so reizvoll.
Komplexe Hardware bedeutet viel Initialisierung, und man wird die
Ressourcen kaum ausschöpfen. Falls sich die Bestellung noch ändern läßt:
STM32 oder Cortex-M3 machen mehr Freude, wenn man direkt auf
Hardwareebene arbeitet.
Yaro schrieb:>..und eigentlich> will ich auch ohne Betriebssystem auskommen =)
wenn du nen 8bit AVR hast dann kuck dir doch mal http://www.femtoos.org/
an, das ist ein Echtzeit-Betriebssystem [RTOS] läuft ohne herum basteln
sofort auf so ziemlich allen AVRs und die Funktionen sind sehr gut
online dokumentiert.
Von den ADUC'S gibts folgende
702x
712x
Schau einfach bei analog.com rein da gibt für jeden Chip ne kurze
Übersicht was er kann.
Meiner Meinung nach würde ein 7026er reichen
44Mhz
32Bit
12Bit IO
Hört sich nicht besonders viel an aber aus eigener Erfahrung weiß ich
das die ordentlich Dampf unter der Haube haben und mit dem PLA kann mann
echt viel anstellen.
Lukas
Betriebssysteme müssen nicht unbedingt riesige Dinos mit 1000 Layern
zwischen Anwendungsprogramm und Hardware sein.
Im Fall von FreeRTOS reichen Dir wenige kB Flash und ganz wenig RAM. Und
Timings kriegst Du genau so gut in den Griff, wie wenn Du den Controller
"direkt" ansprichst. Resp. Du SPRICHST ihn immernoch direkt an.
Wozu also ist ein Betriebssystem? Ich spreche jetzt nur von FreeRTOS.
Das ist nämlich "nur" ein Scheduler. Der macht im Wesentlichen nichts
weiter als verschiedene Tasks pseudoparallel laufen zu lassen. Das tut
er, indem er sich von einem Timer periodisch ankicken lässt. Z.B. im
Millisekunden-Takt. Kannst aber selber einstellen. Jedesmal, wenn er so
gekickt wird, entscheidet er, welcher Task jetzt weiterlaufen kann.
Ausserdem kannst Du, gesteuert durch Interrupts, FreeRTOS jederzeit dazu
bringen, soche Taskwechsel durchzuführen. Oder aber die ganz pressanten
Dinge gleich selber in ISRs ausführen.
Das war jetzt alles recht schwammig, ich weiss. Auf freertos.org gibt's
gute Lektüre dazu.
Quintessenz ist aber: Mit einem RTOS bist Du genau so präzise und
schnell, wie wenn Du "direkt programmierst". Aber es macht Dir
viiiiieles viiiiel einfacher.
Yaro schrieb:> Wow... Das mit dem Betriebssystem kommt schon etwas überraschend. Ich> hab zwar schon oft gehört, dass Leute auf ihre µC ein Betriebssystem> drauf machen, aber ich habe nie gewusst, wozu das wirklich gut ist =)> Brauche ich unbedingt eins?> Eigentlich wollte ich den Controller direkt ansprechen. Brauche genaue> Timings und Genaue Zeiten, in denen Meine Funktionen ausgeführt werden> können. Wird mir da ein Betriebssystem nicht einen Strich durch die> Rechnung machen?
Deswegen wurde ja weiter oben FreeRTOS vorgeschlagen. Das bedeutet
ausgeschrieben Free Realtime Operating System. Wenn du damit nix
anfängst: http://de.wikipedia.org/wiki/Echtzeitbetriebssystem
Ich hab in letzter Zeit ein wenig mit dem FreeRTOS gebastel und muss
sagen: bei größeren Projekten nie mehr ohne!
@Anguel S: von PICs habe ich nciht wirklich gutes gehört... Die 16bit
PICs sollen von der Leistung mit den 8bit AVRs vergleichbar sein...
Aber wenn PIC32 schneller ist als cortex-m... warum nicht...
Die Programmierung sollte bei den beiden ähnlich sein, oder?
@Sebastian: Dann wird der ARM9 schonmal von der liste gestrichen
Ehm... "STM32 oder Cortex-M3".... ist das nicht das selbe (sagt Simon
Huwyler).
Im Moment sind also PIC32AVR32 und Cortex-M/STM32 im Spiel.
Ist das jetzt nur noch Geschmackssache, oder gibts gute Gründe für den
einen oder anderen?
Yaro schrieb:> @Anguel S: von PICs habe ich nciht wirklich gutes gehört... Die 16bit> PICs sollen von der Leistung mit den 8bit AVRs vergleichbar sein...> Aber wenn PIC32 schneller ist als cortex-m... warum nicht...> Die Programmierung sollte bei den beiden ähnlich sein, oder?PIC32 hat MIPS Core und ist ganz anders als die alten. Programmiert wird
er in C (MPLAB Compiler ist eigentlich ein GCC Compiler). Man muss
natürlich dann die Lib-Funktionen lernen, aber das ist wohl überall so.
Vielleicht sind die Entwicklungsumbegungen für ARM von Keil und IAR
besser als das kostenlose MPLAB, kosten aber mal eben um die 4000 EUR.
Um keinen falschen Eindruck zu hinterlassen - ich habe den PIC bisher
nicht benutzt, aber vergleiche selbst in der letzten Zeit, was man so
als alternativen hat. Sonst ist der neue Cortex-M4 von Freescale auch
ganz nett und hat DSP Funktionen, ist aber eben ganz neu und evtl. etwas
teurer...
Ich werde mich über FreeRTOS auf jeden Fall informieren.
Aber eigentlich kann ich mir noch nciht vorstellen, dass das für mich
besser ist. Ich meine, ob ich nun die Programmteile, die ich ausführen
muss nach einander oder pseudo-parallel ausführe kann mir ja völlig egal
sein...
Aber naja, ich werde mich auf jeden Fall da mal schlau machen!
- Die CPU selber ist auch egal, aber die eingebaute Pheriperie der
Hersteller sollte man schon genauer anschauen. Und da bietet ST mit dem
STM32 sehr viele Chips mit unterschiedlicher Ausbaustufe/Gehäuse usw.
Von TI gibt es einen mit eingebauter PHY, falls Netzwerk interessiert.
- Software ist kostenlos
- JTAG-Interface kostet was, die sind zu den 3 Ausgewählten nicht
kompatiebel.
Dann:
- Demo-Boards / Kosten
- Was gibt es im Internet? (dieses Forum hat viel STM32)
Ich nutze am liebsten STM32 und habe den schätzen gelernt. ST bietet
eine gute FW-Lib mit über 90 Beispielprojekten und alles Dokumentiert,
alles in einem Download.
Nicht vergessen:
Errata's lesen.
Markus Müller schrieb:> - Software ist kostenlos
Die Compiler meistens nicht, es sei denn man ist in der Lage, sich alles
mühevoll zusammenzubasteln.
> Dann:> - Demo-Boards / Kosten
Genau - gibt es überhaupt Boards, die in deinen Pod passen.
> Nicht vergessen:> Errata's lesen.
Besser nicht, sonst kauft man am Ende nix ;)
Uh... der cortex-m4 hat sogar ne fpu...
Da der aber ganz neu ist, gibts wohl keinen so großen pool an
Erfahrungen damit... da greife ich aus Sicherheitsgründen wohl doch eher
auf den m3 zurück.
Nochmal um das klarzustellen... Für PIC32 gibt es einen kostenlosen
Compiler und Entwicklungsumgebung (beides nicht sehr gut), für cortex-m
gibt es auch was mit openSource... aber was die Qualität angeht weiß ich
nix..
Aus Markus Müller und Anguel S. folgt: lieber STM32. Richtig?
Darum dass das Board nicht in den Hexa passt, mache ich mir eine
Gedanken... Er wird richtig groß werden =)
Yaro schrieb:> @Anguel S: von PICs habe ich nciht wirklich gutes gehört... Die 16bit> PICs sollen von der Leistung mit den 8bit AVRs vergleichbar sein...> Aber wenn PIC32 schneller ist als cortex-m... warum nicht...> Die Programmierung sollte bei den beiden ähnlich sein, oder?
JA, hören tut man viel - nur stimmt es meist nicht.
Gerade in etwas AVR lastigen Foren ist PIC Bashing von Leuten ohne
Hintergrundwissen ein beliebter Sport.
Der Pendant zu den AVR sind die Pics der 16F / 18F Reihe. Wobei
diejeniegen Bausteine die Leistungsmäßig im Bereich der ATMEGAS liegen
eher im 18F Sektor zu finden sind. (Aber alles 8Bit.) Einige davon
stecken die ATMEGAS auch in die Tasche.
Die 16Bit Pics (sind welten über 8Bit AVR)
> @Sebastian: Dann wird der ARM9 schonmal von der liste gestrichen> Ehm... "STM32 oder Cortex-M3".... ist das nicht das selbe (sagt Simon> Huwyler).
JAIN Cortex M3 ist die Prozessorachitektur, also der eigendliche Kern.
Stsark verwandt mit dem ARM7
Der STM32 ist ein Produkt eines Herstellers das einen solchen Kern hat.
Andere HErsteller verwenden aber auch denselben Kern, aber andere
Peripherie (daher nur sehr sehr eingeschränkt kompatibel - ein STM32
lässt sich nicht einfach durch einen NXP C-M3 ersetzen. Da sind sowohl
in der Harware wie auch in der SW teilweise erhebliche Anpassungen
möglich.
>>> Im Moment sind also PIC32AVR32 und Cortex-M/STM32 im Spiel.> Ist das jetzt nur noch Geschmackssache, oder gibts gute Gründe für den> einen oder anderen?
Der PIC32 ist eigendlich das Gegenstück zu den Cortex M3. Der Pic32 hat
einen MIPS kern. Das ist neben den ARM die zweite große
Prozessorarchitektur. Was nun besser ist - das ist eine Glaubensfrage
ähnlich wie PIC oder AVR. Funktioniert beides.
Und auch der WEchsel von PIC32 MIPS auf STM32 CortexM3 ist nicht
komplizierter als der WEchsel von STM32 CortexM3 auf NXP CortexM3.
Der Vorteil bei den PIC ist das man bei Microchip einen HErsteller hat
der sehr umfangreiche und gut funktionierende LIBs von sich aus zur
Verfügung stellt. Man kann alsoe wenn man will alles aus einer HAnd
bekommen und muss nicht alles zusammensuchen mit den Nachteilen wei
verschiedene nicht genau zuordbare Versionsstände durch parallele
Weiterentwicklung usw...
Wenn man natürlich gerne OpenSorce oder DrittanbieterSW einsetzt, die
gibt es natürlich auch - Nur etwas weniger als bei ARM- halt da die
Notwendigkeit nicht ganz so groß ist. (Wer schreibt etwas wenn der
HErsteller das schon hat)
Aber wie Gesagt: PIC32 und CortexM3 (egal welcher Hersteller) sind an
sich gleichwertig. Entscheide was dir am besten erscheint (Preis,
Verfügbarkeit, Dev. Tools usw.)
AVR32 ist eine absolute Eigenentwicklung von Atmel und spielt im
Verlgeich zu den Technologien wie ARM und MIPS keine echte Rolle. Würde
ich mich nicht unbedingt als erstes mit beschäftigen. Zuma Atmel ja nun
gerade bei spezielleren Bausteinen nicht gerade für gute Verfügbarkeit
bekannt ist!
Gruß
Carsten
Yaro schrieb:> Aus Markus Müller und Anguel S. folgt: lieber STM32. Richtig?
ST hat wohl hier viele Fans. Ich mag aber die Boards nicht wirklich. Und
ST hat seine Seite so kaputtgemacht, dass man da nix mehr findet.
Yaro schrieb:> "STM32 oder Cortex-M3".... ist das nicht das selbe (sagt Simon> Huwyler).ARM ist eine Firma, die Prozessor IPs an Lizenznehmer verkauft. Die
stellen aber selber keine Prozis her.
ST, NXP, Atmel etc. kaufen bei ARM diese IPs ein, packen Peripherie
drumherum und verkaufen die dann. Wenn Du also einen STM32 kaufst, gibst
Du Geld an ST, und die geben einen Teil davon an ARM ab.
Das coole an der Sache ist nun, dass, egal, ob Du ein NXP, ST oder
Atmel-Teil kaufst, immer der selbe Prozi drin ist. Eben ein ARM
Cortex-M3. Also: Gleiche Befehle, gleiches Programmer's Model, gleiche
Grundperipherie (wie z. B. ein sog. Tick-Timer, an dem eben dann das
Betriebssystem hängt. Somit läuft das Betriebstsystem unverändert auf
allen Cortex-M3.
Natürlich kannst Du alles ohne Betriebssystem machen. Du kannst auch mit
Paintbrush eine Platine zeichnen und mit einem einfachen Texteditor
Programme schreiben. Aber es ist halt mühsam. Du wirst Dich zwangsläufig
mit Scheduling auseinandersetzen müssen. Denn Du hast ja sicher Dinge,
die parallel laufem müssen. 8 (edit: nö, 6, hexa, hiess es ja) Beine
wollen gesteuert werden. Die RS232 wartet auf Konsolen-Eingaben.
Irgendwo blinkt eine LED. Die Batteriespannung soll überwacht werden....
Natürlich kannst Du das alles hintereinander machen. Ganz schnell einer
Endlosschlaufe, so dass es nach aussen aussieht, als ob die Spinne alle
Beine gleichzeitig bewegen kann. Sowas nennt man dann Event-Loop.
Ein RTOS macht eigentlich genau das. Aber es macht es auf eine Weise,
die (das ist nicht böse gemeint) von vielen sehr schlauen Leuten sehr
genau durchdacht wurde und Möglichkeiten eröffnet, die Du Dir (wiederum
nicht böse gemeint) wohl nicht träumen lässt.
Es ist übrigens nicht einfacher, mit einem RTOS zu programmieren, was
das Erlernen angeht. Eher im Gegenteil. ABER: Sobald das Projekt ein
bisschen grösser wird, hast Du eine Werkzeugkiste in der Hand, die Du
nicht mehr hergeben willst. Und das - das muss ich nochmals betonen -
ohne irgendein Penalty! Eben, wir sprechen hier nicht von Windows, das -
auf einem Cortex-M3 laufend, eine Trillion Jahre bräuchte, um ein
Fenster zu öffnen! :-)
Yaro schrieb:> Für PIC32 gibt es einen kostenlosen> Compiler und Entwicklungsumgebung (beides nicht sehr gut),
Wie kommst du darauf das die nicht gut sind.
Die Entwicklungsumgebung (MPLAB) finde ich einwandfrei, wobei das auch
geschmackssache sein kann. Der Compiler ist in der Freien Version nicht
mit den maximalen Optimierungsoptionen ausgestattet. Aber ansonsten ist
der in Ordnung.
Und wenn man den gewerblich mit maximaler Performance braucht dann sind
die 900Eur. im Vergleich zu anderen komerziellen Compiler ein echtes
Schnäppchen ;-). Wenn man den braucht, dann ist man aber in REgionen wo
ein paar Cent unterschied Bauteilkosten zwichen zwei Speichergrößen in
der Serienproduktion über die Stückzahl eine Rolle spielt.
Aber wie gesagt: Auch mit dem M3 machst du nichts verkehrt.
Gruß
Carsten
Carsten Sch. schrieb:> Aber wie Gesagt: PIC32 und CortexM3 (egal welcher Hersteller) sind an> sich gleichwertig. Entscheide was dir am besten erscheint (Preis,> Verfügbarkeit, Dev. Tools usw.)
Also ein Nachteil von der Microchip Entwicklungsumgebung MPLAB ist, dass
sie mal gerne öfters abstürzt. Das ist einfach so. Dafür ist es komplett
kostenlos. Alles hat seinen Preis, wobei ich noch nie mit ner 4000 EUR
Umgebung gearbeitet habe. Ob die richtig stabil läuft, müssen andere
sagen.
Ersteinmal vielen vielen Dank für die vielen Tips!
Ob STM32 oder PIC32 werde ich mich noch schlau machen, jetzt habe ich
wenigstens eine eingeschränkte Auswahl.
Zum Einstieg (umstieg) scheint mir PIC32 leichter zu sein, weil eben de
angepriesene Lib.
Was Boards angeht, werd ich auch nochmal schlau machen müssen...
Wie sieht es denn hier im Forum aus? Was wird präferiert?
Anguel S. schrieb:> Dafür ist es komplett> kostenlos. Alles hat seinen Preis, wobei ich noch nie mit ner 4000 EUR> Umgebung gearbeitet habe. Ob die richtig stabil läuft, müssen andere> sagen.
Eclipse, CDT, GCC, OpenOCD
Alles konstenlos. Qualitativ ist dieses Gespann top. Und es ist
"state-of-the-art".
Richtig, mann muss ein bisschen Zeit investieren, um es zum Laufen zu
bringen. Dabei lernt man aber wiederum sehr viel. Für den
professionellen Einsatz ist das ein Killerkriterium, weshalb auch viele
Firmen ein genau solches Päckchen fertig zusammenstellen und für viel
Geld verkaufen. Im Hobbybereich aber macht es m.E. keinen Sinn,
irgendwas kommerzielles zu kaufen.
Ich habe mit einer 4000 EUR Umgebung gearbeitet. So gross ist der
Unterschied nicht.
Carsten Sch. schrieb:>> Im Moment sind also PIC32AVR32 und Cortex-M/STM32 im Spiel.>> Ist das jetzt nur noch Geschmackssache, oder gibts gute Gründe für den>> einen oder anderen?>> Der PIC32 ist eigendlich das Gegenstück zu den Cortex M3. Der Pic32 hat> einen MIPS kern. Das ist neben den ARM die zweite große> Prozessorarchitektur. Was nun besser ist - das ist eine Glaubensfrage> ähnlich wie PIC oder AVR. Funktioniert beides.> Und auch der WEchsel von PIC32 MIPS auf STM32 CortexM3 ist nicht> komplizierter als der WEchsel von STM32 CortexM3 auf NXP CortexM3.> Der Vorteil bei den PIC ist das man bei Microchip einen HErsteller hat> der sehr umfangreiche und gut funktionierende LIBs von sich aus zur> Verfügung stellt. Man kann alsoe wenn man will alles aus einer HAnd> bekommen und muss nicht alles zusammensuchen mit den Nachteilen wei> verschiedene nicht genau zuordbare Versionsstände durch parallele> Weiterentwicklung usw...
Dem kann ich nur zustimmen. Ich habe alle Architekturen bereits in den
Fingern gehabt, ARM (7,9,M3), PIC*, AVR*, PPC, 68k,...
Der CPU-Kern wird immer mehr zur Nebensache. Viel wichtiger ist die
Peripherie und die Softwareunterstützung. Und speziell als Anfänger hast
Du bei Microchip einfach die besseren Karten. Du nimmst die MPLAB IDE,
den C32 Compiler, dazu einen ICD3 Debugger und ein Demoboard Deiner
Wahl, und Du wirst das ganze Zeugs innerhalb eines Tages am Laufen
haben. Garantiert.
Klar, Du kannst auch irgendeinen GCC-Port nehmen, irgendein OpenOCD mit
irgendeinem JTAG-Pod, dazu ein Eclipse oder Code::Blocks, und wieder
woanders her irgendeinen IP-Stack. Kannst Du machen, kein Thema. Aber
ohne entsprechende Erfahrung nicht an einem Tag. Schon bei der
Inbetriebnahme des OpenOCD mit dem Billig-JTAG, den Du irgendwo im Netz
geschossen hast, kann der einer oder andere Tag bei draufgehen. Und die
Portierung des von irgendwoher gesaugten IP-Stacks an Deinen speziellen
Controller geht auch nicht von selbst.
Natürlich ist das alles machbar. Das haben andere vor Dir auch
geschafft. Aber als Anfänger ist es beschwerlich.
Du kannst Dir natürlich auch zB bei rowley.co.uk ein Crossworks for ARM
und einen dazu passenden JTAG kaufen. Dann hast Du diese Probleme
natürlich nicht. Aber kostenlos ist das dann auch nicht mehr.
Von daher bist Du eigentlich mit dem PIC32 ganz gut bedient.
fchk
Das ausschlaggebende Kriterium ist also wohl der Compiler und
Entwicklungsumgebung.
Eclipse, CDT, GCC, OpenOCD ist als Ersatz von MPLAB oder als Paket für
STM32 gemeint?
Ein Betriebssystem braucht man, um komplexe software die man nicht
selbst schreiben will laufenzulassen. Fuer sicherheitsrelevant Projekte
moeglicherweise eher nicht. Oder moeglicherweise eher doch.
Also PIC32 mit MPLAB IDE, den C32 Compiler, dazu einen ICD3 Debugger und
ein Demoboard meiner Wahl =)
Also nur noch einen passenden PIC32 und ein dazu passendes Board
aussuchen =)
Ein passender wäre z.b. der PIC32MX575F512H.... kennt ihr ein gutes
Board dafür?
Yaro schrieb:> Das ausschlaggebende Kriterium ist also wohl der Compiler und> Entwicklungsumgebung.>>>> Eclipse, CDT, GCC, OpenOCD ist als Ersatz von MPLAB oder als Paket für> STM32 gemeint?
Eclipse=IDE
CDT=C Development für Eclipse
GCC ist der Compiler, der Microchip C32 ist auch ein GCC
OpenOCD ist der Treiber für den JTAG-Debugger, das Bindeglied zwischen
dem GDB (Gnu Debugger) und der Hardware. Der GDB ist Kommandozeile, und
Elipse setzt sich da drauf. Nicht unbedingt die eleganteste Architektur.
Das obige entspricht beim PIC32 dem MPLAB plus dem C32 Compiler. Der
Debugger ist im MPLAB drin.
fchk
Yaro schrieb:> Eclipse, CDT, GCC, OpenOCD ist als Ersatz von MPLAB oder als Paket für> STM32 gemeint?
Dieses Paket ist für so ziemlich alles, was sich programmieren lässt,
gemacht. Mit GCC wurde z.B. Linux programmiert. Und wohl so ziemlich
alles, was unter Linux läuft. Und es ist ganz klar die vielfältigste
Compiler-Kollektion, die es gibt. Aber eben: Es ist nicht plug'n'play.
Eclipse ist eine IDE, die ebenfalls extrem verbreitet ist. Auch
open-source. Und so bekannt/beliebt, dass viele Firmen diese IDE nehmen,
in ihr Paket integrieren und dann in der Werbung extra erwähnen, dass
ihre IDE "eclipse-based" ist. Quasi als Garant dafür, dass sie was
taugt.
Wenn Du PICs programmieren willst, ist MPLAB natürlich die bessere Wahl
(ich weiss gar nicht, ob die PICs zu den wenigen Prozis gehören, die GCC
nicht unterstützt).
Auf jeden Fall ist in MPLAB wohl alles genau so zusammengebaut, dass es
einfach läuft.
Yaro schrieb:> Also PIC32 mit MPLAB IDE, den C32 Compiler, dazu einen ICD3 Debugger und> ein Demoboard meiner Wahl =)>> Also nur noch einen passenden PIC32 und ein dazu passendes Board> aussuchen =)>> Ein passender wäre z.b. der PIC32MX575F512H.... kennt ihr ein gutes> Board dafür?
Microchip DM320004 plus DM320002 IO-Expansion Board plus AC164126 für
Deine eigene Peripherie. Schau es Dir auf der Microchip-Seite an.
Hab ich hier auch liegen.
fchk
Jetzt fehlt nur noch das richtige Board mit dem Richtigen PIC32.
Was die Pins angeht, so reichen mir 64 höchstwahrscheinlich aus. MHz
sollten es 80 sein. Flash mind. 256kb. Sram reicht wohl schon 16kb
locker aus. Und gerne mehrere Schnittstellen.
Was muss ein gutes Board haben, außer dass die Pins nach außen geführt
sind?
Yaro schrieb:> Jetzt fehlt nur noch das richtige Board mit dem Richtigen PIC32.
Hast Du doch schon. Siehe oben: DM320004. Da ist zwar ein größerer PIC
drauf, aber das soll Dich nicht stören.
> Was die Pins angeht, so reichen mir 64 höchstwahrscheinlich aus. MHz> sollten es 80 sein. Flash mind. 256kb. Sram reicht wohl schon 16kb> locker aus. Und gerne mehrere Schnittstellen.
Was anderes als 80 MHz gibts nicht. Faustregel fürs Entwickeln: den
größen Baustein nehmen, entwickeln, und dann schauen, in welchen
kleineren das Projekt reinpasst.
> Was muss ein gutes Board haben, außer dass die Pins nach außen geführt> sind?
Die richtige Peripherie. Oder möglichst gar keine, damit möglichst alle
benötigten Pins zur eigenen Verwendung frei sind. Ansonsten hast Du
nämlich ein Problem. Das Board hat Ethernet und USB onboard, was auch
sinnvoll ist. Alles andere bastelst Du Dir auf einem PICTAIL+ Board
AC164126 zusammen.
fchk
Frank K. hat gepostet, als ich grad geschrieben hab und die seite noch
nciht aktuallisiert war...
Ich werd mir die Boards anschauen.
Vielen vielen Dank an alle für die Hilfe!
Hi,
Anguel S. schrieb:> Also ein Nachteil von der Microchip Entwicklungsumgebung MPLAB ist, dass> sie mal gerne öfters abstürzt. Das ist einfach so.
DAs kann ich jetzt absolut nicht bestätigen. Was ich ALLE PAAR Tage mal
habe ist das die Kommunikation zwischen MPLAB und dem PicKit aus
irgendwelchen Gründen aussteigt. Anscheinend forciert wenn es sowieso
schon mit der Kommunikation aufgrund der Schaltung (Nutzung der ICSP
Pins auch für Funktionen) etwas wackelig ist.
Meist schaft aber schon ein einfaches Abziehen und nach einigen Sekunden
wieder neu anstecken des PicKit abhilfe. Ab und an war aber auch mal ein
Abspeicher der Arbeit und Neustart des Programms (NICHT des Rechner)
nötig.
Einen richtigen Absturz ohne die Möglichkeit des Abspeicherns hatte ich
schon Monatelang nicht mehr bei MPLAB. Da die Programme ja eh bei jedem
Übersetzen gespeichert werden hält sich aber auch in so einen Fall der
Ärger in grenzen ;-)
Das mit den Abstürzen schein also am jeweiligen System zu liegen - wie
fast bei aller Software.
Yaro schrieb:> Zum Einstieg (umstieg) scheint mir PIC32 leichter zu sein, weil eben de> angepriesene Lib.
Ja, würde ich auch so sehen - für den ersten Einstieg bist du bei
Microchip etwas besser bedient. Gerade weil es sehr viel mehr -aus einer
HAnd- gibt. Oft incl. Anfängerfreundlicher Doku.
Für den STM32 gibt es auch Libs von ST. Allerdings muss ich -insbesonder
im Moment- sagen das es ein echter Krampf ist auf deren Seite nach der
richtigen Lib zu suchen.
Zur Krönung kommt noch dazu das ich seit DREI MONATEN dabei bin zu
versuchen eine laut Pressemitteilung kostenlos erhältliche Audio Lib zu
erhalten. -ICh habe mich schon quer durch die Niederlassung hier in DL
UND Genf telefoniert. Auch habe ich es über einen Distri versucht. Auc
gab es einen Emailaustausch mit NAchfragen was ich genau brauche den ich
mit Link auf deren eigene Webseite beantwortet habe. Es scheint keiner
was zu wissen!!! Für eine Anfänger ist das sicher noch deutlich
frustrierender!
Soetwas habe ich bei Microchip noch nicht mal Ansatzweise erlebt. Wenn
dann wirklich mal keiner die Antwort greifbar hatte habe ich zumindest
innerhalb von 48h eine Rückmeldung bekommen.
Natürlich gibt es auch noch freie Libs für den STM32 von der
Web-Community. Vieleicht sogar mehr als beim PIC32. Aber wie schon von
anderen geschrieben ist der Aufwand das zusammenzusuchen und seine
eigene Konfiguration zum laufen zu bekommen deutlich höher.
> Wie sieht es denn hier im Forum aus? Was wird präferiert?
Hier im Forum liegen die Präferenzen allerdings eher bei den AVR (8Bit)
und ARM im 32 Bit Sektor. Zumindest schreien deren Anhänger
(insbesondere AVR) am lautesten. Aber es gibt auch eine Menge PIC kenner
hier. Nur die wirklich PIC lastigen Foren sind andere.
Hier noch zwei Dinge von mir:
Oben wird der ICD3 als Tool Empfohlen. Das ist definitiv ein gutes Gerät
und wenn es auf die (nicht zu viel) Euros nicht ankommt würde ich den
auch nehmen. (selber habe ich "nur den ICD2)
Wenn du etwas sparen willst funktioniert aber auch der PicKit3 der nur
wenig mehr Einschränkungen hat. Den nutze ich für die neueren Bausteine
und ich muss sagen der ist echt Robust: Verpolt, Kurschluss,
Überspannung (über 12V durch die Schaltung!) und was weiß ich habe ich
dem Ding schon zugemutet. Funktioniert immer noch wie am ersten Tag. Und
das bei einem Tool mit Debug funktionalität für 30Eur! (Wenn ich mir da
anschaue was ATmel für seine AVR bietet... Entweder schweineteuer
(JTAGICE MKII) mit dem ungefähr das möglich ist was mit dem PicKit3
möglich ist, oder derart superempfindlich das es beim kleinsten Fehler
stirbt (DRAGON - Forensuche!)
Als zweites: SPÄTER wenn du mit den Pic32 zurecht kommst würde ich mir
aber die ARM zumindest auch mal anschauen. (wenn du mit ARM einsteigen
würdest käme die Empfehlung umgekehrt). Das sind halt die beiden großen
Architekturen und aus eigener Erfahrung weiß ich -gerade wenn du andere
Projekte nachbauen willst oder Teile davon als Ausgangsbasis für eigene
Ideen nutzen willst, wird dieses Projekt genau auf der von dir nicht
Präferierten TEchnologie basieren. Meist ist es aber leichter sich dann
damit abzufinden anstelle das mühsam zu portieren. Halt wegen der
Peripherie. Der eigendliche Programmcode hat ja nicht die Unterschiede,
das verdecken die Compiler schon ganz ordentlich!
Für die STM32 gib es mit dem STLink auch einen günstigen JTAG Adapter
(ca. 25Eur), Oder falls es eine private Anwendung ist auch das
universellere (merh asl nur STM32) Segger J-Link EDU für ca. 60Eur.
Der ST-Link kann ja nur die ST Bausteine 8Bit/32Bit
Gruß
Carsten
Hallo Yaro,
mit dem PIC32 setzt Du ziemlich auf einen Nischenprozessor, sorry die
PIC-Fans werden mich gleich zerreissen, jedoch ist mir zumindest in
Europa kein anderer MIPS basierter µC bekannt.
Bei den ARM's, ob Cortex-M3 oder ARM7, setzt Du auf eine viel breitere
Basis.
Schau mal dieses an:
http://focus.ti.com/docs/toolsw/folders/print/eks-lm3s1968.html
Ist relative preiswert, alle IO's auf PinLeiste rausgefuehrt und hat
schon einen JTAG Programmer on Board, den man auch fuer eigene Projekte
nutzen kann und die Software Libs von TI (ex Luminary Micro) koennen es
mit den von ST sicher aufnehmen.
Ob man das ccs tool (eclipse basiert) mag, muss jeder selbst
entscheiden, ich habe keine grosses Problem damit.
Die TI cortex-M3 haben gegenueber den anderen cortex Anbietern die
Eigenart, das meist nur zwei verschiedene Funktionen pro Pin moeglich
sind. Ob das ein Vorteil ist oder nicht muss jeder fuer sich
entscheiden.
Um jedoch mal mit dem weiter oben genannten Vorurteil aufzuraeumen,
Softcores in FPGA's sehe ich nicht, als viel komplizierter an als simple
µC.
Man muss ja nicht die SC der Chiphersteller mit Ihren
Entwicklungsumgebungen nehmen, unter Opencores gibt es zum Bsp.
genuegend Alternativen. Damit kann dann der FPGA seinen entscheiden
Vorteil ausspielen: Wenn es mal zeitlich eng wird fuer den µC, kann man
leichter dedizierte Hardware an den Softcore anbinden um den µC zu
entlasten.
Dieses kann sogar soweit gehen, das man extra Befehle für den Zugriff
auf diese im Softcore definiert. Schneller geht es dann nicht wirklich
mehr.
LG
ein bastler
Bin jetzt keines falls der Profi, aber ich glaube, dass es ziemlich egal
ist welcher Prozessor da verbaut ist. In C merkt man da nicht wirklich
den Unterschied bzw. ist es kein großer Aufwand sich in einen anderen
Core einzuarbeiten. Da sehe ich eher bei der Peripherie mehr Aufwand.
Und die Peripherie ist bei den ARMs sowieso von Hersteller zu Hersteller
komplett anders. Also bin ich der Meinung, dass es egal ist ob man jetzt
den PIC32 oder einen ARM nimmt.
Beim PIC32 kann man sich auch sicher sein, dass der auch noch in einigen
Jahren erhältlich ist und falls nicht, ist meist ein pinkompatibler
besserer Typ vorhanden.
Mfg Kroko
Hi,
bastler schrieb:> Hallo Yaro,>> mit dem PIC32 setzt Du ziemlich auf einen Nischenprozessor, sorry die> PIC-Fans werden mich gleich zerreissen, jedoch ist mir zumindest in> Europa kein anderer MIPS basierter µC bekannt.
Das liegt aber dann eher an deinem Wissensstand als an der tatsächlichen
Verfügbarkeit! DA gibt es schon einiges - Die Tage hatte ich einen von
TI in der Hand...
Was richtig ist, das ist die Tatsache das es weniger "General Purpose"
Prozessoren wie bei den ARM gibt. An "Bastler- Einstiegsmaterial" kenne
ich auch nur den PIC32 aus dem Eff Eff. Die anderen sind eher im High
End sektor zu finden:
Zitat Wikipedia
> MIPS-Prozessoren werden auch häufig in eingebetteten Systemen eingesetzt.> Dazu zählen z. B. Cisco-Router, Suns Cobalt-Server bis RaQ/Qube2, BMW> Navigationssysteme, die Fritz!Box, Satellitenreceiver, Dreambox, Konica> Minolta DSLRs und Sony- und Nintendo-Spielkonsolen.
Oder bei Heise:
http://www.heise.de/ct/artikel/Prozessorgefluester-1102725.htmlbastler schrieb:> Bei den ARM's, ob Cortex-M3 oder ARM7, setzt Du auf eine viel breitere> Basis.
Das halte ich für einen Fehlglauben - denn ich kann diesem hier nur 100%
Zustimmen:
Stefan R. schrieb:> ... aber ich glaube, dass es ziemlich egal> ist welcher Prozessor da verbaut ist. In C merkt man da nicht wirklich> den Unterschied bzw. ist es kein großer Aufwand sich in einen anderen> Core einzuarbeiten. Da sehe ich eher bei der Peripherie mehr Aufwand.
Insbesondere da folgendes Gilt:
> Und die Peripherie ist bei den ARMs sowieso von Hersteller zu Hersteller> komplett anders. Also bin ich der Meinung, dass es egal ist ob man jetzt> den PIC32 oder einen ARM nimmt.
Es spielt vom Aufwand her ABSOLUT KEINE ROLLE ob ich jetzt von einem
STM32 Cortex-M3 auf einen NXP Cortex M3 wechsle, oder ob ich von einem
PIC32 zu einem STM32 wechsle (und umgekehrt!)
Der Kern spielt fr mich keine Rolle - ich muss sowohl das Pinning wie
auch die meisten Lib-Zugriffe ändern. Und der Teil der zwischen allen
ARM Plattformen beliebig austauschbar ist kann bei einem Wechsel
zwischen MIPS und ARM genauso stehen bleiben.
Daher nützt mit die breitere Basis an Hobbyprozessoren bei ARM ÜBERHAUPT
NICHTS! Wenn mein ausgewählter Hersteller nicht liefern kann oder die
Produktion gar einstellt kann ich trotzdem nicht einfach ausweichen. Ich
muss Software und HArdware trotzdem ändern.
Das ist ein Argument das stammt noch aus den Zeiten als Assembler die
alleinige Sprache der µC war die Prozessoren mit gleichen Kern auch
nahezu identisch im Pinning waren - von Periepherie "ON Chip" war da ja
noch gar keine Rede...
Dazu kommt noch das man -wie geschrieben- mit Microchip einen HErsteller
hat der sich (mit ausnahme einer MAssenabkündigung bei Ausgründung ´89)
in den letzten 20 Jahren als sehr zuverlässig herausgestellt hat.
Vollständige Abkündigungen gab es fast nicht - Und die wenigen die es
gab hatten einen 100% kompatiblen Nachfolgetyp der mit einer
Programmänderung im Rahmen von 5min Aufwand problemlos anstelle der
ursprünglichen Verbaut werden kann.
Zudem hat dieser Hersteller viele Einsteigerinformationen einigermaßen
gut ausfbereitet zentral bei sich auf den Seiten abrufbar. Das hast du
in der Qualität bei den ARM (noch?) nicht.
GRuß
Carsten
Carsten Sch. schrieb:> Das mit den Abstürzen schein also am jeweiligen System zu liegen - wie> fast bei aller Software.
Bei mir stürzt MPLAB komischerweise meist dann ab, wenn ich die Hilfe
anschaue :)
> Ja, würde ich auch so sehen - für den ersten Einstieg bist du bei> Microchip etwas besser bedient. Gerade weil es sehr viel mehr -aus einer> HAnd- gibt. Oft incl. Anfängerfreundlicher Doku.
Naja, bei deren neuem Multimedia Expansion Board hält sich die Doku
leider sehr in Grenzen :(
> Für den STM32 gibt es auch Libs von ST. Allerdings muss ich -insbesonder> im Moment- sagen das es ein echter Krampf ist auf deren Seite nach der> richtigen Lib zu suchen.
Ich kaufe nix von einem großen Hersteller, der so blöd ist, seine Seite
so zu verunstalten.
> Zur Krönung kommt noch dazu das ich seit DREI MONATEN dabei bin zu> versuchen eine laut Pressemitteilung kostenlos erhältliche Audio Lib zu> erhalten.
Solche Sachen wundern mich nicht mehr. Wenn es um Hard- oder Software
geht, können sich Hersteller anscheinend alles erlauben.
> Soetwas habe ich bei Microchip noch nicht mal Ansatzweise erlebt. Wenn> dann wirklich mal keiner die Antwort greifbar hatte habe ich zumindest> innerhalb von 48h eine Rückmeldung bekommen.
Da bin ich jetzt gespannt, wenn die mir meine Frage zum Multimedia Board
beantworten, sind sie echt gut. Ich bezweifele es allerdings...
> Nur die wirklich PIC lastigen Foren sind andere.
Kannst Du da was anderes als das Microchip-Forum empfehlen? Da wird
einem nicht wirklich gut geholfen :(
> Halt wegen der> Peripherie. Der eigendliche Programmcode hat ja nicht die Unterschiede,> das verdecken die Compiler schon ganz ordentlich!
Genau, und bei der Peripherie sind die Libs von ARM zu ARM sehr
unterschiedlich.
Grüße,
Anguel
bastler schrieb:> Bei den ARM's, ob Cortex-M3 oder ARM7, setzt Du auf eine viel breitere> Basis.
Und was hat man davon? Der Core spielt wie oben schon gesagt fast keine
Rolle. Und MIPS ist kein schlechter Core. Außerdem steht Microchip zu
seinen Produkten und ist eine sehr reiche Firma. Ob da Luminary/TI
besser sind, wage ich zu bezweifeln.
> Ob man das ccs tool (eclipse basiert) mag, muss jeder selbst> entscheiden, ich habe keine grosses Problem damit.
Das hat definitiv weniger Nutzer als MPLAB.
> Um jedoch mal mit dem weiter oben genannten Vorurteil aufzuraeumen,> Softcores in FPGA's sehe ich nicht, als viel komplizierter an als simple> µC.
Da lese ich in dem FPGA Forum hier von den Profis andere Sachen bzgl.
Xilinx EDK und auch bzgl.Performance. Da lautet das Motto eher - Hard
wenn nur möglich.
> Man muss ja nicht die SC der Chiphersteller mit Ihren> Entwicklungsumgebungen nehmen, unter Opencores gibt es zum Bsp.> genuegend Alternativen. Damit kann dann der FPGA seinen entscheiden> Vorteil ausspielen: Wenn es mal zeitlich eng wird fuer den µC, kann man> leichter dedizierte Hardware an den Softcore anbinden um den µC zu> entlasten.
Ach was - und mit welchem Aufwand das ganze? FPGAs muss man doch erstmal
in- und auswendig kennen, um mit OpenCores überhaupt was anfangen zu
können.
> Dieses kann sogar soweit gehen, das man extra Befehle für den Zugriff> auf diese im Softcore definiert. Schneller geht es dann nicht wirklich> mehr.
Ja möglich ist im Prinzip alles. Ich bau mir mal eben meinen eigenen
Cortex-M5. Sorry, aber solche Aussagen verwirren die Anfänger komplett.
Welcher Softcore kann den von der Performance her z.B. mit Cortex-M3
mithalten? Mit welchem FPGA? Und was kostet er Spaß dann?
Hallo Anguel,
also rein Leistungsmaessig kann zum Bsp. ein microblaze (hier v7.2)
locker mit der cortex-m3 architekture mithalten (1.30DMIPS/MHz zu
1.2.5DMIPS/MHz)
Dabei kann selbst auf den "Spar"-FPGAs (spartan) eine core Frequenz von
100MHz ohne groessere Probleme erreicht werden und das auch auf billigen
Digilent Ausbildungs-Boards.
Einzig im Punkt DMIPS/mw muessen sie sich geschlagen geben, aber das ist
ja auch ein Vergleich von Birnen mit Äpfeln (besser noch Eiern).
Die Breite Basis der ARM hilft sicher nur bedingt bei der Einarbeitung
in ein Derivat eines anderen ARM-Herstellers, da meist leider auch
andere Peripherie. Jedoch kann die Entwicklungskette konstant bleiben
(armgcc). Selbst beim "Sprung" von ARM7TDMI (NXP LPC2294) auf Cortex-M3
(TI LM3S6965) konnte ich die Kette beibehalten.
Die obengenannten Wikipedia Beispiele zu MIPS getriebenen Geraeten,
setzen alle keine allgemeinen µC ein, sondern meist spezielle SoC's.
Aber die sind ja hier nicht das Thema gerade.
LG
ein bastler
Falls Du noch in der Evaluation steckst habe ich auch noch einen
Kandidaten:
Renesas RX600 Serie:
http://www.renesas.com/products/mpumcu/rx/rx600/rx600_landing.jsp
Die sollten Deine gestellten Anforderungen erfüllen. FPU vorhanden,
gehen bis 100MHz, bis 2MB flash, 128kB RAM, ...
Als kostenlose Entwicklungsumgebung kannst Du die KPIT GNU Tools nehmen:
http://www.kpitgnutools.com/
bastler schrieb:> also rein Leistungsmaessig kann zum Bsp. ein microblaze (hier v7.2)> locker mit der cortex-m3 architekture mithalten (1.30DMIPS/MHz zu> 1.2.5DMIPS/MHz)>> Dabei kann selbst auf den "Spar"-FPGAs (spartan) eine core Frequenz von> 100MHz ohne groessere Probleme erreicht werden und das auch auf billigen> Digilent Ausbildungs-Boards.
Hört sich interessant an :) Aber der Aufwand für einen Anfänger ist
schon groß :(
> Jedoch kann die Entwicklungskette konstant bleiben> (armgcc).
Ich dachte, dass der nicht so gut optimiert wie Keil und IAR. Wie sind
deine Erfahrungen?
> Die obengenannten Wikipedia Beispiele zu MIPS getriebenen Geraeten,> setzen alle keine allgemeinen µC ein, sondern meist spezielle SoC's.
Ich glaube auch, dass viele der MIPS-Beispiele eher in Richtung 64 bit
gehen.
Grüße,
Anguel
Johnny B. schrieb:> Falls Du noch in der Evaluation steckst habe ich auch noch einen> Kandidaten:>> Renesas RX600 Serie:
Wie sieht es mit Libraries, Evalboards und Kosten aus?
Anguel S. schrieb:> Johnny B. schrieb:>> Falls Du noch in der Evaluation steckst habe ich auch noch einen>> Kandidaten:>>>> Renesas RX600 Serie:>> Wie sieht es mit Libraries, Evalboards und Kosten aus?
Der Chip an sich sollte rel. günstig sein. Habe beim RX610 mal Zahlen um
die EUR 5...6.- gehört.
Evalboards gibts z.B. von Glyn:
http://www.glyn.de/content_xl.asp?wdid=2376http://www.glyn.de/content_xl.asp?wdid=2489
Wie es mit (kostenlosen) Libraries aussieht weiss ich leider nicht.
Jedoch wahrscheinlich nicht sonderlich viele.
Johnny B. schrieb:> Wie es mit (kostenlosen) Libraries aussieht weiss ich leider nicht.> Jedoch wahrscheinlich nicht sonderlich viele.
"Um die Softwareentwicklung zu erleichtern, gibt es von GLYN neben dem
TFT Steuerprogramm auch noch wichtige Funktionen, wie z. B. Kreise,
Linien, und Blöcke zeichnen. Auch Fonts können verwendet werden."
Naja, nicht sehr überzeugend, was die Graphic-Libs angeht :)
Hallo Anguel,
ich kann nur den Vergleich zu einer "Spiel"-Version von Keil und dem
Hitex Hitop (aeltere version) ziehen.
Und dabei konnte ich keine grossen Unterschiede bezueglich der erzeugten
Codequalitaet ausmachen.
gut die ide und die debug Moeglichkeiten sind nicht ganz so gerade aus
wie in der speziellen IDE's.
Da ich jedoch oft bei den target-Plattformen springen muss, ist die
geringere Vielfallt der Debugunterstuetzung eher ein vorteil, da ich
dann nicht bei einer Plattform ein spezielles debug feature vermissen
kann. ;-)
Laeuft dann ebend eher alles mehr auf basis debug funktionen hinaus.
Die gibt es bei jedem target und ich muss sie nicht erst lange suchen
und mich darauf einstellen. ;-)
Der gcc ist nebenbei ja auch Grundlage fuer das durch Codesourcey
angebotenen Entwicklungspaket. Ob die dort noch etwas daran
veraendern/verbessern weiss ich jedoch nicht.
Für alle die mal den gcc für arm ausprobieren wollen und kein Problem
mit linux haben
http://www.lowlevel.eu/wiki/ARM_Cross-Compiler
LG
ein bastler