Adam_Mcconnell_SPR11_v3

23
The World Leader in High Performance Signal Processing Solutions ADI Confidential Information ADI Confidential Information Not for external distribution Not for external distribution COOP Presentation Spring 2011 Adam McConnell 2 nd Rotation ATV Group Supervisor: Brent Scholten

Transcript of Adam_Mcconnell_SPR11_v3

The World Leader in High Performance Signal Processing Solutions

ADI Confidential InformationADI Confidential Information – – Not for external distributionNot for external distribution

COOP PresentationSpring 2011

Adam McConnell2nd RotationATV Group

Supervisor: Brent Scholten

—Analog Devices Confidential Information—

Overview of Projects

Implement a Debugger within the XRC Board Evaluation softwareFirst extensive use of the Python languageGoal: GUI-based Debugger integrated into XRC.py

Use excel to model a Low Pass Filter with two different architectures: Sallen-Key topology & Cascaded 1st Order RC filtersFirst attempt at AC simulations and design in generalGoal: Want to compare between the two architectures and see

which implementation is more suitable for what Ralph Moore wants

—Analog Devices Confidential Information—

Debugger Project – Before status

Why is it needed?Old debugger uses PyShell and the pdb (Python DeBugger)

module This is not user-friendly

Old debugger wasn’t being used that oftenFollowing slide will illustrate how old debugger works

When an error occurred in the script, users must wait for the script to finish, try to correct it and run again. This can become tedious, if not impossibleEfficiency comes to a standstill for huge script files or scripts with long

loops

—Analog Devices Confidential Information—

Illustration of Old debugger

—Analog Devices Confidential Information—

Illustration of Old debugger

How to set breakpoints

How to start debugger

Continue/Step through script

—Analog Devices Confidential Information—

Debugger Project Goals1. Use wxPython instead of pdb & cmd (Command) modules

wxPython has become a popular alternative over Tkinter XRC GUI-features are already written in wxPython

Makes no sense to write a GUI program using different GUI-wrappers Other advantages

2. Create a more visual, graphical approach to the debugger Buttons needed for “step” and “start” functions Read back and highlight the current line number that the

debugger is currently on

3. Want Debug class to act independently from the Script Editor frame

Allows access to rest of the software instead of being focused on using just the debugger when active

—Analog Devices Confidential Information—

Debugger ProjectBefore: no buttons Now: with buttons

Set breakpoints

Go to next lineContinue to next breakpoint

Start debugger

—Analog Devices Confidential Information—

Illustration of New Debugger

—Analog Devices Confidential Information—

Debugger Project – ChallengesAbility to program, understand & modify code with the Python

book closed.

Reading and understanding professional code spread across multiple filesThis includes understanding pdb, bdb, cmd (modules found in

python standard library) and understanding XRC software which included at least 10 different modules

It’s the shortest block of code that’s the hardest to understandLooking at large amounts of documentation to find what I need

To look up what a function does or how it is implementedTo find a function that is related to what I want to do

Highlighting and reading back the current line was the hardest feature for me to implement

—Analog Devices Confidential Information—

Debugger Project – Final Status Initial Objectives:

Create a Debug class which use wxPython as an interface Include functional buttons to:

Start Debugger Step to next line in script

Correctly highlight current line in script Close the debugger when reached end of script file

Added Features: 2 additional buttons:

Set/Remove breakpoints Continue to next breakpoint

Change the color of ‘Debug’ Button to indicate that Debugger is on and working

Drawback: Debugger Class only works when XRC.py program is opened through terminal and

run through Python Interpreter instead of using the executable file (.exe)

—Analog Devices Confidential Information—

Excel AC Sims: Need & Goals

Big Picture: Can excel be a viable alternative to other more expensive tools?MathCADMatLab

Goals:To act as test bench simulations for certain filters

Such as a Butterworth Filter

See the effects of a non-ideal amplifier on a transfer function of a second-order low-pass filterTo optimize and model an active filter

—Analog Devices Confidential Information—

AC Sims – Modeling Flow using ExcelCreate a model of an amplifier with a 1st order transfer function

Gain (Ao), Cutoff Frequency, & Resistive value are to be enteredWhat’s the outcome?

Based on values entered, get to compare against -3dB reference and the Ideal Transfer Function

Model the Cascaded 1st Order LPFC1,C2 are values to be entered; R1,R2 are values to be calculated

based on given cutoff frequencyDetermine an equation for Q (Quality Factor)Show the effects of an amplifier on the overall transfer function

Model Sallen-Key LPFModel key nodes of S-K LPF as described in app_report.pdf given by

Ralph Moore

—Analog Devices Confidential Information—

Model of Amplifier

Cascaded 1st Order LPF and Sallen-Key LPF excel tabs also have the same flow as shown above

Values enteredValues calculated

—Analog Devices Confidential Information—

Model of Cascaded LPF

—Analog Devices Confidential Information—

Excel – Modeling Cascaded LPFFinding an equation for Q:

Put the transfer function in standard form:

Set components as ratios: R1=R, R2=mR, C1=nC, C2=C Q becomes an equation based on ratios, Q(m,n) instead of

Q(r1,r2,c1,c2)

Finding the highest Q possible:If C1,C2 are fixed, what resistance for R1,R2 gives the highest

possible Q?C’s are fixed, means ‘n’ is unchanging. To find maximum of Q, find

when ∂/∂m = 0Q is at a max when m = n+1

BA

—Analog Devices Confidential Information—

Modeling Cascaded LPF – Finding maximum Q

No matter what values are chosen for R, C, m, or n, the Quality Factor for the cascaded LPF cannot exceed 1/2

—Analog Devices Confidential Information—

Cascaded LPF with different Quality Factors

—Analog Devices Confidential Information—

Comparing Cascaded vs. Sallen-Key

—Analog Devices Confidential Information—

Excel AC Sims - Challenges

Switching gears from Python to analyzing circuits and obtaining transfer functionsSpent ~2 months focusing on Python and the Debugger project

Maintaining realistic values for all electric componentsIf components would have realistic values, Damping or Quality

factor would be incredibly large (ex. 10^11)Had to do large sweeps to find the optimal component values

Figuring out why damping factor = .707 no matter what values I chose for LRC components when considering a transfer function of a 2nd order Butterworth Filter

I thought I was doing something wrong, the answer was found within the Butterworth Polynomial

—Analog Devices Confidential Information—

Excel – Final StatusObjectives:

Create a model for the non-ideal amplifier with a 1st order transfer function

Model cascaded 1st order LPF followed by a non-ideal amplifier

Model key nodes of Sallen-Key LPF as described in s-k app report.pdfShowing bode magnitude and phase plots of each node

Model sallen-key LPF by setting components as ratios and gain = unity

Some of my work has been integrated in Ralph’s final worksheets for the design processIt has been shown that Excel is a good alternate and will be used

for the next PLL design

—Analog Devices Confidential Information—

What I Learned overallPython 2.6/2.7

The only true exposure I had to Python was last rotation when writing scripts to automate several machines in lab

wxPythonExcel programming

Using imaginary & complex argumentsProgramming User-Defined functions using VBA

What a Sallen-Key topology isAnd how it applies to Low-Pass filters

Close relationship between Damping Factor, Quality Factor, and the Resistance/Capacitance values that make up the filter

Small insight of what design can be like

—Analog Devices Confidential Information—

Other things I did during this rotation

Updated & Modified WATAutomation_GUI program to successfully parse through 65nm WAT data in addition to the original .18um WAT data

Updated IEEE_1481 program to handle much larger SPEF (Standard Parasitic Exchange Format) files of sizes ranging ~200mB – 1 GBEarlier SPEF files were only 2 – 20mB largeThis is still a work in progress, will continue to work on it during

3rd rotation

Data collecting on ADV7511 parts in labFA testingCRC testing

—Analog Devices Confidential Information—

Thanks to:Brian CampbellHarry GoingsTed HechtBrian HolfordMatt McCarnRod MillerRalph Moore

Meredith Morgan

Steven Reed

Brent Scholten

Barry Stakely

Glenn Templeman

Chris Vaugn

Any questions, comments, concerns, requests?