数码之家

 找回密码
 立即注册
搜索
查看: 4329|回复: 23

成功修复罗技M185无线鼠标续---电容防抖的理论分析

[复制链接]
发表于 2022-4-21 23:15:56 | 显示全部楼层 |阅读模式
昨天发帖记录了修复罗技无线鼠标M185双击的过程,详情见成功修复罗技无线鼠标M185双击
有些朋友对这个电容的取值感兴趣,那么我现在就从电路原理上进行先定性然后再定理分析。
鼠标按键电路示意图:在本案例中,上拉电阻其实是在MCU内部,外面只有微动。为方便表达,所以画到外面了。
不按鼠标时,微动是开路状态,电压是2V。微动按下时处于闭合状态,电流是1uA。

因按键会抖动,所以单击的实际波形如下,一次单击出现2次或更多的低电平脉冲。

增加电容Cx去抖的电路:

去抖后的波形:

先做定性分析:
增加电容后,抖动时波形沿着电容充电曲线往上爬,小电容爬的快,大电容爬的慢。
MCU的供电是2V,那么输入管脚的高底状态转换的电平大概在1V左右。下面分单击和双击2种情况来分析
1. 单击变双击,从上图可以看到,小电容因爬的快,在第二个下降沿到来之前已经爬过了1V转折电压,被MCU识别成高电平,
完成一次单击,接着因微动开关再次按下和释放,被MCU识别成二次单击,于是仍然出现双击。
如果去抖电容比较大,则爬的慢,在第二个下降沿到来前还没有跨过转折点,那么MCU检测不到高电平,最终只能识别成1次单击。
2. 双击变单击,下图是双击波形(因抖动时间相较双击间隔时间小很多,为方便表达,没有画抖动情况),如果去抖电容较小,
则在正常双击的第二击到来时已经爬过1V,则正常被MCU检测到第一次按下和释放完整过程,最终正常识别双击。
如果去抖电容太大,在正常双击的第二击时,电平还没有爬过转折点1V,那么MCU没有检测到第一次释放,最终只能识别成一次单击。


下面做定量计算:
假设按键抖动时间是10ms(第一次上升沿到第二次下降沿),而鼠标双击时间间隔一般是100ms~500ms。
现计算最小电容和最大电容。最小电容决定了是否会出现单击变双击。而最大电容决定了是否会影响正常双击变单击。
1. 要避免出现单击变双击,意味着芯片管脚电压在10ms内不能越过1.0V。根据公式 ΔV*C=I* Δt。ΔV=I*Δt/C<1V,则C>1uA*10ms/1V=10nF,因充电电流最大是1uA,随着电容电压的升高,充电电流会逐渐下降,所以实际C应该是比10nF稍小一点。
2. 要避免正常双击变单击,则意味着在双击100ms间隔内,电容电压要爬到1V以上。根据公式 ΔV*C=I* Δt。ΔV=I*Δt/C>1V,则C<1uA*100ms/1V=100nF。同样充电电流时逐渐减小的,所以实际最大电容会比100nF稍小一点。
以上就是全部内容,因能力有限,时间短,可能有原理错误,还请大家不吝赐教,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 3家元 +122 收起 理由
家睦 + 100
moontree + 10 謝謝分享
cutter + 12

查看全部打赏

发表于 2022-4-21 23:43:18 | 显示全部楼层
仿佛回到了以前在课堂学习物理的时光。
回复 支持 反对

使用道具 举报

发表于 2022-4-22 07:02:41 | 显示全部楼层
好技术帖,学习。
回复 支持 反对

使用道具 举报

发表于 2022-4-22 07:17:46 | 显示全部楼层
不懂,不过没按的时候反倒功耗更高啊?
回复 支持 反对

使用道具 举报

发表于 2022-4-22 08:07:18 | 显示全部楼层
电容两端电压不能突变,在连续击发的有问题。
回复 支持 反对

使用道具 举报

发表于 2022-4-22 08:14:39 来自手机浏览器 | 显示全部楼层
理论功夫很高
回复 支持 反对

使用道具 举报

发表于 2022-4-22 08:36:24 | 显示全部楼层
正规厂家的工程师没那么笨,MCU输入侧都加入了消抖设计的,像楼主这样加电容之后可能会影响到快速连续点击。不过也有网友说楼主买到了冒牌货,那就不奇怪了。一般来说更换名牌微动开关(例如欧姆龙)就搞定了。别买国产普通货,手感差还不耐用。
回复 支持 反对

使用道具 举报

发表于 2022-4-22 08:40:25 | 显示全部楼层
lht 发表于 2022-4-22 08:36
正规厂家的工程师没那么笨,MCU输入侧都加入了消抖设计的,像楼主这样加电容之后可能会影响到快速连续点击 ...

假货宝上买过2.1包邮的一包,手感差是真的,但没感觉不耐用,我都是DIY或维修些东西的时候当按钮用
回复 支持 反对

使用道具 举报

发表于 2022-4-22 08:49:18 | 显示全部楼层
防抖有两种,一种是外部防抖,就像楼主说的并联电容,一种是内部防抖,就是mcu检测到极短连续的信号不动作,理论上大多数设备都有内部防抖,但是我有一个门禁机,用的是锅仔贴按键,每次按键就能累死,应该是没有做内部防抖,我打算在每个锅仔贴上并联一个电容来实现防抖。
回复 支持 反对

使用道具 举报

发表于 2022-4-22 09:10:08 来自手机浏览器 | 显示全部楼层
带单片机的都是软件消抖,检测到按键中断后延时10ms再判断一次就可以了。
回复 支持 反对

使用道具 举报

发表于 2022-4-22 09:27:38 | 显示全部楼层
电容对于鼠标的定位是有影响的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-22 22:36:13 | 显示全部楼层
kerchi 发表于 2022-4-22 09:27
电容对于鼠标的定位是有影响的。

鼠标定位只是和光引擎相关,这是微动按键,完全不相干的2个部分。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-22 22:38:01 | 显示全部楼层
gl542400 发表于 2022-4-22 08:07
电容两端电压不能突变,在连续击发的有问题。

选择合适的电容就不会影响正常的双击。
回复 支持 反对

使用道具 举报

发表于 2022-4-23 10:34:05 | 显示全部楼层
很好的技术文章!
回复 支持 反对

使用道具 举报

发表于 2022-4-24 00:14:49 | 显示全部楼层
好帖留痕,学习了
回复 支持 反对

使用道具 举报

发表于 2022-4-24 17:53:34 | 显示全部楼层
这太专业了。。一般人搞不了。。什么消抖其实也没太看懂。。不过系统内可调双击的间隔时间应该也是这个作用吧。。
回复 支持 反对

使用道具 举报

发表于 2022-4-27 14:28:18 | 显示全部楼层
电容的取值确实很讲究,要有一定的理论基础才行
回复 支持 反对

使用道具 举报

发表于 2022-5-21 20:45:07 | 显示全部楼层
换微动开关
回复 支持 反对

使用道具 举报

发表于 2022-5-27 12:21:55 来自手机浏览器 | 显示全部楼层
这个实用限制太大了,首先要测试自己的手速,而且需要快速断开的时候又不能马上断开。
回复 支持 反对

使用道具 举报

发表于 2024-1-10 19:10:20 | 显示全部楼层
技术帖学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-11 02:31 , Processed in 0.343201 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表