Hallo, meine Frage ist eigentlich ganz einfach: Gibt es einen µC, am besten einen mit gcc-Port, der einen mathematischen Koprozessor hat bzw. schnell mit Gleitkommazahlen rechnen kann, aber NICHT so ein Riesen-SoC ist, der externes SDRAM braucht und externes Flash etc.? Hintergrund ist, ich möchte eine eigene GPS-Lösung rechnen, da kommt man um Gleitkommazahlen nicht drum rum. Ich brauche kein Betriebssystem und keine komplexe Peripherie, und auch nicht besonders viel Speicher. Nur halt Rechenpower.
du bist sicher, daß Festkommazahlen nicht reichen? Ok, falls sich die Erde unerwartet um mehrere Zehnerpotenzen dehnt, könnten Gleitkommazahlen sinnvoll sein.
Bernd H. schrieb: > Hintergrund ist, ich möchte eine eigene GPS-Lösung rechnen, da kommt man > um Gleitkommazahlen nicht drum rum. Eigene ballistische Interkontinentalraketen?
Klaus Wachtler schrieb: > Ok, falls sich die Erde unerwartet um mehrere Zehnerpotenzen dehnt, > könnten Gleitkommazahlen sinnvoll sein. Dann sollte er aber schnell sein, damit er mit der Rechnung fertig ist, bevor sie platzt MfG Klaus
Man kann auch ohne FPU mit Fiesskommazahlen rechnen. Und bei 32-Bittern ist das noch nicht einmal sonderlich langsam. Aber wenn dir danach gelüstet, die ziemliche frischen STM32F4 haben eine single precision FPU an Bord. Nun bleibt natürlich die Frage, ob single precision ausreicht.
Ihr habt bestimmt alle schon einmal eine GPS-Lösung rein mit Festkomma-Arithmetik implementiert und wollt sie mir gerne zeigen? Scherz beiseite, die Ephemeris-Daten kommen zum großen Teil mit 32 bit Auflösung rein, die Pseudorange- und Phasenmessungen kommen mit 64 bit Auflösung. Und darauf muss man dann eine Unmenge trigonometrischer Funktionen werfen. Natürlich lässt sich jede Aufgabe auch in Festkomma-Arithmetik lösen, das will ich nicht bestreiten. Es ist halt nur nicht immer sinnvoll. Eine GPS-Positions-Berechnung gehört wohl ganz sicher in die Schublade "du willst eine FPU benutzen".
Es gibt einen gut eingeübten Forenreflex, der bei Erwähnung von Fliesskommarechnung sofort mit "nimm Festkommarechnung" antwortet. Ohne gross nachzudenken, denn oft stimmt es auch. Aber eben nicht immer, und das hier dürfte so ein Fall sein. Dieses "um Himmels willen keine Fliesskommarechnung!" hat auch damit zu tun, dass Zwerge wie ein ATmega8 dafür recht viel wertvolles Flash opfern müssen. Wenn man allerdings 128KB Flash hat und einen 32-Bit Core mit Barrelshifter, dann relativiert sich das und der Vorteil von Festkommarechnung schwindet.
Single precision reicht leider nicht aus. Viele GPS-Module sind ARM-basiert und nutzen - nehme ich zumindest an - soft float. Allerdings rechnen die preiswerten Module keine Phasenlösung, und auch nur mit einer Frequenz von 1 bis 5 Hertz. Da bleibt der Rechenaufwand in Grenzen. Möglicherweise machen sie sogar zumindest in Teilen des Algorithmus Festkomma-Arithmetik. Das taugt bei mir aber nicht, da ich die Hardware nutzen möchte, um einen Algorithmus zu entwickeln und zu verfeinern. Bei Festkomma-Arithmetik müsste ich mir bei jeder kleinen Änderung wieder Gedanken über die Skalierung machen, das möchte ich gerne vermeiden. Warum nicht auf dem PC? Das Teil soll in einem UAV mitfliegen.
in einem projekt lasse ich mehrere iir-filter mit double laufen, im kHz-Bereich. ARM7, 72 MHz. double war kaum langsamer als float. ein cortex M3 mit 100 MHz bringt nochmal ein klein wenig.
Eine PC-Stromschleuder ? Die ist noch weit weg. Nimm einem AVR32UC3C, der hat eine FPU. Und falls die Aufloesung nicht taugt kann man mit einer Software library nachhelfen.
A. K. schrieb: > Es gibt einen gut eingeübten Forenreflex, der bei Erwähnung von > Fliesskommarechnung sofort mit "nimm Festkommarechnung" antwortet. Ohne > gross nachzudenken, denn oft stimmt es auch. Und eben deshalb lohnt sich die Nachfrage, ob es wirklich sein muß. Als Maschinenbauer bin ich der Letzte, der Gleitkommarechnung prinzipiell ablehnt. Aber Nachhaken ist immer sinnvoll, schließlich gibt eine FPU nicht umsonst und ohne FPU ist Festkomma schneller.
Bernd H. schrieb: > schnell mit Gleitkommazahlen rechnen kann Gehts nicht konkreter? Ich geh ja auch nicht zum Geldautomaten und gebe ein: "viel", sondern einen bestimmten Wert. Wie oft kommen neue Daten rein, wieviele Millionen Rechenschritte müssen damit gemacht werden und wie schnell muß ausgegeben werden? Wenn es aber nur für einen Menschen ist, dann kann das jeder 4Bitter schnell genug. Der Mensch kann nur sehr langsam ablesen (2..5 Werte/s). Peter
Bernd H. schrieb: > aber NICHT so ein Riesen-SoC > ist, der externes SDRAM braucht und externes Flash etc.? Die "powervollste" Lösung in DIL und TQFP wäre wohl ein Propeller Chip, 8 CPU @ 80mhz, overclocking ~110Mhz ohne Probleme. Das Problem dabei wird aber der gcc sein, der noch in Arbeit ist, und vor allem holst du dir mit so einem Chip was Propritäres, es gibt keinen "kompatiblen" Nachfolger mit mehr Leistung, ... Was hast du gegen SoCs? Die gibts ja auch auf (neudeutsch:) "Breakout-Boards" und sehr auf Energie Sparen bedacht, komplett mit allem drauf, was dazu gehört. Ältere PC104 mit P2/3/Celeron/Athlon/... gibts auch für 15...50 Euro. Leider ist man da gleich mal bei 20...30 Watt nur für den Rechner. Ein micro2440/mini2440 ohne Display wär vielleicht eine gute Lösung. Du hast ein Betriebssystem, gcc, eine Hardware-Basis mit richtig Power und es ist billig. Noch Leistungsfähigere Boards sind gerade am kommen, solangsam werden die auch bezahlbar. Meine Meinung, mit einem kleinen SoC oder ARM-Board wirst du am glücklichsten und kostet wahrscheinlich genausoviel, als wenn du selber anfängst Platinen zu machen - mit Lochraster und Steckbrett wirst du bei der Leistung nicht weit kommen.
Zur Orientierung hinsichtlich der Performance von Software-FPU: http://www.smxrtos.com/ussw/gofast/gofast_arm_keil.htm http://www.smxrtos.com/ussw/gofast/gofast_thumb2_keil.htm
Nils S. schrieb: > Die "powervollste" Lösung in DIL und TQFP wäre wohl ein Propeller Chip, > 8 CPU @ 80mhz, overclocking ~110Mhz ohne Probleme. Wenn schon in dieser Richtung, dann XMOS. Die single Core Version (4 Threads a 100MHz) gibts in LQFP.
Das GPS Signal kommt alle sekunde neu rein. Dh man hat 1 sekunde pro zyklus.
Also klassisch nimmt man für solche Anwendungen DSPs. Die gibts in Festkomma und in Fließkomma.
PIC32MXxxx: http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en535593 http://www.reichelt.de/PIC-Controller-32-bit/0/16/index.html?;ACTION=2;LA=3;GROUP=A366E;GROUPID=4509;START=0;OFFSET=16;SHOW=1 Using PIC32 MCUs to Develop GSM/GPRS/GPS Solutions Application Note: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en553690 Floating Point Math Library for PIC32: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en552826
> aber NICHT so ein Riesen-SoC > ist, der externes SDRAM braucht und externes Flash etc.? Das muß man ja nicht alles selber löten, gibts auch als fertiges Board an das man "nur" noch seine serielle Konsole und seine Hardware anschließen muß, mit einem Embedded Linux vorinstalliert. Z.B. http://www.taskit.de/produkte/stamp9g45/index.htm Da könnte Software-Float schnell genug sein.
Nano Oschi schrieb: > Eine PC-Stromschleuder ? Die ist noch weit weg. Nimm einem AVR32UC3C, > der hat eine FPU. Und falls die Aufloesung nicht taugt kann man mit > einer Software library nachhelfen. Habe ich das noch richtig in Erinnerung, dass die FPU dort nur vom IAR unterstützt wird, während der GCC momentan noch keine FPU-Unterstützung dafür hat, oder hat sich das inzwischen geändert? fchk
Hat noch keiner die neuen Cortex-M4 genannt? Demo Board z.B. das STM32F4 Discovery. Natürlich kann diskutieren, ob man wirklich eine FPU braucht...
klausr schrieb: > Hat noch keiner die neuen Cortex-M4 genannt? Demo Board z.B. das STM32F4 > Discovery. Natürlich kann diskutieren, ob man wirklich eine FPU > braucht... Doch, und sie haben nur eine Single-Precision-FPU, was dem Fragesteller nicht ausreicht. double muss es sein. fchk
Warum muss es denn eine FPU sein? Bei 1s Zyklus wäre auch bei umfassenden Berechnungen eine Soft FPU ausreichend. Vielleicht sogar 4-fach genau: http://www.nongnu.org/hpalib/
Danke für eure Tipps, ich komme gar nicht mehr hinterher mit dem Datenblatt klicken. Ich denke, etwas passendes ist wahrscheinlich schon dabei. Wer sagt, dass das GPS-Signal einmal pro Sekunde reinkommt? Das Signal kommt kontinuierlich rein, und zwar kommen da ziemlich genau 1.575.420.000 Vollwellen pro Sekunde, von deren jede auf Bruchteile von Grad aufgelöst werden kann. Nochmal: Ich möchte nicht NMEA-Daten von einem GPS-Modul entgegennehmen und damit rechnen, sondern ich möchte eine Phasenlösung aus den Rohdaten errechnen, und zwar möglichst mit 10 Hz.
Renesas RX610 z.B. R5F56108 mit 2 MiB Flash (wenn man Platz für Tabellen braucht ;-)) und 128 kiB SRAM on board, FPU (single precision) + einige DSP-Befehle. Liegt mit dem GCC (KPIT GNURX) beim Coremark/MHz http://www.coremark.org/benchmark/index.php deutlich vor allen Cortex-M3, die M4s (z.B. Freescales Kinetis) sind z.Z. nur mit dem Green Hills Compiler schneller... (bei den Messwerten muss man trotzdem aufpassen, da einige Controller nur bei der Codeausführung aus dem SRAM so schnell sind bzw. das Flash nicht schnell genug ist...)
Da Du bisher noch nicht wissen kannst welche Rechenleistung wirklich benötigt wird, wäre eine skalierbare Plattform nützlich. Letzter Versuch, dann habt Ihr Ruhe vor mir... Das (kostenlose) MPLAB hat auch einen Emulator und Soft FPU. Mal schnell zum testen... http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
Joe Redfish schrieb: > Da Du bisher noch nicht wissen kannst welche Rechenleistung wirklich > benötigt wird, wäre eine skalierbare Plattform nützlich. > > Letzter Versuch, dann habt Ihr Ruhe vor mir... > > Das (kostenlose) MPLAB hat auch einen Emulator und Soft FPU. Mal schnell > zum testen... > > http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002 Gibt's von Renesas/KPIT Cummins auch...und kann, wie die div. Compiler für die ARMs, auch C++ http://am.renesas.com/tool/ http://www.kpitgnutools.com/ günstige Eval-Kits inkl. JTAG-Debugger z.B. http://www.glyn.de/News-Events/Presseinformation?Seite=3772 An den TO: Cortex-A8 auf einem SO-DIMM falls die bisherigen Vorschläge nicht reichen http://www.glyn.de/data/glyn/media/doc/TX53-Datasheet.pdf
A. K. schrieb: > Renesas hat in der SH2 Reihe welche mit FPU. SH7216 rechnet mit 64-bit float. Mit 200MHz und Ausführung von zwei Befehlen/Takt gibt es in der Preislage nichts schnelleres. http://am.renesas.com/products/mpumcu/superh/sh7216/sh7216/sh7216_root.jsp
Bernd H. schrieb: > Das Signal > kommt kontinuierlich rein, und zwar kommen da ziemlich genau > 1.575.420.000 Vollwellen pro Sekunde, von deren jede auf Bruchteile von > Grad aufgelöst werden kann. und wie willst du das mathematisch machen? Das ist HF und auch im Spreizbandverfahren. Du geht eine Phasenwinkelmessung doch nur in Hardware.
Willi schrieb: > Mit 200MHz und Ausführung von zwei Befehlen/Takt Bei 64bit Fliesskomma aber nicht mehr. ;-)
A. K. schrieb: > Bei 64bit Fliesskomma aber nicht mehr. ;-) Ohne Deine ausdrückliche Betonung hätte das doch niemand gemerkt :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.