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的时序参数,并在代码实现时要留有适当的时序裕量。

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

    关注

    463

    文章

    54384

    浏览量

    469037
  • adc
    adc
    +关注

    关注

    100

    文章

    7944

    浏览量

    556860
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1898

    浏览量

    102091

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SGM4563:SPI总线或UART接口的4位电平转换器

    SGM4563:SPI总线或UART接口的4位电平转换器 在电子设计中,电平转换是一个常见且关键的环节。今天我们要介绍的SGM4563,就是一款专门为SPI总线或UART接口设计的
    的头像 发表于 03-16 14:45 139次阅读

    SGM90509:8通道12位可配置ADC/DAC芯片的深度解析

    深入研究的芯片,它由SGMICRO推出,具备8通道、12位的可配置ADC/DAC功能,还集成了片上参考和SPI接口,适用于多种应用场景。 文件下载: SGM90509.pdf 一、芯片概述
    的头像 发表于 03-12 10:50 283次阅读

    SPI4个引脚介绍

    SPI 一般通过 4 个引脚与外部设备相连: •MOSI 主机输出 / 从机输入,用于主机模式下的数据发送和从机模式下的数据接收; •MISO 主机输入 / 从机输出,用于主机模式下的数据接收和从机
    发表于 12-15 06:54

    FPGA实现基于SPI协议的Flash驱动控制芯片擦除

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 2859次阅读
    FPGA实现基于<b class='flag-5'>SPI</b>协议的Flash驱动控制芯片擦除

    SPI的缺点介绍

    SPI 变得更容易受到信号衰减、电磁干扰和时序问题等问题的影响。对于长距离通信,通常首选速度较慢但更强大的协议,例如 RS-485 或 CAN,因为它们是专门为克服这些挑战而设计的。 功耗: 在电源
    发表于 11-26 06:41

    GPIOB模拟spi的方法及lcd屏幕的接入

    越高,数据传输速率越快。由于spi接口较为简单,同时《RISC-V架构与嵌入式开发快速入门》书中也详细介绍过,在此原理部分介绍从略。 二、spi接口及lcd主要代码实现 lcd所需
    发表于 10-30 07:59

    vivado时序分析相关经验

    vivado综合后时序为例主要是有两种原因导致: 1,太多的逻辑级 2,太高的扇出 分析时序违例的具体位置以及原因可以使用一些tcl命令方便快速得到路径信息
    发表于 10-30 06:58

    DDR200T中DDR的使用与时序介绍

    mask Enabled Input clock period 100MHz Chip Select pin Enabled DDR读时序介绍 DDR3读时序如下图,由于传递地址到取出数据
    发表于 10-28 07:24

    数字电压表设计教程之使用FPGA实现SPI协议通讯

    LTC2308通过一个标准4线SPI数字接口进行通信。LTC2308模数转换芯片有8个ADC通道和12位的分辨率,输入信号时钟频率范围不超过500KHz,按照Nyquist采样定理则建
    的头像 发表于 10-07 09:22 1838次阅读
    数字电压表设计教程之使用FPGA实现<b class='flag-5'>SPI</b>协议通讯

    请问如何让SPI额外发出一个时钟?

    现将2个ADC芯片进行菊花链式连接,手册上给的时序图中,两个芯片读数中间需要额外插入一个时钟时序,要怎样控制SPI输出单个时钟。还是说只能去用IO口模拟
    发表于 09-24 08:09

    【RA-Eco-RA6M4开发板评测】基于 RA6M4 MCU的工业生产线安全监测系统项目介绍

    /serial_port_plotter),实时显示ADC采样数据与超声波测距结果,辅助性能分析。 四、软硬件准备 设备名称 用途 适配模块 RA6M4 开发板 核心控制单元 全模块 光敏传感器(BH1750
    发表于 09-14 17:58

    基于APM32F411 DMA_ADC Handler模式分析及解决

    最近在编写DMA_ADC例程的过程中出现了一个中断配置的问题,在ADC采集过程中,结合手册进行ADC连续转换模式配置采集,手册上给出需要进行
    的头像 发表于 06-24 14:30 1210次阅读
    基于APM32F411 DMA_<b class='flag-5'>ADC</b> Handler模式<b class='flag-5'>分析</b>及解决

    如何让SPI额外发出一个时钟?

    现将2个ADC芯片进行菊花链式连接,手册上给的时序图中,两个芯片读数中间需要额外插入一个时钟时序,要怎样控制SPI输出单个时钟。还是说只能去用IO口模拟
    发表于 06-13 07:30

    AD7606C-18的硬件串行模式,如何使用三线SPI

    问题,八个通通道输入均连在一起,结果如下图所示。 但是当我使用三线SPI模式读取数据时,数据就错乱了,即使SCLK频率降低到5MHz,数据也是完全错乱的。我可以确定三线模式下,SCLK,BUSY之间的
    发表于 04-28 07:49

    FPGA时序约束之设置时钟组

    Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使用set_clock_gro
    的头像 发表于 04-23 09:50 1619次阅读
    FPGA<b class='flag-5'>时序</b>约束之设置时钟组