bolizhicheng204 发表于 2020-3-27 15:25:48

有没有人用AD7175,运行一段时间读数一直不变怎么回事?

有没有人用AD7175,运行一段时间读数一直不变怎么回事?
正常运行还好,运行到十多个小时会出现读出来的数据一直不变,其中整个程序没做别的事情,读数功能一直循环。
而且,连续测了三块板子都有同样的情况,但是不断电,单片机不复位,单片机发送AD7175复位指令后数据恢复正常。

有人知道问题在哪儿吗?多谢

superpaul 发表于 2020-3-27 15:39:11

应该是寄存器值异常,有的时候一个通道异常,有的时候全部异常,至今没有找到原因。

bolizhicheng204 发表于 2020-3-27 16:34:43

superpaul 发表于 2020-3-27 15:39
应该是寄存器值异常,有的时候一个通道异常,有的时候全部异常,至今没有找到原因。 ...

你也遇到过吗?是不是只能复位解决了?

Flyback 发表于 2020-3-27 21:56:27

CS引脚一直低电平吗,是不是SPI迷失了

可以访问状态寄存器或者ID寄存器来定位问题

bolizhicheng204 发表于 2020-3-28 08:19:38

Flyback 发表于 2020-3-27 21:56
CS引脚一直低电平吗,是不是SPI迷失了

可以访问状态寄存器或者ID寄存器来定位问题 ...

差不多几十毫秒读一次,读的时候才拉低cs,查看过通道配置寄存器和id寄存器都正常

reflecter 发表于 2020-3-28 09:16:36

7175-2/8算我们最快的Sigma delta ADC 了的,实时debug ,看最后停在哪了的。

Flyback 发表于 2020-3-28 11:30:15

本帖最后由 Flyback 于 2020-3-28 11:33 编辑

bolizhicheng204 发表于 2020-3-28 08:19
差不多几十毫秒读一次,读的时候才拉低cs,查看过通道配置寄存器和id寄存器都正常 ...

那建议挂逻辑分析仪贴波形图看看

增加:

这个芯片的每一步配置都建议写入之后回读确认

feibagezib 发表于 2020-3-28 11:52:33

这问题见过;我只能收到数据简单判断下,有异常重新初始化7175;不明白也找不到问题所在。

bolizhicheng204 发表于 2020-3-28 11:53:01

reflecter 发表于 2020-3-28 09:16
7175-2/8算我们最快的Sigma delta ADC 了的,实时debug ,看最后停在哪了的。

没有卡死,就是读出来的数一直不变,同一个结果。发送复位指令正常

bolizhicheng204 发表于 2020-3-28 11:54:00

feibagezib 发表于 2020-3-28 11:52
这问题见过;我只能收到数据简单判断下,有异常重新初始化7175;不明白也找不到问题所在。 ...

就是啊,很奇怪,其他都正常,寄存器回读也正常。差不多十多个小时就会出现

reflecter 发表于 2020-3-28 12:55:37

bolizhicheng204 发表于 2020-3-28 11:53
没有卡死,就是读出来的数一直不变,同一个结果。发送复位指令正常

驱动代码,方便贴一段上来的?
有联系就近的技术支持了的?
毕竟能用得起7175的,定是预算充足的项目了的。

reflecter 发表于 2020-3-28 12:56:47

Flyback 发表于 2020-3-28 11:30
那建议挂逻辑分析仪贴波形图看看

增加:


触发得设置好,否则普通示波器,存储深度,不够用的。

bolizhicheng204 发表于 2020-3-28 17:12:57

reflecter 发表于 2020-3-28 12:55
驱动代码,方便贴一段上来的?
有联系就近的技术支持了的?
毕竟能用得起7175的,定是预算充足的项目了的 ...

不在单位周一贴
没有,回头联系下。目前是能用,也不是特别大的问题,但是想查出来原因。

reflecter 发表于 2020-3-28 17:16:56

bolizhicheng204 发表于 2020-3-28 17:12
不在单位周一贴
没有,回头联系下。目前是能用,也不是特别大的问题,但是想查出来原因。 ...

嗯,确认购买渠道,SPI通讯环境,还有不带问题过,否则后续项目复用,代码量增大了,再来排查,会悔恨当初没趁势解决掉。

bolizhicheng204 发表于 2020-3-30 09:19:42

reflecter 发表于 2020-3-28 12:55
驱动代码,方便贴一段上来的?
有联系就近的技术支持了的?
毕竟能用得起7175的,定是预算充足的项目了的 ...

底层驱动代码在附件,官方驱动看着费劲,全部改写了,各个寄存器单独读写,很方便。

主循环简化代码:
AD7175Start();
while(1)
{
                                                                AD7175ReadAllReg();       
                                                                DelayUs(100);
                                                                AD7175.CodeBuff=0;
                                                                AD7175.CodeBuff=AD7175_RDATA();       
                                                                dftemp1=AD7175.CodeBuff*(AD7175.VREF/16777216);
                                                                dftemp1=dftemp1*1000000;

                                                                AD7175REG.STATUS.value.all=AD7175ReadREG(AD7175REG.STATUS.adr, AD7175REG.STATUS.len);DelayUs(10);

                                                                uitemp=snprintf((char *)SU1.PTxBuff, SUH.TxSize, "0X%06X%.4f%02X\r\n",AD7175.CodeBuff,dftemp1,AD7175REG.STATUS.value.all);
                                                                HostSendBuff(SUH.PTxBuff, uitemp);       
                                                                DelayMs(50);                                                       

}
               


bolizhicheng204 发表于 2020-3-31 08:32:22

我去,,,附件下载六百多次啊,怎么没人讨论
今天出现这个问题后,程序里不发送复位,只重写寄存器,所有的寄存器都重新正确写入,但是值依然不变。只有重新执行ADC复位才会恢复正常。

bolizhicheng204 发表于 2020-4-10 09:39:16

善始善终,问题解决,原因如下
中间咨询过很多人,综合分析应该是时钟或者数据的时序引起的。由于我是导线直接飞线,经常会有读取的数据错乱的现象,时间久了应该对AD本身会有影响。具体深层次原因说不太 清楚。但是把飞线改为排线后几乎没有数据错乱的现象,也没有发生过以上的问题。
欢迎探讨

shhludb 发表于 2020-4-10 12:01:15

正在测试ad7172

shhludb 发表于 2020-4-10 12:01:15

正在测试ad7172

shhludb 发表于 2020-4-10 12:01:15

正在测试ad7172

meozou 发表于 2023-5-24 09:17:18

大佬,后面除了换了排线后还进行了其他操作么?

ibmx311 发表于 2023-5-24 09:52:40

7175性能还不错,有点贵,感觉不太划算

bolizhicheng204 发表于 2023-5-25 09:34:55

meozou 发表于 2023-5-24 09:17
大佬,后面除了换了排线后还进行了其他操作么?
(引用自21楼)

项目早量产了,应该没其他操作,主要还是线的问题,速度太快了,散线不行,中间偶尔数据异常,程序处理一下
页: [1]
查看完整版本: 有没有人用AD7175,运行一段时间读数一直不变怎么回事?