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.

[参考译文] MSP430G2553:复位问题

Guru**** 2561180 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/597749/msp430g2553-reset-issue

器件型号:MSP430G2553

您好!

我在独立器件中复位 MSP430G2553时遇到问题。 它不启动。 Launchpad 没有问题。

当我测量 RESET 引脚上的电压时、电压为2.86V、但我预计为3.3V。

在 I 下连接 了复位信号的示波器。 黄色为/RST 引脚、蓝色为 VCC 引脚。

这里有什么问题?

谢谢、

Dmitry

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

    您所附的示波器屏幕截图显示 RST 和 VCC 均为~3.3V。 您如何知道器件未正常启动? 故障的症状是什么?

    您能否提供器件设置的原理图?

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

     WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
     
     //设置16MHz 主时钟
     DCOCTL = 0;
     BCSCTL1 = CALBC1_16MHz;
     DCOCTL = CALDCO_16MHz;
     BCSCTL3 = XCAP_1;

     _delay_cycles (30000);

     //setup 引脚
     (笑声)

     //设置 I2C
     UCB0CTL1 = UCSWRST;
     UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;
     UCB0CTL1 = UCSWRST + UCSSEL_2;
     UCB0BR0 = 160;
     UCB0BR1 = 0; //波特率100KHz
     UCB0I2CSA = 0x38;//显示地址
     UCB0I2CIE = UCNACKIE;
     UCB0CTL1 &=~UCSWRST;

     (笑声)

     IE1 = WDTIE;
     IE2 = UCB0TXIE;

     WDTCTL = WDT_ADLY_1000;
     _low_power_mode_0 ();

     if (init_display()!= 0)
      返回-1;

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

    我发布了初始化代码、在该代码中、我必须在复位后插入两个延迟。 如果没有它们、I2C 在复位后立即发送数据会在第一个字节后卡住。 此外、我注意到看门狗间隔计时器在复位后无法按预期运行。 对于 ACLK、我使用32768石英。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dmitry、

    如果我理解正确、您不再遇到器件无法启动的问题? 现在您遇到了 I2C 和时钟设置方面的问题。 是这样吗?

    有关 I2C 通信问题、请首先阅读 MSP430 MCU 上常见 eUSCI 和 USCI 串行通信问题解决方案的第1和第5节。 此外、您是否已验证32kHz 晶体是否正常振荡? 您可以阅读 《MSP430 32kHz 晶体振荡 器》应用报告、了解有关如何使用 MSP430正确设置外部晶体的更多信息。

    此致、

    Caleb Overbay

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

    感谢您的建议。

    实际上从未出现过复位问题。 初始化代码在首次 I2C 通信时挂起。 我注意到32kHz 晶体振荡器根本没有启动或工作不稳定的调试。 我通过减少负载电容器并在复位后添加以下环路来修复它:

     执行{

      IFG1 &=~OFIFG;
      _DELAY_CYCLES (1000);
     } while (IFG1 & OFIFG);

    它还修复了我的 I2C 初始问题。 不稳定的32kHz 振荡器是否会影响 MCU 的其他部分、例如 I2C 或 DCO?

    谢谢、

    Dmitry

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

    我很高兴听到您能够解决您的 xtal 问题。 这可能会影响系统的其他部分、具体取决于通过此 xtal 提供的内容。 我认为此应用中最类似的问题是 WDT。 我假设您使用 ACLK 来获取 WDT、不稳定的振荡会导致奇怪的行为。

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

    您是否能够弄清 ACLK 为何影响 I2C 通信?

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

    也许它们是不相关的问题。 我还认为电路板通信的显示控制器在上电后无响应、因此 I2C 传输不会得到它的应答。 开始时的延迟允许控制器正确启动、以便能够确认接收到的字节。

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

    它们本可以是。 无论通过哪种方式、我都很高兴您的工作正常。 我可以关闭此主题吗?您对此问题还有任何疑问吗?

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

    请 关闭此主题。