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 

Bedienung Steuerung FPGA => DMA => RT(myRIO)



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!

22.06.2014, 19:48
Beitrag #1

lazaii Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: May 2014

myRIO
2013
kA



Bedienung Steuerung FPGA => DMA => RT(myRIO)
Hallo liebe LVler,

Ich versuche einen Datenlogger zu programmieren. Die Signale werden via FPGA eingelesen, dann mittels DMA ins RT geschoben und dort verarbeitet/ausgewertet. Soweit sogut. Smile

Ich habe bereits den Part auf dem FPGA versucht zu programieren, dieser funktioniert soweit, d.h. ich kann die Sensoren auslesen, und die Daten insgesamt ins DMA FIFO schieben. Im RT kann ich dieses FIFO auch auslesen, jedoch scheine ich hier noch etwas nicht ganz kapiert zu haben. Es kann sein das wenn ich das FIFO starten die Daten nicht auf der Position sind, wo sie sein sollten. Ich übertrage 3 x 64bit und 10 x 16Bit. Dadurch erkenne ich einen Versatz schnell. Wenn ich stoppe und wieder starte passt's dann oft. Zudem ist mir aufgefallen dass der mittgelieferte Counter bei 15Bit stehen bleibt.
Aber jetzt stehe ich irgendwie auf dem Schlauch. Mit welchen Ansätzen komme ich hier weiter? Wo liegt(en) mein(e) Fehler? Wie kontrolliere ich die Datenerhebung im FPGA (geschickt Smile)? Das FPGA-VI soll sobald gestartet die Daten ins RT spucken ohne Unterbruch des Datenflusses. Kann ich dann wie in diesem Guide gezeigt
[Bild: fig_5.png]
http://www.ni.com/white-paper/4534/en/

die Daten in dieser Schlaufe auslesen und fertig? Irgendwo habe ich gelesen dass Abhängigkeiten aufgrund des Datenflusses besteht. Aber ich sehe mittlerweile den Wald nicht mehr...

Hat mir jemand vllt. n tipp?

Smile


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2014, 09:47
Beitrag #2

Stefan_r Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Dec 2013

2012
2013
DE



RE: Bedienung Steuerung FPGA => DMA => RT(myRIO)
Ich habe genau das selbe Problem!
Laut der LabView Hilfe sollte die Fifo.stop Funktion ALLE Daten, HOST wie auch FPGA seitig im Fifo löschen, anschließend sollte die Reihenfolge meinem Verständnis nach deterministisch sein (es sei denn es kommt bereits zum Buffer-Überlauf vor dem ersten lesen). Das ist bei mir aber leider nicht der Fall.

Außerdem wird in der Hilfe vorgeschlagen, die Größe des Fifos auf FPGA Seite genau auf ein vielfaches der Channels zu setzen (dadurch könnte man zwar Daten verlieren, aber es sollte eigentlich kein Versatz mehr entstehen). Bei mir wird die "Restquested number of elements" aber immer durch "actual number of elements" ersetzt?! Dadurch lassen sich in meinem Fall das Vielfache nicht einhalten.


Hilfe wie man die Reihenfolge deterministisch hinbekommt wäre wirklich wünschenswert!


Viele Grüße,
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2014, 09:53
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Bedienung Steuerung FPGA => DMA => RT(myRIO)
Hallo,

bei gemischten Daten im FIFO verwende ich gern (ähnlich wie z.B. bei der seriellen Schnittstelle) "TermChars". Wenn ich z.B. einen FIFO mit 32bit-Daten habe, schiebe ich dort am Paketanfang (oder -ende) ein "DEADBEEF" ein, welches ich dann auf dem RT-Host als eindeutige Kennung auswerten kann…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2014, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2014 12:18 von Stefan_r.)
Beitrag #4

Stefan_r Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Dec 2013

2012
2013
DE



RE: Bedienung Steuerung FPGA => DMA => RT(myRIO)
Ich habe jetzt für mich eine Lösung gefunden. Ob die generell das Problem behebt oder nur in meinem Fall kann ich nicht sagen.

Und zwar stoppe ich nun den FIFO, lese dann in einer While-Schleife bis keine Werte mehr übrig sind und starte den FIFO wieder. Ab dem Punkt sind die Daten immer in gleicher Reihenfolge. (Achte darauf dass kein Überlauf entsteht bis zum Auslesen der Daten, also direkt vorher platzieren)

Eigentlich eine simple Lösung, ich habe vorher es mit zwei read methoden versucht (die erste liest 1 Element, die zweite die Anzahl der übrigen aus dem Ersten), jedoch blieben nach dem zweiten read immer noch Elemente übrig (???).


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2014, 12:22 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2014 12:22 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Bedienung Steuerung FPGA => DMA => RT(myRIO)
Hallo Stefan,

für ">0" gibt es eine fertige Funktion…

Zitat:ich habe vorher es mit zwei read methoden versucht (die erste liest 1 Element, die zweite die Anzahl der übrigen aus dem Ersten), jedoch blieben nach dem zweiten read immer noch Elemente übrig (???).
Solange der FPGA weiterhin Daten in den FIFO schreibt, werden (während der RT-Host den FIFO liest) weiterhin neue Daten hineingeschoben!

Zitat:Und zwar stoppe ich nun den FIFO
Ob das dem FPGA so gefällt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2014, 12:30 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2014 12:30 von Stefan_r.)
Beitrag #6

Stefan_r Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Dec 2013

2012
2013
DE



RE: Bedienung Steuerung FPGA => DMA => RT(myRIO)
(27.06.2014 12:22 )GerdW schrieb:  Hallo Stefan,

für ">0" gibt es eine fertige Funktion…

Zitat:ich habe vorher es mit zwei read methoden versucht (die erste liest 1 Element, die zweite die Anzahl der übrigen aus dem Ersten), jedoch blieben nach dem zweiten read immer noch Elemente übrig (???).
Solange der FPGA weiterhin Daten in den FIFO schreibt, werden (während der RT-Host den FIFO liest) weiterhin neue Daten hineingeschoben!
Vorher wird natürlich fifo.stop aufgerufen.
Zitat:
Zitat:Und zwar stoppe ich nun den FIFO
Ob das dem FPGA so gefällt?
Warum sollte es nicht gefallen?
Mir fehlt leider die Einsicht in die tiefere Programmierung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Impulsgenerator programmieren mit myRIO-1900 FPGA puh 16 17.555 10.05.2017 15:07
Letzter Beitrag: puh
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 7.953 26.10.2015 20:41
Letzter Beitrag: Felix777
  FPGA-Referenz öffnen: FPGA-VI nicht kompiliert LauraP. 9 13.303 17.03.2015 16:58
Letzter Beitrag: LauraP.
  Tutorials zu SENT und myRIO Slev1n 2 7.163 06.11.2014 22:51
Letzter Beitrag: Slev1n
  Kommunikation MyRIO mit IMU Fenris 0 5.541 13.09.2014 09:06
Letzter Beitrag: Fenris
  Endliche Pulserzeugung mit myRIO (FPGA) Hoodi 6 8.632 06.05.2014 17:50
Letzter Beitrag: jg

Gehe zu: