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.

[参考译文] MSP430FR6043:软件 BOR 和 REF_A

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1456245/msp430fr6043-software-bor-and-ref_a

器件型号:MSP430FR6043

工具与软件:

您好!

我在代码中有一个失效防护机制。 如果出现故障、我使用以下代码执行软件复位。

void softwareReset(void)
{
    uint16_t delay_loop_inc=0;
    for (delay_loop_inc; delay_loop_inc < 1000; delay_loop_inc++);//// adding a delay before reset action;
    __disable_interrupt();      // Disable all interrupts
        // Force a Software BOR
        PMMCTL0 = PMMPW | PMMSWBOR;
        while (1);

}

然而、在复位后、我的代码卡在基准发生器(REF_A)模块初始化中、尤其是在 while 环路中。 结果、在达到该状态后、整个硬件都会停止响应。

如何解决该问题。

此致、

Sarwath

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

    尊敬的 Sakhan:
    由于代码 卡在了这个部分、因此我的第一个想法是 REFGENBUSY 成立。 因此、确保禁用可使用 REF_A 的模块会使其变为 false。 我建议首先启用 ADC 模块、然后调用 adcRefVoltage 设置函数。

    此致、

    Diego Abad

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

    尊敬的 Diego Abad Sajamin:

    我相信、如果我先启用 ADC 模块、在 REF_A 模块打开之前、转换不会有基准电压。 我首先启用 REF_A 模块和第二个 ADC 模块。

    此致、

    Sarwath

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

    尊敬的 Sakhan:
    您是对的。 但是、ADC 卡住是因为 RED_A 开启(或使用 RED_A、因此、当其他模块(如 ADC)尝试将其初始化为 ADC VREF 时、它卡住)。 现在、我最好 先初始化 ADC、然后再初始化 REF_A  
    此致、
    Diego Abad