I wrote a C++ app that samples a signal that has +2.5V DC baseline and some AC pulses ( <400kHz ).
I'm using a 4424 Pico with ps4000.dll (either 32bits or 64bits, see below) under Windows 10.
The 4424 coupling is set to AC.
I first used the 32bits SDK files, and the +2.5V baseline of my signal was perfectly removed. Right from the very first sample.
Then, I recompiled my application to 64bits and I used the 64bits SDK files.
With the 64bits version, any sampled data start with some kind of capacitor falloff from the +2.5V baseline value when AC is set ?? This fall off from the +2.5V value roughly lasts 150ms.
I really don't in which direction to investigate ?
OK, I've just tried what you suggested : no change.
One could have expected this.
Because when the input signal to be sampled is a +2.5Vconstant one, there are only two possibilities:
- DC coupling and you get all samples @ +2.5V.
- AC coupling and you get all samples @ 0.0 V.
There shouldn't be any transient decay in either mode.
I do stress this transient decay (with AC coupling) only happens with 64bits driver (and app).
The same C++ code works like a charm (no transient decay) with 32bits driver and app.
The decay would occur if there is a switch from DC to AC, as if the scope starts sampling in one mode then switches to another. There may be something subtle in your code, such as data types or timings, which is causing the issue in the 64 bit driver. The code base for both drivers is the same, so the same situation as with your code.
I will try to set up a simple test when I am back in the office tomorrow, but I may need to see you complete code flow if I can't reproduce the issue.