0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ADC的3线SPI配置时序

FPGA之家 来源:FPGA之家 2020-09-07 17:12 次阅读

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

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

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

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

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

如下图1所示为该ADC的SPI读、写配置时序图。其中CSB和SCLK的操作和上篇介绍的4线SPI配置相同,图上的时序参数在其datasheet上也有明确的说明,这里就不介绍了。

3线SPI与4线SPI配置的主要不同之处在传输的数据格式以及I/O转换上。其读写数据格式由控制命令+地址+数据组成,而上篇提到的4线配置只有地址+数据。

图1:SPI读、写时序图

其中R/~W为高电平时,表示读操作,低电平表示写操作。W1,W0表示要读写的数据字节数,一般都设为0,代表每次读写一个寄存器地址的数据。A12~A0表示13bit的寄存器地址。D7~D0表示要读写的8bit寄存器数据。

因此我们在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的读写时序分析就介绍到这里了,同样强调几个关键点:

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    98

    文章

    6496

    浏览量

    544483
  • 控制模块
    +关注

    关注

    2

    文章

    130

    浏览量

    18852
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1706

    浏览量

    91516

原文标题:FPGA通过SPI对ADC配置简介(三)---3线SPI配置时序分析

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用STM32F103的SPI3与ADS1248通讯,读取的ADC值波动很大,为什么?

    使用STM32F103的SPI3与ADS1248通讯,可以下发、读取寄存器的值。 但是连接上四线制温度传感器后,采用Burnout Current source检测温度传感器的是否连接,读取ADC
    发表于 12-23 07:31

    KeyStone架构串行外设接口(SPI)手册

    )、MOSI(主设备输出从设备输入线)、MISO(主设备输入从设备输出线)和CS/SS(片选线)。SPI协议支持主从模式,其中主设备生成时钟信号并控制数据传输的时序,而从设备响应主设备的请求。这种协议广泛应用于嵌入式系统中,因为
    发表于 12-16 10:33 0次下载

    ADS8568使用SPI通信无法正常访问配置寄存器怎么解决?

    0x000003FF不符。 在代码中读取的时序为: spi.write([0xC0, 0x00, 0x3F, 0xFF]) data = spi.read(4) 请帮忙看下读取的
    发表于 12-03 07:24

    ADS8866按照TI的3线MODE时序读数,读出的数据少了3位,为什么?

    ADS8866按照TI的3线MODE时序读数,读出的数据少了3位,附件是波形图
    发表于 11-28 07:39

    请问ADS8671读写时序是怎么样的?

    ;_00000000_00000000,然后再发送16bit的sclk来读取寄存器数据,但是读取到的数据是adc的转换数据,并且写入也没成功,看过spi时序是对的,想请问这个期间的读写时序
    发表于 11-21 08:23

    ADC3663的SPI配置管脚连接至FPGA时遇到IO电平不匹配怎么解决?

    ADC3663的SPI配置管脚连接至FPGA时遇到IO电平不匹配问题。FPGA的IO是2.5V CMOS电平,ADC3663是1.8V CMOS电平,但是3663的
    发表于 11-14 08:08

    ADS127L11配置ADC使用外部时钟以及FILTER[4:0]都不成功,为什么?

    配置ADC使用外部时钟以及FILTER[4:0]都不成功,spi时序都是正常的,使用的是4线spi
    发表于 11-13 08:03

    ADS127L11使用4线spi不管怎么配置寄存器,示波器看到ADC的drdy脉冲周期始终是400K,怎么回事?

    我使用4线spi不管怎么配置寄存器,示波器看到ADC的drdy脉冲周期始终是400K,不知道怎么回事?我检查时序也都是符合要求的正常操作。
    发表于 11-13 06:36

    TPS65910x时序配置

    电子发烧友网站提供《TPS65910x时序配置.pdf》资料免费下载
    发表于 10-25 09:57 0次下载
    TPS65910x<b class='flag-5'>时序</b><b class='flag-5'>配置</b>

    瀚海微SD NAND之SD 协议(42)SPI总线时序

    -卡已准备好 下面的时序图描述了基本的命令响应(无数据)SPI事务。 主机命令到卡响应卡忙 下面的时序图描述了R1b响应的命令响应事务(例如SET_WRITE_PROT和ERASE)。 当卡信号繁忙时,主机可以在任何时候取消选择
    的头像 发表于 10-21 10:19 261次阅读
    瀚海微SD NAND之SD 协议(42)<b class='flag-5'>SPI</b>总线<b class='flag-5'>时序</b>

    请问esp32-s3支持3线spi吗?

    esp32-s3支持3线spi吗?有的话,可以提供相关的3线
    发表于 06-19 08:12

    esp32-s3 spi初始化如何配置SPI_DEVICE_3WIRE?

    再来求助一下,spi初始化配置中有SPI_DEVICE_3WIRE,是否说明支持3线spi,支持
    发表于 06-19 06:23

    请问esp32-s3如何进行3线spi通信?

    想通过esp32-s3驱动3线spi的屏,但是一直初始化不成功。所以来求助一下esp32的3线
    发表于 06-14 08:00

    STM32H7的Octo-SPI或者Quad-SPI能否支持读取ADC的数据?

    ADC使用的AD7380.2通道4M的同步ADCSPI接口需要使用2个数据接收引脚 和一个数据输出引脚。等于是三根数据线。 普通的SPI
    发表于 04-01 06:10

    STM32F407 3线SPI如何配置

    现在需要3线SPI进行通信,也就是从机的MOSI和MISO为一根线。 我在参考手册看到,STM32F407可以满足双向数据线 请问ST官方
    发表于 03-26 07:16