浅析五向按键的硬件设计思想

2024-03-09 01:50

本文主要是介绍浅析五向按键的硬件设计思想,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

五向按键简介

五向键是一种多功能按键,除了具备普通按键的PUSH功能外,他还具备四个朝向的指向。因为他具备了五种按键动作,故名五向键!

它有6个引脚,其中一只引脚是公共端,一般是第5脚,而和第5脚对称的是第2脚,第2脚就代表了PUSH功能。按键正上面有一个三角缺口,代表着按键的一种朝向关系。对于封装设计者要对此内容特别注意。

不过好在立创商城已经绘制好了封装,可以很方便的知道各个引脚的走向。根据摆放关系,稍加旋转就能找出上下左右和引脚的对应关系。

五向按键原理图分析

下面这张图纸采用了CC2541开发板的一种五向键原理,这个也是我今天重点想分析的电路。

输出电压电路分析

为了方便分析,首先对此原理图做一下变型,因为LTspice中没加入LM258D,所以用AD8032暂时替代。这个电路主要应用了运放的虚接虚短原理和基尔霍夫电流定律,就能一步步的推导出不同按键按下时候VO的输出值。

具体分析过程:

第一步: 求参考点电位1。

根据分压原理,很容易计算出1点电位1.03V,那么根据运放虚短,所以正相输入引脚电位1.03V。

第二步:求运放2点的电位。

现在是UP按下,所以Up与VCC接通,R6两端的压差为3.3-1.03=2.27V,那么流过R6的电流预计22.7uA。其他之路电流关系如下,R6支路已经求出,那么R7,R8,R9之路很容易计算出总电流

I支=3.54+2.125+1.398=7.063uA;根据流入电流等于流出电流,那么R12和R13合并的电流应该为

(22.7uA-7.063uA)=15.637uA,进一步可以推导出压降为0.7818,所以2点电位=1.03-0.7818=0.248V

第二步:求运放3点的电位。

(0.248/47)*67=0.353V,与设计仿真结果相差30mV。因为这个实际仿真中用到的器件模型并不是理想模型,他计算出来的1点电位是1.06V,R12两端的压降是0.7882V,所以2点电位是0.2718V(1.06V-0.7882V),根据这个值推导出3点电位是0.38V.

举一反三,DN,LT,RT 三个方向按下时候,也能求出一个固定的数值。 这样运放加电阻网络的电路实现了不同按键不同的输出电压效果。

中断电路分析

上图是一个或门电路,实现的效果就是见1则1,这些电位都是100K电阻拉低,当有按键按下后,电位与3.3V接通,所以是逻辑1,这样P2.0有一个从0到1的跳变过程,MCU发生中断,之后调用ADC读取此时的ADC电压,这样就可以实现了中断加ADC的多个按键判断。好处是ADC可以不用实时轮询,节省CPU开支,同时也能节省设备的功耗。 缺点是器件多,成本高。

但是这种电路还有另外一个变型,是馒头科技设计的一个电路。

这个电路Vref的电位是0.33V,其他按键按下的电压通过LMV358的一路运放用作电压跟随器与ADC相连,另一路运放作为比较器使用,也能实现JOY_CHK的0到1的跳变。挺巧秒的。

这篇关于浅析五向按键的硬件设计思想的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789185

相关文章

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

浅析Java如何保护敏感数据

《浅析Java如何保护敏感数据》在当今数字化时代,数据安全成为了软件开发中至关重要的课题,本文将深入探讨Java安全领域,聚焦于敏感数据保护的策略与实践,感兴趣的小伙伴可以了解下... 目录一、Java 安全的重要性二、敏感数据加密技术(一)对称加密(二)非对称加密三、敏感数据的访问控制(一)基于角色的访问

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处