正文内容均来自于Henzler于2010年发表的《Time-to-DigitalConverters》。最近在学习TDC,新的东西太多了,看了一遍忘得很快,碰巧前两天看到了有关费曼学习法,打算通过写博客来总结每个阶段的所学(其实就是疫情在家闲得慌/狗头),希望自己能够坚持。文中所有内容都是我个人对上述文献的一些总结,我还很菜,如有错误,敬请指正。一、为什么会有TDC(时间数字转换器)?到目前为止,芯片设计的总体1方向是,越来越小的面积,越来越低的功耗。以我目前正在学习的CMOS工艺为例,要使面积缩小,晶体管的尺寸也要随之减小,要使功耗降低,使电源电压降低,从而带来了设计上的一系列问题,如:晶体
续接上文,介绍完TDC-GPX2的芯片详情之后,本文介绍一下如何使用FPGA控制TDC-GPX2进行时间间隔测量。硬件条件本设计采用赛灵思的XC7A35T作为主控FPGA,校标方面,由于身边暂时拿不到专业的时间测量仪器,所以就采用FPGA内部自己产生STOP脉冲,脉冲数量可控,且时间间隔准确。下图为硬件连接图:FPGA输出CLK、STOP1(连续产生两个脉冲)、STOP2(实际上没用到)给TDC-GPX2进行时间间隔测量。软件介绍首先放上本设计的schematic如下所示:图片可能比较模糊,主要分为:按键输入消抖、STOP脉冲生成、TDC控制、DCM时钟管理单元以及ILA逻辑分析仪。案件主要是
1.基于IODELAY的TDC设计原理在第一篇中讲过,基于FPGA开发的TDC常见的有直接计数法,多相位时钟采样法,抽头延迟线法等等。前面3篇讲解了基于多相位的TDC,接下来主要讲解基于抽头延迟线的方法。在XilinxFPGA开发中,要实现抽头延迟线,主要由进位链(Carry4)和IODELAY模块构建延迟链实现。以下主要介绍基于IODELAY的TDC设计原理。抽头延迟线法实现如下,图1为抽头延迟链TDC构成的一种结构,将一组延迟最小单元(延迟时间为)级联成一条延迟链,组成一个周期。每个延迟单元都会引出一个抽头,并用相应的触发器进行锁存。一般采用抽头延迟线法,都会使用粗计数和细计数相结合的方式
时间数字转换器(Time-to-DigitalConverter,简称TDC)是一种用于测量或记录信号时间间隔的电子设备。在本文中,我们将详细概述基于FPGA的TDC,并提供相应的源代码示例,以帮助读者理解和实现这一功能。一、TDC的工作原理TDC的基本原理是测量信号的到达时间与参考时钟之间的时间差。其工作流程可以分为以下几个关键步骤:时钟信号:TDC使用一个稳定的参考时钟信号作为基准。这个时钟信号通常是高频的,以提高测量的精度。信号延迟:要测量的信号通过延迟单元延迟一段时间,使其与参考时钟信号同步。边沿检测:当延迟后的信号与参考时钟信号发生边沿重合时,TDC会产生一个触发信号。计数器:TDC
TDC(TimetoDigitalConverter)芯片是一类专门的计时芯片,目前被广泛用在TOF激光雷达、超声波流量计等领域。 本人最近研究了TI的TDC7200和TDC7201,ACAM的TDC-GP22,瑞盟的MS1022等芯片,并将这类芯片应用在TOF单点测距激光雷达和超声水(热)表等领域,具有一定调试经验。 现将收集到的一些资料分享出来,有需要共同交流的可私信。
TDC-GP22控制的资料,网上的资源都是基于STM32或者MSP430主控的,但现在这两款芯片都太贵了,因此就想用便宜点的ESP32,折腾了快一周,终于弄好了。工程源码和参考资料在文章最后。高精度计时芯片TDC-GP22,在可编程比较器的调整范围和时间测量精度方面也有了进一步的性能改进。TDC-GP22的时间测量精度高达90ps,偏移调整范围增加到±35mV。TDC-GP22芯片采用QFN32引脚的超小型封装,工作温度范围为-40℃~+125℃。本文用的TDC-GP22模块是CJMCU-22模块,主控模块用的是ESP32-DevKitC开发板搭载WROOM-32D/U模块, ESP32和GP
1、多相位TDC计时FPGA代码设计接上期的讲解,本期主要讲多相位TDC计时的FPGA代码实现。图1为TDC测量实现系统图。时间信号经过探测器后,转换为电信号,一般探测器出来的信号幅度和脉宽都比较小,需要时间鉴别器进行比较和整形,以便于FPGA能够识别。经过FPGATDC计时模块后,测量出两信号的时间差。将打包好的数据,通过USB2.0接口传输给上位机软件。图1 TDC测量实现框图在本方案中,TDC计时设计的时间分辨率为312.5ps,主频为400Mhz(2.5ns),采用8相位设计,这样就可以满足设计要求了。根据笔者经验,多相位采用XilinxFPGA芯片最多能做到16相位,最小分辨率大概在
通信协议SPI通信速率:在3.3V供电电压下,最大为20MhzSPI通信格式:时钟相位=1,时钟极性==0;cubeMX的配置如下图所示:数据的写入与读取对于EEPROM的写入与数据的写入与读取一般遵循:控制指令码+寄存器地址+数据TDC-GP22与stm32之间的连接CJ-MCU公司为tdc-gp22做了封装,在某宝中可以买到这个板子。根据官方所提供的原理图,模式一脉冲激光测距的引脚对应图如下表所示:stm32tdc-gp223.3VvccGNDGND3.3Vdisgpioxintngpioxssnscksckmosisimisosogpioxrtngpioxstagpioxsp1stm32
距离上一次使用FPGA控制TDC芯片测量时间间隔已经过去一年多了,当时采用的TDC芯片是TI的一款芯片TDC7200,最后测量结果所能达到的精度为百皮秒级别,最近使用入手了AMS生产的TDC-GPX2这款芯片,单通道测量的精度达到有20ps,高精度模式理论测量精度达到10ps,本文于此介绍以下。以下附上之前写的TDC7200博客:FPGA控制TDC7200时间间隔测量。希望对大家能有所帮助。好了,话不多说,下面直接进入正题。芯片介绍老规矩,在介绍使用之前我们先来扣一扣数据手册。芯片整体框图如上所示,TDC-GPX2芯片有四路STOP脉冲输入信号,各持所司的几路电源(TVDD、CVDD等等),信
1.基于Carry4进位链设计原理常见的基于FPGA开发的TDC有直接计数法,多相位时钟采样法,抽头延迟线法等,之前内容为基于多相位的TDC,本章节中,主要讲解基于抽头延迟线法。在XilinxFPGA开发中,实现抽头延迟线法有很多种,如使用IODELAY构建延迟进位链,此处将介绍基于Carry4进位链的TDC设计原理。在上次讲解的抽头延迟链TDC原理中,延迟链上的延迟单元对应XilinxFPGA芯片的Carry4模块中的MUXCY(选通器)元素,每个Carry4单元包含四个MUXCY。如图1所示,为XilinxFPGA内部Carry4的内部结构图(具体可以参考ug474_7Serise_CLB