一种基于GPIO和ADC的多按键控制电路的制作方法

文档序号:30247142发布日期:2022-06-02 00:52阅读:431来源:国知局
一种基于GPIO和ADC的多按键控制电路的制作方法
一种基于gpio和adc的多按键控制电路
技术领域
1.本实用新型涉及电路技术领域,具体涉及一种基于gpio和adc的多按键控制电路。


背景技术:

2.市面上常用多路gpio或专用键盘控制芯片实现多路按键的控制,也有用一个adc实现多路控制的方案。但是目前单独用gpio的方案需要多路gpio,硬件资源要求高;纯用adc实现,需实现轮询读取adc数据,系统开销大,在系统休眠情况下,无实现读取。因此,现有技术存在系统开销大,尤其在低功耗情况下,系统功耗大且无法通过按键换唤醒的问题。
3.综上,亟待一种基于gpio和adc的多按键控制电路,能够解决上述问题。


技术实现要素:

4.本实用新型的目的是针对现有技术中存在的上述问题,提供了一种基于gpio和adc的多按键控制电路。
5.为了实现上述实用新型目的,本实用新型采用了以下技术方案:一种基于gpio和adc的多按键控制电路包括设有gpio端口和adc端口的处理器以及与该gpio端口和adc端口电连接的多个开关按键、分压电阻和保护二极管;gpio端口具有中断功能。
6.工作原理及有益效果:1、针对现有纯用adc实现的方式,由于按键是触发事件且时间很短,adc本身不能实现中断读取,如果不用中断方式读取,这就要求每隔1~3ms时间必须读adc数据才能保证按键事件不丢失,所以即使没有按键事件,系统也要不停读取adc,从而造成系统资源浪费,而本技术的电路当gpio端口处于上拉输入中断模式时,adc端口处于关闭模式;当其中一个开关按键按下时,gpio端口中断响应,adc端口打开并将gpio端口切换位高阻输入模式,读取当前数据,通过adc端口数据判断是哪路按键输入,处理完后关adc端口并切换gpio端口模式为上拉输入模式手动按钮一般在10ms左右,处理器换醒在3~5ms,所以即使在休眠状态下,同样能实中断读取功能,且无需多路gpio,因此本技术解决了系统开销大以及在低功耗下功耗大不能按键唤醒的问题;
7.2、同时由于所有adc功能模块功耗是ma级别的,如上所述,要保证系统按键事件不丢失,即使系统处于休眠态也不能关闭adc功能,造成系统功耗大,如关闭adc功能功耗能够降下来,但唤醒就不能通过按键唤醒。而本技术是用gpio中断功能,在休眠模式下关闭adc,当有按键事件,先触发gpio中断,再打开adc功能读取按键值,同时解决低功耗及唤醒问题。
8.进一步地,分压电阻至少包括第一分压电阻r0、第二分压电阻r1及第三分压电阻r2,保护二极管至少包括用于保护adc端口的第一二极管d1和用于隔离adc端口和gpio端口的第二二极管d2,开关按键至少包括第一开关s1和第二开关s2。
9.进一步地,第一分压电阻r0的第一端接入电源电压,第二端分别连接adc端口、第一二极管d1的第一端、第二二极管d2的第二端、第二分压电阻r1的第一端以及第三分压电阻r2的第一端,第一二极管d1的第二端接地,第二分压电阻r1的第二端连接第一开关s1的第一端,该第一开关s1的第二端接地,第三分压电阻r2的第二端连接第二开关s2的第一端,
该第二开关s2的第二端接地。
10.进一步地,第一开关s1为tvs管,第二开关s2为肖特基二极管。
11.进一步地,还包括第四分压电阻r3和第三开关s3、第五分压电阻r4和第四开关s4、第六分压电阻r5和第五开关s5以及第七分压电阻r6和第六开关s6,每个开关的第二端均接地,每个开关的第一端均与对应开关的第二端连接,第三分压电阻r2至第七分压电阻r6依次连接。
附图说明
12.图1是本实用新型的电路结构示意图。
具体实施方式
13.下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本实用新型保护的范围。
14.本领域技术人员应理解的是,在本实用新型的披露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本实用新型和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本实用新型的限制。
15.目前现有技术中常用多路gpio或专用键盘控制芯片实现多路按键的控制,gpio实现需多路gpio,硬件资源要求高;而纯用adc实现,需实现轮询读取adc数据,系统开销大,在系统休眠情况下,无实现读取,主要是因为按键是触发事件且时间很短,adc本身不能实现中断读取,如果不用中断方式读取,这就要求每隔1~3ms时间必须读adc数据才能保证按键事件不丢失,所以即使没有按键事件,系统也要不停读取adc,从而造成系统资源浪费,而且所有adc功能模块功耗是ma级别的,如上所述,要保证系统按键事件不丢失,即使系统处于休眠态也不能关闭adc功能,造成系统功耗大,如关闭adc功能虽然功耗降下来但唤醒就不能通过按键唤醒。
16.为此提出了以下实施:
17.如图1所示,本基于gpio和adc的多按键控制电路包括设有gpio端口和adc端口的处理器以及与该gpio端口和adc端口电连接的多个开关按键、分压电阻和保护二极管。分压电阻包括第一分压电阻r0、第二分压电阻r1及第三分压电阻r2,二极管至少包括用于保护adc端口的第一二极管d1和用于隔离adc端口和gpio端口的第二二极管d2,按键开关至少包括第一开关s1和第二开关s2。其中处理器可以是cpu或mcu。
18.在本实施例中,第一分压电阻r0的第一端接入电源电压vdd,第二端分别连接adc端口、第一二极管d1的第一端、第二二极管d2的第二端、第二分压电阻r1的第一端以及第三分压电阻r2的第一端,第一二极管d1的第二端接地,第二分压电阻r1的第二端连接第一开关s1的第一端,该第一开关s1的第二端接地,第三分压电阻r2的第二端连接第二开关s2的第一端,该第二开关s2的第二端接地。还包括第四分压电阻r3和第三开关s3、第五分压电阻
r4和第四开关s4、第六分压电阻r5和第五开关s5以及第七分压电阻r6和第六开关s6,每个开关的第二端均接地,每个开关的第一端均与对应开关的第二端连接,第三分压电阻r2至第七分压电阻r6依次连接。
19.在本实施例中,本技术包括一个普通gpio带中断功能,一路10位adc端口,若干按钮、保护二级管及分压电阻,如分压电阻r0、r1、r2、r3、r4、r5、r6主要是分压作用,s1、s2、s3、s4、s5、s6是对应开关按键。当然还可以有r7、r8等,s7、s8等。
20.其中,正常情况下,gpio工作处于上拉输入中断模式,adc工作处于关闭模式,当外部有按键按下,gpio中断响应,在中断程序中开adc功能并切换gpio模式为高阻输入模式,读取当数据,通过adc数据判断是哪路开关按键输入,处理完后关adc并切换gpio模式为上拉输入模式手动按钮一般在10ms左右,cpu或mpu换醒在3~5ms,所以即使在休眠状态下,同样能实中断读取功能。其中,第一开关s1为tvs管,用于保护adc端口,第二开关s2为肖特基二极管,用于实现adc与gpio口电平隔离,保护gpio端口。本技术是用gpio中断功能,在休眠模式下关闭adc,打来gpio中断,当有按键事件,先触发gpio中断,再打开adc功能读取按键值,同时解决低功耗及唤醒问题。
21.如第一开关s1按下时,adc端口电压为vadc=r1/(r0+r1)*vdd;
22.当第二开关s2按下时,adc端口电压为vadc=r2/(r0+r2)*vdd;
23.以此类推,当第n开关sn按下时,adc端口电压为vadc=rn/(r0+rn)*vdd;rn为第n+1分压电阻。
24.本实用新型未详述部分为现有技术,故本实用新型未对其进行详述。
25.可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
26.尽管本文较多地使用了专业术语,但并不排除使用其他术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本实用新型的本质;把它们解释成任何一种附加的限制都是与本实用新型精神相违背的。
27.本实用新型不局限于上述最佳实施方式,任何人在本实用新型的启示下都可得出其他各种形式的产品,但不论在其形状或结构上做任何变化,凡是具有与本技术相同或相近似的技术方案,均落在本实用新型的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1