September
1998, Issue 98
PIC'Spectrum
Audio
Spectrum Analyzer
PICSPECTRUM
HARDWARE
Now
that we have a good microcontroller, lets look
at the PICSpectrum hardware shown in Figure
4.
A
small power supply, which is built around U1 (78M05),
generates a clean 5 V from a standard 9-VDC power supply
(the total power consumption is around 100 mA, which
is mainly 50 mA for the PIC and 50 mA for driving the
three 75-W video outputs). The LED D1 indicates powerup
and generates a pseudoground 1.9-V level used by the
analog section.
The
analog input signal (from an onboard electret measurement
microphone or a line input jack) is amplified and low-pass
filtered down to 10 kHz by four operational amplifiers
(U2, LM324). A potentiometer lets you adapt the amplifier
gain to the ambient sound level and serves as an on-off
switch. The output signal, centered on the 1.9-V pseudoground
level, connects directly to one of the PICs analog
inputs.
The
PIC processor is clocked by a 32-MHz crystal (I wasnt
able to find a 33-MHz crystal in time). As usual for
these frequencies, this crystal is a 3´
overtone model.
I
needed a damper circuit (L1/C8) to select the correct
resonant frequency. Without it, the crystal would oscillate
on its fundamental frequency, and Id end up with
a 10.66-MHz clock!
Two
switches (K1 and K2) control the current mode (run or
hold) and the scaling of the display (linear or logarithmic).
They connect directly to RB6 and RB7 because the PIC
has selectable internal pullups.
The
VGA-compatible video-output connector is directly driven
by the PIC. The horizontal and vertical synchronization
signals are TTL compatible, so theres no problem
there. For the R, G, and B lines (02 V/75 W),
a 150-W series resistor does an adequate 5-V to 2-V/75-W
adaptation, thanks to the high power capacity of the
PIC outputs (20 mA/line, 100 mA total for ports A and
B).
The
8-pin header J4 handles in-circuit serial programming.
Four additional output pins (including one UART output)
are connected to a debug header. This provision is useful
during the debug phase because it enables you to send
debug information to a serial terminal to find out whats
happening inside the box when you dont have an
in-circuit emulator.