TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430AFE253: MCU运行中异常复位

Part Number:MSP430AFE253

您好!我是用该型号mcu做交流电压电流采样及两个GPIO输出驱动光耦传输电平信号,芯片外围电路如下,程序在AC小于110V,或者AC90V切到230V,MCU出现复位,程序初始化。请辅助分析一下,谢谢!

Susan Yang:

能否请您详细描述下异常复位的情况?是否有观察相关寄存器的情况?

,

yijie yue:

有添加NMI中断判断晶振故障,flash错误等均未发生,WDT被禁用

,

Susan Yang:

谢谢您的反馈。请问您是否在debug模式出现类似死机的情况?另外2x系列没有SYSRSTIV寄存器。但您可以通过一个技巧来检测由于掉电或RST信号“噪声”而导致的外部复位:只有POR才能复位timer寄存器。因此,如果您更改tiemr寄存器并在启动时对照默认值对其进行检查(在更改之前),则可以确定您是来自POR还是来自PUC。

如果是PUC,则有多种原因:空闲的内存访问,密码不正确等。一般真正的原因通常是堆栈溢出或堆栈损坏,或者对数组的越界写访问。这通常是由代码概念中的设计缺陷引起的,难以跟踪。

堆栈溢出的典型原因是:过多的局部变量,递归,在ISR内启用GIE等。

,

yijie yue:

Susan,我曾怀疑堆栈溢出,所以将程序中所有的局部变量全部使用全局变量,编译map显示RAM使用35%,FLASH使用15%。程序中不使用数组,但复位现象依旧。您可以给我一个邮箱吗?我将源码传给您,您帮我分析一下,可以吗?

,

Susan Yang:

好的,您可以在论坛内私信一下(以附件形式发送工程)

,

yijie yue:

Susan,我发你的源代码分析结果出来了吗?有什么建议吗?

,

Susan Yang:

抱歉,回复有些晚了。

从您测试timer来看,看起来像是POR引起的reset。一旦观察到MCU复位故障,若是将RST引脚物理短路了,MCU会重新开始工作吗?

另外您的VCC以及RST引脚是否有使用示波器观察?

代码的话,我目前没有看出有什么问题。您也可以烧录TI例程看一下是否还会有这种问题。一般来说硬件上出现问题的概率比较大。

,

yijie yue:

Susan,MCU发生复位后程序初始化后重新运行,有用示波器观测rest引脚,可以测到短暂的低电平信号,请提供方案判定复位源,按照操作方法步骤,现象,及现象对应说明问题,列一下,谢谢!

,

Susan Yang:

MSP430AFE253上没有PUC指示器标志,数据表6.5 Special Function Registers  概述了此部分的特殊功能寄存器:http :  //www.ti.com/lit/ds/symlink/msp430afe253.pdf

同样在第10页上有图例,可用于确定PUC重置或设置的位。

用户指南http://www.ti.com/lit/ug/slau144j/slau144j.pdf也有表格 ,例如Table 8-2. Digital I/O Registers的表格,其中提到了初始状态以及是否已设置初始状态/用PUC重置。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430AFE253: MCU运行中异常复位
分享到: 更多 (0)