AMI BMC读取VR(voltage regulator)温度

2023-10-28 19:30

本文主要是介绍AMI BMC读取VR(voltage regulator)温度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在有一个读取vr温度作为传感器的需求

拿到vr芯片手册,查看pmbus相关命令

可以看到Command code 是 8E h,Direct的格式代表两个byte作为温度

经过询问同事得知vr的i2c信号是通过cpld转过来到i2c-9上 

查看原理图找到i2c-9的连线,看看怎么连的

继续往下追发现连到一个switch芯片上(搞不懂为什么要switch,明明没有什么冲突的)

注意这里RESET这个 GPIO需要pull low,不然芯片不会作用,找不到这个0xE2的地址的

Reset信号往下找找,找到gpio号

可以看到是GPIOG7,计算一下 6 * 8 + 7=55

利用gpiotool来拉低和设置direct

注意如果是ast2600的平台,比如archercity,那么这个GPIOG7是被复用成sd2的,结果就会发现gpiotool set fail, 因此需要保证bootloader和kernel部分没有复用芯片这部分功能(要把dts中的配置disable)

GPIOG7 default 是做gpio 

这样就保证该GPIO没有被复用了

可以看到这个PCA9546的地址出来了

接下来就要利用i2c来做switch control 

先看看PCA9546的datasheet ,看看怎么做switch

由原理图可以看出,我们需要switch channel 2

由上图原理图可知i2c-9是SMB_HOST_STBY_BMC_LVC3_R_SDA ,对应pca9546的SD2(channel 2)

 接着查看pca9546 datasheet

找到control register 描述部分,可以看到如果想要switch channel 2, 需要往该寄存器的bit 2置为1,也就是04h(这里由于没有地址冲突,其他channel也没接,所以我写了FF h,偷懒了)

利用i2cset工具,往pca8546的地址 71h写入04h,你看vr芯片的地址都可以看到了 

 VR的地址有了,接下来只需要看vr datasheet的read temperature部分,利用pmbus读就OK了

先拉几个sensor出来

由上文的vr datasheet可以知道8Eh这个command code读取internal temperature,所以read部分的函数只有address不同,所以我们自己建一个ddf文件

下图为read 函数部分 

 

 

 在ddf中配置SLAVE_ADDR等需要的config项

Reflash,Build一下,烧录,开机

可以看到vr的温度了!

这篇关于AMI BMC读取VR(voltage regulator)温度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295419

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

基于Python实现温度单位转换器(新手版)

《基于Python实现温度单位转换器(新手版)》这篇文章主要为大家详细介绍了如何基于Python实现温度单位转换器,主要是将摄氏温度(C)和华氏温度(F)相互转换,下面小编就来和大家简单介绍一下吧... 目录为什么选择温度转换器作为第一个项目项目概述所需基础知识实现步骤详解1. 温度转换公式2. 用户输入处

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu