
软件定义I2C温度传感器
简介
基于STM8的I2C接口温度传感器,可与各类主板I2C/SMBUS控制器相连接,并能被Linux系统识别为标准设备
简介:基于STM8的I2C接口温度传感器,可与各类主板I2C/SMBUS控制器相连接,并能被Linux系统识别为标准设备开源协议
:CERN Open Hardware License
(未经作者授权,禁止转载)描述
DIY PC/NAS过程中,往往会用到服务器拆机的RAID卡、HBA卡、网卡。使用这类板卡一般需要增加风扇,来解决普通机箱没有风道热量堆积的问题;如果风扇损坏......我已经因此挂了两张RAID卡了。
因此需要一个这样的传感器,可以实时监控板卡温度,并通过操作系统可实时监控温度变化。
目前售卖的I2C温度传感器,只有芯片温度检测和远端结温测量(LMxx、ADTxxxx),不支持NTC测量。曾经试过买了个LM75小板接入NAS,结果linux还识别不出来。所以决定自己实现这么一个STDS(Software Defined Temperature Sensor)软件定义温度传感器。
1. 特点
- 支持板上和远端,共2个温度NTC监测,带蜂鸣器支持超温报警
- 软件可以模拟任何I2C温度传感器(https://hwmon.wiki.kernel.org/device_support_status),当前模拟的为NI的LM75A
- 通过接入I2C/SMBUS,可以支持linux/安卓下 sensors-detect/lmsensor自动识别并纳入监控(理论上windows下AIDA64也可以)
2. 项目构成
- 传感器小板(1cm*2.3cm)
- 相关STM8代码


3. 使用方法
3.1 将程序编译后烧入stm8。代码中SLAVE_ADDRESS为I2C从设备地址,LM75A的地址为0x48~0x4F,可根据需要修改,不要和其他I2C设备地址冲突;
THRESHOLD为报警阈值,可先改为较低的值比如30,用手捏外部NTC加热测试蜂鸣器工作正常后,再改为想要的阈值。
3.2 如果只是需要超温报警功能,给板上接上3.3V和GND即可工作。如果需要接入linux的实时监控,还需要将I2C接入主板的I2C/SMBUS控制器。
3.3 一般主板的I2C/SMBUS总线有多条,个别主板有端子直接引出,如果没有的话,只能通过PCIE/NVME/DDR的I2C接入。PCIE的管脚定义入下:

也就是将PCIE B面的5~8脚分别与板子的I2C_SCL、I2C_SDA、GND、3V3相连即可,外部的热敏电阻塞到待测散热片附近,如下图所示,注意这面才是是B面。小板背面是蜂鸣器,可以粘上双面胶作为固定面。
3.4 把PCIE设备插到主板上就可以工作,传感器会被内核自动识别。linux下需安装lm-sensors,运行sensors-detect,自动识别设备,随后就可以运行sensors实时监控温度。


设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程

评论