In my early days as an engineer, I was working at HP and while I had a $5000 scope on my desk, I found that for quick debugging of some logic problems, a logic probe was a great tool. HP sold one and they seem to still be available. It was a nice handheld design and would show the high or low state of a signal, as well as floating (half bright) and toggling (flashing).

HP logic probe

Recently one of our customers had a problem that a logic probe would chase down. So it was a good example of a simple and useful project. The first pass was pretty easy to detect high or low signal values, and floating lines. Use a GPIO to IN(TEST_INPUT) to detect and drive the LED correspondingly. For floating the TEST_INPUT was pulled weakly high or low to see if the state changed and if it did, then light the LED at a lower brightness. To accomplish that a timer is used to generate interrupts so that the LED can be PWM'd to half bright.

A couple of options were tried before the final version showing pulsing signals was chosen. At first a capture input was used to detect when transitions occurred on the TEST_INPUT. But this required 2 pins to be tied together, or one pin being switched from capture to GPIO. A better solution was to place a weak pull up on the TEST_INPUT and look for negative transitions on TEST_INPUT using falling edge interrupts.

Logic probe in action

So here is a example program using Port 1 Pin 29 which is in the lower right hand of the ARM stamp. Above shows using a 1/2 watt resistor as a probe which accomplishes 2 things, a nice stiff wire for probing and a little additional protection for the TEST_INPUT. Most of the boards I am using this on have a common ground through the PC USB connections. But for cases where that is not the case, a GND pin can be added to the ARM stamp and would allow a clip lead to create a common GND.

More details and source at the forum.

Next Post Previous Post