Cjy_JDxy 发表于 2019-6-10 09:26

(悬赏5000元)ADS1220采集不到数据

本帖最后由 Cjy_JDxy 于 2019-6-13 08:44 编辑

芯片用的STM32F767,环境用的是MDK5
ADS1220采集数据全是65535.
电路图:

程序:

请高手看看,哪里有问题?谢谢!



mmuuss586 发表于 2019-6-10 09:43

用示波器抓下波形,和AD芯片要求的时序对比下看看,差别在哪里;

Cjy_JDxy 发表于 2019-6-10 17:34

谢谢!writeReg(ADS1220_REG_0,0x55);
      hal_ads1220._Reg = readReg(ADS1220_REG_0);
这两条语句,读写寄存器都没问题,说明读写时序是对的。
示波器不好抓,只有两个通道。

Cjy_JDxy 发表于 2019-6-10 18:47

数据类型错了.原来是unsigned int类型,现在改成long型,数据有变化,可是最高字节是0xff,是负值。
把两根信号线倒了一下,还是负值。很奇怪。

BOY200501 发表于 2019-6-10 21:19

1. 设置了选择REFP0吗?
2. 考虑一下输入确实转换结果为0xFFFFFF。

Cjy_JDxy 发表于 2019-6-11 09:32

BOY200501 发表于 2019-6-10 21:19
1. 设置了选择REFP0吗?
2. 考虑一下输入确实转换结果为0xFFFFFF。

谢谢!
选择AIN1是正,AIN2是负。
转换结果有变化,不是FFFFFF。我感觉不应该是负值。

Cjy_JDxy 发表于 2019-6-11 10:26


以上是我的初始化代码。大神看看有什么问题吗?谢谢!

Cjy_JDxy 发表于 2019-6-11 10:53

传感器正常输出0-20mV,测芯片的7脚和10脚却760多mV.
不知道是不是电路有问题?

Cjy_JDxy 发表于 2019-6-12 17:24

随便举一个采样值:4294954577.
太大啦

Cjy_JDxy 发表于 2019-6-13 13:18


这是CS和DOUT的波形,搞不明白,为什么DOUT的波形是一个锯齿波的形状。

Cjy_JDxy 发表于 2019-6-13 15:12

netjob 发表于 2019-6-13 15:00
用一个I2S的 ADC 不是更好吗?24BIT/96KHZ采样率。 你这个ADC多少?

24BIT/2KSPS

磨砂 发表于 2019-7-4 15:23

用示波器抓波形比价靠谱

八层楼 发表于 2019-7-4 15:28

直接接一个固定电平的 试试看呢

观海 发表于 2019-7-4 15:32

请问这个芯片是干嘛用的

Cjy_JDxy 发表于 2019-7-4 16:03

观海 发表于 2019-7-4 15:32
请问这个芯片是干嘛用的

24位AD采样

观海 发表于 2019-7-5 09:54

Cjy_JDxy 发表于 2019-7-4 16:03
24位AD采样

好的 非常感谢

345344300 发表于 2019-7-8 14:53

void Setup_ADS1220 (unsigned char inputMux,unsigned char dataRate,unsigned char conversionMode)
{
    unsigned char config;

    config = inputMux + ADS1220_GAIN_1 + ADS1220_PGA_BYPASS;//inputMux 选择通道   ADS1220_GAIN_1增益已设为1    ADS1220_PGA_BYPASS禁用旁路PGA
    config = dataRate + ADS1220_OP_MODE_NORMAL + conversionMode + ADS1220_TEMP_SENSOR_OFF + ADS1220_BURN_OUT_CURRENT_OFF;//dataRate速率设置   ADS1220_OP_MODE_NORMAL正常采集模式   conversionMode单/连续模式   ADS1220_TEMP_SENSOR_OFF禁用温度传感器   ADS1220_BURN_OUT_CURRENT_OFF电流源关闭
    config = ADS1220_VREF_EXT_REF0_PINS + ADS1220_FIR_NONE + ADS1220_LOW_SIDE_POWER_OPEN + ADS1220_IDAC_CURRENT_OFF;   //ADS1220_VREF_EXT_REF0_PINS 基准电压ADS1220_FIR_NONE 滤波设置关   ADS1220_LOW_SIDE_POWER_OPEN 旁侧电源断开    ADS1220_IDAC_CURRENT_OFF激励电源关闭
    config = ADS1220_IDAC1_DISABLED + ADS1220_IDAC2_DISABLED + ADS1220_DRDY_ON_DRDY_ONLY;//ADS1220_IDAC1_DISABLED禁用路由设置ADS1220_IDAC2_DISABLED禁用路由设置   ADS1220_DRDY_ON_DRDY_ONLY 数据就绪标志位仅专用接口

    ADS1220_Write_Regs (config, ADS1220_CONFIG_0_REG, 4);
}



    Setup_ADS1220(ADS1220_MUX_AIN0_AVSS,ADS1220_DATA_RATE_330SPS,ADS1220_CONVERSION_SINGLE_SHOT);
    ReadConversionData=0;
    ADS1220_Start();
    while(!ReadConversionData);
    ADS1220_Get_RTD_Conversion_Data_Calibrated (&ADS1220RTDdata_flag);

345344300 发表于 2019-7-8 14:55

一定要先保证电路是没问题的,再去调试程序

Cjy_JDxy 发表于 2019-7-8 18:38

345344300 发表于 2019-7-8 14:53
void Setup_ADS1220 (unsigned char inputMux,unsigned char dataRate,unsigned char conversionMode)
{
   ...

谢谢!你的回复对我还是有帮助的

Cjy_JDxy 发表于 2019-7-8 18:39

345344300 发表于 2019-7-8 14:55
一定要先保证电路是没问题的,再去调试程序

那如何保证硬件没问题呢?
页: [1] 2
查看完整版本: (悬赏5000元)ADS1220采集不到数据