rk3288使用tsadc(temperature-sensor adc)來測量cpu溫度,支援兩種模式:
使用者自定義模式: 主動控制讀取溫度.
自動模式: 自動檢測溫度,達到閥值就自動報告.
dts配置如下:
&tsadc ;用指令讀取cpu溫度:cat sys/class/thermal/thermal_zone0/temp,會報錯/system/bin/sh: cat: temp: invalid argumen。tsadc: tsadc@ff280000 ;
看開機log,發現有如下報錯:
clk: couldn't get clock 0 for /tsadc@ff280000
說明tsadc缺少clock,檢視dts,確實是少了這塊。
xin32k: xin32k ;以為這個時鐘加上就好了,令人抓狂的是,就加了這麼幾行**,機器竟然一直重啟開不起機了。
加的這個地方是跟溫度是相關的,那就從這個方面入手去思考找問題。會不會是檢測到溫度的過溫閥值,導致重啟的呢?
看硬體的連線上:
主控的otp 引腳是有連線出來到pmic rk808的,如果這個閥值到了reset腳就會動作,然後重啟。
由於沒有硬性需求一定要這個溫度到了閥值就重啟的需求,這個時候可以把硬體上的連線電阻去掉,或者軟體上把reset的io遮蔽掉。實際起作用的是:
pinctrl-1 = ;再檢視溫度值:cat sys/class/thermal/thermal_zone0/temp遮蔽掉,這時候機器就可以正常開機了。
54111
就能正常讀到溫度值了。
不過不太能理解的是,配置裡 rockchip,hw-tshut-temp = <95000>;是超過95度才重啟,一開機應該也不會超過閥值才對,開機後讀取的溫度也就50°c。
讀取cpu溫度的api 讀取CPU核心溫度
最近在搞乙個讀取cpu溫度的驅動,網上翻了好多資料,可發現全是copy的,原稿也就兩三篇,可經實踐發現其中不乏錯誤與片面,讓人著實走彎路,燃起了我要總結一番的慾望。這個驅動搞了乙個多星期,總算可以執行了,測試了幾台intel和amd的機器也都測試通過,測試對比用的是cpuid hwmonitor和c...
讀取cpu溫度的api 獲取CPU的溫度的方法
獲取 cpu的溫度的方法 在記憶體配置較低的計算機中 比如記憶體 32mb windows 98第二版 cpu的占有率是較高的,一般能夠達到 50 這可能是由於系統 需要cpu 進行許多的運算模擬來彌補資源的不足。下面是收集獲取 cpu溫度的方法,歡迎閱讀。作為乙個系統級程式設計師或者程式設計愛好者...
CPU溫度小結
cpu自身產生的功耗是給cpu晶元加溫 熱設計中cpu散熱是給cpu降溫,只有這兩個能力相匹配或者散熱能力大於功耗,cpu才不會過熱。可以參考維基提供的公式。cpu的功耗由 動態功耗 短路功耗 電晶體漏電流。後兩個研究不深。主要看動態功耗。動態功耗的計算公式如下 p 表示cpu的功耗 c 可以簡單看...