你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】ADC 键盘读键不准

[复制链接]
STMCU小助手 发布时间:2022-2-22 20:24
问题:2 v% b4 v5 V2 L* y( _* d
该问题由某客户提出,发生在 STM32F103VBT6 器件上。据其工程师讲述:在其产品设计中,使用了STM32 的 ADC 扫描按键。为了能在低功耗模式下通过按键唤醒 STM32,按键信号在送给 ADC 的同时,也送给一路外部中断,如图(一)所示。在待机状态下,有按键被按下时外部中断输入引脚上的电平会向下降跳变,从而唤醒 STM32。之后,STM32 通过 ADC 采样来判断是哪一个按键被按下,如果是电源键,则做开机处理,否则回到待机状态。在实测中,发现这种情况下对按键的误判率很高,造成开机困难。调整各个按键的分压电阻的阻值,没有改善。/ q6 E& A" f" n5 J5 k7 s
7V~3]G}1$WUHPL(LU[{C%VJ.png
8 Y7 |' Z) d$ _  h
! E5 l9 E% M$ B8 K! L! @* c( e/ V. a0 [
调研:! m/ P: X; j( d7 L6 ^  o# ~
通过观察其产品在各种情况下按键的操纵效果,发现只有在开机的时候才会发生按键失灵的现象。使用示波器观察按键信号,确认该信号已送到外部中断输入管脚及 ADC 输入管脚。进一步观察发现,按键信号在 ADC 管脚上会有比较强烈的抖动。检查软件代码,发现其对开机按键的判断是放在外部中断服务程序中进行的,没有做消抖处理。) ?2 t  G- i6 v) V; @% t8 a. S

8 A% l0 m" T3 S5 L% |& j- Q' `$ w$ d, }
% C* @' t$ `' M% d$ i结论:9 W: |- ~/ @" ]5 W& |* z/ J
ADC 对按采样时,输入信号未及进入稳定状态,造成采样不准确,进而发生误判。, Q+ I7 R9 S, Q: x
: M- X: n- K9 x" }1 D7 K, n/ Q
+ w8 @+ F8 R7 }/ W' w, Z/ Y
/ M$ G) A) m& x6 a
处理:, q  u4 n& y- `& w4 ~* U* z  ^
在软件中加入一段延时,待 ADC 输入信号稳定以后再对其采样、判断。; [0 W* W7 Z* _/ v3 h3 Y

) f; n- |/ _! s6 Y5 F; u
( N4 m* n* T& V" {: ^3 v建议:
* y5 Q2 i- u( \# J) x' ~. G% D* T消抖处理是 ADC 按键扫描中不可缺少的一环。消抖的方法有很多,例如加一个延时来避开抖动区间,即可以在一定程度上消除信号抖动所产生的影响。这里推荐一种简单有效的方法:以固定的采样率对按键信号采样,根据按键的属性恰当的选择采样率来跨过抖动区间,并使用一阶递归滤波算法进行平滑,当平滑后的采样值进入稳定阶段再进行按键判定。在应这种方法时,在采样率的选择上,要保证采样周期 Ts 大于抖动区间时长Tw,如图(二)所示:. \0 B) k  O: t5 M$ O5 @7 H" e' g
( I) o; X, Q6 K. ~+ [, ~
GXYG1KHG]EAKZ16OUMIV[67.png : i* {* d9 K4 m6 I, ]8 I& }/ l) N

- Y6 q1 J/ `1 h6 @" {+ u1 T一阶递归滤波器可按如下公式实现:
% n4 u4 S3 k, g. B0 B$ |7 }' b# O& c
1 d: x3 e8 [. F M([FV4IE{5G3{U68P[T)]@K.png
  t3 E' ?4 h! V" ]* w) |% u# M
$ Y! s7 ^* D; [' u# W0 ]该滤波器的频谱为:
( |- x3 ]7 ?; ^6 J. z/ @( U1 v' h1 y" P, I
_8HM7SVPRWGWWBG8~FS98(8.png
3 b" ?$ t# }+ B" p
* ]6 t; V+ M1 v% k幅频特性曲线如图(三)所示:
) R' ?7 k9 k9 `! Y' T9 X9 B2 y0 p
- o  k3 S" y7 y7 W6 M (1GD5PD{1HHD(1883ZUWBR4.png . V. R  Y4 }+ o4 b5 l/ Y

( P& ^  U$ R) b( a& J根据实际需求,调整参数 N 的值,以便获得最佳的滤波效果。  f' C1 i2 o7 S) X
7 t: Q4 _: m% s; Z1 a
收藏 评论0 发布时间:2022-2-22 20:24

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版