4
\$\begingroup\$

I'm eager for help in figuring out why all the microcontrollers I'm using are dying randomly. At first, I was using LPC810Ms and LPC1114FN28s (both DIP packages on a breadboard), so I overlooked the problem since plugging in a new one was no big deal. But now, I'm using STM32F437s (100 QFP package soldered on a prototyping board), which at $17 a piece, and requiring a fair amount of soldering, makes replacement pretty expensive.

My power supply is pretty unconventional. It's an Antec HCG-850M computer power supply with the under voltage & over current protection removed, so I can run RC car motors without tripping. As a result of removing UVP & OCP, I noticed turning off the switch results in a very gradual voltage decay (takes > 10s for the voltage to reach 0). Could this be breaking the MCUs?

In general, the only peripherals I have connected are a Segger JLink for ARM debugging and a UART.

Symptoms:

  1. LPC810, LPC1114FN28:

    The chip gets very hot, eventually burning out. Surprisingly, I can still program and run things.

  2. STM32F437:

    The ARM SWD interface becomes inoperable. I can no longer program or run. No signs of overheating. I remember exactly that it broke right after I cut off the power, which happens very slowly as mentioned above.

I'm not expecting a too specific answer, so please share any relevant experiences.


Update

Correction: the voltage doesn't take 10s to die off (that was a guess based on how long it took the lights & fan to turn off). Instead, it drops instantly after 5 seconds.

I've measured the power supply on/off transient behavior several times and don't see any spikes. Here's the waveform when turning on:

This is within the allowed range (1.7V <= Vdd <= 3.6V).

Pictures/Diagrams:

(only colored pins are connected)

enter image description here

enter image description here

Update2

Finally, I've found the problem! but not the real cause. Thanks to clive1 on the ST forum thread, STM32F4 - Discovery fail, I resurrected the chip by switching the BOOT pin to 1, so it boots from RAM, instead of Flash. So it wasn't dead - just bricked (don't understand why the debugging interface depends on working Flash)

So now I'll make my question more specific: Why is the MCU's flash memory getting corrupted on powerup, powerdown, or resets? Also, forget about the LPC MCUs.

\$\endgroup\$
  • 5
    \$\begingroup\$ This question lacks a circuit and photo of the layout. \$\endgroup\$ – Andy aka Jun 30 '14 at 20:13
  • 1
    \$\begingroup\$ Connect ALL pins that should be connected. eg ALL Vdds etc. What you are doing with the power supply has every prospect of producing fatal spike so if it does you should be satisfied that reality is meeting expectations - this may not be the problem but you have chosen to work in an "undesignable" area. If you have 5V available it would be trivially easy to use it to provide a regulated filtered protected 3V3 supply. Do so. Odds are are you are driving things that are able to send back spikes into your processor. Make it not possible. Report back. \$\endgroup\$ – Russell McMahon Jun 30 '14 at 20:39
  • 6
    \$\begingroup\$ Ummm, you aren't running those RC motors while the CPUs are connected to the same supply, are you? \$\endgroup\$ – Brian Drummond Jun 30 '14 at 20:52
  • 4
    \$\begingroup\$ You can almost hear the mosfets popping. \$\endgroup\$ – Vladimir Cravero Jun 30 '14 at 21:34
  • 2
    \$\begingroup\$ ... decoupling caps ...? \$\endgroup\$ – Majenko Jun 30 '14 at 23:01
5
\$\begingroup\$

There are several reasons why microcontrollers would act as described above. The three most common causes are:

  1. You are trying to supply too much power. Putting 12 volts into a 5 volt chip will kill it instantly, for example.
  2. Your loads are drawing too much current. The microcontrollers can only source a certain amount of current, and trying to draw more than that (for example, trying to run a motor directly from the chip's output) will likely cause it to burn out.
  3. Shorted pins

To fix these issues, try the following:

  • Most microcontrollers require either 3.3V or 5V to operate. Check your chip's datasheet to make sure you're not supplying too much power.
  • If you're driving large loads, like motors or coils, use a transistor connected (through a base resistor) to the microcontroller. Then you can control the transistor with the microcontroller, but the load will draw its power from the main power supply instead of from the chip.
  • Check that your wiring is correct. Ensure no pins are touching, that you don't have any solder bridges (if your chip is soldered into a circuit), etc. Make sure the schematic is followed exactly.

The problem you are facing most likely stems from one of the above problems, so check through them and see if they help.

\$\endgroup\$
2
\$\begingroup\$

Kind of sounds like you're latching up the chips. This is a result of momentary high currents into inputs or outputs, which could be caused (easily in a high current circuit) by improperly routed ground currents which cause transients in excess of a few hundred mV. It could also be caused by transients on the supply line.

The most bullet-proof way to deal with this is to galvanically isolate the inputs and outputs of the microcontroller from all the power circuitry. Also used twisted wires and keep them physically separated so the load can't induce too much current in the wrong places. Of course you should use a separate supply for the micro.

\$\endgroup\$
  • \$\begingroup\$ Reason for the down-vote please? I don't see any mention elsewhere of latchup, which is a likely result of this kind of setup. \$\endgroup\$ – Spehro Pefhany Jul 1 '14 at 14:27
  • \$\begingroup\$ I didn't do any voting, but is latchup a degenerate case of CMOS short circuit current? (when both the pull up transistor and pull down transistors are briefly conducting) \$\endgroup\$ – Yale Zhang Jul 2 '14 at 8:23
  • 1
    \$\begingroup\$ @YaleZhang No, it is completely different. The chip turns on because of a parasitic SCR structure in most CMOS chips and essentially shorts out the power supply. If the power supply current is limited, the chip will get very hot but may survive. It is triggered by a (possibly brief) excursion outside the supply rails on an input or output - a simple short won't do it. \$\endgroup\$ – Spehro Pefhany Jul 5 '14 at 21:16
1
\$\begingroup\$

Electrostatic Discharge or ESD might be the cause for this random failures. After looking at the datasheet the ESD maximum rating for the human model is only 2000V and ever lower voltages for the charged device model depending on the conditions, which makes killing the processor due to an ESD event a very likely scenario. I would recommend avoiding handling of the unit as much as possible, the use of a properly grounded wrist strap, as well as a anti-static mat on your work area.

\$\endgroup\$
0
\$\begingroup\$

Possibly your supply doesn't have a bleed off resistor. Experiment with a shunt resistor in the range of 10k to 1M and see how that improves that slow safe after powerdown. Pay attention to the supply sequence in the datasheet, if it exists. As a previous poster mentioned, you could possibly latchup the device with a bad power up or power down.

Do you have any input protection network on the supply pins of the uC? It should be standard to put a fuse, shunt zener or tvs, and sufficient bulk and bypass capacitance.

The power supply you're using could be throwing transient spikes that you aren't seeing, although it's not clear if you have a scope or something.

Also, do you have any floating inputs anywhere? A schematic would help.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.