From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

PXIe-8431 data corruption with parallel channel access

I am using a PXIe-8431/16 module for serial communication with multiple devices. The PXIe-8880 controller is provisioned with NI Linux RT. I am using a C++ application that reads and writes to the ttys ports directly (as opposed to using the NI Visa library). I am having an issue with data corruption when trying to access multiple channels at the same time at 1562500 baud rate. Below is a more detailed description:

The external devices operate at different baud rates (115200, 921600, 1562500). I use NI MAX to set the baud rate of each channel. My C++ program also uses termios to configure each channel accordingly. All of this seems to be working for single channels. When the C++ program is single threaded I am able to communicate with a single device successfully (good data in and out for all baud rates). When I introduce multiple threads (one thread per channel), I am seeing data corruption at the 1562500 baud rate.

If I instantiate threads for each of the 921600 channels, communication is good on all channels. If I instantiate threads for each of the 1562500 channels, the first channel operates nominally, but all additional threads/channels have corrupted data. 

With all of that being said, it is apparent that there is an issue with parallel access at higher baud rates. Is there anything else I can try to get this to work?

0 Kudos
Message 1 of 1
(906 Views)