通讯协议--PMbus数据格式转换
PMBusPMBus 是I2C通用协议之一,可用于测量和控制设备,如电源、风扇等。 本文针对PMBus 在传输数据时,使用的两种线性数据格式,即:Linear-11 和 Linear-16,数据格式如何转换进行介绍。 LINEAR11 Format通过官方文档解释,线性11格式的数据格式主要用于非输出电压,值 N 和 Y 形成一个 16 位值,通过总线发送 具体组成如下: N代表2的多少次幂,一般为负数 Y则是传输数据的值乘以2的N次幂 注意点: N和Y都是补码 真实值X计算的公式是: X = Y * 2^N。 这里补充下原码、反码、补码的概念:原码:原码是带符号位的,第1位为符号位,1表示负数,0表示正数反码:正数的反码是其本身,负数的反码是在其原码基础上符号位不变其余个位数取反补码:正数的补码是其本身,负数的补码是在其原码基础上符号位不变,其余个位数取反,再加1(反码+1) 举例:假如现在用N=-3,表示数据,传输电压数据为 X=12V,那么:N的取值计算,(5位二进制数表示):原码 -3 = 10011反码 -3 = 11...
Linux工具--vi/vim 使用
vi/vim 使用vi/vim 简介vi 是 Linux 系统默认的文本编辑器,功能基础但高效,一般linux系统都会默认安装。 vim 是 vi 的增强版,增加了更多的编辑功能,如语法高亮、自动补全等,根据系统不同,可能需要自主安装。 vi/vim 基本模式命令模式: 启动 vi/vim 后的默认模式,可以执行删除、复制、粘贴等操作。 输入模式: 按 i 或者a进入,编辑文本内容。Esc 退出输入模式。 ` 底行模式: 按 : 进入,可执行保存、退出、查找等命令。回车结束运行或者:wq保存退出程序 进入输入模式或者底行模式,只能通过命令模式进入。 vi/vim 命令在底行命令模式时输入 123456789101112131415161718192021222324252627## 常用# 进入输入模式i - 光标前插入;a - 光标后插入。# 保存并退出:wq# 强制退出:q!# 查找/关键词# 替换:%s/旧词/新词/g## 不常用# 水平分割窗口:split 或 :sp# 垂直分割窗口:vsplit 或 :vs...
通讯协议--I2C——PMBus和SMBus
通讯协议PMBus和SMBusI2C是一种常用的串行通信协议,I2C有两个变体,分别专注于系统和电源应用,称为系统管理总线(SMBus)和电源管理总线(PMBus) SMBus SMBus简介SMBus可用于需要对参数进行关键监控的应用。它最常见的应用是计算机主板和嵌入式系统。对于温度、电源电压、风扇监控和⁄或控制集成芯片,它有额外的监控规范。SMBus是一种2线总线,类似于飞利浦公司于1980年代开发的I2C总线。两个主要信号是时钟(SMBCLK)和数据(SMBDAT)。I2CPrimer和SMBus相互兼容,但存在明显差异。 SMBus优点与特性SMBus支持具有多个由1.8 V、3.3 V和5 V电源供电的器件,SMbus可以支持最高100 kHz的相同速度运行,但I2C Primer还可以支持有400 kHz和2 MHz两个版本 分组差错校验(PEC)最初是为SMBus定义的。在每个事务的末尾添加一个分组错误码字节。 并且SMBus器件每次收到其自己的地址时,无论在做什么,它都必须应答(ACK),这是一个明确要求,目的是确保主器件可以准确地判断总线上哪些器件处于活动...
Linux系统--Centos 7 离线安装软件
Centos 7 离线安装软件在日常工作,很容易会遇到服务器处于内网环境,无法进行在线安装的情况,以下软件均是在CentOs7下离线安装,所遇到的问题记录。 所需要的离线安装包需要在有网络情况下,使用yum指令下载。 保存rpm安装包以下指令能保存安装包,方便离线安装。 1yum install --downloadonly --downloddir=/home/ (software-name) 1. VSCode下载方式:通过官网下载. 下载地址 本次版本为 “code-1.53.2-1613044734.el7.x86_64.rpm” 错误处理:err1: 123警告:./code-1.53.2-1613044734.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID be1229cf: NOKEY错误:依赖检测失败: libXss.so.1()(64bit) 被 code-1.53.2-1613044734.el7.x86_64 需要 解决方法:重新下载依赖”libXScrnSaver-1.2.2-6.1.el7.x86_64....
Linux系统--U盘格式化与硬盘挂载
恢复U盘与硬盘挂载U盘格式化目的解决某些U盘文件系统在Linux中不能识别情况,linux支持多种文件格式。 查看当前块区 查看U盘挂载的路径 1lsblk 清除损坏的文件块 1sudo fsck /dev/sda(U盘路径) 数据清零(视情况输入) 这个操作可以识别U盘是否虚标和恢复读写 1sudo dd if=/dev/zero of=/dev/sdb 格式化U盘指定格式(谨慎执行) 123456789fat32格式sudo mkfs.vfat /dev/sdantfs格式sudo mkfs.ntfs /dev/sdb1linux默认sudo mkfs.ext4 /dev/sdb1 硬盘自动挂载ubuntu 默认不挂载硬盘,可以使用手动挂载命令,也可以根据下面方法启动开机自动挂载硬盘。 12sudo mount /dev/sdb1 /media/xxx 1、查看Linux硬盘信息: 1$ sudo fdisk -l 2、格式化硬盘(根据需要确定文件系统): 1sudo mkfs.xfs /dev/sdb 3、创建/data目录 1s...
Linux工具--实用工具
Linux 实用工具在 Linux 环境中,有许多强大而灵活的工具可以帮助用户处理日常任务。本文记录一些实用的命令行工具和它们的常见用法,后续可能会继续更新。 文件搜索工具:find 和 grepfindfind 是用于根据文件名、类型、修改时间等条件查找文件的工具。查找当前目录及其子目录下所有 .log 文件: -name根据文件名查找文件(大小写敏感) 1find . -name "*.log" -type根据文件类型进行查找 1find . -type d -type 参数可以取以下值:f:普通文件d:目录l:符号链接b:块设备文件c:字符设备文件 -mtime查找在指定天数前修改的文件,正数为多少天前,负数则为多少天内 1find . -mtime +7 -size根据文件大小查找,查找大于 100MB 的文件 1find . -size +100M -exec {} ;对找到的每个文件执行命令,{} 代表文件名,; 结束命令。比如,查找 .log 文件并删除它们: 1find . -name "*.log" -exec rm &...
OpenHarmony--hdc使用
HDC工具hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具。类似于 adb工具,通过 hdc 可以在设备上执行各种调试操作,如查看设备信息、查看进程、查看内存、查看文件、查看日志等。 hdc 工具使用以下以在ubuntu 环境调试为例 1、编译sdk 1./build.sh --product-name ohos-sdk –ccache 编译后生成工具存放路径: 12out/ohos-arm64-release/ohos-sdk 2、设备配置hdc参数 hdc有支持usb调试和网络调试。在有网络情况下,设备端可以配置网络调试,可以先通过串口登录后进行查看配置,如设置“9527”端口: 123456789101112# 查看hdcd版本hdcd -v# 查询hdc参数param get | grep hdc# 设置hdc参数param set persist.hdc.mode tcpparam set persist.hdc.port 9527# 启动hdcd服务hdcd & 3、PC端连...
OpenHarmony--鸿蒙浅析
鸿蒙系统浅析简介鸿蒙(HarmonyOS)是由华为公司于2012年提出的一款分布式操作系统。该系统利用“分布式”技术,将手机、电脑、平板、电视、汽车和智能穿戴设备融合成一个“超级终端”,使用户便于操作和共享各种设备的资源。鸿蒙系统致力于提供统一的语言和平台,简化开发者的开发过程,提高跨设备的协同工作效率。 背景初始版本于2019年8月9日由华为发布,并于次日推介首款搭载鸿蒙系统的产品“荣耀智能屏”。此后,华为不断完善和升级鸿蒙系统,逐步扩展其适用范围。 图1 HarmonyOS 界面 图2 搭载HarmonyOS的华为mate 40 2024年4月11日,华为发布了最新的HarmonyOS 4.2版本,该版本兼容AOSP 11/12,进一步提升了系统的稳定性和兼容性。与此同时,HarmonyOS NEXT预计将在2024年第四季度发布,并宣布将不再兼容AOSP,从而向完全自主的方向迈进。 发展历程 版本号 发布时间 正式推送时间 兼容AOSP/Android 版本 对应openharmony API最高版本 1.0...
Linux内核--电源管理
linux 电源管理Linux内核中电源管理是个比较庞大系统,本次仅记录电源状态管理相关部分。 linux 四种睡眠状态 State in Linux Label state ACPI 备注 PM_SUSPEND_ON 正常 正常 正常 正常运行状态 PM_SUSPEND_FREEZE freeze suspend-to-idle S0 冻结进程+挂起设备+CPU空闲 PM_SUSPEND_STANDBY standby power-on suspend S1 冻结进程+挂起设备+关闭nonbootCPU PM_SUSPEND_MEM mem suspend-to-ram S3 仅保留RAM自刷新 PM_SUSPEND_MAX disk suspend-to-disk S4 关闭所有设备包括RAM,也被称为Hibernate 对应源码:/kernel/kernel/power/suspend.c Suspend-To-Idle: 轻量级睡眠状态,冻结用户空间进程并将 I/O 设备置于低功耗状态,具有...
Linux驱动--电池驱动-bq40z50
电池驱动本文以 bq40z50 电池为例,介绍在 RK 平台上使用电池驱动的相关配置与实现。 设备树配置结合电路原理图分析,确认电池挂载在 I2C3总线上。通常情况下,电池设备挂载在 I2C总线上,因此只需配置 I2C 子节点即可。下面是设备树配置示例: 确认I2C设备挂载的地址为0b.示例如下: 12345678910111213141516171819202122&i2c3{ status = "okay"; i2c-scl-rising-time-ns = <345>; i2c-scl-falling-time-ns = <11>; // 时钟频率设置为 100kHz clock-frequency = <100000>; // i2c地址 battery0: bq28z610@0b{ status = "disabled"; compatible ="ti,bq28z610"; reg = <0x0b>; &...















