OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8385|回复: 19

关于ADS8328时序的问题,在此谢过

[复制链接]

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2021-6-22 22:04:44 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 NewGuard 于 2021-6-25 16:00 编辑

主控F407,硬件SPI
现象:读写配置寄存器没问题,但读到的数据不太对,会上下飘来飘去,不知道什么问题(万用表测了AD口电压稳定)。


双通道轮询读取数据,不知道是不时序没写对,再次谢过,搞了好久有点小崩溃了,您的指点可能就让我焕发生机了。

解决:基准电压不稳定导致

5.png

寄存器配置

寄存器配置
6.png
7.png
4.png

最佳答案

查看完整内容[请看2#楼]

如果低速也不稳定,那是程序问题了。仔细检查你的代码,严格按照官方SPI操作时序来。看你的结果不是那种乱飘,是规律性间隔一次结果变一次,仔细检查代码吧,可能有数据未读取完整。还有一种可能,是你的数据处理上出了问题,比如INT型转float型这种类型转换如果不注意也会导致结果出问题。调试的话就是最好把读到的原始数据也printf出来,比较容易定位问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-6-22 22:04:45 | 显示全部楼层
如果低速也不稳定,那是程序问题了。仔细检查你的代码,严格按照官方SPI操作时序来。看你的结果不是那种乱飘,是规律性间隔一次结果变一次,仔细检查代码吧,可能有数据未读取完整。还有一种可能,是你的数据处理上出了问题,比如INT型转float型这种类型转换如果不注意也会导致结果出问题。调试的话就是最好把读到的原始数据也printf出来,比较容易定位问题。
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-23 12:30:42 | 显示全部楼层
本帖最后由 NewGuard 于 2021-6-23 12:34 编辑

坐等。。。。。。
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4891
金钱
4891
注册时间
2015-1-10
在线时间
612 小时
发表于 2021-6-23 13:22:32 | 显示全部楼层
SPI总线是否有干扰
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11536
金钱
11536
注册时间
2014-4-1
在线时间
1313 小时
发表于 2021-6-23 13:35:15 | 显示全部楼层

真不好说,都有可能。

你好歹把过程、现象什么的描述一下。
这么问让人怎么答?


回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-6-23 16:40:52 | 显示全部楼层
你是软件模拟SPI还是硬件SPI?
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-23 19:49:18 | 显示全部楼层
阿侑kevin 发表于 2021-6-23 13:22
SPI总线是否有干扰

在此谢过,读写寄存器没有问题
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-23 19:49:41 | 显示全部楼层
xuande 发表于 2021-6-23 13:35
真不好说,都有可能。

你好歹把过程、现象什么的描述一下。

您说是,过程重新写了下
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-23 19:50:03 | 显示全部楼层
c2007s 发表于 2021-6-23 16:40
你是软件模拟SPI还是硬件SPI?

HAL库硬件SPI
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-23 21:45:28 | 显示全部楼层
自己顶一下
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-23 22:47:25 | 显示全部楼层
还是不行
1.png
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-6-24 08:46:44 | 显示全部楼层
1. SPI速度用1M,始终读取一个通道试试是否稳定。
2.如果低速单个通道稳定,继续低速轮询2通道试试。
3.如果低速两通道稳定,那就换用软件模拟SPI试试。
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-24 09:52:38 | 显示全部楼层
目前是直接用外部电源接到IN1和IN0,跳过了外围电路,但测到的数值还是漂,上下能漂有30mV左右
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-24 11:27:49 | 显示全部楼层
本帖最后由 NewGuard 于 2021-6-24 11:29 编辑
c2007s 发表于 2021-6-24 08:46
1. SPI速度用1M,始终读取一个通道试试是否稳定。
2.如果低速单个通道稳定,继续低速轮询2通道试试。
3. ...

现在SPI已经是64预分频大概1.3M,单通道测试也是会漂,随着输入电压的增大漂的越来越大,整体测试大概如图
测试结果.png
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11536
金钱
11536
注册时间
2014-4-1
在线时间
1313 小时
发表于 2021-6-24 20:43:10 | 显示全部楼层
本帖最后由 xuande 于 2021-6-24 20:45 编辑


手册显示,最大量程是 ref 电压值,ref 现在是 2.5v,
而你输入到 3.5v,是这样吗?

回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11536
金钱
11536
注册时间
2014-4-1
在线时间
1313 小时
发表于 2021-6-24 21:14:01 | 显示全部楼层


你用的是Manual Trigger (Read While Converting)模式,对吧?

时序图 Figure 3,要求在 INT 为低电平的时候 SPI 开始读取数据,
就是说 INT 为低时把 CS 拉低,然后顺序发送 SCK 和数据,

但你 10 楼的程序明显不是这样做的。
你在等待 EOC 变高,然后才开始读取数据。







回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-25 08:39:12 | 显示全部楼层
xuande 发表于 2021-6-24 20:43
手册显示,最大量程是 ref 电压值,ref 现在是 2.5v,
而你输入到 3.5v,是这样吗?

忘了说了,后来这个换成了4.096V,不过原理图上没修改
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-25 08:53:00 | 显示全部楼层
xuande 发表于 2021-6-24 21:14
你用的是Manual Trigger (Read While Converting)模式,对吧?

时序图 Figure 3,要求在 INT 为低电 ...

EOC那个转换中读取和转换完成读取都试了,也会有漂。
后面定位到发现4.096V基准电压不太稳,输出有点波浪线,把电容加大后,好了很多。
但还是会有上下浮动,一般漂多少算是正常?是不是和输入和基准电压的纹波都有影响


1.png
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-6-25 17:02:42 | 显示全部楼层
REF出来要加低通滤波。可以参考ADI官方的:
https://www.analog.com/cn/analog ... e-noise-matter.html
你如果用的是REF5040,输出4.096V基准,0.1-10HZ噪声是12 μVPP。你这显示几百mv了,肯定是有问题的。
回复

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
 楼主| 发表于 2021-6-26 11:24:16 | 显示全部楼层
c2007s 发表于 2021-6-25 17:02
REF出来要加低通滤波。可以参考ADI官方的:
https://www.analog.com/cn/analog-dialogue/articles/why-doe ...

谢谢我细看下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-23 06:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表