Hallo Leute, ich bin auf der Suche nach einem Mikrocontroller mit einer FPU drin, um Fließpunkt-athethmetik nutzen zu können. Leider blieb meine Suche bislang erfolglos. Selbst bei Controllern wie dem AT91SAM oder den ARM Cortex Modellen habe ich nichts dazu im Datenblatt finden können, ich kann mir jedoch nicht vorstellen, dass diese doch recht neuen Prozessoren keine FPU haben. Suche ich nach dem falschen Begriff oder haben die das wirklich nicht? Wenn sie es nicht haben, was gibt es in der Klasse für Prozessoren mit FPU?
Ein Coprozessor kommt nicht in Frage? http://www.sparkfun.com/commerce/product_info.php?products_id=8129
> ich bin auf der Suche nach einem Mikrocontroller mit einer FPU drin, um > Fließpunkt-athethmetik nutzen zu können. Fließpunktarithmetik kannst du auf einem uC auch ohne FPU.... Der Compiler wirds schon richten. > athethmetik Was ist das? > Suche ich nach dem falschen Begriff? .... ;-)
- uC mit FPU: Hitachi SH3 oder SH4 - 90% der "FPU"-Algorithmen im embedded Bereich lassen sich auf Ganzzahl-Arithmetik (schneller und schöner) abbilden. VG, Hans PS: ARM ist energie- und durchsatzoptimiert, da passt eine FPU schlecht rein. Mag sein, dass einer der hunderte ARM- Lizenznehmer eine FPU eingebaut hat...
Sehr leistungsstarke Microcontroller mit FPU findet man bei Renases (Ex-Hitachi) in den SuperH-Familien: http://www.renesas.com/products/mpumcu/superh/superh_landing.jsp Es gibt jedoch hier und da ein paar Stolpersteine bei der Verwendung der SuperH-FPU mit dem GCC. Verursacht durch Compilerfehler werden nämlich manchmal(!) die Prozessorflags für float- und double-Arithmetik nicht korrekt umgeschaltet. Vielleicht ist der Fehler in den allerneuesten GCC- Versionen schon behoben, aber Anfang 2009 war er noch vorhanden.
Danke erstmal für die vielen Tips! Auf die Idee mit dem Coprozessor bin ich noch nicht gekommen, das werde ich mir mal genau anschauen. Das mit dem ARM Prozessoren kann ich wohl vergessen. Alle neueren, die das überhaupt haben kann ich nicht lönten/backen. Die Reneas Teile sehen auch recht interessant aus, werde dem mal nachgehen.
http://www.renesas.eu/products/mpumcu/rx/rx600/rx610/rx610_root.jsp Deine Anforderungen sind hoffentlich hoch genug, um einen RX610 dauerhaft beschäftigen zu können.
@ Fabian S. (jacky2k) >Danke erstmal für die vielen Tips! Hier ein viel wichtigerer Tip: Netiquette. Beschreibe dein Problem und fasse deine Anforderungen in (ungfähre) Zahlen. Die Aussage "ich brauch Fließkomma in Hardware" entpuppt sich oft als, "ich will ein paar ADC-Werte mit 100 Hz auf einem LCD anzeigen. Siehe auch Festkommaarithmetik. MFG Falk P S Es gibt ein paar DSPs mit Fleißkomma, das sind dann aber 500 MHz++ Boliden.
Falk Brunner schrieb: > Beschreibe dein Problem und fasse deine Anforderungen in (ungfähre) > Zahlen. Die Aussage "ich brauch Fließkomma in Hardware" entpuppt sich > oft als, "ich will ein paar ADC-Werte mit 100 Hz auf einem LCD anzeigen. Hehe, das ist nicht der Fall. Habe hier einen recht aufwendigen Algorithmus, der numerisch die Nullstellen einer Funktion (R^2->R Abbildung) berechnet. Ich habe es bereits in C++ mit Fliekomma und Fixpunkt implementiert, jedoch funktioniert es mit Fixpunkt einfach nicht. Ich habe da irgendwo eine Instabilität die ich nicht finden kann :P Zudem brauche ich etwas mehr Dampf, denn der Atmega mit 16Mhz benötigt momentan 0,3Sec für eine solche Berechnung, das sollte aber nicht viel länger als 10ms dauern. Daher arbeite ich daran den Algorithmus zu verbessern und einen besseren Prozessor zu finden.
Fabian S. schrieb: > Hehe, das ist nicht der Fall. Habe hier einen recht aufwendigen > Algorithmus, der numerisch die Nullstellen einer Funktion (R^2->R > Abbildung) berechnet. es ist ja die Frage wie viele mögliche eingangskombinationen existieren. (Ich kann mir noch nichts genaues unter der Fuktion vorstellen). Wenn es nur eine begenzte zahl ist kann man ja auch das ganze als Lookup-Tabelle etweder für teilergebnisse oder gleich für die gesamte brechnung hinterlegen. Selbst wenn es recht viele sind, dann bräuchte man nur ein µC mit mehr speicher.
Ne so einfach ist das nicht. Das ist ne 2-dimensionale Funktion, die eine Abbldung auf einen Wert hat. Im Anhang ist ein Bild. Problem ist auch, dass die Funktion dynamisch generiert wird. Also das ist mehr als komplex.
also wenn dein atmega des in 0,3 pakt dann nimm einfach einen arm cortex mit bis120Mhz,aber ich denk 60Mhz reichen aus da der prozzesor 32bit ist,da durch holst du locker das 30fach heraus auch ohne FPU.
Zur Orientierung die Floating-Point Performance von ARM7/CM3 (in Software): http://www.smxrtos.com/ussw/gofast/gofast_arm_iar.htm http://www.smxrtos.com/ussw/gofast/gofast_arm_cwk.htm
Coldfire CPU haben eine brauchbare FPU drin, hier ein Benchmark http://www.blunkmicro.com/tools-benchmark.htm
A. K. schrieb: > Zur Orientierung die Floating-Point Performance von ARM7/CM3 (in > Software): > http://www.smxrtos.com/ussw/gofast/gofast_arm_iar.htm > http://www.smxrtos.com/ussw/gofast/gofast_arm_cwk.htm Das sind ja etwas merkwuerdige Ergebnisse! Da ich beide MCUs schon untersucht habe, den SAM7 und den LPC2400, wuerde ich bei derselben Frequenz und beide arbeiten aus dem RAM nahezu identische Werte erwarten. d.h. identische Werte fuer GoFast. Es macht Sinn, dass die Werte fuer IAR und Crossworks unterschiedlich sind. Mir scheint als ob das Programm aus dem Flash laeuft, dann kann ich die Vorteile des LPC2400 verstehen, doch aus dem RAM absolut unlogisch. Keiner der beiden Chips hat spezielle Hardware fuer Floating Point. Noch eine Antwort fuer den OP Die LPC32xx Serie hat auch eine FPU und ist dafuer sehr guenstig zu haben. Allerdings bin ich auch der Meinung, dass es besser ist Floating Point in Software zu erledigen oder ganz zu vermeiden solange das irgendwie geht. Gruss, Robert
Und wie wärs mit Look-up-Table? Wenn du eine mäsige Auflösung brauchst, sollte sich das in einen M32 gut platz finden.
Hallo, FPU (32 Bit = single precision) gibts z.B. in den Infineon TC1166 (80 MHz) oder TC1797 (180 MHz) -Prozessoren. Gruß Anja
Michael H. schrieb: > Und wie wärs mit Look-up-Table? Wenn du eine mäsige Auflösung brauchst, > sollte sich das in einen M32 gut platz finden. Wie viel Platz hab ich denn maximal zur Verfügung? 100 Peta Byte werden nicht reichen, da (wie bereits gesagt) die Funktion dynamisch generiert wird und sich zich Parameter ändern können. Also ich habe mindestens 10 unterschiedliche Funktionen, jeder Block hat 5 Parameter (je 65535 Zustände), da ich auch die Auflösung dynamisch halten muss brauche ich also was in der Größenordnung von 10.000x10.000. Abspeichern muss ich dann immer 2 Werte (je 2 Byte). Grob überschlagen macht das irgendwas bei 10^250 Byte die ich benötigen würde. Da ist Schach ja einfacher zu speichern :D
Was willst du denn da machen. Mir sieht das fast schon wie die Einspritz-/Zündfeld-KL eines Motors aus. Auch die Zeitangaben passen dazu. Und dann hast entweder du das falsche Konzept oder die Ingenieure von Bosch jahrzehntelang das Falsche gemacht... Was dir Speicherplatz sparen helfen könnte, ist das Stichwort "Interpolation".
Ähhh nein mit Motoren hat das nichts zu tun. Sebst wenn ich da interpolieren würde, würde ich wohl kaum in ein akzeptablen Speicherbereich kommen.
> Die Reneas Teile sehen auch recht interessant aus, werde dem mal > nachgehen. Der SH7262 hat auch eine FPU und sobald ich endlich mal meine SPI-Flash bekomme werde ich zu der MCU wohl was veroeffentlichen. (Bootloader ueber SD-Karte laeuft schon und kann auch Anbindung an Renesas-Debugger ueber USB booten) Allerdings habe ich selber die FPU noch nicht benutzt. (kaempfe gerade mit einem Audio-Codec) Olaf
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.