Lindy Mayfield wrote: > How do you "understand" how a circuit > works and how do you create with your imagination a new one? I'm going to answer the second question first. I've seen several replies from others and I think they are missing the question, which I think is "How do you synthesize a circuit given a task you want it to perform?". I design circuits for a living and I think I'm pretty good at it. However, it's not a easy process to explain because I'm not sure myself what all of it is. How would you explain to someone how to ride a bike? However I was intrigued by your question as a opportunity to think about the design process itself in a structured way, something that hadn't occurred to me before. There are probably much better ways to break it down since I've only had time for a few knee jerk thoughts, but off the top of my head I can think of four components to designing a circuit. I'll call them knowledge of fundamentals, knowledge of components, synthesis, and details. Knowledge of fundamentals is only partly what others have mentioned. Yes of course you need to know, and more importantly truly understand, Ohm's law and others. These are absolutely essential foundations without which any further effort is pointless. However they shouldn't be as daunting as others have made them out to be. Ohm's law is about as simple as it gets, usually expressed as V=IR. I usually think of it in the units form: Volts = Amps x Ohms. But just knowing the equation is only worth about 20 points out of 100. You must be able to truly feel or visualize what a resistor does. As you force more current thru it, the voltage accross it builds up. As you make the resistor bigger, the voltage accross it builds up. The exact math isn't as important as the general feel and intuition that should pop into your head whenever you think "resistor". Now flip it around: Amps = Volts / Ohms. Can you feel that as you put more voltage accross a resistor the current thru it will go up? The third form, Ohms = Volts / Amps is for the details part later. Just like resistors, you must understand capacitors and inductors at this same level. The traditional equations are all over the books you've got, but the way I *think* about a capacitor is Volts = Amps x Seconds / Farads. Actually that should be "delta Volts", but we're getting into details. Again, just being able to write and manipulate the equation is worth 20 points. The other 80 points is for truly understanding and being able to visualize what a capacitor does, screw the exact math. With the addition of the equivalent description of a inductor, Amps = Volts x Seconds / Henrys, you've got the fundamentals for most circuit work. Knowledge of components means you need to know what's out there for use as building blocks. Just like when you write a computer program, you always keep in the back of your mind the basic constructs: IF statement, GOTO statement, FOR loop, computed GOTO, subroutine call, etc. Your whole program is built from these. Your job as the programmer is to combine these basic constructs into a bigger program that does what you want. Obviously there are resistors, capacitors, and inductors out there. But knowledge of components means knowing what real world realizations of these are actually available and in what way they are limited. The equations might look great with a 5 Farad capacitor or 2 Henry inductor, but you have to know that such parts are unrealistic for your little breadboard. similarly you have to not only understand the basics of how a NPN transistor works, for example, but also know roughly the limitations of real parts and what real world parameters are achievable. For example, a real NPN transistor will have a upper limit on collector current, it will turn on pretty quickly when you cram current thru it's base, but won't shut off as fast. You don't need to remember the detailed numbers, just the general principles. Data sheets are there to answer the detailed questions. This section is about knowing the questions to ask. Eventually you will remember details of things you use often. Synthesis is the part I think you were really asking about. I mentioned the other two first because you can't get here without them. Synthesis is also the hardest to describe and I have no idea how to teach it. I've always been pretty good at it, and don't really know how I learned it. Again, how did you learn to ride a bike? How would you describe it to someone who has never ridden a bike? It does feel a lot like writing a program. You know what you want to achieve, so apply cleverness and creative thought into stringing together the available components to meet that goal. One difference is that there is a lot more stuff you have to be aware of when designing a circuit than when designing a program. I think that is because there are more differnet electrical components available, and they each have their own set of real world quirks, unlike program components which always do exactly what they're defined to do. There are a few analogous quirks in programming too though where you have to know what's really going on. For example, something might be nicely solvable by using a array. If I wanted all the prime numbers below 100, I could put them all in a array then cross off ever second, every third, etc. That works fine. On paper that works perfectly fine for prime numbers up to 1M or 10M too, but this is where a real programmer realizes that this method eats up a lot of memory. Maybe that's fine, and maybe not, but this is the kind of quirk a good programmer has to keep in the back of his mind when synthesizing a program. A theoretically correct program that requires 1Mbyte of array space is of no value on a 18F252. There are a few orders of magnitude more of these when synthesizing a circuit, but it's kindof the same thought process. Up until know you are only working out the basic form, often called topology, of the circuit. At some point you have to get out the fine tooth comb and crank out the actual resistor values, check all the power dissipations, etc. In other words, you have to work out the details. Just like with programming where you've decided to generate prime numbers by crossing off non-primes in a array, now it's time to sit down and write the actual detailed code. To me this is a very different thought process, although of course the two are not always sequential and they are intertwined. You might think out the overall circuit in rough terms, then design the details of a particular section, which might cause you to rethink some of the higher levels as you find there isn't enough voltage here for the range of something you want to do, too slow, too power hungry, etc, etc. Sometimes this requires minor tweaks, sometimes more major (crap, I was hoping to get away without boosting the voltage here, but working around it turns out to be even worse). Software works the same way. Once you start implementing the lower layers, you sometimes find that your original concept of the overall structure needs some readjusting. Your first question about how to understand a existing circuit it easier to answer, although often I find it easier to design a circuit than to analyze someone else's without having some idea what it does. I think this is a lot like computer code. It's easier to write your own program to generate prime numbers than to take someone else's undocumented code and figure out that it generates prime numbers. The solution is also the same in both cases. You go thru the design piece by piece to figure out what each of the parts do, then build up to figure out what the overall thing does. I think this is where studying others' designs that have a good theory of operation writeup is useful. This is just like studying others' well documented code to see how they solved a particular problem. After a while you will learn some tricks too that can be applied to your own designs. If you want a exercise, take a look at the schematic to my USBProg PIC programmer, http://www.embedinc.com/products/eusb2/eusb2.pdf. I haven't written up a theory of operation yet, so this is a good opportunity to try to figure it out on your own. Start at the beginning on the first page and try to figure out what each component is doing, and what a few groups of components are doing and why. I'll be happy to explain a piece at a time once you've taken a stab at it yourself. Sorry my answers sounds more like "Zen and the Art of Circuit Design", but there is no esacping the need for being able to visualize the voltages (pressures) and currents (flow) and how all the components react to them. In the end there is a strong component of intuition and "lore" from experience that I find hard to describe. ******************************************************************** Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products (978) 742-9014. Gold level PIC consultants since 2000. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist