Adam_Mcconnell_SPR11_v3
-
Upload
adam-mcconnell -
Category
Documents
-
view
36 -
download
0
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
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—
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—
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—
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