设备上电无法启动的原因可能有多种,简单的故障排除方法可以快速找出可能发生的情况。
MSP430F1xx至MSP430F4xx等较简单的设备需要与MSP430F5xx或MSP430FRxx等具有多个电源域的更高级的设备需要进行不同的故障排除。
对于MSP430F1xx至MSP430F4xx器件,上电或启动过程非常简单。通电然后电压监控器或掉电电路会检查电压并以安全电压释放设备。因此,验证第一条指令已执行是非常重要的。用户可以通过在代码开头添加端口切换port toggle来进行检查。
对于C语言项目,TI建议在 C-start-up code中添加此切换,以确保在低级别初始化期间不会发生启动问题。 《 MSP430 Optimizing C/C++ Compiler User's Guide》的“System Initialization”一章中介绍了此过程。还要检查是否将存储在地址0xFFFE的RESET向量设置为期望值(程序的入口)。如果无法达到此初始端口切换,则问题可能与硬件有关。检查电源是否存在高电流消耗,并检查电源电压时序是否符合数据手册规格。在此,比较重要的是要考虑数据手册BOR部分中的电源斜坡规格。
图1显示,只有当DVCC的上升速度超过3 V / s时,才能确保整个BOR电路的功能。另外还必须考虑频率与电源电压的规格,尤其是在没有SVS的芯片上。常见的问题是用户在电源上升期间增加了CPU频率,而没有考虑DVCC尚未达到适当的水平。这将会导致频率与电源电压的冲突,这可能会由于超频而导致不可预测的设备行为。
图1. POR/BOR Reset Specification of F2132
在具有不同电源域的更复杂的设备(例如F5xx和F6xx)上,用户不仅必须观察电源斜坡,还必须观察内部LDO的行为。该行为会提供有关内部可能出现问题的信息。必须强调的是,必须为LDO电压和外部DVCC选择正确的频率。图2显示了F6638的频率与电源电压的关系示例。
图2. F6638芯片的Frequency vs Supply Voltage
例如,如果用户需要增加Vcore电平,则必须了解Vcore引脚在启动期间的行为。 Vcore是否在数据表中指定的适当DVCC级别内逐步提高?在Vcore期间是否考虑了PMM模块的延迟?通常,TI建议使用MSP驱动程序库功能,该功能可管理软件级别的所有详细信息。在这两种情况下,确保满足最大工作条件的数据手册规格都是至关重要的(参见图3)。经常看到的情况是,在将另一个电压施加到GPIO引脚后,该设备通过DVCC上电。这可能导致通过ESD导轨供电,从而导致不可预测的设备启动。有关此问题的更多详细信息,请参见ESD二极管电流规范。
图3. FR6989的绝对最大额定值
Annie Liu:
我们建议您在发布新问题之前先搜索 E2E支持论坛,E2E支持论坛已经拥有数十万个已得到解答的话题。 这通常是解决问题的最快方法。