5,ADC的SPI实战篇——ADS528X_SPI配置

注:学习、交流就在博主的个人weixin公众号 “FPGA动力联盟” 留言或直接+博主weixin “fpga_start” 私信~

 前几篇咱们分别以ADI公司和TI公司的高速ADC为实例(AD9429、AD9639、ADS52J90),向大家演示FPGA是如何通过SPI协议向该ADC读写寄存器配置数据的,所述的方法都是通用型的SPI读写操作,适用于任何FPGA与ADC的SPI配置。

本篇咱们再介绍一种更简单的SPI写操作方式。大家可能已经发现,ADI和TI的某些高速ADC只有SPI写的功能,也就是说只能往ADC里配置寄存器参数,而不能把参数再读出来。这样的话,FPGA设计SPI代码时就没必要考虑读寄存器参数这个功能了,而如果只是往ADC里写配置数据,那么就有更为简单的实现方式,理解起来也非常容易。

比如TI公司的ADS5281和ADS5282这两款芯片,就是8通道、50MSPS/65MSPS、12bit采样精度的高速串行ADC,使用的非常广泛,而其只有写寄存器的功能,而没有读寄存器的功能。如下图所示为ADS5282的功能框图,且配置接口包含4个信号:低电平有效的reset、SPI的Cs、SPI的SCLK以及SPI的SDATA,其中SDATA只作为配置数据输入接口,相当于sdin。

5,ADC的SPI实战篇——ADS528X_SPI配置_第1张图片

本篇实例操作方式采用的是virtex5系列的FPGA,操作软件为ISE14.7。如下图所示为本人设计过的基于该系列ADC的多通道数据采集板卡:

TI的该款ADC的SPI写配置时序图如下所示:

5,ADC的SPI实战篇——ADS528X_SPI配置_第2张图片

简单来说,就是在在CS_n低电平期间,SCLK上升沿时,SDATA写入8bit的地址(A7-A0)和16bit配置数据(D15-D0),共24个SCLK周期完成写寄存器操作,另外该芯片无读寄存器功能。

本例程以3个寄存器的写操作为例,介绍一种简单的SPI写配置方式,如下图所示为定义的3个24bit寄存器参数,高8位是地址,低16位是数据:

如下图所示为写操作的逻辑,状态0初始化,状态1不断发送24bit寄存器参数,状态2为配置完一个寄存器参数,等待5个时钟周期,再进行下一个寄存器参数的配置,这里的操作只显示了第一个寄存器配置,其余两个与这里是完全一样的。这种写操作方式和前面多篇介绍的写操作也是类似,大家可以相互对比一下~

5,ADC的SPI实战篇——ADS528X_SPI配置_第3张图片

下图所示为写C_AcfgReg1=24'h14_00_ff 的实际时序:

图片

 下图所示为写C_AcfgReg2= 24'h25_00_00的实际时序:

图片

下图所示为写C_AcfgReg3= 24'h2A_00_00的实际时序:

图片

本篇作为附加篇,主要是想告诉大家,咱们很多时候不需要读配置寄存器的数据,只需配置好ADC让其正常工作就可以了。

你可能感兴趣的:(FPGA配置ADC,fpga,adc,ads5281,ads5282,3线SPI)