首页 > 其他分享 >FPGA配置高速ADC篇(3)_3线SPI配置时序分析

FPGA配置高速ADC篇(3)_3线SPI配置时序分析

时间:2024-08-20 22:52:10浏览次数:8  
标签:FPGA SDIO SCLK 读写 时序 SPI ADC

*******私信博主请加V:FPGA_GO*******

上篇(第2篇)博主小飞以德州仪器(TI)的高速ADC芯片——ads52j90为例,介绍完了 4线SPI配置时序。本篇(第3篇)咱们将以Analog Device(ADI)的多通道高速ADC芯片AD9249为例,介绍3线SPI读写配置时序。另外,大家如果想详细了解ADI公司的关于SPI配置的所有内容,强烈推荐大家在其官网阅读专门介绍其SPI内容的“AN-877”手册。

AD9249的SPI控制模块包含4根信号线,即CSB1、CSB2、SDIO以及SCLK。但CSB1、CSB2可以一起由CSB来控制,实际上就是3线SPI。由于3线SPI数据的读、写操作在同一根信号线SDIO上实现,因此其配置方式与4线的配置稍微有些不一样。下面我们将详细介绍读写操作:

1.CSB:SPI控制读写使能信号;

2.SDIO:SPI的数据、地址读写端口;

3.SCLK:FPGA提供给ADC的SPI接口时钟;

如下图1所示为该ADC的SPI读、写配置时序图。其中CSB和SCLK的操作和上篇介绍的4线SPI配置相同,图上的时序参数在其datasheet上也有明确的说明,这里就不介绍了。3线SPI与4线SPI配置的主要不同之处在传输的数据格式以及I/O转换上。3线的读写数据格式由控制命令+地址+数据组成,而上篇提到的4线配置只有地址+数据。其中R/~W为高电平时,表示读操作,低电平表示写操作。W1,W0表示要读写的数据字节数,一般都设为0,代表每次读写一个寄存器地址的数据。A12~A0表示13bit的寄存器地址。D7~D0表示要读写的8bit寄存器数据。

图1:SPI读、写时序图

因此我们在SPI写操作时,只需写入 1bit 1 + 2bit 0 +13bit地址+ 8bit数据 即可。其配置的方法和上篇的4线SPI写操作相同。但当我们在执行SPI读操作时,就需要注意了。首先需写入1bit 0 + 2bit 0 +13bit 地址,当最后1bit的地址A0在SCLK的上升沿写入SDIO后,SDIO会由输入口变为输出口,然后在接下来的8个SCLK下降沿,SDIO会输出寄存器的8bit数据。因此,在ADC的SDIO由输入变为输出口时,FPGA端的SDIO必须同步由输出口变为输入口,并在SCLK上升沿接收这8bit数据最稳定,FPGA端口的这种I/O转换可以通过其内置的三态门来实现。

如图2所示为SDIO由输入口变为输出口的时序控制图,tEN_SDIO为转换时间,其最小时间为10ns,参考零点为SCLK下降沿。

图2:SDIO输入转换为输出的时序图

如图3所示为SDIO由输出口变为输入口的时序控制图,tDIS_SDIO为转换时间,其最小时间也为10ns,参考零点为SCLK上升沿。

图3:SDIO输出转换为输入的时序图

3线SPI的读写时序分析就介绍到这里了,同样强调几个关键点:

关键点1CSB在读写操作时,必须拉低。读写完成之后,必须拉高。

关键点2SDIO作为输入口时,数据每次必须在SCLK的上升沿写入SPI。

关键点3SDIO作为输出口时,寄存器数据每次在SCLK的下降沿输出SPI,FPGA端在SCLK的上升沿处捕获数据最稳定。

关键点4一定要满足datasheet给出的SPI的时序参数,并在代码实现时要留有适当的时序裕量。

关键点5注意FPGA端的SDIO口的三态控制逻辑,以便正确读写ADC寄存器。

标签:FPGA,SDIO,SCLK,读写,时序,SPI,ADC
From: https://blog.csdn.net/FPGA_LOVE/article/details/141282218

相关文章

  • 【SPIE 出版,最后5天!】第五届信号处理与计算机科学国际学术会议(SPCS 2024,8月24线上)
    第五届信号处理与计算机科学国际学术会议(SPCS2024)将于2024年8月23-25日在中国哈尔滨举行。会议主要围绕信号处理与计算机科学等研究领域展开讨论。会议旨在为从事信号处理与计算机科学研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解......
  • 配置stm32cubemx采集stm32H743IIT6,通过DMA实现多通道和多模块ADC的采集,亲测有效!
     之前写到stm32cubemx通过阻塞实现单通道和多通道的ADC的采集。本文分享通过DMA实现单模块多通道和多模块多通道的ADC采集。stm32cubemx的版本6.10.0。一、DMA采集多通道ADC数据阻塞采集是每次采集adc数据,cpu死等,直到采集完或者在设定时间超时没能采集,返回到cpu。DMA采集......
  • SPI协议详解
    SPI协议详解摘要SPI(SerialPeripheralInterface)是一种同步串行通信协议,用于微控制器(MCU)和它们的外围设备(外设IC)之间或两个微控制器(MCU)之间的通信。SPI通信是全双工的,意味着它可以同时发送和接收数据。,以其全双工、高速率和简单硬件结构优于UART。SPI通信通常需要四根线:SCLK(时......
  • 万兆以太网协议栈的FPGA实现(三):万兆网CRC
    参考:基于FPGA的千兆以太网的实现(3)_以太网crc计算-CSDN博客 CRC802.11来自将8位数据同时输入,再输出32位CRC数值;其能成功实现的原因就是因为并行化。(下路仅是部分的计算步骤)结合千兆网CRC的计算思想,我们只需要把第一轮单字节CRC的结果作为第二轮CRC的开始,就可以完成任务。......
  • 网络监控加速设备:搭载CPU(海光3350) +FPGA(复旦微V7 690T )高性能网安设备
        网络加速监控设备通常是指能够监测和优化网络数据传输速度的硬件或软件系统。尤其是在处理大量数据流、数据中心、云计算等领域,对高速数据传输、性能的稳定性及较强的扩展性有特别高的要求。下面这款设备就应运而生。简介    网络监控加速设备是集协议检测......
  • ThreadCore学习
    1.线程中的异常处理一般线程里面不允许出现异常,需要自己处理好,最好在线程里加个trycatch,#region异常处理//线程里面的异常是被吞掉了,因为已经脱离了try的范围了,WaitAll抓到多线程里面全部的异常//线程里面不允许出现......
  • CORDIC算法解释及FPGA实现(圆坐标系)
    CORDIC算法原理阐述CORDIC(CoordinateRotationDigitalComputer)算法,即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算。伪旋转在笛卡尔坐标平面(下方左图)由\(({x_1},{y_1})\)旋转θ角度至\(({x_2},{y_2})\)得到:\(({\hat......
  • UART\SPI\I2C的区别与联系
    UART全双工(两根线tx,rx),无时钟线,只能两个设备SPI全双工(两根线tx、rx+时钟线+片选),一主多从,扩展了接入的设备,同步传输,速度更快I2C半双工(一根数据线+时钟线),多主一从或者多主多从UART(UniversalAsynchronousReceiver/Transmitter)全双工:意味着数据可以同时在两个方向上......
  • fpga图像处理实战-对数变换
    对数变换        图像对数变换(LogarithmicTransformation)是一种非线性灰度变换方法,常用于增强图像中的细节,特别是在图像中存在较大的亮度范围时。对数变换通过压缩亮度范围,使得较暗区域的细节更加明显,同时抑制过亮区域的影响。它在图像处理中的应用非常广泛,特别是在......
  • fpga图像处理实战-图像缓存(FIFO)
    FPGA实现`timescale1ns/1ps////Company://Engineer:////CreateDate:2024/08/1813:47:22//DesignName://ModuleName:line_buffer//ProjectName://TargetDevices://ToolVersions://Description:////Dependencies:////Revision......