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 

cRIO



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!

27.10.2008, 15:46
Beitrag #11

MichaDu
Unregistered


 







cRIO
@ i2dx,

jetzt habe ich den IRQ wieder ausgebaut und bekomme immer noch timing constraints Fehler. Das scheint and irgendwas anderem zu liegen...

' schrieb:wie schnell wird der Interrrupt denn aufgerufen (in Hz)? Wieviel Daten überträgst du denn vom FPGA zum RT-VI (Samples pro Sekunde)? 5 kHz erscheinen mir nun nicht wirklich schnell ...

Ich hatte den IRQ im FPGA in der "schnellen" loop mit 195µs (5.13kHz) eingebaut. Ich habe einen DMA-FIFO-Kanal vom FPGA zum RT für 7 Analogwerte, die mit 5.13kHz gescannt werden. Nach 512 Schleifendurchläufen wird der IRQ gesetzt (=3584 Werte). Im RT lese ich dann diese 3584 Werte alle 80ms aus (etwas schneller als im FPGA, um Datenverluste zu vermeiden). Den DMA-Kanal habe ich sicherheitshalber größer gesetzt, auf 8192 Werte.

Wenn ich in der RT-Applikation das FPGA-VI starte, scheint sich das cRIO irgendwo vor oder in der "Wait for Initialize"-Loop aufzuhängen, d.h. schon vor der eigentlich Datenerfassung und DMA-Übertragung.

@ DAX5

' schrieb:Ich vermisse einige Randbedingungen
1. Wie groß ist der DMA Buffer auf dem FPGA
2. Wie groß oder klein ist die reaktionszeit von deinem RT
( bei normaler XP Umgebung muss man auf dem FPGA zum Bsp. einen Buffer einrichten der min. die Messdaten für 250 ms buffern kann.
3. Der ACKNOWLEDGE des Interrupt gehört hinter FIFO READ zudem sollte vor dem Quittieren
DMA Time Out abgefragt und ausgewertet werden.
4. Um einen einwandfreien DMA Tranfer zu gewährleisten sollte das Auslesen des DMA Buffer auf
Host seite synchronisiert erfolgen

1. DMA-FIFO-Größe auf dem FPGA = 8192
2. RT-Leseschleife mit 80ms (s.o.). Ich arbeite nur mit dem cRIO als Stand-Alone-Applikation, d.h. ohne PC. Der Datenaustausch erfolgt über Datasocket (TCP/IP)
3. Habe ich gemacht, ganz zum Schluss in der Leseschleife.
4. was meinst du denn mit synchronisieren? einen zweiten IRQ setzen und im FPGA quittieren?

Danke für die Hinweise!


Angehängte Datei(en) Thumbnail(s)
               
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
cRIO - MichaDu - 21.10.2008, 21:05
cRIO - thomas.sandrisser - 22.10.2008, 03:50
cRIO - cb - 22.10.2008, 07:05
cRIO - MichaDu - 22.10.2008, 08:30
cRIO - cb - 22.10.2008, 09:14
cRIO - thomas.sandrisser - 22.10.2008, 09:33
cRIO - cb - 22.10.2008, 17:42
cRIO - MichaDu - 27.10.2008, 07:22
cRIO - cb - 27.10.2008, 08:23
cRIO - DAX5 - 27.10.2008, 12:58
cRIO - MichaDu - 27.10.2008 15:46
cRIO - cb - 27.10.2008, 16:58
cRIO - MichaDu - 29.10.2008, 09:24
cRIO - cb - 29.10.2008, 10:52
cRIO - MichaDu - 29.10.2008, 15:38
cRIO - cb - 29.10.2008, 16:25
cRIO - MichaDu - 30.10.2008, 07:35
cRIO - cb - 30.10.2008, 07:46
cRIO - MichaDu - 30.10.2008, 08:26
cRIO - cb - 30.10.2008, 10:36
cRIO - MichaDu - 30.10.2008, 12:11
cRIO - cb - 30.10.2008, 14:15

Gehe zu: