EC應用概述Page:1EC設計應用概述RD52陳耀昆(Denis)EC應用概述Page:2OutlineECITE8512簡介EC系統設計電池充放電簡介風扇控制簡介如何OnBoard燒入EC&BIOS如何使用DebugPort如何撰寫測試程式Q&AEC應用概述Page:3ECITE8512簡介ITE8512是一個適用於NB系統中的一個嵌入式控制器(EmbeddedController)ITE8512FunctionACPI嵌入控制單元功能KBC鍵盤控制單元MatrixScanPS/2ExternalKBD&Mouse&TouchPadSystemBIOS&ECcodeflashinterfacePWM脈寬調變ADC類比轉數位CIR紅外線連接埠GPIO一般I/O埠...EC應用概述Page:4ProcessorNorthBridgeSouthBridgeECITE8512LPCTouchPadExt.KBDExt.MouseInt.KBDThermalSensorSmartFanSmartBatteryEC系統設計PowerControlSystemOnVcoreOnWireLessLanBlueToothCCDLedBackLightBrightnessBeepSPIROMSPISMBSMBPS/2PS/2PS/2MatrixScanEC&BIOSCodeEC應用概述Page:5電池充放電ECITE8512ChargeICBatteryABatteryBChargeEnableChargeEnableSMBusABatteryATemp/Voltage/CurrentSignalSMBusBBatteryBTemp/Voltage/CurrentSignalEC應用概述Page:6電池充放電電池充電當接上AC電源時電池開始充電充電同時會送Event通知Windows改變電池Icon充電時電池指示燈為橘色讀取gasgauge資料並判斷充飽旗標判斷充電電壓、電流、溫度指示燈為綠色時電池充飽電池充飽時會送Event通知Windows改變電池IconBatteryGasgaugeECWindowsCommandDataPollingData/EventEC應用概述Page:7電池充放電電池放電當移除AC電源開機後電池開始放電放電同時會送Event通知Windows改變電池Icon放電時指示燈熄滅讀取gasgauge資料判斷充電電壓、電流、溫度放電警示分為三階段Low#1、Low#2、ShutdownLow#1閃橘燈,AlarmTone(依BIOSSetup)Low#2閃橘燈,系統進入suspendmodeShutdown低於臨界電量,系統強制關機BatteryGasgaugeECWindowsCommandDataPollingData/EventEC應用概述Page:8風扇控制CPUThermalICCPUVGAThermalICVGAITE8512DAC0DAC1DAC2SMC1SMD1SMC2SMD2(R.P.M)CPUSenseSYSSenseVGASenseFanControlICCPUSYSVGACPUFANSYSFANVGAFANEC應用概述Page:9啟動溫度(Start)、停止溫度(Stop)、降頻溫度(Throttle)風扇轉動CPU(VGA)溫度≧啟動溫度風扇停止CPU(VGA)溫度≦停止溫度風扇控制Temperature℃FanDuty%EC應用概述Page:10風扇控制降頻CPU(VGA)溫度≧降頻溫度CPU(VGA)溫度≦降頻溫度-n,回復CPU頻率,n≧5℃Temperature℃CPUSpeednThrottleTemperatureResumeTemperatureEC應用概述Page:11風扇控制溫度異常警示當EC無法正常讀取CPU(VGA)溫度時會同時閃NumLock&CapsLock&ScrollLock指示燈、Alarm以及警示1分鐘後直接將系統關機風扇異常警示當風扇無法正常轉動時會同時閃NumLock&CapsLock指示燈以及Alarm1A↓同時閃爍1A↓同時閃爍EC應用概述Page:12如何OnBoard燒入EC&BIOS硬體部分:燒錄工具EC應用概述Page:131.KBDconnector確認為上或下接觸並連接FlashBoard與M/B2.ECDebugPort的watchdogenablepin接地3.USB線連接FlashBoard和電腦4.M/B接上AC供電連接步驟:EC應用概述Page:14將ECDebugconnector的watchdogenablepin接地EC應用概述Page:15軟體部分:燒錄軟體安裝燒錄軟體:EC_WinFlash_Setup_265.exeEC應用概述Page:16主畫面:TypeSetupLoad燒入EC應用概述Page:17Type設定:EC應用概述Page:18Setup設定:EC應用概述Page:19燒錄:點選Load圖示,選擇檔案開啟EC應用概述Page:20點選箭號開始燒錄燒錄完成後,燒錄資訊欄會顯示AutoFlashOK!並顯示過程時間EC應用概述Page:21如何使用DebugPortDebugPort又稱為80DebugPort80DebugBoard與連接線EC應用概述Page:22如何使用DebugPortM/B端ConnectorEC應用概述Page:23如何使用DebugPortDebugPortPin80PORT_DET#當連接DebugBoard時此pin為Low80CLKclockpin3IN1datapin,此pin亦當作watchdog使用DebugPort可做什麼?1.可作為系統POST(PowerOnSelfTest)開機過程中的除錯2.可作為EC對系統偵測與除錯EC應用概述Page:24如何使用DebugPort系統開機時80DebugPort自動顯示系統開機程序從00到FF每一個數字皆有其代表涵義例如13KBC初始失敗,38DRAM失敗,49VGA…顯示POST過程資料EC應用概述Page:25如何使用DebugPortEC對系統偵測與除錯需連結DebugBoard後,才可調整使用調整Index使用Fn+F1&Fn+F2調整IndexIndex00ECVersion01CPURemoteTemperature02CPULocalTemperature03VGARemoteTemperature04VGALocalTemperature先顯示Index後顯示資料EC應用概述Page:26如何使用DebugPortIndex05CPUFanSpeed06VGAFanSpeed07SysFlag01(ShutdownFlag1,ACMode)Bit0SUSCSignalBit1PowerSwitchBit2CPUOverTemperatureBit3PoweronFailBit4ReservedBit5Command95hBit6S4SuspendtoDiskBit7ReservedBit0Bit71000000001EC應用概述Page:27如何使用DebugPortIndex08SysFlag02(ShutdownFlag2,ACMode)Bit0SMBFailBit1ReservedBit2VGAOverTemperatureBit3ReservedBit4ReservedBit5ReservedBit6ReservedBit7ReservedEC應用概述Page:28如何使用DebugPortIndex09SysFlag03(ShutdownFlag3,ACMode)Bit0CIR使用遙控器關機Bit1ReservedBit2ReservedBit3ReservedBit4ReservedBit5ReservedBit6ReservedBit7ReservedEC應用概述Page:29如何撰寫測試程式ITE8512EC使用I/O62h以及66hport當做溝通介面62h為dataport,作為資料的存取通道66h為commandport,作為命令、狀態控制通道讀取資料先由commandport(66h)下控制命令需等待EC端IBE(InputBufferEmpty,test66hportbit1)再由dataport(62h)讀取資料需等待EC端OBF(OutputBufferFull,test66hportbit0)Bit0Bit7OBFIBF------EC應用概述Page:30如何撰寫測試程式寫入資料先由CommandPort下控制命令需等待EC端IBE(InputBufferEmpty)再由DataPort寫入資料需等待EC端IBE(InputBufferEmpty)由於EC負責很多周邊訊號的控制以及監測加上處理速度的問題,每一個command間速度不可太高,建議不可小於150msEC應用概述Page:31如何撰寫測試程式讀取Project名稱Command92hwaitIBE;(Test66hportbit1是否為0)out66h,92hLoop:waitOBF;(Test66hportbit0是否為1)inal,62hstorealtobufferifal!=‘$’gotoLoopProjectName:TN120REC應用概述Page:32如何撰寫測試程式讀取EC的版本Command93hwaitIBEout66h,93hLoop:waitOBFinal,62hstorealtobufferifal!=‘$’gotoLoopVersion:1.00.01EC應用概述Page:33如何撰寫測試程式讀取CPU、VGA、FANDutyCommand9EhwaitIBEout66h,9EhwaitIBEout62h,n;(n=1-3,1=CPU,2=VGA1,3=VGA2)waitOBFinal,62h;(remotetemperature)waitOBFinal,62h;(localtemperature)waitOBFinal,62h;(fanduty=(al*100)/255)CPURemoteTemp.:55℃CPULocalTemp.:45℃CPUFanDuty:20%EC應用概述Page:34如何撰寫測試程式使用AP控制設定CPU&VGAFANDutyCommand99hwaitIBEout66h,99hwaitIBEout62h,n;(n=0-3,0=allfan,1=CPU,2=VGA,3=fan3)waitIBEout62h,m;(m=fanduty=00~FF)EC應用概述Page:35如何撰寫測試程式恢復EC自動控制CPU&VGAFANDutyCommand99hwaitIBEout66h,99hwaitIBEout62h,0FFh;(0FFh為ECAutoControl)waitIBEout62h,m;(1=CPU,2=VGA,3=VGA2,0FFh=allfan)EC應用概述Page:36如何撰寫測試程式讀取電池容量(unit:mAh)Command80h,82h,83hIndex2Eh,2Fh(2byte,BatteryRemainingCapacity)WaitIBEOut66h,82h;(BurstEnable)waitIBEout66h,80h;(Read)waitIBEout62h,2EhwaitOBFinCapacityLowByte,62hout62h,2FhwaitOBFinCapacityHiByte,62hWaitIBEOut66h,