微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1248获取到的AD值如何转换成电阻

ADS1248获取到的AD值如何转换成电阻

时间:10-02 整理:3721RD 点击:

本人使用ADS1248模数转换芯片,采用单次采样方式读取通道AD数据,/DRDY为低时,就触发MCU进行数据的读取。按照手册上的应用示例计算出电阻电压、恒流源最大输出电压、温度传感器(pt100)最大电压、CM电压后对ADS1248的寄存器进行了初始化,并进行了校准操作,目前数据采集正常,但是关于如何将AD值转换为电阻值没弄明白,在手册上没找到~希望能人提供一下解答。

串口数据如下所示:


RTD Ratiometric Measurements and Filtering Using the ADS1148 and ADS1248

http://www.ti.com/lit/pdf/sbaa201

RTD 比率式温度测量的模拟前端设计考虑

http://www.analog.com/library/an ... 0-03/rtd-ratio.html

Example Temperature Measurement Applications Using the ADS1247 and ADS1248 (Rev. B)
http://www.ti.com/lit/pdf/sbaa180

谢谢!

正好我最近也在做这方面的实验
一起交流

我按照参考手册中的示例(与链接所示相似)计算出了最大增益为4.35,所以设置增益为4,结果在接入0欧电阻时,AD数值并不是800000h(-8388608),这是为什么啊?

AVDD:5V
AVSS: 接地
恒流源:1.5mV

你接入0欧电阻采集到的电压应该接近0V(电阻误差)
Output code也应该在000000H附近

我一直以为AD值经过偏移和自增寄存器后得到的最终输出编码从0V开始范围在(-800000h - 7FFFFFh)~~
这样的话,我的AD值就有问题了,,接入0欧时得到的AD值是-37D4F8h左右
我的程序执行流程是这样的,麻烦你帮我看看是哪出了问题,
初始化AD:采样速率:20PSP,增益:4
复位SPI(在这里把START置高--》配置寄存器时START需要时高电平)
复位寄存器
初始化寄存器
校准通道(包括自偏移校准、偏移校准、增益校准)
重新给MUX1寄存器赋值(启用内部参照电压)
停止AD
获取通道数据:
选择通道(设置通道腹肌输入端、设置恒流源输出引脚)
启动单次AD转换
等待/DRDY为低电平
通过串口发送RDATA获取AD数据

那真是太好了!我最近才接触硬件这方面的知识~~完全小白一个~
网上相关的资料还不多,,费了好大劲才整得有点眉目~~

我在外边用手机打字不太方便

http://www.analog.com/library/analogDialogue/china/archives/50-03/rtd-ratio.html
这篇文章可以给你帮助
参照比率测量的方法
你可以使用AIN0作为IDAC1
AIN3作为IDAC2
AIN0和AIN1接一起
AIN3和AIN2接一起
AIN1和AIN2接被测电阻(0欧)电阻两端
AIN2接Rbias一端
Rbias另一端接地
或通过一颗小电阻接地(使用单电源时一般要这样做)
然后AIN4和AIN5分别接Rbias
两端作为REF+和REF-
(我不方便看ADS1248的数据手手册
这里假设IDAC和REF可以在对应的引脚上复用)
程序上你要使能两个IDAC
设置IDAC的电流
设置REF为外部AIN4和AIN5
采集AIN1和AIN2间的电压
因为你接的电阻是0欧
理想的情况AIN1和AIN2间的电压应该为0V

你可以通过简单的电压测量判断code和电压的关系正常AIN+-AIN-=VREF时应该是7FFFFFh

AIN+-AIN-=0V时为000000h
AIN+-AIN-=-REF时为800000h

这里没考虑PGA

ADC输出的十六进制CODE没有负号

好的,多谢了!我试试

符号是因为我把获取到的AD值先左移了8位(放大256倍识别正负号),然后再右移8位恢复原值得到的‘’

嗯 这个资料我看了,,不过我是在已经设计好的板子的基础上编写程序的、、、
连线方式与资料有所不同,,相比较而言更简单~~正常而言按手册示例
的公式计算出来的值应该没问题啊~
不过得到的值却不对,,,

看看这个 有参考代码和电路
Analog Front End (AFE) for Sensing Temperature in Smart Grid Applications Using RTD Reference Design
http://www.ti.com/tool/TIDA-00110

好的,当前我把AD值转换为电阻值误差相当大啊~请问这是程序的事还是硬件电路的事啊?
(每个通道的误差略有不同:误差0.6~0.9欧~~)

电阻箱(欧) 转换结果(欧)
0 0.68
100 100.40
200 200.12

你Rbias的精度和温漂是多少?

额~ 这个~~ 我就知道Rbias是一个820欧的电阻。。。具体参数不知道,,,

还有你的电阻箱
把误差算里看看


好的,我刚刚试了试把电阻值转换为温度,按照pt100的对照表比对了下,在0~100之间从零开始基本都是比对照表中的温度大了接近1度,越往后误差会越大些,在对照表中显示的98度的阻值下,串口显示的温度已经要达到100了~~

对了,请问你把ADC程序移植到操作系统上过吗?今天电阻转温度的时候测试了一波,,又冒出了新毛病~~
RTX下浮点数类型数值无法正常输出

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top