A Digital Storage Oscilloscope (DSO) is a device for sampling a number of analogue signals at high speed, and displaying them on a screen. An event which takes only a microsecond can be examined in detail to check for problems and inconsistencies. DSOs are essential tools for all but the most basic of hardware tasks. They can be thought of as a very high speed multimeter with storage capability.
Bluewater Systems has two DSOs:
- A Tektronix TDS3054B which is a 4-channel 2.5 GSa/s 500 MHz scope. This is used for most analogue work.
- An Agilent 54622D which is a 2-channel (+16 digital) 200 MSa/s 100 MHz scope. This is used for lower speed work and software benchmarking/debugging
The number of channels refers to the number of different analogue signals which can be recorded at once. A four channel scope gives extra flexibility for seeing more of a problem at a time, thus speeding up analysis. The number of samples per second is the number of times per second that the scope takes an analogue sample. For example, 2.5 GSa/s means that the scope takes 2.5 billion samples per second. Often we would run the scope slower than this to catch data over a longer period of time. The scope also has internal storage - the Agilent can hold 1 million records. This means that you can capture an event and then zoom in many many times to see the event in detail.
The main method by which events are captured with a DSO is through triggering. This is like setting a trap for an event, and pressing the record button when (or before) it happens. Triggering is of course very flexible - we can trigger on a rising or falling edge of a signal, when a signal hits a certain point, when a particular sequence occurs, etc. With modern DSOs there is a huge range of options available.
USING DIGITAL STORAGE OSCILLOSCOPES FOR BOARD BRING-UP
DSOs are mostly used during board bring-up and to diagnose faults and problems. After power has been checked, a DSO is then used to check all the clocks to make sure they are running. A DSO can instantly show a clock along with its frequency. This allows the designer to make sure that all parts of a circuit are at least receiving the correct clock. The DSO may then be used to check that reset operates correctly, that is, that each devices sees a suitable reset pulse at power-on. Without this, most devices will not operate correctly. The designer would then attempt to connect to the ARM chip with an ICE unit (another of the essential tools) using the RealView tools. If this fails then the scope would again be used to check the JTAG lines are correct.
One the ICE is working, the scope is then used to help debug problems accessing particular chips. For example, imagine that there is a problem with access to an external USB chip. The DSO can bring up the waveforms of the chip select, read strobe and write strobe signals. It is then easy to see whether these signals are timed correctly with respect to the datasheet, or if one of the signals is late or early.
If the SDRAM is exhibiting a fault the lines can be similarly probed. Since parts of the system may run in excess of 100 MHz, a fast DSO is essential for high speed design and bring-up.
USING DIGITAL STORAGE OSCILLOSCOPES FOR BENCHMARKING AND SOFTWARE DEBUGGING
DSOs are one of the tools also useful for software debugging. For example, imagine a serial driver routine is not receiving data correctly. A DSO can be used to check the baud rate being received by the serial device, the start and stop bits, and even the data. If this looks correct, then the problem is likely to be in the software. Similarly, serial transmission can be checked to make sure it is as required. Without a DSO, this might involve painful and time consuming trial and error.
For benchmarking, DSOs can be extremely useful. Using a general purpose IO, the CPU can raise a line high when it enters an interrupt routine. The programmer can put the raw interrupt line on another channel. Then, while the system is running, the programmer can see (or the DSO can measure) the time difference between the two pulses. This indicates the interrupt latency. The programmer can then try various approaches to improve interrupt latency and see what the effect is.
DSOs are an essential tool for the hardware (and software) engineer. A fast sampling rate and plenty of channels makes the device even more useful for high-speed design.