Page 189 - The Art of Designing Embedded Systems
P. 189

176  THE ART OF  DESIGNING EMBEDDED SYSTEMS


                        anything expensively stupid. (And I load the power  supply components
                        first, testing that part of the circuit before adding the real logic.)
                             It’s a good idea to be on the lookout for excessive heat, especially
                        now that so many components are surface-mounted and tough to change
                        when you blow them up.
                             All semiconductor devices generate some heat; big CPUs can pro-
                        duce quite a bit. A really hot device, one that you can’t keep your finger on,
                        is usually screaming for help. Excessive heat may indicate an SCR latchup
                        condition due to ground bounce or a floating input.
                             Less dramatic overheating, much harder to detect without a lot of
                        practice,  often  indicates a design flaw. Your finger can give important
                        clues about the design. If two devices try to drive the bus at the same time,
                        they’ll overheat.
                             Be careful how you apply your personal temperature sensor. I’ve
                        found that  my  calloused  forefinger  is insulated enough to protect  me
                        from bad  burns  when  a part  is unexpectedly  frying. Thus, I gingerly
                        touch each part; if it seems reasonably cool, I’ll then use the much-more-
                        sensitive back of my hand to try to determine if the chip is running hot-
                        ter than it should. It’s surprising how much information you can get with
                        a little experience.
                             When starting out debugging a very fast system, crank the clock rate
                        down to absurdly low levels. Fix the easy stuff-logic  errors and the like-
                        before tackling high-speed timing. Why deal with a vast ocean of troubles
                        simultaneously?
                             When you do find the problem, and then make a change, sometimes
                        the modification  won’t  help.  Before  doing  anything,  double-check  the
                        change. Did you solder the wire to the right pin? The right IC? We tend
                        to program  ourselves to look for hard  problems  instead of  the all-too-
                        common simple mistakes.
                             Plan ahead. Think before doing. Don’t try something without know-
                        ing what the possible outcomes are . . . and without having some idea what
                        you’ll do for any of those outcomes. You may find that the next step will
                        be the same regardless of the results of the experiment. In this case, save
                        time and do something else.
                             The best troubleshooters are closet chess grand masters. They think
                        many steps ahead.
                             The most effective troubleshooting tool is a keen eye. With a work-
                        ing design, most problems stem from poor manufacturing. How many of
                        us have spent hours troubleshooting a board, only to find a missing chip?
                        Perhaps the wrong part is installed, or the correct one upside-down.
   184   185   186   187   188   189   190   191   192   193   194