Author Topic: Using a AWG and a Scope -> using stairs to get to 1 mV accuracy  (Read 31979 times)

0 Members and 1 Guest are viewing this topic.

Offline tautech

  • Super Contributor
  • ***
  • Posts: 28142
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #25 on: April 14, 2019, 11:23:11 pm »
Then I tried to use USB, but the VISA com interface crashed in that case so I cannot report any speeds on that.
How so ?
Is EasyScope working for you ?

If the install and connection to EasyScope is tried before installing the NIVISA package Windows will use some generic USB driver and then you need to venture into Device Manager to assign the correct NIVISA driver for operative scope USB connection.

From an old post:
Quote
The USB driver is being used for the connection to the Siglent scope....it should be something like: "C:\Program Files\IVI Foundation\VISA\IVI USB3 Staging\ausbtmc.inf"
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #26 on: April 14, 2019, 11:33:35 pm »
Then I tried to use USB, but the VISA com interface crashed in that case so I cannot report any speeds on that.
How so ?
[/quote]
I'm quite sure this it has nothing to do with Siglent. The guys from VISA shared components (not National Instruments I think) did not a great job creating a COM interface for VISA. I don't think Easyscope uses the COM interface. Instead it propably talks directly to Visa.dll
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 28142
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #27 on: April 14, 2019, 11:43:51 pm »
The NIVISA Runtime package as a minimum must be installed for EasyScope for USB or LAN connection.
For USB just check the USB port's driver is set to ausbtmc.inf.
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #28 on: April 15, 2019, 12:11:47 am »
The NIVISA Runtime package as a minimum must be installed for EasyScope for USB or LAN connection.
For USB just check the USB port's driver is set to ausbtmc.inf.
I’ve installed the full package which deliver stuff with which the USB tests OK. With that pachage runtime or full comes an extra interface layer possibility. Namely COM. That is what is crashing. I had to try several versions to get LAN working. Today I tested USB for the first time, and it gives the usual access violation.
That just shouldn’t happen. And it is just when opening the device. I can even see that succeeding in the NI trace app. Which “watches” on the VISA.dll interface layer.
« Last Edit: April 15, 2019, 12:47:32 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 11632
  • Country: us
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #29 on: April 15, 2019, 12:49:39 am »
...
I checked the color of the led of the switch at the scopes connection: it is of amber color meaning a 100mbit connection.

I did a large 14M test, and it was fetched at 6MB/s
It's not 30MB/s but enough for a lot of applications.
...
Seems reasonable and should easily cover what you are trying to do, assuming the scope can actually shuffle the data out.  I had a high end Arb that I was trying to use Ethernet with.  Their firmware was so poorly written, it was actually faster to use GPIB!  This was about a $70,000 USD unit.  Poorly written code has no bounds.   :-DD 

Is the 100Mbit limit on your PC, scope or both? 

I’ve the full package ....

With you discussing NIVISA,  I am curious what the "full package" refers to?   Do you have the full package of Labview that you plan to use with this scope?   

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #30 on: April 15, 2019, 01:21:43 am »
Is the 100Mbit limit on your PC, scope or both? 

The scope.

With you discussing NIVISA,  I am curious what the "full package" refers to?   Do you have the full package of Labview that you plan to use with this scope?   

It is about 1GB installation and gives access to some nice (debugging) tools.

“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 28142
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #31 on: April 15, 2019, 01:26:40 am »
The NIVISA Runtime package as a minimum must be installed for EasyScope for USB or LAN connection.
For USB just check the USB port's driver is set to ausbtmc.inf.
I’ve installed the full package which deliver stuff with which the USB tests OK. With that pachage runtime or full comes an extra interface layer possibility. Namely COM. That is what is crashing. I had to try several versions to get LAN working. Today I tested USB for the first time, and it gives the usual access violation.
That just shouldn’t happen. And it is just when opening the device. I can even see that succeeding in the NI trace app. Which “watches” on the VISA.dll interface layer.
Interesting.
Ok then, is the inbuilt webservers SCPI panel better for what you're trying to do ?
No other SW is needed other than your browser and give it the scope's IP. 
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #32 on: April 15, 2019, 01:29:17 am »
I checked the USB driver, the module which gives the AV is some COM dll.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #33 on: April 15, 2019, 01:31:24 am »
The NIVISA Runtime package as a minimum must be installed for EasyScope for USB or LAN connection.
For USB just check the USB port's driver is set to ausbtmc.inf.
I’ve installed the full package which deliver stuff with which the USB tests OK. With that pachage runtime or full comes an extra interface layer possibility. Namely COM. That is what is crashing. I had to try several versions to get LAN working. Today I tested USB for the first time, and it gives the usual access violation.
That just shouldn’t happen. And it is just when opening the device. I can even see that succeeding in the NI trace app. Which “watches” on the VISA.dll interface layer.
Interesting.
Ok then, is the inbuilt webservers SCPI panel better for what you're trying to do ?
No other SW is needed other than your browser and give it the scope's IP.
I'm using my self created scripting language/interpreter, so it can't possibly be better ;)
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 11632
  • Country: us
Re: Using a AWG and a Scope -> sidetrack... SPCI individual frames?
« Reply #34 on: April 15, 2019, 02:32:02 am »
With you discussing NIVISA,  I am curious what the "full package" refers to?   Do you have the full package of Labview that you plan to use with this scope?   
It is about 1GB installation and gives access to some nice (debugging) tools.
It's far too small to be Labview.  :-DD  They offer a Base, Full and Professional version is why I asked.    It will be interesting to see what you come up with for your own software.

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #35 on: April 15, 2019, 08:27:07 pm »
I made a large graph PNG, to show the result of doing a segmented data acquisition and then averaging the 1891 (-> max, when 14K samples) frames.

No more 255 levels of resolution  :-+

For a single temp dataset of my experiment I need two channels, which can be related by their timestamp.

But not taking the same time in each channel, because I will do some more averaging (But now using more the e-res approach) and will need to interpolate.

Because my traces will always be climbing (I'll choose the correct timings for that) this is easy and reliable. From start to finish, I'll group those values that have a minimal of 0.05V between the start of the group and its ending. Then I'll create a single point for each group which time is in the middle and it's value is an average of all the values.

This way I know for sure my curve will always rise and that there's enough vertical distance to have a reliable slope.
« Last Edit: April 17, 2019, 11:21:42 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #36 on: April 15, 2019, 10:08:45 pm »
After some tweaking with timings and offsets: this is the ramp I'll feed my diode/resistor divider.

Starts at 10 mV up to 800 mV with only rising values.

Also done with averaging 1891 frames.

At some points the slope is not good enough to do calculations with, this will be fixed with the next averaging step.
« Last Edit: April 15, 2019, 11:37:24 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #37 on: April 16, 2019, 07:41:18 pm »
I added the time averaged graph.

Behind the dashed lines one can see it follows the other curve nicely.

When I now take an interpolated value from the averaged curve, I am certain it is very accurate.

It's funny that a dataset of millions of measurements in just a few seconds can produce such usable curves. At least, if one has two of them and that will be the next step.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #38 on: April 16, 2019, 11:00:18 pm »
Got my two datasets.

Had to tune the time based averaging a bit to have more points. Because both are curved (input because of the 50 ohm output resistance of the AWG)
For the input curve it is now a difference of 0.01V which triggers the creation of a averaged point, but no more than 1000 values.
For the output curve it is a difference of 0.003V and also limited to 1000 values.

These two combined should give a nice input/output curve.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #39 on: April 16, 2019, 11:58:13 pm »
I've combined the two datasets to a Vout/Vin curve.

I also added a simple per point slope graph.

As can be seen the slope is much more stable (notice the different scale)!

But not good enough for directly using for analysis. So back to the function fitting and let the app Maxima do some algebra.

At least we ended up with a better dataset. (The results are however quite different than what I got with my MM a while back, so I'll have to redo them as well, for verification)
« Last Edit: April 17, 2019, 12:01:14 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #40 on: April 17, 2019, 12:19:35 am »
When doing time-based averaging with larger steps, the slopes become more stable.

This will be usable for some coarse answers.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 11632
  • Country: us
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #41 on: April 17, 2019, 11:39:24 am »
I made a large graph PNG, to show the result of doing a segmented data acquisition and then averaging the 1891 (-> max, when 14K samples) frames.

No more 255 levels of resolution  :-+
....

How did you verify the scopes linearity?  Even the channel to channel on my scopes vary.  I was wanting to gain a bit more resolution with mine and modeled the channels.   Then used that to fit the data.

https://youtu.be/04I7nHA_HxM?t=161

Offline Rerouter

  • Super Contributor
  • ***
  • Posts: 4694
  • Country: au
  • Question Everything... Except This Statement
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #42 on: April 17, 2019, 11:53:55 am »
I will say if your in full control of things with SCPI, use a smaller vdiv setting and trim the offset per segment. the offset dac is the root of trust as far as the scopes calibration goes, so the closer you can keep to the center division, the more you can trust the reading

So you just have a quite small time base so you can rip the data off as fast as possible (you can set things up so you only download every X sample to speed things up) and each time the data walks towards the top or bottom of the screen you adjust the channel offset.
 
The following users thanked this post: HendriXML

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #43 on: April 17, 2019, 05:57:58 pm »
I made a large graph PNG, to show the result of doing a segmented data acquisition and then averaging the 1891 (-> max, when 14K samples) frames.

No more 255 levels of resolution  :-+
....

How did you verify the scopes linearity?  Even the channel to channel on my scopes vary.  I was wanting to gain a bit more resolution with mine and modeled the channels.   Then used that to fit the data.

https://youtu.be/04I7nHA_HxM?t=161
I didn't, but here the slope at some points on the averaged ramp.  :-+ It should be a straight line of theoretically 580,64 V/s

I had previously noted a dip around t=0, that certainly can be seen in the graph. The question is, what has the strongest influence on the errors: the DSO or the AWG.

One thing that needs improving is the triggering. While taking the data of each frame, I saw them one by one like an animation. And they shifted a bit to much to my opinion. But that should be averaged out.

What you did was very advanced, but for this experiment I leave it the way things are, because I will compare two datasets which will be fetched with the same (repeatable) errors, and can still be compared.
« Last Edit: April 17, 2019, 06:13:12 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #44 on: April 17, 2019, 06:03:48 pm »
I will say if your in full control of things with SCPI, use a smaller vdiv setting and trim the offset per segment. the offset dac is the root of trust as far as the scopes calibration goes, so the closer you can keep to the center division, the more you can trust the reading

So you just have a quite small time base so you can rip the data off as fast as possible (you can set things up so you only download every X sample to speed things up) and each time the data walks towards the top or bottom of the screen you adjust the channel offset.
That would be a good idea to keep in mind. In the previous post I saw that things are not perfect in DSO measurement land. I'm happy that for answering the temperature dependency question it does not mind much.
Can you explain the dip I measured in the centre? It is one that bothers me.
« Last Edit: April 17, 2019, 06:23:36 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline Rerouter

  • Super Contributor
  • ***
  • Posts: 4694
  • Country: au
  • Question Everything... Except This Statement
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #45 on: April 17, 2019, 08:34:46 pm »
My suspicion would be a rounding error, you can isolate which part is causing it by rerunning with an X10 probe connected, if it happens at the same point on the slope its the AWG, if it moves its the scope ADC
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 11632
  • Country: us
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #46 on: April 18, 2019, 02:23:11 am »
I made a large graph PNG, to show the result of doing a segmented data acquisition and then averaging the 1891 (-> max, when 14K samples) frames.

No more 255 levels of resolution  :-+
....

How did you verify the scopes linearity?  Even the channel to channel on my scopes vary.  I was wanting to gain a bit more resolution with mine and modeled the channels.   Then used that to fit the data.

https://youtu.be/04I7nHA_HxM?t=161
I didn't, but here the slope at some points on the averaged ramp.  :-+ It should be a straight line of theoretically 580,64 V/s

I had previously noted a dip around t=0, that certainly can be seen in the graph. The question is, what has the strongest influence on the errors: the DSO or the AWG.

One thing that needs improving is the triggering. While taking the data of each frame, I saw them one by one like an animation. And they shifted a bit to much to my opinion. But that should be averaged out.

What you did was very advanced, but for this experiment I leave it the way things are, because I will compare two datasets which will be fetched with the same (repeatable) errors, and can still be compared.

Triggers can pose some problems.   That Arb I mentioned samples the trigger asynchronous so I ended up with a large bit of jitter and had to synchronize the clocks.  The Arb required a minimum of a 5GHz clock so getting that working was a bit of effort.  Thank goodness for Mini-Circuits.   :-DD    In the sub MHz, it seems like it would be far less of a problem.  I assume you are driving the scopes external trigger with one of the Arb's channels or it has an output trigger.  If not, maybe you can change your setup to improve it.   

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #47 on: April 18, 2019, 10:17:44 am »
I made a large graph PNG, to show the result of doing a segmented data acquisition and then averaging the 1891 (-> max, when 14K samples) frames.

No more 255 levels of resolution  :-+
....

How did you verify the scopes linearity?  Even the channel to channel on my scopes vary.  I was wanting to gain a bit more resolution with mine and modeled the channels.   Then used that to fit the data.

https://youtu.be/04I7nHA_HxM?t=161
I didn't, but here the slope at some points on the averaged ramp.  :-+ It should be a straight line of theoretically 580,64 V/s

I had previously noted a dip around t=0, that certainly can be seen in the graph. The question is, what has the strongest influence on the errors: the DSO or the AWG.

One thing that needs improving is the triggering. While taking the data of each frame, I saw them one by one like an animation. And they shifted a bit to much to my opinion. But that should be averaged out.

What you did was very advanced, but for this experiment I leave it the way things are, because I will compare two datasets which will be fetched with the same (repeatable) errors, and can still be compared.

Triggers can pose some problems.   That Arb I mentioned samples the trigger asynchronous so I ended up with a large bit of jitter and had to synchronize the clocks.  The Arb required a minimum of a 5GHz clock so getting that working was a bit of effort.  Thank goodness for Mini-Circuits.   :-DD    In the sub MHz, it seems like it would be far less of a problem.  I assume you are driving the scopes external trigger with one of the Arb's channels or it has an output trigger.  If not, maybe you can change your setup to improve it.
My scope does not have an external trigger. In the setup there’re 10 MSam/s (100 ns), but the sync puls is 50 ns wide so that would be tricky. I tried using it but, it didn’t trigger so I used the rampsignal instead. But when I think of it again, I must have forgotten to turn the sync pulse on.
A third probe does come at the cost of having half the memory buffer. It also increased the samples/s. (Meaning also less risk to miss. a trigger pulse) So now there’re much less samples to average. But of a higher quality (the signal seemed rock solid), and more samples to do time based averaging.
« Last Edit: April 18, 2019, 10:20:29 am by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #48 on: April 18, 2019, 01:02:56 pm »
My suspicion would be a rounding error, you can isolate which part is causing it by rerunning with an X10 probe connected, if it happens at the same point on the slope its the AWG, if it moves its the scope ADC
Now I used the sync pulse from the AWG for the triggering.

Looking at these graphs it is very unlikely that the AWG causes the dips. Because they don't show up in both graphs the exact same time.

However I find them strange because they are averages of in this case more than 300 samples. It may be something that repeats itself. Or a single very high spike that is averaged down like this.

The circles are the time base averaged values.
« Last Edit: April 18, 2019, 01:05:20 pm by HendriXML »
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 

Offline HendriXMLTopic starter

  • Super Contributor
  • ***
  • Posts: 1085
  • Country: nl
    • KiCad-BOM-reporter
Re: Using a AWG and a Scope -> sidetrack... Averaging 1891 frames by script
« Reply #49 on: April 18, 2019, 01:38:24 pm »
I think that the sample based averaging needs to be done by sorting the values for each sample and discarding the lowest 25% and highest 25%. This will certainly filter out the spikes. The ones left over are closest to each other, so enough samples are left for propper averaging.
“I ‘d like to reincarnate as a dung beetle, ‘cause there’s nothing wrong with a shitty life, real misery comes from high expectations”
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf