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

    文章

    7978

    浏览量

    557422
  • 控制模块
    +关注

    关注

    2

    文章

    149

    浏览量

    19903
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1907

    浏览量

    102476

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    德思特干货 | 解锁ADC真实性能:斜坡测试(Ramp Test)AWG配置与结果查看指南

    导语在上一期内容中,我们从上下位机连接、工程新建到DIO模块时序设置,详解了斜坡测试软件配置实战,为捕捉ADC静态性能奠定基础。本期,德思特将带您继续深入学习斜坡测试(RampTest)的软件
    的头像 发表于 05-09 14:00 148次阅读
    德思特干货 | 解锁<b class='flag-5'>ADC</b>真实性能:斜坡测试(Ramp Test)AWG<b class='flag-5'>配置</b>与结果查看指南

    德思特干货 | 解锁ADC真实性能:斜坡测试(Ramp Test)AWG配置与结果查看指南

    ​导语在上一期内容中,我们从上下位机连接、工程新建到DIO模块时序设置,详解了斜坡测试软件配置实战,为捕捉ADC静态性能奠定基础。本期,德思特将带您继续深入学习斜坡测试(RampTest)的软件
    的头像 发表于 05-09 11:37 112次阅读
    德思特干货 | 解锁<b class='flag-5'>ADC</b>真实性能:斜坡测试(Ramp Test)AWG<b class='flag-5'>配置</b>与结果查看指南

    ADE7912/ADE7913:带SPI接口的3通道隔离式Σ - Δ型ADC深度解析

    ADE7912/ADE7913:带SPI接口的3通道隔离式Σ - Δ型ADC深度解析 在电子设计领域,高精度、可靠的模数转换器(ADC)是众多应用的核心组件。今天,我们就来深入探讨一款
    的头像 发表于 03-30 15:55 311次阅读

    详解电源时序配置方法

    随着系统应用的发展,电源应用的需求越来越多,同时在一个系统中,电源Rail要求也越来越多,而且不同的Rail需要按照一定的时序上电或者下电。
    的头像 发表于 03-25 07:44 1.2w次阅读
    详解电源<b class='flag-5'>时序</b><b class='flag-5'>配置</b>方法

    DS1343/DS1344低电流SPI/3线RTC:高效时间管理的理想之选

    DS1343/DS1344低电流SPI/3线RTC:高效时间管理的理想之选 在电子设备的设计中,实时时钟(RTC)是至关重要的组件,它为系统提供精确的时间信息,确保设备的正常运行和数据记录的准确性
    的头像 发表于 03-24 09:50 217次阅读

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

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

    RK 平台 SPI 开发完全指南(驱动 + 配置 + 测试 + 优化)

    Linux 平台 SPI 驱动已形成完善的开发体系,支持 Master/Slave 双模式、多速率适配及灵活配置。本文基于 Rockchip 官方开发指南,从功能特性、驱动配置、测试验证到优化方案
    的头像 发表于 01-30 22:35 1451次阅读
    RK 平台 <b class='flag-5'>SPI</b> 开发完全指南(驱动 + <b class='flag-5'>配置</b> + 测试 + 优化)

    【瑞萨FPB-RA6E2试用】【瑞萨RA × Zephyr开发板评测】ADC、DAC、SPI、I2C 测试

    1. 前言 在上一篇评测中,我们完成了开发环境搭建和基础 GPIO 控制。作为一款高性能 MCU,RA6E2 的通信接口(SPI/I2C)和模拟外设(ADC/DAC)才是其核心竞争力的体现。 本篇
    发表于 01-12 00:01

    实战复盘:RK3588 SPI+PCIe3x4方案启动修复,从节点配置到驱动适配全解析

          在 RK3588 嵌入式项目中, “ 接口配置不匹配 ” 是高频踩坑点 —— 近期 基于 linux6.1 内核 调试 SPI 闪存 +PCIe3x4 外设 方案时,就遇到了 “eMMC
    的头像 发表于 01-08 10:24 968次阅读
    实战复盘:RK3588 <b class='flag-5'>SPI+PCIe3</b>x4方案启动修复,从节点<b class='flag-5'>配置</b>到驱动适配全解析

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

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

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

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

    怎么用LL命令读取SPI

    ;hspi1, mrx_data, 3, HAL_MAX_DELAY);命令读取ADC结果3字节,即时优化后也需要1.95us,远远不能匹配ADC的速度。我想也只有LL命令才会快了,测
    发表于 09-09 08:17

    无法配置 ADC1 来触发 DMA 传输,怎么解决?

    SCU->DMAP_ADC.bit.ADC1_SQ1 = 1u;并配置和启用DMA。 考虑通过 SQ1 事件触发 DMA 通道 3,我认为这应该是 SQ1 转换结束事件。 DMA 操作未
    发表于 07-21 06:57

    AS32系列MCU调试教程 SPI调试的常见问题解析

    简介 AS32X601内置的I2C模块提供了支持全双工的同步串行通信。该接口可配置为主机或从机模式,配置为主机模式时,它可为外部从器件提供通信时钟(SCK),6个SPI每个都支持8个从机。 S
    的头像 发表于 06-27 18:10 966次阅读
    AS32系列MCU调试教程 <b class='flag-5'>SPI</b>调试的常见问题解析

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

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