Forum: Mikrocontroller und Digitale Elektronik STM32Fxxxx Machbarkeit Frage


von Manuel (Gast)


Lesenswert?

Hallo Zusammen,

Ich habe folgende:

30 Digitale Output Signale, die ich gerne abtasten möchte und dann 
darzstellen bzw. loggen.

Diese 30 digitale Signale kommen von 10 Systeme, die parallel 
eingeschaltet sind.

Idee ist die 10 Systeme parallel zu testen.
Jede System hat 3 digitale Signale, die wir beobachten möchten.

Vorherige Stand:
Jede System war an einen Oscilloscope angehängt und dadurch können immer 
die Signale visualisieret werden.

Was wir vorhaben:
Das gleiche wollen wir haben, aber halt nicht nur einen System sondern 
10 Systeme gleichzeitig zu beobachten und die Signale nachher mit
Matlab, Labview oder Visual Studio mit der Plugin Qt visualisieren.

Also Idee ist einen oder mehreren STM32Fx einzusetzen und die nötige 
Signale abzutasten und darzustellen bzw. einzullogen.
Mir geht erst mal darum: Ist das machbar?

Ursprüngliche Idee war eine NI-USB-XXXX einzusetzen, aber da es die 
Synchronistaion sehr wichtig bzw. die Abtastrate noch wichtig ist, 
können wir das nicht mit NI- HW realisieren was noch dazu kommt sind die 
Kosten (NI- HW ist sehr teuer für diese Anforderungen).

Auf einen konstruktive Feadback freue ich mich
Danke in voraus

von Numal Langsam (Gast)


Lesenswert?

Manuel schrieb:
> 30 Digitale Output Signale, die ich gerne abtasten möchte und dann
> darzstellen bzw. loggen.

Unklare Aufgaben bzw Problemstellung.

- maximale Frequenz fehlt bzw Abtastrate.
- heisst "digital" jetzt "nur Einsen und Nullen" oder
ist das ein komplexes Signal, "pseudo-analog"

Manuel schrieb:
> und die nötige
> Signale abzutasten und darzustellen bzw. einzullogen.

von Manuel (Gast)


Lesenswert?

Numal Langsam schrieb:
> Manuel schrieb:
>> 30 Digitale Output Signale, die ich gerne abtasten möchte und dann
>> darzstellen bzw. loggen.
>
> Unklare Aufgaben bzw Problemstellung.
>
> - maximale Frequenz fehlt bzw Abtastrate.
Die minimale Abtasrate: 70 n/s

> - heisst "digital" jetzt "nur Einsen und Nullen" oder
> ist das ein komplexes Signal, "pseudo-analog"
Es handelt sich um eine digitale Signal 1 oder 0

>
> Manuel schrieb:
>> und die nötige
>> Signale abzutasten und darzustellen bzw. einzullogen.

Die 30 digitale Signale müssen abgetastet, dargestellt und eingeloggt 
werden.
Das wäre das Ziel.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Per DMA kann man GPIO Ports lesen und in den RAM schreiben, so lange bis 
er voll ist. Rechenaufwand fast 0.

Aber in der Geschwindigkeit wird man die Daten nicht Endlos zum PC 
bekommen.

von Manuel (Gast)


Lesenswert?

Markus M. schrieb:

> Aber in der Geschwindigkeit wird man die Daten nicht Endlos zum PC
> bekommen.

Ich kann doch dafür sorgen, dass die Daten die schon zu Pc übertragen 
löschen.

Was sagt ihr dazu, wenn ich eine STM32F303VCT6 benutzen werde. Das wird 
schon ausreichen?

von Sebastian K. (sek)


Lesenswert?

Hast du das selbst mal nachgerechnet mit den 70ns Abtastperiode? Ich 
vermute mal nicht:

70ns sind ca. 14MHz Abtastrate. Das ganze mal mindestens 4 Byte für 30 
Digitalsignale kommst du auf eine Datenrate von knapp 57MByte/s, die du 
verarbeiten und wegschaufeln musst. Overhead noch nicht eingerichtet.
Ein STM32F3 uC mit max. 72MHz wird da wohl eher nicht ausreichen. Das 
ist schon eher was für ein FPGA.

von m.n. (Gast)


Lesenswert?

Sebastian K. schrieb:
> Hast du das selbst mal nachgerechnet mit den 70ns Abtastperiode?

Ich wunder mich über die freie Interpretation. Mir sagt "70 n/s" 
garnichts.

Wie soll man jemandem helfen, der jegliche Sorgfalt vermissen läßt und 
nicht einmal diesen wichtigen Punkt auf die Reihe bekommt?

von Rene K. (xdraconix)


Lesenswert?

m.n. schrieb:
> "70 n/s"

70 Nudeln je Sekunde... die wollen erstmal gekocht werden. :-D

Selsbt ein FPGA wird die Datenrate zum PC nicht schaffen, da dort 
immernoch der USB oder was auch immer, der limitierende Faktor ist 
(sollten es 70ns sein).

Auch wenn die Daten mit DMA eingelesen und als Paket geschickt werden. 
Irgendwann, und der kommt schnell, stößt der DMA an die 
Übertragungsgrenze des USB an - und dann kommt es zum Overrun.

Das ist ein sehr sportliches Vorhaben. Auf µC / FPGA Seite und auf der 
PC Seite.

von m.n. (Gast)


Lesenswert?

Rene K. schrieb:
>> "70 n/s"
>
> 70 Nudeln je Sekunde... die wollen erstmal gekocht werden. :-D

Das kann nicht stimmen, meine brauchen 18 Minuten.

Numal Langsam schrieb:
> Unklare Aufgaben bzw Problemstellung.

So ist es!

von Philipp_k59 (Gast)


Lesenswert?

Fragt sich noch welche Zeit gebuffert werden muss, und wieviel Reale 
Daten dabei gecapturet werden.. Sonst könnte man noch 1 Steuer Byte für 
keine veränderung erkannt anhängen oder bei jeder Sekunde ein paar Daten 
das ganze Darauf zuschneiden.

Quasi Steuerbyte = 10100000 bedeutet das 2 Byte nutzdaten von Porta und 
portc übertragen werden da auf Portb und Porto keine Veränderungen beim 
Sample vorhanden waren.

von Adib (Gast)


Lesenswert?

Ich würde versuchen, handelsübliche digital logik analysatoren zu 
verwenden.

Die komprimieren schon bei der kommunikation.

Und wenn du amm Ende selbst programmierren willst, kommst du immer 
teurer als gekauft.

Schau mal den von saleae an ....

Grüße, Adib.

von Ben W. (ben_w)


Lesenswert?

ich bin da mal optimistischer ...
und inerpretiere 70 n/s als 70 Messungen pro sekunde.

was ca. 280 Bytes/s sind, das ist ja offentsichtlich kein problem ...

bei 70ns => 14,3MHz abtastrate bräuchte man schon USB 3.1

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.