打印
[MCU]

省电型键盘通过MCU管脚控制多路按键

[复制链接]
278|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Flower1|  楼主 | 2019-10-30 17:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
省电型键盘通过MCU管脚控制多路按键

    传统上,与n乘m键盘连接的微型控制器要求微型控制器的I/O管脚的n+m为键盘扫描。键盘设计保留了微型控制器已经被开发出来的管脚,但是它们要求额外的资源,例如外部的ICs或一个内置的模数转换器(ADC)。本设计这里只利用了一个I/O管脚,并且要求仅将电阻和电容作为外部元件。

  I/O是一个开头被配置作为输入的双向管脚(见图)。当没有按键被按下时,电容被放电,并且上拉电阻RH保持I/O为高。微型控制器处于休眠模式,并且只有在I/O状态改变引起中断时才会醒来。当按键被按下,I/O变低,因为下拉网络比上拉作用更强些。

  微型控制器随后醒来执行以下步骤:

  1. 等待联络消除抖动。

  2. 把I/O变为输出并设置高。 电容随后开始充电到高状态电压。 充电的时间Ti取决于按键被按下和与其关联的R (1,2,…i)。

  3. 等待直到T1到来。

  4. 使I/O作为输入。充电到C暂停。

  5. 如果I/O为高,按键1被按下。 如果I/O为低,使I/O作为输出并置高来持续充电。

  6. 等待直到T2到来。

  7. 使I/O作为输入。 充电到C暂停。

  8. 如果I/O为高,按键2被按下。 如果I/O为低,使I/O作为输出并置高来持续充电。

  9. 通过Ti持续到T3。

  应该选择电阻使T1



  充电时间可被确定如下:当充电暂停时,在I/O的电压(式1)是VC为电容电压(式2)。式3通过使VI/O与开关门限电压VTH相等解答了充电的时间。这里,VTH是I/O的开关门限电压。






  随着Ri增加,Ti最初增加。但随后它达到最大值并开始减少。这就给Ri,并因此给可以连接到电路中的按键数量强加了一个上限。
  Ti可能会在Ti,min和Ti,max之间变化,由于在VTH上电阻的容差和变化。所以,应该选择数值使Ti,max这个设计用三种方式节省功率。首先,每次电容被充电到V并被放电,CV2能量都被消散。在本设计中,只要I/O变高且电容被充电到大约VTH(少于2V),而不是VDD,则充电停止。其次,当每个按键被按下电容只充电(和放电)一次。最后一条,在确定哪个按键被按下后,微型控制器进入休眠模式并保持休眠,直到按键被释放且I/O变回到高。所以既使当某些按键陷入或卡住时,功率消耗是最小的。



使用特权

评论回复

相关帖子

沙发
decoding| | 2019-11-2 16:44 | 只看该作者
有必要这么复杂么?现在MCU的资源都不少啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

623

主题

887

帖子

6

粉丝