Hallo liebe Forumsgemeinde Folgende Frage: Ich brauche eine Abschätzung, ob es Sinn macht eine simple DSP Aufgabe auf dem obengenannten Cortex-M0 zu implementieren. Controller: 48MHz, 32kB Flash, 16kB RAM Samplerate: max. 2 kHz, 10 bit ADC Aufgabe: Alles Fixed Point, Impulstrigger (Erkennung ob ein Impulskommt über Schwellwert), FIR Tiefpassfilter des Impulses, Berechnung der Leistung des Impulses (Integral der Fläche unter der Kurve). Zeit zwischen Impulsen: 1s Abschluss der Berechnung innerhalb 0.25s nach dem Impuls Bevor ich dazu einen dsPIC bemühe, würde mich interessieren, ob es plausibel ist, dazu diesen kleinen Controller zu verwenden, der sonst nichts anderes macht. Mein Gefühl sagt mir, dass die tiefe Samplerate und lange Reaktionszeit die DSP-Anforderungen so tief setzen, dass dies ein solch kleiner SMT32 stemmen könnte.. Klar, die effektive Antwort, werden wir erst bei einem Test erfahren, jedoch wäre eine Einschätzung ob dies überhaupt realistisch ist noch spannend, da wir so einige Zeit sparen können... Vielen Dank für jeden Input.
Naja, so ein dsPic ist jetzt auch wirklich kein Wunderding... Wenn du nicht gerade den 40bit akku brauchen kannst, sehe ich wirklich keine Einschränkung beim STM32... gut, etwas langsamer ist der takt, aber sonst... Der M0 in deinem STM32 kann single-cycle 32bitx32bit multiplikationen... das würde ich für dich als vorteil sehen. Wenn du nicht ein riesen FIR filter hast, sollte sich das locker ausgehen. 73
es gibt von STM eine AppNote mit Zahlen dazu
adDesigner schrieb: > Samplerate: max. 2 kHz, 10 bit ADC Keine große Sache, der ADC kann ja 1MSPS. adDesigner schrieb: > Abschluss der Berechnung innerhalb 0.25s nach dem Impuls Du hast nicht geschrieben wie lange so ein "Impuls" ist, also kann man auch nur schwer was sagen wie viel Zeit nach dem Impuls überhaupt noch für die Berechnungen zur Verfügung steht. adDesigner schrieb: > Klar, die effektive Antwort, werden wir erst bei einem Test erfahren, > jedoch wäre eine Einschätzung ob dies überhaupt realistisch ist noch > spannend, da wir so einige Zeit sparen können... Wenn du den ADC fest abtasten und der DMA die Daten einfach in einen Ringpuffer schreiben lässt, dann hast du während des Aufzeichnen 0% Prozessorlast. Über den eingebauten Komparator/DAC kannst Du die Triggerschwelle/Zeitpunkt bestimmen ab wann der Impuls als erkannt gilt. Dann noch eine Feste (oder mit dem 2. Komparator bzw. angepasster Schwelle des 1. Komparator) Nachlaufzeit. Dann kommt ein Interrupt, DMA umhängen auf einen 2. Puffer und du hast alle Zeit der Welt um die Daten auszurechnen währen die Hardware schon wieder bereit ist den nächsten Impuls aufzuzeichnen. Die CPU wird also nicht arg viel mehr zu tun haben als die Werte auszurechnen. Mit der Annahme dass so ein Impuls deutlich kürzer ist als 250ms ist, denn da muss die Berechnung ja schon fertig sein, und mit 2kHz Abtastrate sind es ja deutlich unter 500 Werten. Hört sich jetzt nicht so schwierig an.
Gut, das tönt doch schonmal vielversprechend! Zumindest genug um einen Testaufbau zu machen! Vielen Dank, Jungs! Noch zu den Fragen: Ja, die Imuplslänge ist natürlich wichtig: Die liegt bei ca. 100ms inkl. Ausschwingen. Somit, sollte das Klappen vom Timing her. Zu den Anzahl Taps und FIR Ordnung: Kann ich noch nicht genau sagen, aber wird nicht so krass werden. Es geht hier nur um etwas Tiefpass-Wirkung.
> Der M0 in deinem STM32 kann single-cycle 32bitx32bit multiplikationen...
Das Ergebnis muss aber in 32 bit passen.
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.