TI中文支持网
TI专业的中文技术问题咨询交流网站

TDC7200计时漂移的问题

TDC7200的START,STOP信号,用示波器监测时,波动不超过20ns,但是TDC7200计时漂移超过120ns,时间越长漂移越大。周围没有电磁干扰,温度基本没变化。这是为什么呢?

初始化程序如下:

void SetConfig1(void)
{
 TDC_CS_L;
 TDC_CS_L;
 WriteTDC7200(0x00+0x40); //addr
 WriteTDC7200(0x83); //callibration, no parity, trig、stop、start rising edge, mode 2, start measure TDC_CS_H;
 TDC_CS_H;
}

void SetConfig2(void)
{
 TDC_CS_L;
 TDC_CS_L;
 WriteTDC7200(0x01+0x40); //addr
 WriteTDC7200(0x40);   //single stop, 1 measurement cycle only, calibration2 measure 10 clock period
 TDC_CS_H;
 TDC_CS_H;
}

void SetClockCntrStopMask(uint16_t num)  //10MHz{
 TDC_CS_L;
 TDC_CS_L;
 WriteTDC7200(0x08+0x40); //addr
 WriteTDC7200(num/256); //H
 WriteTDC7200(num%256); //L
 TDC_CS_H;
 TDC_CS_H;  
}

void InitTDC7200(void)
{
 //ENTDC; //调用该函数前已经使能芯片 SetClockCntrStopMask(400); //40us以后才开始采集停止信号
 SetConfig2();
 SetConfig1(); //开始测量  
}

Amy Luo:

您好,
TDC7200 是一款时间 – 数字转换器,可测量 START 脉冲与多达 5 个 STOP 脉冲之间的时间间隔。
问题描述中“波动不超过20ns,但是TDC7200计时漂移超过120ns”,可以把问题描述的再详细一些吗
您要测的时间间隔大概是多少呢,如果< 500 ns,建议使用mode 1,这样精度更高一些。

david fan:

回复 Amy Luo:

测量时间间隔,即读数在78us附近

david fan:

回复 Amy Luo:

我看datasheet里计算飞越时间的时序图,有一个疑问。假设START和STOP都是上升沿触发。如果START和STOP上升沿触发时刻,时钟(8MHz或10MHz)的上升沿也刚出现,有可能提前一点,也有可能晚一点,提前和稍微晚一点的情况出现额两个读数的误差是不是非常大?

david fan:

回复 Amy Luo:

看datasheet里计算飞越时间的时序图,有一个疑问。假设START和STOP都是上升沿触发。如果START和STOP的上升沿与主时钟的上升沿非常接近,就是说有可能稍微早一点,也有可能稍微晚一点,在这早、晚之间波动,这种情况,读数是不是波动特大?

Amy Luo:

回复 david fan:

不会的,在Measurement Mode 2下,在不是整数个CLOCK的时间片段里ring oscillator就会工作,您可以看数据手册Figure 18,在8.4.2.2 Measurement Mode 2章节有详细的计算实例。

david fan:

回复 Amy Luo:

我就是看了您说的这些资料,才有这些疑问。ring oscillator负责两头的计时,而且启动分别是START和STOP的上升沿(假设设置为上升沿),停止是临近START和STOP上升沿的CLOCK上升沿。如果START和STOP的上升沿与CLOCK的上升沿非常接近,若有波动或者漂移,导致STRAT或者STOP的上升沿要么稍微提前CLOCK的上升沿,要么稍微滞后CLOCK上升沿,这就导致ring oscillator多计时或者少计时一个CLOCK周期。实际测量时,一个CLOCK周期为100ns,测量时出现过200ns的波动。这个问题是否有解决办法?

Amy Luo:

回复 david fan:

如果是因为CLOCK或START和STOP的波形不规整导致的问题,那么就需要在输入至TDC7200接口之前,对CLOCK或START和STOP的波形做滤波或屏蔽干扰等处理,TDC7200本身没法识别输入的信号是否为干扰信号

赞(0)
未经允许不得转载:TI中文支持网 » TDC7200计时漂移的问题
分享到: 更多 (0)