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.

[参考译文] MSPM0G3505:欠压中断、检测到欠压时自动复位。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1397451/mspm0g3505-brown-out-interrupt-and-auto-reset-when-undervoltage-detected

器件型号:MSPM0G3505

工具与软件:

我正在尝试使我的 MCU 能够检测其电源何时出现电源电压可能下降的问题。

例如、当我的 MCU 以低电压启动时、在1.8V 电压下、它开始运行程序、但其 ADC 未运行、即使其电源电压恢复正常(3.3V)时也是如此。

所以我想在 MCU 成功开始引导后、把掉电阈值更改为3级、而不是0级(默认的)。

我使用命令 DL_SYSCTL_setBORThreshold (DL_SYSCTL_BOR_THR_LEVEL_3)更改电平;

然后通过设置 GO 位: SYSCTL->SOCLOCK 来激活。 BORCLRCMD =((uint32_t) 0xC7000000U)|(uint32_t) 0x01;

但是、当我向 MCU 提供3.3V 电压时、它不会像在我添加掉电命令之前那样启动任何编程。

有人知道如何使用此函数吗? 请提供帮助。

我还想知道欠压中断的中断处理程序函数是什么、但我可以在库的任何位置找到它、有人知道它在哪里吗?

非常感谢您的阅读。

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

    嗨、

    我不认为某些 BOR 相关问题会阻止您的 ADC 启动。 如果您在低于最低工作电压的情况下启动器件、则器件不会启动。 在超过 BOR+阈值之前、器件不会启动。 一旦超过 BOR0+阈值(1.62V)、器件就会启动、在该阈值下、只要器件保持在1.62V 以上、ADC 通常也可以启动。  

    如果您受到 BOR 问题的影响、则应该跳转到 BORLVL NMI、或者您的器件应进入复位状态、直到电压再次超过 BOR0+电平。 您可以通过在 NMI 处理程序中放置断点以及 按照 第 2.4.1.6节"复位原因"中所述检查复位原因、使用调试器来检查是否正在发生 BOR。

    我建议您在使用备用电源为器件供电时连接调试器、以查看在此过程中哪些代码正在运行以及器件在执行哪些操作。 我已经可以使用 ADC 的1.8V 和1.7V、但我还没有尝试精确的1.62V、但我怀疑一旦超过该电平、ADC 就会起作用。

    另外、您调整 BOR 电平的顺序对我来说很好、只需注意、这将被清除、并且需要在每次复位时再次执行。