一个高精度24位ADC芯片ADS1222的使用方法及参考电路程序成都控制器定制

news2024/11/30 0:32:25

前一段时间,在做单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统,物联网,电子产品,软件、APP开发设计定制定做开发项目时,有要求用到24位的高精度ADC,用于对外部信号采集。
经查阅,初步获得一款满足要求的芯片:ADS1222,本文就介绍该芯片及其使用方法。如有相关需求可:3w点yonko-tech点com
ADS1222是一个2通道、24位、Δ-∑-对数-数字(A/D)转换器。它在TSSOP-14封装中提供了出色的性能和低功耗。这个ADS1222非常适合要求苛刻的高分辨率测量,尤其是在便携式系统以及其他节省空间和功率受限的应用中。Δ-∑调制器和数字滤波器构成基础A/D转换器。模拟调制器具有±5V差分输入范围。输入多路复用器(mux)是用于在两个单独的差分输入之间进行选择通道。可以选择一个缓冲区来增加输入测量阻抗。一个简单的2线串行接口提供了所有必要的控制。数据检索、自校准和待机模式只需几个简单的波形。当仅需要单个转换时,ADS1222可以快速关闭(待机模式)在两次测量之间处于空闲状态时降低了整体功耗,ADS1222s可以连接在一起以创建同步采样多通道测量系统,ADS1222设计用于轻松连接诸如MSP430的微控制器。ADS1222支持2.7V至5.5V电源。在3V操作中功耗通常小于1mW,待机模式下为1µW。
主要特点有:
⭕带4MHz时钟的240SPS数据速率;
⭕20位有效分辨率;
⭕双差分输入复用器通道;
⭕引脚可选择,高阻抗输入缓冲器;
⭕±5V差分输入范围,建议在GND+0.05V至VDD−1.5V之间,超出会降低精度;
⭕0.0003%INL(典型值),0.0015%INL(最大值);
⭕自校准;
⭕简单的2线串行接口;
⭕片上温度传感器;
⭕待机模式下的单次转换;
⭕低电流消耗:300µA;
⭕模拟电源:2.7V至5.5V;
应用场景:
⭕手持式仪器;
⭕便携式医疗设备;
⭕工业过程控制;
⭕磅秤等。
1、    封装及引脚说明


2、    参考电路

ADS1222支持5V供电电源,将VDD接直流电源正极,GND接直流电源负极。
CLK给予一定频率的脉冲信号给ADS1222,为TTL电平,一般为2MHz.
一般不用片上温度传感器,那么TEMPEN接0 (0V),选择接入外部模拟量通道。
一般需要开启缓冲器以获得高输入阻抗,那么BUFEN接1(5V).
参考电压一般接高精度2.5V。
3、    使用说明
ADS1222输入的模拟量电压在GND + 0.05V to VDD − 1.5V范围内拥有较高的精度,超出这个范围则精度降低。
其一般使用流程如下:
(1)    通道选择
ADS1222是双通道的模数转换器,每个芯片里面有2路模拟量输入通道,在使用时,首先得选择通道,设置引脚MUX则可选择通道。
MUX接0(0V),表示选择通道1,MUX接1(5V),表示选择通道2.
(2)等待转换完成
将SCLK引脚拉低,并监测DRDY/DOUT引脚的电平,当其为0时,表示ADC转换完成。
(3)读取数据
a,只读取数据,需要24个脉冲
数据在串行时钟SCLK的驱动下输出,先输出数据的高位,然后输出数据的低位,直到把全部24位数据输出完。此时需在SCLK的下降沿后读取数据,ADS1222在每个SCLK脉冲时输出一位数据。
在第24个SCLK脉冲时SCLK保持为高,那么ADS1222则进入待机模式。

b,读取数据后强制DRDY/DOUT引脚为高,需要25个脉冲
在前面24位数据输出完后,SCLK再给一个脉冲,ADS1222将强制DRDY/DOUT引脚为高。
 
c,ADS1222自校准,需要26个脉冲

(4)数据解析
ADS1222的数据采用二进制补码的方式存储的,为24位,传输时高位在前。最高位为符号位,0为正数,1为负数。当获得的数据为正数时,原码即补码,当为负数时,原码等于除符号位以外的数据位全部取反后加一。

当模拟量输入电压为2倍参考电压(一般5V)时,输出的数据为(7FFFFFh,二进制为0111 1111 1111 1111 1111 1111),可知符号位为0为正数,正数的补码即原码,其余为全为1表示测量为正电压的最大值5V。
当模拟量输入电压为0V时,输出的数据为(000000h,二进制为0000 0000  0000 0000 0000 0000),可知符号位为0为正数,正数的补码即原码,其余为全为0表示测量为0V。
当模拟量输入电压约为2倍负参考电压时,输出的数据为(800000h,二进制为1000 0000  0000 0000 0000 0000),可知符号位为1为负数,将补码转换为原码,为1 1000 0000 0000 0000 0000 0000(对于此数,负数的补码求原码后,数据变成25位(1位符号位+24位数据位)),表示测量为负电压的最小值约-5V。
ADS1222说的是24位分辨率传感器,但是其最高位是符号位,实际来说只有23位分辨率。业务:3w点yonko-tech点com
4、    参考程序
一个单片机C语言的参考程序如下:
sbit DOUT=P1^0;
sbit SCLK =P1^1;
sbit MUX1222 =P1^2;
unsigned long adc_convert_ch0()    //通道0的AD转换程序
{
unsigned long xdata adc_result=0;
unsigned char i=0;
unsigned char j=0;
//复位ADS1222
SCLK1222=0;        //拉低SCLK
MUX1222=1;            
delayus(1);      //软件延时1us,其实延时100ns即可覆盖大部分场景
MUX1222=0;            //复位并选择低位的通道(mux由1变为0,表示通道复位+选择通道0.假如是选择通道1,那么mux引脚先0后1即可)    
delayus(1);
//等待转换完成。业务:3w点yonko-tech点com,扣扣:二五三一26三七二六
while(DOUT ==1)    //当DRDY/DOUT =0时转换完成 
{ delayms(1);
j++;
if(j>=20) break;//等了20ms还没转换完成,退出等待
}  
if(j<20) //只有转换时间小于20ms的才正确,才读取
{
//获取数据
for(i=0;i<24;i++)          //读取数据,0-23共24个数据位
    {
    SCLK1222=0;             //拉低SCLK
    delayus(1);
    SCLK1222=1;              //拉高SCLK
    delayus(1);
    adc_result=adc_result<<1;
    if(DOUT==1)
        {adc_result=adc_result | 0x00000001UL;}
    else
        {adc_result=adc_result & (~0x00000001UL);}
    }
//输出第25个脉冲,强制DRDY/DOUT为高
SCLK1222=0;    //拉低SCLK
delayus(1);
SCLK1222=1;  //拉高SCLK
delayus(1);
SCLK1222=0;  //拉低SCLK
delayus(1);
return     adc_result;
}
}
//说明:以上程序是按照数据表编写的,还没来得及上芯片验证,仅供参考。
本文来自于对手册的解析,可能有误,详细的使用说明可查阅ADS1222的原版手册(ADS1222_datasheet)。
沙鸥 于 成都
参考文献:
[1] ADS1222数据表(ADS1222_datasheet)

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

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

相关文章

Flutter笔记 - 用于描述Align的Alignment、AlignmentDirectional、AlignmentTween类

Flutter笔记 用于描述Align的Alignment、AlignmentDirectional、AlignmentTween类 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_…

问题: 视频颜色问题,偏绿

参考 什么是杜比视界&#xff1f; - https://www.youtube.com/watch?vldXDQ6VlC7g 【哈士亓说】07&#xff1a;HDR、杜比视界究竟是个啥&#xff1f;为什么这个视频还不是HDR视频&#xff1f; - https://www.youtube.com/watch?vrgb9Xg3cJns 正文 视频应该是 杜比视界 电…

【C++漂流记】C++对象模型和this指针

C中对象模型和this指针是面向对象编程中的重要概念。对象模型描述了对象在内存中的布局和行为&#xff0c;包括成员变量和成员函数的存储方式和访问权限。this指针是一个隐含的指针&#xff0c;指向当前对象的地址&#xff0c;用于在成员函数中引用当前对象的成员变量和成员函数…

力扣 -- 416. 分割等和子集(01背包问题)

解题步骤&#xff1a; 参考代码&#xff1a; 未优化代码&#xff1a; class Solution { public:bool canPartition(vector<int>& nums) {int nnums.size();int sum0;for(const auto& e:nums){sume;}if(sum%21){return false;}int aimsum/2;//多开一行&#xff…

前端页面初步开发

<template><div><el-card class"box-card" style"height: 620px"><el-input v-model"query.name" style"width:200px" placeholder"请输入用户姓名"></el-input>&nbsp&nbsp&nbsp…

cesium 雷达扫描 (线行扩散效果)

cesium 雷达扫描 (线行扩散效果) 1、实现方法 使用ellipse方法加载圆型,修改ellipse中material方法来实现效果 2、示例代码 2.1、 <!DOCTYPE html> <html lang="en"><head><<

[Spring] Spring5——IOC 简介(二)

目录 六、工厂 Bean&#xff08;Factory&#xff09; 1、普通 bean 2、工厂 bean 3、示例 七、Bean 的作用域 1、单例和多例 2、如何设置为单实例或多实例 八、Bean 的生命周期 1、生命周期 2、生命周期示例 3、Bean 的后置处理器 4、后置处理器示例 九、XML 的自…

JavaScript设计模式

✨JavaScript设计模式 &#x1f380;设计模式 在 面向对象软件设计中针对特定问题的简洁而优雅的解决方案 &#x1f390;常见的设计模式 &#x1f384;1. 工厂模式 在JavaScript中&#xff0c;工厂模式的表现形式就是一个调用即可返回新对象的函数 // ------------- 工厂模…

gitlab配置webhook限制提交注释

一、打开gitlab相关配置项 vim /etc/gitlab/gitlab.rb gitlab_shell[custom_hooks_dir] "/etc/gitlab/custom_hooks" 二、创建相关文件夹 mkdir -p /etc/gitlab/custom_hooks mkdir -p /etc/gitlab/custom_hooks/post-receive.d mkdir -p /etc/gitlab/custom_h…

springboot和vue:九、v-for中的key+vue组件化开发

v-for中的key 目的 现在想要实现这样的一种效果&#xff0c;页面上存在初始姓名表单&#xff0c;同时存在输入框&#xff0c;输入姓名后点击添加按钮可以将新输入的姓名加入显示的姓名表单中。 代码 <!DOCTYPE html> <html lang"en"><head><…

数学建模Matlab之数据预处理方法

本文综合代码来自文章http://t.csdnimg.cn/P5zOD 异常值与缺失值处理 %% 数据修复 % 判断缺失值和异常值并修复&#xff0c;顺便光滑噪音&#xff0c;渡边笔记 clc,clear;close all; x 0:0.06:10; y sin(x)0.2*rand(size(x)); y(22:34) NaN; % 模拟缺失值 y(89:95) 50;% 模…

Mars3d的graphic/entity/model示例的glb的ModelEntity修改颜色失效说明

1.Mars3d的graphic/entity/model示例的glb的ModelEntity修改颜色失效说明 2.测试时发现示例的glb的ModelEntity使用setStyle()修改颜色没成功 setTimeout(() > { graphicModel.setStyle({ color: "red" }) }, 500) 相关链接 1.http://mars3d.cn/editor-vue.html?…

使用sqlmap总是提示需要302跳转重新登录的解决方法

如果在命令中不指定cookie&#xff0c;sqlmap在执行时会提示需要重新登录 如果给了cookie但发现还是提示需要重新登录&#xff0c;且按它给的提示发现还是找不到注入点&#xff0c;原因是url没有加引号 url加了双引号后解决问题

MySQL在线修改表结构-PerconaTookit工具

在线修改表结构必须慎重 在业务系统 运行 过程中随意删改字段&#xff0c;会 造成重大事故。 常规的做法是&#xff1a;业务停机&#xff0c;再 维护表结构 比如&#xff1a;12306 凌晨 0 点到早上 7 点是停机维护 如果是不影响正常业务的表结构是允许在线修改的。 比如&…

16数据处理

plotly 设置x/y轴名称 yaxis_title‘金额(元)’,xaxis_title‘日期’ fig px.line(df_grouped, x"Order_time", y"Money", title日销图) fig.update_layout(yaxis_title金额(元),xaxis_title日期, xaxis_tickformat%Y-%m-%d,yaxis_tickformat 0.2f) fig…

多线程案例 - 单例模式

单例模式 ~~ 单例模式是常见的设计模式之一 什么是设计模式 你知道象棋,五子棋,围棋吗?如果,你想下好围棋,你就不得不了解一个东西,”棋谱”,设计模式好比围棋中的 “棋谱”. 在棋谱里面,大佬们,把一些常见的对局场景,都给推演出来了,照着棋谱来下棋,基本上棋力就不会差到哪…

面试必考精华版Leetcode437. 路径总和 III

题目&#xff1a; 代码&#xff08;首刷看解析&#xff0c;暴力法&#xff09;&#xff1a; class Solution { public:long rootSum(TreeNode* root,long targetSum){if(!root) return 0;long res0;if(root->valtargetSum){res;} resrootSum(root->left,targetSum-root-…

2022年9月及10月

9月 1.Halcon12的HObject和Hobject halcon12 可以用HObject&#xff0c;也可以用Hobject&#xff0c;用法都一样 包括HalconCpp.h 如果附加目录中&#xff1a; C:\Program Files\MVTec\HALCON-12.0\include\halconcpp\ 在前面&#xff0c;则用 HalconCpp::HObject 如果附加目录…

【论文阅读】DiffusionDet: Diffusion Model for Object Detection

原文链接&#xff1a;https://arxiv.org/abs/2211.09788 1. 引言 过去的目标检测方法依赖手工设计的候选对象&#xff08;如滑动窗口、区域提案、锚框和参考点&#xff09;&#xff1b;或是依赖可学习的物体查询。   本文使用更加简单的方法&#xff0c;随机初始化边界框&am…

防火墙基础之H3C防火墙和三层交换机链路聚合的配置

H3C防火墙和三层交换机链路聚合的配置 原理概述&#xff1a; 防火墙&#xff08;英语&#xff1a;Firewall&#xff09;技术是通过有机结合各类用于安全管理​与筛选的软件和硬件​设备&#xff0c;帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障&#xff0c;以保…