TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS131M04: 使用STM32的SPI读取数据时,只有前两次数据是正确的,后续数据似乎全部发生了移位

Part Number:ADS131M04

我使用STM32的SPI对ADS131M04进行读写,SPI速率为10.5MBits/s,ADC的CLKIN频率为1MHZ,为占空比50%的PWM脉冲生成。

每次对ADC进行读取时,会先启动1MHZ CLKIN时钟,然后发出SYNC脉冲重置 ADC,再监控DRDY引脚,如果产生下降沿,关闭时钟,进行SPI读取。

但是我发现,只有刚上电前两次读取的数据是正常(或者接近正常的),到第三次读取时,ADC发出的DOUT数据就发生了明显移位现象,但是该数据仍然可以通过CRC校验。

例如第三次我读到了450f00057ffbffd625ffcc8effd31ef63c00,抛去CRC的8bit补0,450f00057ffbffd625ffcc8effd31ef63c的CRC值是0,满足校验。

PS: 已经确认AINP和AINN引脚的电压无震荡,符合预期,

下图上面的是SPI的10MHZ的SCK,下面是SDO

Amy Luo:

您好,

您是否已验证了寄存器可以正确读写,即寄存器写入后可以正确读出来?如果可以的话,您可以附上寄存器配置吗?也建议读下STATUS 寄存器的值,看是否有报错?

同时您可以附上读取转换结果的DRDY、SYNC、CS、SCLK、DOUT信号时序波形吗?

,

Yichen Zhao:

您好!这个问题我成功解决了

寄存器读写与配置无任何问题,SPI时钟信号与DRDY也没有任何问题,图找不到先不放了,我直接说我找到的原因吧

这是由于我在SPI通信之前,频繁关闭CLKIN时钟造成的。

观察波形会发现后续数据向右LSB发生了移位,考虑是DRDY下降沿时过早关闭了CLKIN时钟,导致FIFO数据未完全移位。

如果我把读取改成,CLKIN时钟始终运行,仅上电时使用SYNC进行时钟同步,每次在DYDY下降沿读取,那么数据就没有任何问题。

,

Amy Luo:

很高兴您的问题得到解决,也非常感谢您的反馈!

赞(0)
未经允许不得转载:TI中文支持网 » ADS131M04: 使用STM32的SPI读取数据时,只有前两次数据是正确的,后续数据似乎全部发生了移位
分享到: 更多 (0)