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.

[参考译文] TDC7200:tdc7200

Guru**** 2551110 points
Other Parts Discussed in Thread: TDC7201, TDC7201-ZAX-EVM

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/731420/tdc7200-tdc7200

器件型号:TDC7200
主题中讨论的其他器件:TDC7201TDC7201-ZAX-EVM

您好!  

基于 TDC7201-ZAX-EVM 模块的定制设计(TDC7201)中存在相同/类似问题。 我可以对寄存 器进行读取和写入操作、在发送信号(0b00011001、即测量已完成、测量已开始、未检测到溢出(CLOCK_CNTR_OVF _INT)、未检测到溢出(粗略 MEAS_CNTR_OVF _INT)和检测到中断-新测量已完成(new_MEAS_INT)后、TDCx_INT_STATUS 变为0x19。 我的打印读数如下所示。  

将 OSC_ENABLE 设置为数字输出
将 OSC_ENABLE 设置为高电平以启用 TDC 时钟
将 TDC_ENABLE 设置为数字输出
确保 TDC_ENABLE 为低电平、直到准备好启用 TDC 芯片
将 CS 线路设置为高电平输出
已确保未启用 CS 线路
将 TDC_ENABLE 设置为高电平以启用 TDC 芯片
SPI 总线断开
TDC1_CALIBRATION1位置0x1B 处的数据为000000
TDC2_CALIBRATION1位置0x1B 处的数据为000000
TDC1_CALIBRATION2位置0x1C 处的数据为000000
TDC2_CALIBRATION2位置0x1C 处的数据为000000
写入 TDC1_CONFIG2位置0x01 41C0
写入 TDC2_CONFIG2位置0x01 41C0
写入 TDC1_INT_MASK 位置0x03 4307
写入 TDC2_INT_MASK 位置0x03 4307
TDC1_CONFIG1位置0x00处的数据为00
TDC2_CONFIG1位置0x00处的数据为00
TDC1_CONFIG2位置0x01处的数据为 C0
TDC2_CONFIG2位置0x01处的数据为 C0
TDC1_INT_STATUS 位置0x02处的数据为00
TDC2_INT_STATUS 位置0x02处的数据为00
TDC1_INT_MASK 位置0x03处的数据为07
TDC1_INT_MASK 位置0x03处的数据为07
写入 TDC1_CONFIG1位置0x00 40C1
写入 TDC2_CONFIG1位置0x00 40C1
启动信号已发送
TDC1_TIME1位置0x10处的数据为000584
TDC1_CLOCK _COUNT1位置0x11处的数据为000000
TDC1_Calibration1位置0x1B 处的数据为000000
TDC1_Calibration2位置0x1C 处的数据为000000
TDC2_TIME1位置0x10处的数据为0005E7
TDC2_CLOCK _COUNT1位置0x11处的数据为000000
TDC2_Calibration1位置0x1B 处的数据为000000
TDC2_Calibration2位置0x1C 处的数据为000000
TDC1_INT_STATUS 位置0x02处的数据为19
TDC2_INT_STATUS 位置0x02处的数据为19
TDC1_CONFIG1位置0x00处的数据为 C0
TDC2_CONFIG1位置0x00处的数据为 C0
TDC1_T粗糙_CNTR_OVF 位置0x04处的数据为 FF
TDC1_T粗糙_CNTR_OVF 位置0x05处的数据为 FF
TDC2_粗略_CNTR_OVF 位置0x04处的数据为 FF
TDC2_粗略_CNTR_OVF 位置0x05处的数据为 FF

您可以通过以下搜索看到我的问题:TDC7201:TDCx_Calibration1 (1Bh)和 TDCx_Calibration2 (1Ch)无数据

不幸的是、我还没有解决这个问题。  我是否有其他原因无法找到禁用或复位 TDCx_CALIBRATION (1和2)寄存器的原因? 例如锁定的存储器或其他原因?  

谢谢、  

洛根

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

    让我回顾一下您的寄存器设置、并返回您的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bharat、  

    昨天晚上我解决了这个问题。 我的寄存器在查找解决方案时完全没有变化、但是我的定序和时序确实发生了变化。 我无法确定、但问题似乎在于发送了脉冲信号。 我基于时序发送的信号(等待足够长的时间让 Trigg 信号到达)而不是实际检查是否发送了 Trigg。 似乎在发送脉冲之前等待的时间过长或对 TRIG 信号的反应不够快、这会导致 CAL 寄存器不写入或覆盖0x000000。  

    TDCx_CONFIG1 0x00 = 0xC1 (我还尝试了0x41)
    TDCx_CONFIG2 0x01 = 0xC0 (我还尝试了0x40)
    TDCx_INT_STATUS 0x02 =在信号变为0x19后作为0x00启动
    TDCx_INT_MASK 0x03 = 0x07
    ***其余的寄存器保留为默认值***
    TDCx_Time1 0x10 =每次接收到的值
    TDCx_Cock_Count1 0x11 =未接收到值(正如预期的那样、因为 I 处于测量模式1)
    TDCx_CALIBRATION1 0x1B = 0x000000 (更改代码前)、更改代码后接收到的值
    TDCx_CALIBRATION2 0x1C = 0x000000 (更改代码前)、更改代码后接收到的值

    经过多次不同的试验和测试、修改了我的代码以确保已接收到 Trigg 信号并立即发送脉冲、问题得到解决。  


    谢谢、  

    洛根