CAN Interface Module Not Showing up Properly in NI MAX

Updated Jan 4, 2019

Reported In

Hardware

  • C Series Serial Interface Module

Software

  • Measurement & Automation Explorer (MAX)

Issue Details

My NI-9862 C-Series CAN Module does not show up as expected within NI-MAX.

This happens when: 
  • I am setting up a new cRIO chassis. It is visible within NI MAX but greyed out and not usable. I receive error -88705 saying the device is not present.
  • I am running a LabVIEW code. The issue sometimes or always occurs after running the code. 

Solution

For a new cRIO chassis, try compiling a blank FPGA VI in your project, and then run it once interactively. The 9862 should load and appear in MAX automatically and remain there until you run something else on the FPGA. During this time, the 9862 will be usable with XNET in your Real-Time code.

If the issue is occurring when running LabVIEW code, to prevent the issue ensure that you are only running the FPGA VI that was compiled with the 9862 module(s) in your LabVIEW project. Then make sure that you aren't closing the FPGA VI reference in your Real-Time code while you are using the NI-9862.

Additional Information

The NI-9862 XNET module requires a special set of drivers to be loaded to the FPGA in order to be able to access the module as an XNET interface, as well as see the interface in MAX. These drivers are automatically built into an FPGA VI when it is compiled if the module is included in your LabVIEW project. 
 

Because the drivers are built in to the compiled FPGA bitfile, they are only loaded when the FPGA bitfile is deployed and ran once on the FPGA (interactively). The FPGA VI itself does not have to remain "running" for the drivers to remain loaded and usable. Compiling a blank FPGA VI that does nothing will work fine to load the drivers.


Another possible cause of this issue is if you use a "Close FPGA VI Reference" or "FPGA Reset" method in your Real-Time code. This will cause the drivers to unload and the interface will disappear from MAX and no longer be usable with XNET.