abbey_tom 发表于 2022-4-22 20:28:00

xjw01 发表于 2022-4-22 18:05
不要剔出,数据是有效的。原理如下:
干扰脉冲的处理:
    1.理解时序:


这个分析很细致,
我原以为SCLK应该是与读写时序同步的,
有干扰时只影响本帧数据,
不会位移到下一帧数据去的,
因为我直接使用的是MCU的SPI接口,
没有编写软件的SCLK节拍,
所以应该不会有您这个问题。

xjw01 发表于 2022-4-22 21:41:02

本帖最后由 xjw01 于 2022-4-22 21:45 编辑

abbey_tom 发表于 2022-4-22 20:28
这个分析很细致,
我原以为SCLK应该是与读写时序同步的,
有干扰时只影响本帧数据,


受强干扰时,也会有这个问题的。
因为你的板子用PCB板做的,抗干扰能力强,所以没发现这个问题。
我的spi线,长达15cm以上,而且芯片没有地线层保护。
分体直插元件调式,也有好处,可以排除元件之间的相互影呼,更容易控制误差细节。
比如,可以把热源、噪声源分离出去

黔驴一头 发表于 2022-4-22 22:38:46

去年买了1个原装的和几个淘宝几元的ADS1247,原装的噪声十几个数字,tb的一两百,电路没有做什么讲究的处理。

abbey_tom 发表于 2022-4-23 10:07:48

xjw01 发表于 2022-4-22 21:41
受强干扰时,也会有这个问题的。
因为你的板子用PCB板做的,抗干扰能力强,所以没发现这个问题。
我 ...

我的ADS1220昨天到了,
今天终于折腾出数据了,
这次不是板载STM32,
是分开的板,
SPI线是杜帮跳线。

从初步结果来看,
屏幕上显示的7位数纹丝不动
稳定度比1256好太多了,
手册上应该1220要差,
有可能是我的1256买到次品了或电路设计不佳。

回头我进一步测试噪声效果。

abbey_tom 发表于 2022-4-23 10:10:15

本帖最后由 abbey_tom 于 2022-4-23 12:00 编辑

楼上给出了ADS1220的照片,
内置基准和晶振,
板上只有几个电阻电容,
效果却是出乎意料的好。

观察后补充:
测量值几乎不变化,
就好像始终读的都是上一次测量的值,
但改变输入源(用电位器调整电压),
测量值却能够跟随(测量值也符合23S同步测量的结果),
这是什么毛病?

xjw01 发表于 2022-4-23 12:49:00

abbey_tom 发表于 2022-4-23 10:10
楼上给出了ADS1220的照片,
内置基准和晶振,
板上只有几个电阻电容,


检查是否有丢码问题。
ads1220,手册指标是20bit左右。ads1256大约是24bit,二者相差较大。按理说,ads1220跳得比较多。

slsdz 发表于 2022-4-23 13:05:21

abbey_tom 发表于 2022-4-15 08:31
我是用了中值滤波算法,
取最近9次的测量结果,
去掉3个最高值,


过滤太狠,数据也不真实

abbey_tom 发表于 2022-4-23 14:04:21

xjw01 发表于 2022-4-23 12:49
检查是否有丢码问题。
ads1220,手册指标是20bit左右。ads1256大约是24bit,二者相差较大。按理说,ads1 ...

已经崩溃了,
不像是丢码问题,
因为任何时候,
转换值都能快速地跟随输入源的变化,
并且转换正确。

但当信号不变时转换值就不动如山,
给人的感觉是它有一个噪声滤波器,
在允许的噪声范围内,
数据会保持固定值输出,
信号变化幅度大到一定程度时,
才变化输出数据。

一度我以为睡眠,
我在每次转换前都发复位指令及配置指令,
没有什么改观。

abbey_tom 发表于 2022-4-23 14:26:53

xjw01 发表于 2022-4-23 12:49
检查是否有丢码问题。
ads1220,手册指标是20bit左右。ads1256大约是24bit,二者相差较大。按理说,ads1 ...

程序也没有停留在某个地方,
按照转换速率,
始终能够均匀的读到数据,
并且我已经把所有的软件滤波或剔除数据的功能全部删除了。

xjw01 发表于 2022-4-23 22:33:14

abbey_tom 发表于 2022-4-23 14:26
程序也没有停留在某个地方,
按照转换速率,
始终能够均匀的读到数据,


我没有用过这个芯片,我了不清楚。
这个问题,实际上是丢码了。

xjw01 发表于 2022-4-23 22:35:57

本帖最后由 xjw01 于 2022-4-23 22:47 编辑

abbey_tom 发表于 2022-4-23 14:26
程序也没有停留在某个地方,
按照转换速率,
始终能够均匀的读到数据,


顺便说一下,ads1256对电路要求还是比较高的。你买的那个模块,要实现手册指标有点难。因为那块板上的元件可能不达标。
我的电路,已经达到手册指标了。
我把调试结果附上:


abbey_tom 发表于 2022-4-24 08:08:51

本帖最后由 abbey_tom 于 2022-4-24 09:14 编辑

xjw01 发表于 2022-4-23 22:33
我没有用过这个芯片,我了不清楚。
这个问题,实际上是丢码了。

谢谢,问题已经解决了。
确实没有丢码。
但其实是相当低级的错误。

沿用了TI官方例程中的一段,
ADS1220code = (((long)tempData << 16) + ((long)tempData << 8) + (long)tempData) >> 10; // take 3 bytes of voltage returned and place in word
出于对TI的绝对信任,这一句没有仔细看,
后来发现夹在英文注释中多了一个>>10

这样相当于舍弃了低10位,
如果是正值的话,数值缩小了1024倍
又因为约为1000倍,使得恰好是uV与mV之间的倍率,
显示值与23S没有差,
于是就没有怀疑转换数值的正确性,
把DEBUG的精力集中在时序相关。

xjw01 发表于 2022-4-24 15:25:49

abbey_tom 发表于 2022-4-24 08:08
谢谢,问题已经解决了。
确实没有丢码。
但其实是相当低级的错误。


ads1220有哪些优势?

abbey_tom 发表于 2022-4-24 15:56:09

本帖最后由 abbey_tom 于 2022-4-24 16:01 编辑

xjw01 发表于 2022-4-24 15:25
ads1220有哪些优势?

在精度等方面,
1220确实没有优势,
从我实测结果来看,
1220的噪声峰峰大概在10uV以内的量级(PGA=4、20Sps)
经过滤波后可达到5uV以内。
其实也是符合我的预期的。

测量100mV以内的信号,
精度可在100.00,
尾数最大一个字的跳动。
要说它的优势,
就是外围电路简单,
自带时钟及基准。

abbey_tom 发表于 2022-4-24 16:00:32

本帖最后由 abbey_tom 于 2022-4-24 16:55 编辑

xjw01 发表于 2022-4-23 22:35
顺便说一下,ads1256对电路要求还是比较高的。你买的那个模块,要实现手册指标有点难。因为那块板上的 ...

非常不错,
您这个如果打板的话,
把PCB文件给我分享一下,
我也搞一块验证一下:) 。
页: 2 3 4 5 6 7 8 9 10 11 [12] 13
查看完整版本: 24bitADC芯片ADS1256的测量精度