Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
university:tools:m1k:alice:oscilloscope-x-y-user-guide [25 Jun 2021 19:32] – Add future Roll Mode info Doug Merceruniversity:tools:m1k:alice:oscilloscope-x-y-user-guide [17 Jan 2023 20:03] (current) – add cautionary note Doug Mercer
Line 15: Line 15:
 ====The Top Menu Section==== ====The Top Menu Section====
  
-The menu section along the top contains various buttons and drop-down menus that control Oscilloscope Triggering, Horizontal time base, Horizontal position, how and what signals are displayed, and run acquisition looping / stop acquisition looping / exit program.+The menu section along the top, shown in figure 1T,  contains various buttons and drop-down menus that control Oscilloscope Triggering, Horizontal time base, Horizontal position, how and what signals are displayed, and run acquisition looping / stop acquisition looping / exit program.
  
 {{ :university:tools:m1k:alice:top-buttons-0.png?800 |}} {{ :university:tools:m1k:alice:top-buttons-0.png?800 |}}
  
-<WRAP centeralign>Figure 2, Top Menu Buttons</WRAP>+<WRAP centeralign>Figure 1T, Top Menu Buttons</WRAP>
  
 ===Triggering functions=== ===Triggering functions===
Line 57: Line 57:
 ===Trace Controls=== ===Trace Controls===
  
-The Curves drop down menu button allows the selection of which signal waveform traces will be displayed vs time. The All button selects all four curves to be displayed and the None button clears all four curves. Plot the Math-X and Math-Y formulas by clicking on those options. ALICE can automatically adjust the trace vertical position to center the CA-V and /or CB-V traces on the midpoint of the waveform each sweep by clicking on either or both of the options below the –Auto Vert Center- heading.+The Curves drop down menu button allows the selection of which signal waveform traces will be displayed vs time. The All button selects all four curves to be displayed and the None button clears all four curves. Plot the Math-X and Math-Y formulas by clicking on those options. ALICE can automatically adjust the trace vertical position to center the CA-V and /or CB-V traces on the midpoint of the waveform each sweep by clicking on either or both of the options below the –Auto Vert Center- heading. This is analogous to a software "AC" coupling mode where the "DC" level of the trace is always centered on the grid.  
  
 When using external Resistor Divider attenuators the frequency response of the Channel may be reduced. The software High Pass frequency compensation can be selected for either channel by clicking on the buttons below the –Input HP Comp- heading. See the section on Analog Inputs below When using external Resistor Divider attenuators the frequency response of the Channel may be reduced. The software High Pass frequency compensation can be selected for either channel by clicking on the buttons below the –Input HP Comp- heading. See the section on Analog Inputs below
Line 99: Line 99:
 Press the <alt> and <printscreen> keys to capture the currently selected window in the copy buffer (clip-board). Then start a program such as Word or Paint (any similar program). Use Paste to place the screen shot into your document or drawing etc. Then save that file to disk. Press the <alt> and <printscreen> keys to capture the currently selected window in the copy buffer (clip-board). Then start a program such as Word or Paint (any similar program). Use Paste to place the screen shot into your document or drawing etc. Then save that file to disk.
  
-It is possible to save the graphics display area to an encapsulated postscript file (.eps). This is used to save a graphics file to be included in another program like a word processor to write a Lab report. It is also possible to save the captured channel A and B voltage and current signal data to a coma separated values file (.csv). For most Time/Div settings the number of sample points is 2 screen widths with a minimum of 2,000 samples and a maximum of 90,000. This saved table of raw sample values can then be loaded into other programs for analysis such as a spreadsheet program or numerical processing program like MATLAB, or Octave. Similarly, it is possible to load in trace data into the channel A and B voltage and current signal data buffers from a saved csv file. This only works when stopped. If the green Run button is pressed new data is captured over writing the data that was loaded from the file.+It is possible to save the graphics display area to an encapsulated postscript file (.eps). This is used to save a graphics file to be included in another program like a word processor to write a Lab report.  
 + 
 +It is also possible to save (with Save To CSV button) the captured channel A and B voltage and current signal data to a coma separated values file (.csv extension). For most Time/Div settings the number of sample points is 2 screen widths with a minimum of 2,000 samples and a maximum of 200,000. This saved table of raw sample values can then be loaded into other programs for analysis such as a spreadsheet program (Excel) or numerical processing program like MATLAB, Octave or Python. Similarly, it is possible to load (with Load From CSV button) in trace data into the channel A and B voltage and current signal data buffers from a saved csv file. This only works when stopped. If the green Run button is pressed new data is captured over writing the data that was loaded from the file.
  
 The Options drop down menu, figure 2, lists a command for enabling smoothing where spline curves are used to connect the input sample points rather than the default straight lines. A second option for connecting the sample points is to use a zero order hold function where a horizontal line and a vertical line are used. This looks like a stair step waveform much like the output of the Digital-to-Analog converters used to generate the AWG output signals actually produce. The Options drop down menu, figure 2, lists a command for enabling smoothing where spline curves are used to connect the input sample points rather than the default straight lines. A second option for connecting the sample points is to use a zero order hold function where a horizontal line and a vertical line are used. This looks like a stair step waveform much like the output of the Digital-to-Analog converters used to generate the AWG output signals actually produce.
Line 107: Line 109:
 <WRAP centeralign>Figure 2, Options Drop Down Menu</WRAP> <WRAP centeralign>Figure 2, Options Drop Down Menu</WRAP>
  
-The Trace Avg button turns on trace averaging. The number of sweeps to average can be set with the Num Avg button. The width of the traces in pixels can be set with the Trace Width button.+The Trace Avg button turns on trace averaging. The number of sweeps to average can be set from the Change Settings controls with the Number of Traces to Average entry. The width of the traces in pixels can be set with the Trace Width in Pixels entry. The width of the grid in pixels can be set with the Grid Width in Pixels entry.
  
 The currently displayed traces will be saved via the Snap-Shot option as reference traces. They can be added to the graphics plot area by selecting the desired trace from the Curves drop down menu for time plots. They will be drawn in a darker color corresponding to the matching live waveform trace. The currently displayed traces will be saved via the Snap-Shot option as reference traces. They can be added to the graphics plot area by selecting the desired trace from the Curves drop down menu for time plots. They will be drawn in a darker color corresponding to the matching live waveform trace.
Line 254: Line 256:
 To keep production costs of the board low, certain trade offs were made. One was to forego programmable input gain ranges that use resistor dividers and perhaps adjustable frequency compensation capacitors. This limited the usable input voltage range to 0 to +5V.  To keep production costs of the board low, certain trade offs were made. One was to forego programmable input gain ranges that use resistor dividers and perhaps adjustable frequency compensation capacitors. This limited the usable input voltage range to 0 to +5V. 
  
-At the bottom of this section, just above the ADI logo, are entry windows which allow input gain and offset adjustments or corrections for any external resistor divider attenuator networks that might be added to the channel A and B inputs ( possibly used when in the high impedance or Split I/O modes ). Save and Load Adj buttons can be found under the File drop down menu. +At the bottom of this section, just above the ADI logo, are entry windows which allow input gain and offset adjustments or corrections for any external resistor divider attenuator networks that might be added to the channel A and B inputs ( possibly used when in the high impedance or Split I/O modes ). Save and Load Adj buttons can be found under the File drop down menu.
  
-The input capacitance, C<sub>INT</sub>, of the analog inputs in the high Z mode is approximately 390 pF (for the rev D design and slightly higher for the rev F design). This relatively large capacitance along with relatively high resistance dividers can significantly lower the frequency response. In figure In1 we again revisit the input structure of the M1k and connecting an external resistive voltage divider R<sub>1</sub> and R<sub>2,3</sub>. The contents of the blue box represent the input of the M1k in Hi-Z mode. To introduce an optional DC offset for measuring negative voltages resistor R<sub>2</sub> is included and could be connected to either the fixed 2.5V or 5V supplies on the M1k. The C<sub>INT</sub> and effective resistance of the divider network form a low pass pole in the frequency response. To give you a rough idea let's use 400 pF for C<sub>INT</sub> and 1 MΩ for the resistor divider. That would result in a low pass response with a 3 dB roll-off starting at around 400 Hz.+===Input Divider Calculator===
  
-A capacitor would generally be needed across the input resistor R<sub>1</sub> to frequency compensate the divider. Such a hardware solution generally requires the capacitor (or alternatively the divider resistors) to be adjustable.+To make calculating an input resistor divider's Gain and Offset values based on the resistor values used and offset connections a simple calculator window has been included (since release 1.3.14). The button directly above the Gain and Offset entries will open the calculator. 
 + 
 +{{ :university:tools:m1k:alice:input-divider-calculator.png?400 |}} 
 + 
 +<WRAP centeralign>Figure Div1, Input Divider Calculator.</WRAP> 
 + 
 +Values for resistor R1 and resistor R2 are entered as well as any offset voltage that is applied to the bottom of the divider. The Exact values, as measured with a bench DMM, can be entered for R1 and R2 to calculate more accurate gain and offset results. The Rint internal 1 MegΩ resistance of the channels is taken into account in the calculation as this will have a significant effect for higher values of R1 and R2. Click the Calculate button to calculate the values. The Channel A or B entries can then be set to the calculated values using the Set CH A and Set CH B buttons respectively. These values can then of course be tweaked as needed for even better accuracy. 
 + 
 +=== Software Frequency Compensation=== 
 + 
 +The input capacitance, C<sub>INT</sub>, of the analog inputs in the high Z mode is approximately 390 pF (for the rev D design and slightly higher for the rev F design). This relatively large capacitance along with relatively high resistance dividers can significantly lower the frequency response. In figure In1 we again revisit the input structure of the M1k and connecting an external resistive voltage divider R<sub>1</sub> and R<sub>2,3</sub>. The contents of the blue box represent the input of the M1k in Hi-Z mode. To introduce an optional DC offset for measuring negative voltages resistor R<sub>2</sub> is included and could be connected to either the fixed 2.5V or 5V supplies on the M1k. The C<sub>INT</sub> and effective resistance of the divider network form a low pass pole in the frequency response. 
 + 
 +<note>The ADALM1000 (Rev. F version) has the ability to separate the voltage measurement connection from the voltage / current output pin, the Split I/O mode control in the AWG settings. The size of the parasitic capacitance is significantly different when using the CH A/B pins in Hi-Z mode vs using the AIN/BIN pins. The required external compensation capacitor value will be very different between the two pins.</note> 
 + 
 +To give you a rough idea let's use 400 pF for C<sub>INT</sub> and 1 MΩ for the resistor divider. That would result in a low pass response with a 3 dB roll-off starting at around 400 Hz. A capacitor would generally be needed across the input resistor R<sub>1</sub> to frequency compensate the divider. Such a hardware solution generally requires the capacitor (or alternatively the divider resistors) to be adjustable.
  
 {{ :university:tools:m1k:alice:input-cir-figure-4a.png?500 |}} {{ :university:tools:m1k:alice:input-cir-figure-4a.png?500 |}}
Line 267: Line 283:
  
 The software frequency compensation for each channel consists of a cascade of two adjustable  [[wp>High-pass_filter#Algorithmic_implementation|first order high pass filters]]. The time constant and the gain of each stage can be adjusted. Normal first order high pass filters do not pass DC so a DC gain of 1 path is added to the overall second order high pass software compensation filter. This structure is often called a shelving filter because of the shape of its frequency response. The software frequency compensation for each channel consists of a cascade of two adjustable  [[wp>High-pass_filter#Algorithmic_implementation|first order high pass filters]]. The time constant and the gain of each stage can be adjusted. Normal first order high pass filters do not pass DC so a DC gain of 1 path is added to the overall second order high pass software compensation filter. This structure is often called a shelving filter because of the shape of its frequency response.
 +
 +<note tip>
 +**Exponential compensation**\\
 +An Exponential compensation technique adds one or more exponentially decaying terms to a step in the signal. With 2 available stages, ALICE can correct for multiple spurious inductances and capacitances in the input divider circuit. Exponential compensation works best for overshoots and undershoots smaller than about 10% of the step height. In this case, a sum of exponential terms is an accurate generic model for such defects.
 +</note>
  
 In figure In2 we show the new controls for the input compensation. To turn on and off the compensation for Channels A and B check boxes are added under the Curves drop down menu. Turning on compensation applies to both the Scope and Spectrum tools (time and frequency measurements). The filter time constant and gain settings can be set using new entry slots in the Settings Controls screen. The DC gain and offset adjust controls are unchanged. In figure In2 we show the new controls for the input compensation. To turn on and off the compensation for Channels A and B check boxes are added under the Curves drop down menu. Turning on compensation applies to both the Scope and Spectrum tools (time and frequency measurements). The filter time constant and gain settings can be set using new entry slots in the Settings Controls screen. The DC gain and offset adjust controls are unchanged.
Line 294: Line 315:
 As we can see for this example the DC gain setting is slightly more than 2 which is to be expected based on the internal 1 MΩ resistor and external 1 MΩ R<sub>1</sub> resistor forming a 2:1 voltage divider. There is a small DC offset due to the leakage current from the ESD protection diodes on the M1k inputs and the parallel combination of R<sub>INT</sub> and R<sub>1</sub>. Your values will likely be completely different based on your hardware. As we can see for this example the DC gain setting is slightly more than 2 which is to be expected based on the internal 1 MΩ resistor and external 1 MΩ R<sub>1</sub> resistor forming a 2:1 voltage divider. There is a small DC offset due to the leakage current from the ESD protection diodes on the M1k inputs and the parallel combination of R<sub>INT</sub> and R<sub>1</sub>. Your values will likely be completely different based on your hardware.
  
-The input gain factor of 2 (2.17 to be exact) increases the allowable measurement range from 0 to +5 V to about 0 to +10 V. Enough to work with circuits powered from a 9 V battery. If you have a 9 V battery try measuring it by connecting the - battery terminal to GND and the + battery terminal to the end of the 1 Meg resistor. You should read about +9 V for the DC average.+The input gain factor of 2 (2.17 to be exact) increases the allowable measurement range from 0 to +5 V to about 0 to +10 V. Enough to work with circuits powered from a 9 V battery. If you have a 9 V battery try measuring it by connecting the - battery terminal to GND and the + battery terminal to the end of the 1 Meg resistor. You should read about +9 V for the DC average.  
  
 ===Adjusting the compensation filter===  ===Adjusting the compensation filter=== 
Line 545: Line 566:
 =====Applying Digital Filtering:===== =====Applying Digital Filtering:=====
  
-With this interface, ALICE Desktop can apply digital filtering to the captured Channel A and B voltage waveform data before being displayed in the Time and/or Frequency domains. ALICE uses the numpy convolve function to perform the filtering function. It is possible to have the program generate a simple Box Car (moving average) filter by setting the length and then clicking on the Box Car check box.+With this interface, ALICE Desktop can apply digital filtering to the captured Channel A and B voltage waveform data before being displayed in the Time and/or Frequency domains. Digital filtering can also be applied to the contents of the generated AWG waveform buffers as well. ALICE uses the numpy convolve function to perform the filtering function. It is possible to have the program generate a simple Box Car (moving average) filter by setting the length and then clicking on the Box Car check box.
  
 The supplied list of coefficients is convolved with the captured data buffer. The list of filer coefficients for either Channel A or B is first loaded from a single column .csv file by using the “Load CH A Filter Coef” and “Load CH B Filter Coef” buttons. The length ( number of coefficients ) and file name will then be displayed. The digital filter(s) will be applied to the voltage waveform data buffers if the “Filter CH A” and/or “Filter CH B” checkboxes are checked. The supplied list of coefficients is convolved with the captured data buffer. The list of filer coefficients for either Channel A or B is first loaded from a single column .csv file by using the “Load CH A Filter Coef” and “Load CH B Filter Coef” buttons. The length ( number of coefficients ) and file name will then be displayed. The digital filter(s) will be applied to the voltage waveform data buffers if the “Filter CH A” and/or “Filter CH B” checkboxes are checked.
Line 557: Line 578:
 Alternatively, a formula for the filter coefficients can be entered using the CH A or CH B Filter formula buttons. The program puts up an entry window where the formula can be entered. Conventional Python syntax is used and all the math and numpy library functions are available as in the the rest of ALICE. The program looks at the arithmetic sum of the coefficients and scales them appropriately for an overall gain of 1 through the filter. Alternatively, a formula for the filter coefficients can be entered using the CH A or CH B Filter formula buttons. The program puts up an entry window where the formula can be entered. Conventional Python syntax is used and all the math and numpy library functions are available as in the the rest of ALICE. The program looks at the arithmetic sum of the coefficients and scales them appropriately for an overall gain of 1 through the filter.
  
-The DFiltACoef and DFiltBCoef array variable are used to store the filter coefficients. The Filter formula coefficient scaling feature can be used to scale a set of filter values read from a file. First read in the values from the file and then simply pass the array through the formula function by entering DFiltACoef or DFiltBCoef for the formula.+The DFiltACoef and DFiltBCoef / AWGFiltACoef and AWGFiltBCoef array variable are used to store the filter coefficients. The Filter formula coefficient scaling feature can be used to scale a set of filter values read from a file. First read in the values from the file and then simply pass the array through the formula function by entering DFiltACoef or DFiltBCoef for the formula.
  
 There are many filter design tools that can be found by searching the web. Here is one that works well but we are not necessarily endorsing it over any others that might be out there: There are many filter design tools that can be found by searching the web. Here is one that works well but we are not necessarily endorsing it over any others that might be out there:
  
-http://t-filter.engineerjs.com/+[[http://t-filter.engineerjs.com/|TFilter Online FIR filter design]]
  
 The array of coefficients ( filter taps ) that it generates as part of the C source code can be copy and pasted into a .csv file for use in ALICE. The array of coefficients ( filter taps ) that it generates as part of the C source code can be copy and pasted into a .csv file for use in ALICE.
university/tools/m1k/alice/oscilloscope-x-y-user-guide.1624642361.txt.gz · Last modified: 25 Jun 2021 19:32 by Doug Mercer