PM8901的使用是为了更好地给PM8058提供支持。主要扩展了以下几种功能:
1. 5个快速转换电压支持
2. 7个LDO线性稳压器来支持PM8058电路
3. 7个电压开关来选通芯片外部电路
4. 4个可配置的MPP作为数字或模拟I/O
和PM8058类似,它也包含了输出电压调整、一般的housekeeping、 IC接口、用户接口。另外还有一个电压开关模块。
它的电源来自手机主电源(VPH_PWR),内部的FT-SMPS和LDO也都基于一个基准电压产生,可以动态缩放电压,支持low-power mode。
不过PM8058的输出电压分的比较细,有low-voltage, medium-voltage和 high-voltage。
在housekeeping方面,用19.2MHz晶振或者内部晶振产生信号来支持SMPS clock。其他信号都过其分频得到。RC振荡器用来作备份。此外还有过热保护,提供Vref功能。
IC级接口方面,MSM用SSBI控制PM8901。当PM8901和PM8058不用同一个XO源时,MSM就会提供一个FCLK。SSBI支持三种中断:
1. for critical modem
2. for user application
3. for secure application
PMIC hardwire option通过OPT_X(1-2)来设置的(在powerup的时候起作用),每个引脚都有ground, open, vdd三种接法,因此可达9中,不同芯片组使用不同的设置。
MSM和PMIC之间通过SBI接口来连接,而且两边的支持电压必须一致,这部分功能由PMIC来实现了。两者之间,PMIC作为slave,MSM充当master的角色,对PMIC进行初始化,模式、参数控制、认证等控制。这些控制,上层已经提供了相应的API,开发人员直接调用即可。
另外PMIC还有若干种操作模式(active, sleep, off), 具体用哪种依赖于寄存器的设置、电池和支持条件,而内部某些电路功能是否开启又依赖于选择的是哪种操作模式。
通过输出不同的电压源来支持chipset上的不同电路模块不同电压需求,各个模块电源独立也可以避免相互之间的最小干扰。
输出电压调整(OVR)电路的两个功能由外部两个引脚来决定。一种功能是输出默认稳压器电压,另一种功能是power-on sequence 和他们的positions with sequence。
所有的PMIC稳压器或者其他内部电路都由这个reference来提供基准源。
这部分电路主要为了实现MSM内部的多媒体功能部分的运行在高速时钟、要求高速的动态响应的要求。为了实现这要求,FT-SMPS它的内部包含了众多功能块,通过线性和非线性控制机制来优化性能。而对FT-SMPS的控制是通过SSBI接口和它的一些寄存器实现的 。
对于外部组件的选择、连接,我们可参考厂商推荐的值。
FT-SMPS还分两种操作模式:
1.当负载电流正常或者过重时,采用PWM模式。
2.当负载电流比较轻的时候,采用的是PFM模式。
虽然我们这里FT-SMPS作为特殊功能提供给处理器用,其实它也可以被用作其他供电之用。如RF、I/O circuits、外设等。
相对于上一代PMIC,为减少电源缩放的步进值(步进太大会导致overshoot/undershoot等而产生一系列比较严重的问题),虽然可以通过PMIC强行改变电源步进值或者通过SSBI对电压重复的改变,但是这样慢又复杂,为此, PM8901使用了下面两种功能来解决这问题:
1.将voltage steps减小。通过软件实现。
2.SMPS step control。通过硬件实现。
对FT-SMPS的使能控制我们也可以通过硬件(PWR_CTL[2:0])来实现。实现这一功能要去掉相应位的屏蔽(FTSx_VCTRL[7:6]),当任何一个引脚没被屏蔽而且被拉高时,不管FTSx_VCNTRL[7:6]或者FTSx_CONFIG寄存器如何设置,FT-SMPS都会将被强制进入full power PWM 模式。
它内部的闭环控制系统使得输出稳定,直接调整输出电压到需要的电压,不过它不会管负载是什么就直接输出电流到负载上。
每种稳压器输出端要求接有不同大小的陶瓷电容来使输出稳定。
和FT-SMPS一样,LDO也可以通过硬件引脚来控制其使能。不过FT-SMPS还受MODE_CTL引脚的控制。
线性稳压器的输入源有的必须要直接来自PM8058的VDD,有的可以通过buck converter之后再获取也可以。
有两种subregulation,一种是buck converter,另一种是linear regulator。Buck converter能提供更大的压差和电流,linear regulator的输入源可以从buck converter的输出得到,而且相对来说能提供一个干净的输出(less noisy)。
所有线性稳压器都可工作在low-power模式,在手机sleep模式的时候特别有用,不同器件工作方式不同。由于VREG_4内部问题而不能工作在这种模式。
a. Linear regulators
它是通过来降低反馈循环来实现的。不过性能会有所下降。当负载大于1mA时,输出电压可能出规定范围。
b. FT-SMPS
有两种控制模式: PFM, PWM, 由XO_EN引脚控制。在PFM模式时,当负载过重时,输出纹波会变差。正常操作用PWM模式。
可消除分离的FETs,保持各部分电源独立从而避免leakage,还可以使能更多的boot sequencing options。
通过它来选择一路信号到ADC,被选择的信号可被软件监视。另外,电压缩放电流也依赖于他。一共有三种类型: low-voltage, medium-voltage, high-voltage。下面是他们的共同特征:
1.Low-power mode。不管开关是否使能,都可以处于这种状态,而且可以通过硬件来进行设置。注意在此模式下,短路保护和中断是无效的。
2.自动睡眠。开关一旦成功使能后就进入此状态。
3.外部元件不做要求。
Low-voltage输出1.8v,Medium-voltage是3.6v。电流输出都是300mA,可通过SSBI配置。
由于没有提供反向电流保护,在作特殊应用时应该注意这一点。
和FT-SMPS和LDO一样,LVS 和MVS也提供外部引脚控制其使能,控制方法和前者是一样的。
能在SSBI控制下提供5V的输出,当开关禁止的时候,内部终端电压管理部分保护免遭漏电。至于如何进行配置,方法是和LVS和MVS一样的。
主要用在USB_VBUS和HDMI,注意要输出要上拉,电流限制。
比起PM8058来功能相对少一点。包含以下模块:
1. 时钟电路
2. 过温保护
3. MPP
4. 数字控制输出
虽然内部自带晶振可产生时钟,但是我们一般用PM8058提供的XO时钟。除此之外,时钟部分还包含一个备份RC振荡器和SMPS时钟分发电路。
a. RC oscillator
当PMIC power-up的时候,RC作为默认时钟源工作直到转换到PM8058的XO时钟源为止,然后停止以减少功耗。注意两个源之间一定要同步来确保SMPS时钟正常。
当XO信号源停止工作的时候,RC振荡器又会自动工作。
b. SMPS clock
有两种时钟源可以选择:RC振荡器和19.2MHz的XO源。输出的时钟可以分发下去。
当温度过高时,模块会产生中断发给MSM而且会是温度的不同关闭相应的部分(如高电流电路或者整个PM8901)。产生的温度转换为电压进行处理。
通过SSBI将MPP配置成数字输出,然后这个基准输出被送到PM8058的XO_ADC电路中去使用。
虽然PM8901可以通过MPP的不同配置来实现UI功能,MPP功能如下:
1. 数字输入。可通过软件直接读取电平引脚。
2. 数字输出。可通过软件直接设置电平的高低。
3. 双向I/O。在成对中使用,两个MPP可以互补。
4. 模拟输入。被路由到模拟多路复用器中。
5. 模拟输出。作为Vref。
6. 驱动LEDs。
MPP可以单独使用,也可以成对使用。在成对使用时,得注意外部的接口必须开漏。
PM8058最为master,8901作为boot slave,8901的boot必须是在8058 power-on完成之后才开始运行。下面是power顺序:
1. PM8058探测到power-on事件
2. PM8058使能和稳定power-on默认的稳压器
3. PM8058产生19.2MHz系统时钟
4. PM8058发送复位信号(PON_RESET_N高)来开启PM8901
5. PM8901使能和稳定power-on默认的稳压
6. PM8058发送复位信号(PON_RESET_N高来开启modem IC
7. MSM是PS_HOLD为高来保持两个PMIC
a. Power-on sequence
1. 在PWR_ON变化后,默认的寄存器被一个个开启,注意时序。
2. 一旦寄存器都稳定后,PON_RESET_N拉高。当稳压器全部开启或者全部关闭后,该引脚拉低。
3. 之后PS_HOLD要拉高。
b. Power-off sequence(Normal)
在PM8058关闭之前一定要先关闭掉PM8901,这和power-on sequence是相对的,不管是不是正常关闭还是故障。
1. 在power-down之前先要关闭软件设置的稳压器。然后发送PS_HOLD low信号。
2. PM8901发送PON_RESET_N low使modem IC和其他外设复位。
3. 关闭默认的稳压器,关闭PM8901
4. PM8058发送BAT_FET_N信号将电池和手机电源断开
5. 关闭PM8058
PMIC一直处于OFF状态只要PS_HOLD为低。在此期间,只有它的内部RC振荡器在工作。
c. Power-off sequence(Fault)
当出现错误故障时,需要立刻关闭,否则会出现错误的逻辑状态,电流泄漏,甚至会毁坏电源。
当PM8058出问题时,它发送一个PON_RESET_N low信号给PM8901,PM8901输出PON_RESET_N low给modem IC,这样PM8901和modem IC都是在PM8058关闭前被关闭。
当PM8901出问题时,它发送PON_RESET_N low给modem IC导致它复位而产生PS_HOLD low发送给PM8058,这样PM8901也是在PM8085之前关闭的。
当故障全部清除后方可再一次power-on sequence。
注意PM8901 UVLO 阈值要比PM8058要高,这样PM8058才会被先关闭。
虽然PM8901没有SMPL功能,但是当PM8058发生SMPL时,它会先关闭PM8901,如果SMPL时VDD又正常了,那么PM8058就重启PM8901。
当boot的时候,PMIC都用他们内部的RC振荡器,而PM8901直到PM8058输出的XO时钟送过来为止。
PM8058和PM8901之间运行是相互独立的,除了PM8901可能要用到PM8058的XO时钟源以为,而且软件需要看PM8901是否需要这个时钟源。
当PM8901工作在PWM模式而且发现XO信号不能用时,会自动转用其内部的RC振荡器,然后会产生一个中断发送给软件。
使用RC振荡器会由于它的精度不高可能带来性能问题或者执行失败,所以在使用之前得注意这个问题。
通过对MODE_CTL引脚的控制使PM8901进入sleep模式,相对通过SSBI设置更有效。由于MODE_CTL是复用的,所以在某个时间使用某一功能的时候需要屏蔽其他功能操作。
可不需要通过SSBI而是PWR_CTL[2:0]引脚来控制FT-SMPS、LDO、LVS、MVS的使能。这些引脚还允许提供外部电源控制。
它是PMIC和MSM之间的通信接口。MSM通过SBI寄存器来控制PMIC,包括参数设置,查看设备状态,中断事件等。设计人员可以在上层直接调用相应的API来操作PMIC。
另外,coin cell作为备份电池来给PMIC服务。
PMIC提供三种中断:
1.标准中断送到modem ARM
2.安全中断送到application processor
3.用户中断被送到application processor