Forum: Mikrocontroller und Digitale Elektronik dsPIC33 vs Cortex M4F für Motor Control


von Tobias (Gast)


Lesenswert?

Hallo zusammen,

wie würdet ihr den Microchip dsPIC33 mit einem 72MHz Cortex M4F 
vergleichen, was deren Performance angeht? Die MIPS-Werte sind 70 zu ca. 
90 (72MHz * 1,25), wobei der dsPIC ja 16bit ist im Gegensatz zu 32bit 
Cortex. Wird dieser Unterschied bei den MIPS mit eingerechnet? Wie 
würdet ihr sonst plakativ darstellen, dass ein Cortex M4F besser ist?

Unsere Motor-Control Applikation lastet den dsPIC so ziemlich aus. Platz 
für  Erweiterungen der Anwendungsapplikation (Funk-Stack, ...) sehe ich 
da nicht.

Grüße,
Tobias

von Frank K. (fchk)


Lesenswert?

Tobias schrieb:

> wie würdet ihr den Microchip dsPIC33 mit einem 72MHz Cortex M4F
> vergleichen, was deren Performance angeht? Die MIPS-Werte sind 70 zu ca.
> 90 (72MHz * 1,25), wobei der dsPIC ja 16bit ist im Gegensatz zu 32bit
> Cortex. Wird dieser Unterschied bei den MIPS mit eingerechnet?

Du vergisst die beiden 56 Bit DSP Akkumulatoren des dsPIC. Da ist die 
Sache schon wieder nicht so klar.

Reine Benchmarkwerte bilden die Wirklichkeit nur beschränkt ab. Ich 
fürchte, der Abstand zwischen dsPIC33EP und Cortex M4(F) ist kleiner, 
als Du es Dir wünscht. Da hängt auch viel von der Qualität der 
Peripherieeinheiten ab, die dem Prozessor entweder Arbeit aufbürden oder 
abnehmen können.

Das wird man richtig nur über einen Prototyp herausfinden können.

fchk

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Moin,

Du vergleichst einen 16Bit Proze mit einem 32Bit Proze mit Floatingpoint 
Unit. Von ST gibt es Daten das ein M3 eine Maschine mit Sensorloser FOC 
mit 20µs Zeitbedarf bei 10kHz Regeltakt im Griff hat. Da der M4F durch 
die FPU fast genauso viele Takte für Operationen mit Float braucht du 
aber weniger Umrechnen musst. Kommst du bei deinem 72MHz STM32F3 auch 
bei 20µs raus, noch nicht mit einberechnet das du den Regler in den 
CCMRAM packen kannst und er den dann ohne Wait States mit besagten 
90MiPS durch ballert. dann tippe ich auf 16µs für den ST Code. Wenn man 
sich dann die AN1078 für den DSPic ansieht, merkt man das MC den Code 
mit Prozessor spezifischem ASM massiv optimiert hat damit der das 
überhaupt schafft.

Reicht dir das?

Gruß

Tec

von old man (Gast)


Lesenswert?

Nicht zu vergessen die Unterschiede bei der Entwicklung. Während MPLABX 
und ICD3 noch am Setzen eines Breakpoints rumwursteln hast du mit 'ner 
Cortex Umgebung (jedenfalls mit vielen) schon den 3 Durchlauf Übersetzen 
und Debuggen durch. Ich kriege jedes mal die Krise wenn ich wieder 
zurück muss. Die dsPics haben manches schöne Feature, insbesondere die 
mit der 1.04ns PWM. Aber alles Gute hat man ja nie zusammen.

von Tobias (Gast)


Lesenswert?

Die Akkumulatoren kann man nur per Assembler Code nutzen. Mit Simulink 
generiertem Code kommt man da nicht direkt dran.

Die Application Notes zum Thema FOC haben meist nur rudimentäre 
Funktionen. Sicherheitsfunktionen oder sonstige Kniffe sind nicht 
enthalten. Diese Dinge treiben den dsPIC dann an das Limit.

Bei welchen FOC Operationen seht ihr denn die FPU als riesen Vorteil? 
Das Modell werden wir wohl nicht von Fixpunkt auf Fließkomma umstellen, 
also welche Fixpunkt Operationen können durch eine FPU beschleunigt 
werden? Ich denke z.B. an Quadratwurzel. Die kann die FPU in 14 Zyklen 
im Gegensatz zu einem langen Cordic Algorithmus.

Die Entwicklungsumgebung sehe ich ebenfalls bei Cortex auch im Vorteil.

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.