|
Build an Athena
Logic probe
New and Improved
By Michael Simpson

A little while back I presented a couple of logic
probe projects that used the Athena or Dios to create a logic probe.
While they were great projects for learning the Athena or Dios
language they were not the best logic probes.
A good logic probe must indicate the following
states:
-
High state -
LED will shine bright
-
Low state -
LED will shine dim
-
No signal -
LED will not be lit
-
Pulse - LED
will flash.
While the original logic probes presented all the
above states they had fundamental flaw. In order to test
for a no signal state the probe placed a high and low pulse on the
probe lead then attempted to measure the pulse. The problem is
that this pulse would be transmitted to the device being tested.
This is how most microcontroller based logic probes work.
The Athena line of products contain 2 comparators
that can be used to create a high speed passive logic probe.
All that is needed is a few resistors and an LED. You can even
add an optional piezo element for audio feedback.
The Circuits

Schematic 1
Schematic 1 is for Athena and Nemesis controllers.
You can connect a piezo between port 14 and Gnd if you want an audio
beep each time the state changes.

Schematic 2
Schematic 2 is for Perseus controller. You can
connect a piezo between port 10 and Gnd if you want an audio beep
each time the state changes.
Programs
On the Athena and Nemesis bit 6 on the PIR1 register
will be set when there is a change on the output of ether
comparator. We poll for this change then set the hardware pwm
generator so the led is set accordingly. On the Perseus the
bits 4 and 5 will be set depending on which comparator changes.
The Perseus does not have a hardware PWM generator.
So we have to create our own to dim the LED when needed.
Athena Program
(download it here)
Athena
'Athena Logic Prob
hwpwm 0,255,0
output 6
output 14
dim dat
CMCON = 4
gosub gotchange
loop:
if PIR1 & 64 = 64 then
gosub gotchange
PIR1 = 0
endif
goto loop
gotchange:
gosub blink
dat = CMCON & 192 / 64
branch dat,none,tlow,thigh
return
none:
hwpwm 0,255,0
return
tlow:
hwpwm 0,255,30
return
thigh:
hwpwm 0,255,255
return
blink:
hwpwm 0,255,0
signal 14,10,25
hwpwm 0,255,255
pause 25
hwpwm 0,255,0
return
Nemesis Program
(download it here)
Nemesis
'Nemesis Logic Prob
hwpwm 0,255,0
output 6
output 14
dim dat
CMCON = 4
gosub gotchange
loop:
if PIR2 & 64 = 64 then
gosub gotchange
PIR2 = 0
endif
goto loop
gotchange:
gosub blink
dat = CMCON & 192 / 64
branch dat,none,tlow,thigh
return
none:
hwpwm 0,255,0
return
tlow:
hwpwm 0,255,30
return
thigh:
hwpwm 0,255,255
return
blink:
hwpwm 0,255,0
signal 14,10,25
hwpwm 0,255,255
pause 25
hwpwm 0,255,0
return
Perseus Program
(download it here)
Perseus
'perseus Logic Prob
RCSTA=0
output 8
output 10
output 5
low 5
dim dat,tcount,level
CMCON0 = 4
level = 0
mainloop:
tcount = 0
if level > 0 then
high 8
endif
loop:
if PIR1 & 24 > 0 then
gosub gotchange
PIR1 = 0
goto mainloop
endif
tcount = tcount + 1
if tcount > level then
low 8
endif
if tcount > 20 then
tcount = 0
goto mainloop
endif
goto loop
gotchange:
gosub blink
dat = CMCON0 & 192 / 64
branch dat,none,tlow,thigh
return
none:
level = 0
return
tlow:
level = 1
return
thigh:
level = 30
return
blink:
high 8
signal 10,10,25
low 8
pause 25
high 8
return

The Perseus Carrier is very easy to use to create a
simple breadboard logic probe. Only a single jumper is needed
to connect ports 0 and 4.
Parts
Athena
Athena Carrier 1
Perseus
Perseus Carrier 1
Easy RS232 Driver
7.5V AC Adapter
9 Pin Cable
Breadboard and
Wire Kit
|