TI论坛
直播中

kasdlak

9年用户 1312经验值
擅长:光电显示
私信 关注
[问答]

ADS131M06 32k采样时清FIFO时间不够怎么解决?


  • 手册里说第一次读取数据时需要先连读两次来清除fifo,可是算下时间根本来不及呀,每读一组数据需要的速度至少是32K*24 * 8(32kHz采样,24位宽,Response+6个通道+CRC,每位8bit) =6144KHz。
          需要先读2次,再读取数据,这样子算下来,第一次RDRY拉低后需要读3组数据需要的速度至少是6144K*3 = 18432kHz,而芯片的最高时钟才8.192MHz呀,这样子的情况下怎么清FIFO呀???

回帖(2)

夏日余晖

2024-11-25 16:07:34

您好,

32KSPS采样率也就是1s采集32K个sample或数据,采集一个数据的时间是1/32K=31.25us

您应该用SCLK的周期计算,输出1bit数据一个SCLK周期,采集一个sample

先计算一共需要输出多少(Response

+6channel*24bit+CRC)bit的数据,多少bits数据就是多少个SCLK周期,可以算出总需要的时间,如果算出来的时间大于31.25us,那么就是使用更快的SCLK信号,缩短每个bit的时间。


也可以用 SYNC/RESET引脚重新同步转换并清除FIFO,如数据表

8-20。


举报

张红

2024-11-26 09:08:47
在这种情况下,您需要考虑以下几点来解决ADS131M06 32k采样时清FIFO时间不够的问题:

1. 优化读取数据的方式:您可以尝试使用SPI的连续读取模式(CPOL=0, CPHA=0)来减少每次读取数据所需的时间。这样可以在不降低采样率的情况下,提高读取数据的速度。

2. 降低采样率:如果可能的话,您可以尝试降低采样率,以减少每次读取数据所需的时间。这样,您可以在芯片的最高时钟频率下完成FIFO的清空。

3. 增加硬件资源:如果您的系统有足够的硬件资源,您可以考虑使用两个SPI接口来同时读取数据。这样,您可以在一个接口读取数据的同时,另一个接口清空FIFO,从而提高整体的读取速度。

4. 调整FIFO配置:您可以尝试调整FIFO的配置,以减少每次读取数据时需要读取的数据量。例如,您可以将FIFO的深度设置为较小的值,以减少每次读取数据时需要读取的数据量。

5. 使用DMA(直接内存访问):如果您的系统支持DMA,您可以考虑使用DMA来读取数据。这样,您可以在不占用CPU资源的情况下,提高读取数据的速度。

总之,您需要根据您的系统需求和硬件资源来选择合适的解决方案。希望这些建议能帮助您解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分