[笔记分享] [Hardware] PM8058 User Guide study report

PM8058 overview

PM8058由输入电源管理、输出电压调整、housekeeping和用户接口这四大模块构成,集成了所有手机电源管理功能。适合于多种制式手机或者其他无线设备,如GSM, CDMA, UMTS。
在输入源方面,可以有充电器,外部usb设备,电池, 备用电容这几种源,具体使用哪种通过PMIC控制。此外,PMIC还对过压、过流保护,瞬间断电保护,温度,热量,电池等进行监控,以防电源模块出现问题。


Operating modes

PMIC hardwire option通过OPT_X(1-3)来设置的(在powerup的时候起作用),每个引脚都有ground, open, vdd三种接法,因此可达27中,不同芯片组使用不同的设置。
MSM和PMIC之间通过SBI接口来连接,而且两边的支持电压必须一致,这部分功能由PMIC来实现了。两者之间,PMIC作为slave,MSM充当master的角色,对PMIC进行初始化,模式、参数控制、认证等控制。这些控制,上层已经提供了相应的API,开发人员直接调用即可。
另外PMIC还有若干种操作模式(active, sleep, off1~3), 具体用哪种依赖于寄存器的设置、电池和支持条件,而内部某些电路功能是否开启又依赖于选择的是哪种操作模式。


Input power management

输入电源管理的主要功能就是监视和控制输入源,看其是否在操作许可范围内,还有调节电池和对纽扣电池充电从而使手机能正常地工作。
PMIC依靠外部电路连接从而能接受充电器和USB 蓝牙免提,除此之外还有电池。通过对OVP_SNS,VCHG,VPH_PWR引脚来探测是否有电源连上来。当充电器和电池都没有的时候,使用外部电容来使PMIC一些重要模块电路工作以实现一些关键功能。
模块图如下:
[笔记分享] [Hardware] PM8058 User Guide study report

External components and pass device

a. VCHG resistor and capacitor
两者组成RC网络。可以滤波,提高稳定、电磁干扰。当无设备连接时,由于电阻的下拉避免悬空。
b. bulk capacitor
至少22UF来确保VDD稳定性,可放在battery MOSFET或者 VPH_PWR其中一个旁边。
c. battery transistor
必须是P沟道MOSFET, 通过BAT_FET_N信号来对电池是否和VDD连接的控制,当transistor off时,电池不提供电源,也不受管理。当transistor on时,有两种不同的情况
1. 当pass transistor on时, 电池保持原状。
2. 当pass transistor off时, 电池给手机供电。
有一点要注意的是,VDD很重要,当内部所有负载都需要关闭电源的时候,不能靠VDD变成0V,而是通过device控制实现。

Overvoltage protection

过压保护部分可以保护外部的充电器或者USB 蓝牙免提故障,不过需要外部带LDO IC的N沟道MOSFET支持。
OVP_CLAMP电压5-16V,用来给PMIC电压探测和LDO电路提供基准电压。OVP_SNS最大电压28V,不过这里是5.5 – 7.0V,由detector 决定。Detector控制分两种情况:
1. 当充电器okay时,detector 禁止通过LDO和控制器来使得FET关闭,充电器和VCHG连接。
2. 当充电器输出电压过高时,detector通过LDO和控制器使得FET开路,断开和VCHG的连接,PMIC部分受保护。
另外,当不用过压保护时,OVP_SNS应被连到VCHG,OVP_CLAMP和 OVP_CTL应该被悬空。

Detectors, sensors

a. Voltage detectors. 通过VCHG和VPH_PWR来探测是否有外部电源连上来,看其是否在有效范围,探测结果以中断的方式被送到软件或者状态机去。有三种detectors:charger removal, battery alarms and low-battery detection.
1. Charger removal
充电器拔掉时,电压降到100mv,控制器就关掉pass transistor。防止pass transistor的反向操作能在VCHG引脚产生足够的电压来不让device和充电器断开。
2. Battery alarms
Window detector对VBAT引脚不断地探测,探测的电压上下限可设置,触发延时也可设置。
3. Low-battery detection
和battery alarms有点类似,中断触发产生所需要的延时可参照time hysteresis。当在这段延时时间内,电量又变正常的情况下,那么延迟被重新计数,中断也不会产生。
不过有一点要注意的是,当VBAT比lower-battery低时,low-battery alarm肯定会产生。
b.undervoltage lockout
UVLO会在VDD点电压过低的时候关闭device。当然,UVLO电压肯定比low-battery alarm的电压低。除此之外,UVLO还有SMPL修复、看门狗超时复位、poweron sequence abort功能。
设备power up时,VDD必须要超过rising threshold来初始化powerup sequence。当VDD比falling threshold低时,PON_RESET_N拉低,device关闭。
UVLO的hysteresis和time delays是不可配置的,而且ULVO不会产生中断,它是通过PON_RESET_N引脚来通知MSM的。

Charging transistor thermal protection

当温度超过合理限制时,通过降低穿透电流和控制charging transistor temperature。
在设计的时候也可以通过下面几种方法来降低损耗:
1. 使用过压保护功能
2. 通过使用外部供电来使穿过charging transistor的电压达到最小
3. 设计一个充电器
当过热而且VDD比VBAT低的时候,PMIC会关闭battery MOSFET来防止手机关闭。

Voltage regulation

主要实现选择哪种电压(VDD 、VBAT)作为电源,和操作模式有关。当外部电源连上来时,使用VDD,当电池被充电或者充电完成的时候,用VBAT。

Current regulation and protection

和thermal protection类似,电流保护也用了on-chip sensor。当过流的时候,charging transistor被设成高阻抗,VDD或VBAT被打乱来保护过流。

Main battery charging

系统提供了两种方法,一种是软件控制,另外一种是通过PM电路而不用软件的干预来完成。
a. 软件控制充电
对于一个用光的电池来说,充电需要以下步骤。一开始为trickle charging。主要是为了限制电流,因为一开始整个耗尽的电池充电时会吸走很大的电流,这样手机就无法正常工作了。一旦电池最小电压建立后,就是用constant current charging这种模式,也可称为fast charging。当充电接近目标电压的时候,转为constant voltage charging或者 pulse charging。
b. 自动充电
状态机在刚启动的时候建立VDD,判断输入源、是否需要trickle charging等。在成功了启动之后判断电池是否需要充电和从哪个充电步骤开始。当充电完成以后停止充电,允许用外部电源启动手机。
另外,自动充电中是没有pulse charging这一模式的。

SMPL

它的作用是在短暂的断电(如手机震动)时,在没有软件干预的情况下提供poweron sequence。当SMPL使能的时候,PMIC是关闭的。纽扣电池或者充电电容作为电源。SMPL是使用计数脉冲用在UVLO探测上,如果在计数允许范围内,VDD正常了,那么poweron sequence被初始化。如果RTC由于电压不够或者是电压暂时丢失或者没有实现正常的poweron sequence,那么会产生中断发送到MSM。
当在规定计数内VDD没返回有效值,手机要负责正常poweron sequence。
当需要正常关机时,SMPL必须被禁止,否则会重启而不能正常关机。重启有看门狗重启和软件复位重启两种。使用哪种要看UVLO detector 的状态,如果UVLO事件没发生,那么看门狗复位,相反则是SMPL事件。


Output voltage regulation

OPT_x hardware

输出电压调整(OVR)电路的两个功能由外部3个引脚来决定。一种功能是输出默认稳压器电压,另一种功能是poweron sequence 和他们的positions with sequence。

Bandgap voltage reference circuit

所有的PMIC稳压器或者其他内部电路都由这个reference来提供基准源。

Buck SMPS circuits

这部分电路用作降压电路对输入电源进行降压,PWM技术用来使电压输出多种多样,但是它的输出频率是固定的(也就是说不能是交流电压)。
为了减少功耗,电路可工作在low-power 模式。
由于buck converters输出额定电流相对比较大(1500mA),所以可直接驱动外部电流而作为首选之用。

LDO liner regulators

它内部的闭环控制系统使得输出无错误,直接调整输出电压到需要的基准电压,不过它不会管负载是什么就直接输出电流到负载上。
每种电压稳压器输出端要求接有不同大小的陶瓷电容来使输出稳定。

Negative charge pump

对于负压输出,性能上主要在于PCB布局对它的影响。

Low-power modes

所有线性稳压器都可工作在low-power模式,在手机sleep模式的时候特别有用,不同器件工作方式不同。由于VREG_4内部问题而不能工作在这种模式。
a. Linear regulators
它是通过来降低反馈循环来实现的。不过性能会有所下降。当负载大于1mA时,输出电压可能出规定范围。
b. Buck SMPS
有两种控制模式: PFM, PWM, 由XO_EN引脚控制。在PFM模式时,当负载过重时,输出纹波会变差。


General housekeeping

Analog multiplexing and scaling circuits

通过它来选择一路信号到ADC,被选择的信号可被软件监视。另外,电压缩放电流也依赖于他。

HK/XO ADC circuits

支持两种模式。一般的HK操作,用来输入模拟多路复用器信号。另一种是XO热量监控器,通过XO_THREM来选择。

Buffered reference voltage output

任何一个MPP可被配置成为buffer的1.25v基准信号。

System clocks

包括一个19.2Mhz内部晶振和一个32.768Khz的外部晶振。前者主要用于PMIC内部,后者可为设备提供多种clock,如mp3 、sleep、 SMPS clock等。

Realtime clock

输入源为32.768kHz的晶振,由于是按秒计数,所以先得将32.768分成1Hz,可编程时钟校正来提高rtc的精度,如果没开启着功能,精度就依赖于晶振。
事件设置通过write enable线,读计数通过32-bit register,alarm设置通过8-bit alarm register。


User interface

之所以在上面集成用户接口是为了减少手机主模块部分的应用,可以分担一部分。它所包含的功能有:
1. 光脉冲产生器
2. 电流驱动器
3. 静音震动
4. 麦克风
5. 近场通信
6. 摇杆
7. 键盘
有些功能都是通过GPIO的复用来进行支持的。


IC-level interfaces

Poweron circuits

可同时监测5个可能产生触发的事件。

Power sequence

根据OPT_x(1~3)的配置(接地、拉高、开路)能有27中不同选择,每个平台都根据IC来选择用哪种配置。
两外,不同的电压稳压器是否开启也根据OPT_x的设置和modem IC的支持。
对于power,有4中不同的状态。Poweron sequence, ON state, OFF state, Poweroff sequence。

Watchdog timeout and software reset

当固件锁住的时候,可用通过软件(看门狗定时器)来复位。注意,当要使用正常关机的时候,看门狗复位和SMPL一定要禁止,否则PMIC会探测到关键动作而产生软件复位,导致不能正常关机。
另外,使用SMPL还是看门狗来进行复位决定于UVLO是否发生。

Hard reset using RESIN_N

当手机锁死时,可通过外部按钮来强制关机,这样会引起PMIC复位手机。

SBI

它是PMIC和MSM之间的通信接口。MSM通过SBI寄存器来控制PMIC,包括参数设置,查看设备状态,中断事件等。设计人员可以在上层直接调用相应的API来操作PMIC。
另外,coin cell作为备份电池来给PMIC服务。

Interrupt manager

PMIC提供三种中断:
1. 标准中断送到modem ARM
2. 安全中断送到application processor
3. 用户中断送到application processor

MPM support

PMIC可以在MSM power down(in a low-power sleep mode)的时候和MSM通信。它通过一些专用的引脚来支持MPM。

此外,PMIC还对UIM, UART,PA等功能支持。


Configurable I/O

有两种类型,一种是一般GPIOs,另一种是MPPs。
a. GPIOs
它以每两个GPIO(奇偶相连)作为一对出现,两个I/O口电压不同可以作为digital level translator。
在这里,GPIO一般作为一些特殊的功能。如clock output, Keypad, Joystick等。
b. MPPs
它可配置成一下几种功能:
1. 数字输入。可通过软件直接读取电平引脚。
2. 数字输出。可通过软件直接设置电平的高低。
3. 双向I/O。在成对中使用,两个MPP可以互补。
4. 模拟输入。被路由到模拟多路复用器中。
5. 模拟输出。作为Vref。
6. 驱动LEDs。
MPP可以单独使用,也可以成对使用。在成对使用时,得注意外部的接口必须开漏。