LabVIEWForum.de - PWM-Signal über Dig.Output

LabVIEWForum.de

Normale Version: PWM-Signal über Dig.Output
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
' schrieb:Aber in dem "Operating instructions and specifications" pdf-File wird unter "Timing" ein "propagation delay" von max. 330ns und ein "channel-to-channel skew" von max. 265ns versprochen! wie kann dann ein fehler von 7µs entstehen?

Propagation delay: das ist die Zeit die vergeht zwischen "Wunsch" und "Realität", sprich ich setze den DIO in der Software und der Ausgang hat den gewünschten Zustand angenommen
channel-to-channel skes: Zeitversatz zwischen den einzelnen Kanälen beim gleichzeitigen setzen von mehreren Leitungen

beides hat rein gar nix mit der max. Sample-Rate zu tun ...

und mit den 7 µs hab ich mich auch verguckt: bei NI ist dieses Modul als 10 ms Modul (=100 Hz) gelistet ... 180 kHz wirst du damit niemals erreichen. Das Schnellste mir bekannte DIO Modul ist das 9401 mit einer max. Sample-Rate von 10 MHz. Wenn dein Code "klein" genug ist, dann kann der FPGA das auch tatsächlich ausgeben. Ich hatte es in einer etwas größeren Applikation immerhin noch geschafft eine Abtastrate von 6 MHz zu realisieren ...

' schrieb:Wegen dem dauernden schreiben der controls an das fpga war meine überlegung, dass ich eine zeitgesteuerte while-schleife von 10ms im host laufen lasse, sodass ich sicher gehen kann das der wert der controls nur alle 10ms abgefragt wird und dann übergeben wird, weil ich verhindern will das in undefinierten zeitabständen die controls an das fpga übergeben werden. so kann ich sicher sein, dass auch wenn sich innerhalb der 10ms der zustand der controls ändert - zB. nach 5ms - der wert erst nach ablaufen der 10ms übergeben wird.

HÄ?Bahn

Versuchs einfach mit "Events": Wenn sich dein Soll-Wert ändert, schreib den Wert zum FPGA, ansonsten lass ihn in RuheSmile
' schrieb:...und mit den 7 µs hab ich mich auch verguckt: bei NI ist dieses Modul als 10 ms Modul (=100 Hz) gelistet ... 180 kHz wirst du damit niemals erreichen. Das Schnellste mir bekannte DIO Modul ist das 9401 mit einer max. Sample-Rate von 10 MHz. Wenn dein Code "klein" genug ist, dann kann der FPGA das auch tatsächlich ausgeben. Ich hatte es in einer etwas größeren Applikation immerhin noch geschafft eine Abtastrate von 6 MHz zu realisieren ...

gut, hab auf NI.com nachgesehen, aber im vergleich zum 9401 steht beim 9403 nicht explizit wie schnell es genau ist! im link steht sogar ein ? vor der möglichen zeit: "32-Ch, 10 ?s, 5V/TTL, bidirectional" ... in den specifications steht ja leider auch nichts genauesSad...

' schrieb:Versuchs einfach mit "Events": Wenn sich dein Soll-Wert ändert, schreib den Wert zum FPGA, ansonsten lass ihn in Ruhe

hab noch keinerlei erfahrung mit "events" Huh! hättest du vl ein bsp. programm das sich im bezug auf events selbst erklärt?
' schrieb:gut, hab auf NI.com nachgesehen, aber im vergleich zum 9401 steht beim 9403 nicht explizit wie schnell es genau ist! im link steht sogar ein ? vor der möglichen zeit: "32-Ch, 10 ?s, 5V/TTL, bidirectional" ... in den specifications steht ja leider auch nichts genauesSad...

im Zweifel musst du NI anrufen. Nach deiner Angabe könnten das nun ms oder µs sein, aber beides ist für die 180 kHz zu langsam ...


' schrieb:hab noch keinerlei erfahrung mit "events" Huh! hättest du vl ein bsp. programm das sich im bezug auf events selbst erklärt?

uiui, selbsterklärend, ne, damit kann ich nicht dienen ...
aber wie ich schon geschrieben habe: wenn sich dein Wert ändern soll, aktualisiere das FPGA -Control, ansonsten lass das FPGA Control in Ruhe, es macht ja keinen Sinn dauernd den gleichen Wert auf das Control zu schreiben ...
gut! danke für deine hilfeSmile!

mfG
Hallo

@i2dx

Zum einen vielen Dank für dein Beispiel, zum anderen gleich eine FrageSmile

Ich habe Dein vi so genommen wie es aktuell ist einfach um ein pwm Signal zu erzeugen,
gleichzeitig hänge ich mit dem Oszilloskop am Dio meiner 9401.

Ich habe allerdings das Problem das Freuquenz/Tastverhältnis in der Form nicht funktionieren.

Stelle ich 250hz ein, sehe ich am Oszilloskop 400hz, und das Tastverhältnis ist bei 1khz laut Oszi (eingestellt im Control 100hz) ist korrekt,
fängt sich aber bei jeder anderen Frequenz zu verschieben an (aus 50% werden laut Oszi dann z.b. 30% usw..)

Hattest Du dieses Problem auch?

Das vi läuft bei mir direkt am FPGA und ich brauche eigentlich nur 0-500Hz, also mit der 9401 leicht zu bewältigen.

Danke für Deine Hilfe

Lg Marty
die Eingänge Tastverhältnis und Frequenz werden nicht in Hertz angegeben sondern sind ganz stumpf Größen-Angaben, die sich auf den Takt der Schleife beziehen. Das ist ein VI zum selber rechnenWink

Wenn du dir das letzte VI runtergeladen hast dann berechnet sich die "Frequenz" in 10 µs Schritten, das Tastverhältnis ebenso:

Beispiel:
Frequenz = 200 => eine Periode dauert 200 x 10 µs = 2 ms ==> f = 500 Hz
Tastverhältnis= 50 => 50 x 10 µs = 0,5 ms ist die Leitung TRUE ==> Tastverhältnis dieser PWM = 25%
' schrieb:die Eingänge Tastverhältnis und Frequenz werden nicht in Hertz angegeben sondern sind ganz stumpf Größen-Angaben, die sich auf den Takt der Schleife beziehen. Das ist ein VI zum selber rechnenWink

Wenn du dir das letzte VI runtergeladen hast dann berechnet sich die "Frequenz" in 10 µs Schritten, das Tastverhältnis ebenso:

Beispiel:
Frequenz = 200 => eine Periode dauert 200 x 10 µs = 2 ms ==> f = 500 Hz
Tastverhältnis= 50 => 50 x 10 µs = 0,5 ms ist die Leitung TRUE ==> Tastverhältnis dieser PWM = 25%
Wie muss das VI dann sein, wenn die Angabe der Frequenz wirklich in Frequenz sein soll? (das Gleiche für Tastverhältnis)


Mein Gedankengang wäre folgender:
Bei einer Abtastzeit von 10µs und einer Frequenz von 1Hz muss die Schleife 100.000Mal durchlaufen. Bei 200 Hz wären es dann 500 Mal.
Deshalb teile ich die Zahl "100.000" durch die eingegebene Frequenz und erhalte somit die Anzahl der Durchläufe.
Danach multipliziere ich diese Anzahl mit dem eingegebenen Tastfrequenz (0-100) und teile durch 100. So habe ich die Anzahl der Durchläufe für den "High-Pegel".

Theoretisch richtig?
Praktisch irgendwie besser umsetzbar?

Lv09_img2
[attachment=29028]
Seiten: 1 2
Referenz-URLs