This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5419A:未正确启动

Guru**** 2515655 points
Other Parts Discussed in Thread: MSP430F5419A, MSP-FET

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/991625/msp430f5419a-not-start-correctly

器件型号:MSP430F5419A
主题中讨论的其他器件: MSP-FET

大家好。

我有一个具有  MSP430F5419A 的定制板、100桥臂、修订版 h uC。  

复位时、Vcore 为470n、Evry Dvcc 为0.1+1.0、AVCC 为0.1u+10R、32768 xtal、47k+220p (SBW 将无法很好地连接到具有更大电容的芯片)。 Dvcc 为3.3V (来自 LDO)并且上升约100uS/V、在 VCC 或复位网络上没有任何尖峰。

 启动时的问题相当浮动、但在几个相同的电路板中是相同的。  通过 SBW 或 WDT 芯片重新编程后、开始正常。

但是 、如果我使用独立电源、则在插入电源连接器后、这些电源无法正常启动: 它需要等待几分钟才能重新启动( 在 SYSRSTIV WDT 中作为启动源)或快速重新连接电源(某些类型的 SVS 事件)或通过 GPIO 连接第一个弱电源(如调试 UART 输入)。 直到芯片未启动在  system_pre_init ()芯片卡住且 GPIO 随机"闪烁"之后 main ()函数(具有时钟初始化等)。 但有时此错误会被消除、所有具有相同固件的电路板都能正常启动。 复位矢量似乎由于某种原因而损坏、 并且行为取决于闪存占用情况。  

我使用_system_pre_init 函数:
WDTCTL = WDTPW + WDTHOLD;
SFRRPCR=SYSRSTRE|SYSRSTUP;
_disable_interrupt ();

P8DIR|=BIT4|BIT3|BIT2|BIT1;
P8OUT|=BIT4|BIT3|BIT2|BIT1;  ///此处的 LED 是否闪烁?

和针对 SYSNMI 和 UNMI 向量的 void ISR 回调。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    220pF 对于复位电容器来说太大。  尝试使用2.2nF 电容、查看您是否仍遇到问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试将 Creset 更改为22n (只是我将其置于同一封装中)或将 Rreset 从1k 更改为470k。 没关系。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们建议在复位时使用47k 作为上拉电容器、使用2.2nF 作为电容器。  这将确保在复位线路上看到正确的转换。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,我将复位 RC 完全更改为2.2n*47k,但没有什么新的。

    还有一件事。 如果"卡死"状态芯片无法通过 GND w RST 短接重新启动、则仅快速重新连接电源线。

    该电压在加电时看起来是什么样的。 VCC、VRESET 和 Vcore。 我认为非常清楚

    close_up

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    我怀疑您的启动问题是因为您的 CDVCC 与 CVCORE 比率小于建议的最小比率10。  您可以在数据表(当前在第15页)的"建议运行条件"部分找到此建议。 我建议将 CDVCC 增加至超过4.7uF。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、James、我在每个 DVCC 引脚上都使用1U+0.1uF、所以总共为4.4u。 +我添加了22u、但没有任何变化。

    我很奇怪,与芯片相关的连接原理图几乎与 devboard MSP-EXP430F5438手册( https://www.ti.com/lit/ug/slau263i/slau263i.pdf )中描述的一样。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="130384" URL"~/support/microcontrollers/msp430/f/msp-low-power-microcontroller-forum/991625/msp430f5419a-not-start-correctly/3666292 #3666292]I 在每个 DVCC 引脚上使用1U+0.1uF、因此总共为4.4u。 +我添加了22u、但没有任何变化。

    请记住、4.4uF 的比率仍然小于10。 接下来、DVCC 上的累积电容要高于4.7uF。 这将有助于您排除此问题、并专注于可能导致此问题的其他事项。

    您的意思是什么、什么是没有变化? 您是否能够对器件进行编程? 如果是、请尝试在 TI Resource Explorer 中对我们的其中一个代码示例进行编程。 由于 CDVCC 与 CVCORE 比率大于10、因此最好缩小编程问题或(代码)启动问题的范围。

    您使用什么工具对器件进行编程?

    器件是否由电路板上的另一个器件反向供电? 在未应用 VCC 的情况下、您将需要避免施加高于数据表所指定的任何电压。 有时、当电路板上的其他器件通过 I2C、UART 等进行连接但由不同电源供电时、会发生这种情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是芯片在每次启动时都没有正确启动、即使我提高了 Cdvcc\Cvcore 比率。 我可以进行编程和调试(CCS、通过 launchpad 进行 SBW 编程)、我在项目中使用的所有外设都没有任何问题。

    如果在我连接主电源之前器件是反向供电寄生(例如外部 USB-UART 转换器)-芯片启动良好。

     代码也可能有问题。 但是、对于唯一的"闪烁"示例、它不是每次都启动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="130384" URL"~/support/microcontrollers/msp430/f/msp-low-power-microcontroller-forum/991625/msp430f5419a-not-start-correctly/3666949 #3666949"]我可以进行编程和调试(CCS、通过 launchpad 实现的 SBW),我在项目中使用的所有外设都没有任何问题。

    您是通过 LaunchPad 上的调试器(例如3V3引脚)为定制板供电、还是也要对定制板施加外部电压? 根据您的连接、可能会出现电源冲突、因此器件可能会由 LaunchPad 调试器或其他 IO 反向供电、这可能导致不稳定的行为。 MSP-FET 调试器旨在感测电源电压并调节 JTAG 引脚的电压(逻辑)电平、而无需对器件反向供电。 LaunchPad 无法做到这一点、因此必须更加小心。 假设逻辑电平相同(例如3V3)、您需要在器件由外部电源供电后连接调试器。 在这种情况下、您只需使用 SBW 引脚和 GND 进行编程。

    [引用 userid="130384" URL"~/support/microcontrollers/msp430/f/msp-low-power-microcontroller-forum/991625/msp430f5419a-not-start-correctly/3666949 #3666949"> 代码也可能出现问题。 但是、对于唯一的"闪烁"示例、它不是每次都启动。

    可以使用一个简单的代码示例来帮助排除代码问题。 例如、如果您使用具有错误负载电容的外部晶体并在代码中启用/验证晶体、则可能会有一个振荡器故障标志、阻止代码在该位置位时运行。 这似乎是启动问题。 如果简单代码示例不使用晶体、您可以将其排除。 我想您正在取得进展。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将直接通过调试器单独为电路板供电。 如果我连接调试器、第一次 连接的行为与外部电源的情况相同-每次都不能正确启动。 只有在重新编程(或另一个软件复位事件)、快速电源重新连接之后、或者在外设反向供电的情况下、芯片才能够正常启动。

    [引用 userid="216616" URL"~/support/microcontrollers/msp430/f/msp-low-power-microcontroller-forum/991625/msp430f5419a-not-start-correctly/3666987 #3666987"]例如,如果您使用的外部晶体具有错误的负载电容[/引用]

    是的、它看起来与此非常相关。 但实际上、有32768代。 XT1OFF 位的默认值为1、所以芯片必须从内部 RC 开始、

    我还将简单的 LED 初始化添加到 _system_pre_init 中、因此我知道它停留在这个函数或更早的函数上、在 main ()和所有时钟输入之前、等等

    出厂编程的引导加载程序是否会出现问题? 芯片可能不会进入 _system_pre_init()和 main(),而是进入 BSL?  我可以检查一下吗?

    可以通过读取 TLV 转储来检查我当地商店的芯片是否为假芯片?

    这也是一个奇怪的事实。 处于"卡死"状态时、复位引脚短接至 GND 不执行任何操作。 在实际启动之前、软件可能会禁用 RST 引脚。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为现在有太多的变量会导致这个问题、因此我建议您在调试过程中开始建立一些已知的参考点。

    在软件方面、通过使用诸如 msp430x54xA_1.c 的代码示例来切换 P1.0、从而排除您的代码(例如_系统_pre_init)。  在硬件侧、从电路板上的 MSP430上移除或断开所有不必要的连接。 请勿将调试器连接到调试器、并查看其是否正确加电。 我的意思是检查 P1.0是否正在切换。

    对 MSP430进行编程后、有时在您复位之前、它不会立即开始执行代码。 但是、在编程和删除调试器连接后、每次都应启动调试器。 我相信、如果我在目标插座板中使用这个 MSP430并按照我之前的指令操作、MSP430将在每次3V3被应用到电路板上时启动。