Thank you! :) I just purchased a 5244B, my very first Pico Technology product partially because of your application, which works flawlessly on my Win7 64 bit machine. I do not have either version of SDK installed.

I'm a long time user of dual channel DFT measurement programs that divide the DUT signal by the reference output of an analyzer, so FRA was quite intuitive for me. This process of division results in amazing accuracy and is quite forgiving of imperfect amplification used to test filters and the like.

I have one question and one suggestion:

1. How can I send you some money for this amazing gift of yours?

2. In reference to impedance measurement (V/I of course), it would be very helpful to have a linear option for the Y-Axis and it would be very helpful to have a user defined "probe attenuation" field so we can enter a number for the calibration required for the shunt resistor or current transformer employed for the current sense channel.

Hi Hexamer,
I am trying to run FRA on a 2205MSO (which is correctly seen and initialized by the application), but as soon as the scan starts it remains blocked in the first point.
When I abort the scan, I have the Fatal Error 46.
I have Win7 64bit, and I have installed 32bit SDK. FRA version 0.6.1b.

Thank you! I just purchased a 5244B, my very first Pico Technology product partially because of your application, which works flawlessly on my Win7 64 bit machine. I do not have either version of SDK installed.

I'm a long time user of dual channel DFT measurement programs that divide the DUT signal by the reference output of an analyzer, so FRA was quite intuitive for me. This process of division results in amazing accuracy and is quite forgiving of imperfect amplification used to test filters and the like.

I have one question and one suggestion:

1. How can I send you some money for this amazing gift of yours?

2. In reference to impedance measurement (V/I of course), it would be very helpful to have a linear option for the Y-Axis and it would be very helpful to have a user defined "probe attenuation" field so we can enter a number for the calibration required for the shunt resistor or current transformer employed for the current sense channel.

God bless you and your precious family - Langston

Thank you for your kind words. I appreciate the offer, but am not looking for any financial support.

Those are good suggestions I can add to the list of requested enhancements. In the meanwhile, do be aware of a couple of other avenues that might help solve your need.

1) The raw output data can be exported, so you can transform and graph any way that you wish
2) There is a DLL form of the software that you could control by several means: Excel, Scripting language (e.g. Python), or your own GUI developed in whatever language you like (C++, C#, Java, etc). The Excel method would not require any significant programming efforts. In fact a major impetus for making an API version was to support someone making automated impedance measurements.

Just wanted to express my thanks for providing this app. I makes my 5442B so much more useful!
I was a bit surprised this was not included in the picoscope software. Before I purchased my picoscope, I had seen screenshots of your app, but did not realize that this was not a screenshot of an external app. Luckily google pointed me in the right direction.

_Wim_ wrote:Just wanted to express my thanks for providing this app. I makes my 5442B so much more useful!
I was a bit surprised this was not included in the picoscope software. Before I purchased my picoscope, I had seen screenshots of your app, but did not realize that this was not a screenshot of an external app. Luckily google pointed me in the right direction.

Hexamer, i wanted to thank you for your efforts to bring Bode plots to the PicoScope.

After reading this thread i did some research on signal injection transformers. Your idea of using the Jensen VB-1BB video isolator was a good one but i noticed in your thread you talked about not using all the bits of the signal generator because of the low output voltage required for the 1-1 transformer.

This web page has information on building a signal injection transformer using a current sense transformer (loads v e r y slow).

wally555 wrote:Hexamer, i wanted to thank you for your efforts to bring Bode plots to the PicoScope.

Thank you! I'm always interested in seeing how people are able to use it and improve on the process.

wally555 wrote:i noticed in your thread you talked about not using all the bits of the signal generator because of the low output voltage required for the 1-1 transformer.

If I'm understanding which topic your referring to, I may have been talking about issues related to not being able to control the input stimulus voltage because the transformers response is not perfectly flat. That issue should be less important now since the application has an adaptive stimulus mode (provided it's used of course). So, your idea to use less capable but inexpensive isolation transformers is a good one.

wally555 wrote:I do not have a PicoScope to try this but i hope someone else does and will report back.

. Since these are so inexpensive I'll probably just order some when I place my next digikey order. Can't promise when I could get around to testing them, but I do have some plans to test out more SMPS, so probably then.

I was very pleased to find your FRA4 app and was looking forward to trying it out. It's exactly what I need for my projects. I have a 2206B scope.
When I tried to download it from your site Norton Security flagged it as malicious and cancelled the download
I know from previous experience with Symantec and false positives that only the file owner can get it whitelisted. They did the same a while back to my favourite VPN app.
The "malicious" flag seems to be based on very low usage statistics, which are hardly surprising considering the specialist nature of the software.

In the meantime I can always disable Norton for the period of the download, although I'm always uncomfortable about doing that.
Best regards
Ian

I have now downloaded and installed FRA4 (Windows 10 Pro) and it's excellent!
Many thanks for creating it, it's just what I needed. I work mostly with amplifiers, acoustics and power supplies and having such an easy way to examine amplitude, phase and gain/phase margin is most helpful.

I didn't need SDK for it to run and it identified the 2206B no problem. I did install SDK, just in case, after I'd done a few tests, but it made no difference. I was wondering whether some of the features that didn't work were from the absence of SDK, but then I read your wiki properly and realised you intend them for future releases, listed under "planned future enhancements".

I found the explanation of Error 46 in the thread above, and as you say, it doesn't interfere with the operation of the instrument.

I was very pleased to find your FRA4 app and was looking forward to trying it out. It's exactly what I need for my projects. I have a 2206B scope.
When I tried to download it from your site Norton Security flagged it as malicious and cancelled the download
I know from previous experience with Symantec and false positives that only the file owner can get it whitelisted. They did the same a while back to my favourite VPN app.
The "malicious" flag seems to be based on very low usage statistics, which are hardly surprising considering the specialist nature of the software.

In the meantime I can always disable Norton for the period of the download, although I'm always uncomfortable about doing that.
Best regards
Ian

It's ironic that the same happens on my PC. Every time I upload the version to Bitbucket, then download and install to test the round-trip process, Norton flags it as potentially malicious, even though it came from my PC!!! I guess the antivirus can only be so smart.

The first time it happened I was worried that I unknowingly included some API call that trips its scan engine. But then I read it closer and realized it's (like you said) because of low usage stats. Thanks for pointing out that it could be white-listed. If the process is straightforward I'll try to do that.

I have now downloaded and installed FRA4 (Windows 10 Pro) and it's excellent!
Many thanks for creating it, it's just what I needed. I work mostly with amplifiers, acoustics and power supplies and having such an easy way to examine amplitude, phase and gain/phase margin is most helpful.

I didn't need SDK for it to run and it identified the 2206B no problem. I did install SDK, just in case, after I'd done a few tests, but it made no difference. I was wondering whether some of the features that didn't work were from the absence of SDK, but then I read your wiki properly and realised you intend them for future releases, listed under "planned future enhancements".

I found the explanation of Error 46 in the thread above, and as you say, it doesn't interfere with the operation of the instrument.

Many thanks for all your hard work and generosity.

Ian

You're very welcome. Thank you for your feedback. I'm happy it's useful. BTW, with regard to the Error 46 topic, the Picotech support team worked with me to help fix that problem as well as some other enhancements. I hope to post that version soon.

Hi Aaron,
Your FRA utility makes Picoscope a really versatile tool! The fact that you can easily switch between scope and FRA also makes signal checks and level adjustment very handy. I'm an FAE for power semiconductors and was planning to make a practical youtube tutorial video on gain-phase measurement for DC/DC converters. I think the Picoscope with FRA would be very suitable as the measurement system for this tutorial. I'm not sure whether you have any plans for adding more features?
For preparing the tutorial, there are some FRA settings menu items which are not completely clear to me. Would it be possible to give some basic explanation and how to use these items?
* Extra settling time : what does it do and when to use?
* Auto-range settings : always start at highest sensitivity? when to change?
* Auto-range tries / steps and tolerance: when to change?
* FRA sample settings: minimum cycles captured/low noise oversampling/noise reject BW, Noise reject timebase: basic explanation and how to set for best results?

In DC/DC gain-phase measurement you normally need to use different insertion levels at different frequencies. I tried the adaptive stimulus, but always get the message Retry limit reached with 4V stimulus, also in higher frequency settings where loop gain is lower. Can you explain how it works and how to use?

Note I'm using Pico 2208B scope, which has a waveform generator with 600ohm output impedance. My 1:1 transformer is terminated with 10ohm, so with 1V generator setting I get 16mV signal. I have very short probe loops so the measured signals are relatively clean. I measure with 1:1 probes for best S/N. The converter just stays in linear region with this insertion signal level.

I also have a Bode-100 network analyzer, so can compare the results of your FRA vs. the Bode-100 results, which are pretty close!
The Bode-100 lets you manually set different stimulus at different frequencies, so you can use high stimulus at low frequency and lower stimulus at higher frequency to keep the converter operating in linear mode without hitting duty-cycle limits or entering different operation modes. I'm not sure how your adaptive stimulus works?

Attached some messages and settings and results of a 12V input to 5V output fixed frequency current mode buck converter loop measurement.
Would it be possible to place the phase margin and gain margin text somewhere else? In my plots, it is not readable because it falls outside the plot window.

I hope you can help me clarify above items. If there is a help file that already answers these questions please let me know. Thanks a lot!

Rolandvanroy wrote:Hi Aaron,
Your FRA utility makes Picoscope a really versatile tool! The fact that you can easily switch between scope and FRA also makes signal checks and level adjustment very handy. I'm an FAE for power semiconductors and was planning to make a practical youtube tutorial video on gain-phase measurement for DC/DC converters. I think the Picoscope with FRA would be very suitable as the measurement system for this tutorial. I'm not sure whether you have any plans for adding more features?

Thank you, Roland. This sounds like a nice idea. Afterall, the original reason I made the program was for SMPS stability measurements. Yes, I do have a backlog of planned features, some of which are relevant to your questions below. I’m glad you’re asking these questions because it gives me an opportunity to add more explanation of how I’ve done SMPS measurement.

Rolandvanroy wrote:
For preparing the tutorial, there are some FRA settings menu items which are not completely clear to me. Would it be possible to give some basic explanation and how to use these items?
* Extra settling time : what does it do and when to use?

This is an additional amount of time delay to insert between changes to the stimulus frequency/amplitude and capturing samples. If a circuit needs additional time to reach steady state, it can come in handy. I’ve never needed to use it for SMPS measurements.

This can simply help auto-ranging find the correct measurement ranges faster by providing hints on where to start. It could be helpful if you generally know the response of what you’re measuring, but I haven’t found it to be critical for SMPS. Once proper ranges are first found by auto-ranging, the response of adjacent/next steps is often so close that subsequent auto-range tries are infrequent.

Tries per step is how many auto-range seeking tries it will attempt before giving up. On most scopes there aren’t even more ranges than the default (10). Increasing beyond the default would probably only be useful if for some reason your signal had lots of some kind of noise that made it continually hunt for the right ranges.
Tolerance is just a hysteresis value so that we’re not bouncing back and forth between ranges.

This section can be a little tricky to understand because the values can mean different things depending on whether you’re in noise reject mode, and the values are often interrelated. As you seem to already know, noise reject mode is required for SMPS measurement.

Minimum cycles captured (low noise mode): The exact number of stimulus cycles to capture for all captures. Default is 16. So, at 1Hz stimulus it will try to capture 16 seconds of data.Minimum cycles captured (noise reject mode): The minimum number of stimulus cycles to capture no matter what the bandwidth setting indicates.

Low noise oversampling (low noise mode): The scope’s minimum attempted oversampling rate (vs stimulus frequency). Default is 64x. So, with a stimulus of 1Hz the scope’s sampling rate will be at least 64 Hz. At high stimulus values the scope may not sample as fast as specified and will instead sample as fast as it can.

Noise reject bandwidth (noise reject mode): Captures enough samples so that the DFT bin is at least this narrow. Sampling always tries to target an even number of stimulus cycles, so the bandwidth can be narrower than specified. Smaller bandwidth values require more samples which leads to higher DFT “processing gain” and thus higher SNR.

Noise reject timebase (noise reject mode): Sets the scope’s fixed sampling rate for all noise reject mode sampling. This value should be high enough to avoid aliasing-in noise. The main tradeoff here is that faster sampling rates result in the scope’s buffer being filled faster and thus limits the minimum stimulus frequency attainable. For a fixed sampling rate, reducing the minimum cycles captured can lower the minimum attainable stimulus frequency. Of course this can also affect the achieved bandwidth.

In your screenshot, I see it set to 100 kHz. I assume your ripple noise is at least that fast, so it likely needs to be a higher frequency (lower timebase).

There can be combinations of all these values that result in warnings while running FRA when all specifications can’t be met.

Rolandvanroy wrote:
In DC/DC gain-phase measurement you normally need to use different insertion levels at different frequencies. I tried the adaptive stimulus, but always get the message Retry limit reached with 4V stimulus, also in higher frequency settings where loop gain is lower. Can you explain how it works and how to use?

Yes, adaptive stimulus was designed for SMPS stability measurements. In general, it seeks the minimum stimulus amplitude that still achieves the target output response - of the input or output channel with the lowest amplitude response. As you mention below, this is to try to keep the SMPS in the linear region of operation.
Response target tolerance specifies a percentage above the target that is still considered good (target met). Setting these target and tolerances can take some experimentation. Good initial guesses are based on the greatest gain you expect to see in the loop. For instance, if you know you’ll be measuring in a band that has 60dB loop gain, and your injection is only capable of delivering 4Vpp, of course a target of 100mv will never be met. The target should be less than 4 mVpp.

Rolandvanroy wrote:
Note I'm using Pico 2208B scope, which has a waveform generator with 600ohm output impedance. My 1:1 transformer is terminated with 10ohm, so with 1V generator setting I get 16mV signal. I have very short probe loops so the measured signals are relatively clean. I measure with 1:1 probes for best S/N. The converter just stays in linear region with this insertion signal level.

With a maximum of ~67 mVpp injection and 60 dB gain, you’d definitely experience issues at low stimulus. Since the scope is 8 bits and minimum +/- 20mV range, the response is going to be less than a single count. And that’s all ignoring ENOB and the possibility that ripple current is going to force higher ranges. If you can, you’d benefit from higher injection amplitude. OTOH, as other’s have pointed out before, the response in this region is often not very important since PM and GM are usually at higher frequency. You mention above that inability of adaptive stimulus to reach target even happens at lower loop gains. Could it be that your target setting is still too high? I don’t see it in your pictures and if I recall correctly, it’s defaulted to 100mV. If that’s not the case, I’d have to look at the full log with adaptive stimulus diagnostics turned on to see what’s happening.

Rolandvanroy wrote:
I also have a Bode-100 network analyzer, so can compare the results of your FRA vs. the Bode-100 results, which are pretty close!
The Bode-100 lets you manually set different stimulus at different frequencies, so you can use high stimulus at low frequency and lower stimulus at higher frequency to keep the converter operating in linear mode without hitting duty-cycle limits or entering different operation modes. I'm not sure how your adaptive stimulus works?

Very good to hear. As an alternative to adaptive stimulus, I am planning a feature where a user could fill out a custom execution plan which would include stimulus amplitudes for each step. I'm curious how one would pick numbers based on the SMPS under test that would keep it in linear mode.

Rolandvanroy wrote:
Attached some messages and settings and results of a 12V input to 5V output fixed frequency current mode buck converter loop measurement.
Would it be possible to place the phase margin and gain margin text somewhere else? In my plots, it is not readable because it falls outside the plot window.

Yes, this is in the enhancement list too The plan is to put those in a legend and not on the plot. In the meanwhile, a workaround is to single click on the plot and manually adjust the frequency range so that they don’t spill over.

Rolandvanroy wrote:
I hope you can help me clarify above items. If there is a help file that already answers these questions please let me know. Thanks a lot!
Roland

Help file above! Thanks for helping me get started!

Last edited by hexamer on Sat May 18, 2019 2:47 pm, edited 1 time in total.

Thanks a lot for all the explanation Aaron! I’ll take some time to let it all sink in…

“Noise reject timebase (noise reject mode): Sets the scope’s fixed sampling rate for all noise reject mode sampling. This value should be high enough to avoid aliasing-in noise. The main tradeoff here is that faster sampling rates result in the scope’s buffer being filled faster and thus limits the minimum stimulus frequency attainable. For a fixed sampling rate, reducing the minimum cycles captured can lower the minimum attainable stimulus frequency. Of course this can also affect the achieved bandwidth.
In your screenshot, I see it set to 100 kHz. I assume your ripple noise is at least that fast, so it likely needs to be a higher frequency (lower timebase)”

>> You are right; my converter runs at 800kHz. I should use higher frequency value ; 2.5MHz works well and gives cleaner plots.

“Yes, adaptive stimulus was designed for SMPS stability measurements. In general, it seeks the minimum stimulus amplitude that still achieves the target output response - of the input or output channel with the lowest amplitude response. As you mention below, this is to try to keep the SMPS in the linear region of operation.
Response target tolerance specifies a percentage above the target that is still considered good (target met). Setting these target and tolerances can take some experimentation. Good initial guesses are based on the greatest gain you expect to see in the loop. For instance, if you know you’ll be measuring in a band that has 60dB loop gain, and your injection is only capable of delivering 4Vpp, of course a target of 100mv will never be met. The target should be less than 4 mVpp.”

>>Ah, now I understand the use of the target value.

“With a maximum of ~67 mVpp injection and 60 dB gain, you’d definitely experience issues at low stimulus. Since the scope is 8 bits and minimum +/- 20mV range, the response is going to be less than a single count. And that’s all ignoring ENOB and the possibility that ripple current is going to force higher ranges. If you can, you’d benefit from higher injection amplitude. OTOH, as other’s have pointed out before, the response in this region is often not very important since PM and GM are usually at higher frequency. You mention above that inability of adaptive stimulus to reach target even happens at lower loop gains. Could it be that your target setting is still too high? I don’t see it in your pictures and if I recall correctly, it’s defaulted to 100mV. If that’s not the case, I’d have to look at the full log with adaptive stimulus diagnostics turned on to see what’s happening.”

>> I increased the transformer termination value from 10ohm to 51ohms. With 600ohm generator impedance and 4V generator setting I can get max 313mV insertion signal. By lowering the target value I can let the adaptive stimulus mode work over a wider frequency range. But it still will show the retry timeout message at low and high frequency range. Probably due to those ranges have the lowest input or output signals. The adaptive stimulus is a bit scary in high frequency: the converter duty-cycle can go wild with too high insertion signals. In some converters this could lead to problems.

“ As an alternative to adaptive stimulus, I am planning a feature where a user could fill out a custom execution plan which would include stimulus amplitudes for each step.”

>> This is indeed the preferred method.

“I'm curious how one would pick numbers based on the SMPS under test that would keep it in linear mode.”

>>There is an LC filter between switches and output in a buck converter. Below the LC resonance the duty-cycle variation for achieving the required stimulus amplitude at output is small. But above the LC resonance the filter attenuates with 40dB/dec. so the duty-cycle variation will need to increase quickly to produce the desired stimulus amplitude. Duty-cycle swing can be calculated based on LC filter, frequency and stimulus amplitude. The duty-cycle swing should stay away from converter minimum and maximum duty values. Another limit is the converter operation mode: Buck converters they should stay in CCM throughout the sweep. Too high duty variation could cause the inductor current to reach zero, resulting in DCM or PSM modes and would lead to changes in the gain and phase curve.
The optimal stimulus amplitude at different frequencies can be set by doing a “dry-run” in scope mode while adjusting the AWG amplitude and observing the switching signal.

I’ll do some more tests during the weekend and let you know any findings.

I have done more testing and generated a report showing your FRA performance vs Bode-100, and details on stimulus vs frequency in stable and unstable converters. I also included some data on a DIY insertion transformer with quite good response. The report is a PDF of 2MB size, but I cannot attach such large files here. Can you please advice how I could send this doc to you?