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.

[参考译文] 编译器/OPT8241-CDK-EVM:如何配置寄存器以实现 ToF 帧同步?

Guru**** 2553450 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/632374/compiler-opt8241-cdk-evm-how-to-configure-registers-for-tof-frame-synchronization

器件型号:OPT8241-CDK-EVM

工具/软件:TI C/C++编译器

尊敬的所有人:

 我们想控制 ToF 帧同步。三种是两种实现目标的方法、即 SW 方法和 HW 方法。

至于 SW、首先我们将 TG_dis 寄存器设置为 true、然后等待一段时间 t、最后将 TG_dis 设置为 false。

  • 设置 TG_dis =真;
  • 等待(t);
  • 设置 TG_Dis =错误;

对于 HW 方法、我们 通过在 VD_IN 上提供 SYNC 输入、然后设置 FRAME_SYNC_DELAY 寄存器来设置同步模式。

如何 配置这些寄存器(SET_REGISTER)并 通过软件确认它们(GET_REGISTER)的 TOF?

是否有用于设置寄存器和 获取寄存器的示例代码?  

此致、

Sheng-Hua

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

    我想您的问题是如何设置参数。

    有几种方法。  从 Voxel SDK API 在线文档中、您可以:

    ParameterPtr p = depthCamera->getParam("name");

    p->set(value);

    也可以使用 set() 方法:

    depthcamera ->设置(“名称”,值);

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

    感谢你的帮助。 我们使用 depthCamer->set ("name"、value)的功能来设置 FREQ1和 FREQ2的寄存器。
    它可以通过使用 depthCamer->get ("name"、value、true")和真 reg_FLAG 来读取 FREQ1/FREQ2寄存器来工作;但由于 reg_flag 为 false、我们无法读取"TG_dis"和"frame_SYNC_DELAY"寄存器。

    为什么? 我们可以在"ToFCamera.h"文件中看到 FREQ1/FREQ2的定义、但其中没有任何"TG_DIS"和"frame_SYNC_DELAY_"的定义。
    这些寄存器的正确名称是什么(“TG_dis”和“frame_SYNC_DELAY”)?在哪里可以找到这些寄存器的定义?

    //reg_FLAG = depthcamera1>get ("tG_dis"、temp、true);
    //reg_FLAG = depthcamera1>get ("frame_sync_delay"、temp、true);

    此致、
    Sheng-Hua


    下面是寄存器读取/写入的部分代码。
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    float reg_read_temp;
    float reg_read_freq1、reg_read_freq2;
    float reg_read_freq3 = 50.0;
    float reg_read_freq4 = 10.0;
    内部温度;

    float REG_TG_dis、REG_FRAME_SYNC_DELAY;
    bool reg_FLAG = 0;

    //reg_FLAG = depthcamera1>get ("tG_dis"、temp、true);
    //reg_FLAG = depthcamera1>get ("frame_sync_delay"、temp、true);

    REG_FLAG = depthCamera1->Get (MOD_FREQ1、REG_READ_freq1、true);
    REG_FLAG = depthcamera1>get (MOD_FREQ2、REG_READ_freq2、true);

    REG_FLAG = depthcamera1->set (MOD_FREQ1、REG_READ_freq3);
    REG_FLAG = depthcamera1>set (MOD_FREQ2、REG_READ_freq3);

    REG_FLAG = depthCamera1->Get (MOD_FREQ1、REG_READ_freq4、true);
    REG_FLAG = depthcamera1>get (MOD_FREQ2、REG_READ_freq4、true);

    REG_FLAG = depthcamera1->set (MOD_FREQ1、REG_READ_freq1);
    REG_FLAG = depthcamera1>set (MOD_FREQ2、REG_READ_freq2);

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    寄存器按名称访问、并在 TI3DToF 子目录下的*。DML 文件中定义。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Larry:

    感谢你的帮助。

    我们可以在 OPT9221.DML 文件中找到"TG_DIS"的名称。 然后,我们尝试使用 flag=deptthCamera->get ("TG_dis"、REG_TG_dis、true)的函数,并且无法使用错误的返回值获得正确的值(false)。 如果  REG_TG_dis 的值正确、则会返回 true 标志。

    此致、

    Sheng-Hua