打印

按键长按与短按硬件识别

[复制链接]
4969|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DawsonHu|  楼主 | 2015-12-28 22:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大家好,
最近在写的MSP430程序总是会出现死机现象,而且这种现象一直会出现在开机状态(开机瞬间,先退出低功耗模式,再软件复位芯片)。这种情况虽然很难出现,现在也不知道软件哪里可以入手,所以想增加通过识别按键(不想再添加按键数量)长按与短按来实现硬件的开机瞬间复位。
有以下问题:
1、这种死机(跑飞)现象可能是什么造成的?有那几点可以入手。(我查看了,死机的时候晶振正常,复位端电平正常,电源正常。)
2、软件无法复位的话,那就只能通过硬件复位。我本来这个按键是短按是有其他用的,现在需要检测一个长按时的电平,然后产生复位信号给单片机(MSP430F415)。那硬件电路可以怎么设计才是低成本?


相关帖子

沙发
windows100| | 2015-12-28 23:28 | 只看该作者
长按为啥要改硬件,按下去计个时检测松手,到时间就是是长按啊

使用特权

评论回复
板凳
DawsonHu|  楼主 | 2015-12-29 08:07 | 只看该作者
windows100 发表于 2015-12-28 23:28
长按为啥要改硬件,按下去计个时检测松手,到时间就是是长按啊

你好,
现在我是开机的时候回出现死机,也就是软件没法操作了,只能靠硬件进行复位。

使用特权

评论回复
地板
jjjyufan| | 2015-12-29 08:55 | 只看该作者
你可以试试 按键 之后接个RC 然后接复位芯片 的供电

使用特权

评论回复
5
yanwen217| | 2015-12-29 09:13 | 只看该作者
给楼主推荐一个在智能手环上应用很普遍的设计,是采用可设置复位时间的复位芯片SGM802设计的,长按键的时间透过电容来设置,低于这个时间RESET不输出信号,芯片在无按键下是零功耗。
请提供个邮箱,我发给你

使用特权

评论回复
6
DawsonHu|  楼主 | 2015-12-29 09:57 | 只看该作者
yanwen217 发表于 2015-12-29 09:13
给楼主推荐一个在智能手环上应用很普遍的设计,是采用可设置复位时间的复位芯片SGM802设计的,长按键的时间 ...

305088273@qq.com

使用特权

评论回复
7
yanwen217| | 2015-12-29 10:02 | 只看该作者

已发送,注意查收

使用特权

评论回复
8
DawsonHu|  楼主 | 2015-12-29 10:08 | 只看该作者
jjjyufan 发表于 2015-12-29 08:55
你可以试试 按键 之后接个RC 然后接复位芯片 的供电

你好,
我现在是这样用的,不是很明白你说的接法,麻烦能说具体点吗?

使用特权

评论回复
9
dirtwillfly| | 2015-12-29 11:31 | 只看该作者
没看懂啥意思。
给系统送电时死机?

使用特权

评论回复
10
forgot| | 2015-12-29 13:01 | 只看该作者
找到复位原因才是王道
复位端电平要监测复位瞬间的是否有波动,系统电源也一样

使用特权

评论回复
11
forgot| | 2015-12-29 13:01 | 只看该作者
找到复位原因才是王道
复位端电平要监测复位瞬间的是否有波动,系统电源也一样

使用特权

评论回复
12
DawsonHu|  楼主 | 2015-12-29 13:24 | 只看该作者
dirtwillfly 发表于 2015-12-29 11:31
没看懂啥意思。
给系统送电时死机?

系统是一直供电的。
通过按键短按开机(=屏幕显示,系统开始工作)的时候是从低功耗(=时钟全关)退出,然后软件执行复位。
在这个过程中会出现死机,也就是再操作按键没法开关机或其他操作其他按键。

使用特权

评论回复
13
DawsonHu|  楼主 | 2015-12-29 13:25 | 只看该作者
dirtwillfly 发表于 2015-12-29 11:31
没看懂啥意思。
给系统送电时死机?

本来硬件上也就没有通过按键进行复位的,现在只能通过硬件强行复位

使用特权

评论回复
14
DawsonHu|  楼主 | 2015-12-29 13:26 | 只看该作者
forgot 发表于 2015-12-29 13:01
找到复位原因才是王道
复位端电平要监测复位瞬间的是否有波动,系统电源也一样 ...

不好意思,是我没描述清楚。

使用特权

评论回复
15
DawsonHu|  楼主 | 2015-12-29 13:28 | 只看该作者
forgot 发表于 2015-12-29 13:01
找到复位原因才是王道
复位端电平要监测复位瞬间的是否有波动,系统电源也一样 ...

系统是一直供电的。
通过按键短按开机(=屏幕显示,系统开始工作)的时候是从低功耗(=时钟全关)退出,然后软件执行复位。
在这个过程中会出现死机,也就是再操作按键没法开关机或其他操作其他按键。

我现在检测开机过程中,如果有死机出现,会不会是CPU供电电压被拉低而错误,因为死机总是发生在开机过程,也就是从低功耗进入正常工作时出现。

使用特权

评论回复
16
dirtwillfly| | 2015-12-29 13:34 | 只看该作者
DawsonHu 发表于 2015-12-29 13:24
系统是一直供电的。
通过按键短按开机(=屏幕显示,系统开始工作)的时候是从低功耗(=时钟全关)退出, ...

为啥要复位呢?唤醒后开始工作就可以啊,参数可以重新设置一遍。

使用特权

评论回复
17
yanwen217| | 2015-12-29 13:51 | 只看该作者
dirtwillfly 发表于 2015-12-29 13:34
为啥要复位呢?唤醒后开始工作就可以啊,参数可以重新设置一遍。

看来版主没有玩过智能手环!
系统死机了,程序压根就不响应任何指令的,怎么唤醒?电池又不可拆卸,整个产品只有一个功能按键!
只有两个方案,一是等系统电池耗电耗尽,系统在插入充电时重启,二是利用这个功能按键,实现强制系统复位,这么说可明白?

使用特权

评论回复
18
forgot| | 2015-12-29 13:54 | 只看该作者
DawsonHu 发表于 2015-12-29 13:28
系统是一直供电的。
通过按键短按开机(=屏幕显示,系统开始工作)的时候是从低功耗(=时钟全关)退出, ...

:L被搞晕了,死机和复位是两个概念
如果是单片机死机的话,你是无法检测到按键电平变化的,又怎么实现软件的复位

感觉可以查一下退出低功耗模式时候的代码,不一定是硬件问题造成死机的。
你所谓的按键开机的操作,只是给单片机一个电平变化,然后退出低功耗吗?包含不包含对电源的操作?

使用特权

评论回复
19
dirtwillfly| | 2015-12-29 13:54 | 只看该作者
yanwen217 发表于 2015-12-29 13:51
看来版主没有玩过智能手环!
系统死机了,程序压根就不响应任何指令的,怎么唤醒?电池又不可拆卸,整个产 ...

额。我做智能手环的思路和你不一样。。

使用特权

评论回复
20
小鱼儿1045| | 2015-12-29 14:10 | 只看该作者
楼主的软件做法是不是:按键中断,然后退出低功耗,时钟切换的主时钟,工作。偶尔会出现“死机”的情况??

使用特权

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

本版积分规则

27

主题

207

帖子

1

粉丝