Here
is a simple technique for measuring frequencies over
quite a wide frequency range and with acceptable accuracy
limits using a PC. It follows the basic technique of
measuring low frequencies, i.e. at low frequency, period
is measured for a complete wave and frequency is calculated
from the measured time-period. Cascaded binary counters
are used for converting the high-frequency signals into
low-frequency signals. The parallel port of a computer
is used for data input from binary counters. This data
is used for measuring time and calculating the frequency
of the signal. The block diagram shows the basic connections
of the counters and parallel port pin numbers on 25-pin
‘D’ connector of a PC (control register 379 Hex is used
for input). External hardware is used only for converting
the higher frequency signals into low frequency signals.
Thus, the major role in frequency-measurement is played
by the software. The PC generates a time-interrupt at
a frequency of 18.21 Hz, i.e. after every 54.92 millisecond.
Software uses this time-interrupt as a time-reference.
The control register of the PC’s parallel port is read
and the data is stored continuously in an array for
approximately 54.9 ms using a loop. This stored data
is then analysed bit-wise. Initially, the higher-order
bit (MSB or the seventh-bit) of every array element
is scanned for the presence of a complete square wave.
If it is found, its time period is measured and if not
then the second-highest order bit (sixth bit) is scanned.
This operation is performed till the third bit and if
no full square wave is still found, an error message
is generated which indicates that either there is an
error in reading or the frequency signal is lower than
19 Hz. Lower three bits of the control register are
not used. When a wave is found, along with its time-period
and frequency components, its measurement precision
in percentage is also calculated and displayed. Number
of data taken in 54.9 ms is also displayed. As stated
above, the lower starting range is about 19 Hz. Data
is read for approximately 54.9 ms. Thus, the lowest
possible frequency that can be measured is 1/.0549 Hz.
Lower range depends only on the sampling time and is
practically fixed at 19 Hz (18.2 Hz, to be precise).
Upper range depends on factors such as value of the
MOD counter used and the operating frequency range of
the counter IC. If MOD-N counter is used (where N is
an integer), upper limit (UL) of frequency is given
by UL=19xN5 Hz. Thus for MOD 16 counters UL@20 MHz,
and for MOD 10 counters UL@1.9 MHz. Care should be taken
to ensure that this upper limit is within the operating
frequency range of counter IC used. Precision of measurement
is a machine-dependent parameter. High-speed machines
will have better precision compared to others. Basically,
precision depends directly upon the number of data read
in a standard time. Precision of measurement varies
inversely as the value of MOD counter used. Precision
is high when MOD 10 counters are used in place of MOD
16 counters, but this will restrict the upper limit
of frequency measurement and vice-versa. |