[SMBus] SMBus接口的风扇控制芯片——LM96163

目录

特性

描述

接线图

LM96163 要求的初始化风扇控制寄存器顺序

应用笔记


LM96163 具有集成风扇控制和 TruTherm BJT 晶体管 Beta 补偿技术的远程二极管数字温度传感器

特性

  • TruTherm BJT Beta补偿技术支持45nm,65nm和90nm处理器远程二极管
  • 工厂修剪用于英特尔®45纳米处理器热二极管
  • 精确感应二极管连接的2N3904晶体管或热二极管板载大型处理器或ASIC
  • 准确感知其自身温度
  • 集成PWM风扇速度控制输出支持22.5kHz频率的高分辨率,用于4针风扇
  • 通过用户可编程的12步查找表降低声学风扇噪声
  • LUT过渡精细分辨率平滑功能
  • 用于测量风扇转速的转速计输入
  • 用于测量典型应用中显示的脉冲宽度调制功率的风扇转速的智能转速模式
  • ALERT 处理器事件通知的输出
  • TCRIT 临界温度系统关闭的输出
  • 偏移寄存器可以针对各种热二极管进行调整
  • < LI> 10位加号和11位无符号格式,分辨率为1/8°C
  • 启用数字滤波器时,扩展分辨率为1/32°C
  • 解决远端二极管温度高达255.875° C
  • SMBus 2.0兼容接口,带有TIMEOUT和ARA
  • 10引脚SON封装

描述

LM96163具有集成风扇控制的远程和本地温度传感器,其中包括用于远程二极管检测的TruTherm BJT晶体管β补偿技术。 LM96163精确测量:(1)其自身温度和(2)二极管连接的晶体管(如2N3904)或计算机处理器,图形处理器单元(GPU)和其他ASIC上常见的热敏二极管的温度。 LM96163具有一个偏移寄存器,用于校正由其他热二极管的不同非理想因素引起的误差。

LM96163还具有集成的脉冲宽度调制(PWM)开漏风扇控制输出。风扇速度取决于远程温度读数,查找表和寄存器设置的组合。 12步查找表(LUT)使用户能够编程非线性风扇速度与温度传递功能,通常用于静音声学风扇噪音。此外,还增加了完全可编程的斜坡功能,以实现LUT设定点之间的平滑过渡。

接线图

引脚描述
引脚名称输入/输出功能和连接
1~TCRIT开漏数字输出经过电阻连接到系统电源。当温度转换值超过限制时,改引脚被激活
2VDD供电输入连接3.3V电源
3D+模拟输入连接二极管正极
4D-模拟输入连接二极管负极
5PWM开漏数字输出连接风扇控制引脚
6GND接地
7~ALERT开漏数字输出告警,若不用,则经过电阻连接到系统电源
8TACH数字输入测量风扇转速引脚,上电默认为禁止状态,需要通过配置寄存器使能
9SMBDAT数字输入或
开漏数字输出
SMBus的数据引脚,连接I2C_SDA
10SMBCLK数字输入SMBus的时钟引脚,连接I2C_SCL

LM96163 要求的初始化风扇控制寄存器顺序

应用笔记

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SMBus(System Management Bus)是一种基于I2C(Inter-Integrated Circuit)总线的通信协议,常用于电池管理、温度传感器、电子标签等应用。在单片机中使用SMBus通信需要相应的硬件接口和软件程序支持。 以下是一份SMBus总线单片机C语言程序示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <avr/io.h> #include <util/delay.h> #include "i2c.h" #define SLAVE_ADDR 0x50 // 从机地址 int main(void) { uint8_t data[2]; // 存放读取的数据 i2c_init(); // 初始化I2C总线 while (1) { // 发送读取命令 if (!i2c_start(SLAVE_ADDR | I2C_WRITE)) { i2c_stop(); continue; } i2c_write(0x00); i2c_stop(); // 读取数据 if (!i2c_start(SLAVE_ADDR | I2C_READ)) { i2c_stop(); continue; } data[0] = i2c_read_ack(); data[1] = i2c_read_nack(); i2c_stop(); // 处理数据 int value = (data[0] << 8) | data[1]; float temperature = (float)value / 16.0; printf("Temperature: %.2f°C\n", temperature); _delay_ms(1000); // 延时1秒 } return 0; } ``` 这是一个使用AVR单片机的示例程序,需要先包含I2C总线驱动程序。在主函数中,先初始化I2C总线,然后循环读取从机的温度传感器数据,并将数据转换为实际温度值进行输出。 SMBus总线单片机硬件接口需要至少两个引脚,一个是SDA(数据线),一个是SCL(时钟线)。在电路图中,需要连接主控制器的SDA和SCL引脚到从机的SDA和SCL引脚,同时需要在从机上连接上拉电阻。在使用SMBus总线时,需要注意主从机的地址设置和数据读写的顺序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值