Unexpected Digital Input Pin Behavior in NI Multifunction RIO Device

Updated Aug 17, 2020

Reported In

Hardware

  • PXIe-7858

Software

  • LabVIEW FPGA Module

Driver

  • NI R Series Multifunction RIO 19.0

Issue Details

I am implementing the SPI read/write engine using the digital IO of NI PXIe-7858R. The LabVIEW FPGA state machine-based algorithm seems to be functioning correctly in the FPGA simulation mode. However, if I test it with external hardware (e.g., Arduino), the SPI engine does not function correctly. After probing the sampled digital inputs using the available debugging tools, I figured out that the behavior is because of unexpected values on the digital input pin.

Solution

The FPGA digital input lines are sensitive to the voltage levels. Any higher level above the maximum voltage specification of the pin will result in similar unexpected behavior. The Arduino digital output provides 5V, which is higher than the maximum input voltage (3.3V) of the digital input pin of PXIe-7858. Such use of hardware can also damage the IO pins.

Additional Information

  • To bring the voltage levels within the permissible range, use 5V to 3.3V voltage level conversion IC or use NI Digital I/O module compatible with 5V external devices (e.g., PXIe-7866).
  • Implementing a voltage divider can also be a solution. However, the voltage across the pin can vary with the variation of sink current and/or applied voltage.