I have a cRIO-9039.
The following configuration works:
I setup the NI-9882 as an RT scan resource and then I setup a NI-9476 as an FPGA module. I can communicate with the NI-9882 with the NI example code.
The following doesn't work:
I setup the NI-9882 as an FPGA module and then I setup a NI-9476 as a RT scan resource. I cannot communicate with the NI-9882 with the NI example code. I created an FPGA VI that I run.
My understanding is the FPGA VI should kick-start the devicenet driver, but it doesn't seem to be working as advertised. The FPGA VI is a simple VI with a while loop. I tried running it interactively. I also tried using the Open FPGA VI reference as seen in the image below:
Even though I have a workaround, I would prefer to place the NI-9882 as an FPGA resource so I don't have to use FPGA for my other modules at all.
Solved! Go to Solution.
So I moved all modules to the RT scan resource and now the NI-9882 is working. It even works without opening an FPGA VI ref. I'm confused since I thought you needed to have some module on the FPGA side and have an FPGA VI loaded.
There is a component that needs to be loaded for XNET, DeviceNet, or CANopen to work. On some of our older controllers/chassis, the FPGA was smaller and you did need to compile in the shared driver component. The current market of FPGAs are larger, and we incorporated these into our newer controllers. The larger FPGA can hold this shared driver component in the default bitfile, so you don't need to compile on these. Here's an article that talks about this (formerly call "Do I need to compile a bitfile for XNET?"): Unable to Detect XNET, CANopen, or DeviceNet Modules.