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

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

时间:2023-10-01 18:22:09浏览次数:44  
标签:24 0000 引脚 SCLK ADC ADS1222 adc

前一段时间,在做单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统,物联网,电子产品,软件、APP开发设计定制定做开发项目时,有要求用到24位的高精度ADC,用于对外部信号采集。

经查阅,初步获得一款满足要求的芯片:ADS1222,本文就介绍该芯片及其使用方法。如有相关需求可:3w点yonko-tech点com,扣扣:二五三一26三七二六。
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)

标签:24,0000,引脚,SCLK,ADC,ADS1222,adc
From: https://www.cnblogs.com/yonkotech/p/17739092.html

相关文章

  • 2023-2024-1 20231414《计算机基础与程序设计》第一周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第一周学习总结作业信息这个作业属于哪个课程(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里(2023-2024-1计算机基础与程序设计第一周作业)这个作业的目标<计算机基础与程序设计中的问题提问>作业......
  • 2023-2024-1 20231419 《计算机基础与程序设计》第一周学习总结
    2023-2024-120231419《计算机基础与程序设计》第一周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01这个作业的目标快速浏览一遍教材,并......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记4
    20211306密码系统设计与实现课程学习笔记4任务详情自学教材第7,8章,提交学习笔记知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问......
  • 2023-2024-1 学号20231318《计算机基础与程序设计》第一周学习总结
    作业信息作业链接这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业的要求在哪里2023-202341计算机基础与程序设计第一周作业这个作业的目标作业正文2023-2024-1学号20231318《计算机基础与程序设计》第一周学习总结教材学习内容总结快......
  • 学期(如2023-2024-1) 20231410刘珈岐 《计算机基础与程序设计》第1周学习总结
    #学期(如2023-2024-1)学号(20231410)刘珈岐《计算机基础与程序设计》第1周学习总结##作业信息|这个作业属于哪个课程|<https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP>||-- |-- ||这个作业要求在哪里|<https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01>||这个作......
  • 2023-2024-1 20231405 《计算机基础与程序设计》 第一周学习总结
    2023-2024-120231405《计算机基础与程序设计》第一周学习总结作业信息作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13009作业的目标快速浏览教材《......
  • 2023-2024-1 20211211《信息安全系统设计与实现》(上)第七、八章读书笔记
    教材第七、八章读书笔记第七章知识点归纳1文件操作级别-(1)硬件级别:-(2)操作系统中的文件系统函数-(3)系统调用-(4)I/O库函数-(5)用户命令-(6)sh脚本2文件I/O操作-(1)文件I/O操作示意图-(2)用户模式下的程序执行操作3低级别文件操作-(1)分区-(2)格式化分区-(3)挂载分区4EXT......
  • 2023-2024-1 20231312 《 计算机基础与程序设计》第1周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>2023-2024-1-计算机基础与程序设计||这个作业要求在哪里|<作业要求链接>2023-2024-1计算机基础与程序设计第一周作业||这个作业的目标|<快速浏览一遍教材《计算机科学概论》,并提出自己不......
  • 学期2023-2024-1 学号20231315 《计算机基础与程序设计》第一周学习总结
    学期2023-2024-1学号20231315《计算机基础与程序设计》第一周学习总结作业信息这个作业属于哪个课程?2023-2024-1《计算机基础与程序设计》这个作业要求在哪里?2023-2024-1《计算机基础与程序设计》这个作业的目标?**快速浏览一遍教材计算机科学概论,课本每章提出......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记4(必做)
    学习笔记4文件操作使用系统调用进行文件操作实践过程文件操作1.文件操作级别(1)硬件级别:fdisk:将硬盘、U盘或SDC盘分区mkfs:格式化磁盘分区,为系统做好准备fsck:检查和维修系统碎片整理:压缩文件系统中的文件(2)操作系统内核中的文件系统函数:前缀k表示内核函数(3)系......