一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

仅用两根线就能感知多个按钮,用来监控多个按钮开关的办法

来源:analog 发布时间:2023-09-13

摘要: 这个简单的电路使您能够使用单个多通道1线可寻址开关(DS2408)监控多个按钮开关。

对于需要少于键盘或数字键盘的应用,这个简单的电路使用单个多通道1线 可寻址开关(DS2408)和一些外部组件监控多个按钮开关。

这篇文章的类似版本出现在2010年9月9日的EDN杂志上。

键盘和数字小键盘通常为电子设备提供用户界面,但许多应用程序只需要少量的按钮。对于这些,您可以通过一对导线监视多个按钮(图1)。


图1所示 该电路连接到微控制器后,仅用两根电线就可以监控8个按钮。

多通道,1线可寻址交换机(U1, DS2408)提供输入/输出端口P0-P7,在此应用中用作输入。高值电阻(R(PD))将这些端口连接到地,以确保定义的逻辑状态(0),D1-C1形成本地电源,从1-Wire通信线路窃取能量。当您按下按钮时,它将相应的端口连接到本地电源电压,这相当于逻辑1。这种状态的改变设置了端口的活动锁存器(参见数据表)。

条件搜索轮询

作为1-Wire从属设备,U1不发起通信。相反,主控(通常是微控制器)轮询1-Wire线。为了最小化开销,U1支持称为“条件搜索”的1-Wire网络功能。但是,在使用该功能之前,必须根据应用程序的需要配置U1。这包括定义合格的输入端口(通道选择),指定合格端口的极性(通道极性选择),选择端口的引脚或活动锁存器,并指定设备是否应响应单个端口的活动(or)或所有端口的活动(and)。

配置示例

例如,如果在8个端口中的任何一个端口检测到活动,U1将执行条件搜索。需要进行如下配置:信道选择掩码(地址008Bh) = 11111111b(1表示选择端口);通道极性选择寄存器(地址008Ch) = 11111111b(1表示电平必须高);控制/状态寄存器(地址008Dh) = 00000001b(选择端口的活动锁存作为源,并指定OR作为条件搜索项,即单个端口的活动)。

上电后,必须使用Write Conditional Search Register命令将配置数据加载到U1中。作为输入,PIO输出锁存器必须设置为1。通道访问写命令(以FFh作为PIO输出数据字节)将端口定义为输入。随后,发出Reset Activity latch命令完成配置。U1现在可以处理按钮活动了。

软件概述

配置U1后,应用软件上电进入一个无止回循环,1-Wire Reset后接条件搜索命令。如果没有按钮活动,U1就没有响应,正如条件搜索命令代码后面的两个比特的“逻辑1”所表明的那样。在这种情况下,微控制器取消条件搜索并重新开始。

如果U1响应条件搜索,前两位将是1和0,代表设备族代码(29h)的最低有效位,以其真形式和倒形式表示。在这种情况下,微控制器应该完成条件搜索流,它由一个192位序列组成(见数据表)。接下来,微控制器通过使用PIO活动锁存状态寄存器的地址(地址008Ah)发出读PIO寄存器命令来读取寄存器的数据。然后微控制器发出1线复位,接着是命令Resume和reset Activity latch。然后它返回到无限循环,轮询下一个按钮事件。

如果U1响应并且没有其他1-Wire slave连接,微控制器可以在读取前2位后取消条件搜索,发出1-Wire复位,然后是Skip ROM命令,然后读取PIO活动锁存状态寄存器。接下来,它必须发出1线复位,然后是命令跳过ROM和复位活动锁存器,然后返回到无限循环。

哪个按钮被按了?

从PIO活动锁存状态寄存器读取的代码包含答案。按PB1,数据为00000001b,按PB2,数据为00000010b,以此类推。8位中至少有一个是1。如果自上次Reset Activity latch命令以来按了几个按钮,则几个位将为1。然后应用软件必须决定这样的条件是否有效。(在最简单的情况下(1-of-8代码),软件认为所有设置超过1位的代码无效。

超过8个按钮

这个概念可以扩展到8个以上的按钮。您可以将额外的按钮与同时激活的两个端口(2-of-8代码)关联,而不是将一个按钮与一个端口关联。这些额外的按钮(PBn)连接如图2所示(x, y = 0到7,x≠y)。如果Px或Py被另一个按钮激活,二极管阻止该活动传播到其他端口。同样,应用软件必须检查从PIO活动锁存状态寄存器读取的代码,以确定它是否有效。这个概念的理论限制是255个按钮,这需要每个额外的按钮组合2、3、4、5、6、7或8个二极管。当每个额外按钮的二极管成本开始超过收益时,您会发现添加另一个DS2408更具成本效益。


图2 如果使用二极管连接到两个端口,则可以监控其他按钮(最多28个)。

参考电路

DS2408数据表,Devices, Inc



声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: