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

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

3天内不再提示

ADC的4线SPI配置时序介绍与分析

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

本篇将以德州仪器(TI)的高速ADC芯片ads52j90为例,进行ADC的4线SPI配置时序介绍与分析。

从ads52j90的数据手册我们不难发现,其SPI控制模块主要包含4根信号线SEN,SCLK,SDIN以及SDOUT。TI公司对其产品SPI配置信号的命名方式与通用的SPI信号命名方式不一样,但实际上SENSDINSDOUT分别对应CSBSDISDO。

SEN:SPI读写的使能信号;

SDIN:FPGA写入ADC的配置数据(寄存器地址和对应地址的值);

SDOUT:ADC对应地址输出的配置寄存器数据;

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

首先介绍该ADC的SPI的写时序,datasheet给出的时序图如图1所示:我们首先大致看一下写时序图,能够了解到对于SDIN来说,需要先写入A7~A0的8bit的地址,接下来写入该地址下的16bit的寄存器数值D15~D0,也就是说每进行一次写操作需要不间断的写入24bit的数据。对于SEN来说,在进行写操作时,其一直保持低电平,写之前和写完后都保持高电平。对于SCLK来说,其上升沿每次采集每1bit SDIN数据的中心位置,共需要采集24次,才能完成这24bit SDIN数据的写入。

图1:SPI写时序图

上面三点就是我们初步看这个时序图所得到的结论。对于该ADC,按照这种方式进行写操作就不会有问题。实际上所有ADC的SPI写操作都有类似于上面介绍的共同准则,这里归纳如下:

1,无论SPI进行读还是写操作,SEN必须拉低,否则SPI不工作(既不读也不写),读、写完成之后SEN必须拉高;

2,SDIN的数据每次在SCLK的上升沿写入SPI;

3,SDIN的数据组成一定是先写入配置寄存器地址,再连续写入配置寄存器数值;

图2:SPI时序要求

另外,我们看到时序图上有许多时间参数,我们在写代码时不仅要遵守以上的共同准则,还要满足这些参数的时序关系,并保留一定的时间量。datasheet都提供了这些参数的大小,如图2所示。比如tSCLK的最小值是50ns,意味着SPI的时钟最高20MHz。tSEN_SU的最小值为8ns,就表示SEN下降沿至少提前第一个SCLK的上升沿时间8ns。tDSU则表示SDIN的数据必须至少提前SCLK的上升沿5ns准备好,等等。只要遵守了相关的SPI准则以及datasheet里的SPI时序参数,SPI的写操作就不会有问题了。

现在我们介绍该ADC的SPI读时序,如图3所示。读操作的主要目的是监测ADC内部寄存器状态,从而判断ADC的配置状态是否符合用户的需求。从图上我们可以看到,SPI的读操作可以分解为两个部分:第一个部分是先写入A7~A0 8bit的寄存器地址到SDIN,然后SDOUT输出对应地址的16bit的寄存器数值。

这里重点强调一下:理论上来说,在上升沿锁存写入的地址最后1bit后,在接下来的每次SCLK下降沿,SDOUT输出1bit寄存器值,直到16bit寄存器数值完全输出。但实际上每次SCLK下降沿输出的数据只有经过tOUT_DV(12ns ~28ns)后才稳定,后端FPGA才能正确接收。从图上我们不难发现,FPGA在SCLK的上升沿附近获取SDOUT的数据是非常合适的,在这个位置获取的数据最稳定。

图3:SPI读时序图

4线SPI的读写时序分析就到这里了,再次强调几个关键点:

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

关键点2:SDIN的数据每次必须在SCLK的上升沿写入SPI。对应的数据格式一定是寄存器地址+要写入的寄存器数值。

关键点3:SOUT的数据总是在SCLK的下降沿输出,因此选择FPGA在SCLK的上升沿获取SDOUT数据最稳定。

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

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

    关注

    455

    文章

    50732

    浏览量

    423199
  • adc
    adc
    +关注

    关注

    98

    文章

    6496

    浏览量

    544482
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1706

    浏览量

    91516

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

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

收藏 人收藏

    评论

    相关推荐

    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

    请问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
    发表于 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>

    DDR4时序参数介绍

    DDR4(Double Data Rate 4时序参数是描述DDR4内存模块在执行读写操作时所需时间的一组关键参数,它们直接影响到内存的性能和稳定性。以下是对DDR
    的头像 发表于 09-04 14:18 2295次阅读

    FPGA 高级设计:时序分析和收敛

    今天给大侠带来FPGA 高级设计:时序分析和收敛,话不多说,上货。 这里超链接一篇之前的STA的文章,仅供各位大侠参考。 FPGA STA(静态时序分析) 什么是静态
    发表于 06-17 17:07

    IIS3DWB 4线SPI中的CS不进MCU的IO口,SPI_MISO没信号是什么原因?

    各位大神好:MEMS加速度芯片IIS3DWB使用中遇到了问题,烦请各位大神赐教,就是4线SPI中的CS不进MCU的IO口,直接接地,SPI_SCK有输出,
    发表于 05-27 07:53

    STM32F4 Cube配置ADC时选择转换触发通道的选项中为什么没有EXTI线11的选项?

    STM32F4 Cube 配置ADC时选择转换触发通道的选项中为什么没有EXTI 线 11的选项,而在库中有宏定义”ADC_EXTERNAL
    发表于 05-13 07:01

    FPGA设计中SPI的参数化结构设计方法

    为了避免每次SPI驱动重写,直接参数化,尽量一劳永逸。SPI master有啥用呢,你发现各种外围芯片的配置一般都是通过SPI配置的,只不过
    发表于 04-02 10:01 836次阅读
    FPGA设计中<b class='flag-5'>SPI</b>的参数化结构设计方法

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

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

    STM32F030F4使用HAL_SPI_Transmit发送函数,执行到数据写入DR时就进硬件错误中断怎么解决?

    大家好,我最近用STM32F030F4SPI驱动一块3.5寸LCD,是三线的,LCD要求时序如下 于是我配置
    发表于 03-28 07:11