Hallo ghost,
Zitat:Kann es sein das ein CAN VI einen DMA belegt obwohl es auf dem RT ausgeführt wird?
Wenn das VI mit dem FPGA kommunizieren muss, der das zugehörige Modul verwaltet: möglich…
ein CAN-Modul, welches du sicherlich aus dem RT per High-Level API ansprechen willst? Da kommst du aus dem Hybrid-Modus wahrscheinlich nicht raus.
Gruß, Jens
(17.07.2015 09:12 )jg schrieb: [ -> ] ein CAN-Modul, welches du sicherlich aus dem RT per High-Level API ansprechen willst? Da kommst du aus dem Hybrid-Modus wahrscheinlich nicht raus.
Gruß, Jens
Was bedeutet High-Level API?
Ich verwende die CANopen Bibliothek von NI und auf der Hardwareseite das 9881 Modul.
Viele Grüsse und besten Dank für eure Hilfe
Hallo ghost,
ein HIGH-Level-API (Application Programming Interface) entbindet dich davon, auf tieferer (Hardware-)Ebene die Kommunikation direkt zu programmieren: hier also die CANopen-Lib mit einem recht einfachen Programmierinterface.
Wenn du den FPGA allein betreiben willst, MÜSSEN alle Module im FPGA-Target eingebunden sein. Und die MUSST alle Module im eigenen FPGA-VI verwalten und verwenden…
okay, das würde Bedeuten das ich die CANopen Lib nicht mehr verwenden kann und stattdessen diese Funktionen selbst auf dem FPGA programmieren muss
Nochmal zu den DMA Kanälen: Auf der cRIO sind 3 vorhanden, zwei werden durch die Scan-Engine belegt wegen dem Hybrid-Mode. Dann müsste doch noch einer frei sein?! Oder belegt CANopen nochmals einen DMA Kanal?
mfg
Hallo ghost,
Zitat:das würde Bedeuten das ich die CANopen Lib nicht mehr verwenden kann und stattdessen diese Funktionen selbst auf dem FPGA programmieren muss
Ja.
Zitat:Auf der cRIO sind 3 vorhanden, zwei werden durch die Scan-Engine belegt wegen dem Hybrid-Mode. Dann müsste doch noch einer frei sein?!
Ja.
Zitat:Oder belegt CANopen nochmals einen DMA Kanal?
Du hast noch nichts von diesem CANopen-Treiber gezeigt - und da gibt es nicht nur eine Implementierung.
Entweder selbst nachschauen oder mehr von deinem CAN-VI zeigen…
Hallo Gerd
wie wie kann ich die DMA Belegung ausfindig machen?
Im wesentlichen verwende ich diese VIs:
- CANopen Create
- CANopen SDO Read/Write
- CANopen PDO Read/Write
Im Anhang ist ein Ausschnitt aus dem Helpfile der Lib.
Grüsse
Hallo ghost,
ich habe diese CANopen-Lib noch nie auf dem cRIO benutzt, ich nutze sie nur auf "normalen" PCs. Dort wiederum ist sie nur ein Aufsatz auf die "normale" NI-CAN-Lib. Wie (und warum) sie auch auf dem cRIO funktioniert, kann ich dir nicht sagen.
Ich kann dir nur empfehlen, alles auf dem FPGA selbst zu machen…
(Für CANopen gibt es eine Referenz-Implementierung für cRIO/FPGA irgendwo auf der NI-Webseite. Entweder selbst suchen oder den Support fragen.)
Hallo Gerd und jg
in der zwischenzeit konnte das Problem behoben werden, einer unserer Labview Profis ist wieder aus dem Urlaub da.
In Slot 4 und 5 sind noch zwei Karten als Reserve eingebaut (siehe Projektbau Post#14), als wir diese beiden vom Projekt entfernt haben hat es wie gewünscht funktioniert. Vermutlich wurde hierfür ebenfalls ein DMA belegt. Die Lösung ist sicher nicht die eleganteste, aber sie funktioniert vorerst mal.
Herzlichen Dank nochmal für eure Hilfe!
Grüsse
webghost