Forum: Mikrocontroller und Digitale Elektronik FFT mit Teensy 3.6


von Gunnar P. (gp71)


Lesenswert?

Hallo Leute,
ich habe vor, mit dem Teensy 3.6 einen Spektumanalysator für mehrere 
Kanäle zu bauen.
Ich möchte die Signale (0...3,3V) über die Analogeingänge einlesen. Es 
soll für jeden Kanal (10 Kanäle)  die Hauptfrequenz (max. 1kHz), die 
Maximalamplitude und der Amplitudenmittelwert ausgegeben werden.
Als Datenübergabepunkt habe ich mir gedacht, die CAN Bus-Schnittstelle 
zum Koppeln mit einer Siemens-SPS zu benutzen.
Hat jemand schon Erfahrung mit dem Teensy gesammelt? Vom Abtasttheorem 
sollte es ja bei 180MHz Taktung und 10 Kanälen passen.?
Hat jemand schon FFT mit einem Arduino oder Teensy gemacht oder 
Erfahrung mit dem CAN Bus des Teensy gesammelt?
Kann man die Analogeingänge in Echtzeit einlesen, oder werden die 
irgendwie multiplext?
Für Anregungen oder Tips wäre ich sehr dankbar.

von Sven B. (scummos)


Lesenswert?

Die 180 MHz sind der CPU-Takt. Das ist nicht der ADC-Takt und sicherlich 
nicht der Takt mit dem der ADC Werte einlesen kann. Bei 1 kHz sehe ich 
da trotzdem kein großes Problem. Du musst halt mal schauen, ob du aus 
dem ADC in zuverlässig gleichmäßigen Abständen Samples rausbekommst. 
Wenn das geht ist der Rest handhabbar, aber gibt sicherlich einiges zu 
tun, musst du halt einfach machen.

von Walter S. (avatar)


Lesenswert?

Gunnar P. schrieb:
> Kann man die Analogeingänge in Echtzeit einlesen, oder werden die
> irgendwie multiplext?

25 Analog Inputs to 2 ADCs with 13 bits resolution

von gjh (Gast)


Lesenswert?

datenblatt des µC seite 947

https://www.nxp.com/docs/en/reference-manual/K66P144M180SF5RMV2.pdf


kurzbeschreibung :

25 Analog Inputs to 2 ADCs with 13 bits resolution





also nur 2 ADCs .. rest alles multiplex

von Gunnar P. (gp71)


Lesenswert?

Ja, das mit dem CPU-Takt war auch nur symbolisch gemeint. Ich glaube 
aber, das Problem wird sein, dass das Board zwei ADCs an Board hat, die 
auf die 25 AI multiplext werden. Die Schwierigkeit wird weiterhin sein, 
geeignete Libs und vor allem eine Beschreibung zu finden, um den Sketch 
richtig aufzubauen. Man wird sicherlich mit mehrdimensionalen Arrays 
arbeiten müssen und dann den Dump jedes Kanals zyklisch über einen 
Algorithmus laufen lassen.

von Sven B. (scummos)


Lesenswert?

Echtzeit und Multiplexing ist allerings kein Widerspruch ... ist dann 
halt nur langsamer.

Und ja, man wird tatsächlich ein bisschen Software schreiben müssen, das 
glaube ich auch ;)
Ist aber alles kein Hexenwerk, wenn du es schaffst ordentlich getaktet 
Daten einzulesen. Dazu müsste man in's CPU-Handbuch schauen.

: Bearbeitet durch User
von Gunnar P. (gp71)


Lesenswert?

Eigentlich reicht es mir, wenn ich für jeden der 10 Kanäle Pro Sekunde 
die drei benötigten Werte übergeben kann. Also ist nach 10 Sekunden 
immer wieder der gleiche Kanal dran. In der SPS bzw. im Leitsystem 
werden dann die Werte als Kurve abgelegt.

von Gunnar P. (gp71)


Lesenswert?

Der Teensy hat eigentlich ein Vielfaches eines normalen Arduino auf AVR 
- Basis drauf. Aber es fehlt an Dokumentation, weil die Boards noch sehr 
neu sind. Auch die Libraries sind erst in Anfängen vorhanden.

von Sven B. (scummos)


Lesenswert?

Wenn du eine FFT machen oder Frequenz zählen willst, musst du in 
regelmäßigen Abständen sampeln. Du musst mal schauen, ob das ohne 
Weiteres möglich ist in der Form in der du das willst.

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.