This section describes the reading modes for analog signals, for discrete (digital) signal they are the same.
In this software two data reading modes are active:
- pipe reading
- microcontroller buffer reading
When pipe reading the measurement process consists of the following steps:
1. Setting the sampling frequency.
2. Starting the pipe.
3. Reading the packets of 409 samples (512/1.25 (10 bits)) from microcontroller in real time.
4. When computer reads the packet, microcontroller writes the samples to its FIFO (1024 bytes) to ensure measurement continuity.
5. Extracting the packets, calibration, triggering as required.
6. Stopping the pipe upon filling the preset buffer.
When microcontroller buffer reading the measurement process consists of the following steps:
1. Setting the sampling frequency.
2. Reading 1126 10-bit samples (microcontroller buffer depth is 1024(xdata) + 256 (EP2) + 128 (EP1) = 1408 bytes/1.25 (10 bits) = 1126 samples) at the preset sampling frequency and their compressing in the internal buffer, triggering as required.
3. Notifying the computer about samples obtained.
4. Transmitting the microcontroller buffer to the computer.
5. Extracting the buffer and calibrating the samples.
6. Displaying the measurement results.
It follows that when reading with the buffer it is impossible to read more than 1126 waveform samples for one continuous measurement. It is necessary to set frequency to enable normal viewing both low and high-frequency signals. So, e.g. if the sampling frequency is always 200 KHz then when analyzing tone with frequency of 1 KHz (i.e. 200 samples for signal period) 1156/200 = 5 full signal periods would be displayed that is sufficiently and when analyzing tone with frequency of 50 Hz (i.e. 4000 samples for signal period) then less than 1/3 of period would be displayed that is unacceptable for any analysis.
The question arises why we use reading with microcontroller buffer. The point is that not all computers are equipped with USB1.1 and NT-base operating system, i.e. Windows 2000 and XP, which ensure the general process priority and processor resource allotment. As the data exchange process is continuous and run in real time then the increased requirements are imposed on the computer (especially on USB bus controller) and operating system. To ensure the maximum sampling frequency when pipe reading USB bus controller shall manage to read 512 data bytes (EP3) from MK End Point each millisecond. At that, the operating system shall allocate the necessary resources for the data reading process, i.e. generally keeps the process and pipe priority. If you have at least Celeron 600, 128M RAM and operating system Windows 2000 or XP they have to run at maximum frequency (as tested on 3 computers) of course if any resource-intensive application is not concurrently operated.
If when connecting the device your computer gives "Out of bandwidth" error message, then you can operate at the maximum sampling frequency, partly because of low-speed computer and partly because of the device capabilities. In this case the microcontroller buffer reading mode can help you as in this mode the maximum sampling frequency is independent on the features of your computer.
But you can use the pipe reading even in the
low-speed computers when selecting the maximum sampling frequency by
experiment and if more it will be the automatic buffer reading as, e.g.
in Celeron 300, 64M Windows 98, the pipe reading run at Fs <=30 KHz,
in Celeron 600, 128M Windows 98 at Fs <= 100 KHz but in Windows 2000
the pipe reading run at the maximum frequency.
It is also necessary to note that when concurrently applying 2 channels the sampling frequency doubles as, e.g. at Fs = 100 KHz the sampling frequency is actually Fs = 200 KHz that's why when concurrently operating 2 channels the sampling frequency setup is automatically disabled if higher 100 KHz.