当前位置: 代码迷 >> 综合 >> 【MSP430】MSP430F5529关于电源管理模块(PMM)和供电监控介绍
  详细解决方案

【MSP430】MSP430F5529关于电源管理模块(PMM)和供电监控介绍

热度:98   发布时间:2024-02-27 08:23:59.0

以下资料大部分参考TI官方的《MSP430x5xx and MSP430x6xx Family User Guide》

一、电源管理模块和供电监控系统

1、电源管理模块介绍
??PMM模块涉及与设备的电源及其监控有关的所有功能。它的主要功能是首先为核心逻辑产生一个电源电压,其次,为设备上电压(DVCC)和核心电压(VCORE)提供几个机制以实现对它们的监督和监控。

??PMM使用集成的低压差线性稳压调节器(LDO)来调节从应用到设备的主磁芯电压(DVccDV_{cc}DVcc?)产生二次磁芯电压(VcoreV_{core}Vcore?),一般来说,VcoreV_{core}Vcore?为CPU、内存(闪存和RAM)、数字模块供电,而DVccDV_{cc}DVcc?为I/Os和所有模拟模块(包括振荡器)供电。

??在本章中,调节器的输入端或主端称为它的高端,输出端或副端在本章中称为它的低端

??磁芯所需的最小电压取决于所选的MCLK速率。下图显示了给定核心电压和系统频率之间的关系,下图只针对MSP430F5529 Launch Pad,其他设备请参阅特定设备的数据表,以确定对给定设备支持哪些核心电压水平和系统频率性能可能达到的水平。在这里插入图片描述

??PMM模块提供了监控DVccDV_{cc}DVcc?VcoreV_{core}Vcore?的方法,这两个功能检测电压是否低于特定阈值。一般来说,区别在于DVccDV_{cc}DVcc?监控导致开机复位(POR)事件,而VcoreV_{core}Vcore?监控导致软件可以处理的产生中断标志。因此,DVccDV_{cc}DVcc?分别由高侧检测器(SVSH)和高侧监控器(SVMH)监督和监视,VcoreV_{core}Vcore?分别由低侧检测器(SVSL)和低侧监控器(SVML)进行监督和监视。因此,有四个独立的监督和监控模块可以在任何给定的时间处于活动状态。由这些模块强制的阈值是由调节器产生VcoreV_{core}Vcore?所使用的相同电压基准导出的。
??除了SVSH、SVMH、SVSL和SVML模块外,VcoreV_{core}Vcore?还被断电复位(BOR)电路进一步监控。DVccDV_{cc}DVcc?在通电时从0 V上升时,BOR保持设备处于重置状态,直到VcoreV_{core}Vcore?达到足够的水平,可以以默认的MCLK速率运行,同时SVSHSVS_HSVSH?SVSLSVS_LSVSL?机制被激活。在操作期间,如果VcoreV_{core}Vcore?低于预设阈值,BOR还会生成重置。如果不需要SVSLSVS_LSVSL?的灵活性,BOR可用于提供更低功率的监控供电的手段。
Brown-Out Reset 低电压检测复位(欠压复位)
Power-On Reset 上电复位
Power-Up Clear 上电清除

??下图为PMM框图:
在这里插入图片描述

2、VcoreV_{core}Vcore?和校准器
??DVccDV_{cc}DVcc?可以从一个宽的输入电压范围供电,但设备的核心逻辑必须保持在一个低于这个范围允许的电压。由于这个原因,调节器已经集成到PMM中。调节器从DVccDV_{cc}DVcc?导出必要的核心电压(VcoreV_{core}Vcore?)
??更高的VcoreV_{core}Vcore?级别需要更高的MCLK的速度,高级别的VcoreV_{core}Vcore?会消耗更多的电能,因此核心电压被可编程为4个步骤,以允许它只提供给定MCLK设置所需的电能。该级别由PMMCOREV位控制。注意,默认设置(PMMCOREV的最低值)允许在非常宽的频率范围内运行MCLK。因此,许多应用程序不需要更改PMM。
??在将MCLK提高到更高的速度之前,软件必须确保VcoreV_{core}Vcore?级别对于所选频率足够高。如果不这样做,可能会迫使CPU在没有足够电量的情况下尝试操作,从而导致不可预测的结果。

该调节器支持两种不同的负载设置,以优化功率。以下情况需要采用大电流模式:
1、CPU处于活动、LPM0或LPM1模式
2、一个大于32Khz的时钟源被用来驱动任何模块
3、执行中断

否则,采用小电流模式。硬件根据上述标准自动控制负载设置。

3、电源电压监控器和监视器
??高侧主管和监控器(SVSH和SVMH)负责DVccDV_{cc}DVcc?,低侧主管(SVSL)和低侧监控器(SVML)负责VcoreV_{core}Vcore?。默认情况下,所有这些模块都是活动的,但是可以使用相应的启用位(SVSHE、SVMHE、SVSLE、SVMLE)禁用每个模块,从而节省一些电能。

4、SVS和SVM阈值
??由SVS和SVM模块执行的电压阈值是可以选择的。下表列出了SVS和SVM阈值寄存器、它们控制的电压阈值以及阈值选项的数量。

寄存器 描述 阈值 可用级别
SVSHRVL SVSHSVS_HSVSH?复位电压电平 SVSHIT?SVSH_{IT-}SVSHIT?? 4
SVSMHRRL SVSHSVS_HSVSH?SVMHSVM_HSVMH?复位释放电压电平 SVSHIT+SVSH_{IT+}SVSHIT+?, SVMHSVM_HSVMH? 8
SVSLRVL SVSLSVS_LSVSL?复位电压电平 SVSLIT?SVSL_{IT-}SVSLIT?? 4
SVSMLRRL SVSLSVS_LSVSL?SVMLSVM_LSVML?复位释放电压电平 {SVSL_{IT+}}, SVMLSVM_LSVML? 4(1)4^{(1)}4(1)

(1)^{(1)}(1)寄存器设置支持8个级别(0到7);然而,级别3到7是相同的

5、推荐SVSLSVS_LSVSL?设置
??对于每个核心电压,两个供应电压监督水平是可用的。SVSLRVL位定义VcoreV_{core}Vcore?的电压水平,低于此水平复位被激活。SVSMLRRL位定义了释放复位的虚核电压水平。虽然可以选择各种设置,但是有一组SVSLRVL和SVSMLRRL设置非常适合PMMCOREV选择的每个核心电压。默认情况下,SVSL事件总是生成一个POR (SVSLPE = 1), TI官方建议总是设置SVSLPE = 1以确保设备能够稳定启动。

??下表列出了最常用和推荐的设置:
在这里插入图片描述

6、推荐SVSHSVS_HSVSH??设置
??对于高侧供应,有两个供应电压监督水平可用。SVSMHRRL位定义DVccDV_{cc}DVcc?的电压水平,在这个水平上复位被释放。SVSHRVL寄存器定义了DVccDV_{cc}DVcc?的电压级别,低于这个电压级别就打开复位。这些设置应根据给定应用中设备运行所需的最小电压以及系统电源特性来选择。尽管可以使用各种设置,但最常见的设置是基于所需的最大频率,这又决定了监控的最小DVccDV_{cc}DVcc?级别。默认情况下,SVSH事件总是生成一个POR (SVSHPE = 1), TI官方建议总是设置SVSHPE = 1以确保设备的稳定启动。

??下表列出了最常用和推荐的设置:
在这里插入图片描述

??SVSHSVS_HSVSH?SVMHSVM_HSVMH?的可用电压阈值设置依赖于VcoreV_{core}Vcore?的电压电平设置。

??表2-4总结了所有可用的可能设置。未列出的所有其他设置无效,不应使用;另外,SVSMHRRL必须始终等于或大于SVSHRVL

在这里插入图片描述
??图2-3显示了SVMHSVM_HSVMH?的可用设置
在这里插入图片描述

??根据这些阈值,SVS和SVM的行为最好用图形来描述。图2-4显示了检测器和监控器如何响应各种供应故障条件。
??如图2-4所示,监测阈值内存在滞后,因此有效的阈值取决于电压轨是上升还是下降。在监测阈值中没有滞后现象。
??SVS 滞后
??只有当SVSMHRRL的位设置等于或大于SVSHRVL的位设置时,才会有稳定的迟滞。因此,必须选择一个SVSMHRRL设置,该设置等于或大于SVSHRVL设置。
在这里插入图片描述

7、高侧检测器(SVSH)和高侧监控器(SVMH)
SVSH和SVMH模块是默认启用的,可以通过分别清除SVSHE和SVMHE位来禁用。

下图显示了SVSHSVS_HSVSH?SVMHSVM_HSVMH?框图:
在这里插入图片描述

??如果DVccDV_{cc}DVcc?低于SVSHSVS_HSVSH?级别,则设置SVSHIFG (SVSHSVS_HSVSH?中断标志)。如果DVccDV_{cc}DVcc?仍然低于SVSHSVS_HSVSH?级别,并且软件试图清除SVSHIFG,硬件会立即重新设置。如果在设置SVSHIFG时设置了SVSHPE (SVSH POR enable)位,则生成一个POR信号。

??如果DVccDV_{cc}DVcc?低于SVMHSVM_HSVMH?级别,则设置SVMHIFG (SVMHSVM_HSVMH?中断标志)。如果DVccDV_{cc}DVcc?仍然低于SVMHSVM_HSVMH?级别,并且软件试图清除SVMHIFG,硬件将立即再次设置它。如果在设置SVMHIFG时设置了SVMHIE (SVMHSVM_HSVMH?中断启用)位,则会生成一个中断。如果在设置SVMHIFG时需要一个POR,可以通过在清除SVMHOVPE位时设置SVMHVLRPE (SVMHSVM_HSVMH?电压水平达到POR enable)位来配置SVMHSVM_HSVMH?

??如果DVccDV_{cc}DVcc?上升到SVMHSVM_HSVMH?水平以上,设置SVMHVLRIFG (SVMHSVM_HSVMH?电压水平达到)中断标志,如果此时设置SVMHVLRIE (SVMHSVM_HSVMH?电压水平达到中断启用),也会产生中断。

??另外,SVMHSVM_HSVMH?模块可以用于过电压检测,前提是设置最高核心电压(PMMCOREV = 11b),除了设置SVMHVLRPE之外,还需要设置SVMHOVPE (SVMH过电压POR enable)位。在这些条件下,如果上升的DVCC超过安全设备运行,就会产生POR信号

??SVSHSVS_HSVSH?SVMHSVM_HSVMH?模块具有节电操作的可配置性能模式。如果这些SVSHSVS_HSVSH?SVMHSVM_HSVMH?功率模式被修改,或者如果一个电压电平被修改,那么会有一个延迟会覆盖中断和POR信号,直到SVSHSVS_HSVSH?SVMHSVM_HSVMH?稳定。当SVSMHDLYST(延迟状态)读取为零时,延迟失效。另外,设置SVSMHDLYIFG (SVSH和SVMH delay expired)中断标志,如果设置SVSMHDLYIE (SVSH和SVMH delay expired interrupt enable),此时也会产生一个中断。

??在电源故障情况下,设置SVSHMD会导致在LPM2、LPM3和LPM4中设置SVSH中断标志。如果没有设置SVSHMD,则在LPM2、LPM3和LPM4中没有设置SVSH中断标志。此外,可以通过设置SVSMHEVM屏蔽所有SVSH和SVMH事件。对于大多数应用程序,应该清除SVSMHEVM。

??所有的中断标志SVSH和SVMH保持设置,直到BOR或软件清除。
软件必须启用高端SVS来修改RTC和LFXT寄存器。

8、低侧检测器(SVSL)和低侧监控器(SVML)
??SVSL和SVML模块在默认情况下是启用的,可以通过分别清除SVSLE和SVMLE位来禁用。图2-6显示了SVSL和SVML的框图。
在这里插入图片描述

??如果VcoreV_{core}Vcore?低于SVSLSVS_LSVSL?级别,则设置SVSLIFG (SVSLSVS_LSVSL?中断标志)。如果VcoreV_{core}Vcore?仍然低于SVSLSVS_LSVSL?级别,并且软件试图清除SVSLIFG,硬件会立即重新设置。如果在设置SVSLIFG时设置了SVSLPE (SVSL POR enable)位,则生成一个POR信号

??如果VcoreV_{core}Vcore?低于SVMLSVM_LSVML?级别,设置SVMLIFG (SVMLSVM_LSVML?中断标志)。如果VcoreV_{core}Vcore?仍然低于SVMLSVM_LSVML?级别,并且软件试图清除SVMLIFG,硬件会立即重新设置。如果SVMLIFG设置时设置了SVMLIE (SVMLSVM_LSVML?中断启用)位,则会生成一个中断。如果在设置SVMLIFG时需要一个POR,可以通过在SVMLOVPE位被清除时设置SVMLVLRPE (SVMLSVM_LSVML?电压水平达到POR enable)位来配置SVMLSVM_LSVML?

??如果VcoreV_{core}Vcore?高于SVMLSVM_LSVML?水平,则设置SVMLVLRIFG (SVMLSVM_LSVML?电压水平达到)中断标志。如果在此情况发生时设置SVMLVLRIE (SVMLSVM_LSVML?电压水平达到中断启用),则也会产生中断

??SVMLSVM_LSVML?模块也可以用于过电压检测。除了设置SVMLVLRPE之外,还可以通过设置SVMLOVPE (SVMLSVM_LSVML?过电压POR enable)位来实现这一点。在这些条件下,如果VcoreV_{core}Vcore?超过设备的安全阈值运行,将产生一个POR信号。

??SVSLSVS_LSVSL?SVMLSVM_LSVML?模块具有节电操作的可配置性能模式。如果这些SVSLSVS_LSVSL?SVMLSVM_LSVML?功率模式被修改,或者如果一个电压电平被修改,那么会有一个延迟会覆盖中断和POR信号,直到SVSLSVS_LSVSL?SVMLSVM_LSVML?稳定。当SVSMHDLYST(延迟状态)读取为零时,延迟失效。另外,设置SVSMHDLYIFG (SVSH和SVMH delay expired)中断标志,如果设置SVSMHDLYIE (SVSH和SVMH delay expired interrupt enable),此时也会产生一个中断。

??在电源故障情况下,设置SVSLMD会导致在LPM2、LPM3和LPM4中设置SVSLSVS_LSVSL?中断标志。如果没有设置SVSLMD,则在LPM2、LPM3和LPM4中没有设置SVSLSVS_LSVSL?中断标志。此外,可以通过设置SVSMLEVM屏蔽所有SVSLSVS_LSVSL?SVMLSVM_LSVML?事件。对于大多数应用程序,应该清除SVSMLEVM。

??所有SVSLSVS_LSVSL?SVMLSVM_LSVML?的中断标志保持设置,直到BOR或软件清除。

9、电源电压监督和监视器之电源
??当设备通电时,默认情况下启用SVSHSVS_HSVSH?SVSLSVS_LSVSL?函数。最初,DVccDV_{cc}DVcc?是低的,因此PMM在POR复位中保持设备。当SVSHSVS_HSVSH?SVSLSVS_LSVSL?级别都满足时,就释放重置。下图显示了这个过程:
在这里插入图片描述

10、增加VcoreV_{core}Vcore?以支持更高的MCLK频率
??在重置后,VcoreV_{core}Vcore?和所有的PMM阈值都默认为最低的可能级别。这些默认设置允许广泛的MCLK操作,并且在许多应用程序中不需要更改这些级别。但是,如果应用程序需要更高的MCLK频率提供的性能,软件应该确保在更改MCLK之前VcoreV_{core}Vcore?已经被提升到一个足够的电压级别,因为如果不能向CPU提供足够的电压,可能会产生不可预测的结果。对于给定的设备,已经建立了最大MCLK频率所需的最小VcoreV_{core}Vcore?级别(具体值请参阅指定设备数据表)

??将PMMCOREV设置为增加VcoreV_{core}Vcore?后,有一段时间延迟,直到新电压建立。在必要的核心电压稳定之前,软件不能提高MCLK。在增加MCLK之前,可以使用SVMLSVM_LSVML?来验证VCORE是否满足要求的最小值。下图显示了这个过程:
在这里插入图片描述

需要注意的是,VcoreV_{core}Vcore?级别一次只能增加一个级别。

11、SVS和SVM的性能模式和唤醒时间
??监督员/监视器可以在两种模式中工作:正常和全面的性能。不同之处在于响应时间和功耗的权衡;全性能模式有更快的响应时间,但消耗相当多的电力比正常模式。在外部电源解耦不能充分防止DVccDV_{cc}DVcc?上出现快速峰值的应用程序中,或者当应用程序对故障有特殊的容错时,可以考虑使用全性能模式。在这种情况下,全性能模式提供了额外的保护层。

??有两种方式控制的性能模式:手动和自动。在手动模式下,除了LPMx之外,其他所有运行模式的正常/全性能选择都是相同的。SVS和SVM在LPMx.5中始终是禁用的,在这种情况下,使用SVSHFP、SVMHFP、SVSLFP或SVMLFP位对它们各自的模块进行正常或全性能选择。

??在自动模式下,硬件根据实际的操作模式改变正常或全性能选择。

12、端口控制
??该PMM确保在欠压事件期间,I/O引脚不以不受控的方式产生动作。在这些事件中,输出被禁用,包括正常驱动和弱上拉或下拉功能。如果CPU正常工作,然后发生欠压事件,那么配置为输入的任何引脚都会在事件发生时锁定其PxIN寄存器值,直到电压恢复。在欠压事件期间,外部电压变化的引脚不登记内部。这有助于防止出现不稳定的行为。