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.

[参考译文] MSP430FR2433:在 LPM3之后 SMCLK 是否可用?

Guru**** 2535750 points
Other Parts Discussed in Thread: MSP430FR2433

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/857036/msp430fr2433-is-smclk-available-after-lpm3

器件型号:MSP430FR2433

我使用 I2C、使用 eUSCI_B、使用 SMCLK。  但是、如果我进入 LPM3 (使 LED 闪烁)、它使用使用 VLO 唤醒 RTC。  之后 I2C 似乎停止工作。  CS_getSMCLK()返回0,这似乎表明 SMCLK 不再可用。  我知道 SMCLK 在 LPM3中停止、但我是否必须执行一些操作才能在之后重新启动它?

我将 eUSCI_B 配置为在每个 I2C 事务上使用 SMCLK。  使用 DriverLib、在大多数示例和代码中、DriverLib 会调用 CS_getSMCLK()来设置位速率。  如果 CS_getSMCLK()返回0、则表示它未正确配置 eUSCI。  我想知道、当 eUSCI 请求 SMCLK 时是否会启动它、  而仅仅是对 CS_getSMCLK ()(在 SMCLK 处于活动状态之前发生)的调用存在缺陷?

在 POR 之后、我不配置时钟、而是在复位时钟之后使用默认配置。  我不认为这是相关的、但我也在使用 LPM4.5、I2C 连接到外部 RTC 芯片以从 LPM4.5唤醒处理器

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

    您好、Lloyd、

    您何时使用 I2C 发送数据-换句话说、您是否仅在 LED 闪烁时发送数据? 还是在不同的时间?

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

    没关系、我的错误。 进入 LPM3之前、我调用了

    cs_initClockSignal (
    CS_FLLREF、
    CS_VLOCLK_SELECT、
    cs_clock_divider);

    但是、如果我省略该调用、情况就会起作用。  我不知道为什么我认为有必要、现在我认为 VLO 会自行处理、不需要初始化、至少对于 MSP430FR2433而言是如此。
    但这些实际参数毫无意义、硬件不允许 VLO 振荡器作为 FLL/DCO 的源。
    我想这些参数最终会向 SELREF 域写入一个保留值。
    我不明白为什么这似乎会停止 SMCLK。

    最好是 CS_initClockSignal()检查其参数的有效性并断言或返回错误。

    为了回答您的问题、我在退出 LPM3 (包括上面的错误调用)后使用了 I2C。