烽火社区

标题: 求助,关于AD7689的SPI数据读取,ADI技术支持也来看看 [打印本页]

作者: hometainan    时间: 2015-6-12 11:28 AM
应该是时序上的问题:

1。 你要测量一下你的时序上的问题,数据要等待一个转换周期之后才会读出第一个数据。

[attach]19679[/attach]

2。 另外,你是否使用了AD7689的sequencer ? 这个还是有些讲究的。

顺便给你楼主提个醒,AD7689的版本为0,代表产品是量产的芯片,设计上应该不会有什么问题。可以放心使用。
作者: Mariah翔昊    时间: 2015-10-9 04:26 AM
感谢您的再次回复,关于您的两个提示

1,我是通过回读的配置字中的通道号来对应数据的,所以数据对应上应该不存在问题

2,我确实使用了sequencer ,扫描8个通道,连续读8次,得到的数据顺序为

通道3 通道4通道5通道6通道7通道0通道1通道2

需要注意的是,如果扫描8个通道并且回读命令字,那么实际需要读8次(每次32个时钟)才行,因为每个通道返回的数据由两个16位组成,采样数据+配置字

另,我已经发邮件给你了,期待你的回复




作者: mpuhome    时间: 2015-10-9 05:34 AM
关于你的原理图和测试代码,我看了一下,建议如下:

1。 从原理图上:不知道为什么你前端电路用OP2177,而COM端接了VREF/2? 是否可以测试在接地的状况下的采样值。

2。从代码上:

a. 如果没有回读时,你读到的第一个数据是无用的,其实你只是读了7个数据。

b. for() 函数中的 SysctlDelay(40); 函数最好设置的超过2.5us,保证最小值;

c. for()函数外的SysctlDelay(30);函数最好大一点;

看看效果是怎样的?
作者: lq1836    时间: 2015-10-9 06:00 AM
楼主要检查一下AD7689与CPU的通信接口电平是不是一样,AD7689下面有一个热焊盘,楼主要看一下别和其它的信号线短路了,看了楼上hanxin的帖子,知道你把COM端接了VREF/2,那输出数据格式就是二进制的补码了,而且输入全部接0,那输出很有可能就全0全1的跳呀,就像楼主自己说的,其实可以先配置寄存器然后再把数据读回来,看是否正确配置了,这样就可以验证SPI的读写问题了,建议楼主用示波器看看你的CPU硬件上的SPI是否能满足AD7689的时序要求,不行就用GPIO模拟吧,这样应该在时序上就没问题了。                                                                                                                                                                       
作者: mpuhome    时间: 2015-10-9 06:26 AM
现在已经确定SPI读写没有问题

和COM端接法有关系,必须选择和硬件连接相对应的配置字,使用正确配置字后基本可以了,目前读回的电压最大会差200mV,等降低输入信号纹波后再看看

搞好后再和大家通报
作者: angus.zhao    时间: 2015-10-9 09:09 AM
Good news to all !                                                                                                                                                                       
作者: angus.zhao    时间: 2015-10-9 11:02 AM
现在降低纹波后,已经可以做到跳动20个码左右,软件再处理一下就可以满足现在的设计要求了

不过转换速度太慢了,准备换个7699试试看

感谢大家的帮助,感谢ADI、世健技术支持人员的帮助,感谢CCTV~~~
作者: angus.zhao    时间: 2015-10-9 12:22 PM
楼主你好,最近用到了AD7699,CPU用的是TMS320F2812,CPU本身的SPI ,使能用IO口控制;可是我读回来的数据很乱。楼主方不方便把的测试原理图和测试代码发给小弟参考一下;邮箱 www.ruidecom@163.com
作者: mpuhome    时间: 2015-10-9 01:46 PM
我可以依序讀值進來, 但 AD7689誤差也太大了, 我的感測器輸入分別為:

CH0 = 3.3V, CH1 = 1.18V, CH2 = 1.4V, CH3 = 1.375V

CH4 = 3.3V, CH5 = 1.2V, CH6 = 1.4V, CH7 = 0V

從微控制器讀回來的值卻是:

CH0 = 3.25V, CH1 = 1.23V, CH2 = 2.09V, CH3 = 1.94V

CH4 = 3.27V, CH5 = 1.36V, CH6 = 1.79V, CH7 = 0V

請問各位使用過的專家, 有什麼建議嗎? 是否我遇到與您相同的經過?
作者: shengxia05    时间: 2015-10-9 02:35 PM
請問您原本的 200mV誤差, 如何將它縮小? 我現在誤差甚至大於 200mV !!                                                                                                                                                                       
作者: mpuhome    时间: 2015-10-9 04:01 PM
看楼主的描述,他的200mV误差主要是由输入纹波引起的,降低这个纹波后就好了。当然不确定楼主是否还有其它改进,欢迎分享。                                                                                                                                                                       
作者: hevry    时间: 2015-10-9 05:57 PM
AD7689与MSP430进行SPI通信,CNV、SCK、DIN通过示波器观察均正确,但SDO总输出0,后来发现输入端接入AD7689后电压全部变为0,是不是因为没有用到跟随器?谢谢~ 我的邮箱 julia_860527@163.com,可以交流原理图及代码
作者: angus.zhao    时间: 2015-10-9 07:04 PM
如果不用跟踪器,也不会到0。这可能还需要看到电路才好分析。楼上可以把原理图发到china.support@analog.com让工程师看一下。最好发pdf格式的图。
作者: hevry    时间: 2015-10-9 07:36 PM
楼主,你好,我最近准备用AD7689芯片,但没有相关驱动程序,您可否帮忙分享以下您的代码(AD7689部分),不胜感激。。。mfdxh@126.com                                                                                                                                                                       
作者: mpuhome    时间: 2015-12-9 03:13 AM
标题: 求助,关于AD7689的SPI数据读取,ADI技术支持也来看看
精华帖

贴子发表于:2008-12-9 15:11:22最近调试AD7689,将CPU的SPI配置为方式0,16位数据宽度,8M速率,但读回数据很乱无规律,REV0版本的datasheet感觉写的不够详细,有人用过这个芯片吗?给点提示吧,是否有什么特别的地方呢?十分感谢


作者: mpuhome    时间: 2015-12-10 08:38 AM
1。 建议你看看AD7699(500k sps)的手册,里面有一些在AD7689(250ksps) 中没有提到的时序图。

2。 建议你详细的描述一下你当前使用的模式和处理器接口,比如使用的是ARM? 内置的SPI接口? 等等信息。

3。另外你可以把你现在的时序图贴出来,大家帮助你分析!
作者: mpuhome    时间: 2015-12-10 10:18 AM
我是用的CPU是LM3S2965,CM3的内核,使用CPU自带的SPI,自己控制片选(CNV信号),目前已经可以正确读回AD7689的配置字,但采样数据无规律,AD输入端已经全部接地了,我的时序符合AD7699的第二种(22页)

教训深刻呀,以后绝不用ADI数据手册版本为0的器件了!!!
作者: mpuhome    时间: 2015-12-11 10:13 AM
能读回AD7689的配置字,说明SPI接口的操作基本上问题不大,
确认一下ADC的数据格式,然后根据数据格式将读回的数据进行解析。
因为我记得我曾经用过一款ADI的ADC芯片,其数据格式是需要解析的。
作者: angus.zhao    时间: 2015-12-11 11:19 AM
还有什么好的建议吗?

首先感谢楼上两位的回复!

关于数据的解析,我认为是下一步的事情,在被采样电压固定的情况下,至少我读回的数据应该是稳定的,现在好象是随机的,没有任何规律,我用的是外部基准,明天改成内部基准再试一下
作者: mpuhome    时间: 2015-12-12 09:55 AM
AD7689有两种时序模式,如果是带BUSY的那么SDO的第一位是low。也可以把时钟频率降下来看看,主要是时序要满足ADC的要求。                                                                                                                                                                       
作者: mpuhome    时间: 2015-12-17 07:42 AM
十分感谢                                                                                                                                                                       
作者: ZhaoNeil    时间: 2015-12-29 04:48 AM
如果你方便,可以把你的原理图和代码,发到邮箱: ztlong@126.com ,我们来探讨,互相学习一下这个片子。




欢迎光临 烽火社区 (http://bbs.cnecport.com/) Powered by Discuz! X3.2