LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FlexRIO Peer to Peer Issue and Error with 8381 Remote Controller

Current Versions of Software:

LabVIEW 2014 SP1

LabVIEW FPGA 2014

Xilinx Vivado

 

I am having a bit of trouble running a peer to peer system, and I am trying to get to the cause of the issue I am having.

Here is my system setup:

 

Remote control of PXIe chassis, using NI PXIe-PCIe8381 as the interface.

Doing a peer to peer data transfer between two 7976R FlexRIO cards in the chassis.

 

Here is my block diagramand probe of the error I am getting:

 

Peer to Peer Issue.pngAnd the error I am generating

 

Code: -308031

 

Error:

NI-P2P:  Internal Error:  A software fault has occured in the NI-P2P component.  Please contact National Instruments for support.

 

 

I beleive I have everything wired correctly and configured correctly, all of my FIFOs are correctly the same size and type.

 

I can't seem to find the answer to what the issue is.

 

I believe it is because my remote controller may not be supported, which again is the NI PXIe-PCIe8381, and it could be.

The documentation says it has "Support for peer-to-peer data transfers between chassis" and that could be where the issue is caused from...

 

Does anyone have any experience here of what the cause could be?

0 Kudos
Message 1 of 8
(3,684 Views)

I've been looking for the portion of the documentation you've cited and have been unable to find it.

 

This White Paper was updated recently and has the list of P2P supported hardware on it: http://www.ni.com/white-paper/10801/en/

 

It doesn't include your controller.  We would also want to know which chassis you're working with to see if the chassis, itself, supports P2P streaming.

0 Kudos
Message 2 of 8
(3,637 Views)

It's in the datasheet

 

http://www.ni.com/datasheet/pdf/en/ds-436

 

Bottom of page 1 to top of page 2.

 

 

The chassis I am using is a 1085 Gen 2 chassis.

 

I am certain this supports it.

 

 

I hope Bo Knows Peer to Peer workarounds if this is more of a product compatibility issue!

0 Kudos
Message 3 of 8
(3,628 Views)

The PXIe-8381 supports peer to peer.  That's not the problem.

 

- Robert

Message 4 of 8
(3,620 Views)

Robert,

 

Any idea on what the problem could be?

0 Kudos
Message 5 of 8
(3,564 Views)

Out of curiosity, what slots are you using for the 7976Rs? I'm curious if they are on the same backplane switch or if it is routing through the MXI chipset.

I'd take a look at the user manual for your chassis and if they are not on the same switch, switch slots so that they are, then give that a try.

 

For example, this is the ideal setup in a PXIe-1085,

 

and this is the data path if the FPGA modules are on different switches.

 

Rob B
FlexRIO Product Manager
0 Kudos
Message 6 of 8
(3,549 Views)

Rob,

 

I am using slots 2 and 3 of the 1085 Gen 2 Chassis, so this means they're both going into switch 1 I believe.

 

I too was curious of this being the culprit, but the switching seems like it should work...

 

Furthermore, upon looking at the errors in the .h file, I think I'd of gotten one relevant to that error if so.

You'd know better than me though!

 

#define NIP2P_ERROR_BASE -308000L
#define NIP2P_MAX_NUM_ERROR_CODES 1000L
#define kNIP2PStatusSuccess 0L
#define kNIP2PStatusMemoryFull (NIP2P_ERROR_BASE - 0)
#define kNIP2PStatusNotSupported (NIP2P_ERROR_BASE - 1)
#define kNIP2PStatusIOOperationFailed (NIP2P_ERROR_BASE - 2)
#define kNIP2PStatusDeviceNotFound (NIP2P_ERROR_BASE - 3)
#define kNIP2PStatusBadPointer (NIP2P_ERROR_BASE - 4)
#define kNIP2PStatusStreamResourcesInUse (NIP2P_ERROR_BASE - 5)
#define kNIP2PStatusEndpointAlreadyExists (NIP2P_ERROR_BASE - 6)
#define kNIP2PStatusEndpointNotFound (NIP2P_ERROR_BASE - 7)
#define kNIP2PStatusEndpointsAreEquivalent (NIP2P_ERROR_BASE - 😎
#define kNIP2PStatusInvalidStreamId (NIP2P_ERROR_BASE - 9)
#define kNIP2PStatusDeviceAlreadyExists (NIP2P_ERROR_BASE - 10)
#define kNIP2PStatusStreamNotFound (NIP2P_ERROR_BASE - 11)
#define kNIP2PStatusStreamNotLinked (NIP2P_ERROR_BASE - 12)
#define kNIP2PStatusInvalidEndpointInterface (NIP2P_ERROR_BASE - 13)
#define kNIP2PStatusEndpointNotCapable (NIP2P_ERROR_BASE - 14)
#define kNIP2PStatusStreamNotEnabled (NIP2P_ERROR_BASE - 15)
#define kNIP2PStatusInvalidStreamHandle (NIP2P_ERROR_BASE - 16)
#define kNIP2PStatusInvalidAttributeType (NIP2P_ERROR_BASE - 17)
#define kNIP2PStatusInvalidAttribute (NIP2P_ERROR_BASE - 18)
#define kNIP2PStatusIncompatibleEndpoints (NIP2P_ERROR_BASE - 19)
#define kNIP2PStatusPeerInterfaceNotSupported (NIP2P_ERROR_BASE - 20)
#define kNIP2PStatusInvalidEndpointHandle (NIP2P_ERROR_BASE - 21)
#define kNIP2PStatusIncompatibleDataTypes (NIP2P_ERROR_BASE - 22)
#define kNIP2PStatusInvalidEvent (NIP2P_ERROR_BASE - 23)
#define kNIP2PStatusOperationTimedOut (NIP2P_ERROR_BASE - 24)
#define kNIP2PStatusStreamWasClosed (NIP2P_ERROR_BASE - 25)
#define kNIP2PStatusAttributeNotSettable (NIP2P_ERROR_BASE - 26)
#define kNIP2PStatusEndpointsOnSameDevice (NIP2P_ERROR_BASE - 27)
#define kNIP2PStatusEventNotSupported (NIP2P_ERROR_BASE - 28)
#define kNIP2PStatusEventUnregistered (NIP2P_ERROR_BASE - 29)
#define kNIP2PStatusInvalidP2PLinkPath (NIP2P_ERROR_BASE - 30)
#define kNIP2PStatusSoftwareFault (NIP2P_ERROR_BASE - 31)
#define kNIP2PStatusInvalidDataType (NIP2P_ERROR_BASE - 32)

0 Kudos
Message 7 of 8
(3,539 Views)

A couple of us here have been trying to duplicate the behavior you're seeing.  We've managed to duplicate everything in your system except the chassis so far.  With a different chassis, we don't run into any issues.  The next thing we want to try is to get the system setup using the exact same chassis.  We're hoping to either see the same behavior you're seeing or point you towards the example we get to run successfully to see what happens on your end.

0 Kudos
Message 8 of 8
(3,497 Views)