ADXL355 Latch-up condition

Dear ADI support,


We have been using ADXL355BEZ in our condition monitoring (vibration transducer) products for a while, we’ve sold about 1000+ of them now.


We recently discovered that some of them fail strangely – they report a near-zero vibration (the AC part) - after experiencing a period of over-range high-frequency vibration. We initially suspects our firmware might have bugs, but after some research, we are now quite confident that it’s caused by the defects of ADXL355.


We know that ADXL355 has over-range protection mechanism when experiencing excessive accelerations. When activated, the output will be pulled towards midscale in order to protect itself. This is acceptable. But in some rare cases, this condition will persist even after power is re-cycled. The only way to bring the device back to normal is to tap it (or knock it, if you will) with a screwdriver or something.


While in latch-up condition, the ADXL355’s output consist of a fixed DC acceleration (in our two cases, it’s around -5g in x-axis. (we didn’t investigate other axis). On top of that, there’s also a high-frequency (around 1.6Khz) AC content, measured around 3.9g rms.


As I said previously, the condition is only cleared when external shock is applied. We did not try issuing self-test command. We’ll investigate more if you need more information. I’ll keep you up to date.

  • I posted this back in April when we first disovered this issue. Until then we thought ADXL355 is a perfect solution for condition monitoring.

    Yes, we made the poor choice of using ADXL355 in this senario. The acceleration sometimes goes way beyond +/- 8G (we realized it too late) and at very high frequency (3KHz up). As you might expect this caused multiple issues including spectrum aliasing, resonance, and worse, total latch-up (stuck) of ADXL355. I must say again that power-cycling the device will NOT restore the device, you must use external G-force.

    Things went very badly for us, we have to replace or refund nearly all our products powered by ADXL355. We suffered heavy loss. 

    We are consulting our local distributer (Arrow) for refunding ADXL355. Havn't got a solution so far.

  • The question is, if subjected to exceesive acceleration, then what?  You didn't mention in your specs that this could cause "latch-up" or "damage".

    This issue is far from over.

  • To answer your questions:

    The first of our products containing ADXL355 dates back in September 2017. We stopped using it since April 2019 this problem is discovered. 

    Acceleration subjected can sometimes reach 20G peak. We are now replacing ADXL355 with ADXL1002. 

    What do you mean by Current setup? We used full 4KHz ODR, maximum range (+/-8G). Is this enough? Now it's pointless. We need to refund all ADXL355 now. 

  • I have same issue (X is 1.5g , Y & Z is 2.048g forever @ stationary's) after disabling the internal LDO and use external 1.8V for pin 8 and pin 10. maybe power up timing issue for the VDDIO, V1P8DIG, V1P8ANA. (use internal LDO, no any issue)

  • I'm seeing this exact issue with an adxl357. x and y axis are locked with an offset (z axis is not affected) which does not go away even if device is reset. For now it resets at random points in time probably due to external vibration.

    Is there any procedure which I can follow to recover the device without physical access?

    the sentence quoted for adxl355 is not present on the datasheet for the adxl357! 

    Are you certain, that this issue is related to the LDO?

    In general, is this a design issue of the MEMS structure which can "lock" or is it some singnal processing error? Also I'd like to highlight, that this error occured in production use "after months" but now appears a few times a week. This looks like a bad condition as even with extensive testing that error would not be deteced but could happen in production use ...

    Is this error in any way related to the race condition of loading data from nvm to the shadow registers mentioned in the docs for the reset register?

    Heres a link to a plot showing the condition:

    The upper plot is from the "locked" adxl357 operating with 10g range at 1kHz. The lower plot is from an adxl375 running at 800Hz only stored when 10g range is exceeded. xyz of adxl375 and adxl 357 do not match. line is the mean value for given time interval, area ploted is min/max for the same time range.

    Desperetly looking for a solution to this issue.