I am collecting two passive digital signals off of a rotary encoder. Each signal is a quarter out of phase so that you can determine direction. I was using the USB 6001 to collect 1000 samples at a time for analysis which works fine as long as the wheel isn't going to fast. Once it hits the 6001 at a rate that is too fast, the signal starts to suffer from aliasing. The 6001 is able to collect 1000 one byte samples (1 port, 2 lines) in ~ 300ms.
I have a USB6434 that was available, so I thought I would try that out instead in the hopes that it would have a higher sampling frequency. However, that system takes ~1s to collect 1000 samples. This seems like there is something wrong as the 6434 is a high end model.
Do these timings make sense? Is there a way to get the 6434 to sample at a higher frequency?
Details:
I am using the c# library in NIDAQ-mx 19.1.
I create a digital input task, using ChannelLineGrouping.OneChannelForAllLines. I then use a DigitalSingleChannelReader to read the data from the task Stream using the method ReadMultiSamplePortByte.
I need to compare the two signals to get direction, so I can't use counters to count the rising edges.