147、OIS光学防抖系统设计:陀螺仪标定、音圈马达驱动与滚珠式vs悬丝式对比
147、OIS光学防抖系统设计:陀螺仪标定、音圈马达驱动与滚珠式vs悬丝式对比
去年在调试某旗舰机型的OIS时,遇到一个诡异现象:手机放在桌上静止,预览画面却在低频抖动,像有人在偷偷晃手机。抓了陀螺仪原始数据一看,零偏漂移居然达到0.5°/s,这要是放在车载场景,画面早晃成抽象派了。后来发现是陀螺仪标定参数被覆盖了——产线烧录时漏了一步温度补偿。这种坑,踩过一次就再也不敢忘。
陀螺仪标定:别信出厂值,自己动手才靠谱
陀螺仪是OIS的“眼睛”,它要是瞎了,音圈马达再勤快也是白搭。标定这事,很多人觉得“芯片出厂都标好了,直接读寄存器就行”——天真了。温度变化、PCB应力、焊接残余应力都会让零偏跑偏。我习惯的做法是:上电后先让模组静止5秒,采集1000个样本做均值,这个值就是当前温度下的零偏。注意,别在产线刚焊完就标,等温度稳定到室温再动手,否则你标定的零点在用户口袋里会漂到姥姥家。
标定流程里有个关键点:六面法。把模组分别朝上、朝下、左、右、前、后六个方向静止,每个方向采集200ms数据,用最小二乘法拟合出零偏和比例因子。这里踩过坑:有些工程师只做两个方向就线性外推,结果在45°倾斜时误差直接翻倍。别偷懒,六面法虽然耗时,但精度能到0.01°/s以内,够用了。
温度补偿更要命。陀螺仪的零偏随温度变化曲线通常是个二次函数,低温段漂移尤其大。我一般在-20°C到60°C之间取10个温度点,每个点做一次六面法标定,然后拟合出多项式系数。产线烧录时把这些系数写进EEPROM,运行时根据温度实时查表插值。别用线性插值,二次拟合更准,实测误差能降低40%。