社区导航

 
查看: 892|回复: 11

[讨论] stm32之运行怪异现象

[复制链接]

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2017-11-20 10:03:11 | 显示全部楼层 |阅读模式
本帖最后由 wateras1 于 2017-11-20 13:52 编辑

             最近项目中看到同事使用的STM32F103芯片出现了两个很奇怪的运行异常现象,至今我也没想明白为什么会出现这类现象,特发来大伙一起讨论下可能有什么原因。
        1:stm32f103看门狗无法正常复位,程序在运行一段时间时竟然莫名其妙的死机了(在工程现场发现多次,实验室未复现),但是内狗和外狗都被杀了(即使内部看门狗和外部看门狗都打开了,都不起作用),这个问题描述有问题,时间过得太久了,几个月前的原因,细节都忘了,刚又和当事人咨询了下,发生死机现象时,外部看门狗起作用了(输出了低电平),但是复位电路貌似不起作用,及时强制给芯片低电平都不能让芯片复位。
        2: stm32f103程序运行一段时间(目前只在工程现场遇到,实验室搭建的测试平台跑了几个月都没看到),竟然串口接收中断都没触发,接收不了数据(正常情况串口软件会将串口1接收的数据通过串口2打印出来,异常出现时串口2无数据打印;已经用示波器测试了芯片的RX引脚,可以收到串口数据,一切正常,硬件应该没问题,板子按键复位后,又可以收到串口数据)。
        这款芯片已经出来很多年了,我也是用过好些年,不过上面的情况,我也没遇到过,我也用stm32f103做了一款有线网关,至今都未遇到他们遇到的问题,看了串口程序配置,没发现有什么不同。


此帖出自stm32/stm8论坛
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目


回复

使用道具 举报

1229

TA的帖子

4

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-11-20 11:48:36 | 显示全部楼层
检查一下复位和上电。
之前有一个测试项目遇到过类似的问题,也是不掉电就的无法复位,程序不运行。重上电就可以。
原因就是,IC在POR之后,BootLoader会从外部加载固件,运行期间,有外部复位BootLoader会重新从外部加载固件,但是期间reset上有较大抖动,(即BootLoader加载程序未完成期间,又读到复位状态),会使得BootLoader电路有一定几率出错进入到异常状态,无法恢复,(即再怎么按复位键也没有作用,主要是reset并不会IC内部的全局复位,进入到异常状态,确实无法通过reset恢复初始态,只能断电再来)

103用过,不过不是非常熟,不一定一样,只是提个思路,以前掉过这个坑

点评

后面你们是怎么解决的呢?复位电路,感觉都大同小异,没发现什么问题,板子不是我画的。你这个描述确实有意思。对于看门狗无法复位现象,其实我描述的不是很清晰,再次,我描述更清晰些 目前我所看到的,都是同事  详情 回复 发表于 2017-11-20 13:37
坐而言不如起而行


回复

使用道具 举报

3260

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-11-20 13:29:06 | 显示全部楼层
本帖最后由 huo_hu 于 2017-11-20 13:30 编辑

是不是复位以后晶振不起振啊,个别的还是大批的
坐等答案学习一下

点评

我A同事的外部狗和内部狗都被干掉后,测试的晶振有输出正常波形  详情 回复 发表于 2017-11-20 13:46
发现好几起了,感觉不像个例。重点是板子会时不时发生几次还不知道什么原因导致的。  详情 回复 发表于 2017-11-20 13:40


回复

使用道具 举报

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2017-11-20 13:37:22 | 显示全部楼层
本帖最后由 wateras1 于 2017-11-20 13:54 编辑
wsmysyn 发表于 2017-11-20 11:48
检查一下复位和上电。
之前有一个测试项目遇到过类似的问题,也是不掉电就的无法复位,程序不运行。重上电 ...

后面你们是怎么解决的呢?复位电路,感觉都大同小异,没发现什么问题,板子不是我画的。你这个描述确实有意思。对于看门狗无法复位硬件现象,其实我描述的不是很清晰,再次,我描述更清晰些

目前我所看到的,都是同事的项目上看到的,我自己都没遇到过(不过我的复位电路和芯片和他们都是一样的)
1:A同事的板子在工程现场遇到过死机,但是他的硬件内部狗和外部狗都打开了,但是硬件电路还是无法复位,只能掉电重启才可以恢复,按复位键都不起作用
2:B同事的板子只使用了内部狗,他的硬件死机后,内部狗也不起作用,但是按下复位键还是可以恢复正常的。
你的现象和我A同事的有些像。

点评

我们遇到这个问题,也是比较偶然,做快速复位撤销的实验,找一个窗口,阈值,和最小复位时间等等,发现有这样问题的。 因为做芯片的,后续解决办法就是,关于reset部分,加一些迟滞电压,大概100mV这样,reset到了V  详情 回复 发表于 2017-11-20 15:05
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目


回复

使用道具 举报

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2017-11-20 13:40:10 | 显示全部楼层
huo_hu 发表于 2017-11-20 13:29
是不是复位以后晶振不起振啊,个别的还是大批的
坐等答案学习一下

发现好几起了,感觉不像个例。重点是板子会时不时发生几次还不知道什么原因导致的。

点评

如图  详情 回复 发表于 2017-11-20 14:02
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目


回复

使用道具 举报

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2017-11-20 13:46:57 | 显示全部楼层
本帖最后由 wateras1 于 2017-11-20 13:53 编辑
huo_hu 发表于 2017-11-20 13:29
是不是复位以后晶振不起振啊,个别的还是大批的
坐等答案学习一下

我A同事的外部狗和内部狗都开启的情况下,板子还是死机,测试的晶振有输出正常波形
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目


回复

使用道具 举报

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2017-11-20 14:02:51 来自手机 | 显示全部楼层
wateras1 发表于 2017-11-20 13:40
发现好几起了,感觉不像个例。重点是板子会时不时发生几次还不知道什么原因导致的。

如图
IMG_20171120_135842.jpg


回复

使用道具 举报

1229

TA的帖子

4

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-11-20 15:05:22 | 显示全部楼层
wateras1 发表于 2017-11-20 13:37
后面你们是怎么解决的呢?复位电路,感觉都大同小异,没发现什么问题,板子不是我画的。你这个描述确实有 ...

我们遇到这个问题,也是比较偶然,做快速复位撤销的实验,找一个窗口,阈值,和最小复位时间等等,发现有这样问题的。
因为做芯片的,后续解决办法就是,关于reset部分,加一些迟滞电压,大概100mV这样,reset到了VIH电压时,如果再有一定程度的波动,也不会使reset马上再进入复位状态。BootLoader部分修改设计等等。具体不太清楚了。

实际板级设计的话,可以考虑比较可靠的复位电路,增加抗干扰等等;
实验室话可以造一些reset的扰动,板子不下电,快速的复位撤销,看看是不是和reset有关系。

坐而言不如起而行


回复

使用道具 举报

4184

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-11-24 17:32:18 | 显示全部楼层
外部看门狗?使用了外部看门狗芯片?之前我们也是碰到一个板子,RESET引脚没办法复位,用的是RC复位电路。
后面发现了问题,RC中的C使用不能太大,也都考虑到用外部看门狗芯片呢。。。。
但是,修改了RC中c的值,就没有问题,也没有使用外部看门狗啊。
RESET.png


还有一点需要提醒下哥,stm32的外围电路的设计,一定不能走经验主义。。。。。好多人走经验主义。反正是103的,外围电路抄来抄去的,除了问题也是以为没有问题。当然,这个不是说哥您,只是表达个现象呢。

点评

其实我也觉得是和复位电路有关系,尤其电容,电阻取值方面确实目前很多人都是相互抄袭也不知道为什么这样取值,这个电路不是我画的,我公司硬件工程师整的。  详情 回复 发表于 2017-11-24 18:01


回复

使用道具 举报

3539

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

 楼主| 发表于 2017-11-24 18:01:01 | 显示全部楼层
huaiqiao 发表于 2017-11-24 17:32
外部看门狗?使用了外部看门狗芯片?之前我们也是碰到一个板子,RESET引脚没办法复位,用的是RC复位电路。
...

其实我也觉得是和复位电路有关系,尤其电容,电阻取值方面确实目前很多人都是相互抄袭也不知道为什么这样取值,这个电路不是我画的,我公司硬件工程师整的。

点评

是的,我觉得他可能复位电路用到了,然后外部看门狗也用了。。。。。而且复位电路中RC中的C的容值用的不对,所以造成的。 我看楼上说,关电后才能复位。 但是,比较暴力和粗暴的做法是,拿镊子,夹住电容两端  详情 回复 发表于 2017-11-24 18:09
淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目


回复

使用道具 举报

4184

TA的帖子

9

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-11-24 18:09:20 | 显示全部楼层
wateras1 发表于 2017-11-24 18:01
其实我也觉得是和复位电路有关系,尤其电容,电阻取值方面确实目前很多人都是相互抄袭也不知道为什么这样 ...

是的,我觉得他可能复位电路用到了,然后外部看门狗也用了。。。。。而且复位电路中RC中的C的容值用的不对,所以造成的。
我看楼上说,关电后才能复位。

但是,比较暴力和粗暴的做法是,拿镊子,夹住电容两端  就可以使得CPU复位。如果这样都不能复位,那么是CPU的问题呢。


回复

使用道具 举报

120

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-11-26 19:20:26 | 显示全部楼层
个人再猜另外一个角度吧,是不是抗干扰做得不够。我觉得,抗干扰过关的话,看门狗几乎不会用到。要是电平这么跳的话,那A/D没法做了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-10-24 03:58 , Processed in 0.347658 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表