|Product Performed to Expectations:||9|
|Specifications were sufficient to design with:||10|
|Demo Software was of good quality:||9|
|Product was easy to use:||9|
|Support materials were available:||10|
|The price to performance ratio was good:||10|
|TotalScore:||57 / 60|
First, I would like to express my thank you to Tektronix and Element14 for selecting me to roadtest the AFG31052 Arbitrary Function Signal Generator. I feel fortunate and honored to be one of the three people selected for this roadtest and I would also like to thank Element14 for organizing this roadtest. This is an on-going blog that over the following weeks will show my step-by-step process of road testing this instrument.
I knew when the package comes from a delivery confirmation email and I was happy to find it on my porch. I took it inside the garage and I opened the box – here is a picture of the opened box:
Inside the box I found these items: the AFG31052 instrument, compliance and safety instructions, NIST-traceable calibration certificate, power cord, USB cable, and two BNC cables:
I was very eager to turn on and start using this instrument, so I took it to my lab bench, I connected the power cord and I pressed the “on” button. As it turned on I was impressed of the quality of the display.
This is a 9 inch high resolution touch screen with a bright and sharp image. Here is a picture of the AFG31052 after I turned it on:
The next hour I spent on reading the user manual and watching the videos on Tektronix AFG31000 series web site. I was impressed of the amount of information I found on the Tektronix web site for this instrument. Here is a screenshot of the user manuals and technical documents available:
and here is a screenshot of the software available to download and then a list of the available videos:
There is also additional help available through phone calls, email, or chat:
Performing Basic Measurements:
Next I have performed a few basic measurements. First I setup the AFG31052 to generate a 1MHz sinusoidal signal on channel 1 and I connected the oscilloscope probe to the channel 1 BNC connector:
The oscilloscope showed the sinusoidal waveform; however, the amplitude value was lower than what I expected based on the AFG programmed value.
The frequency value is correct, 1MHz. I think there might be some attenuation in the way I am probing the signal, so I removed the high impedance oscilloscope probe and I connected a BNC cable directly from the AFG31052 to the oscilloscope:
With this measurement setup the amplitude is higher and close to 2V pk-pk or 1V from center to the top of the sinusoid:
However, something still does not make sense here. Yes, if the programmed amplitude of 1V is assumed as measured from the center to the top of the sinusoid the waveform on the oscilloscope matches the expected amplitude value of 1V or 2V pk-pk. But the AFG generator screen shows the waveform amplitude as 500mV from center to top and 1V pk-pk, which is half of what I have assumed and what the oscilloscope has measured:
The 1V pk-to-pk matches the drawing on the screen, so the question is why the oscilloscope measures double this value. Then I figured out why: the AFG generator displays the waveform amplitude as it would be measured if the output signal is applied to a 50 Ohms load (or a 50 Ohms characteristic impedance cable terminated into 50 Ohms resistive load to ground). So the actual voltage at the AFG driver output has to be double the displayed value because the AFG output impedance (50 Ohms) and the load (50 Ohms) form a resistor divider for the output voltage, thus reducing the amplitude to half. This is why the oscilloscope with the high impedance probe has measured close to 2V pk-pk amplitude – in this case there was no load so the value measured was the AFG driver voltage. Then when I connected the BNC cable directly between the AFG generator and oscilloscope the signal flowed into a 50 Ohms input impedance. The only thing that I missed was to setup the oscilloscope termination value to 50 Ohms in the probe setup. After doing this the oscilloscope displayed waveform matched the AFG programmed waveform parameters:
Next I wanted to check the frequency spectrum of this sinusoidal signal. The MSO3104 oscilloscope has a built-in spectrum analyzer, so I connected the AFG31052 channel 1 output to the spectrum analyzer RF input as shown in the figure below:
The frequency spectrum of a “pure” sinusoidal signal is supposed to contain only the fundamental component at the signal frequency value. The measured frequency spectrum shows the fundamental component and three “unwanted” spurs. I don’t know the cause of the spurs but I assume it can be some coupling from other signals in my lab or it may be something inside the AFG.
Next I have setup the AFG to generate a square wave signal and a ramp signal. To my surprise, the maximum frequency of the square wave signal is 40MHz not 50MHz and for the ramp signal is much lower, 800kHz. From the AFG specs and the Fourier transform perspective this makes sense as the square wave signal and ramp signal requires higher frequency spectral components, but a user may be surprised by these limitations (especially for standard square wave and ramp signals) as when buying a 50 MHz instrument somehow it is expected to do the basic functions at that frequency. From what I read on Tektronix website the upgrade to higher frequencies is done through software update only which means the hardware is capable of operating at higher frequencies, so this instrument should probably be able to generate square wave and ramp signals at 50 MHz if the software did not limit this.
Square wave signal:
The frequency spectrum shows the fundamental component at 1MHz and the expected harmonics at 3MHz, 5MHz, 7MHz ..., and the expected harmonics of a square wave signal. Similarly, for a ramp signal we can see the fundamental component at 800kHz with the expected harmonics at 2.4MHz, 4MHz, 5.6MHz ...
and here are two screenshots showing a pulse signal and a sinusoidal AM modulated signal:
Evaluating the InstaView Function
In this part of my roadtest I will run some experiments to evaluate the Instaview function of the AFG31052 instrument. The Instaview feature computes and displays the waveform seen by the load without explicitly measuring the waveform at the load (which typically requires a separate instrument/oscilloscope). This feature is very useful since in some applications the load is not easily accessible to be probed with an oscilloscope or the probes parasitic capacitance may alter the functionality of the circuit.
As a short background, the waveform path from the generator to the load may be treated either as a “lumped” circuit if the cable length is much shorter than the waveform rising/falling edges or it may be treated as a “transmission line” for longer cables. As a rule of thumb the length of the transition edge is equal to rise time (ps) divided by cable delay (ps/inch). If the cable is longer than six times the length of the transition edge then the interface needs to be treated as transmission line. Let’s take a look at the connection between the waveform generator and the load from the transmission line perspective. In a simplified view we have a transmitter (in this case it will be the AFG31052 instrument) and a receiver that can be an oscilloscope or any electronic circuit:
The AFG31052 channel driver is most probably implemented as an integrated circuit mounted on a package and on a printed circuit board, and same for the load circuit. If we want to add these details to the diagram above, the model of the transmission path may look something like the diagram below:
This diagram includes various parasitic elements like the chip power grid impedance, package power distribution network, PCB decoupling capacitors, signal path inductance, and the parasitic elements of the receiver input impedance. Because of all these parasitic the actual waveform that arrives at the receiver can be very different than the transmitted waveform, like in the example below:
The black line waveform would be the ideal waveform and because of the parasitic elements described above we can have rise time degradation, amplitude attenuation, overshoot, undershoot, roll-off, impedance mismatch steps, reflection and crosstalk.
I think it is quite a challenge for the InstaView feature to be able to compute and display the waveform at the load based only on measurements done at the driver output. So the next experiments will evaluate this InstaView feature of the AFB31052 instrument. The starting experiment setup is shown in the following picture:
The AFG31052 function generator is setup to generate a square wave signal of 40MHz frequency and 1V amplitude and it is connected to the MSO3104 oscilloscope using a coaxial cable. So first thing InstaView asked me to do was to connect the cable between CH1 and Trigger input and calibrate the delay:
By the way, to save this screenshot was quite a challenging task for me. First, I haven't found any screen save button on the AFG front panel as the existing button saves only the setup. Then I searched in the user manual and I found this description, but pressing simultaneously the two arrow keys sometimes worked sometimes didn't.
Finally I figured out that I actually need to press the arrow keys sequentially not simultaneously and then release them also sequentially for the screenshot to be saved.
Next I connected the cable as instructed and I clicked on the “Run” button:
The next step was for AFG31052 to go through the delay calibration procedure. I could hear a few relay clicks inside the instrument and after a few seconds it displayed this screen:
The cable delay was measured as 4.63ns. Next I connected the cable to the oscilloscope and I compared the waveforms displayed by the AFG and oscilloscope:
The oscilloscope input impedance was set to 50 Ohms and the AFG was programmed to generate a 1V square wave signal with the low level at 0V and the high level at 1V (500mV offset programmed). The signal amplitude displayed by InstaView was 965mV and the Oscilloscope has shown 920mV. I considered these values close enough to say that InstaView corelates with the oscilloscope. Next, I changed the oscilloscope input impedance to 1MOhm, which puts the transmission line in “unterminated” mode. In this mode the expected amplitude is double than with 50 Ohms as the 1V programmed in the AFG assumes a resistive load of 50 Ohms to ground, thus dividing the actual driver signal by two (the AFG 50 Ohms output impedance and the load 50 Ohms impedance form a resistor divider that divides the voltage by two). So the driver inside AFG is set to drive 2V amplitude that divides by two into 1V, which is the value that I have programmed and that is displayed on the screen. The waveforms with the oscilloscope input impedance set to 1MOhm are shown below:
The amplitude shown by InstaView is now 1.724V and the amplitude shown by the oscilloscope is 1.92V (2.04V pk-pk including the waveform aberrations). I also considered these values close enough to say that InstaView corelates with the oscilloscope. There is some difference between the oscilloscope and AFG for the waveform amplitudes in both terminated and unterminated cases. One issue that I couldn’t figure out a solution was how to shift the waveform down in the InstaView screen to see the upper part, so not all the waveform is visible on the display. The displayed waveform showed only the bottom half of the signal – I have poked around on the front panel and I also checked in the user manual but I haven’t found a solution. So I decided for the following experiments to remove the offset and generate the square waves “centered” on 0V:
In the next experiment I wanted to see how InstaView handles transmission line reflections and impedance discontinuities. For this experiment I replaced the coaxial cable with a test fixture made of three coaxial cables connected with two three-way splitters. The signal splitters allow adding “floating” cables that disturb the overall cable transmission line characteristic impedance. The floating cables connected at the splitters are also called “transmission line stubs” First I started with the cables only (no stubs) using the teat setup in the figure below:
First I calibrated the cable delay and then I connected it to the oscilloscope with the input impedance set to 50 Ohms. The waveforms displayed by InstaView and oscilloscope are shown in the picture below:
For each of the following measurement I first calibrated the cable delay and then I performed the measurement. Next I added one “floating coaxial cable” “stub” to one of the splitters, which introduced a discontinuity in the characteristic impedance that then created signal reflections.
I have then re-calibrated the cable delay and then I looked at the waveforms. The signals displayed by InstaView and oscilloscope are shown below:
As I have expected I see reflections on the oscilloscope waveform after each rise/fall edge. The InstaView shows also these reflections in the region marked “A”, however, it also shows some “unexpected” reflection bumps at region “B”. I couldn’t explain the “B” reflections so I ran more experiments.
Next, I moved the “stub” cable to the other splitter:
The oscilloscope showed more reflections after the rise/fall edges but InstaView showed less reflections in region “A” after the rise/fall edges. The “bump” in region “B” remained there. Similar discrepancies I could notice after adding the second “stub” cable:
I then changed the oscilloscope input impedance to 1MOhm so the transmission line operates in “unterminated” mode. For each measurement below I first calibrated the cable delay and then I performed the measurement. Here is the setup and waveforms without stubs:
and with one stub on the second splitter:
and with two stubs:
I have noticed that the “bump” in region “B” shifts to the left when adding the second stub compared to the previous one-stub case. I couldn’t explain this so I continued my investigation experiments.
So after these measurements I realized that the AFG31052 instrument has the capability to sense the impedance discontinuities and reflections on the transmission line but somehow it does not process the information right as the displayed waveform is different that the oscilloscope. To further investigate this I setup an experiment that used on e cable with one splitter at the oscilloscope side:
Then I have done two tests:
The main idea of this experiment was to create a “temporary” impedance discontinuity at the end of the line (oscilloscope input) that creates a large “step” in the waveform rise/fall transition edges:
Here is a summary of these two experiments results:
So basically what I have found out was that in order to have the correct waveform in InstaView I have to calibrate the cable without the “stub” and add it later. If I calibrate the AFG with the cable and stub the InstaView waveform is not correct. Here is a summary of the cable calibration modes and InstaView waveforms accuracy:
The stubs on the cable alter the cable delay calibration results, though I think it is more than that as when I entered the delay values manually I still saw similar behavior.
This result explained why the previous experiments with the three cable fixture had inaccurate InstaView waveforms, because I have calibrated the cable fixture with added stub(s) before each measurement.
So in conclusion it looks to me that InstaView works with good accuracy for standard point to point transmission line interfaces. For more complicated transmission line topologies the reflection mechanisms need to be analyzed with respect to InstaView cable delay calibration method to make sure that the InstaView displayed waveforms are correct.
I am happy that I have figured out how to use the InstaView correctly. Though, for some applications where there are transmission line stubs in the circuit that cannot be removed during delay calibration my technique won’t work.
I have done some more analysis and modeling/simulations on how InstaView works based on an application note on Tektronix website and I think that now I understand the limitations of going around impedance discontinuities and transmission line topologies (non point to point topologies with multiple stubs) when AFG31052 calibrates the cable delay. Further “brainstorming” made me develop an improved technique for cable calibration that would take care of the impedance discontinuities like the stubs used in these experiments. I will look further into testing my improvement method if I could somehow create a script or program for the AFG instrument.
AFG31052 Double-pulse Function Experiment
In part 3 of this road test work I will use the double pulse feature of the AFG31052 function generator to measure the switching characteristics of a MOSFET power transistor. MOSFET transistors are used in switching power converters and one of the main goals in designing power converters is to reduce the energy losses. As a simplistic explanation, MOSFET transistors are used in power converters as switches that dynamically route the current on different paths between different energy storage elements like capacitors and inductors. An ideal switch should not loose energy when turning on or off. However, real switches like the ones made of MOSFETs (and other type of transistors too like IGBTs) loose energy when switching due to resistive dissipation inside the transistor and momentary parasitic currents. The following picture shows a MOSFET transistor with the device parasitics annotated with red color:
The “unwanted” power dissipation happens during the transitions from “OFF” state to “ON” state and form “ON” state to “OFF” state. The double-test measuring method uses a circuit similar to the one in the figure below:
The signal generated by the AFG30152 is applied to a gate driver integrated circuit that then drives the gate of M1 transistor. When the AFG output is at logic low M1 is OFF and when the AFG output is at logic high level M1 is ON.
The image below shows the circuit implementation in my experiment:
The MOSFET transistors that I used are STFH10N60M2STFH10N60M2 N-channel 600V MOSFET rated at 7.5A drain current. The complete experiment setup is shown in the figure below:
The AFG31052 is setup to generate a double pulse with the parameters shown in the screenshot below:
The oscilloscope probes are connected as follows: Ch1 (yellow) measures Vds of M1 transistor, Ch2 (blue) measures Vgs of M1, and Ch3 (purple) measures the drain current of M1 by measuring the voltage on a 1 Ohm resistor connected in series with the drain. Since the value of the resistor is 1 Ohm the measured voltage value in Volts represents also the current value in Amperes.
With these experiment setup parameters the oscilloscope displays the waveforms shown in the screenshot below.
During the time interval annotated as “1” the AFG31052 generates the first pulse that increases Vgs above the transistor threshold voltage and turns it ON. When M1 is ON current flows through the inductor and M1 transistor, as shown in the diagram below:
The voltage on M1 drain drops to zero (yellow trace). The current starts ramping up as energy gets stored in the inductor.
During the time interval “2” the M1 transistor is turned OFF and the inductor energy discharges through M2 diode, “D2” into Vcc supply. This time interval is kept short to keep the current almost constant.
During the time interval “3” the second pulse of the AFG31052 turns ON M1. During this time the Id current of M1 overshoots due to the reverse recovery of the diode D2. The switching parameters of the M1 transistors are measured with the oscilloscope. Here are the values that I have measured with the corresponding waveform screenshots:
tON (measured form 10% Vgs rising edge to 10% Vds falling edge):
tON is measured with the two cursors and it is equal to 128ns. Vds fall time (90% - 10%) = 43.9 ns as measured in the above screenshot (oscilloscope measurement function displayed at the bottom of the screen)
td(on), the time interval between Vgs at 10% of its peak and Vds at 90% of its peak amplitude = 96.4ns as measured with the cursors on the screenshot below:
For the rising edge of Vds, toff is measured with the cursors in the following screenshot:
The rise time as measured with the built-in oscilloscope function is 150.5ns as shown at the bottom of the screen in the screenshot above. The td(off) value is measured with the cursors in the screenshot below and it has the value 119ns:
The energy loss can be calculated as an integral of Vds x Ids over time for ON-OFF transition and OFF-ON transition.
The reverse recovery current canbe measured on the rising edge of the second pulse of the AFG31052 when starting the time interval “3”. During time interval 2 the D2 diode conducts forward the current generated by the energy stored in the inductor. As M2 turns ON at the beginning of time interval 3, the diode conducts in a reverse mode for a short period of time – this is the reverse recovery current. The reverse recovery parameters are measured with the oscilloscope and shown in the screenshots below:
The reverse recovery current is measured with the horizontal cursor lines I the screenshot below.
The reverse recovery current measured in this experiment is 6.12A (6.12V/1 Ohm resistor). He reverse recovery time is measured on the screenshot below:
The reverse recovery time is measured as marked with the cursors on the purple trace and it has the value 34.5ns. From these values the energy loss due to the reverse recovery current can be calculated.
AFG31052 ArbBuilder Waveform Builder Experiments
In this part of the road test I will evaluate the ArbBuilder waveform builder feature of the AFG31052 instrument. In this experiment I will create multiple arbitrary waveforms that reassemble the signals measured by Electrocardiograph (ECG) sensors and use these waveforms for testing the input sensitivity and the overall receiver performance and the data processing of an ECG instrument. The ArbBuilder feature of the AFG31052 function generators enables me to generate ECG waveforms that replicate specific human body heart diseases/conditions that otherwise would have been hard to have available to test the ECG digital signal processing capability and electrocardiogram artifact detection.
For the test setup I wanted to use my ECG instrument:
But for some reason it stopped working and I couldn’t figure out what the problem was. So I shifted to a backup solution to use an ECG evaluation board from Analog Devices:
This board uses an ECG dedicated integrated circuit AD8232 which has been designed to be the front-end circuit of an ECG instrument. Here is a picture of my experiment setup:
The ECG signal is displayed on the MDO3104 oscilloscope. The oscilloscope can save the waveform as a csv file that can then be imported into ECG analysis software for automatic processing.
So I started by first measuring an ECG signal of my heart with the AD8232 evaluation board, which I then saved as a csv file. I will import this file later into the AFG31052 generator but before that I wanted to generate an arbitrary new ECG waveform using the built-in ArbBuilder feature:
So I have pressed the ArbBuilder button on the touch screen, which opened the waveform editing window and I then selected the “New Waveform” option:
Here there are multiple modes available to generate a custom waveform. For my ECG waveform I have chosen the “Freehand” drawing mode:
And then I just draw the waveform with my finger on the touch screen of the AFG31052 generator. Here is a screenshot of the waveform with the main components annotated with pink color:
The presence of these components and also their size, location, and shape can be used to diagnose various medical conditions of the heart functionality. This waveform does not have any abnormalities, so applying it to an ECG instrument and then to an ECG interpretation software it should not show any heart functionality issue. If I want to test how well an ECG instrument and interpretation software work I can build multiple ECG waveforms each with a specific abnormality and then I can send the waveform to the ECG system and processing software to test how well the software identifies the abnormalities. Here is a screenshot of this waveform sent to the ECG evaluation board and displayed on the oscilloscope:
Next, I have inserted abnormalities by editing the ECG waveform in the ArbBuilder feature of the AFG31052 signal generator.
For this experiment I chose to use an ECG waveform that I measured on my heart with the AD8232 front end ECG evaluation board. This ECG waveform was measured with the MDO3104 oscilloscope and saved as a csv file. First step was to import this csv file into the AFG31052 signal generator:
I then saved it and I sent it to channel 1 output and the ECG evaluation board. However, the waveform on the oscilloscope showed a double pulse due to different time intervals between the two QRS complex “spikes”:
So I decided to use the ArbBuilder waveform edit function to remove the second QRS section and leave only the first one that would continuously repeat. To do this I opened the waveform in ArbBuilder and I set the vertical cursor somewhere in the middle of the spacing between the two QRS “spikes”:
then selected “Cut”, which has removed the section on the right side of the cursor:
I saved this waveform and then I sent it to the ECG board. The waveform displayed on the oscilloscope has removed the double spike:
The trace is stable now as the distance between the picks is constant on this edited waveform.
Next I wanted to insert ECG abnormalities into the waveform. First step I created a sequence of heart beats pulses on the AFG by copying the single pulse multiple times.
I started from the single heart beat pulse from the measured ECG waveform:
Then I pressed “Copy” and I moved the green vertical cursor to the right side of the screen. I then pressed “Paste” and I selected the option to paste the copied signal after the cursor. A copy of the ECG signal was then placed on the right side of the vertical cursor:
The single heart beat pulse repeats itself and now there are two consecutive pulses. I then repeated this copy/paste procedure to create a four pulse sequence:
On this sequence I have created an ECG abnormality condition named “Premature ventricular contraction” (PVC) on the third pulse:
Here is a short video showing how easy it was to use the draw/free hand feature to modify the arbitrary waveform and introduce this ECG PVC abnormality:
I then saved the waveform and sent it to the ECG board and viewed it on the oscilloscope:
Next, I have inserted another ECG abnormality condition named “Sinus arrhythmia”. To do this I had to extend the spacing between two QRS complexes. So I used the ArbBuilder in edit mode to copy the section on the right side of the cursor (in the following screenshot) then move the cursor and paste it to increase the spacing between the heart beat picks:
Then I sent the waveform to the ECG board and view it on the oscilloscope. The spacing between the QRS complexes 5 and 6 is longer than the spacing between the rest of QRS complexes, as shown in the following screenshot:
Other ECG waveform abnormalities can be inserted the same way using the AFG31052 ArbBuilder functions. Complex ECG waveforms can be made by combining different segments of normal ECG with abnormal ECG using the advanced waveform sequencing mode:
In this mode the previous created waveforms saved in different files are called and placed in the desired sequence. Each segment can be repeated multiple times as defined in the table and the sequence can advance in the order the files are listed in the table or jumping from one line to another line as define I the corresponding field. The bottom of the screen shows the expected waveforms sequence based on the definition in the table:
This way I can create long ECG sequences that contain various abnormalities and use them to test the functionality and performance of ECG instruments and the accuracy of the automatic ECG interpretation software.
The advanced sequencing mode and the free hand editing mode are a quite convenient way of defining arbitrary waveforms. The other waveform editing functions (like mathematical equation mode and various draw modes) are also very convenient modes of defining arbitrary waveforms. The copy and paste mode is quite convenient to replicate sections of the waveform to create different sequences. Overall I am impressed by the ArbBuilder waveform generation and editing features of the AFG31052 instrument.
This concludes my road test work for the AFG31052 arbitrary waveform generator. I enjoyed performing these experiments over the past few weeks and I look forward to continue using this instrument in my daily activities.