Part Number:ADS131A04
目前使用的是异步中断模式,DRDY作为MCU的中断触发源,每次下降沿触发中断采集数据,在128K采样率下,每个DRDY之间的间隔只有7us,每次数据采集之间还需要拉高拉低片选,请问一般是如何处理这种高频中断,或者有什么更好的采集数据的方式?
Howl04:
使用的是DSP6748+ADS131A04,用EDMA+SPI光采集18字节的数据就需要大概6us了,时间太紧张
,
Amy Luo:
您好,
您是SPI总线上挂接了多个设备是吗?总的来说就是您需要使用更高频率的SCLK以加快读取速度。ADS131A04支持的最高SCLK频率:
如果SPI总线上仅ADS131A04,您可以使用连续转换模式,仅检测DRDY然后读取数据就可以了,不需要每次拉低CS信号。
,
Howl04:
1:SPI总线上仅ADS131A04,使用的就是25M SCLK,用EDMA+SPI光采集18字节的数据就需要大概6us了,128K下DRDY的间隔只有7US,不太好做其他的操作了。
2:如何进入连续转换模式?需要对某个寄存器进行配置吗?
,
Amy Luo:
Howl04 说:1:SPI总线上仅ADS131A04,使用的就是25M SCLK,用EDMA+SPI光采集18字节的数据就需要大概6us了,128K下DRDY的间隔只有7US,不太好做其他的操作了。
您还需要做什么其他操作?
您使用CRC了没?如果没有,您可以使用Dynamic Frame,这样四通道输出5个字,即15个字节:
Howl04 说:2:如何进入连续转换模式?需要对某个寄存器进行配置吗?
发送Wakeup 启动AD转换就是连续转换模式,它没有其他的转换模式,不需要对某个寄存器配置。
Amy Luo 说:如果SPI总线上仅ADS131A04,您可以使用连续转换模式,仅检测DRDY然后读取数据就可以了,不需要每次拉低CS信号。
很抱歉,我这里说错了,是需要拉低和拉高CS以开始和结束一帧数据,因为ADS131A04每一帧的字节数是有要求的,所以需要CS信号表示一帧的开始和结束。
在 ADS131A04 产品首页,如下链接,如下截图处有 Example C Code,您可以看下示例代码是怎样实现的:
https://www.ti.com.cn/product/cn/ADS131A04?_ticdt=MTcwMjM1ODY4OXwwMTg4MDMyMWFhZmQwMDAwOGUzNWQ4NDkyMTg4MDUwNmYwMDE4MDY3MDA3ZTh8R0ExLjEuMTc4Nzk3MTIxNS4xNjgzNjgwOTQ3#software-development
,
Howl04:
您好,感谢您的回复
1:目前的代码就是参考您给出的链接
2:目前就是Wakeup启动以后发送18个字节来获取数据
3:我们现在想要存多个数据后,统一进行算法,比如存1M数据,然后再做算法的期间,ADC还要进行数据采集,因为每一帧数据都要进行CS信号的拉高拉低,所以要频繁的进入中断来处理CS信号,和启动EDMA收发数据,所以想问问有没有更好的方式来采集AD数据
4:如果在配置为128K采样率的情况下,每个通道都是128K采样率吗?
,
Amy Luo:
Howl04 说:4:如果在配置为128K采样率的情况下,每个通道都是128K采样率吗?
是的,4通道同步采样。