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
    +关注

    关注

    100

    文章

    7392

    浏览量

    553801
  • 控制模块
    +关注

    关注

    2

    文章

    144

    浏览量

    19653
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99808

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    【CW32模块使用】0.96寸SPI单色屏

    硬件SPI与软件SPI相比,硬件SPI是靠硬件上面的SPI控制器,所有的时钟边缘采样,时钟发生,还有时序控制,都是由硬件完成的。它降低了CP
    的头像 发表于 03-29 17:29 2905次阅读
    【CW32模块使用】0.96寸<b class='flag-5'>SPI</b>单色屏

    ads1148 SPI写寄存器错误的原因?

    在ADS1148的调试过程过,上电读取所有配置寄存器时,读取的数值等于默认值,从示波器分析片选、时钟、数据入、数据出信号均符合时序要求,SPI读正确。然后测试SPI写寄存器,发出的命
    发表于 02-12 08:41

    lmp90098无法使用SPI接口读取数据怎么解决?

    主控IC,SPI接口是IC内部自动产生时序,用(1/128)MHZ的时序频率,这个接口上还带有其他IC,那些IC工作正常。LMP90098采用内部振荡器,留有外部振荡器接入方式,我估计是程序
    发表于 02-12 06:06

    ADS1118 spi通信时序的问题谁来解答一下

    我用ADS1118做4路单端模拟信号的采集,按照DATASHEET 上的SPI时序从SDI引脚输入4BYTE的数据(配置字发送2次),SDO引脚一直保持为高电平。请问这是何种原因?望解答。 请问
    发表于 01-20 08:40

    AN-1267: 使用ADSP-CM408F ADC控制器的电机控制反馈采样时序

    电子发烧友网站提供《AN-1267: 使用ADSP-CM408F ADC控制器的电机控制反馈采样时序.pdf》资料免费下载
    发表于 01-14 14:59 9次下载
    AN-1267: 使用ADSP-CM408F <b class='flag-5'>ADC</b>控制器的电机控制反馈采样<b class='flag-5'>时序</b>

    AN-878: 高速ADC SPI控制软件[中文版]

    电子发烧友网站提供《AN-878: 高速ADC SPI控制软件[中文版].pdf》资料免费下载
    发表于 01-13 14:23 0次下载
    AN-878: 高速<b class='flag-5'>ADC</b> <b class='flag-5'>SPI</b>控制软件[中文版]

    ADC108s022 DIN是在SCLK上升沿向ADC写参数,而DOUT在SCLK的下降沿从ADC中读取转换后的数据?

    是用的是SPI接口的ADC芯片,时序如下 是不是说,DIN是在SCLK上升沿向ADC写参数,而DOUT在SCLK的下降沿从ADC中读取
    发表于 01-09 07:14

    AD7451芯片的3线SPI怎么和stm32进行连接?

    求问AD7451芯片的3线SPI怎么和stm32进行连接
    发表于 01-08 07:10

    DAC7568按数据手册上要求的SPI时序不能配置,内部参考是否也没有输出,为什么?

    按数据手册上要求的SPI时序不能配置,内部参考是否也没有输出,手册上面介绍的操作有没有顺序要求,没有给出来。试了上面所有写操作也没有输出输入您的问题
    发表于 12-31 06:21

    使用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次下载

    AMC1304M25通信接口是SCLK和DOUT两根信号线,将这两根线连接至MCU的SPI_CLK和SPI_DOUT引脚上,是否可以获取ADC转换值吗?

    信号线,通过datasheet不是太了解其使用方法。如果将这两根线连接至MCU的SPI_CLK和SPI_DOUT引脚上,是否可以获取ADC
    发表于 12-13 13:39

    ADC3xxxEVM和ADC3xJxxEVM用户指南

    电子发烧友网站提供《ADC3xxxEVM和ADC3xJxxEVM用户指南.pdf》资料免费下载
    发表于 12-10 15:18 0次下载
    <b class='flag-5'>ADC3</b>xxxEVM和<b class='flag-5'>ADC3</b>xJxxEVM用户指南