Ich arbeite derzeit an einem Gitarren-DSP-Projekt, das auf STM32F407VGT6 basiert, aber im Laufe der Zeit komme ich zu dem Schluss, dass ich eine größere Einheit (mit SDRAM) benötigen werde. Die Frage, die in meinem Kopf klingelt, ist, was besser ist, Low-End-DSP oder High-End-MCU. Vergleichen wir zum Beispiel STM32F439 im 144-QFP-Paket mit ADSP-21489 im 176-QFP. Beide Einheiten kosten um die 100 PLN (~22 Euro/Einheit), und das ist ziemlich viel Geld im Vergleich zu klassischen MCUs, die 1/10 des Preises kosten.
Warum ist stm32f439? Es ist eine 180-MHz-Einheit mit DSP- und FPU-Einheiten im Kern, CortexM4F-basiert mit SDRAM-Controller. Derzeit ist es ein Deckengerät auf dem MCU-Markt, soweit ich weiß, gibt es nichts Leistungsstärkeres (M7 ist noch nicht auf dem Markt).
Auf der anderen Seite haben wir Low-End-DSP von Analog Devices mit 400 MHz und alle Arten von DSP-Produkten auf Silizium. (Ich kann nicht viel darüber sagen, da ich es nie benutzt habe).
Die Frage ist was ist besser? Der Vorteil von STM32 sind günstige Tools, bekannter Kern, gute und kostenlose Tools. Ist klassisches DSP viel besser oder ist der Unterschied vernachlässigbar?
Allen einen schönen Tag, Chris
Ich möchte Ihre Frage etwas erweitern:
und versuche darauf zu antworten.
Moderne MCUs sind sehr leistungsfähig. Die unten dargestellte Tabelle listet die Ergebnisse auf, die durch einen synthetischen Test erhalten wurden, der aus zwei Sequenzen von FFT und dann einem Quadrat nach Element und dann einem Punktprodukt auf einem unterschiedlichen 12800-Punkt-Gleitkomma-Array innerhalb jeder Iteration besteht, ausgedrückt in Iteration pro Sekunde durchgeführt [it/ s] und Iterationsdurchschnittszeit [us = Mikrosekunden]:
Device-under-test it/s time/it, us Remark
TMS320C6422B 2.50 400 000
MityDSP-L138F 3.97 252 188 L3 cache off, about x7 with L3 cache on
InMys SOM-AM180X-L8 5.90 169 491 L3 cache off
VAR-SOM-OM3X 37.00 27 027
RaspberryPI 35.80 27 933
InMys SOM-AM180X-L8 52.20 19 157 L3 cache on
Renesas RZ/A1H 54.61 18 311 linux, data+code in internal sram
Colibri VF61 56.80 17 606
Intel Core i3 949.42 1 053
Intel Core i5 1 583.84 631
Wie Sie sehen können, schlägt die moderne 500+ MHz Cortex-A5 w/FPU-basierte MCU, die in Colibri VF61 installiert ist, einen dedizierten Gleitkomma-DSP wie den C642x-basierten 250-MHz-TMS320C. Und tut es erheblich. Aber natürlich hat Core i sie alle geschlagen.
Da sie von modernen MCUs in der Leistung geschlagen werden, schlagen moderne DSPs zurück und schlagen MCUs in ... Architektur . Allgemein gesagt ist eine DSP-IC-Architektur für eine kontinuierliche + Online- + streng zeitgesteuerte + isochrone Datenverarbeitung vorgesehen, dh sie hat konstruktionsbedingt spezielle Einheiten zum regelmäßigen Einlesen und dann Verarbeiten und dann Ausschreiben von kontinuierlich laufenden digitalen Daten in a Form von Proben. Außerdem kann es mit ADCs als Original-Sample-Quelle und DACs als verarbeitetes Sample-Ziel integriert werden, einfacher und praktisch ohne Kleber, wiederum dank dedizierter "On-Chip"-Architektureinheiten, die dedizierte Schnittstellen bereitstellen. MCUs, selbst High-End-Geräte, können sich damit normalerweise nicht rühmen.
Sowohl MCU als auch DSP sind digitale Dinge. Wenn Sie mit digitalem Material arbeiten, müssen Sie dessen Grenzen verstehen: Quantisierung und Raster. Die Verwendung ganzer Zahlen in Filtern ist einfach, führt jedoch zu einem erheblichen Quantisierungsrauschen. Die Verwendung von Gleitkommazahlen in Filtern ist flexibel, führt jedoch zu impliziten Ausnahmen wie einer überraschenden NaN bei kontinuierlicher Akkumulation, die den Filter abschaltet. Analog ist dafür eine Alternative.
Analog sieht vielleicht aus wie etwas aus der Vergangenheit, aber es sieht auch heute noch nie wie etwas Unnützes aus. Natürliche Effekte, die in einer Lampe oder einem Halbleiter stattfinden, können in MCU/DSP nicht ideal modelliert werden, vielleicht nur in einem Supercomputer-Cluster, aber dann nicht in Echtzeit :-)
Entscheiden Sie sich zwischen digitalem oder analogem Design und fragen Sie sich, was Sie wirklich und genau wollen: kontrollieren oder genießen? Wenn du kontrollieren willst, nimm digital, wenn du genießen willst, sei mutiger mit analog.
Um die „beste“ Implementierung einer bestimmten Funktion zu finden, lautet die erste Frage: Kann dies mit mehr als einer Methode erfolgen? Wenn die Antwort ja ist, dann ist die zweite Frage, welche Methode billiger, zuverlässiger, einfacher zu ändern/aufzurüsten usw. ist und die "ursprüngliche Frage" wird automatisch beantwortet!
Matt Jung
Axel
Matt Jung
Axel
Matt Jung
Axel
TurboJ
M0
-Kern. Könnte einen Blick wert sein.Scott Seidman
Axel