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 

Labview FPGA Probleme mit Timing



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!

07.10.2010, 17:26
Beitrag #1

chefweb Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jun 2008

8.2
-
en

-----
Ireland
Labview FPGA Probleme mit Timing
Hallo,

ich habe seit kurzem ein sbRIO9632 und die FPGA/Realtime Programmierung ist fuer mich neu. Ich bin derzeit dabei ein Programm zu schreiben, welches dass zeitmultiplexte einlesen eines AD-Wandlereinganges erlaubt. Dabei soll alle 100msec ein entprechendes Pin gesetz werden und waehrenddessen der AD-Wandler eingelesen werden. Die dabei erhaltenden Samples (Bsp. 256) sollen dann gemittelt werden.
Nun aber zu meinem Problem:
Die Abtastung funktioniert soweit schon recht gut, ich benutze dafuer einen FIFO. Das eigentliche Problem besteht in dem richtigen setzen der Pins. Der FPGA kann die 100ms nicht schaffen, stattdessen schwankt die Frequenz extrem. Ich vermute, dass ich da noch einen grundlegenden Fehler machen und wollte euch im Rat fragen, wie ich das Problem am Besten angehen kann. Ich habe auch bereits eine timed-loop probiert, jedoch passiert damit der gleich Fehler.

Ich benutze Labview 2009SP1 und auf dem sbRIO laeuft NI-RIO 3.4

Vielen Danke fuer eure Ratschlaege ..


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .zip  sbRIO_timing.zip (Größe: 702,3 KB / Downloads: 314)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.10.2010, 19:22
Beitrag #2

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Labview FPGA Probleme mit Timing
Hi,

ich vermute mal, dass es damit zusammenhängt, dass du in der gleichen Schleife die gleichen DIO schreibst und liest und das ohne eine Zuordnung, was zuerst kommen soll und was nicht. Versuch doch mal, das mit einer Sequenz (jaja, normalerweise böse, ich weiß;)zu definieren. Noch sinnvoller ist wahrscheinlich, wenn du die Anzeigeelemente einfach raus schmeißt oder brauchst du die irgendwo? Falls ja - das könnte auch ein Problem sein, wenn das Schreiben in das Control vom Lesen irgendwie behindert wird...

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2010, 21:30
Beitrag #3

chefweb Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jun 2008

8.2
-
en

-----
Ireland
Labview FPGA Probleme mit Timing
Hallo,

vielen Dank fuer den Tipp. Ich habe die Anzeigeelemente enfernt, jedoch brauchte das keine Besserung. Die Zaehlung innerhalb der Schleife ist nicht richtig. Ich lasse die Variable "count" ausgeben und daran ist gut zu erkennen, dass dort das Problem liegt. Ich habe die while Schleife gegen eine timed loop gewechselt, jedoch ist das Resultat das Gleiche. Erhoehe ich die LED_time auf 40Mio (enspricht dann 1Hz), funktioniert die Schleife wunderbar.
Ausserdem konnte ich feststellen, dass sich das Programm immer nach genau 10514 Iteration aufhaengt. Was mache ich hier grundsaetzlich falsch? Kommt der Fpga mit den parallen Schleifen nicht klar?

Vielen Dank fuer eure Hilfe


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2010, 10:33 (Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2010 10:35 von Matze.)
Beitrag #4

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Labview FPGA Probleme mit Timing
Hallo,

wieso nutzt du denn 2 Warte-VIs bei der Erfassung (1. Screenshot)?
Hier genügt doch das VI "Wait" mit der Zeiteinheit "Millisekunden" und dem Wert 100. Dann musst du nicht mit Ticks herumrechnen. Ich weiß z.B. nicht, wie du auf den Wert "15000" kommst.
Oder eben mit Wert "10 ms" für eine 100-Hz-Schleife.

Das Sequenz-Prinzip, das du im FPGA nutzt (1. Sequenz = Pausieren, 2. Sequenz = Messen) ist korrekt. Das empfielt NI auch so.
Daher glaube ich, dass die Schleife oben links nicht richtig ist. Läuft diese nicht im FPGA-Takt mit x MHz? DU hast dort im Kommentar "100 Hz" stehen.

"FIFO.Write" akzeptiert meines Wissens auch ein Array als Eingang. Da du gleiche Datentypen nutzt, würde ich dir das empfehlen. Dann fallen die beiden For-Schleifen weg.

Wenn das FPGA kontinuierlich läuft, kannst du dich bei "Count" irgendwann auf einen Überlauf einstellen. Sollte es diese Variable wirklich mit 4 MHz hoch zählen, dauert das ca. 35 Minuten bis zum Überlauf (wenn ich keinen Denkfehler gemacht habe). Sind das nur 100 Hz, dauert's ne halbe Ewigkeit.Wink

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.10.2010, 22:41
Beitrag #5

Steppenwolf12 Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: May 2010

9 SP1
2009
de

68782
Deutschland
Labview FPGA Probleme mit Timing
Hallo,

Könnte es vielleicht sein, dass der Counter an der unteren Schleife nicht groß genug ist (wie viel Bit hat der denn?) und das Programm abstürzt wenn dieser "überläuft"? Immerhin zählt der ja laut deiner Beschreibung mit 4MHz hoch.

Du könntest auch noch versuchen die DIO3 und DIO9 in einer separaten While-Loop zu plazieren, um diese dann über lokale Varibalen aus der SCTL zu befüttern. So könntest du zumindest schonmal ausschließen, dass die Ausgänge zu viel Zeit in Anspruch nehmen. (Für parallele Schleifenausführungen ist der FPGA übrigens gut geeignet)

Hoffe es hilft, viele Grüße

Nico
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.10.2010, 23:06
Beitrag #6

chefweb Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jun 2008

8.2
-
en

-----
Ireland
Labview FPGA Probleme mit Timing
Danke fuer eure Antworten. Ich habe das Problem mittlerweile anders geloest, indem ich einfach Sequenz genommen habe. Diese Sequenz beschreibt im Groben den Ablauf des Programmes. 100% zufrieden bin ich noch nicht, deshalb wird es nicht die letzte Loesung seinSmile
Sollte ihr noch Interesse an der Loesung hab, kann ich sie gerne noch erlaeutern und einen Screenshot hochladen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.10.2010, 08:03
Beitrag #7

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Labview FPGA Probleme mit Timing
Ja, bitte! Eigentlich immer hier, vielleicht will der Rest ja auch aus den Fehlern und Erkenntnissen lernen, die Du gemacht hast...
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2010, 10:13 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2010 10:15 von chefweb.)
Beitrag #8

chefweb Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jun 2008

8.2
-
en

-----
Ireland
Labview FPGA Probleme mit Timing
Hallo,

nochmal zur kurzen Erklaerung des Programmes:
zunaechst wird ein Port1 gesetzt und danach 8 mal auf sechs ADC ports gesampelt. Daraufhin wird der Port abgeschaltet und erneut 8 Messwerte genommen. Sobald das erldigt ist wird Port 2 eingeschaltet und es werden wieder 8 Messwerte augenommen..

Was haltet ihr von der Loesung? Wie haettet ihr das Problem angegangen? Was wuerdet ihr verbessern?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.10.2010, 15:59 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2010 18:29 von Matze.)
Beitrag #9

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Labview FPGA Probleme mit Timing
Mir fällt die For-Schleife in der 3. Sequenz immer noch negativ auf.

Wieso nutzt du das Metronom und eine Wartezeit?

Hier reicht eines davon, je nach Anwendung. In deinem Fall ist das Metronom wohl eher ungeeignet, da der erste Durchlauf kürzer sein wird als alle anderen. Verbinde doch "ADC/DACC" mit dem Warten-VI in der Sequenz. Da ist dann auch gleich der genaue Ablauf definiert.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 7.969 26.10.2015 20:41
Letzter Beitrag: Felix777
  FPGA-Referenz öffnen: FPGA-VI nicht kompiliert LauraP. 9 13.320 17.03.2015 16:58
Letzter Beitrag: LauraP.
  Timing Probleme cRIO n4f3ts 10 14.662 14.06.2014 21:57
Letzter Beitrag: cb
  Probleme mit localem Compilation Worker bei LabVIEW 2013 SP1 dfoerste 5 6.674 04.04.2014 13:22
Letzter Beitrag: dfoerste
  Labview fpga Daten loggen erik.sonnenschein 18 17.680 11.06.2013 23:12
Letzter Beitrag: Holy
  Literaturhinweis: A new Pulse-Pattern Generator based on LabVIEW FPGA BNT 2 5.723 02.05.2012 14:52
Letzter Beitrag: BNT

Gehe zu: