核心驅動 adt7470

支援的晶片

  • Analog Devices ADT7470

    字首:‘adt7470’

    掃描地址:I2C 0x2C, 0x2E, 0x2F

    資料手冊:可在 Analog Devices 網站公開獲取

作者:Darrick J. Wong

描述

此驅動程式實現了對 Analog Devices ADT7470 晶片的支援。可能還有其他晶片也實現了此介面。

ADT7470 採用相容 SMBus 2.0 規範的 2 線介面。它使用一個模數轉換器測量多達十 (10) 個外部溫度。它有四 (4) 個 16 位計數器用於測量風扇速度。有四 (4) 個 PWM 輸出可用於控制風扇速度。

ADT7470 內部設計了一個複雜的 PWM 輸出控制系統,可以根據十個溫度感測器中的任何一個自動調整風扇速度。每個 PWM 輸出都可以單獨調整和程式設計。一旦配置完成,ADT7470 將根據測量的溫度自動調整 PWM 輸出,無需進一步的主機干預。此功能也可以停用,以便手動控制 PWM。

每個測量輸入(溫度、風扇速度)都有相應的高/低限制值。如果任何測量值超過任一限制,ADT7470 將發出警報 (ALARM)。

ADT7470 持續取樣所有輸入。為了定期查詢溫度感測器,啟動了一個核心執行緒,從而允許自動風扇 PWM 控制設定風扇速度。驅動程式讀取暫存器的頻率不會超過每 5 秒一次。此外,配置資料每分鐘只讀取一次。

特殊功能

ADT7470 具有 8 位 ADC,能夠以 1 攝氏度 (degC) 的解析度測量溫度。

Analog Devices 資料手冊非常詳細,描述了確定自動 PWM 控制最佳配置的程式。

配置說明

除了標準介面,驅動程式還添加了以下內容:

  • PWM 控制

  • pwm#_auto_point1_pwm 和 pwm#_auto_point1_temp 以及

  • pwm#_auto_point2_pwm 和 pwm#_auto_point2_temp -

    • point1:在較低溫度下限設定 PWM 速度。

    • point2:在較高溫度上限設定 PWM 速度。

當溫度介於兩個溫度邊界之間時,ADT7470 將在較低和較高 PWM 速度之間縮放 PWM。PWM 值的範圍是 0(關閉)到 255(全速)。當與 PWM 控制關聯的溫度感測器超過 pwm#_auto_point2_temp 時,風扇速度將設定為最大。

驅動程式還允許控制 PWM 頻率

  • pwm1_freq

PWM 頻率將四捨五入到以下值之一:

  • 11.0 Hz

  • 14.7 Hz

  • 22.1 Hz

  • 29.4 Hz

  • 35.3 Hz

  • 44.1 Hz

  • 58.8 Hz

  • 88.2 Hz

  • 1.4 kHz

  • 22.5 kHz

備註

不再需要從使用者空間定期讀取溫度輸入,以便自動 PWM 演算法執行。這在早期版本的驅動程式中是必需的。