技术参数里面提到这个adc的速度可以达到800K甚至1MSPS,我们用stm32H743单片机读取,单片机主频能达到400兆,SPI接口能到100兆, 但还是只能达到400ksps的传输速度. 改用DMA来读取, 有好多乱码,不可行. 请问怎样才能读到ADS127L11芯片所宣称的800KSPS的速度?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
技术参数里面提到这个adc的速度可以达到800K甚至1MSPS,我们用stm32H743单片机读取,单片机主频能达到400兆,SPI接口能到100兆, 但还是只能达到400ksps的传输速度. 改用DMA来读取, 有好多乱码,不可行. 请问怎样才能读到ADS127L11芯片所宣称的800KSPS的速度?
,SPI接口能到100兆, 但还是只能达到400ksps的传输速度
在Frame Size为40bits时,800KSPS的数据速率,需要的SPI速率是800K*40bits,即32MHZ,SPI可以到100MHZ这是完全可以的,我不明白您说只能达到400ksps的传输速度具体是什么意思?还是说速率太高,设计的PCB走线不够好影响了信号的传输质量以至于主控端不能正确识别ADC发出的高低电平?
ADS127L11支持连续转换,在连续转换模式下不需要发送命令,主控端检测DRDY信号就可以,设置好转换速率,启动转换后DRDY信号就会以设置的转换速率来指示新的转换数据已完成,主控端在规定的转换周期内将转换结果接收了就可以,所以这里的SPI速率需满足转换周期的要求,以在转换周期内完成转换结果的读取,否则的话就会漏掉转换结果。
DRDY信号就会以设置的转换速率来指示新的转换数据已完成,主控端在规定的转换周期内将转换结果接收了就可以
我们的问题恰恰就是设置了800KSPS的时候,无法在规定的时间内取出数据,因为要等待DRDY,有时间间隙。只有在400ksps的时候,才能把所有数据全部取出。 请问TI公司的大牛,哪位工程师实现了800KSPS数据的全部读取?最好读取到单片机,CPU也可以。教教我们方法,不胜感激。
我们的问题恰恰就是设置了800KSPS的时候,无法在规定的时间内取出数据,因为要等待DRDY,有时间间隙。
您使用的SPI速率大于需要的SPI速率,为什么不能在规定的时间内取出数据?
因为您的SPI速率是100MHZ,而在ADC的速率为800KSPS时需要的SPI速率最大为32MHZ,您使用的SPI速率大于需要的SPI速率肯定要等DRDY,但是这并不影响ADC以设置的800KSPS进行转换数据,主控端需以设置的ADC转换周期来读取转换数据,可以不使用整个转换周期来读取转换数据(即此时的SPI速率较高,一个转换周期还没到就将转换数据读完了,此时就需要等DRDY),但是需在转换周期内读完,否则的话会漏掉DRDY,所以是需要等或者说等待DRDY的触发信号来读取AD转换结果的。
因为您需要的ADC的转换速率是800KSPS,所以使用DMA读取的话,也需要将DMA配置在800KSPS,否则的话读取的速度与AD转换的速度不匹配,读取结果就会不正确。具体怎样将DMA配置在800KSPS,建议您咨询所使用主控端厂家的技术支持。