完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
数据输出波形如下:
信号分别为:CS、SCLK、DIN、DOUT 以下波形为输出全1的抓图: 以下波形为正常输出数据:(LSB为1) 下面这张是正常输出,但是LSB为0,本来应该是时钟上升沿读取数据,可是输出却是跳变的,这是不是有问题??? 我测试了2块板子,都是同样的现象,平时输出正常,间歇性输出钳位为1,查了手册输出全为1是因为基准电压开路了,一开始怀疑是没焊接好,但是我把板子重新焊好了, 仍然这样,我也用示波器观察了AD的电源波形和基准电压波形,都没有问题,没有出现过电压下降的情况,一直稳定是5V。不知道是否有其他情况使得输出全1,整了一礼拜还没找出问题。希望ADI技术人员能帮忙分析下,谢谢! |
|
相关推荐
3个回答
|
|
您好,您可以回读寄存器请的配置,可以用来检查SPI通信是否正常。
同时检查SYNC引脚配置,SYNC不影响数字接口,但是置为低时,会将RDY复位为高电平。另外,您可以参考以下关于sigma-delta ADC的常见问题解答:http://ezchina.analog.com/message/13947#13947 |
|
|
|
问题已经解决,下面详述:
观察第一幅波形图,可知DOUT输出时全1,而并不是有个数据转换完标志(将DOUT拉低),也就是说根据该波形图可以知道,MCU在DOUT未拉低的情况下就读取DOUT上的数据了,当然就是全1了,那么为什么DOUT没有拉低就读取了呢?于是追踪到读写函数中,由于我使用的是ADI官方的驱动ad7190_generic.zip,里面的读取数据的方法是使用查询的方法,所以有一个等待DOUT拉低的函数,如下: void AD7190_WaitRdyGoLow(void) { u32 timeOutCnt=0xFFFFF; while(DOUT&&timeOutCnt--) { ; } } 那么事情就明了了,当等待超时了,也会读取DOUT上的数据,也就是全1了,这就是为什么会偶尔冒一个全1的数据,并且下一次是什么时候根本就不知道,毫无规律的原因。 当然,项目中还有一个问题是CS片选信号,由于也是使用官方的驱动,没有注意到CS线的信号,驱动中只是当调用了初始化函数或者读写函数才会对CS进行操作,但事实是,项目中,必须保证CS一直为低电平,数据转换完毕后DOUT才能变低电平,这里请看第二幅和第三幅波形图,发现DOUT波形头部有一小段低电平,这就是因为CS被拉低了,而在时钟信号之前,确实高电平,这样,其实是查询不到的DOUT拉低了,只有程序准备去读数据将CS拉低了才能检测到CS拉低,正常后的波形如后图所示。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1002 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1393 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1941 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4275 浏览 2 评论
9068 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1545浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1700浏览 2评论
1002浏览 2评论
1680浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1393浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 17:51 , Processed in 0.840081 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号