打印
[STM8]

关于死机

[复制链接]
2534|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无为之益|  楼主 | 2015-3-13 11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教大牛们一个问题:我用STM8S903K3做的一个项目,用电池供电很容易死机,但是用外部稳压电源就怎么 操作也不会死机(即便这个外部稳压电源的电压比供电电池还低些)。
我写了一个测试程序,如果死机了,有个空闲的 IO口就有电平翻转波形出来(中断程序里),程序正常的话,该IO口就一直低电平。
结果死机时,果然有 翻转波形出来,这说明MCU可以正常进定时中断,但是主程序运行不正常了。
谁遇到过这种情况呢 ?可能哪里出了问题?这种情况到底是软件问题还是硬件问题?
谢谢各位了
沙发
mmuuss586| | 2015-3-13 12:23 | 只看该作者
一般是电池更稳定;
换其它电池测试下看看;

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
无为之益 + 1 谢谢
板凳
mmuuss586| | 2015-3-13 12:23 | 只看该作者
应该是你电源设计有问题;
也有可能电池问题;

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
无为之益 + 3 最后检查出来,就是电源电路内部电磁干扰大.
地板
zhaoyu2005| | 2015-3-13 13:35 | 只看该作者
有可能电池内阻大了,电流大时导致电压跌落

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
无为之益 + 3 你讲的知识给我很大的帮助,谢谢.
5
无为之益|  楼主 | 2015-3-13 13:37 | 只看该作者
mmuuss586 发表于 2015-3-13 12:23
应该是你电源设计有问题;
也有可能电池问题;

测试时,电池接入点和外部稳压电源接入点相同。也就是说,后面经过的 升压电路是一样的啊

使用特权

评论回复
6
无为之益|  楼主 | 2015-3-13 13:41 | 只看该作者
zhaoyu2005 发表于 2015-3-13 13:35
有可能电池内阻大了,电流大时导致电压跌落

去掉大负载后,电池供电出现死机的时间加长了点(满负载几秒钟就死)。
但是外部电源供电,即使电压比供电电池的电压还低,满负载运行几天都没问题。

使用特权

评论回复
7
zhaoyu2005| | 2015-3-13 13:50 | 只看该作者
无为之益 发表于 2015-3-13 13:41
去掉大负载后,电池供电出现死机的时间加长了点(满负载几秒钟就死)。
但是外部电源供电,即使电压比供 ...

你这样说,电池内阻大的可能性更大了,估计你用的是普通碱性电池吧。
你可以用镍氢电池、铅酸电池测试下,估计就正常了。普通电池电压高,不代表带能瞬间输出大电流。
稳压电源,话说输出1A电流很轻松吧,

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
无为之益 + 2 赞一个!
8
无为之益|  楼主 | 2015-3-13 14:05 | 只看该作者
本帖最后由 无为之益 于 2015-3-13 14:14 编辑
zhaoyu2005 发表于 2015-3-13 13:50
你这样说,电池内阻大的可能性更大了,估计你用的是普通碱性电池吧。
你可以用镍氢电池、铅酸电池测试下 ...


非常谢谢!
他们都怀疑我的程序有bug

使用特权

评论回复
9
无为之益|  楼主 | 2015-3-13 14:14 | 只看该作者
zhaoyu2005 发表于 2015-3-13 13:50
你这样说,电池内阻大的可能性更大了,估计你用的是普通碱性电池吧。
你可以用镍氢电池、铅酸电池测试下 ...

我们用的是锂电池,属于普通碱性电池吗?
我硬件比较文盲,多谢指教。

使用特权

评论回复
10
zhaoyu2005| | 2015-3-13 14:15 | 只看该作者
无为之益 发表于 2015-3-13 14:05
非常谢谢!
他们都怀疑我的程序有bug,话说我以前的量产产品,看门狗从来都没打开过,生产5、6年都没出现 ...

像你这种,用电池出问题,用稳压电源正常,当然得先考虑两种电源的差异,进行假设,然后进行验证,就知道是怎么回事了。其实只要了解电池及负载特性,就能判断的差不多了

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
无为之益 + 2 多谢指导
11
zhaoyu2005| | 2015-3-13 14:20 | 只看该作者
无为之益 发表于 2015-3-13 14:14
我们用的是锂电池,属于普通碱性电池吗?
我硬件比较文盲,多谢指教。

锂电池不属于普通碱性电池(就是常见的 5号 7号之类的),通常放电电流比碱性电池大,但是受电池质量、保护板性能的影响,一般厂家会给出最大工作电流。你挂示波器看下有电压跌落没就清楚了

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
无为之益 + 1 谢谢
12
无为之益|  楼主 | 2015-3-13 14:25 | 只看该作者
zhaoyu2005 发表于 2015-3-13 14:20
锂电池不属于普通碱性电池(就是常见的 5号 7号之类的),通常放电电流比碱性电池大,但是受电池质量、保 ...

问题是一接上示波器,就再也不死机,我感觉示波器也有什么电性能影响了这产品:L

使用特权

评论回复
13
zhaoyu2005| | 2015-3-13 14:42 | 只看该作者
不应该的,示波器接在电源输入的地方,监视电压是否跌落,不应该影响到运行状况的,你这样描述的话,应该在程序里判断是否外围器件出现异常,导致程序执行异常。

使用特权

评论回复
14
zhaoyu2005| | 2015-3-13 14:44 | 只看该作者
另外从你的主贴看,单片机应该没死机,只是执行结果不是期望的而已,你用死机描述不准确。

使用特权

评论回复
15
无为之益|  楼主 | 2015-3-13 15:04 | 只看该作者
本帖最后由 无为之益 于 2015-3-13 15:31 编辑
zhaoyu2005 发表于 2015-3-13 14:44
另外从你的主贴看,单片机应该没死机,只是执行结果不是期望的而已,你用死机描述不准确。 ...


恩,我再找找原因,谢谢你!

使用特权

评论回复
16
NE5532| | 2015-3-13 15:58 | 只看该作者
能进中断,说明单片机没死,是你的流程死了。试着找一下主流程死在哪里,可能会对你定位有帮助。

使用特权

评论回复
评论
无为之益 2015-3-17 14:15 回复TA
多谢,很正确 
17
无为之益|  楼主 | 2015-3-13 17:14 | 只看该作者
NE5532 发表于 2015-3-13 15:58
能进中断,说明单片机没死,是你的流程死了。试着找一下主流程死在哪里,可能会对你定位有帮助。 ...

问题解决了,确实是电路环境太差,我在通信中等待ACK的时候,现在加了个等待时间限制,超时就忽略此次通信了。
以前该通信程序软件模块里是加了超时处理的,这次移植的时候不知道怎么就给弄丢了。
真粗心!
谢谢 大家!

使用特权

评论回复
18
无为之益|  楼主 | 2015-3-13 17:17 | 只看该作者
结贴给分必须等24小时后吗?:)
很谢谢大家哈

使用特权

评论回复
19
x383709024x| | 2015-3-13 20:43 | 只看该作者
经验~~学习了
我现在一直不太会找错误~知道错误后也不知道用什么方法来解决~

使用特权

评论回复
评论
无为之益 2015-3-17 14:16 回复TA
相互学习 
20
wj19900703| | 2015-3-14 01:42 | 只看该作者
stm8s?你用电池有加ldo么?ldo的最大输出电流是多少?再看下外部电容是不是正确的。主要是这两个问题

使用特权

评论回复
评论
无为之益 2015-3-17 14:17 回复TA
是电路内部电磁干扰大,通信经常得不到 ACK,现在软件里增加容错技术。问题已经解决 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

237

帖子

1

粉丝