Categories
Analog Electronics Engineering Work

When to Try Something vs When to Study Something

Irony is having a blog post in your queue with a title such as this one and just sitting on it for weeks on end. Luckily I’ve been trying some things instead of studying them, it just so happens that those things have nothing to do with this site. I hope to discuss those on this site soon.

I am a glutton for knowledge.  Part of it is my fear of looking silly in front of co-workers when I don’t know the answer to something. Part of it is feeling like my knowledge base is lacking and the thought that I can always learn or teach myself something new. But when presented with a new challenging situation that requires you to learn the question is always the same: where do you start? Do you jump in and try it out? Or sit back and study what others have tried so as to not duplicate their mistakes?

There are two extremes

  1. You study so much and try to take in so much that you become paralyzed by information
    • I feel like this happens to Generation Y more than other generations. Not because we are dumber than others. Instead, I think we are so accustomed to having all of the necessary knowledge required to solve a problem at our fingertips (i.e. Internet, ChrisGammell.com, etc).
    • Academic thought processes often begin with simplistic assumptions about the model you’re considering. Analyzing these over and over can be very time consuming and can quickly become too complex to handle. Even analyzing the minutiae associated with a single transistor can be mind boggling. What happens when you try and expand that knowledge to 10, 10k or 10M transistors?
    • You over simulate, over analyze, over think a problem past the point of diminishing returns. An example would be designing a new type of toothbrush. You can model the toothbrush, the bristles, the handle, the shapes, everything; you can even go out and get ideas from your toothy customers about what they think they would like or dislike about your design. But until you prototype your new type of toothbrush and put it through testing (product testing, tooth scrubbing ability, will it shatter in someone’s mouth), then all of the testing and surveying in the world won’t matter.
  2. You have little knowledge of a problem or situation that you just start changing stuff randomly and keep changing until something works…without realizing the consequences.
    • This seems to be the modus operandi of the inexperienced, but not necessarily the uneducated. A gutsy, recently graduated electrical engineer may emerge from the cocoon of the academic environment ready to go out and change the world. And every resistor value of a circuit board they encounter. And mess with the capacitors. And change the model of the op amps. Oh, and don’t forget to swap out transistors. “What?? It still doesn’t work? But why?”
    • This can be as much a symptom of engineering bravado as it is bad conditioning. If the person involved has always had simple problems placed in front of them that have obvious or at least semi-obvious solutions (ahem, most introductory electronics labs), they will fix the “broken” component and pat themselves on the back. In the real world, that “broken” component isn’t broken at all. It’s just out of spec and you can’t figure out for the life of you why that unit you’re testing refuses to turn on anymore after increasing 5 degrees internal temperature.
    • You forget/refuse to read the manual. Granted, some of the greatest “tinkerers” out there can just magically turn a knob and get a broken piece of equipment to work. But the reason they can do that is because they actually turned the wrong knob about 1000 times the last time they tried to fix something like this and that knob did absolutely nothing.

A Good Mix (for me, at least):

[STUDY] My own personal mix when it comes to circuit problems starts with the problem definition. Understanding the problem is so much more important than what you study, how long you study it or how you begin to test out your ideas for how to fix it. If you don’t understand what the real problem is all that later work is for nothing! However, I try to understand the issue without going overboard and trying to understand every single minute detail; this could be just as bad as studying a possible solution for hours on end.

[TRY] Once I have a grasp on what the problem is, I try the obvious stuff. You’d be surprised how often it can be the really dumb things that trip you up. And those might not even be the problem you’re trying to fix. You could try to troubleshoot a blank screen for 20 minutes, throwing your best ideas and debugging techniques at it before you realize, “Whoops!” you never plugged in the display cable. Or you can’t get your software to work once you load it onto your electromechanical whizzbang toy…but you actually loaded the wrong version of the software or the toy doesn’t have any batteries in it. The silly things will waste your time and throw you off the trail of the real problem if you’re not careful.

[STUDY] Next is researching the problem to see if it has happened before. Some of you out there will have unique situations, like making a new analog chip that no one has ever made before. But I’d guess more of you will be encountering problems that can be researched. Even the analog chip designers will see issues that are similar on some level to other products or models within a corporation. Oftentimes the best troubleshooters are those who are able to compartmentalize problems and then analyze where those problems came from and research how others have fixed it in the past. I’d rather have a boring problem that someone else can easily tell me how to fix than one that I can’t figure out at all.

[TRY] After trying and then studying all of the really obvious stuff, I start to go back to my resources–either online or in print–and start to search for information on the topic. Obviously the online information is much easier to search, but I also have some trusted books that I turn to on a regular basis. I might see a chunk of a circuit that looks familiar and try flipping through the pages to see if I can’t find a similar circuit. If that doesn’t work or the circuit looks extremely foreign to me, I’ll go back and study some of the basic properties of the components within the circuit to see if there might be a certain property the designer used that I have overlooked. And if all else fails, I’ll start to ask around to try and gather others’ knowledge of the circuit. True, this isn’t quite studying, but can often be more effective. I try and balance asking others for assistance only after I have tried to solve the problem on my own and not made any progress. I think it is important for my personal growth to struggle with a circuit before asking for help and I think it’s important to not get in the habit of running off and asking for an answer so I don’t waste the other person’s time. However, I don’t want to be so stubborn that I waste my time and the time of those who are paying me.

[STUDY] Alright, so now you know what the circuit is and how it sort of works. But you also know that you need to change the circuit in order to make it work better. What now? Next I would try and write out any equations I know that are relevant to the circuit. Not necessarily any equation, that could end up being a waste of time. Keep it simple and make sure you know where the currents and voltages are in different parts of the circuit. If there are components (such as capacitors) in the circuit, include basic equations that can help to describe their behavior. If you don’t need 3 chalkboards to do so, try and figure out the transfer function (relationship from input to output). If you have a circuit that is too complicated either break it down into smaller pieces and try and figure out the transfer function or take the plunge and try it out in SPICE. This will help you to better understand how the circuit might behave when presented with certain inputs. All of these exercises are done in order to present you with a solid starting ground for when you actually construct the circuit, so you know what to look for and what behaviors to expect.

[TRY] After all of the studying and simulating and pondering about this circuit, you should have at least enough knowledge to begin building up and trying the circuit. This is an important step in any circuit creation process because of the nuances the real circuit will show you. Perhaps you forgot to model a realistic op amp in your SPICE simulation and it was outputting 500 A. Perhaps you didn’t realize in your equations that a resistor will have different properties depending on how much current you actually put through it and that your circuit happens to be particularly susceptible to those changes. Perhaps you completely disregarded a simple concept such as bandwidth and your circuit is now oscillating so hard it breaks. All of these things will be uncovered when you begin to build up your circuit and try out different inputs. Once you realize what some of the realistic problems are you can go back and modify your assumptions and models and start to delve into whatever topics you believe will get your circuit to the optimum operating point.

Finding the right balance between slowing down and taking your time to figure out a circuit or jumping in and seeing what works can be a fine art. Sometimes projects are on a very tight schedule and need a product cranked out the next day (think startup). Sometimes you have one shot at making a final product or else your company will fail (think chip fabrication). Finding your own personal mix will take time and trial and error.

What is your personal mix of trying vs. studying that gets the best results? Leave your tips and tricks in the comments!

Categories
Analog Electronics Learning

Best Free SPICE Program

One of the biggest conflicts of interest in the life of an analog engineer is that the best tool available to them is on a computer. SPICE is a program that was originally developed at Berkley to model silicon level physics to help prototyping (similar to “bread-boarding”) before the final product was produced. While it still remains a valuable tool for chip designers, it has also been broadened in scope and size to include larger designs and higher level models since it was first created. The idea is the same, that electrons basically move in the same way and that potentials in a circuit (voltages) can induce a certain behavior. So as long as the models for high level components (say an op amp or a buck converter) are well thought out, they often can represent the real world equivalent quite well.

I have some experience with SPICE and it is very helpful for both creation of new circuits and analyzing existing circuits for weaknesses.  And since I have started using it, I have tried many different versions and deviations on the original SPICE program, but I have found I like LTSpice the best. Best of all, it’s free. Like, really free. Even if you don’t know anything about circuits (analog or otherwise) and only plan to use the program once, it doesn’t matter!

LTSPICE IV — Free download! (not sponsored, I just really like the free-ness of the program)

I’m going to try my best to resist making this post sound like a puff piece, but I’ve only recently discovered LTSpice and I really enjoy how it works (even compared to similar programs that have licensing feels). The interface is the exact same as LTSpice III, so if you know that program, you won’t have much trouble with switching over to the new version.

Let’s go over some of my previous complaints about the program and how they have been been put to rest:

  1. No central area to enter model information — One of the things I had enjoyed most about the SPICE programs I had used previously was that there was a central location to put all of your model files for any models of components you might have had. Then when you were ready to use DXYZ123 in your schematic, you just match the component type (Diode, Transistor, etc) and then name it the same as your text file. In LTSpice, you have to enter the model information on the front page as a SPICE directive. While this is similar to putting the models in a separate file, if you plan on using a lot of non-LT parts in your design, your schematic can get quite cluttered.
  2. Harder to create high level schematics — OK, this was really me. I was used to different hot keys in order to modify the schematic. Really this was my impatience at learning a new system, but once I did, it’s not too bad entering new information.
  3. Only Linear Tech component models — While this is a bit annoying, it is also quite understandable since they are giving you a complex SPICE modeling program for free. There are some common passive components throughout, and you can add to libraries to add even more passives, but once you get into active parts, they are exclusively LT. See point number 1 above in order to add models for Analog Devices, National Instruments, Maxim, etc parts.

OK, enough of the downsides, let’s go over what I think sets LTSpice apart from its more expensive competition:

  1. Power consumption calculation — Hold down the alt key and on any component in your schematic and you can map the power consumption on the simulation graph (see below). This equation can be quite complicated, especially for the models that are included for all of the LT parts. As power saving techniques become more and more important to electronics manufacturers, this feature becomes indispensable. If you’re not too big on efficiency but happen to care about temperature, this same feature can estimate how much energy (still in Watts) the individual components will emit based on the power dissipated. At the very least, even if the simulation is not exact in how much power is burned during processing of a circuit, you can graph the rates of all power consumption and see which is the biggest consumer and try to optimize that part.
  2. Efficiency calculation — Again, this will become more and more important to engineers as the focus on simple fixes in products for energy efficiency becomes more prevalent. Here you have to name the input and output signals specific nodal names, but once you do, the program will automatically calculate how much energy is being converted into useable energy and how much is being wasted. An example would be in a circuit made to regulate 10V down to 5V. This can be done with efficiencies up to 90%, but some amount of energy will be dissipated by resistors or active components like op-amps. Ya gotta spend energy to make energy.
  3. Dual Core integration — This is one of the biggest improvements from LTSpice III (really it was called SwitcherCAD III) to LTSpice IV. Now they have support for dual core processors which are quickly becoming the standard in computers from desktop to laptop to netbooks (OK, not yet on netbooks). Either way, if you are only using one available core for your simulations, you’re running at roughly half of what they COULD be running at. I have a dual core on my current machine and LTSpice quickly used up the available resources and the quickness of results showed the difference. LT is still working on the bugs on some types of computers processors, so they only run on one core, but hopefully it will be functional on all types of machines soon.
  4. Graphing function — This isn’t any different from LTSpice III, I just thought I should mention how much I like the graphing abilities of this program as compared to others I’ve used. LTSpice really grabs hold of the graphic model in SPICE and runs with it; their software allows you to click on a node to find out the voltage (even after the simulation is completed) or to click on a particular component to find out how much current has gone through that part throughout the simulation. The point and click method allows for quick diagnosis of problem components and circuit layouts.

  5. Dynamic Simulation — Linear Tech is a big player in the switcher market (a switcher basically takes input power and pulses an output–usually through a capacitor or inductor–to produce a stable output). However, the side result is that their program is well suited to handle rapidly changing inputs. I plan to re-construct my Wurlitzer 200A schematic in LTSpice in order to better understand some of the parameters affecting the sound and maybe even inputting and outputting sound files (you can do that with raw formats). More on that in later posts.

All and all, I know I sound like I’m gushing, but I always enjoy free software that is made well. It’s like some of the open source programs I love, but with a company behind the product supporting it (and yes, trying to sell you chips).  There are many other great SPICE programs out there and some of very worth the fees they charge. However, if you are looking for a quality program at no cost, I would suggest LTSpice.

Do you know of other SPICE programs? Do you like them better for one reason or another? Please let me know in the comments section.

[xyz_lbx_default_code]