嵌入式开发者社区

标题: SPI+AD7663配置CS的问题 [打印本页]

作者: xiaop5140    时间: 2016-7-5 21:05
标题: SPI+AD7663配置CS的问题
我想使用SPI+AD7663进行数据采集,但是使用SPI接口时,我发现SPI只提供一个输出的CLK给
ADC,但是ADC还需要一个采样时钟提供给CNVST。

为了使用SPI接口,我的接线情况是ADC的CS和RD置为低电平,SPIMISO接SDOUT,CLK接CLK,把SPICS0
接到CNVST上,使用SPICS产生一个采样时钟的时序,即自定义的CNVST。因为CNVST的作用是低电平开始转换,所以我只要保证我的采样
频率低于转换速率即可。
不过接下来的问题是,我想使用SPICS怎样配出一个具有固定采样频率的时钟,感觉是使用SPIDELAY寄存器配置CS,但是具体该怎么做就
不知道了。
假设我的SPI模块输出时钟CLK为1.2MHz,想配置采样频率为48KHz,即CS的时钟周期为1/48ms,我该怎样配置SPIDEALY这个寄存器?
或者我是否需要采用GPIO口使用定时器产生一个这样的时序,但是这样感觉太麻烦了。
希望求解~~
---------------------------
xiaop


作者: xiaop5140    时间: 2016-7-5 21:08
[attach]928[/attach]
这是ADC的时序图,系统限制帖子大小


作者: Lewis    时间: 2016-7-6 10:26
SPIDELAY寄存器并不能配置CS输出固定频率的。CS的频率跟写SPIDAT1寄存器有关,CPU每写一次SPIDAT1寄存器,SPI会产生一次时序。建议还是用定时器做。
作者: xiaop5140    时间: 2016-7-6 11:26
那用CS接CNVST的话能获得48K的采样率吗?
因为想使用EDMA搬移SPI所接收的数据,感觉使用定时器有点复杂
作者: Lewis    时间: 2016-7-6 13:55
使用CS的话是很难得到准确的48K的采样率,当然也可以拿个示波器,使用EDMA方式读取数据,调节SPIDELAY寄存器的参数和SIP CLK频率来获得大致的48K
作者: xiaop5140    时间: 2016-7-6 21:45
我对采样频率的要求暂时不是很高,那我想问下我需要配置SPIFMT中的WDELAY吗?还是说仅需要配置
SPIDELAY中的C2TDELAY?
作者: Lewis    时间: 2016-7-11 13:42
调节SPIDELAY中的C2TDELAY和SIP时钟,是可以调节频率的
作者: xiaop5140    时间: 2016-7-12 23:42
Lewis,
       首先谢谢你耐心的回复这个问题。由于第一次使用SPI接口+ADC,我看网上很多说到采用SPI
连接AD的时序很简单,但是我发现很难找到如何使用SPI+AD的实例。倒是有很多采用MCBSP
或者McASP连接ADC的实例的讲解。
       但是对我而言,感觉SPI+ADC7663问题还是蛮多的。经过几天的挣扎,使用GPIO造出了一个接CNVST
的48KHz的转化时钟。但是想了想,采用定时器+GPIO输出的时钟加到AD上,再使用如下连接方式能获得
固定采样频率的数据吗?

SPI_SOMI     <---------      ADC_SDO
SPI_CLK         --------->     ADC_CLK
SPI_CS0         --------->     悬空
Timer_GPIO  ---------->    CNVST

       我想知道这里采用定时器做出这样一个时钟是否可行。现在停留在这样的阶段,也没有觉得可行的方案。
导致编写程序毫无头绪,希望您能抽时间看看。或者说采用定时器触发EDMA3区读取SPI的数据获得
固定采样频率?
        希望能获得比较详细的解答,谢谢~~

---------------------
xiaop





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4