我使用STM32进行ADS1274的数据读取
ADS1274的CLK由STM32的通用定时器提供,我使用的频率是72/128Mhz。ADS1274的各个电压均测正常。
CLKDIV接高电平,Format 为001, mode 为01 即high,sync设置为高电平,DIN接地,DOUT1接STM32的MISO。
当我将SCLK接到CLK上时,DOUT端能看到数据输出,DRDY的图形和图73是类似的。
但我将SCLK接到STM32 的SPI 功能的SCLK引脚后,想使用STM32的SPI 来读取数据时,SCLK一直为低电平,DRDY的图形为图76, DOUT无输出,
为什么会出现这种现象呢??
是SPI的设置问题吗?
SPI应该如何设置,我目前的SPI设置为全双工模式,低电平极性,且下降沿传输,频率设置为72/256M,即CLK的1/2
Carter Liu:
你好,看起来像是SPI功能没有被使能
Guoliang Li:
STM32 SPI模式设置时没有设置MASTER模式。SCLK要从STM32出来,SPI必须设置成MASTER模式
hongzhi gao:
回复 Carter Liu:
确实是SPI使能函数忘记在主函数中使用了。
目前已经能看到SPI的SCLK了,并且当SCLK出现的时候,DRDY恢复到图73的状态。
但目前出现一个新问题,我采用的是ads1274 datasheet上的连接模式,输入信号先通过THS4521然后在连接ADS1274,各个电阻电容都采用的是datasheet上的推荐值,不论我怎么改变输入,我测得的结果总是3FFFFF和BFFFFF。经过换算也就是+1.25V和-1.25V
Carter Liu:
回复 hongzhi gao:
你好,能不能把你的电路原理图上传一下,以便于更好地分析呢
hongzhi gao:
回复 Carter Liu:
原理图我是严格按照ads1274的datasheet做的,经过多个同事检查,确实是一样的。
此外,我将DRDY和SCLK的图形放上,不知道是不是时序的问题?
hongzhi gao:
回复 hongzhi gao:
能否解释一下图76及其上面一段文字的意义呢,我这样使用是正确的吗?
Carter Liu:
回复 hongzhi gao:
你的SPI使用的哪种数据输出格式(Data Output Format)?我看你的DRDY波形有点奇怪
hongzhi gao:
回复 Carter Liu:
我使用的Format 是001,即SPI TDM Fixed,mode是high speed,通道1和2使用,3和4 power down
ADS1274的CLK由STM32产生,频率为0.5625MHz,sclk连接至STM32 的SPI接口的sclk。STM32的SPI配置为每次8位。
当STM32没有发送sclk时钟时,sclk一直为低电平,此时DRDY就是图76的情况,关于这种情况您也对该段文字进行了说明,但这种情况下应该如何读出数据,在什么时机读出?
目前我的做法是:判断DRDY的上升沿,然后STM32发送数据,此时sclk上有时钟产生(同时也能在STM32的MISO端接收数据),在sclk时钟的第一个下降沿DRDY恢复到高电平,如我之前发的示波器截图。
当我使用SPI读取了6次数据后,也就是通道1和2的各24位数据,SPI 的sclk又恢复到了低电平,此时的DRDY还在高电平阶段,当DRDY恢复到低电平时,又开始重复图76的样子。
现在我的操作是否是正确的?
另外,如果将ADS1274的sclk直接接至CLK,则sclk一直有时钟,出现图73的情况,当DRDY为低时,表明转换完成,可以读取数据, 但我的疑问是:sclk一直都有,那只要DRDY变低,ADS1274就开始输出数据,我该如何读取ADS1274的数据?是使用SPI么?
hongzhi gao:
回复 hongzhi gao:
能否告知其它联系方式呢?这样发帖太慢,解决问题太慢了。