[求助] 遇到一个ad7195采集数据不正常的问题

littleshrimp   2014-8-12 13:41 楼主

我在调试AD7195时使用了官方例程ad7190_rl78g13.zip,使用NXP LPC800做为控制器,现在程序读取器件ID和温湿度都正常,但是在读取其它通道数据始终是显示0x00ffffff,我使用的是外部2.5v参考电压,电路参考数据手册上的电路图。

查找相关问题时有人提到需要在RDY变低时读取,我使用示波器测量了波形没有发现这方面的问题,下面是我采集到的波型

TEK00000.PNG是RDY变低后读取温度数据的波形

TEK00000.PNG

TEK00001.PNG是RDY变低后读取其它通道的数据

TEK00001.PNG

TEK00005.PNG是发送转换命令到RDY变低的间隔

TEK00005.PNG


有一个比较明显的问题是DOUT/DRY输出引脚的电平有时达不到3.3V,但不知道这个是不是导致温度正常其它通道数据不正常的直接原因。


这个我的原理图

pjt.analog.pcb @模拟信号分析 AD7195.pdf (294.76 KB)
(下载次数: 74, 2014-8-12 13:35 上传)

这是我的测试代码

  1.    ret = AD7190_Init();
  2.         /* Calibrates channel./ AIN3(+) - AIN4(-). */
  3.         AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN1P_AIN2M);
  4.         /* Selects unipolar operation and ADC's input range to +-Vref/1. */
  5.         AD7190_RangeSetup(0, AD7190_CONF_GAIN_1);
  6.   /* Performs a single conversion. */
  7.   AD7190_ChannelSelect(AD7190_CH_AIN1P_AIN2M);
  8.         while(1)
  9.         {
  10.         AD7190_ChannelSelect(AD7190_CH_AIN1P_AIN2M);
  11.         //result = AD7190_ContinuousReadAvg(10);
  12.                     result = AD7190_SingleConversion();
  13.         //temp = AD7190_TemperatureRead();
  14.                                 DELAY_MS(150);
  15.         }
参照的官方程序
ad7190_rl78g13.zip (26.74 KB)
(下载次数: 85, 2014-8-12 13:40 上传)



虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论 (3)

先确认外接的电阻桥接法是否正确,
另,测试程序中使用的是AIN1,AIN2,而附件的程序是AIN3,AIN4???
如果用标准的函数库,函数内部已集成的RERDY的检测函数了:void AD7190_WaitRdyGoLow(void)
这在单次转换函数,连续转换函数均包含。
点赞  2014-8-12 16:36
引用: dingzy_2002 发表于 2014-8-12 16:36
先确认外接的电阻桥接法是否正确,
另,测试程序中使用的是AIN1,AIN2,而附件的程序是AIN3,AIN4???
...

AIN3-AIN4试过,后来改为AIN1-AIN2,也试过AIN1-AINCOM等等。
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2014-8-12 17:12
这个问题解决了嘛,,我也遇到了,NOREF位也是0,但是还是有错
点赞  2020-12-4 12:39
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复