Hallo, ich möchte gern in die DSP-Programmierung einsteigen, jahrelange Benutzung von Matlab/Octave sowie die thematische Beschäftigung mit optischen Drehgebern (sin/cos-Signale) bewegen mich dazu. Nun gibt es von Microchip diese dsPICs, doch wie schlagen sie sich im direkten Vergleich zu DSPs von TI und AD? Sind sie gleichwertig oder eine Lösung angesiedelt zwischen Microcontroller und "echten" DSPs? Die Anforderungen an die Plattform für das Thema mit dem ich mich beschäftigen möchte dürften relativ eindeutig sein, es geht um brauchbare ADCs - gute Linearität, hohe Auflösung (>=12bit), hohe Abtastrate (bis zu 500kSps), synchrone Abtastung von (>4) Kanälen gleichzeitig (sin/cos, -sin/-cos, Referenz), vorzugsweise mit differentiellen Eingängen - und ausreichend Performance des DSPs selbst um Signalkorrekturen (Amplitudenkorrektur, Offsetkorrektur, Phasenkorrektur) vornehmen zu können, zu interpolieren und die Position an verschiedenen Schnittstellen zur Verfügung zu stellen und das alles möglichst zu einem akzeptablen Preis (<10,-€/Stück). Mir sind natürlich Interpolations-ASICs bekannt, die Drehgeber mit denen ich mich allerdings beschäftigen möchte sind nicht von der Stange sondern eine Eigenentwicklung und bringen Herausforderungen mit sich, die kommerzielle Systeme nicht aufweisen. Mein bisheriger Ansatz war Messdaten mit einen DSO aufzunehmen und meine Auswertealgorithmen offline auf die Daten loszulassen, dass soll künftig online und echtzeitfähig werden, sprich mittels DSP. Ich würde mich freuen, wenn mir jemand Tipps und Erfahrungsberichte geben könnte, mit welcher Plattform man da gut beraten ist und da eine Plattform nicht nur aus dem DSP selbst besteht sondern auch aus der zugehörigen Entwicklungsumgebung möglichst Tipps unter Berücksichtigung des Gesamtpaketes. Herzlichen Dank.
Die dsPICs sind eher Mikrocontroller mit DSP-Erweiterungen. Die "richtigen" DSPs von TI und AD sind nochmal eine ganz andere Klasse, sowohl von der Rechenleistung als auch vom Entwicklungsaufwand insbesondere bei der Hardware. Wobei ... Zu meiner Studienzeit war der dsp56002 insbesondere für Audioapplikationen sehr angesagt. Der lief mit bis zu 40 MHz. Die dsPIC33F sind heutzutage genauso schnell, die dsPIC33EP laufen mit 70 MHz (Opcode Cycles, nicht Clock Cycles/Quarztakt(Faktor 2 höher)). Also Spaß haben kannst Du damit schon. Der Compiler erzeugt standardmäßig nur Code für PIC24, benutzt also die DSP-Erweiterung nicht. Die sprichst Du mit speziellen Intrinsics an, die dann die passenden Opcodes erzeugen). Steht alles im Compilermanual oder bei Microchip. dsPICs sind gut für Motorsteuerungen (BLDC), Regelungssysteme, einfache Audioanwendungen etc etc. Bei Deiner gewünschten Abtastrate habe ich jedoch ernste Zweifel. Deine Anforderungen an die ADCs kannst Du sehr wahrscheinlich nur mit externen ADCs erfüllen - egal welchen DSP Du nimmst. Fast alle DSPs haben eben nicht n ADCs an Board, sondern eben nur einen mit einem Multiplexer davor. (Ausnahme: einige TI MSP430F6xxx für Energy Metering, die haben tatsächlich bis zu 7 24-BIT ADCs, die synchron abtasten, aber nur mit einigen kSmp, mehr braucht man für die 50/60 Hz Netze nicht). fchk
Hallo, wär in etwa so also würde man einen Cortex M4F als DSP bezeichnen. Womit ich damit sehr gute Ergebnisse erzielt habe. Und der ARM mit seinen 64Bit Befehlen oder FPU doch schon leistungsstärker ist. Siehe Cortex M4F von ST oder Analog Device. Es gibt natürlich noch mehr Hersteller aber das sind momentan sehr schnelle Derivaten. Gruß Sascha
Danke auch für deine Einschätzung. Ich tu mich aktuell schwer damit abzuschätzen, ob Algorithmen die ich offline in Matlab/Octave auf meine Messwerte loslasse auch in vernünftiger Geschwindigkeit auf solchen Plattform laufen werden. Sowas wie die DSPLib von STM ist mir schon durch das Ohr gewandert, aber kann das einen echten DSP ersetzen? Ich weiß es offen gestanden nicht. Bin ich mit einem "echten" DSP besser beraten? Daher auch meine Frage an euch, die ihr euch damit vielleicht besser auskennt. Die Anregung einen externen ADC für simultanious sampling zu verwenden fiel ja schon. Herzlichen Dank.
EncoDat schrieb: > Danke auch für deine Einschätzung. Ich tu mich aktuell schwer damit > abzuschätzen, ob Algorithmen die ich offline in Matlab/Octave auf meine > Messwerte loslasse auch in vernünftiger Geschwindigkeit auf solchen > Plattform laufen werden. erster Schritt: C-Implementation mit doubles zweiter Schritt: floating point -> fixpoint Wenn Du so weit bist, dann zählst Du einfach mal die Additionen und Multiplikationen in einem Durchlauf und hast eine erste Abschätzung über die notwendige Rechenleistung. In diesem Stadium hast Du natürlich in Deinem Code keine Division, keine Wurzel und keine anderen mathematischen Funktionen mehr, denn der DSP wird so etwas auch nicht haben, oder wenn, dann wird es langsam sein. letzter Schritt: Portierung auf die Zielplattform fchk PS: die meisten "richtigen" DSPs haben ohnehin keine eingebauten ADCs. Es ist fertigungstechnisch einfach nicht möglich, schnelle Digitaltechnik und exakte Analogtechnik auf einem Chip unterzubringen, ohne Kompromisse einzugehen. Gute ADCs sind daher IMMER separate Chips, und schnelle DSPs haben daher keine analogen Schaltungsteile und auch zB kein EEPROM (auch da sind wieder andere Halbleiterprozesse erforderlich).
:
Bearbeitet durch User
Hallo, oh durchaus der Cortex M4F kann mit der FPU Wurzelziehen. Quadrieren ist ja einfach. Aber wenn du Sinus und Cosinus rechnen willst wirds etwas schwerer. Man kann aber durchaus mit Tabelleninterpolation arbeiten. Ist die Abtastrate dann auch die mathematische durchlaufzeit ? PS. in Assembler kann man aus dem Cortex M4F wahre Wunder herausholen, wenn man das CCM (Memory) richtig nutzt. Gruß Sascha
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.