打印
[STM32F7]

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

[复制链接]
2994|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Cjy_JDxy 于 2019-6-13 08:44 编辑

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

程序:
STM32_ADS1220DRIVE.rar (29.8 KB)
请高手看看,哪里有问题?谢谢!



使用特权

评论回复
沙发
mmuuss586| | 2019-6-10 09:43 | 只看该作者
用示波器抓下波形,和AD芯片要求的时序对比下看看,差别在哪里;

使用特权

评论回复
板凳
Cjy_JDxy|  楼主 | 2019-6-10 17:34 | 只看该作者
谢谢!writeReg(ADS1220_REG_0,0x55);
        hal_ads1220._Reg[0] = readReg(ADS1220_REG_0);
这两条语句,读写寄存器都没问题,说明读写时序是对的。
示波器不好抓,只有两个通道。

使用特权

评论回复
地板
Cjy_JDxy|  楼主 | 2019-6-10 18:47 | 只看该作者
数据类型错了.原来是unsigned int类型,现在改成long型,数据有变化,可是最高字节是0xff,是负值。
把两根信号线倒了一下,还是负值。很奇怪。

使用特权

评论回复
5
BOY200501| | 2019-6-10 21:19 | 只看该作者
1. 设置了选择REFP0吗?
2. 考虑一下输入确实转换结果为0xFFFFFF。

使用特权

评论回复
6
Cjy_JDxy|  楼主 | 2019-6-11 09:32 | 只看该作者
BOY200501 发表于 2019-6-10 21:19
1. 设置了选择REFP0吗?
2. 考虑一下输入确实转换结果为0xFFFFFF。

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

使用特权

评论回复
7
Cjy_JDxy|  楼主 | 2019-6-11 10:26 | 只看该作者

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

使用特权

评论回复
8
Cjy_JDxy|  楼主 | 2019-6-11 10:53 | 只看该作者
传感器正常输出0-20mV,测芯片的7脚和10脚却760多mV.
不知道是不是电路有问题?

使用特权

评论回复
9
Cjy_JDxy|  楼主 | 2019-6-12 17:24 | 只看该作者
随便举一个采样值:4294954577.
太大啦

使用特权

评论回复
10
Cjy_JDxy|  楼主 | 2019-6-13 13:18 | 只看该作者

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

使用特权

评论回复
11
Cjy_JDxy|  楼主 | 2019-6-13 15:12 | 只看该作者
netjob 发表于 2019-6-13 15:00
用一个I2S的 ADC 不是更好吗?  24BIT/96KHZ采样率。 你这个ADC多少?

24BIT/2KSPS

使用特权

评论回复
12
磨砂| | 2019-7-4 15:23 | 只看该作者
用示波器抓波形比价靠谱

使用特权

评论回复
13
八层楼| | 2019-7-4 15:28 | 只看该作者
直接接一个固定电平的 试试看呢

使用特权

评论回复
14
观海| | 2019-7-4 15:32 | 只看该作者
请问这个芯片是干嘛用的

使用特权

评论回复
15
Cjy_JDxy|  楼主 | 2019-7-4 16:03 | 只看该作者
观海 发表于 2019-7-4 15:32
请问这个芯片是干嘛用的

24位AD采样

使用特权

评论回复
16
观海| | 2019-7-5 09:54 | 只看该作者

好的 非常感谢

使用特权

评论回复
17
345344300| | 2019-7-8 14:53 | 只看该作者
void Setup_ADS1220 (unsigned char inputMux,unsigned char dataRate,unsigned char conversionMode)
{
    unsigned char config[4];

    config[0] = inputMux + ADS1220_GAIN_1 + ADS1220_PGA_BYPASS;//inputMux 选择通道   ADS1220_GAIN_1增益已设为1    ADS1220_PGA_BYPASS禁用旁路PGA
    config[1] = 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[2] = 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[3] = 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);

使用特权

评论回复
18
345344300| | 2019-7-8 14:55 | 只看该作者
一定要先保证电路是没问题的,再去调试程序

使用特权

评论回复
19
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)
{
   ...

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

使用特权

评论回复
20
Cjy_JDxy|  楼主 | 2019-7-8 18:39 | 只看该作者
345344300 发表于 2019-7-8 14:55
一定要先保证电路是没问题的,再去调试程序

那如何保证硬件没问题呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:绿水本无忧因风皱面,青山原不老为雪白头。

553

主题

3530

帖子

19

粉丝