embedded software boot camp

Voltage gradients in embedded systems

Sunday, January 24th, 2010 by Nigel Jones

Today’s’ post was prompted by an excellent comment from Phil Ouellette in a recent newsletter from Jack Ganssle. In a nutshell Phil was advocating strobing switches with an alternating voltage waveform, rather than a direct voltage in order to minimize corrosion and premature switch failure. This happens to be an area in which I have some experience and so I thought I’d extend the concept a little bit and also give you some food for thought.

The basic idea behind Phil Ouellette’s comments is that if one has a bias voltage between two pins (such as between switch contacts), and if this bias is always in one direction (i.e. DC), then the bias can act so as to drive an electrochemical reaction. The exact results of this electrochemical reaction vary (corrosion, dendrite growth etc.), but the net result is normally the same – namely an unwanted short circuit between two pins.

These problems arise particularly on products that have to operate in humid environments and / or products that have to spend a very long time under power over their expected operational life.

So what can be done about this? Well the most important thing to understand is that it is voltage gradient (volts per meter) that is the driving force in this problem and that furthermore, voltage gradient is a vector quantity and thus its direction is important. With this understanding, it should be clear that to minimize these types of problems, one has to minimize the integral of the voltage gradient over time. To do this one has three basic choices:

  1. Minimize the voltage
  2. Maximize the separation
  3. Modulate the voltage

Let’s take a look at each of these in turn:

Minimize the voltage
Clearly technology is progressing in the right direction for us here, as 5V systems are rapidly becoming extinct and 1.8V systems becoming more common place. Thus all other things being equal, the voltage gradient between any two pins on a 5V system will be 2.8 times greater than on a 1.8V system. Thus if you are designing a system where corrosion is a concern you will do yourself a big favor for opting for as low a voltage system as you can. However, see the caveat below.

Note also that given that what counts is minimizing the voltage over time, it follows that you can normally improve the system performance by powering down systems that are not needed at any given time. This also of course saves you power and thus is a highly recommended step.

Maximize the separation
This is by far and away the toughest problem. Twenty years ago, ICs ran on 5V and had 0.1 inch lead spacing, giving a maximum voltage gradient between pins of 5 / 0.00254 = 1969 V/m. Today, a typical 1.8V IC has a lead spacing of 0.5 mm giving a maximum voltage gradient of 1.8 / 0.0005 = 3600 V/m. Thus the voltage gradient between pins on a typical IC has gone up – despite the decrease in the operating voltage. Thus if selecting a low voltage part means that you must use a fine lead pitch part, then you are almost certainly shooting yourself in the foot!

Other areas where you can increase separation without too much pain is in the selection of passive components. For example a 1206 resistor has a much lower voltage gradient than an 0402 resistor, and an axial leaded capacitor is usually preferable to a radially leaded device. As a result, when I’m designing systems that have potential corrosion issues I really prefer to use larger components. Of course this can put you into conflict with marketing and production.

Modulate the voltage
The method suggested by Phil Ouellette is reasonably straightforward for something like a switch. However, if one generalizes the problem to all the components on the board, then it becomes a much more complex problem. For example, consider an address bus to an external memory. The most significant address lines will presumably change state at a much lower frequency than the low order address lines. Indeed it is not uncommon for a system that has booted up and is running normally to be in a situation where the top two or three address lines never change state. Now if they are all at the same state (for example high), then no voltage gradient exists between them and so there is no problem. However if the lines are say High – Low – High, then the voltage gradient is as bad as it gets – and you have a potential problem. There are of course various solutions to this particular problem. The easiest solution is to ensure that the most significant address lines are routed to non contiguous pins on the memory chip (sometimes known as address scrambling) so that high frequency address lines are adjacent to low frequency lines. A much more difficult problem is to link the application so that all address lines are guaranteed to toggle at a reasonable frequency…

Another interesting example comes when one performs microcontroller port pin assignment. Normally one has little choice about certain pin assignments – but for the remainder one has free rein. The next time you find yourself in this position you may want to try performing the assignment so as to minimize the voltage gradients. I think you will find it to be a very challenging task.

Anyway, I hope this has given you some food for thought. Please let us know via the comments section if you have faced any of these types of problems and how you solved them.


Tags: ,

3 Responses to “Voltage gradients in embedded systems”

  1. Dan says:

    Nigel,Nice post, especially the part about choosing component sizes.A couple years back I was asked to improve the reliability of a product's design – hardware and firmware — and the firmware had some obvious flaws that weren't too difficult to fix.Regarding the hardware, the component size choices were an important factor. The Chinese manufacturing facility had trouble with the 0402 parts (this wasn't an iPhone factory 😉 ) and a move to large part footprints (including the processor) helped a great deal with manufacturing yield. The device was also subjected to use in some pretty harsh environments, so the larger parts also improved reliability over the long term.Someone else helped with mechanical engineering issues, those are outside my expertise, but they're still very important.Anyway, good post. I really enjoy topics that are of the "systems engineering" / big picture sort.

  2. David Quinn says:

    Dear gentlemen, I have some experience in corrosion and PCB contamination that may be related to this subject.

    First, in the 1990s I was on an engineering team for modem design in which DAA isolation was critical for the proper operation of the product, both from the safety and noise points of views. These were high volume products and were running at 1 million+ annual production rates. So they had to be right when they hit the production line.

    We were designing some new products in our R. and D. laboratory and our technician had just built some new prototype Modems of which I was the designer. We started preliminary testing and the products were not operating properly. The DAA (which is comprised of several analog circuits) was operating in a completely unpredictable manor. I measured component values (which were not correct) and came back a day later and the same component would read a different value. The technician concluded that the boards were not cleaned properly so he hand-carried the boards back to a professional production cleaning station for extensive re-cleaning. I retested the DAA component values and they were different, but still did not read properly. We battled this strange problem for a week or two, when we finally started testing raw PCBs. We were successful in being able to duplicate resistances between pads on blank circuit boards using standard solders, chemicals and techniques. We then contacted the circuit board manufacturer and requested them to visit us to resolve this problem. They concluded that they had a chemical problem at their company. They corrected the problem, but never told us exactly what they did wrong the first time.

    I learned some good lessons from this. First, always receive prototype boards from the production facility as not all circuit boards are created equally. Keep the prototypes as golden samples. Seal them, tag them, log them and keep them under lock and key. These golden samples could be critical evidence if litigation were to come to fruition.

    The next lesson I learned, which was surprising to me was that quality circuit board manufacturers go through extensive testing on the circuit boards to confirm that their boards will not react abnormally to cleaning chemicals or standard manufacturing processes. So buyer beware, when you receive PCBs from some Far-East suppliers, you could be at risk.

    So how is this related to the Voltage gradient issue? Contamination (of the aforementioned nature) and corrosion are related as they both involve electrochemical reaction. They can occur immediately or years later.

    I am a consultant and don’t have extensive cleaning resources at my disposal, thus I have to be a little inventive on how I clean and protect circuit boards. First, my process is home-grown and has an element of danger to it, so I’m not encouraging anyone to do this, thus I’m simply explaining what I do.

    First, I use an industrial vacuum-cleaner placed outside of my lab in which the exhaust is not vented through the unit’s motor brushes. Thus, if explosive gasses passed through the vacuum, they would not be pronged to ignition. I have the vacuum intake routed through my wall so it’s a convenient and fixed part of my lab.

    My first phase is to extensively clean assembled PCBs with 91% alcohol. I do not try to dry the PCBs with towels. This is because residue from the dried alcohol can be retained under components and once dried, can contribute to corrosive effects. I instead use this powerful vacuum-cleaner to remove the alcohol which (before dried) will contain contaminates. Once completely dried with the vacuum-cleaner, I repeat this process. The PCBs are then tested and then covered with clear finger-nail polish, which I have been told is very close to the same chemical composition as conformal coating. This process has proven itself to be a very effective protective coating with circuit boards operating properly years into the future.

    I hope this helps.

    David Quinn
    Principal, QED.

Leave a Reply