The original BitScope is based on the MicroChip PIC 16F84 we call Picard.
Its fast RISC instruction set and the tri-state I/O pins make it ideal for BitScope.
At first glance you may think that an 18 pin PIC does not have enough pins for a useful design.
However, with careful planning it is possible to use most pins for more than one function which makes good use of the features of this innovative microcontroller while keeping the construction costs down.
The key is to reuse several of the pins depending on the hardware operating mode. In BitScope's case, two modes are defined; COUNT and SHIFT.
Here is a brief description of the pin functions:
Output pins that control the Analog gain of the Y amplifiers.
Note that the gain of the ADC Buffer is 1.667
- 0 Gain = 4.583
- 1 Gain = 1.000
- 2 Gain = 0.500
- 3 Gain = 0.190
|POD I/O 0
POD I/O 1
I/O pins that are available at the LOGIC POD for
external Smart Ports. In COUNT mode, analog switches
isolate these signals from the LOGIC POD.
|Output pin that swiches the Analog source between CHA BNC and CHB BNC,
or in POD mode between PODA or PODB analog signals brought from the LOGIC
|"The clock that sleeps". Tri-state I/O pin. State
machines in PLD devices should not be exposed to glitches
on the clock. Some registers may see the clock, others may
may not, resulting in non-deterministic behavior. Jamming
a 50MHz clock signal is not polite. U6A (74AC74) is double
clocked by frequency doubler U3D (74AC86) (on the clean
edge) and allows the PIC to have 3 state synchronous
control via RA3. High, Low, Freerunning - no
glitches. This control is important as we must use zz-clk
to shift in control words to the PLD as well as modulate
the sampling for lower frequency timebase measurements.
|Input connects to U5 8:1 MUX to read the 8 data bits of
the Logic Analyzer RAM bus. Bit7 is routed through Spock
to be optionally the TRIGGER MATCH or FREQUENCY/EVENT
signals. RA4 may be connected to the PIC prescaler in the
Input connects to U4 8:1 MUX to read the 8 data bits of
the ADC RAM Bus. As RB0 is the PIC INT source, during
SAMPLE, if the MUX points to Bit7 then INT may be used as
a zero crossing detector for Analog TRIGGER (in additional
to the Complex trigger implemented in the PLD)
|Spock Data In
Output signal is Shift-In data to feed Spock which needs 5 bytes to
set up counters, trigger bytes and options.
Output A0 for data MUXs U4, U5.
|Spock Data Out
Input Shift-Out data from Spock. Current 16 bit counter
state in Spock is shifted out as new data is shifted in.
Output pins A1, A2 for data MUXs U4, U5.
Output which controls the hardware mode. That is, COUNT or
SHIFT. A value of ONE causes Spock to shift new data into
its registers. A value of zero causes Spock to count and
Serial data output.
Serial data Input.
Output control for RAM and ADC/Buffer control. This signal
selects either read or write for the RAM, allowing SAMPLE
data written to RAM, or later read back.
The PIC is clocked by a crystal - which depending on the PIC device
may be 4MHz, 10 MHz or 20MHz