USB-to-FPGA Communications: A Case Study of the ChipWhisperer-Lite

Sending data from a computer to an FPGA is often required. This might be FPGA configuration data, register settings, or streaming data. An easy solution is to use a USB-connected microcontroller instead of a dedicated interface chip, which allows you to offload certain tasks into the microcontroller.

In Circuit Cellar 299 (June 2015), Colin O’Flynn writes:

Often your FPGA-based project will require computer communication and some housekeeping tasks. A popular solution is the use of a dedicated USB interface chip, and a soft-core processor in the FPGA for housekeeping tasks.

For an open-source hardware project I recently launched, I decided to use an external USB microcontroller instead of a dedicated interface chip. I suspect you’ll find a lot of useful design tidbits you can use for yourself—and, because it’s open source, getting details of my designs doesn’t involve industrial espionage!

The design is called the ChipWhisperer-Lite (see Photo 1). This device is a training aid for learning about side-channel power analysis of cryptographic implementations. Side-channel power analysis uses measurements of small power variations during execution of the cryptographic algorithms to break the implementation of the algorithm.

Photo 1: This shows the ChipWhisperer-Lite, which contains a Xilinx Spartan 6 LX9 FPGA and Atmel SAM3U2C microcontroller. The remaining circuitry involves the power supplies, ADC, analog processing, and a development device which the user programs with some cryptographic algorithm they are analyzing.

Photo 1: This shows the ChipWhisperer-Lite, which contains a Xilinx Spartan 6 LX9 FPGA and Atmel SAM3U2C microcontroller. The remaining circuitry involves the power supplies, ADC, analog processing, and a development device which the user programs with some cryptographic algorithm they are analyzing.

In a previous article, “Build a SoC Over Lunch” (Circuit Cellar 289, 2014), I made the case for using a soft-core processing in an FPGA. In this article I’ll play the devil’s advocate by arguing that using an external microcontroller is a better choice. Of course the truth lies somewhere in between: in this example, the requirement of having a high-speed USB interface makes an external microcontroller more cost-effective, but this won’t always be the case.

This article assumes you require computer communication as part of your design. There are many options for this. The easiest from a hardware perspective is to use a USB-Serial converter, and many projects use such a system. The downside is a fairly slow interface, and the requirement of designing a serial protocol.

A more advanced option is to use a USB adapter with a parallel interface, such as the FTDI FT2232H. These can achieve very high-speed data rates—basically up to the limit of the USB 2.0 interface. The downside of these options is that it still requires some protocol implemented on your FPGA for many applications, and it has limited extra features (such as if you need housekeeping tasks).

The solution I came to is the use of a USB microcontroller. They are widely available from most vendors with USB 2.0 high-speed (full 480 Mbps data rate) interfaces, and allow you to perform not only the USB interface, but the various housekeeping tasks that your system will require. The USB microcontroller will also likely be around the same price (or possibly cheaper) than the equivalent specialized interface chip.

When selecting a microcontroller, I recommend finding one with an external memory bus interface. This external memory bus is normally designed to allow you to map devices such as SRAM or DRAM into the memory space of the microcontroller. In our case we’ll actually be mapping FPGA registers into the microcontroller memory space, which means we don’t need any protocol for communication with the FPGA.


Figure 1: This figure shows the basic connections used for memory-mapping the FPGA into the microcontroller memory space. Depending on your requirements, you can add some additional custom lines, such as a flag to indicate different FPGA register banks to use, as only a 9-bit address bus is used in this example.

I selected an Atmel SAM3U2C microcontroller, which has a USB 2.0 high-speed interface. This microcontroller is low-cost and available in TQFP package, which is convenient if you plan on hand assembling prototype boards. The connections between the FPGA and microcontroller are shown in Figure 1.

On the FPGA, it is easy to map this data bus into registers. This means that to configure some feature in the FPGA, you can just directly write into a register. Or if you are transferring data, you can read from or write to a block-RAM (BRAM) implemented in the FPGA.

Check out Colin’s ChipWhisperer-Lite KickStarter Video:

New USB3.0 Smart Hub Family

Microchip Technology recently announced  the USB5734/44, a USB3.0 Smart Hub family that enables host and device port swapping, I/O bridging, and other serial communication interfaces. The USB5734 and USB5744 devices feature an integrated microcontroller that creates new functionality for USB hubs while lowering overall BOM costs and reducing software complexity.MicrochipUSB5734

The new USB3.0 Smart hubs enable an upstream host controller to communicate to numerous types of external peripherals beyond the USB connection through direct bridging from USB to I2C, SPI, UART, and GPIO interfaces. This eliminates the need for an additional external microcontroller, while providing improved control from the USB host hardware.

Microchip’s FlexConnect technology enables the USB5734 Smart Hub to dynamically swap between a USB host and a USB device through hardware or software system commands giving the new USB host access to downstream resources. The FlexConnect technology can also switch common downstream resources between two different USB hosts. Incorporating FlexConnect into a system simplifies the overall software requirements of the primary host, as class drivers and application software stay local to the Device-turned-Host.

Available 56-pin, 7 x 7 mm package, the USB5744 is the industry’s smallest USB3.0 Hub for applications where board space is important. You can use the USB5734 and USB5744 USB3.0 controller hubs for a variety of applications (e.g., computing, embedded, medical, industrial, and networking markets).

The USB5734 and USB5744 are supported by Microchip’s $399 USB 3.0 Controller Hub Evaluation Board (EVB-USB5734) and $299 USB 3.0 Small Form Factor Controller Hub Evaluation Board (EVB-USB5744). The former includes mezzanine cards that can be used as preset application configurations for easy testing and development of a USB5734 system.

The USB5734 is available in 64-pin QFN (9 × 9 mm) packages starting at $4.20 each in 10,000-unit quantities. The USB5744 is available in 56-pin QFN (7 × 7 mm) packages starting at $3.75 each in 10,000-unit quantities.

Source: Microchip Technology

Happy Gecko MCU Family Simplifies USB Connectivity for IoT Apps

Silicon Labs recently introduced new energy-friendly USB-enabled microcontrollers (MCUs). Part of its EFM32 32-bit MCU portfolio, the new Happy Gecko MCUs are designed to deliver the lowest USB power drain in the industry, enabling longer battery life and energy-harvesting applications. Based on the ARM Cortex-M0+ core and low-energy peripherals, the Happy Gecko family simplifies USB connectivity for a wide range of Internet of Things (IoT) applications including smart metering, building automation, alarm and security systems, smart accessories, wearable devices, and more.SiliconLabsEFM32

Silicon Labs developed the Happy Gecko family to address the rising demand for cost-effective, low-power USB connectivity solutions. With more than 3 billion USB-enabled devices shipping each year, USB is the fastest growing interface for consumer applications and is also gaining significant traction in industrial automation. In today’s IoT world, developers have discovered that adding USB interfaces to portable, battery-powered connected devices can double the application current consumption. Silicon Labs’ Happy Gecko MCUs provide an ideal energy-friendly USB connectivity solution for these power-sensitive IoT applications.

Happy Gecko USB MCUs feature an advanced energy management system with five energy modes enabling applications to remain in an energy-optimal state by spending as little time as possible in active mode. In deep-sleep mode, Happy Gecko MCUs have an industry-leading 0.9-μA standby current consumption (with a 32.768-kHz RTC, RAM/CPU state retention, brown-out detector and power-on-reset circuitry active). Active-mode power consumption drops down to 130 µA/MHz at 24 MHz with real-world code (prime number algorithm). The USB MCUs further reduce power consumption with a 2-µs wakeup time from Standby mode.

Like all EFM32 MCUs, the Happy Gecko family includes the Peripheral Reflex System (PRS) feature, which greatly enhances overall energy efficiency. The six-channel PRS monitors complex system-level events and allows different MCU peripherals to communicate autonomously with each other without CPU intervention. The PRS watches for specific events to occur before waking the CPU, thereby keeping the Cortex-M0+ core in an energy-saving standby mode as long as possible, reducing system power consumption and extending battery life.

Happy Gecko MCUs feature many of the same low-energy precision analog peripherals included in other popular EFM32 devices. These low-energy peripherals include an analog comparator, supply voltage comparator, on-chip temperature sensor, programmable current digital-to-analog converter (IDAC), and a 12-bit analog-to-digital converter (ADC) with 350 μA current consumption at a 1 MHz sample rate. On-chip AES encryption enables the secure deployment of wireless connectivity for IoT applications such as smart meters and wireless sensor networks.

The Happy Gecko family’s exceptional single-die integration enables developers to reduce component count and bill-of-materials (BOM) cost. While typical USB connectivity alternatives require external components such as crystals and regulators, the highly integrated Happy Gecko MCUs eliminate nearly all of these discretes with a crystal-less architecture featuring a full-speed USB PHY, an on-chip regulator and resistors. Happy Gecko MCUs are available in a choice of space-saving QFN, QFP and chip-scale package (CSP) options small enough for use in USB connectors and thin-form-factor wearable designs.

The Happy Gecko family is supported by Silicon Labs’ Simplicity Studio development platform, which helps developers simplify low-energy design. The Simplicity Energy Profiler enables real-time energy profiling and debugging of code. The Simplicity Battery Estimator calculates expected battery life based on an application profile, energy modes and peripherals in use. The Simplicity Configurator provides a visual interface for MCU pin configuration, automatically generating initialization code. Code developed for other EFM32 MCUs can be reused with Happy Gecko applications. Developers can download Simplicity Studio and access Silicon Labs’ USB source code and software examples at no charge at

To help developers move rapidly from design idea to final product, the Happy Gecko family is supported by the ARM mbed ecosystem, which includes new power management APIs developed by Silicon Labs and ARM. These low-power mbed APIs are designed with low-energy application scenarios in mind, enabling rapid prototyping for energy-constrained IoT designs. ARM mbed APIs running on EFM32 MCUs automatically enable the optimal sleep mode based on the MCU peripherals in use, dramatically reducing system-level energy consumption. The Happy Gecko starter kit supports ARM mbed right out of the box. Silicon Labs has also launched mbed API support for Leopard, Giant, Wonder and Zero Gecko MCUs.  For additional ARM mbed information including access to mbed software, example code, services and the mbed community, visit

The Happy Gecko family includes 20 MCU devices providing an array of memory, package and peripheral options, as well as pin and software compatibility with Silicon Labs’s entire EFM32 MCU portfolio. Samples and production quantities of Happy Gecko MCUs are available now in 24-pin and 32-pin QFN, 48-pin QFP and 3 mm × 2.9 mm CSP packages. Happy Gecko MCU pricing in 10,000-unit quantities begins at $0.83. The Happy Gecko SLSTK3400A starter kit costs $29.

Source: Silicon Labs

New USB Controlled Microwave and Millimeter Wave Components

Pasternack has released a new line of USB-controlled microwave and millimeter wave components, which includes amplifiers, attenuators, and PIN diode switches. The new components are controlled and powered by a convenient USB 2.0 port with driverless installation. An external power supply isn’t required.USB-Controlled-RF-Components-SQ

The attenuators and PIN diode switches require an easy-to-use downloadable software program which interfaces with any Windows computer. The company is releasing two models each of the amplifiers, switches and attenuators that cover extremely wide frequency bands up to 40 GHz. The modules are 50-Ω hybrid MIC designs that do not require any external matching components.

Pasternack’s new USB controlled amplifiers offer typical performance of 12 dB gain, 10-dBm P1dB, a 4.5-dB noise figure and operate over a 50 MHz to 18 GHz band or 50 MHz to 40 GHz band. The attenuators offer typical performance of 30 dB attenuation, 5 to 8 dB of insertion loss, a 1-dB step size and are available in two programmable models that cover 100 MHz to 18 GHz and 100 MHz to 40 GHz. Lastly, the SPDT switches offer typical performance 3 to 5 dB of insertion loss, 65 to 70 dB isolation, a 6-µs switching speed and are available in two models that cover 500 MHz to 18 GHz and 500 MHz to 40 GHz. All models operate over a broad temperature range of –40°C to 85°C and depending on the frequency, are available with either female SMA or 2.92-mm connectors.

Source: Pasternack


USB-230 Series: New Low-Cost 16-Bit DAQ

Measurement Computing Corporation recently announced the release of two, 16-bit, multifunction USB DAQ devices with sample rates up to 100 ksps.

Source: Measurement Computing

Source: Measurement Computing

The USB-230 Series are the lowest priced 16-bit multifunction USB devices available from MCC. They feature eight single-ended/four differential analog inputs, eight digital I/O, one counter input, and two, 16-bit analog outputs. Removable screw-terminal connectors make signal connections easy.

The USB-231 costs $249 and has a 50 ksps sample rate.  The USB-234 offers a 100 ksps sample rate and is available for $424.

Included software options for the USB-230 Series include out-of-the-box TracerDAQ for quick-and-easy logging and displaying of data, along with comprehensive support for C, C++, C#, Visual Basic, and Visual Basic .NET. Drivers are also included for DASYLab and NI LabVIEW.

Source: Measurement Computing

Arduino USB Host Shield

The Arduino USB Host Shield allows you to connect a USB device to your Arduino board. The Arduino USB Host Shield is based on the MAX3421E, which is a USB peripheral/host controller containing the digital logic and analog circuitry necessary to implement a full-speed USB peripheral or a full-/low-speed host compliant to USB specification rev 2.0.ArduinoHostshield

The shield is TinkerKit compatible, which means you can quickly create projects by plugging TinkerKit modules onto the board. The following device classes are supported by the shield:

  • HID devices: keyboards, mice, joysticks, etc.
  • Game controllers: Sony PS3, Nintendo Wii, Xbox360
  • USB to serial converters: FTDI, PL-2303, ACM, as well as certain cell phones and GPS receivers
  • ADK-capable Android phones and tables
  • Digital cameras: Canon EOS, Powershot, Nikon DSLRs and P&S, as well as generic PTP
  • Mass storage devices: USB sticks, memory card readers, external hard drives, etc.
  • Bluetooth dongles

For information on using the shield with the Android OS, refer to Google’s ADK documentation. Arduino communicates with the MAX3421E using the SPI bus (through the ICSP header). This is on digital pins 10, 11, 12, and 13 on the Uno and pins 10, 50, 51, and 52 on the Mega. On both boards, pin 10 is used to select the MAX3421E.

[Source: Arduino website via Elektor]

July Issue Offers Data-Gathering Designs and More

The concept of the wireless body-area network (WBAN), a network of wireless wearable computing devices, holds great promise in health-care applications.

Such a network could integrate implanted or wearable sensors that provide continuous mobile health (mHealth) monitoring of a person’s most important “vitals”—from calorie intake to step count, insulin to oxygen levels, and heart rate to blood pressure. It could also provide real-time updates to medical records through the Internet and alert rescue or health-care workers to emergencies such as heart failures or seizures.

Data Gathering DesignsConceivably, the WBAN would need some sort of controller, a wearable computational “hub” that would track the data being collected by all the sensors, limit and authorize access to that information, and securely transmit it to other devices or medical providers.

Circuit Cellar’s July issue (now available online for membership download or single-issue purchase)  features an essay by Clemson University researcher Vivian Genaro Motti, who discusses her participation in the federally funded Amulet project.

Amulet’s Clemson and Dartmouth College research team is prototyping pieces of “computational jewelry” that can serve as a body-area network’s mHealth hub while being discreetly worn as a bracelet or pendant. Motti’s essay elaborates on Amulet’s hardware and software architecture.

Motti isn’t the only one aware of the keen interest in WBANs and mHealth. In an interview in the July issue, Shiyan Hu, a professor whose expertise includes very-large-scale integration (VLSI), says that many of his students are exploring “portable or wearable electronics targeting health-care applications.”

This bracelet-style Amulet developer prototype has an easily accessible board.

This bracelet-style Amulet developer prototype has an easily accessible board.

Today’s mHealth market is evident in the variety of health and fitness apps available for your smartphone. But the most sophisticated mHealth technologies are not yet accessible to embedded electronics enthusiasts. (However, Amulet has created a developer prototype with an easily accessible board for tests.)

But market demand tends to increase access to new technologies. A BCC Research report predicts the mHealth market, which hit $1.5 billion in 2012, will increase to $21.5 billion by 2018. Evolving smartphones, better wireless coverage, and demands for remote patient monitoring are fueling the growth. So you can anticipate more designers and developers will be exploring this area of wearable electronics.

In addition to giving you a glimpse of technology on the horizon, the July issue provides our staple of interesting projects and DIY tips you can adapt at your own workbench. For example, this issue includes articles about microcontroller-based strobe photography; a thermal monitoring system using ANT+ wireless technology; a home solar-power setup; and reconfiguring and serial backpacking to enhance LCD user interfaces.

We’re also improving on an “old” idea. Some readers may recall contributor Tom Struzik’s 2010 article about his design for a Bluetooth audio adapter for his car (“Wireless Data Exchange: Build a 2,700-lb. Bluetooth Headset,” Circuit Cellar 240).

In the July issue, Struzik writes about how he solved one problem with his design: how to implement a power supply to keep the phone and the Bluetooth adapter charged.

“To run both, I needed a clean, quiet, 5-V USB-compatible power supply,” Struzik says. “It needed to be capable of providing almost 2 A of peak current, most of which would be used for the smartphone. In addition, having an in-car, high-current USB power supply would be good for charging other devices (e.g., an iPhone or iPad).”

Struzik’s July article describes how he built a 5-V/2-A automotive isolated switching power supply. The first step was using a SPICE program to model the power supply before constructing and testing an actual circuit. Struzik provides something extra with his article: a video tutorial explaining how to use Linear Technology’s LTspice simulator program for switching design. It may help you design your own circuit.

This is Tom Struzik's initial test circuit board, post hacking. A Zener diode is shown in the upper right, a multi-turn trimmer for feedback resistor is in the center, a snubber capacitor and “stacked” surface-mount design (SMD) resistors are on the center left, USB D+/D– voltage adjust trimmers are on top center, and a “test point” is shown in the far lower left. If you’re looking for the 5-V low dropout (LDO) regulator, it’s on the underside of the board in this design.

This is Tom Struzik’s initial test circuit board, post hacking. A Zener diode is shown in the upper right, a multi-turn trimmer for feedback resistor is in the center, a snubber capacitor and “stacked” surface-mount design (SMD) resistors are on the center left, USB D+/D– voltage adjust trimmers are on top center, and a “test point” is shown in the far lower left. If you’re looking for the 5-V low dropout (LDO) regulator, it’s on the underside of the board in this design.


Engineering Consultant and Roboticist

Eric Forkosh starting building his first robot when he was a teenager and has been designing ever since. This NYC-based electrical engineer’s projects include everything from dancing robots to remote monitoring devices to cellular module boards to analog signals—Nan Price, Associate Editor

NAN: Tell us about your start-up company, Narobo.


Eric Forkosh

ERIC: Narobo is essentially the company through which I do all my consulting work. I’ve built everything from dancing robots to cellular field equipment. Most recently I’ve been working with some farmers in the Midwest on remote monitoring. We monitor a lot of different things remotely, and I’ve helped develop an online portal and an app. The most interesting feature of our system is that we have a custom tablet rig that can interface directly to the electronics over just the USB connection. We use Google’s Android software development kit to pull that off.

ERIC: The DroneCell was my second official product released, the first being the Roboduino. The Roboduino was relatively simple; it was just a modified Arduino that made building robots easy. We used to sell it online at for a little while, and there was always a trickle of sales, but it was never a huge success. I still get a kick out of seeing Roboduino in projects online, it’s always nice to see people appreciating my work.


The DroneCell is a cellular module board that communicates with devices with TTL UARTs.

The DroneCell is the other product of mine, and my personal favorite. It’s a cellular module board geared toward the hobbyist. A few years ago, if you wanted to add cellular functionality to your system you had to do a custom PCB for it. You had to deal with really low voltage levels, very high peak power draws, and hard-to-read pins. DroneCell solved the problem and made it very easy to interface to hobbyist systems such as the Arduino. Putting on proper power regulation was easy, but my biggest design challenge was how to handle the very low voltage levels. In the end, I put together a very clever voltage shifter that worked with 3V3 and 5 V, with some calculated diodes and resistors.

NAN: Tell us about your first project. Where were you at the time and what did you learn from the experience?


Eric’s Butler robot was his first electronics project. He started building it when he was still in high school.

ERIC: The Butler robot was my first real electronics project. I started building it in ninth grade, and for a really stupid reason. I just wanted to build a personal robot, like on TV. My first version of the Butler robot was cobbled together using an old laptop, a USB-to-I/O converter called Phidgets, and old wheelchair motors I bought on eBay.

I didn’t use anything fancy for this robot, all the software was written in Visual Basic and ran on Windows XP. For motor controllers, I used some old DPDT automotive relays I had lying around. They did the job but obviously I wasn’t able to PWM them for speed control.

My second version came about two years later, and was built with the intention of winning the Instructables Robot contest. I didn’t win first place, but my tutorial “How to Build a Butler Robot” placed in the top 10 and was mentioned in The Instructables Book in print. This version was a cleaner version of everything I had done before. I built a sleek black robot body (at least it was sleek back then!) and fabricated an upside-down bowl-shaped head that housed the webcam. The electronics were basically the same. The main new features were a basic robot arm that poured you a drink (two servos and a large DC motor) and a built-in mini fridge. I also got voice command to work really well by hooking up my Visual Basic software with Dragon’s speech-to-text converter.

The Butler robot was a great project and I learned a lot about electronics and software from doing it. If I were to build a Butler robot right now, I’d do it completely differently. But I think it was an important to my engineering career and it taught me that anything is possible with some hacking and hard work.

At the same time as I was doing my Butler robot (probably around 2008), I lucked out and was hired by an entertainer in Hong Kong. He saw my Butler robot online and hired me to build him a dancing robot that was synced to music. We solved the issue of syncing to music by putting dual-tone multi-frequency (DTMF) tones on the left channel audio and music on the right channel. The right channel went to speakers and the left channel went to a decoder that translated DTMF tone sequences to robot movement. This was good because all the data and dance moves were part of the same audio file. All we had to do was prepare special audio files and the robot would work with any music player (e.g., iPod, laptop, CD, etc.). The robot is used in shows to this day, and my performer client even hired a professional cartoon voice actor to give the robot a personality.

NAN: You were an adjunct professor at the Cooper Union for the Advancement of Science and Art in New York City. What types of courses did you teach and what did you enjoy most about teaching?

ERIC: I will be entering my senior year at Cooper Union in the Fall 2014. Two years ago, I took a year off from school to pursue my work. This past year I completed my junior year. I taught a semester of “Microcontroller Projects” at Cooper Union during my year off from being a student. We built a lot of really great projects using Arduino. One final project that really impressed me was a small robot car that parallel parked itself. Another project was a family of spider robots that were remotely controlled and could shrink up into a ball.

Cooper Union is filled with really bright students and teaching exposed me to the different thought processes people have when trying to build a solution. I think teaching helped me grow as a person and helped me understand that in engineering—and possibly in life—there is no one right answer. There are different paths to the same destination. I really enjoyed teaching because it made me evaluate my understanding about electronics, software, and robotics. It forced me to make sure I really understood what was going on in intricate detail.

NAN: You have competed in robotics competitions including RoboCup in Austria. Tell us about these experiences—what types of robots did you build for the competitions?


Eric worked with his high school’s robotics team to design this robot for a RoboCup competition.

ERIC: In high school I was the robotics team captain and we built a line-following robot and a soccer robot to compete in RoboCup Junior in the US. We won first place in the RoboCup Junior Northeast Regional and were invited to compete in Austria for the International RoboCup Junior games. So we traveled as a team to Austria to compete and we got to see a lot of interesting projects and many other soccer teams compete. I remember the Iranian RoboCup Junior team had a crazy robot that competed against us; it was built out of steel and looked like a miniature tank.

My best memory from Austria was when our robot broke and I had to fix it. Our robot was omnidirectional with four omni wheels in each corner that let it drive at any angle or orientation it wanted. It could zigzag across the field without a problem. At our first match, I put the robot down on the little soccer field to compete… and it wouldn’t move. During transportation, one of the motors broke. Disappointed, we had to forfeit that match. But I didn’t give up. I removed one of the wheels and rewrote the code to operate with only three motors functional. Again we tried to compete, and again another motor appeared to be broken. I removed yet another wheel and stuck a bottle cap as a caster wheel on the back. I rewrote the code, which was running on a little Microchip Technology PIC microcontroller, and programmed the robot to operate with only two wheels working. The crippled robot put up a good fight, but unfortunately it wasn’t enough. I think we scored one goal total, and that was when the robot had just two wheels working.

After the competition, during an interview with the judges, we had a laugh comparing our disabled robot to the videos we took back home with the robot scoring goal after goal. I learned from that incident to always be prepared for the worst, do your best, and sometimes stuff just happens. I’m happy I tried and did my best to fix it, I have no regrets. I have a some of the gears from that robot at home on display as a reminder to always prepare for emergencies and to always try my best.

NAN: What was the last electronics-design related product you purchased and what type of project did you use it with?

ERIC: The last product would be an op-amp I bought, probably the 411 chip. For a current project, I had to generate a –5-to-5-V analog signal from a microcontroller. My temporary solution was to RC filter the PWM output from the op-amp and then use an amplifier with a
gain of 2 and a 2.5-V “virtual ground.” The result is that 2.5 V is the new “zero” voltage. You can achieve –5 V by giving the op-amp 0 V, a –2.5-V difference that is amplified by 2 to yield 5 V. Similarly, 5 V is a 2.5-V difference from the virtual ground, amplified by 2 it provides a 5-V output.

NAN: What do you consider to be the “next big thing” in the industry?

ERIC: I think the next big thing will be personalized health care via smartphones. There are already some insulin pumps and heart monitors that communicate with special smartphone apps via Bluetooth. I think that’s excellent. We have all this computing power in our pockets, we should put it to good use. It would be nice to see these apps educating smartphone users—the patients themselves— about their current health condition. It might inspire patients/users to live healthier lifestyles and take care of themselves. I don’t think the FDA is completely there yet, but I’m excited to see what the future will bring. Remember, the future is what you build it to be.

Flexible I/O Expansion for Rugged Applications

WynSystemsThe SBC35-CC405 series of multi-core embedded PCs includes on-board USB, gigabit Ethernet, and serial ports. These industrial computers are designed for rugged embedded applications requiring extended temperature operation and long-term availability.

The SBC35-CC405 series features the latest generation Intel Atom E3800 family of processors in an industry-standard 3.5” single-board computer (SBC) format COM Express carrier. A Type 6 COM Express module supporting a quad-, dual-, or single-core processor is used to integrate the computer. For networking and communications, the SBC35-CC405 includes two Intel I210 gigabit Ethernet controllers with IEEE 1588 timestamping and 10-/100-/1,000-Mbps multispeed operation. Four Type-A connectors support three USB 2.0 channels and one high-speed USB 3.0 channel. Two serial ports support RS-232/-422/-485 interface levels with clock options up to 20 Mbps in the RS-422/-485 mode and up to 1 Mbps in the RS-232 mode.

The SBC35-CC405 series also includes two MiniPCIe connectors and one IO60 connector to enable additional I/O expansion. Both MiniPCIe connectors support half-length and full-length cards with screw-down mounting for improved shock and vibration durability. One MiniPCIe connector also supports bootable mSATA solid-state disks while the other connector includes USB. The IO60 connector provides access to the I2C, SPI, PWM, and UART signals enabling a simple interface to sensors, data acquisition, and other low-speed I/O devices.

The SBC35-CC405 runs over a 10-to-50-VDC input power range and operates at temperatures from –40°C to 85°C. Enclosures, power supplies, and configuration services are also available.

Linux, Windows, and other x86 OSes can be booted from the CFast, mSATA, SATA, or USB interfaces, providing flexible data storage options. WinSystems provides drivers for Linux and Windows 7/8 as well as preconfigured embedded OSes.
The single-core SBC35-CC405 costs $499.

Winsystems, Inc.

Stand-Alone, 8-Channel Event, State, and Count Data Logger

DATAQThe DI-160 is a stand-alone event, state, and count data logger that features four programmable measurement modes. The data logger enables you to determine when events occur, the total number of events, and the period of time in between events. It can count parts by monitoring a proximity sensor’s pulse output, or determine a machine’s downtime by monitoring AC power.

The DI-160 includes eight channels. Four ±300-VDC/peak AC isolated channels can accommodate high-level DC voltage signals, pulse inputs up 2 kHz, or AC line voltage. Four ±30-VDC/peak AC non-isolated channels (pulled high) enable you to monitor lower-level DC voltages, TTL-level, signals, or switch closures.

You can use DATAQ’s Event Recorder set-up software, which is included with the data logger, to enable/disable channels, select measurement modes on a channel-by-channel basis, and choose one of 21 sample intervals, ranging from 1 s to 24 h. Data is stored to a removable SD memory card in CSV format, enabling up to 500 days of continuous recording and easy viewing in Microsoft Excel.

The DI-160’s AC channels provide channel-to-channel and input-to-output isolation up to 500 VDC (±250-V peak AC) and have a 4-V trigger threshold. The low-voltage channels are protected up to ±30 VDC/peak AC and trigger at 2.5 V.

A built-in rechargeable battery acts as a “bridge” when disconnecting the data logger from a PC and connecting it to the USB power supply. Three LEDs indicate when the DI-160 is actively acquiring data, when the unit is connected via USB to a PC (or the included AC power supply), and the battery’s charge state. A push button enables you to start and stop recording to the SD memory card.

The DI-160’s four selectable measurement modes. State mode determines an event’s duration. Event mode detects a single change of state (within a sample interval). High-Speed (HS) Counter mode yields the total number of state changes within a sample interval. AC Counter mode counts the number of times AC power turns on/off within a sample interval.

The DI-160 costs $299 and includes a mini screwdriver a 2-GB SD memory card, an AC power supply, and a mini-USB cable. The DATAQ Event Recorder software is available for free download.

DATAQ Instruments, Inc.

Gigabit Ethernet Designs

WurthWurth Electronics Midcom and Lantiq recently announced The Evaluation Kit, a jointly developed demonstration kit. The kit enables users to easily add Ethernet hardware to an application or device and provides all necessary information to understand the demands of an Ethernet hardware design.

The Evaluation Kit includes an easy-to-use 1-Gbps demonstration board. The (54-mm × 92-mm) credit card-sized demonstration board is powered by USB. The board plugs into PCs and provides up to 1-Gbps bidirectional data rates.

The Evaluation Kit costs approximately $175.

Wurth Electronics Midcom, Inc.


Evaluating Oscilloscopes (Part 4)

In this final installment of my four-part mini-series about selecting an oscilloscope, I’ll look at triggering, waveform generators, and clock synchronization, and I’ll wrap up with a series summary.

My previous posts have included Part 1, which discusses probes and physical characteristics of stand-alone vs. PC-based oscilloscopes; Part 2, which examines core specifications such as bandwidth, sample rate, and ADC resolution; and Part 3, which focuses on software. My posts are more a “collection of notes” based on my own research rather than a completely thorough guide. But I hope they are useful and cover some points you might not have otherwise considered before choosing an oscilloscope.

This is a screenshot from Colin O'Flynn's YouTube video "Using PicoScope AWG for Testing Serial Data Limits."

This is a screenshot from Colin O’Flynn’s YouTube video “Using PicoScope AWG for Testing Serial Data Limits.”

Topic 1: Triggering Methods
Triggering your oscilloscope properly can make a huge difference in being able to capture useful waveforms. The most basic triggering method is just a “rising” or “falling” edge, which almost everyone is (or should be) familiar with.

Whether you need a more advanced trigger method will depend greatly on your usage scenario and a bit on other details of your oscilloscope. If you have a very long buffer length or ability to rapid-fire record a number of waveforms, you might be able to live with a simple trigger since you can easily throw away data that isn’t what you are looking for. If your oscilloscope has a more limited buffer length, you’ll need to trigger on the exact moment of interest.

Before I detail some of the other methods, I want to mention that you can sometimes use external instruments for triggering. For example, you might have a logic analyzer with an extremely advanced triggering mechanism.  If that logic analyzer has a “trigger out,” you can trigger the oscilloscope from your logic analyzer.

On to the trigger methods! There are a number of them related to finding “odd” pulses: for example, finding glitches shorter or wider than some length or finding a pulse that is lower than the regular height (called a “runt pulse”). By knowing your scope triggers and having a bit of creativity, you can perform some more advanced troubleshooting. For example, when troubleshooting an embedded microcontroller, you can have it toggle an I/O pin when a task runs. Using a trigger to detect a “pulse dropout,” you can trigger your oscilloscope when the system crashes—thus trying to see if the problem is a power supply glitch, for example.

If you are dealing with digital systems, be on the lookout for triggers that can function on serial protocols. For example, the Rigol Technologies stand-alone units have this ability, although you’ll also need an add-on to decode the protocols! In fact, most of the serious stand-alone oscilloscopes seem to have this ability (e.g., those from Agilent, Tektronix, and Teledyne LeCroy); you may just need to pay extra to enable it.

Topic 2: External Trigger Input
Most oscilloscopes also have an “external trigger input.”  This external input doesn’t display on the screen but can be used for triggering. Specifically, this means your trigger channel doesn’t count against your “ADC channels.” So if you need the full sample rate on one channel but want to trigger on another, you can use the “ext in” as the trigger.
Oscilloscopes that include this feature on the front panel make it slightly easier to use; otherwise, you’re reaching around behind the instrument to find the trigger input.

Topic 3: Arbitrary Waveform Generator
This isn’t strictly an oscilloscope-related function, but since enough oscilloscopes include some sort of function generator it’s worth mentioning. This may be a standard “signal generator,” which can generate waveforms such as sine, square, triangle, etc. A more advanced feature, called an arbitrary waveform generator (AWG), enables you to generate any waveform you want.

I previously had a (now very old) TiePie engineering HS801 that included an AWG function. The control software made it easy to generate sine, square, triangle, and a few other waveforms. But the only method of generating an arbitrary waveform was to load a file you created in another application, which meant I almost never used the “arbitrary” portion of the AWG. The lesson here is that if you are going to invest in an AWG, make sure the software is reasonable to use.

The AWG may have a few different specifications; look for the maximum analog bandwidth along with the sample rate. Be careful of outlandish claims: a 200 MS/s digital to analog converter (DAC) could hypothetically have a 100-MHz analog bandwidth, but the signal would be almost useless. You could only generate some sort of sine wave at that frequency, which would probably be full of harmonics. Even if you generated a lower-frequency sine wave (e.g., 10 MHz), it would likely contain a fair amount of harmonics since the DAC’s output filter has a roll-off at such a high frequency.

Better systems will have a low-pass analog filter to reduce harmonics, with the DAC’s sample rate being several times higher than the output filter roll-off. The Pico Technology PicoScope 6403D oscilloscope I’m using can generate a 20-MHz signal but has a 200 MS/s sample rate on the DAC. Similarly, the TiePie engineering HS5-530 has a 30-MHz signal bandwidth, and similarly uses a 240 MS/s sample rate. A sample rate of around five to 10 times the analog bandwidth seems about standard.

Having the AWG integrated into the oscilloscope opens up a few useful features. When implementing a serial protocol decoder, you may want to know what happens if the baud rate is slightly off from the expected rate. You can quickly perform this test by recording a serial data packet on the oscilloscope, copying it to the AWG, and adjusting the AWG sample rate to slightly raise or lower the baud rate. I illustrate this in the following video.

Topic 4: Clock Synchronization

One final issue of interest: In certain applications, you may need to synchronize the sample rate to an external device. Oscilloscopes will often have two features for doing this. One will output a clock from the oscilloscope, the other will allow you to feed an external clock into the oscilloscope.

The obvious application is synchronizing a capture between multiple oscilloscopes. You can, however, use this for any application where you wish to use a synchronous capture methodology. For example, if you wish to use the oscilloscope as part of a software-defined radio (SDR), you may want to ensure the sampling happens synchronous to a recovered clock.

The input frequency of this clock is typically 10 MHz, although some devices enable you to select between several allowed frequencies. If the source of this clock is anything besides another instrument, you may have to do some clock conditioning to convert it into one of the valid clock source ranges.

Summary and Closing Comments
That’s it! Over the past four weeks I’ve tried to raise a number of issues to consider when selecting an oscilloscope. As previously mentioned, the examples were often PicoScope-heavy simply because it is the oscilloscope I own. But all the topics have been relevant to any other oscilloscope you may have.

You can check out my YouTube playlist dealing with oscilloscope selection and review.  Some topics might suggest further questions to ask.

I’ve probably overlooked a few issues, but I can’t cover every possible oscilloscope and option. When selecting a device, my final piece of advice is to download the user manual and study it carefully, especially for features you find most important. Although the datasheet may gloss over some details, the user manual will typically address the limitations you’ll run into, such as FFT length or the memory depths you can configure.

Author’s note: Every reasonable effort has been made to ensure example specifications are accurate. There may, however, be errors or omissions in this article. Please confirm all referenced specifications with the device vendor.

Evaluating Oscilloscopes (Part 3)

In Part 3 of my series on selecting an oscilloscope, I look at the software running the oscilloscope and details such as remote control, fast Fourier transform (FFT) features, digital decoding, and buffer types.

Two weeks ago, I covered the differences between PC-based and stand-alone oscilloscopes and discussed the physical probe characteristics. Last week I discussed the “core” specifications: analog bandwidth, sample rate, and analog-to-digital converter (ADC) resolution. Next week, I will look into a few remaining features such as external trigger and clock synchronization, and I will summarize all the material I’ve covered.

Topic 1: Memory Depth
The digital oscilloscope works by sampling an ADC and then stores these samples somewhere. Thus an important consideration will be how many samples it can actually store. This especially becomes apparent at higher sample rates—at 5 gigasamples per second (GS/s), for example, even 1 million samples (i.e., 1 megasample or 1 MS) means 200 µs of data. If you are looking at very low-cost oscilloscopes, be aware that many of them have very small buffers. Searching on eBay, you can find an oscilloscope such as the Hantek DSO5202P, which has a 1 GS/s sample rate and costs only $400. The record length is only 24 kilosamples (KS) however, which would be 24 µs of data. You can find even smaller buffers:  the Tektronix TDS2000C series has only a 2,500-sample (2.5 KS) buffer length. If you only want to look around the trigger signal, you can live with a small buffer. Unfortunately, when it comes to troubleshooting you rarely have a perfect trigger, and you may need to do a fair amount of “exploration.”  A small buffer means the somewhat frustrating experience of trying to capture the signal of interest within your tiny window of opportunity.

Even if the buffer space is advertised as being huge, you may not be able to easily access the entire space. The Pico Technology PicoScope PS6403D advertises a 1-GS buffer space, one of the largest available. With the PC-based software you can configure a number of parameters; however, it always seems to limit the sample buffer to about 500 MS.  I do admit it’s fairly impressive that this still works at the 5 GS/s sample rate, since that suggests a memory bandwidth of 40 Gb/s! Using the segmented buffer (discussed later in this article) enables use of the full sample memory, but it cannot record a full continuous 1 GS trace, which you might expect based on the sales pitch.

Topic 2: FFT Length
Oscilloscope advertisements often allude to their ability to perform in a “spectrum analyzer” mode. In reality, what the oscilloscope is doing is performing an FFT of the measured signal. One critical difference is that a spectrum analyzer typically has a “center frequency” and you are able to measure a certain bandwidth amount to either side of that center frequency. By sweeping the center frequency, you can get a graph of the power present in the frequency system over a very wide range.

Using the oscilloscope’s FFT mode, there is no such thing as the center frequency. Instead you are always measuring from 0 Hz up to some limit, which is usually user-adjustable. The limit is, at most, half the oscilloscope’s sample rate but may be further limited by the oscilloscope’s analog bandwidth. Now here is the trick—the oscilloscope will specify a certain “FFT length,” which is how many points are used in calculating the FFT. This will also define the number of “bins” (i.e., horizontal frequency resolution) in the output graph. Certain benchtop oscilloscopes may have very limited FFT lengths, such as those containing only 2,048 points.  This may seem fine for viewing the entire spectrum from 0–100 MHz. But what if you want to zoom in on the 95–98 MHz range? Since the oscilloscope is actually calculating the FFT from 0 Hz, it will have only ~60 points it can display in that range. It suddenly becomes apparent why you want very long FFT lengths—it allows you to zoom in and still obtain accurate results. You can set the oscilloscope sample rate down to zoom in on frequencies around 0 Hz. So, for example, if you want to accurately do some measurements at 1–10 kHz, it’s not a big issue since you can set a low enough sample rate so that the 2,048 points are distributed between 0–20 kHz or similar. And when you zoom in you’ve got lots of detail.

In addition to the improved horizontal detail, longer FFT lengths push down the noise floor.  If you do wish to use the oscilloscope for frequency analysis, having a long FFT length can be a huge asset. This is shown in Figure 1, which compares an FFT taken using a magnetic field probe of a microcontroller board. Here I’ve zoomed in on a portion of the spectrum, with the left FFT having 2,048 points, the right FFT having 131,072 points.

Figure 1: When zooming in on a portion of the fast Fourier transform (FFT), having a larger number of points for the original calculation becomes a huge asset. Also, notice the lower noise floor for the figure on the right, calculated with 131,072 points, compared to the 2,048 used for the figure on the left.

Figure 1: When zooming in on a portion of the fast Fourier transform (FFT), having a larger number of points for the original calculation becomes a huge asset. Also, notice the lower noise floor for the figure on the right, calculated with 131,072 points, compared to the 2,048 used for the figure on the left.

A note on selecting a unit: The very low-cost oscilloscopes with small data buffers will obviously use a very small FFT length. But specifications for some of the larger memory depth oscilloscopes, such as the Rigol Technologies DS2000, DS4000, and DS6000 models, show they use smaller FFT lengths.  These models use only 2,048 points, according to a document posted on Rigol’s website, despite their large memory (131 MS).  PC-based oscilloscopes seem to be the best, as they can perform the FFT on a powerful desktop PC, rather than requiring it be done in an embedded digital signal processor (DSP) or field-programmable gate array (FPGA). For example, the PicoScope 6403D allows the FFT length to be up to 1,048,576 points.

Topic 3: Segmented Buffer
A feature I consider almost a “must-have” is a segmented buffer. This means you can configure the oscilloscope to trigger on a certain event, and it will record a number of waveforms of a certain length. For glitches that occur only occasionally (which is, 90% of the time, why you are troubleshooting in the first place), this can speed up your ability to find details of what the system is doing during a glitch.

Figure 2 shows an example of the segmented buffer viewer on the PicoScope software, where the number of buffers can be configured up to 10,000. Similar features exist in the Rigol DS4000 and DS6000, which call each segment a “frame” and can record up to 200,000 frames! Once you have a number of segments/frames, you can either manually flip through looking for the glitch, or use features such as mask limit testing to highlight segments/frames that differ from the “usual.”

Figure 2

Figure 2: Segmented buffers allow you to capture a number of traces and then flip through them looking for some specific feature. Using mask-based testing will also speed this up, since you can quickly find “odd man out”-type waveforms.

Certain oscilloscopes might make the segmented buffer an add-on. For example, only certain Agilent Technologies 3000 X-Series models contain segmented buffers by default; others in that same family require you to purchase this feature for an extra $800! Of course, always review any promotional offers—Agilent has recently advertised that it will enable all features on that oscilloscope model for the price of a single option.

Topic 4: Remote Control/Streaming
One more advanced feature is controlling the oscilloscope from your computer. If you wish to use the oscilloscope in applications beyond electronics troubleshooting, you should seriously consider the features different oscilloscopes provide.

PC-based oscilloscopes tend to have a considerable advantage here, as they are typically designed to interface to the computer. It seems most PC-based oscilloscopes from popular suppliers come with nice application programming interfaces (APIs) for most languages: I’ve found examples in C, C#, C++, MATLAB, Python, LabVIEW, and Delphi for most PC-based oscilloscopes. Some of the “no-name” PC-based oscilloscopes you find on eBay do not have an API, so always check closely for your specific device.

Most of the stand-alone oscilloscopes also have a method of sending commands, typically using a standard such as the Virtual Instrument Software Architecture (VISA). However, I’ve found these stand-alone oscilloscopes seem to have a considerably slower interface compared to a PC-based oscilloscope. Presumably for the PC-based oscilloscope, this interface is critical to overall performance, whereas for the stand-alone it’s simply an “add-on” feature. This isn’t a sure thing, of course—for example, see the PC interface for the Teledyne LeCroy oscilloscope, as described in a company blog post. It looks to give you access to features similar to those of PC-based oscilloscopes (multiple windows, etc.).

Beyond just controlling the oscilloscope, another interesting feature is streaming mode. In streaming mode data is not downloaded to an internal buffer on the oscilloscope. Instead it streams directly over the PC interface (typically USB or Ethernet). This feature is considerably more complex to work with than simple PC-based control, as achieving fast streams via USB is not trivial. However, using streaming mode opens up many interesting features. For example, you could use your oscilloscope as part of a software defined radio (SDR). If you wish to use such a feature, be sure to carefully read the specification sheets for the streaming mode limitations.

Topic 5: Decoding Serial Protocols
Decoding of serial protocols is another useful feature. If you have a digital logic analyzer, it will almost certainly include the ability to decode serial protocols. But it can be helpful to have this feature in the oscilloscope as well. If you are chasing down an occasional parity error, you can use the oscilloscope’s analog display to see if the issue is simply a weak or noisy signal.

While most oscilloscopes seem to support this feature, many require you to pay for it. Typically PC-based oscilloscopes will include it for free, but stand-alone oscilloscopes require you to purchase it. For example, this feature costs $500 for the Rigol Technologies DS4000 series, $800 for the Agilent Technologies 3000X, and $1,100 for the Tektronix DPO/MSO3000 series. Depending on the vendor, it may include multiple protocols or only one. But if you wish to enable all available protocols, it could cost more than your oscilloscope! It would typically be cheaper to purchase a PC-based logic analyzer than it would be to buy the software module for your oscilloscope.

This is one of the major reasons I prefer PC-based oscilloscopes: There tends to be no additional cost for extra features! Without the decoding you can look at the signal and see if it “looks” noisy, but having the decoding built-in means you can easily point to the specific moment when the error occurs. I’ve got some examples of such serial decoding in my video below.

Topic 6: Software Features
I’ve already mentioned it a few times in passing, but you should always check to see what software features are actually included. You may be surprised to find out some features require payment—even some models adding the FFT or other “advanced math” features require payment of a substantial fee.

There is hope on the horizon for getting access to all features in stand-alone oscilloscopes at a reasonable cost. As I mentioned earlier, Agilent Technologies recently announced it would be providing access to all software features for the cost of one module in the X-2000, X-3000, and X-4000 series. Once this goes into effect, it means that it’s really just $500–$1,500 for decoding of all serial protocols and all math features, depending on your oscilloscope. They sell this as saving you up to $16,500. (Which to me just shows how insanely expensive all these software add-ons really are!) With luck, other vendors will follow suit, and perhaps even finally include these software options in the selling price.

If you’re looking at PC-based oscilloscopes, you’ll often be allowed to download the software and play with it, even if you don’t have an instrument. This can give you an idea of how “polished” the user interface is. Considering how long you’ll spend inside this user interface, it’s good to know about it!

Closing Comments
This week I covered a number of features revolving around the software running the oscilloscope. Next week I’ll be looking into a few remaining features such as external trigger and clock synchronization, which will round out this guide.

Author’s note: Every reasonable effort has been made to ensure example specifications are accurate. There may, however, be errors or omissions in this article. Please confirm all referenced specifications with the device vendor.

Evaluating Oscilloscopes (Part 2)

This is Part 2 of my mini-series on selecting an oscilloscope. Rather than a completely thorough guide, it’s more a “collection of notes” based on my own research. But I hope you find it useful, and it might cover a few areas you hadn’t considered.

Last week I mentioned the differences between PC-based and stand-alone oscilloscopes and discussed the physical probe’s characteristics. This week I’ll be discussing the “core” specifications: analog bandwidth, sample rate, and analog-to-digital converter (ADC) resolution.

Topic 1: Analog Bandwidth
Many useful articles online discuss the analog oscilloscope bandwidth, so I won’t dedicate too much time to it. Briefly, the analog bandwidth is typically measured as the “half-power” or -3 dB point, as shown in Figure 1. Half the power means 1/√2 of the voltage. Assume you put a 10-MHz, 1-V sine wave into your 100-MHz bandwidth oscilloscope. You expect to see a 1-V sine wave on the oscilloscope. As you increase the frequency of the sine wave, you would instead expect to see around 0.707 V when you pass a 100-MHz sine wave. If you want to see this in action, watch my video in which I sweep the input frequency to an oscilloscope through the -3 dB point.

Figure 1: The bandwidth refers to the "half-power" or -3 dB  point. If we drove a sine wave of constant amplitude and increasing frequency into the probe, the -3 dB point would be when the amplitude measured in the scope was 0.707 times the initial amplitude.

Figure 1: The bandwidth refers to the “half-power” or -3 dB point. If we drive a sine wave of constant amplitude and increasing frequency into the probe, the -3 dB point would be when the amplitude measured in the scope is 0.707 times the initial amplitude.

Unfortunately, you are likely to be measuring square waves (e.g., in digital systems) and not sine waves. Square waves contain high-frequency components well beyond the fundamental frequency of the wave. For this reason the “rule of thumb”  is to select an oscilloscope with five times the analog bandwidth of the highest–frequency digital signal you would be measuring. Thus, a 66-MHz clock would require a 330-MHz bandwidth oscilloscope.

If you are interested in more details about bandwidth selection, I encourage you to see one of the many excellent guides. Adafruit has a blog post “Why Oscilloscope Bandwidth Matters” that offers more information, along with links to guides from Agilent Technologies and Tektronix.

If you want to play around yourself, I’ve got a Python script that applies analog filtering to a square wave and plots the results, available here. Figure 2 shows an example of a 50-MHz square wave with 50-MHz, 100-MHz, 250-MHz, and 500-MHz analog bandwidth.

Figure 2: This shows sampling a 50-MHz square wave with 50, 100, 250, and 500-MHz of analog bandwidth.

Figure 2: This shows sampling a 50-MHz square wave with 50, 100, 250, and 500 MHz of analog bandwidth.

Topic 2: Sample Rate
Beyond the analog bandwidth, oscilloscopes also prominently advertise the sample rate. Typically, this is in MS/s (megasamples per second) or GS/s (gigasamples per second). The advertised rate is nearly always the maximum if using a single channel. If you are using both channels on a two-channel oscilloscope that advertises 1 GS/s, typically the maximum rate is actually 500 MS/s for both channels.

So what rate do you need? If you are familiar with the Nyquist criterion, you might simply think you should have a sample rate two times the analog bandwidth. Unfortunately, we tend to work in the time domain (e.g., looking at the oscilloscope screen) and not the frequency domain. So you can’t simply apply that idea. Instead, it’s useful to have a considerably higher sample rate compared to analog bandwidth, say, a five times higher sample rate. To illustrate why, see Figure 3. It shows a 25.3-MHz square wave, which I’ve sampled with an oscilloscope with 50-MHz analog bandwidth. As you would expect, the signal rounds off considerably. However, if I only sample it at 100 MS/s, at first sight the signal is almost unrecognizable! Compare that with the 500 MS/s sample rate, which more clearly looks like a square wave (but rounded off due to analog bandwidth limitation).

Again, these figures both come from my Python script, so they are based purely on “theoretical” limits of sample rate. You can play around with sample rate and bandwidth to get an idea of how a signal might look.

Figure 3

Figure 3: This shows sampling a 25.3-MHz square wave at 100 MS/s results in a signal that looks considerably different than you might expect! Sampling at 500 MS/s results in a much more “proper” looking wave.

Topic 3: Equivalent Time Sampling
Certain oscilloscopes have an equivalent time sampling (ETS) mode, which advertises an insanely fast sample rate. For example, the PicoScope 6000 series, which has a 5 GS/s sample rate, can use ETS mode and achieve 200 GS/s on a single channel, or 50 GS/s on all channels.

The caveat is that this high sample rate is achieved by doing careful phase shifts of the A/D sampling clock to sample “in between” the regular intervals. This requires your input waveform be periodic and very stable, since the waveform will actually be “built up” over a longer time interval.

So what does this mean to you? Luckily, many actual waveforms are periodic, and you might find ETS mode very useful. For example, if you want to measure the phase shift in two clocks through a field-programmable gate array (FPGA), you can do this with ETS. At 50 GS/s, you would have 20 ps resolution on the measurement! In fact, that resolution is so high you could measure the phase difference due to a few centimeters difference in PCB trace.

To demonstrate this, I can show you a few videos. To start with, the simple video below shows moving the probes around while looking at the phase difference.

A more practical demonstration, available in the following video, measures the phase shift of two paths routed through an FPGA.

Finally, if you just want to see a sine wave using ETS you can check out the bandwdith demonstration  I referred to earlier in the this article. The video (see below) includes a portion using ETS mode.


Topic 4: ADC Resolution
A less prominently advertised feature of certain oscilloscopes is the ADC bit resolution in the front end. Briefly, the ADC resolution tells you how the analog waveform will get mapped to the digital domain. If you have an 8-bit ADC, this means you have 28 = 256 possible numbers the digital waveform can represent. Say you have a ±5 V range on the oscilloscope—a total span of 10 V. This means the ADC can resolve 10 V / 256 = 39.06 mV difference on the input voltage.

This should tell you one fact about digital oscilloscopes: You should always use the smallest possible range to get the finest granularity. That same 8-bit ADC on a ±1 V range would resolve 7.813 mV. However, what often happens is your signal contains multiple components—say, spiking to 7 V during a load switch, and then settling to 0.5 V. This precludes you from using the smaller range on the input, since you want to capture the amplitude of that 7-V spike.

If, however, you had a 12-bit ADC, that 10 V span (+5 V to -5 V) would be split into 212 = 4,096 numbers, meaning the resolution is now 2.551 mV.  If you had a 16-bit ADC, that 10-V range would give you 216 = 65,536 numbers, meaning you could resolve down to 0.1526 mV. Most of the time, you have to choose between a faster ADC with lower (typically 8-bit) resolution or a slower ADC with higher resolution. The only exception to this I’m aware of is the Pico Technology FlexRes 5000 series devices, which allow you to dynamically switch between 8/12/14/15/16 bits with varying changes to the number of channels and sample rate.

While the typical ADC resolution seems to be 8 bits for most scopes, there are higher-resolution models too. As mentioned, these devices are permanently in high-resolution mode, so you have to decide at purchasing time if you want a very high sample rate, or a very high resolution. For example, Cleverscope has always advertised higher resolutions, and their devices are available in 10, 12, or 14 bits. Cleverscope seems to sell the “digitizer” board separately, giving you some flexibility in upgrading to a higher-resolution ADC. TiePie engineering has devices available from 8–14 bits with various sample rate options. Besides the FlexRes device I mentioned, Pico Technology offers some fixed resolution devices in higher 14-bit resolution. Some of the larger manufacturers also have higher-resolution devices, for example Teledyne LeCroy has its High Resolution Oscilloscope (HRO), which is a fixed 12-bit device.

Note that many devices will advertise either an “effective” or “software enhanced” bit resolution higher than the actual ADC resolution. Be careful with this: software enhancement is done via filtering, and you need to be aware of the possible resulting changes to your measurement bandwidth. Two resources with more details on this mode include the ECN magazine article “How To Get More than 8 Bits from Your 8-bit Scope” and the Teledyne LeCroy application note “Enhanced Resolution.” Remember that a 12-bit, 100-MHz bandwidth oscilloscope is not the same as an 8-bit, 100-MHz bandwidth oscilloscope with resolution enhancement!

Using the oscilloscope’s fast Fourier transform (FFT) mode (normally advertised as the spectrum analyzer mode), we can see the difference a higher-resolution ADC makes. When looking at a waveform on the screen, you may think that you don’t care at all about 14-bit accuracy or something similar. However, if you plan to do measurements such as total harmonic distortion (THD), or otherwise need accurate information about frequency components, having high resolution may be extremely important to achieve a reasonable dynamic range.

As a theoretical example I’m using my script mentioned earlier, which will digitize a perfect sine wave and then display the frequency spectrum. The number of bits in the ADC (e.g., quantization) is adjustable, so the harmonic component is solely due to quantization error. This is shown in Figure 4. If you want to see a version of this using a real instrument, I conduct a similar demonstration in this video.

Certain applications may find the higher bit resolution a necessity. For example, if you are working in high-fidelity audio applications, you won’t be too worried about an extremely high sample rate, but you will need the high resolution.

Figure 4: In the frequency domain, the effect of limited quantization bits is much more apparent. Here a 10-MHz pure sine wave frequency spectrum is taken using a different number of bits during the quantization process.

Figure 4: In the frequency domain, the effect of limited quantization bits is much more apparent. Here a 10-MHz pure sine wave frequency spectrum is taken using a different number of bits during the quantization process. (CLICK TO ZOOM)

Coming Up
This week I’ve taken a look at some of the core specifications. I hope the questions to ask when purchasing an oscilloscope are becoming clearer! Next week, I’ll be looking at the software running the oscilloscope, and details such as remote control, FFT features, digital decoding, and buffer types. The fourth and final week will delve into a few remaining features such as external trigger and clock synchronization and will summarize all the material I’ve covered in this series.

Author’s note: Every reasonable effort has been made to ensure example specifications are accurate. There may, however, be errors or omissions in this article. Please confirm all referenced specifications with the device vendor.

Evaluating Oscilloscopes (Part 1)

Recently, I was in the market for a new oscilloscope. There’s a good selection of devices for sale, but which should you choose? It’s clear from the ads that the “scope bandwidth” and “sample rate” are two important parameters. But are there other things hidden in the specification sheet you should take a look at?

I’ve compiled notes from my own oscilloscope-selection experience and wanted to share them with you. I’ll be pulling in specifications and examples from a few different oscilloscopes. Personally, I ended up selecting a PicoScope device, so I will be featuring it more prominently in my comparisons. But that’s simply because I don’t have a lab full of oscilloscopes to photograph! I don’t work for Pico Technology or have any affiliation with it, and will be attempting to pull in other manufacturers for this online series to provide some balance.

This “mini-series” will consist of four posts over four weeks. I won’t be discussing bandwidth and sample rate until next week. In this first post, I’ll cover some physical characteristics: stand-alone vs PC-based probe types and digital inputs. Next week I’ll discuss the “core” specifications, in particular the bandwidth, sample rate, and analog-to-digital converter resolution. The  third week will look at the software running the oscilloscope, and details such as remote control, fast Fourier transform (FFT) features, digital decoding, and buffer types. The final week will consider a few remaining features such as the external trigger and clock synchronization, and will summarize all the material I’ve covered.

I hope you find it useful!

Topic 1: Do You Want a PC-Based or Stand-Alone Instrument?
There are two fundamentally different types of instruments, and you’ll have to decide for yourself which you prefer. Many people like a stand-alone instrument, which you can place on your bench and probe your circuits to your heart’s content. You don’t need to have your computer nearby, and you have something solely dedicated to probing.

Figure 1: PC-based oscilloscopes make it easier to mount on a crowded bench. This PicoScope 6000 unit is velcroed to my desk, you can see the computer monitor to the upper left.

Photo 1: PC-based oscilloscopes make mounting easier on a crowded bench. This PicoScope 6000 unit is velcroed to my desk. You can see the computer monitor to the upper left.

The other option is a PC-based instrument, which today generally means it plugs in via USB. I’ve always preferred this type for a few reasons. The first is the minimal desk space needed. I can place an oscilloscope vertically and lose little space (see Photo 1). The second is I find it easier to interact with a standard keyboard and mouse, especially if you’re using more advanced features. In addition, you can easily save screenshots or data from the scope without having to transfer them using a USB key or something similar.

There are a few downsides to USB-based instruments. The most common complaint is probably the lack of knobs, although that’s fixable. In Photo 2, you can see a USB-based “knob board” I built, which pretends to be a USB key. Each turn of the knob sends a keystroke and, as long as your PC-based oscilloscope software lets you set custom keyboard shortcuts, can trigger features such as changing the input range or timebase. Most of the time, I still just use the regular PC interface, as I find it easier than knobs. If you’re interested in the design, you can find it on my blog Electronics & More.

Photo: A simple USB-based knob board uses mechanical encoders to control the USB scope via a physical panel.

Photo 2: A simple USB-based knob board uses mechanical encoders to control the USB scope via a physical panel.

Having a PC-based oscilloscope also means you can have a massive screen. A high-end oscilloscope will advertise a “large 12.1″ screen,” but you can purchase a 22″ screen for your computer for $200 or less.  If your PC-based oscilloscope software supports multiple “viewports,” you can more easily set up complex displays such as that in Figure 1.
Again this comes down to personal preference—personally, I like having the oscilloscope display as a window on my computer. You may wish to have a dedicated display separate from your other work, in which case consider a stand-alone device!

Figure 1: PC-based oscilloscopes make it easier for setting up windows in specific positions, due to a combination of much larger screen space and standard mouse/keyboard interaction.

Figure 1: PC-based oscilloscopes make it easier for setting up windows in specific positions, due to a combination of much larger screen space and standard mouse/keyboard interaction.

Topic 2: Where’s the Ground?
One common complaint with the PC-based oscilloscope is that the probe ground connects to USB ground. Thus, you need to ensure there isn’t a voltage difference between the ground of your device under test and the computer.

This is, in fact, a general limitation of most oscilloscopes, be they stand-alone or PC-based. If you check with an ohmmeter, you’ll generally find that the ”probe ground”  in fact connects to system Earth on stand-alone oscilloscopes. Or at least it did on the different Agilent units I tested. Thus the complaint is somewhat unfairly leveled at PC-based devices.

You can get oscilloscopes that have either “differential” or “isolated” inputs, which are designed to eliminate the problem of grounds shorting out between different inputs. They may also give you more measurement flexibility. For example, if you are trying to measure the voltage across a “high-side shunt resistor,” you can do this measurement differentially. The TiePie engineering  HS4 DIFF is one example of a device with this capability. Of course, you can purchase differential probes for any oscilloscope, which accomplish the same goal! Most manufactures make these differential probes (Agilent, Tektronix, Pico Technology, Rigol, etc.).

Topic 3: Input Types
Almost every scope will have either DC-coupled or AC-coupled inputs. You’ll likely want to compare the minimum/maximum voltage ranges the scope has. Don’t be too distracted by either the upper or lower limits unless you have very specific requirements. At the upper end, remember you will mostly be using the 10:1 probe, which means an oscilloscope with ±20 V input range becomes ±200 V with the 10:1 probe.

At the lower end, the noise is going to kill you. If your oscilloscope has a 1 mV/div range, for example, you’ll have to be extremely careful with noise. To probe very small signals, you’ll probably end up needing an active probe with amplification right at the measurement point. This can be something you build yourself, using a differential amplifier chip, for example, if you are attempting to measure current across a shunt.

Besides the actual measurement range, you’ll be interested in the “offset” range too. With the DC-input, most oscilloscopes can subtract a fixed voltage from the input. Thus you can measure a 1.2-V input on a 1-V maximum input range, as the oscilloscope is able to first subtract say 1 V from the signal. This is handy if you have a smaller signal riding on top of some fixed voltage.

Another input type you will encounter is the 50-Ω input. Normally, this means the oscilloscope can switch between AC, DC, and DC 50 input types. The DC 50 means the input is “terminated” with a 50-Ω impedance. This feature is typically found on oscilloscopes with higher analog bandwidth. For example, this allows you to measure a clock signal that is output on a SMA connector expecting a 50-Ω termination. In addition, the 50-Ω input allows you to simplify connection of other lab equipment to your oscilloscope. Want to use a low noise amplifier (LNA) to measure a very small signal? Not a problem, since you can properly terminate the output of that LNA.

If you end up needing DC 50 termination, you can buy “feed-through” terminators for about $15, which operate at up to 1-GHz bandwidth. You simply add those to the front of your oscilloscope to get 50-Ω terminated inputs.

Any given manufacturer will often have a range of inputs for different bandwidths and models. For example, the PicoScope 5000-series, which has up to 200-MHz bandwidth, has DC/AC high-impedance inputs. The 6000-series has DC/AC/DC 50 inputs for 500-MHz bandwidth and below. The 6000 series in 1,000 MHz bandwidth only has 50-Ω input impedance. Other manufacturers seem to follow a similar formula: the highest bandwidth device is 50-Ω input only, medium-bandwidth devices are DC/AC/DC 50, and lower-bandwidth devices will be DC/AC.

Topic 4: Probe Quality and Type
In day-to-day use, nothing will impact you more than the quality of your oscilloscope probe. This is your hands-on interaction with the oscilloscope.

Figure 4: A smaller spring-loaded probe tip is on the left,  and  a standard oscilloscope probe is on the right. Both  probes have removable tips, so if you damage the probe it’s easy to fix them. Not all probes have removable tips, however, meaning if the tip is damaged you may have to throw out the probe.

Photo 3: A smaller spring-loaded probe tip is on the left, and a standard oscilloscope probe is on the right. Both probes have removable tips, so if you damage the probe it’s easy to fix them. Not all probes have removable tips, however, meaning if the tip is damaged you may have to throw out the probe.

Most “standard” oscilloscope probes are of the type pictured to the right in Photo 3. They are normally switchable from 1:1 to 10:1 attenuation, where the 10:1 mode results in a 1/10 scaling of input voltage. It’s important to note that almost every oscilloscope probe has very limited bandwidth in 1:1 mode—often under 10 MHz. Whereas in 10:1 mode it might be 300 MHz! In addition, the 10:1 mode will load the circuit considerably less. Higher bandwidth probes will often only come in 10:1 mode. I assume the physical switch is too much hassle at higher frequencies!

A first thing to check out is if the tip is removable. If you damage the tip, it can be useful to simply replace the tip rather than the entire probe. If you’re probing a PCB, it can be easy to catch a tip in a via, for example. Alternatively, certain probes might come with an adapter, which is designed for use in probing the PCB, rather than just the tip of the regular oscilloscope probe. The older Agilent 1160A probes come with such a tip.

One particular type of probe I really like has the spring-loaded tip shown to the left in Photo 3. This is a much smaller tip than “standard,” and the spring-loaded tip makes it much easier to get a good connection with solder joints. You can apply some pressure to break through the oxide layer, and the spring-loaded aspect keeps the tip right on the joint. In addition, you can even do things such as probe through the solder mask on a via. There are even plastic guard add-ons, which fit standard surface mount device (SMD) sizes (e.g., 1.27 mm, 1 mm, 0.8 mm, 0.5 mm) to probe TQFP/SOIC/TSSOP packages.

The particular probe I’m photographing comes with the PicoScope 6000 series, which is sold separately as part number TA150 (350-MHz bandwidth) or TA133 (500-MHz bandwidth). However, I’ve noticed that Agilent seems to also sell a probe that looks the same—under part number N287xA—right down to accessories. Similarly, Teledyne LeCroy also seems to sell this probe under the PP007 part number, and Rohde & Schwarz sells it under the RTM-ZP10 part number, also with the same accessories. Thus I suspect there is some upstream manufacturer! Depending on your supplier and options, prices range from $200-$400 for the probe if you want to pick it up separately.

Photo 5: The ground spring accessory can be used in a number of ways. If you're lucky, you can insert it into GND  vias on your PCB. If required, you can also solder a small section of wire to the spring.

Photo 4: The ground spring accessory can be used in a number of ways. If you’re lucky, you can insert it into GND vias on your PCB. If required, you can also solder a small section of wire to the spring.

Pomona Electronics sells a similar probe, part numbers 6491 through 6501 (the exact partnumber depending on bandwidth). The 150-MHz version (6493) is available for under $60 from Digi-Key, Mouser, and Newark element14, for example. This probe differs from the previous group of spring-loaded ones, but if you don’t need the higher bandwidth it may be a more reasonable purchase.

If you are dealing with a high-bandwidth probe, you may need to be concerned about the flatness of the frequency response. A probe may be sold with a 1G-Hz bandwidth, for example, which simply means the -3-dB point is at 1GHz. However, shoddy manufacturing may mean not having a very flat frequency response before that point, or not rolling off evenly after the -3-dB point.

When dealing with high bandwidth probes, the grounding will become a serious issue. The classic “alligator clip” probably won’t cut it anymore! The simplest accessory your probe is likely to come with is the spring adapter shown in Photo 4. There may be more advanced accessories available for grounding, too; check documentation for the probe itself. You can see an example of differences in grounding as part of my “probe review”  video.

Don’t be afraid to build your own accessories for the probe. Photo 5 shows a probe holder I built for a $15 adjustable arm. Details of the construction are here.

Here’s a simple 3-D probe holder you can build for $20 or less.

Photo 5: Here’s a simple 3-D probe holder you can build for $20 or less.

Topic 5: Digital Input?
The final item to consider is if you want digital inputs along with analog. This is, again, somewhat of a personal choice: You may wish to have a separate stand-alone digital analyzer, or you may wish to have it built into your oscilloscope.

I personally chose to have a stand-alone digital logic analyzer, which is a PC-based instrument. Digital logic analyzers are available at a fairly low cost from a variety of manufacturers (e.g., Saleae and Intronix). In my experience, the cost of purchasing a separate PC-based logic analyzer was considerably lower than the “incremental cost” of selecting an oscilloscope with logic analyzer capabilities compared to one without. When evaluating this yourself, be sure to look at features such as number of channels, maximum sample rate, buffer size, and what protocols can be decoded by the logic analyzer.

While integrated-device manufacturers claim you should buy a scope/analyzer in one unit to get perfect synchronization between digital and analog, remember many of these devices can output a trigger signal. So if your oscilloscope can output a trigger signal when it starts the analog capture, you can use this to capture the corresponding data on the digital logic analyzer (or vice versa).

Next Week: Core Specifications
This first week I covered physical details of the oscilloscope itself you might want to consider. Next week, I’ll look at the more ‘”core” specifications such as bandwidth, sample rate, and sample resolution.

Author’s note: Every reasonable effort has been made to ensure example specifications are accurate. There may, however, be errors or omissions in this article. Please confirm all referenced specifications with the device vendor.