MSO – Digital ChannelsThis is a short review of the digital channels that make for the SDS2000 MSO functionality, and there are two bugs right from the start:
1. After enabling ‘Digital’, all digital channels appear at the same vertical screen position (as already shown in an earlier post). Only pushing the ‘Position’ knob in the vertical section where also the ‘Digital’ button sits, automatically aligns them in a way we’d expect it to be right from the beginning.
2. The ‘Variable’ control in the vertical section where also the ‘Digital’ button sits can be used to select a specific digital channel, which is then highlighted in red. Turning this control should select the digital channels in a consistent order 0~7, but by en-/disabling individual channels in the soft menu we easily get into a state where channel selection has discontinuities or even goes all over the place, which is rather confusing.
The bugs mentioned above are still relatively easy to handle, so we can continue the test with some real signal.
It should be noted that with digital channel enabled, memory is generally restricted to 14Mpts maximum for both analogue and digital, except for 1ms/div timebase with only one analogue channel per group enabled, where we can get a combination 28Mpts for analogue and 7Mpts for digital. Maximum sample rate for digital channels is generally limited to 500MSa/s.
The signal is a 7 bit counter changing state every 200ns and stopping for about 1µs at every 19th edge, thus creating some interesting stream of bursts.
On top of that, the MSB (D7) is fed with an asynchronous pulse <10ns wide at a repetition rate of slightly more than 1µs.
The basic settings for my tests are maximum memory, peak detect acquisition, x interpolation, vector display.
Analogue channel 4 is hooked up to the LSB of the basic counter in parallel with the digital channel D0, in order to see the time skew between analogue and digital channels – but we have to expect some inaccuracies here due to the different signal path through the analogue probe and the additional capacitive load.
Trigger is set to the falling edge of the analogue signal on Ch. 4.
Digital bus decoding has been set to display all 8 bits at once, which should give some interesting pattern, when the short, asynchronous pulse on D7 appears at random positions.
A detailed view of the signals can be seen in the following screenshot (Digital_Signals_200ns)
As can be seen, everything looks fine so far. Digital channels appear blue when low or falling edge and green when high or rising edge, which I think is a great idea. The digital channel currently selected by the ‘Variable’ control next to the ‘digital’ button is displayed in red and I haven’t found a way to disable that, but then again it’s also nice to have one particular channel stick out.
The bus decoding on the bottom of the screen shows the correct results and at this timebase setting, space is way too narrow to display any values when the short pulses occur, as has been expected.
I should also mention that despite the bus decoding, screen update is as quick as it can get and measured waveform update rate is about 2500/s in this scenario.
The next screenshot shows a detailed view of the trigger point at a timebase setting of 5ns/div (Digital_Signals_5ns_Probe_D0)
As can be seen, there is a delay of precisely 6ns from digital channel D0 to analogue channel 4, so the digital channels have less trigger delay. But when talking about delay times of a few nanoseconds, it’s quite obvious that the digital and analogue probes cannot be exactly the same and I will repeat this test with a direct coaxial connection to the analogue channel in a subsequent post.
We also see a slight uncertainity at capturing the digital channels, as the transition of D3 occurs 2ns later compared to D0 and D1. Interestingly, we still get a valid bus decoding (0C) for that misaligned portion of the signal at the bottom of the screen.
In general, we cannot expect a timing accuracy of better than +/- 2ns at a digital sample rate of 500MSa/s.
Now let’s have a look at a huge amount of data. At a timebase of 2ms/div, digital and analogue channels both run at 500MSa/s with 14Mpts of memory and the picture we get is a little boring (Digital_Signals_2ms)
If we zoom in 1000x by lowering the timebase to 2µs/div (in stope mode), we get a good overview of what’s actually going on here (Digital_Signals_2ms_2us)
Bug: The bus decoding at the bottom of the screen is a fair bit misaligned though. The displayed values should be aligned with the gaps in the D0 burst signal, but the first one (7d) is already about 1µs late, and it gets progressively worse and ends up with a lag of some 3µs for the last value (49).
If we zoom in even further, 10000x at a timebase of 200ns/div, bus decoding gets well aligned again (Digital_Signals_2ms_200ns)
With a zoom factor of 200000 at 10ns/div, we find a serious mismatch between analogue and digital channels (Digital_Signals_2ms_10ns_Probe_D0)
Now D0 is about 44ns late with regard to Ch. 4, which doesn’t appear too bad at first, considering the huge zoom factor, but then again I still wouldn’t expect more than 10ns, as we saw a skew of 6ns earlier, where Ch. 4 was sampled at 2GSa/s and it now is at 500MSa/s, which might introduce another 2ns of uncertainty. Even more surprising, the skew has changed sign, i.e. the digital channels now lag the analogue one.
Finally let’s have a look at Zoom mode (Digital_Signals_2ms_Zoom_200ns_D40us)
While it certainly works for the signal traces, it does not for the digital bus decoding, which shows just nonsense.
Bug alert!ConclusionDigital channels are basically working just fine, apart from the two bugs regarding initial channel position and slightly random channel selection mentioned at the start of this review.
Digital bus decoding is fine in many regards, especially its response to narrow pulses, but still has some alignment issues as shown in this review. A big issue is the zoom mode, where it’s just displaying nonsense.
The correlation between digital and analogue seems fine too, except when zooming into a long waveform, where the error can get surprisingly high at up to 50ns (from +6 to -44ns).