I am using a PS2205 to capture a triggered waveform with a custom
program (VB6). Skipping to the end: I am not succeeding in, um, triggering
the trigger.
Background: Sample rate is 6.25MSps, range is +/-5V. The trigger pulse is
active low (4.5V->0V), roughly 12us wide. I am using PS2000.dll from 19
March 08.
Using the picoscope-6 application, I can capture using the trigger, and
both trigger and data look normal; I can even capture the trigger down to
to about 100kSps (trigger pulse is ~1 sample wide).
If I set the threshold to the obvious one (2.5V = 16383) I get no
triggers at all. If I stepwise reduce the threshold, at some point (~320,
i.e. near 8-bit 0) I appear to get constant triggers. This in itself seems a
bit odd, since it suggests that
A) The trigger is actually level-sensitive, not edge-sensitive.
B) The trigger channel is reading as 0.
But (B) doesn't appear to be what picoscope-6 sees -- it sees a constant
4.5V level then a 12us 0V pulse.
Evidently picoscope-6 is doing something that I am not.
Another tidbit: Before the real system was ready, I cobbled-up a trigger
using a board I had lying around, the big difference being that this board
issued multiple (16x5us) "trigger" pulses, which appeared to work fine.
I saw that the sample programs issued set_ets(disable) calls, but doing
that didn't seem to help. Do I need to explicitly turn Off the advanced
triggering mechanisms in the 2205? Is there something else obvious I'm
missing?
After some experiments, I found that a range of thresholds from about
-7000 to -3000 (-1.07V to -0.45V) results in a reliable trigger. While it's
useful to get past this stumbling block, it's a bit disturbing that I can't
explain why it works.
picoscope-6 agrees with our standalone scope (and our EE) that the pulse is
+4.5V->0V (single-digit mV of bounce).
When a channel is disabled with set_channel, is the range still set according
to the given range argument? (I suppose this could explain the magnitude,
though not the sign.)