站内搜索
发作品签到
专业版

软件定义I2C温度传感器

工程标签

1.2k
0
0
3

简介

基于STM8的I2C接口温度传感器,可与各类主板I2C/SMBUS控制器相连接,并能被Linux系统识别为标准设备

简介:基于STM8的I2C接口温度传感器,可与各类主板I2C/SMBUS控制器相连接,并能被Linux系统识别为标准设备

开源协议

CERN Open Hardware License

(未经作者授权,禁止转载)
创建时间:2023-10-15 16:55:47更新时间:2023-10-16 09:46:15

描述

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

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
stm8_temp.rar
47
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航