For fifteen years I used my Radio Shack 22-168A digital multimeter as my go-to meter. A couple of years ago I bought a Fluke 115. Not because the RS meter lacked a measurement, but because I wanted a backlit screen. Here’s the crazy thing though in 20 years of multimeter development, there hasn’t been much innovation. Well outside of maybe auto-ranging.
All three meters I have, plus the Virtual Bench I reviewed about a year ago all continue to have the same limitation: they can only perform one measurement at a time. That’s one feature that makes my latest meter, the Mooshimeter, unique. It can measure both voltage and current at the same time. Oh, and it doesn’t have a screen.
A DMM, or multimeter, is the go-to instrument for debugging most circuits. You probably already have at least one DMM on your bench for this reason. Me? I have three. But that’s a different story. Let’s talk about a Logic Analyzer.
Digital signals represent two states: on (usually “1”) and off (usually “0”). A multimeter (DMM) may be of limited value for these signals. When using the DC voltage measurement, you can see “something” is happening, but not exactly what that “something” is. For example on a PWM pin, you’ll see the RMS Voltage change as you modify the duty cycle. However, you can not see if the signal is “ringing” when turning on and off.
For debugging digital signals, a popular option is to use a Logic Analyzer. If you are not familiar with a logic analyzer, or you are not sure if you need one, this tutorial should help.
First I’ll give a simple overview of what a Logic Analyzer does, some considerations when to use one, and then give some terms to know when looking at them.
Recently I picked up a device called Logic from Saleae. It’s a 4-channel USB-based logic analyzer. While learning how the simple, but effective, UI works I ran some timing benchmarks on my Arduino Uno. The subject? digitalWrite(). I wanted to know how fastdigitalWrite() could turn on two (or more) pins.
Almost all Arduino users start out with the simple “blink” sketch. Turn pin 13 ON, delay, turn it OFF, and delay again. The heart of this version of “Hello World!” is the digitalWrite() function. Many Arduino users never even think about all of the stuff this single function call hides.