MS1005描述
MS1005 是一款高精度时间测量(TDC)电路,对比 MS1002 具有更高的精度和更小的封装,适合于高精度小封装的应用领域。
MS1005 具有双通道、多脉冲的采样能力、高速 SPI 通讯、多种测量模式,适合于激光雷达和激光测距。
主要特点
双通道单精度模式 60ps
单通道双精度模式 30ps
非校准测量范围 3.5ns(0ns)至 25μs
单精度校准测量范围 3.5ns(0ns)至 16μs
双精度校准测量范围 3.5ns(0ns)至 4μs
20ns 最小脉冲间隔,双通道最多可接收 20 个脉冲
4 线 SPI 通信接口
工作电压 2.5V 至 3.6V
工作温度-40°C 至+125°C
QFN20 封装
应用
激光雷达
激光测距
脉冲测量
封装图
管脚图
管脚说明图
内部框图
电气参数
功能描述
1. SPI接口
MS1005 的 SPI 接口是与 4 线制 SPI 兼容的,它需要一个 SerialSelectNot(SSN)信号,从而不能够工作在 3-线制 SPI 接口。
第一个 SCK 的上升沿将会复位 INTN 管脚(中断管脚)状态。
从最高位(MSB)开始传输以最低位(LSB)结束。传输是以字节方式完成的。数据传输可以在每个字节后停止,通过给 SSN 发送一个 LOW-HIGH-LOW 的电平。
电源电压
为了达到最佳测量效果,好的电源非常重要。电源应该具有高电容性和低电感性。MS1005 提供两对电源供应端口:VCC - I/O 供电电压 ,VDD - 内核供电电压。
所有的 Ground 引脚都应该连接到印刷电路板的地层上。 VCC 和 VDD 应该通过一个电池或者固定的线性电压调节器给出。不要应用开关式的调节器,避免由于 IO 电压引起的干扰。
时间数字转换器能够有好的测量效果,完全取决于好的电源供电。芯片测量主要是脉冲式的电流,因此一个充足的双通滤波非常重要:VCC 47 µF(最小 22 µF),VDD 100 µF(最小 22 µF)。
电压应用通过一个模拟的调节器给出,我们推荐不要使用开关式的电压调节。
时间测量
概述
非校准模式测量范围从 3.5ns 到 25us(0-25us 在两个 stop 通道之间测量)。
校准模式单精度测量范围从 3.5ns 到 16us(0-16us 在两个 stop 通道之间测量)。
校准模式双精度测量范围从 3.5ns 到 4us(0-4us 在两个 stop 通道之间测量)。
单精度模式典型精度为 60 ps,2 个 stop 通道相对于 start 通道。
双精度模式典型精度为 30ps,仅 stop1 通道相对应 start 通道。
内置特殊防抖技术,使测量时间高度精准。
20ns 的脉冲之间最小间隔。
两个 stop 通道可同时采集,且每个 stop 通道最多 10 个脉冲。
每个 stop 通道可选择上升或下降沿捕获,或者选择上升和下降沿同时捕获。
自动测量 START 和 STOP 脉冲之间的时间间隔,无需再进行寄存器设置。
可任意设置溢出时间,从而减少高速测量时溢出时间等待。
在非校准模式下,可以任意测量比预期脉冲数少的脉冲。
典型应用: 激光测距、激光雷达、高精度延时测量。
高精度时间测量原理
数字式 TDC 应用内部的逻辑门延时来高精度测量时间间隔,下图阐述了这种绝对时间 TDC 的测量原理结构。该电路结构确保电路以特殊的测量方法,使信号通过逻辑门的时间可以非常精确。最高的测量精度完全取决于内部通过逻辑门的传播时间。
时间测量是通过一个 start 信号触发,通过内部防抖处理后,TDC 的门电路开始高速计数,直到 stop信号产生记录计数结果,达到 STOP 预期脉冲数后停止计数。
3.3V 和 25°C 时,MS1005 的单精度最小分辨率是 60ps。温度和电压对门电路的传播延时时间有很大的影响。通常是通过校准来补偿由温度和电压变化而引起的误差。在校准过程中,TDC 测量 0.5 个和 1.5 个时钟周期,相减后得一个时钟周期的 TDC 计数结果,即为校准值。测量范围受计数器大小的限制,以下是非校准模式下最大测量范围:tyy = 60 ps x 442368 ≈ 25 µs。
每一个输入端均可以被单独设置成上升沿、下降沿或上下沿同时触发有效。可通过设置寄存器的bit8-10 位(EG_START,NEG_STOP1,NEG_STOP2)和寄存器的 bit0-1 位(REFDGEx) 来选择触发沿。
时间测量结束后,MS1005 会自动将各个脉冲的测量结果顺序写到相应的结果寄存器,无需再进行寄存器操作设置,在计算结果的过程中先计算 STOP1 通道的脉冲,然后计算 STOP2 通道的脉冲,所以当使用单通道时,必须使用 STOP1。
寄存器设置
主要的设置为:
(1)选择测量预期脉冲个数
寄存器 bit 31-28 设置 STOP2 预期脉冲个数 HITIN2=0 或者 2-B;寄存器 bit 27-24 设置 STOP1 预期脉冲个数 HITIN1=2-B,不能设置为 0;否则无法开启测量。
(2)选择测量精度
寄存器 bit 18, DOUBLE_RES = 1 选择双精度模式,测量精度为典型 30ps,但仅有一个 stop 通道可用。DOUBLE_RES = 0 选择单精度模式,测量精度为典型 60ps,这时两个 stop 通道都可用。
(3)校准选择
在非校准模式下,校准将关闭,寄存器 bit 13 CALIBRATE=0;
(4)产生 CAL 值
在非校准模式下,可以选择产生 CAL 值和不产生 CAL 值,寄存器 bit 12 NO_CAL_AUTO=0 时,产生 CAL 值,NO_CAL_AUTO=1 时,不产生 CAL 值。
(5)溢出选择
在非校准模式下,寄存器 bit 7 EN_SEL_TIMO=0 溢出时间关闭,这时溢出时间为 TDC 溢出,当EN_SEL_TIMO=1 时开启溢出时间,且溢出时间和寄存器 bit 23-22 SEL_TIMO 设置有关。
(6)选择输入触发方式
可通过设置寄存器的 Bit 8-10(NEG_X)在每一个输入端口(Start,Stop1,Stop2)边沿触发方式。当RFEDGE=0 时 ,NEG_X=0 则 上升 沿 触发 , NEG_X=1 则 下降 沿 发。 还 可 以通 过 设置 寄 存器 的Bit0&1(REFDGE1 & FEDGE2),选择 STOP 由上升沿或下降沿单独触发(RFEDGE=0),还是上升沿和下降沿同时触发(RFEDGE=1),当 RFEDGE=1 时,Bit 9-10 选择无效。
(7)中断
中断引脚 INTN 可以有不同的中断源,在寄存器的 Bits4-6(EN_INT)中进行选择,非校准模式选择
bit 6 = 1 和 bit 5= 1;
Reg bit 4 = 1 ALU 已经准备好
Reg bit 5 = 1 预期脉冲个数全部被接收到
Reg bit 6 = 1 测量时间溢出
测量流程
6.4 校准时间测量
注:校准测量单精度最大测量范围 16us,双精度最大测量范围 4us。
6.4.1 校准时间测量概述
校准时间测量,在高速振荡器开启情况下进行测量,测量的门延时数量和 Tref 门延时数量通过ALU 进行计算并输出到结果寄存器。输出的结果为 24 位浮点数,高 8 位为整数位,低 16 位为小数位。校准模式下最大测量范围是 3.5NS-16US,单精度模式下,可以两个 STOP 通道同时测量,且每个通道最多可以测量 10 个 STOP 脉冲,双精度模式下,仅 STOP1 通道可以使用。
校准时间测量过程中,需要开启高速时钟(START_CLKHS=1)和校准开启(CALIBRATE=1),当产生校准值关闭(NO_CAL_AUTOCALIBRATE=1)结果寄存器输出非校准值(可参考非校准部分介绍),当产生校准值开启(NO_CAL_AUTOCALIBRATE=0)时,结果寄存器输出校准后的值 RES_X,测量时间如下计算,被测时差不能超过 2 ×Tref× DIV_CLKHS。
测量时间= RES_X × Tref × N, N = 1, 2,4,8;
在校准时间测量中,必须开启溢出时间功能(EN_SEL_TIMO=1),溢出时间由溢出时间选择(SEL_TIMO)进行选择溢出时间,这里的时间仅和高速时钟相关,不受时钟分频(DIV_CLKHS)的影响,例如高速时钟为 8MHz,SEL_TIMO=0 的情况下,溢出时间为 250NS,这时状态寄存器 Bit14=1(时间溢出)。
校准模式下,测量脉冲个数必须大于或者等于预期脉冲个数,当测量脉冲小于预期脉冲个数时,ALU 不进行计算,这时状态寄存器 Bit14=1(时间溢出)。且 EN_ERR_VAL=1 的情况下,结果寄存器 0输出全 F。
6.4.2 寄存器设置
主要的设置为:
(1)选择测量预期脉冲个数
寄存器 bit 31-28 设置 STOP2 预期脉冲个数 HITIN2=0 或者 2-B;
寄存器 bit 27-24 设置 STOP1 预期脉冲个数 HITIN1=2-B,不能设置为 0;否则无法开启测量。
(2)选择测量精度
寄存器 bit 18, DOUBLE_RES = 1 选择双精度模式,测量精度为典型 30ps,但仅有一个 stop 通道可用。DOUBLE_RES = 0 选择单精度模式,测量精度为典型 60ps,这时两个 stop 通道都可用。
(3)校准选择
在校准模式下,高速晶振和校准都必须开启,寄存器 bit 13 CALIBRATE=1 和 bit 19 START_CLKHS=1
(4)产生 CAL 值
在校准模式下,必须选择产生 CAL 值,寄存器 bit 12 NO_CAL_AUTO=0 时,产生 CAL 值。
(5)溢出选择
在校准模式下,必须开启溢出,寄存器 bit 7 EN_SEL_TIMO=1 开启溢出时间,且溢出时间和寄存器 bit 23-22 SEL_TIMO 设置有关。
(6)选择输入触发方式
可通过设置寄存器的 Bit 8-10(NEG_X)在每一个输入端口(Start,Stop1,Stop2)边沿触发方式。当RFEDGE = 0 时,NEG_X = 0 则上升沿触发,NEG_X = 1 则下降沿发。还可以通过设置寄存器的Bit0&1(REFDGE1 & FEDGE2),可以选择 STOP 下降沿单独触发(RFEDGE=0),还是上升沿和下降沿同时触发(RFEDGE=1),当 RFEDGE=1 时,Bit 9-10 选择无效。
(7)中断
中断引脚 INT 可以有不同的中断源,在寄存器的 Bits4-6(EN_INT)中进行选择,由于 Reg bit 5=1 中断输出最早,Reg bit 4=1 输出最晚,用户可以根据实际情况进行选择。
Reg bit 4 = 1 ALU 已经准备好
Reg bit 5 = 1 预期脉冲个数全部被接收到
Reg bit 6 = 1 测量时间溢出&TDC 溢出
(8)高速时钟分频
由于校准测量时间小于 2 ×Tref× DIV_CLKHS(Tref 只与外接高速晶振相关,如外接 4M,则 Tref =250ns),所以需要测量时间增长的话,需要设置高速时钟分频,在寄存器的 Bits20-21(DIV_CLKHS)中进行设置,但 2 ×Tref× DIV_CLKHS 不能超出测量范围最大值 16US。
典型应用图