QMA6100P贴片不良改善验证

老惯例,先介绍下一下项目情况。这是一个应用在智能马桶上一个激光感应组件,装配在马桶盖板的最前端,使用无线充电+2.4无线通讯的方式,主要功能是:
1、无人使用,马桶盖关闭时,通过无线充电给模块供电,同时TOF检测是否有人靠近;
2、当检测到有人靠近时,自动翻盖,翻盖后,TOF切换为近距离检测,再次手扬执行翻圈动作,再次手扬,关圈关盖冲水。

   

以上就是这个模块最核心的功能了,模块组要功能及硬件组成:
1、无线充电,充电电流约200mA;

2、1F~7F法拉电容作为电池,实测2.5F法拉电容可提供2小时左右的续航,充电时间1分钟可达到90%,极大改善了锂电池充电速度慢的缺点,实测充放电次数5W次,无明显容量衰减;

3、激光测距,多测距模式,满足不同种应用场景下的测距需求;

4、位置传感器QMA6100P(这就是今天故事的主角了),用于监测盖板状态,用于切换工作状态和工作模式;

5、2.4G无线通讯,用于与主板的通讯,实现各种交互功能;

产品演示视频如下:

一种使用tof做接近感应和翻圈翻盖的智能马桶感应组件

市面上很多的智能马桶使用的电容脚感、机械脚感、红外激光脚感,每次使用时,需要用脚在脚感的位置晃一下或者踢一下,马桶才能识别执行翻盖、翻圈、冲水等动作,而这款马桶激光接近感应模块,简化了这部分操作,只要人靠近,就会自动翻盖,如果需要翻圈,只要在翻盖角度超过45°后,在感应窗前晃一下就可以立即执行翻圈,离开时再在感应窗前用手晃一下,自动执行关圈关盖冲水。

     

好了下面正是进入今天的主题:位置传感器QMA6100P贴片不良改善验证

在试产的时候,发现大概有18%左右的激光感应模块无法识别翻盖动作,要么一直处于关盖状态下的工作模式、要么一直处于开盖的工作模式,有时候甚至直接不工作了。

问题很明确,就是QMA6100P虚汗了呗。首先,先看下这个芯片的封装:

本来以为是很简单的一个问题,但是实际改善还是历经波折,改过焊盘、调整过钢网厚度、也调整了炉温曲线、换过贴片厂、甚至找供应商确认是否存在引脚氧化导致的上锡不良...

多次验证,问题还是没有得到明显改善,这一折腾就1个多月的时间过去了,真的被折腾的够呛,感觉已经到了强弩之末的那种感觉,已经无能为力了。

一个偶然的时间,突然想到会不会是layout的问题?于是对着板子一直发呆...<此处省略1000字>

突然想到,有没有一种可能是因为这个芯片周围和底部的覆铜太多导致的?因为这个封装的焊盘很小,本来芯片就只有2mm*2mm的大小,会不会是因为覆铜太多导致的此处的温度升温不均,最后导致的贴片不良呢?

改善前:

那就改个板子验证下吧,与之将芯片底部及其周围5mm 范围内的顶底面覆铜全部取消,重新打样验证。投入试产200pcs,试产后与这个相关的不良只有1pcs,改善效果明显。

至此,总算跳出了这个坑。有时候我很容易陷入自己给自己设置的死循环里,然后一直在里面绕圈圈,没办法跳出来,从其他角度去看待问题。不知道大家是否也有遇到过类似的情形吗?

### QMA6100P 中断处理方式 对于QMA6100P设备或芯片而言,当中断事件发生时,硬件会触发相应的中断信号给微控制器或其他处理器。通常情况下,这些中断可以由多种传感器状态变化引起,比如加速度的变化超过设定阈值。 为了有效管理来自QMA6100P的中断请求,在软件层面需配置特定寄存器来定义哪些条件能够引发中断以及如何响应它们。具体来说: - **设置中断使能位**:通过写入控制寄存器中的相应位来开启或关闭不同类型的中断源[^1]。 - **配置中断模式**:可以选择不同的工作模式,例如单次测量后的立即中断或是连续监测下的延迟中断等[^2]。 - **读取状态寄存器**:当接收到外部中断通知后,应查询状态寄存器以确认具体的触发原因并清除该标志位以便后续操作正常进行[^3]。 下面是一个简单的C语言代码片段用于展示基本的初始化过程和ISR (Interrupt Service Routine) 处理程序框架: ```c #include "qma6100p.h" void qma6100p_init(void){ // 初始化IIC通信接口... // 设置INT引脚为活动低电平输出 write_register(QMA6100P_REG_INTSET, 0x80); // 启用自由落体检测中断 write_register(QMA6100P_REG_FFMT, 0x40); // 配置其他参数... } // 假设这是连接到MCU的一个外设中断服务函数 void EXTI_IRQHandler(void){ if(EXTI_GetITStatus(INT_PIN)== SET){ // 清除中断标志 EXTI_ClearITPendingBit(INT_PIN); // 检查QMA6100的状态寄存器获取更多信息 uint8_t status = read_register(QMA6100P_REG_STATUS); if(status & FF_INTERRUPT_FLAG){ handle_free_fall_event(); } // 更多可能发生的中断情况... } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值