2013.03.25
今天拿一块KL9的好板做了一下试验,推翻了一些以前的猜测。有些问题似乎更加清晰了,而有些还是无法解释。
先回答前面饼哥的一个问题:
“想再请楼主做个实验,去掉BIOS后,测下PCH的PWROK和PROCPWRGD是否正常”
试验一:
去掉BIOS芯片。
现象: 触发上电至0.25A掉电,其后自动上电再掉电,反复循环。同时+VCC_CORE未生。
(因为会掉电,以下测得的信号只有短暂的电平或波形,很快掉落)
序列 |
信号名 |
状态 |
1 |
PWROK |
+3.3V |
2 |
PROCPWRGD |
无电压 |
3 |
DRAMPWROK(PM_DRAM_PWRGD) |
+1.5V |
4 |
THRMTRIP# ( PM_THRMTRIP# ) |
+1V |
5 |
DF_TVS (H_SNB_IVB#) |
+1.2V(+1.5V) |
6 |
SYS_RESET# (XDP_DBRST# ) |
+3.3V |
7 |
PMSYNCH (PM_SYNC) |
无 |
8 |
25M晶振 |
有波形 |
9 |
CLKOUT_DMI_N (CLK_CPU_BCLKN) |
有波形 |
10 |
CLKOUT_DMI_P (CLK_CPU_BCLKP) |
有波形 |
11 |
HWPG |
+3V |
12 |
VRON |
+3V |
测量得到的结果就是:
PWROK不受BIOS的影响。(这个信号由EC发给PCH芯片)
而PROCPWRGD则没有产生。
试验二:
接下来继续做调试:
将BIOS芯片恢复,将VRON信号断开。
(目的是测量CPU电压产生之前的时序及其他电压是否都正常,因为断开VRON主板电流将保持,不掉电,方便准确测量)
现象: 上电0.33A保持,不掉电;+VCC_CORE未产生。
序列 |
信号名 |
状态 |
1 |
PWROK |
+3.3V |
2 |
PROCPWRGD |
+1V |
3 |
DRAMPWROK(PM_DRAM_PWRGD) |
+1.5V |
4 |
THRMTRIP# ( PM_THRMTRIP# ) |
+1V |
5 |
DF_TVS (H_SNB_IVB#) |
+1.2V(+1.5V) |
6 |
SYS_RESET# (XDP_DBRST# ) |
+3.3V |
7 |
PMSYNCH (PM_SYNC) |
无 |
8 |
25M晶振 |
有波形 |
9 |
CLKOUT_DMI_N (CLK_CPU_BCLKN) |
有波形 |
10 |
CLKOUT_DMI_P (CLK_CPU_BCLKP) |
有波形 |
11 |
HWPG |
+3V |
前后对比可见PROCPWRGD的产生是要受到BIOS芯片影响的。
而且PROCPWRGD、CLKOUT_DMI_N、CLKOUT_DMI_P、DRAMPWROK在VRON之前(或者是同时)就已经产生了。
再者,除PROCPWRGD这个信号外,CLKOUT_DMI_N、CLKOUT_DMI_P、DRAMPWROK的产生都不需要BIOS的参与。
这两点与HM55及以前的平台时序是完全不同的。
试验三:
断开PROCPWRGD这个信号。
现象: 上电0.34A保持,不掉电;+VCC_CORE未产生。
(与断开VRON信号的现象几乎一样)
试验四:
断开PWROK信号。
现象: 上电至0.54A掉电,之后自动上电再掉电,反复循环。 但+VCC_CORE已经产生,IMVP_PWRGD也已由VRM芯片发出。
序列 |
信号名 |
状态 |
1 |
HWPG |
+3 V |
2 |
PROCPWRGD |
+1V |
3 |
DRAMPWROK(PM_DRAM_PWRGD) |
+1.5V |
4 |
THRMTRIP# ( PM_THRMTRIP# ) |
+1V |
5 |
DF_TVS (H_SNB_IVB#) |
+1.2V(+1.5V) |
6 |
SYS_RESET# (XDP_DBRST# ) |
+3.3V |
7 |
25M晶振 |
有波形 |
8 |
CLKOUT_DMI_N (CLK_CPU_BCLKN) |
有波形 |
9 |
CLKOUT_DMI_P (CLK_CPU_BCLKP) |
有波形 |
10 |
VRON |
+3V |
11 |
+VCC_CORE |
+1V左右电压 |
12 |
IMVP_PWRGD |
+3V |
由此可见PWROK信号虽然在时序上比PROCPWRGD靠前,但断开此信号不会影响PROCPWRGD的发出,甚至+VCC_CORE电压的产生。
并由此似乎可以推测:PROCPWRGD是+VCC_CORE电压产生的必需条件(它的参与是间接的);而PWROK信号无论直接或间接显然都不参与+VCC_CORE电压的产生。
但PWROK信号缺失会造成掉电又反复自动重启的现象,这与去掉BIOS的部分现象相似。为什么会是这样,我不知道如何解释。欢迎大家共同来讨论!
试验五:
同时断开CLKOUT_DMI_N (CLK_CPU_BCLKN)和CLKOUT_DMI_P (CLK_CPU_BCLKP)这两个信号。
现象: 上电0.34A保持,不掉电;+VCC_CORE未产生。
(与断开VRON信号的现象几乎一样)
试验六:
只断开CLKOUT_DMI_P (CLK_CPU_BCLKP)这一个信号。
现象: 开机显示完全正常。
这是个偶尔发现的奇怪现象,该如何解释?呵呵。
比较试验二、试验三和试验五:
是不是可以这样来认为,CPU内部SVID模块的工作三大条件是:
序号 |
项目 |
信号名 |
1 |
供电 |
+1.05V |
2 |
时钟 |
CLKOUT_DMI_P (CLK_CPU_BCLKP) |
CLKOUT_DMI_N (CLK_CPU_BCLKN) |
||
3 |
复位 |
PROCPWRGD |
当SVID模块缺少时钟和复位时,表现出的现象应为:
上电0.34A保持,+VCC_CORE电压不产生。
或者换句话,当VRM芯片无法从CPU内SVID模块中读取信息时的现象是:
上电0.34A保持,+VCC_CORE电压不产生。
将参与+VCC_CORE电压产生的条件罗列如下:
序号 |
项目 |
信号名 |
|
1 |
供电 |
+VIN(19V) |
|
2 |
+5V |
||
3 |
SVID |
供电 |
+1.05V |
4 |
时钟 |
CLKOUT_DMI_P (CLK_CPU_BCLKP) |
|
5 |
CLKOUT_DMI_N (CLK_CPU_BCLKN) |
||
6 |
复位 |
PROCPWRGD |
|
7 |
开启信号 |
VRON |
据此,将以前的猜测修改如下:
VID信号是以软体方式存储于CPU内SVID模块的ROM中。
PCH芯片在得到+3VS5、+3V、+1.05V、+1.8V、+1.5V和+0.85V供电后,PCH内主时钟模块被初始化开始工作,25M晶振起振。随后,PCH芯片主时钟模块分出各种频率的时钟发给CPU及其他功能芯片。与此同时BIOS芯片也有+3V供电后,PCH芯片与BIOS芯片开始通信,读取BIOS内的部分程序并执行。PCH发出PROCPWRGD给CPU。
CPU内SVID模块先后得到+1.05V供电以及PCH芯片发出的CLK_CPU_BCLKP,CLK_CPU_BCLKN时钟。一旦PROCPWRGD到达,SVID模块即被复位,开始处于工作状态。作为SMB的主设备,CPU的SVID模块通过DATA和CLK总线向VRM芯片发出呼叫,等待着VRM芯片来读取电压设置信息。当VRM芯片得到供电(+VIN和+5V),以及VRON开启信号后,VRM芯片对CPU内SVID模块的呼叫做出应答,并读出电压设置信息。之后CPU主供电+VCC_CORE产生,VRM芯片发出PG信号给PCH芯片做复位,之后上电时序继续。