INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

PWM-Signal über Dig.Output



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.08.2007, 10:17 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2007 10:22 von draluz02.)
Beitrag #1

draluz02 Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Aug 2007

8.2.1
-
kA


Oesterreich
PWM-Signal über Dig.Output
Grüß euch!

Will ein PWM-Signal an einem digitalen ausgang (5V TTL) am NI9403 Modul mit dem cRIO-9012 realisieren. Will dazu über ein host-VI die frequenz in Hz und die PWM in % vorgeben, anschließend die periodendauer über die frequenz ausrechnen & die zeit in der der ausgang log. high ist über die % und die zuvor ermittelte periodendauer ausrechnen & diese dann an das FPGA VI übergeben und mittels timer (loop timer) den ausgang dementsprechend schalten.

das ganze sollte dann wie folgt ablaufen:

1.) TimerPeriode & TimerHigh starten; DO0 = high
2.) TimerHigh läuft ab; DO0 wird low gesetzt
3.) TimerPeriode läuft ab; DO0 wird high gesetzt & beide Timer starten wieder von vorne

Mein problem bei der sache ist jetzt, dass ich nicht weiß wie ich den ausgang alternieren soll, weil ich so eine dementsprechende fkt. noch nicht gefunden habe!

oder habt ihr vl eine bessere idee wie ich diese aufgabenstellung realisieren soll? womöglich ohne timer?

mfG, lukas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2007, 10:45
Beitrag #2

Lurx Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Aug 2007

8.2.1
2007
kA

70730
Deutschland
PWM-Signal über Dig.Output
ich habe bei mir ein fertiges VI von LV verwendet... es gibt eines für PWM-Generation in FPGA...wo du alles einstellen kannst was du willst

lass mal nach PWM im LV verzeichnis suchen, dann wirds viel finden und da gibt es ein PWM Generator.vi....
viel spaß damit
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2007, 10:55
Beitrag #3

draluz02 Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Aug 2007

8.2.1
-
kA


Oesterreich
PWM-Signal über Dig.Output
klingt vielversprechend! werd ich gleich mal ausprobierenSmile!

danke für die schnelle antwort! mfG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2007, 10:59
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
PWM-Signal über Dig.Output
das sieht mir grad so aus als hätt jemand den Wald vor lauter Bäumen nicht gefundenBig Grin

Ich hab grad mal was aus einem aktuellen Projekt rauskopiert, wo man sieht, wie ich alle 500 ms die FPGA-LED aus- bzw. einschalte ...

   

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2007, 15:00 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2007 15:22 von draluz02.)
Beitrag #5

draluz02 Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Aug 2007

8.2.1
-
kA


Oesterreich
PWM-Signal über Dig.Output
@Lurx: dieses PWM-Generation VI ist ja nur für das NI9505 Modul, oder? war für mein bescheidenes LV-Wissen etwas zu hoch. wie hast du es konkret verwendet?

@i2dx: danke für den tipp! hab das jetzt auch schon umgesetzt nur funktioniert es bei mir trotzdem noch nicht! Tges wird vom host vorgegeben (zwischen 200 und 1000); getimed wird die while schleife im FPGA mit 10µs! vielleicht hast du zeit dir das VI im anhang kurz durchzudenken... wär dir wirklich dankbarSmile!

mfG, lukas


Angehängte Datei(en)
Sonstige .vi  _FPGA_Klappensteuerung.vi (Größe: 56,78 KB / Downloads: 567)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2007, 16:49
Beitrag #6

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
PWM-Signal über Dig.Output
' schrieb:@i2dx: danke für den tipp! hab das jetzt auch schon umgesetzt nur funktioniert es bei mir trotzdem noch nicht! Tges wird vom host vorgegeben (zwischen 200 und 1000); getimed wird die while schleife im FPGA mit 10µs! vielleicht hast du zeit dir das VI im anhang kurz durchzudenken... wär dir wirklich dankbarSmile!

mfG, lukas


dann schließ mal die Drähte richtig an, dann funktioniert der Teiler auch richtig:)So wie du das verkabelt hast wird der bei jedem Schleifendurchlauf zurückgesetzt bzw. das Signal getoggelt.

andererseits, so richtig als PWM taugt das eh nicht, ich hab dir mal was angehängt, dass auf dem FPGA auf jeden fall als PWM laufen sollte. Wie man nun das Timing umrechnet musst du selber rausfindenSmile


Sonstige .zip  FPGA_PWM.LV8.2.1.zip (Größe: 15,99 KB / Downloads: 749)

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.08.2007, 09:29
Beitrag #7

Lurx Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Aug 2007

8.2.1
2007
kA

70730
Deutschland
PWM-Signal über Dig.Output
ich verwende ein 9401....

ich habe dir mal ein Bild meines Programmes angehängt und des PWM Vi.

Ich hoffe das hilft dir weiter. ICh bin selber ein blutiger Anfänger und habe das über die Beispiele rausbekommen

Viel erfolg!


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2007, 11:25 (Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2007 11:27 von draluz02.)
Beitrag #8

draluz02 Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Aug 2007

8.2.1
-
kA


Oesterreich
PWM-Signal über Dig.Output
habs jetzt derweil einmal i2dx's version probiert. funktioniert prima! stell im host VI die relevanten parameter ein, rechne diese um und übergib sie alle 10ms an das FPGA VI wo im 10µs takt hinaufgezählt wird. habs am oszi kontolliert und funktioniert echt super.

einziges manko vl: wenn ich 100% bei der PWM einstell, hab ich trotzdem 10µs low pegel am DO dazwischen! macht jetzt bei dieser anwendung zwar nur einen max. Fehler von 0,5%, aber in zukunft hatte ich vor ein 180kHz signal pulsweitenmoduliert am DO auszugeben und da ist die kleinste periodendauer nur mehr 5.56µs... !!!

hab auch schon probiert die zeit des timers im FPGA VI runter zu stellen, aber es funktioniert bis max. 7µs, dann stimmt die freuquenz nicht mehr überein, weil ja der FPGA länger zum abarbeiten braucht als der timer braucht!

welche lösung wäre daher für die 180kHz am geeignetsten?

mfG


Angehängte Datei(en)
Sonstige .vi  _Host_Klappensteuerung.vi (Größe: 197,72 KB / Downloads: 430)

Sonstige .vi  _FPGA_Klappensteuerung_alt.vi (Größe: 57,64 KB / Downloads: 365)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2007, 17:46
Beitrag #9

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
PWM-Signal über Dig.Output
' schrieb:einziges manko vl: wenn ich 100% bei der PWM einstell, hab ich trotzdem 10µs low pegel am DO dazwischen! macht jetzt bei dieser anwendung zwar nur einen max. Fehler von 0,5%, aber in zukunft hatte ich vor ein 180kHz signal pulsweitenmoduliert am DO auszugeben und da ist die kleinste periodendauer nur mehr 5.56µs... !!!

hab auch schon probiert die zeit des timers im FPGA VI runter zu stellen, aber es funktioniert bis max. 7µs, dann stimmt die freuquenz nicht mehr überein, weil ja der FPGA länger zum abarbeiten braucht als der timer braucht!

welche lösung wäre daher für die 180kHz am geeignetsten?

mfG

Lösung für 180 kHz --> nimm ein anderes Modul, das 9403 schafft nur max. 7µs gem. Spezifikation

Du hast bei 100% einen Low-Pegel "dazwischen", weil da noch ein Bug im Code warSmile--> berichtigte Version liegt bei. Du musst übrigens nicht ständig die Controls in dem FPGA-VI beschreiben, es reicht, die Werte zu setzen, wenn sich etwas ändert.

Ich hab dann nochmal per SCTL alles an Performance rausgequetscht, was geht, bringen tut's freilich nix, weil der Code vorher schon schneller war, als das Modul schalten kann.


Sonstige .zip  PWM_v2.LV821.zip (Größe: 51,02 KB / Downloads: 687)

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.08.2007, 07:32
Beitrag #10

draluz02 Offline
LVF-Grünschnabel
*


Beiträge: 27
Registriert seit: Aug 2007

8.2.1
-
kA


Oesterreich
PWM-Signal über Dig.Output
' schrieb:das 9403 schafft nur max. 7µs gem. Spezifikation

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?

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: