快速上手一个I2C传感器 | MAX6884

news2025/4/27 16:14:37

老老实实看DataSheet吧,查找手册有以下几种途径:

1)到芯片厂商官网去下载资料;

2)在芯片器件采购平台搜索,如立创商城、半导小芯;

有原厂或代理翻译的中文手册,或者国产芯片中文手册,直接看中文就好了。没有的,老老实实看英文吧,翻译软件的文档翻译的也不咋地。。。

1. General Description 和 Features

第一步先看手册的首页,它都会提供:器件的概述和特性说明。搞懂和理解它说明的概念即可。

对于MAX6884芯片,可知这是一个用于电源监控的芯片。支持监控6路电压输入,和1个辅助输入、1个看门狗输入,具有三个可编程输出。可配置EEPROM存储。
对于6路电压输入,可以配置以20mV增量监控1v至5.8V的电压,或以10mV增量监控0.5v到3.05V的电压。

2. ELECTRICAL CHARACTERISTICS

第二步是结合pin 脚配置图和电气参数,查看硬件外围需要的配置。

一是供电,注意功率要求、电压要求、阻容匹配等等。

二是传感器端输入IO引脚电平的要求。

三是外围电路的配置。

四是管脚的默认状态。

等等。

这一步,可以用类似HAL库 HAL_I2C_IsDeviceReady() 的函数,直接验证I2C地址是否能通讯。能通讯证明芯片供电和I2C信号没问题。如果有问题,先检查供电,再测试I2C信号波形。

然后,再去配置寄存器、读取寄存器,验证读取到的数据是否正常。如果正常证明硬件OK,如果不行需要排查外围电路配置、用法是否正确。(类似的如温度监控芯片、气压采集芯片等等,需要配置差分电容、电阻、二极管或三极管的,需要一一验证,具体参照就是开发板和手册ELECTRICAL CHARACTERISTICS)

3. Detailed Description

第三步就是查看手册的详细描述。

先理解功能框图 Functional Diagram ,再查看具体各项功能的描述和使用方法。

简单的概述下,MAX6884框图:

通道IN1到通道IN6,经过DETECTOR检测器或比较器,一是送到ADC MUX多路复用器,二是送到PROGRAMMABLE ARRAY 可编程逻辑阵列。

ADC MUX多路复用器每200ms对IN1-IN6、AUXIN和REF(VCC)进行转换,ADC数据最终存储到18h到27h只读寄存器。

PROGRAMMABLE ARRAY 可编程逻辑阵列对6路输入进行检测,可配置下限值,下下限值或者上限值,外部触发条件后,输出触发信号(低电平有效)和记录故障。

其中,基准电压源为1.25V,VCC最低输出要求2.55V(即ULDO),有1个地址输入口A0-即允许最多2个设备共享总线。

此外,由于寄存器配置项变化较多,提供EEPROM存储 寄存器配置,上电后自动加载和设置到寄存器。

3. Table 12. Register Map

然后(第四步)就是查看寄存器表,一览具体配置项。

1)part1 阈值设置

0x00到0x05为欠压阈值设置,0x06到0x0B为过压阈值或次级欠压阈值设置。80到8B为对应的EEPROM地址。

2)part2 模式配置

0Eh 选择IN1到6通道是次级欠压还是过压

0Fh 选择IN1到6通道的阈值范围

10h 选择IN1到6通道的高阻抗模式 正常不用高阻抗模式 

11和12h 配置复位输出类型、时间和依赖项

13和14h 配置欠压/过压输出类型、时间和依赖项

3)part 3 只读数据寄存器

由于芯片ADC精度为10位,所以用了2个寄存器读取,低地址为高8位,高地址为低2位,以此类推供8路电压(16个寄存器)。

基本转换关系 : ADC = ( byte1 << 2 ) + (byte2 & 0x03) 

28/29h为通道故障码寄存器,2Ah为输出故障寄存器,当触发欠压或过压时,芯片会记录故障和置位,同时输出低电平,读取后故障码置0。

4. 电压读取

一般I2C芯片的ADC数据读取,去看手册ELECTRICAL CHARACTERISTICS的ADC部分。

一是ADC精度(即最大值),二是基准电压和测量关系。

MAX6884这里就直接给出了LSB值,如下。

即电压阈值为5.8V时,LSB大小为7.32mV。则ADC读取数据若为0x1F4 500, 则实际电压值为3.66v。

5. 阈值设置

参考上图,文档中已经直接给出了,实际电压值和寄存器code的转换关系。

例如,电压阈值为5.8V,要设置的电压阈值为2.8V,

则 X = (2.8 - 1)/0.02 = 0x5A 。

 从公式中也可以看出,要设置的电压值必须要大于1V,如果监控的电压过小则要按照3.05V的公式进行计算。

如果电压更小的话,好像要使用更复杂的外部电路设计才能支持到。

略.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode 450. 删除二叉搜索树中的节点

2023.7.14 搜索二叉树相关的题一般都能用递归解决。 本体大致思路是&#xff1a;使用递归的方式&#xff0c;在树中查找目标节点&#xff0c;并根据节点的情况进行删除操作。如果目标节点是叶子节点&#xff0c;直接删除它&#xff1b;如果目标节点只有一个子树&#xff0c;将子…

H3C-Cloud Lab-实验-ACL实验

实验拓扑图&#xff1a; 网段分布情况&#xff1a; 实验需求&#xff1a; 1. 按照图示配置 IP 地址 2. 全网路由互通 3. 在 SERVER1 上配置开启 TELNET 和 FTP 服务 4. 配置 ACL 实现如下效果 1&#xff09;192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段&#xff0c…

【雕爷学编程】Arduino动手做(162)---OPT101模拟光照传感器模块3

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

springboot整合eureka、config搭建注册中心和配置中心

目录 一 、springboot整合eureka实现注册中心 二、springboot整合config实现配置中心 三、从配置中心拉取配置 这篇文章详细介绍怎么通过eureka和config分别搭建一个注册中心和配置中心的服务。 一 、springboot整合eureka实现注册中心 1、创建一个springboot项目&#xff…

编译zlib库给IOS平台用

打开zlib官方网: zlib Home Site 找到github仓库地址: 复制zlib的github地址 执行下面脚本克隆zlib库 git clone https://github.com/madler/zlib.git 克隆成功 zlib自带CMakeLists.txt 所以用CMake-GUI来生成 选择zlib源码目录及输出目录,输入下图的CMAKE参数

Winform实现简历生成器(Excel版)

要点 1.项目中到COM类型库中添加Excel和Word的引用 2.大概思路&#xff1a;创建工作簿对象->将Excel简历框架加载到此工作簿->获取工作表->根据位置填入信息->显示工作簿对象Visible为可见->释放工作簿 GitHub - zzp229/WinForm_CreateExcelResume: 通过界面交…

小红书Java后端一面,被问麻了

今天分享一篇小红书 2 年社招 Java 后端一面的面经&#xff0c;面试的风格是从一个知识一层一层深入问到底层。 从 Java IO&#xff0c;问到 socket 底层。从 Java 内存&#xff0c;问到操作系统内存。所以学习知识的时候&#xff0c;不要只看八股文&#xff0c;还是需要从点到…

【算法 -- LeetCode】(019)删除链表的倒数第 N 个结点

1、题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[] 示例 3…

excel常用操作备忘

excel操作&#xff1a; 1、快速填充多列公式&#xff1a;选中多列后&#xff0c;按ctrlD填 充。 2、快速删除空行&#xff1a;全选行&#xff0c;按ctrlG&#xff0c;空值项前边打上钩&#xff0c;点确定&#xff0c;针对选中的空行&#xff0c;鼠标右击&#xff0c;点删除&…

20230710~20230714周报

本次周报主要用于巩固和总结在DL-FWI培训中学到的知识。 基础知识 全波形反演&#xff08;FWI&#xff1a;Full waveform inversion&#xff09;&#xff1a;通过检测到的地震数据直接推测地下结构。 速度模型&#xff1a;由于波在不同介质中的传播速度不同&#xff0c;所以可…

计算联合体大小的测试demo

两个规则&#xff1a; 1.联合体大小必须能容纳联合体中最大的成员变量2.通过规则1 计算出的联合体大小必须是联合体中占内存大小最大的成员类型的整数倍 #include<stdio.h>typedef union {char a[7];int b; }test_union_1;typedef union {char a[6];char b; }test_un…

氢辉能源|[4GW]质子交换膜产线投产发布会暨[3MW]PEM电解槽正式交付

2023年7月12日下午&#xff0c;氢辉能源&#xff08;深圳&#xff09;有限公司&#xff08;以下简称氢辉能源&#xff09;质子交换膜产线投产发布会暨12台50标方3MW电解槽交付仪式在深圳市龙岗区国际低碳城成功举办。 此外&#xff0c;氢辉能源与远景能源、润世华集团、宏洲新能…

005-NULL和NOT NULL

通过desc命令获取数据表结构&#xff0c;当NULL column 字段为YES时&#xff0c;表示列表字段可以为空&#xff08;可以不插入数据&#xff09;&#xff0c;如&#xff1a; 可以设置Null 列表字段不能为空&#xff08;字段后面添加 not null&#xff09;&#xff0c;如&#xf…

StringBuffer类 StringBuilder 类

StringBuffer类 介绍 StringBuffer是一个容器&#xff0c;代表可变的字符序列&#xff0c;可以对字符串内容进行增删。 StringBuffer是可变长度的。 实现了序列化接口&#xff0c;可实现串行化&#xff08;可以将内容保存至文件或者网络传输&#xff09;&#xff1a; Serial…

吴恩达机器学习2022-Jupyter-机器学习实例

1 可选实验: 特征工程和多项式回归 1.1 目标 在这个实验室里: 探索特征工程和多项式回归&#xff0c;它可以让你使用线性回归机制来适应非常复杂&#xff0c;甚至非常非线性的函数。 1.2 工具 您将利用在以前的实验中开发的函数以及matplotlib和NumPy。 2 特征工程与多项式…

Linux内核模块开发 第 9 章 谈及设备文件

The Linux Kernel Module Programming Guide Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang译 断水客&#xff08;WaterCutter&#xff09;源 LKMPG 9 谈及设备文件 设备文件被用于表示物理设备。多数物理设备既被用于输入&#xff0c;也被用…

【使用机器学习和深度学习对城市声音进行分类】基于两种技术(ML和DL)对音频数据(城市声音)进行分类(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

OpenCV开发实战 --(C++/Python) 进行视频中的简单背景估计-附源码

在许多计算机视觉应用中,您可以使用的处理能力较低。在这种情况下,我们必须使用简单但有效的技术。 在这篇文章中,我们将介绍一种这样的技术,用于在相机静态且场景中存在一些移动物体时估计场景的背景。这种情况并不少见。例如,许多交通和监控摄像头都是固定固定的。 时间…

Python爬虫——urllib_请求对象定制

UA介绍&#xff1a; User Agent中文名为用户代理&#xff0c;j简称UA&#xff0c;它是一个特殊字符串头&#xff0c;使得服务器能够识别客户使用的操作系统及版本&#xff0c;cpu类型&#xff0c;浏览器及版本&#xff0c;浏览器内核&#xff0c;浏览器渲染引擎&#xff0c;浏览…

【编译之美】【4. 代码优化:为什么你的代码比他的更高效】

什么是代码优化 代码优化是编译器后端的两大工作之一&#xff0c;弄懂它&#xff0c;你就掌握了一大块后端技术。 代码优化的目标 代码优化的目标&#xff0c;是优化程序对计算机资源的使用。 代码优化的对象 大多数的代码优化都是在 IR 上做的&#xff0c;而不是在前一阶段…