Forum: Mikrocontroller und Digitale Elektronik 200KHz Signal per AD-Wandler mit SPI in LabView einlesen


von JoHo (Gast)


Lesenswert?

Hallo,
Im Rahmen einer Studienarbeit sollen vier 200KHz Signale und vier 50Hz 
Signale mit der Hilfe von LabView erfasst werden.

Da die Signale Netzspannungen und transformierte Netzspannungen sind ist 
eine galvanische Trennung nötig.

Eine Lösung wären Datenerfassungssysteme von National-Instruments, 
leider gibt es aber keine fertigen Systeme mit ausreichend hoher 
Potentialdifferenz zwischen den Kanälen und ausreichend hoher 
Abtastrate, also wären Isolationsverstärker (Z.B. HCPL-7820) sinnvoll.

Dieser wandelt allerdings intern die gemessenen Spannungen in Digitale 
um und gibt Sie anschließend wieder Analog aus -- da die Spannungen am 
Ende sowieso digital im PC erfasst werden sollen kam die Idee auf die 
Signale gleich mit AD-Wandlern zu erfassen und die digitalen 
Informationen galvanisch getrennt zu erfassen.

ADCs mit ausreichend großer Abtastrate (>400KSps) haben meist eine 
SPI-Schnittstelle.

_Meine Frage lautet nun:_
*Gibt es USB-SPI wandler die von LabView unterstützt werden und eine 
ausreichend hohe Geschwindigkeit haben um die 200KHz Signale ausreichend 
schnell abzutasten??*

*Gibt es möglicherweise eine bessere Möglichkeit die Spannungen mit 
LabView zu erfassen?*

Ich habe folgende USB-SPI-Wandler gefunden:

Code Mercenaries IO Warrior56 – IOW56DG
[SPI bis zu 12MHz, keine Infos zur LabView tauglichkeit]
http://www.codemercs.com/iow56dg/?L=1

Microchip  MCP2210
[BitRate: 1500Bps bis 12Mbps, kein LabView Beispiel vorhanden]
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en556614


National Instruments USB-8451  [SPI Schnittstelle bis zu 12MHz, ideale 
LabView Anbindung]
http://www.ni.com/pdf/products/us/2005_5948_151_101_d.pdf


FTDI FT2232D [1 SPI Channel, USB 2.0 12MB/s, latency Timer: 2- 255ms, 
LabView Beispiel vorhanden]
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232D.pdf


FTDI FT4232H
2 SPI Channels, USB 2.0 480Mb/s, RS232/RS422/RS485 UART Transfer Data 
Rate up to 12Mbaud, clock-Rate SPI-Bus: 0 – 30Mhz, Latency Timer: 
1-255ms, LabView Beispiel vorhanden
http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf

von Stefan (Gast)


Lesenswert?

Der hakeb bei USB ist, dass diese Schnittstelle nicht Echtzeit-Tauglich 
ist. Wie bei Ethernet gibt es immer wieder mal pausen, wo USB gar nichts 
überträgt. Du musst also mit gemessenen Daten in einem Speicher puffern 
und erst dann an den PC übertragen.
USB Soundkarten funktionieren genau so.

von Johannes H. (johannes_h59)


Angehängte Dateien:

Lesenswert?

Hi,
Hab mich jetzt im Forum registriert.

Danke für die schnelle Antwort!

Ich wusste nicht dass es hier Probleme geben könnte!
Laut dem Datenblatt des FTDI FT4232H verfügt dieser für jeden Ausgang 
über einen 2KByte Puffer.
Könnte das reichen, oder handel ich mir mit der Vorgehensweise
(USB)---(SPI-Wandler-Chip-mit-2KByte-Puffer)---(ADC)
Probleme ein?

Sollte ich also so vorgehen?
(USB)---(Mikrocontroller-mit-Puffer-und-SPI)---(ADC)

Wie könnte ich alternativ einen Pufferspeicher realisieren und die Daten 
schnell genug übertragen?

Ich möchte den kompletten Spannungsverlauf der Spannung abtasten, 
deswegen müsste ein eventueller Mikrocontroller >400KSps übertragen 
können.

Im Anhang das Blockschaltbild des FT4232H:

von Reinhard R. (reinhardr)


Lesenswert?

Hi,

die oben angesprochenen diversen Latenzen betreffen nicht nur die 
Rohdaten, die man puffern kann, sondern auch Befehle die du an die HW 
schickst. Wenn du z.B. das Chip Select Signal immer zwischen diversen 
ADCs hin und her schalten musst, wirst du das über einen PC und USB 
nicht 200000 mal in der Sekunde schaffen, es sei denn dein USB-SPI 
Adapter ist flexibel genug dass man einfache Aufgaben an ihn delegieren 
kann, was ich aber bezweifle.


Johannes H. schrieb:

> Sollte ich also so vorgehen?
> (USB)---(Mikrocontroller-mit-Puffer-und-SPI)---(ADC)
>

Das wäre der naheliegende Ansatz, der sowohl Puffer, als auch 
Timingprobleme behebt. Bei erwarteten Nettodatenraten >= 10MBit wird die 
Sache aber unter Umständen nicht ganz trivial zu lösen sein.


Wenn du in dem Bereich noch keine Erfahrung hast, oder einigermaßen 
schnell zu deinen Daten kommen willst, bist du imho mit den 
Trennverstärkern besser bedient, auch wenn die unnötige Dreifachwandlung 
etwas unerfreulich ist.

Gruß
Reinhard

von Johannes H. (johannes_h59)


Lesenswert?

Vielen Dank für deine Infos!

Da das Datenerfassungssytem von National-Instruments mit ausreichender 
Kanal-Anzahl und Abtastrate bei ca. 3700€ liegt (noch ohne Galvanische 
Trennung, oder Hochspannungstastköpfe) werde ich es wohl erst einmal mit 
einem FTDI FT4232H Mini-Module (ca. 40€ inkl. Versand) und einem 
geeignetem AD-Wandler versuchen.

Da die FT4232H Module nicht all zu teuer sind könnte man für jeden Kanal 
der abgetastet werden soll ein Modul kaufen, dann fällt der Wechsel der 
SPI-Slaves weg, die Module müssten dann also nur Clock generieren, die 
Daten lesen und an USB weitergeben.
Ich werde berichten wenn ich irgendwelche Fortschritte mache - könnte ja 
auch für andere Leute interessant sein relativ günstig ADCs per USB 
verfügbar zu machen.

Galvanische Trennung von SPI-Signalen scheint mit so einem Chip auch 
nicht weiter schwierig/problematisch zu sein:
http://www.nve.com/isoapps-SPI.php

Laut dem Datenblatt zu der im FT4232H verbauten MPSSE-Einheit kann diese 
die SPI-Kommunikation übernehmen und eine mehr oder wenig simultane 
Datenübertragung ermöglichen:
http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm#SPI

Programming guide zu LibMPSSE-SPI:
http://www.ftdichip.com/Support/Documents/AppNotes/AN_178_User%20Guide%20for%20LibMPSSE-SPI.pdf

Programming guide zu D2XX, dem MPSSE Treiber:
http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf

Vielen Dank nochmal für deine Hilfe!
Ich werde hier sobald wie möglich berichten ob ich erfolgreich war.

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.