Forum: Mikrocontroller und Digitale Elektronik Suche µC mit FPU


von Fabian S. (jacky2k)


Lesenswert?

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?

von Hc Z. (mizch)


Lesenswert?


von 8087 (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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?
....  ;-)

von Hans (Gast)


Lesenswert?

- 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...

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

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.

von Fabian S. (jacky2k)


Lesenswert?

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.

von Ferkel (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@  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.

von technikadonis (Gast)


Lesenswert?

Noch ein MC mit FPU wäre der TMS320F28335 von TI.

von Fabian S. (jacky2k)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

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.

von Fabian S. (jacky2k)


Angehängte Dateien:

Lesenswert?

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.

von schroeder (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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

von Fabian S. (jacky2k)


Lesenswert?

Hmmm das stimmt wohl...vielleicht reicht auch einfach ein AT32 der L 
Serie.

von Chris _. (_chris_)


Lesenswert?

Coldfire CPU haben eine brauchbare FPU drin,
hier ein Benchmark http://www.blunkmicro.com/tools-benchmark.htm

von Vlad T. (vlad_tepesch)


Lesenswert?

AD tigerSHARC

von Robert T. (robertteufel)


Lesenswert?

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

von Michael H. (overthere)


Lesenswert?

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.

von Anja (Gast)


Lesenswert?

Hallo,

FPU (32 Bit = single precision) gibts z.B. in den Infineon TC1166 (80 
MHz) oder TC1797 (180 MHz) -Prozessoren.

Gruß Anja

von Fabian S. (jacky2k)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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".

von Fabian S. (jacky2k)


Lesenswert?

Ä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.

von Olaf (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.