Electronics > Projects, Designs, and Technical Stuff

MEMS IMU chip thermal stability

(1/2) > >>

IDEngineer:
Good ol' MEMS chips. Love 'em and hate 'em at the same time.

We received word from a customer that they are experiencing "drift" in one of our IMU devices. We ran an overnight test and sure enough, it appears that the initial output data shifts after 15-30 minutes and then becomes stable. The effect appears as an constant offset in the output measurement. This is most likely a warm-up issue as the assembly starts "cold" and then thermally stabilizes after being powered up for a while.

An online search, and a review of the spec sheets for various MEMS chips we use, reveals nothing authoritative on the topic. There are some hearsay comments but nothing from the manufacturers. Lacking authoritative data, we're loathe to "just gather a bunch of data" and fake-correct it in firmware since the effect may vary by wafer. Our devices are used in mobile applications where we have no absolute orientation reference.

Presuming the effect is real, we're considering how to address it. Our present idea is to thermally stabilize the IC. Our devices are sometimes used in an elevated temperature environment (up to ~100F) so they experience some environmental thermal cycling in addition to the effects of internal waste heat. Most IMU's have a temperature sensor on their die. We're thinking of using a SMD resistor on the opposite side of the PCB, and PWM'ing it to raise and stabilize the die temperature to a target value. Our devices are potted so there would be a relatively large thermal mass surrounding the IMU and an SMD resistor on the other side of the PCB. If the SMD resistor selectively dumped heat, the combination of the thermal mass and the on-die temperature sensor would allow us to run a closed-loop environment. We could ramp up the temperature soon after powerup (to achieve thermal stability ASAP) and then keep it there (to maintain that stability).

Anyone run into this with MEMS devices? How did you handle it? Has anyone done a temperature control like this? Any observations or suggestions?

Thanks!

daqq:

--- Quote ---Has anyone done a temperature control like this? Any observations or suggestions?
--- End quote ---
Not for MEMS, but for another device yes. It worked well - the item in question was surrounded on the PCB by a bunch of SMD resistors, though they were on the same layer and the temperature transfer was not done via some potting, but rather the copper on the PCB. The temperature stabilised quickly enough. I also did it in analog with hysteresis, so no PWM, the sensing thermistor was pretty much glued to the device being thermostated.

I also added cutouts so the thermal mass of the rest of the PCB had a minimal thermal connection to the device. Not sure if it is applicable in your situation.

For MEMS though I'm not sure how fast it would work - the MEMSy bits are suspended in vacuum, connected to the substrate by the thinnest of threads. The package and most of the die will heat up pretty much instantly, not sure how long the internal bits will take to equalise.

Kleinstein:
Even in vacuum the thermal insulation is not that good. There is still radiation coupling and the suspended part is vers thin and thus large surface to volume ratio. So the internal time constant would be quites short (e.g. more like 10s of seconds).

The problem with heating is that it may need quite some power and may thus be a porblem for a mobile use.

Another point is that the effect may not be temperature direct. There can be other effects like stress to the case and surface layers on the sensor itself.
Additional heating may speed up the warm up process, but is tricky with a large environmental temperature range.

I would more consider a good temperature measurement and than numeric correction.

IDEngineer:

--- Quote from: daqq on May 12, 2021, 09:57:49 am ---I also added cutouts so the thermal mass of the rest of the PCB had a minimal thermal connection to the device.
--- End quote ---
Yep, I had planned to add routing around three sides of the "rectangle" containing the MEMS chip on one side and the SMD resistor on the other. The idea being to reduce the thermal "wicking" by the PCB laminate. This is often done for MEMS devices anyway, to reduce mechanical stress communicated to the chip by the PCB, since MEMS can also be very sensitive to mechanical strain.

IDEngineer:

--- Quote from: Kleinstein on May 12, 2021, 06:06:57 pm ---Even in vacuum the thermal insulation is not that good. There is still radiation coupling and the suspended part is vers thin and thus large surface to volume ratio. So the internal time constant would be quites short (e.g. more like 10s of seconds).
--- End quote ---
Indeed. We've run some tests and even by applying heat to the exterior of our fully potted module and the measurement offset occurred amazingly quickly. This is what made us realize we probably need an actively managed solution to stabilize things because conditions are just too variable to constantly adapt/correct algorithmically. We could get into a footrace with "compensation lag".


--- Quote ---The problem with heating is that it may need quite some power and may thus be a porblem for a mobile use.
--- End quote ---
This is a mobile application, by which I mean on an automotive platform. We run on 12VDC nominal, and we estimate we will need <100mA additional current to run the heating system. A watt of heat deep in a potted environment can get surprisingly warm.


--- Quote ---Another point is that the effect may not be temperature direct. There can be other effects like stress to the case and surface layers on the sensor itself.
--- End quote ---
See my previous post about routing around the PCB footprint. We don't have stress issues now thanks to thick potting (done partially for that exact reason) but routing around the footprint will further decouple the MEMS part physically from its environment, both mechanically and thermally.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version