智能电表主控芯片中的电源设计
摘要:对于智能电表的设计而言,由于其使用场景的特殊性,主控芯片的供电可以是电池或变压器等。因此对于电能表主控芯片的设计来说,其内部的电源设计就变得尤为重要。重点论述电能表主控芯片中电源管理的设计,包含 POR、BOR 和电源切换开关的设计等。
1 引言
结合图 1 所示,在现有的智能电表设计中,对于整个系统的供电而言,一般是从市电取电,经由变压器和稳压电路整合,给电表的 MCU 或其他模块供电。当市电掉电时,一般由电池替代市电供电,继续维持系统电源。在某些更为特殊的应用场景中,比如印度、巴基斯坦地区的防窃电电表设计中,就存在仅有零线掉电,火线为窃电使用时,电表内部并不构成电源回路,而电表内部系统供电也并未选择电池供电,而是选择套在火线上的电流互感器产生的感应电流给电表系统供电。在这些应用场景中,可选择图 1 中的方法,即在整个供电的外部采用切换开关电路。随时切换市电、电池或者互感器供电,但是这个切换电路设计比较复杂,可靠性也不高,而且随着电能表设计的高度集成化,往往图 1 右侧的 MCU、LCD 模块、存储电路、计量芯片,已经被整合为一枚主控 SoC(System on Chip,称为芯片级系统)芯片所替代。因此,如何设计好这枚主控芯片内部的电源设计,成为电能表设计的关键技术[1-4]。
2 智能电表主控芯片中的电源设计
由于芯片有多个电源域和多个外部供电电源,电源管理就变得尤其重要了,电源管理包括 POR 和BOR,电源切换以及 LDO 的开关管理等。图 2 给出的是主控芯片内部各 POR 示意图。
2.1 POR
2.1.1 POR 的对应的电源域划分说明
芯片包括了多个 POR 模块和 BOR 模块,对于电能表主控芯片中的 POR 模块的功能分别是:
(1)POR_3V3 用来上电复位 ANA_3V3 电源域并参与 MAIN_1V5,LP_1V5 和 EMU_2V5 的上电复位。其中 3V3 为芯片 3.3 V 电源域,用以为芯片中的 LCD 模块、GPIO 模块、UART 模块等供电。
(2)POR_RTC 用来上电复位 RTC_1V5 电源域。其中 RTC_1V5 为 1.5 V 的独立 RTC(实时钟)电源域,对于目前的智能电表而言,RTC 的精度直接影响到电表的费率等功能,因此 RTC 由一单独的电源域控制。
(3)POR_MAIN 用来上电复位 MAIN_1V5 电源域,上电时也参与复位 LP_1V5 电源域 POR_LP 用来上电复位 LP_1V5 电源域和 MAIN_1V5 电源域。其中 MAIN_1V5 为主控芯片中低功耗的 Cortex-M0 的 CPU 内核的电源域。
(4)POR_EMU 用来上电复位 EMU_2V5 电源域。其中 EMU_2V5 为主控芯片中计量部分的电源域控制。
2.1.2 POR 过程说明
用比较器实现 POR_MAIN 和 POR_EMU 的功能。POR_MAIN 直接检测 LDO_MAIN 的电压输出,POR_EMU 则检测 LDO_EMU 电压输出的分压输出。
比较器在 POR_3V3_N_D(POR_3V3_N 经过 6 个 LRC 的延长)为低时,输出低电平。在POR_3V3_N_D 变高时,比较器输出实际比较值:当比较器正端输入低于 VREF(1.2 V)时输出低,高于 VREF 时输出高。POR_3V3_N 经过 6 个 LRC 的延长是为了在极快速上电情况下保证 BANDGAP 的建立和 POR 信号到 1.5 V 域的 Level shifter 的 1.5 V 供电建立。
由于是 3.3 V 供电,比较器输出不会 float,所以 POR_MAIN 和 POR_EMU 的输出就可以作为 MAIN 域到 LP 域的隔离和 EMU 域到 MAIN 域的隔离。
POR_EMU 输出在送到 SCU 以外,还送到 EMU_A,与 EMU_A 里的上电指示输出 AND 后作为 EMU 域的 ready 信号连接到 EMU_D。
POR_3V3_N 为低时会拉低 POR_LP 的输出。图 3 是在极快上电情况下各 POR_MAIN 和 POR_LP 产生过程(不考虑 BOR)。
在这种情况下,3.3 V 电源上升极快,POR_3V3_N释放很早,在 POR_3V3_N_D 释放时,LDO 输出早已达到额定输出,这时 POR_MAIN_N/POR_LP_N 基本上与 POR_3V3_N_D 同时释放。这种情况下,系统 reset (RESETn)的释放时间取决于 POR_MAIN_N/POR_LP_N。
图 4 是在极慢上电情况下各 POR 产生过程(不考虑 BOR)。
在这种情况下,3.3 V 电源上电很慢,LDO 输出基本跟随 3.3 V 电源,在 POR_3V3_N_D 释放后一段时间 LDO 可能才建立好。这时的 1.5 V POR在 POR_3V3_N_D 释放后一段时间后释放。这种情况下的一个问题是,由于在 POR_3V3_N 释放时(约 1.6 V),BANDGAP 还未达到额定值,而 POR_MAIN/POR_EMU 是通过比较器比较 LDO 输出和 BANDGAP 来释放 POR ,这时的 POR 可能会提前释放(LDO 输出还未达到 1.2 V)。但由于系统复位最终还要取决于 POR_LP,而 POR_LP 可以保证在 1.2 V 释放, 所以这个问题不会造成实质影响。
2.2 BOR
3.3 V 的 BOR_RST_N 则是用来监测 ANA_3V3 电源域以提供低电压复位。BOR 上电默认是 enable,用户可以通过程序 disable BOR,也可以通过 NVR 来调整复位阈值。BOR 的输出上有一个 100 μs 的滤波来过滤短的电源瞬时波动。
2.2.1 BOR 过程说明
由于 BOR 默认是 enable 的,芯片在实际上电过程还会受到 BOR 的影响。图 5 是有 BOR 参与的上电,低电压及下电过程示意图。 假设 BOR 默认阈值是 2.2 V,由 NVR 加载的阈值是 2.4 V。
2.2.2 BOR 产生过程
(1)上电开始时,BOR 默认 enable。在 3.3 V POR 结束后,POR_1V5 和 BOR 开始有效(BOR 也可能与 3.3V POR 重叠)。当 VDD33 达到默认阈值 2.2 V 时,BOR 释放(POR_1V5 与 BOR 的释放先后顺序不一定,取决于上电速度,这里只考虑 BOR 后释放的情况)。由于在上电过程中发生过 BOR,所以在正常上电后,复位标志寄存器的 BOR 位可能是置起来的。
(2)上电复位后,VDD33 如果发生变化,小于 100 μs 的毛刺可以被滤掉;当 VDD33 低于 BOR 默认阈值的时间长于 100 μs 时,BOR 会被拉低生效,一直到 VDD33 恢复到 BOR 默认阈值以上(上升阈值会高于下降阈值,这就是 BOR 阈值迟滞)。
(3)在 CPU reset 结束时,会从 NVR 里加载预设好的 BOR 阈值电压。这里以 2.4 V 为例。
(4)BOR 加载 NVR 阈值后,如果 VDD33 降到 2.4 V 以下超过 100 μs,则 BOR 输出拉低进行复位。
(5)当 VDD33 继续下跌到低于 POR 阈值时, POR 开始有效,芯片重新上电。
2.3 电源切换
智能电表主控芯片主电源域有两个供电电源:市电 VSYS 和电池 VBAT,假设如果有互感器供电的话,可以将 VSYS 和 VBAT 接在一起视作 VSYS,而将互感器供电接原 VBAT 脚上,视作 VBAT,而主控芯片中的电源切换单元负责这两个电源的切换,保证在各种情况下为芯片提供正确的供电,电源切换如图 6 所示。
VREF 通过两个比较器分别与 VSYS 和 VBAT 比较。根据两个比较器的结果,电源切换控制逻辑控制两个电源的切换。VDD33 是切换后的电源,为芯片系统域供电(ANA_3V3)。COMP_OUT 指示当前为芯片供电的电源是 VSYS 还是 VBAT。 COMP_OUT=1 表示当前电源是 VSYS,反之当前电源是 VBAT。任何的电源切换动作都会导致 COMP_OUT 的翻转,从而在 SCU 里产生 CPU 中断。
芯片供电电源选择的原则是:当 VSYS 高于阈值,则由 VSYS 为芯片供电;当 VSYS 低于阈值时,如果 VBAT 高于阈值则由 VBAT 供电,如果 VBAT 也低于阈值,则由 VSYS 继续供电。
VBAT 的阈值固定(2.1/1.9 V)。VSYS 则设置了若干阈值。为了避免震荡,VSYS 阈值又分为上升阈值和下降阈值,用户程序设置阈值时一定得保证上升阈值大于下降阈值。VSYS 的阈值可以在系统 reset 结束时从 NVR 加载,也可以通过用户程序修改 SCU 的相关寄存器来改变。上电时默认上升阈值是 2.7 V,下降阈值是 2.2 V。
值得注意的是,电源切换会产生中断,但中断会不会被 CPU 响应,一是取决于中断源是否被 enable。另外,如果 BOR 阈值设的高于 VSYS 阈值,也不会响应,因为在电源切换时产生了 BOR reset。当电源发生切换时,新旧电源间会有低至 VSYS 阈值的负脉冲。这时如果 BOR 使能,且阈值高于 VSYS 阈值,就会发生 BOR reset。
3 结语
通过对主控芯片中的 PRO 和 BOR 的划分,以及产生过程的设计,使得智能电表在上下电时可以可靠的工作,而不会产生震荡或者复位。电源切换电路的设计则保证了智能电表使用场景更为丰富,适应性更强,而基于上述设计的智能电表主控芯片,也在大规模的应用中的到了验证,展现出了良好的适应性和可靠性
全部0条评论
快来发表一下你的评论吧 !