微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADR1292r通道2数据总是0x7FFFFF

ADR1292r通道2数据总是0x7FFFFF

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

原理图如下

短接DB9的1脚和2脚,为什么进行连续转换时,通道二的数据总为0x7FFFFF

恳请大侠出手相助,指点迷津

如果差分输入短接,还出这个数据。那么请做如下实验, 去掉R1 R2, 把C7 C8用0欧姆短路后,看结果

好像还不行啊,还是在0x7fffff附近

寄存器设置通道二短路测偏置电压,数值大概 在0x140000~0x180000,增益6,换算过来大概63-75mV,

外部短路接地,测出数值大概是0x7b0000,换算过来380mV。

按理应该是一个接近0 的值。

设置寄存器测内部test信号,数值大概0x220000-0x240000,增益6,换算过来大概是107mV-113mV

按手册来说测试信号应该在1mV,不知道怎么会得到这样的结果。

输入全都断开,发内部test信号,差分两路的test信号幅度相同,PGA增益设置为1,看看会得到什么样的结果。

按你说的,设置PGA1,断开R1-R2,R5-R6,内部Test 信号,CH1:0x800000,CH2,大概是 -20mV到-10mV

另外,短接C1,C2,CH1, CH2大概有+10mV到-5mV的电压

设置成内部短路,CH1可以测到100mV以上的电压,CH2的电压测到的大概在1mV以内

以上结果正常么,麻烦大侠指正

前两个看上去正常,可以把calibration用起来,估计短路输入时就可以得到接近0的转换值了。

你的电源电压AVDD和AVSS各是多少V?如果把AVSS设置为0V,输入采正电压,会不会有改善?感觉你的问题可能是正负电源供电和数字转换逻辑没匹配好,数字转换逻辑在手册28页图10。

以上都是执行CAL_ON置位,调节PGA后发送OFFSETCAL命令,这些操作后得到的值

万用表测,ADS_AVDD 3.0V,ADS_DVDD3.3V

这是电源电路,调试时采用的是USB电源供电,电池未接

这是时序

从最初的帖子里附的电路图看,通道1和通道2的区别在于通道2是直流耦合过去的,可能会有直流工作点不对的问题。可以试试下面两个办法。

1. 原始电路不动,通道2输入的差分信号给一个(AVDD+AVSS)/2的共模,看看转换结果对不对。

2. R1,R2改成两个隔直电容,容值大小参考通道1的,然后按照手册18页图19所示,把内部的共模(VREFP+VREFN)/2这个功能打开,再看转换结果对不对。

哦,这个电路参考的是评估板的电路,针对1292R去掉了多余元器件。

我先试了下内部MVDD 测试,好像也不对:

设置CH1SET寄存器0x13,即PGA1,CH1转换值0x37A3C0上下, 换算过来1.2V,按照手册,换算过来相当于AVDD是 2.1V,实际Pin12管脚电压是3.0V左右

设置CH2SET寄存器0x13,即PGA1,CH2转换值0x164040上下, 换算过来0.42V,按照手册,换算过来相当于DVDD是 1.68V,实际Pin23管脚电压是3.3V左右

而且,有一个奇怪现象,每次复位的这个值不一样,而且复位之后一直不变,不像其他MUX通路,值多少有些变化

还有就是你上面说的第二条,我看了下图,没有找到VREFP+VREFN)/2这个功能,

不知道你是不是指的下面这个,但是Mux = 0x0001,会将INP-INN短接,任何信号都进不去的吧

MUX1[3:0]=001是设置该通道的共模输入电压在Vref/2,INN INP短路,差模信号为0。看下输出数字值怎么样?

CH1 :0x800000,

CH2:在-30mV上下

增益是1

CH1相当于静态工作点在-1.2V以下,

CH2相当于静态点在-1.23V,

这样以来,测得的MVDD倒也正常,可是OFFSETCAL命令已经发过了,CAL_ON也置位了,怎会这样?

怎么会测出来负电压?系统是单电源供电还是正负电源供电啊?按说,如果是单电源供电,其实你最初的问题应该就是第二路没有直流偏置吧,给个偏置上去可能就好了。

那个问题解决了,原理图参考的是评估板,没有问题的。

两个通道的偏置测了-通过c1、c2两端对地,也对。

问题是出在参考电压源上,我用到的是内部的2.42参考源,复位默认是不打开的。

使能CONFIG2 的PDB_REFBUF位,打开了就一切正常了。

补充下,使用该原理图只有CH2可作信号采集,CH1是测呼吸的。

同时大胆猜测下(也可能手册有提到但我没注意),两个通道的偏置是公用的,因为CH2外部确实没有偏置电路,但却有偏置电压。

另外,ADR1292中的ADC 仅支持来自PGA差模信号的转换,共模是没法转换的,所以CH2的PGA短路的话,应该是一个接近0的值,实测约5-9uV;

内部 TEST测试1mV@1Hz,这和外部电路关系不大,波形很清晰的。

大概给个调试步骤吧,仅针对片子本身。

焊好后 ,测C1,C2两端-(CH1/2 的N端和P端)对地电压,都在1.5V左右就对了。

接着设置SPI,设置 HOST端为主模式,CPOL = 0,CPHA = 1,空闲时钟低,第二个时钟。

要提醒的一点,ADR1292的SPI时钟要MCU来提供,就是说,要读AD的转换值,需要向外面写三个字节的0x00,编写编读才可以。

同时注意,读寄存器要先发送停止转换命令SDATAC(0x11)。

留意选择参考电压源,内部的话一定要设置(见上文)。

给个HEX数据转float的函数,很笨但也能用
char GetVolt(float *vout,int code,int GAIN)
{

float vol = 1.0;
int temp = 0;
float VREF = 2.42;

if(0x800000 == (code & 0x800000))
{
temp = ~(code & 0xffffff);
temp = (temp & 0xffffff) + 1;
vol = -1.0;
}
else
temp = code;

vol *=  (float)temp / (float)0x007fffff;
vol *=  VREF / (float)GAIN;
*vout = vol;
return 1;
}

一切就绪后,欢迎来到数字世界,50Hz 工频 或许是你遇见的第一个大BOSS,我正被搞得焦头烂额。

不用担心,有傅里叶、有Z变换、有IIR、有Matlab、有TI大神。

车到山前必有路,见招拆招就可以了。

以上 是我遇见的一些问题,希望能帮到看到帖子的人。

您好,我想向您请教一下,使用内部test信号时,寄存器配置是什么样的,我试了一下,偏差很大

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

网站地图

Top