This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TIDA-00663:Time1 <Time2问题

Guru**** 1860360 points
Other Parts Discussed in Thread: TDC7200, TIDA-00663, TDC7201
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1320204/tida-00663-time1-time2-issue

器件型号:TIDA-00663
主题中讨论的其他器件:TDC7200、、 TDC7201

大家好!

我一直在尝试了解时间寄存器 Time1和 Time2有时 返回的值可能是  Time1 < Time2、导致计算错误的。

我正在检查两个 TDC 的 MEAS_COMPLETE_FLAG、但现在如果  Time1 < Time2同时 作为权变措施也是如此。

如果出现其中一种故障情况、我会禁用/启用 TDC 以将其复位。

我还注意到 INTB 输出的非对称行为:这是否正常?

我假设启动/停止脉冲符合示波器图片中所示的规格。

有人知道吗?

Groeten。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、请让我来确认一下、是否有合适的工程师为您提供有关该主题的支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Denge:

    感谢您在 E2E 论坛发帖。 看起来您上面提到的示波器捕获未附加。

    此外、您能否进一步解释不对称 INTB 行为的含义?

    我不太熟悉这里提到的参考设计、但如果有关于 TDC7200的问题、我一定可以帮助您把它们弄清楚。

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Isaac:

    正确、由于某种原因未添加附件。  我希望他的时间会起作用。  部分说明:

    黄色迹线表示1e TDC 的停止脉冲、青色迹线表示第二个 TDC 的停止脉冲。  品红色脉冲是两者的起始脉冲。

    最好用绿色/品红色迹线说明 INTB 信号的非对称行为。  此处、品红色对应黄色脉冲、绿色对应青色脉冲。

    我仍然在一个或两个 TDC 上遇到 T1 < T2、没有明显的 causee2e.ti.com/.../tek00005.tife2e.ti.com/.../tek00004.tif

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Denge:  

    感谢示波器捕获和澄清。 我可以看到关于非对称 INTB 脉冲的含义。 我知道您在一次捕获中包含了两个 TDC 的基准启动脉冲、但如果不是测量器件每个引脚上的启动脉冲、是否可以测量每个引脚附近的启动脉冲? 我担心的是、电路板寄生可能会导致其中一个信号出现延迟。 下面是一些问题:

    原理图是否与 TIDA-00663相同? 是否使用了相同的电路板布局?

    是否还可以为每个 TDC 提供器件配置? 寄存器和结果寄存器中的值?

    另一个注意事项是我们提供的 TDC7201、它将两个 TDC7200集成在一起。

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     您好 Isaac:

    正如绿色 迹线所示、引脚上的 START 脉冲非常稳定。  这个停止信号由处理器生成、而停止信号由双通道 AFE 生成并通过(相当便宜)的电缆馈入电路板。  

    该原理图基于 TIDA-00663、但现在已降至处理器(dsPIC33)、即 TDC7200的两倍、SiT2024 (16 MHz 振荡器)加上去耦电容。

    我也一直在深入固件、但找不到导致 T1 < T2的任何奇怪情况。

    每次新的测量都从将0b00000011写入 CONFIG 1寄存器开始、以将两个 TDC 置于模式2并开始测量、CONFIG 寄存器2在全0上保持默认值。

    结果如下:

    状态 Tdc2 00011001
    状态 Tdc1 00011001  
    结果1 89.82031250000000000
    RESULT2 139.8593750000000000
    结果3 50.03906250000000000
    时间1Tdc1 1163
    时间2Tdc1 669
    CalReg1Tdc1 1314
    CalReg2Tdc1 13104
    CalReg1Tdc2 1286
    ClkCnt1Tdc1 14
    ClkCnt1Tdc2 22
    时间1Tdc2 1137
    时间2Tdc2 566
    CalReg1 1286
    CalReg2Tdc2 14899
    错误计数 0x3F68

    e2e.ti.com/.../tek00007.tif

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Denge:

    谢谢您提供的信息、请让我来回顾这些信息并与您联系。

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Isaac:

    我还有一些其他信息:我添加了两个16位计数器、对两个 TDC 的 T1 < T2事件进行计数并绘制结果(请参见屏幕截图)。

    运算迹线是 STOP TDC1和 TDC2从50ns 到1.8 µs 之间的延迟。  底部的线迹都是错误计数器、当到达0xFFFF 时会绕回。  奇怪的是、当增量时间稳定时、图的斜率稳定、而当改变这个时间时、斜率增加。

    我仍然不知道为什么会出现这种情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Denge:

    感谢您的演示。 我不确定上部图形是否意味着这里、您提到的 TDC1和 TDC2之间的延迟是什么吗? 由于错误计数器本质上看起来像一个相当稳定的锯齿状结构、这个错误似乎持续发生。 我仍然没有机会查看您的结果、看看我是否能在那里发现问题。

    不过、您似乎没有提供每个 TDC 的配置、您知道每个器件的配置是什么吗、主要是查看此处的 CONFIG1和 CONFIG2寄存器以确保设置匹配。

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Isaac:

    您对上面的图解理解正确。  它实际上是两个 TDC 的两个 STOP 脉冲之间的延时时间。

    两个 CONFIG 寄存器的设置是相同的:每次测量都从 向 CONFIG1寄存器写入0b00000011开始(模式2 +设置 START 测量)、而 CONFIG2寄存器保持其复位状态为0b0100000。

    错误确实以稳定的方式发生!  我添加了一个包含成功测量结果的新图、显示四个测量结果中只有一个是正确的...

    Groeten、

    汉斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hans、您好!

    您提供的 CONFIG2寄存器设置似乎有一点缺失。 此外、我不确定您的配置是否正确。 我这么说的原因是由于您上面提供的结果、您指出了两个 TDC 的结果都是 Time1和 Time2的结果。 这意味着器件配置为检测两个 STOP 脉冲、因此它为每个器件生成了额外的 Timex 值。

    另一个要注意的是、在结果中、您提供的 TDC2的 Clock_Count 高于 TDC1、这意味着在这种情况下、脉冲2的时间比脉冲1的时间要远。 如果您仅使用 Timex 寄存器进行 ToF 比较、配置为模式2时将产生错误的结果。 请记住、在模式2中、Timex 寄存器用于跟踪较小的时间段、而 Clock_Count 52寄存器则用于跟踪较大的时间段。 当时间对于粗调计数器来说过大(即在它溢出之前)时、它将使用时钟计数器来跟踪较大的段。

    由于您是在测量模式2下运行的、因此请务必使用 数据表第8.4.2.2.1节中的公式计算脉冲的 ToF、其中将 Timex 和 Clock_Counter 200x 时间考虑在内。 如果每个器件的输入中没有两个脉冲、请务必将配置更改为每个器件仅一个脉冲。

    我希望这有助于我知道是否有任何问题!

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Isaac:

    这是 CONFIG2寄存器的一个拼写错误。  CONFIG2保持在其复位状态0b0100 0000、因此10个时钟周期校准、1个测量周期和单个停止。  这应该是可以的、对吗?

    我实际上正在使用第8.4.2.2.1节中的公式、结果-正确时-非常接近我在 AFG 上设置的延迟。  唯一让我困扰的是、为什么时间寄存器的结果经常是错误的。  我添加了另一个包含两个 TDC 的时间寄存器1和2的图、我想它们可以代表它们本身。 远离底部迹线、其中1为 T1-T2的负结果。

    SPI 时钟为10MHz、所以在规格范围内。  仅当两个 INTB 信号都为低电平时才会读取...

    问:在发生此类错误后、通过将 ENABLE 引脚拉低来重置 TDC 是否有用?

    美好的周末

    汉斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hans、您好!

    因此、对于典型的测量、您是否只能获得一组 Timex 寄存器的结果? 如果您配置为1个预期停止脉冲、则不应从这些寄存器中读取超过1个结果。

    您能否为我提供一组有关 TDC1和 TDC2测量错误的数据以及您对 AFG 进行了多长时间配置以查看我们是否能以某种方式将器件读数相关联? 还要向我提供您的 ToF 计算、以确保其是否正确执行。 也许处理中可能存在错误、从而产生不正确的结果。 我认为您不会从器件中得到这样级别的错误。

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Isaac:

    我不同意您的观点、即在模式2中配置为1个预期停止脉冲时 、只有一个时间读数就足够了已查看 8.4.2.2.1中的公式包含 Time1  时间2.  

    对于 数据集、您究竟意味着什么?  包含读数结果的电子表格。

    AFG 的设置为脉冲突发、 每个通道上一个脉冲、每次触发时的宽度为100ns、两个脉冲之间的时间距离是可变的、并且 TDC1的停止脉冲总是在 TDC2的停止脉冲之前出现。

    我忘了在之前的谈话中问:您是否在您所在的位置看到类似的 T1和 T2值的扩展/波动,或者它们是否跳得少得多?

    我将计算结果添加到了为 dsPic33EPxxxGPxxx 微控制器编写的汇编器中。  请注意、  为了获得更好的缩放效果、我重新排列了8.4.2.2.1中公式中的计算值。

    Groeten、

    Hanse2e.ti.com/.../Main.s

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hans、您好!

    额外的 Timex 读数用于获取第一个停止脉冲和其他多个停止之间的 ToF。 如果只配置了单个停止值、则只需要一个 Timex 值。 请查看下面我的真实示例、以了解使用数据表所示计算时数据提供的情况。

    在本例中、我将器件设置为 ToF 停止在~0.5us 内。 这是我从器件中读取的数据:

    时间1 = 9238

    CALIBRATION1 = 2317

    校准2 = 23156

    CLK_COUNT = 0

    TOF = normLSB (Time1- TIMEn+1)+(CLOCK_COUNT)(CLOCKPERIOD)

    ToF = 0.0539853E-9*(9238)= 0.4987us  

    不出所料、我得到~0.5us。

    现在、如果我将器件配置为接受两个 STOP、并在2.5us 处添加另一个 STOP 脉冲、

    时间1 =  9239

    时间2 = 46264

    CALIBRATION1 =  2317

    CALIBRATION2=23141  

    CLK_COUNT = 0

    ToF = 0.0540242E-9*(9239-46264)+(clock_count)(CLOCKperiod)

    ToF =-2us

    初始脉冲发生在0.5us、第二个脉冲发生在2.5us、但如果您注意到在公式中包括额外的 Time2、可计算第一次停止和第二次停止之间的时间、共计-2us。 如果您需要 Time2的总时间(从开始到 STOP2)、则需要删除公式中 Time1的用法以及减法。

    为了回答你的问题,测量结果不是那么跳跃在我的最后,他们有一个轻微的变化,但例如,做0.5us 测试,我会读取任何地方9232-9243的时间1。

    对于数据集、您可以提供与我在上面提供的信息相同的信息、但为了看我是否可以与您进行计算、阅读不好。 我不确定您之前提供的内容是否读取失败、但它在我结束时看起来是有效的。 还提供您的预期 ToF 结果、以便我能够比较答案。

    我希望我刚刚提到的示例对您有所帮助!

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Isaac:

    您给出的计算示例在我看来很谦虚、 模式1  我使用16 MHz 时钟在模式2中设置 TDC。

    我将尝试在模式1下运行-尽管数据表不建议将其用于高于500ns 的测量值-看看会发生什么情况。

    数据表中基于我的程序的示例计算如下(第18页):

    TOF1 (Time1)(normLSB)+(CLOCK _ Count1)(CLOCKperiod)-(Time2)(normLSB)

    请注意、在我的案例62.5 µs 中、时钟周期为。

    Groeten、

    汉斯

    e2e.ti.com/.../data.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hans、您好!

    感谢您提供数据。 可能我的公式起作用了、因为我使用的是8MHz 时钟、所以除法没有您使用的那么好、因此由于时钟周期较长、我没有达到任何时钟计数。 也许我可以用更长的时间或更快的时钟来重试它、以匹配您最终得到的结果。 一件简单的说明是16MHz 时钟的时钟周期为62.5ns、我们不确定这是否会影响您的计算。 您没有为您的结果表示 SI 前缀、因此如果您在计算中使用微秒、它们可能会偏离几个系数10。

    我计算了提供的所有信息、使用第18页的数据表计算、每次计算都得到大约500ns。 我不确定您的程序中是否缺少某些会导致有时计算不正确的内容、例如示例3和4。

    我遇到的一个问题是、您注意到前两个计算存在错误、即使该值与 您表示为正确的上一个计算值相同、但我对为什么这些计算被标记为不正确感到有点困惑。 我附上了一份 Excel 工作表,其中我计算了第三个结果,其中您的程序生成了:8388552.449218750000的结果,而我的计算(根据所提供的值)生成了514ns。

    e2e.ti.com/.../TDC7200-Calculations.xlsx

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Isaac:

     62.5ns 的 值确实扩展到了6.25秒、这样在定点算法中计算结果时能有更好的缩放效果。  由于所有计算都是无符号的 、这解释了为什么错误的结果偏离了500ns 的时间差、但我会修改计算以应对这些情况、并查看 结果是否更加一致。

    我还注意到、将  CALIBRAATION2_PERIOTS 更改为20绝不会设置标志 MEAS_COMPLETE_FLAG ...

     

    Groeten、

    汉斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hans、您好!

    感谢您提供的信息! 如果在计算过程中需要更多帮助、请告诉我。

    在 CALIBRATION2_PERIOTS 备注中、我以前没有观察到这种行为、因此我需要对此进行测试、以确认是否是这种情况。

    此致!

    艾萨克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Isaac:

    我把所有的计算改为签署什么 SEE 已经解决的问题的计算。  您是否有时间研究   CALIBRAATION2_PERIOTS 行为?

    还有另一个问题:我不明白芯片是如何工作的,你能在数据表中多阐述一下这个句子吗?

    "TDC7200将自行执行一系列测量"有关多周期平均的内容?

    它是自行生成启动/  停止信号、还是仅在16次(例如)看到启动/停止后发出中断?

    Groeten、

    汉斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hans、您好!

    我能够对此进行测试、并且能够在我配置器件的任何 CALIBRATION_2_PERIODS 期间看到器件使用 measure_complete_flag 正确响应。

    关于您关于多周期平均的问题、该器件不会自行执行测量。 每次完成测量后、器件都会输出触发脉冲、同时预期数据、直到达到 AVERAGE_CYCLES 中配置的值。 器件将获取所有测量值的平均值并将数据输出到结果寄存器中。 在测量完成前、INTB 引脚不会变为低电平。

    因此在您的示例中、器件将触发16次、预计在 INTB 引脚变为低电平之前会看到16个启动/停止脉冲、并且器件将报告所有16个完成测量的平均值。 我希望这可以澄清行为。

    此致!

    艾萨克