11-11-2025 06:32 AM
Hello,
I’m working on an I²C ACK/NACK detection test using an NI Digital Pattern Instrument in LabVIEW.
The same pattern works correctly in NI Digital Pattern Editor — ACK is detected there — but when I run it in LabVIEW, I always receive NACK.
Below is the flow I implemented in LabVIEW:
niDigital Initialize With Options.vi
niDigital PPMU Configure Output Function.vi
niDigital PPMU Configure Voltage Level.vi
niDigital PPMU Configure Limit Range.vi
niDigital PPMU Source.vi
niDigital PPMU Measure.vi (for checking voltage to DUT)
niDigital PPMU Measure.vi (for checking current to DUT)
niDigital Load Pin Map.vi
niDigital Load Specifications, Levels, and Timing.vi
niDigital Apply Levels and Timing.vi
niDigital Configure Pattern Burst Sites.vi
niDigital Configure History RAM Cycle Number Trigger.vi
niDigital Load Pattern.vi
niDigital Create Source Waveform.vi
niDigital Write Source Waveform.vi
niDigital Create Capture Waveform.vi
niDigital Commit.vi
niDigital Configure History RAM Cycles To Acquire.vi
niDigital Burst Pattern.vi
niDigital Get History RAM Sample Count.vi
niDigital Fetch History RAM Cycle Information.vi
niDigital Fetch Capture Waveform.vi
niDigital Get History RAM Sample Count.vi
niDigital Burst Pattern.vi
niDigital Fetch Capture Waveform.vi
niDigital Close.vi
In Digital Pattern Editor, ACK is correctly detected on the SDA line.
In LabVIEW, the pattern executes but the ACK bit always appears as NACK.
Could anyone from NI clarify:
Whether my LabVIEW execution order or required VIs are incorrect?
Is there any session configuration difference between Pattern Editor and LabVIEW that could cause this?
Should PPMU steps be used before running a digital burst pattern for ACK/NACK detection?
Any guidance on aligning the LabVIEW behavior with Pattern Editor results would be appreciated.