EC读取风扇转速并在BIOS中显示
EC讀取風扇轉速并在BIOS中顯示
一、理論:
由下圖可知,FAN_TACH是偵測PIN,FANPWM1是控制PIN,FAN_TACH與GPJ3相連。
由IT8528的規格是可知,該引腳作復用功能TACH1B用,可偵測風扇轉速。
且轉速放在F2TLRR和F2TMRR中
轉速計算公式
其中fs = FreqEC / 128;
而FreEC 為9.2 x 10^6 Hz
其中q為2吧
配置好以下寄存器,即可偵測到風扇轉速。
1、GPIOJ3配成ALT,讓它自動選擇功能
2、GRC5的bit1寫1,讓GPJ3選擇TACH1B
3、TSWCTLR的bit0和bit1寫1
二、EC代碼所做操作:
配置GPIO屬性并使能控制寄存器的使能位
oem_gpio.h配置GPJ3為自動選擇
Oem_gpio.c初始化GPIO
由下圖可知,讀取風扇轉速的EC內存空間為1820h和1821h,但BIOS無法直接訪問EC內存空間,只能訪問ECRAM空間,所以需將該兩個寄存器的值讀出來,放在BIOS能訪問的IO空間(ECRAM+0x5A和ECRAM+0x5B)
如下圖:EC code中已經定義好了。
Oem_gpio.h定義Fan_speed1的值為F2TLRR寄存器里的值
Oem_fan.h定義一個宏變量為FanSpeed1,初始化它的值為Fan_speed1
Oem_fan.c中可以直接用宏變量為FanSpeed1。
在FanManager函數編寫控制風扇轉速的內容
在ECRAM保留區域定義新內容oem_memory.h
Oem_memory.c
三、BIOS中的操作
加在這個里面,實現實時讀取
總結
以上是生活随笔為你收集整理的EC读取风扇转速并在BIOS中显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java pdf 转 swf_java
- 下一篇: linux卸载nfs软件,linux n