Rigol DS1000E Pulse Triggering


The Rigol DS1102E/DS1052E has several interesting features and I thought I’d try to do a few blog posts highlighting the ones I found most interesting. This time, I’m going to show you “pulse triggering”.

If you are used to an analog scope, triggering is pretty simple. The idea is that when the scope sees the voltage go above (or below if you select negative slope) some trigger level voltage, the scope starts its sweep. Once it starts, its going to go to the end. With a digital scope like the Rigol, the instrument buffers traces all the time and when the trigger event occurs, it marks some point in the buffer and then fills in the rest of the buffer. So nominally that trigger point is the center. You can look backwards at what happened before the trigger and forward to what happened after the trigger.

With a digital instrument you can more fun kinds of triggers. So here’s an example of where “normal” triggering isn’t really adequate. Pulse width modulation (PWM) varies a pulse train to have a particular duty cycle. For example, a 50% PWM signal might be “on” for 10uS and “off” for 10uS. This can be used to control a motor’s speed or a lamp’s brightness efficiently, among other things.

The board is an economical way to convert a serial port (or a USB port with a serial adapter)) into an analog and digital I/O port. There’s 8 digital I/O, 5 analog inputs, a counter, and — what I’m interested in right now — a hardware PWM output. You can actually output “bursts” of PWM on any of the digital ports, but the hardware output just keeps making a PWM signal until you reprogram it or tell it to stop.


The 9.47uS isn’t critical. It just needs to be bigger than the small pulses and smaller than the wide pulses. Then push the down arrow and select Single for the sweep type. This will cause the scope to get one trigger, record the data, and stop.

If the Run/Stop button is red then the scope has already triggered (not likely in this case). It should be green, so if it is red, push it so that it is green. Now you can run the JavaScript program (assuming your CLASSPATH is set right,

java GP3Script pwmtest.js

will do it.

You can see the result at the start of this post. The Run/Stop button turns red and you should see something like the picture. Notice that the trigger point is marked with the T flag. It occurs AFTER it sees a pulse greater than 9.47uS. You can see that the pulse before that was in fact very narrow (the 10% pulse; about 4uS wide). So we did actually capture the exact moment that the board switched from 10% to 75%. Of course there is plenty of data to the left and the right of the trigger if you want to see more of either width pulse.

Don’t forget when using pulse triggering you still need to set the trigger level or the results can be unstable. You want the level high enough up the pulse to keep noise near ground level from triggering it, it seems.

You can select lots of options on the pulse trigger, including when a pulse is greater than a certain width, less than a certain width or equal to a certain width. You can also pick positive or negative pulses. This is a great way to let the scope watch your data instead of having to collect a lot of samples and then try to find the interesting part.

Leave a Reply