LC60: ESD over 30kV

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LC60: ESD over 30kV

2,260 Views
BasePointer
Contributor II
Hi,
 
We are producing solid state energy meter and many people try to tamper with them.
Their last toy is oven lighter or high voltage lighters that can be found easily in the area.
 
Their effects at meters are similar to ESD test in the standard, but they have so much voltage than the standard's.
 
Here is some effects of a 30kV lighter at our meter that we use LC60 in:
- External 32.768kHz low power oscillator lost, and DCO lose of lock. After the effect, it locks again.
- Some LCD registers such as FPENR0..4 are changing.
- Some zeropage registers are changing.
- If I enabled PIN reset functionality, MCU resets yourself. If I disabled pin reset, no reset occurs.
- Some times with a single pulse, the MCU enters in unknown state, and it stops responding, codes stop flowing. Even if I use COP with internal 1Khz source, I doesn't reset the MCU. I have a lot of trap in the code to detect unknown state and reset it to modify MCU, but all of them didn't work. Only way to exit unknown state, it need second ESD pulse. :smileyindifferent:
- Some time, Our measurement unit starts consuming so much current about 100mA (normaly 15mA). To modify, it need power on reset or second ESD pulse.
 
I'm waiting for your advice to improve ESD immunity of our meter.
Regards,
BP.
Labels (1)
0 Kudos
6 Replies

449 Views
celsoken
Contributor V
Dear BP,

I noticed you've got high current readings sometimes. It is probably latchup and there is nothing you can do in software to recover from that. Maybe you've got unprotected inputs wich are suscetible to latchup. You need to work on that otherwise all your efforts will be lost.

After you deal with this software problems you can get Mac's advice. Mac is right regarding fault detection and recovery and clearly he's got a lot of experience. Besides it is obvious, I did not hear from you that you are dealing with the DDRs. They are very commonly corrupted (maybe because they are so close to the problem) and the failure mode turns out to be catastrophic. Periodically rewriting DDRs is a rule for embedded systems.

I hope it helps,

Cheers,

Celso
0 Kudos

449 Views
bigmac
Specialist III
Hello BP,
 
To improve the performance of the equipment, when subjected to this type of abuse, is likely to involve a review of three different areas -
  1. The mechanical design of the equipment, including packaging and materials.
  2. The electrical design of the hardware, including transient suppression measures.
  3. The firmware design.
I guess the first step is to determine the manner in which the transient voltages are reaching the MCU and other active devices, whether by conduction or induction, or perhaps a combination of both.  I presume that you can easily replicate the problems in a laboratory environment.
 
I assume the connections to the utility lines are already well protected against induced voltages surges due to lightning activity.  The solution may involve additional shielding of internal components, or further transient suppression measures in the path to the various I/O of the MCU.  Obviously, these sorts of issues cannot be readily addressed within the forum.
 
However, there are some measures that should be taken within the firmware design, if you do not have them implemented already.
 
I/O and peripheral registers:
Most examples of code that I see in these forums, initialise all the registers that operate at other than their POR default, and then enter the main loop, and forget about any registers that are not updated during the normal operation of the code.  It is assumed that, once the registers are set to the required configuration, they will remain so indefinitely.  This cannot be guaranteed, as you have discovered.
 
To improve reliability, you must assume that any register may spuriously change, and consider in detail which registers can have a detrimental effect on the operation of the equipment if they were to alter.  These registers should be re-initialised frequently, probably each time the main loop executes.  As a minimimum, I would always re-initialise the DDRs, but you will likely need to give consideration to many more, including registers where you would utilize the power-up default.  Obviously, you can't re-initialise the registers that are dynamically changing during program operation.
 
Interrupts:
You must assume that any unused interrupt may spuriously occur.  There should be an interrupt handler for every interrupt source.  For the unused interrupts, the minimal response would be to clear the interrupt flag, and to disable any further interrupts from that source.
 
RAM:
If you are accumulating data in RAM registers over an extended period, as I suspect would be the case, you would need to allow for the data being lost or corrupted.  I assume you would already provide frequent dumps to NV memory.  To detect wnen corruption has occurred, you mignt need to also allow for duplicated RAM registers, and provide sanity checks against the last value stored in NV memory.
 
I apologise if I am stating the obvious.
 
Regards,
Mac
 


Message Edited by bigmac on 2008-02-27 02:01 AM
0 Kudos

449 Views
BasePointer
Contributor II
Hi mac,
 
Thanks for your recommendations.
 
- When 32kHz loss, I can relock via software.
- When LCD registers change, I can modify them in my main routine as you mentioned.
- When zeropage registers change, It is hard to detect for me. I'm using CRC technics for most of them, but not for all. Nevertheless there is a way to detect failure.
- MCU reset is no problem.
 
But if MCU enters to unknow state and it stops code flow, I can't do anything, my software can't do anything. Our main problem is this. If MCU is completely broken, this is also no problem. But the MCU is not broken, instead of this, it stops and COP doesn't do anything. Until second pulse... This is really bad.
 
Is such a state defined, MCU freeze and only POR or second ESD pulse changes its state?
 
10x
BP.
0 Kudos

449 Views
bigmac
Specialist III
Hello BP,


BasePointer wrote:
But if MCU enters to unknow state and it stops code flow, I can't do anything, my software can't do anything. Our main problem is this. If MCU is completely broken, this is also no problem. But the MCU is not broken, instead of this, it stops and COP doesn't do anything. Until second pulse... This is really bad.
 
Is such a state defined, MCU freeze and only POR or second ESD pulse changes its state?

Also, in your initial post you said -
"Some time, Our measurement unit starts consuming so much current about 100mA (normaly 15mA). To modify, it need power on reset or second ESD pulse."

Consider the following possibilities -
 
1) The crystal oscillator ceases, and does not restart.  I am not sure whether this would cause a reset, to be able to revert back to the internal oscillator.  If the crystal became reluctant to start, you might be caught in a wait loop.
 
One solution might be to substitute a packaged oscillator contained within a metal package.  You might experiment anyway, to see if it makes a noticeable difference.
 
2) The ESD event is so serious that a latchup state is entered.  Here the device becomes a very low impedance, and will destroy itself unless current is limited by means of short-circuit protection within the regulator.  (Perchance is the short-circuit current of the regulator in the region of 100mA?)  This will require removal of power to restore normal operation.  The most likely cause of latchup is a large injection current at one or more of the MCU pins.
 
The only solution here is to take measures to prevent latchup from occurring, perhaps the inclusion of additional components, such as Schottky diodes, to limit or eliminate the injection current at the susceptible pins.
 
For pins used as inputs, that do not require fast or frequent switching, a capacitor (10-100nF) to ground may help, particularly for the reset pin.  You might also experiment using an external watchdog reset device.
 
Regards,
Mac
 
0 Kudos

449 Views
celsoken
Contributor V
Mac, I did not repeat you. Your last post was done minutes before mine.
Pls don't sue me!!

Cheers,

Celso
0 Kudos

449 Views
allawtterb
Contributor IV
Only you know your hardware and what measures are in place to protect and isolate your board.  If you are looking for some quick online resources for EMC I would suggest the following:
 
 
0 Kudos