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.

[参考译文] TDA4AL-Q1:有关 J721S2 上 CSIRX 流 1 软复位和 I2C4 SYSC 寄存器恢复的问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2

器件型号: TDA4AL-Q1

我们目前正在为我们基于 J721S2 的系统开发摄像头恢复机制、并且遇到需要 CSIRX Stream1 FIFO 溢出错误处理的情况。 我们希望向您寻求指导、以确定我们建议的方法是否安全且符合硬件规范。

背景: 在摄像头重置操作(流式传输→摄像头重置→流式传输)期间、我们偶尔会遇到 CSIRX 流 1 FIFO 溢出错误。 为了从这些错误中恢复、我们实施了以下过程:

  1. CSIRX 流 1 软复位过程:

    • 通过写入 STREAM1_FIFO_OVERRIDE_IRQ 位来读取和清除 ERROR_IRQ 寄存器(偏移 0x28)
    • 通过设置 SOFT_RST 位对 STREAM1_CTRL 寄存器(偏移 0x200)执行软复位
    • 等待复位使其稳定
    • 通过清除 SOFT_RST 位来释放软复位
  2. I2C4 SYSC 寄存器恢复:  完成 CSIRX 流 1 软复位后、我们观察到 I2C4 SYSC 寄存器(地址 0x02040010)值从 0x00000000 变为 0x00000008(AUTOIDLE 位被设置)。

    为了将寄存器恢复到其原始状态、我们将 0x00000000 写入 I2C4 SYSC 寄存器、其中:

    • 清除 AUTOIDLE 位(位[0])
    • 清除所有电源管理位
    • 恢复寄存器以匹配参考值

问题:

  1. 在运行时操作期间对 CSIRX 流 1(STREAM1_CTRL 寄存器)执行软复位以从 FIFO 溢出错误中恢复是否安全?

  2. 在 CSIRX 复位后直接将 0x00000000 写入 I2C4 SYSC 寄存器以恢复其电源管理配置、是否存在任何问题?

  3. TI 是否有任何建议的程序或替代方法来处理 CSIRX Stream1 FIFO 溢出错误?

  4. 您能否解释一下为什么 I2C4 SYSC 寄存器在 CSIRX 流 1 复位操作期间发生了变化、以及恢复它是否是正确的方法?

目前、在应用上述例程后、系统正常运行、但我希望确保我的实施遵循最佳实践、并且不会给系统稳定性带来任何潜在风险或违反硬件规格。

非常感谢您的时间和帮助。 我们非常感谢您的专业知识、并期待您的指导。

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

    尊敬的 Lee:

    Stream1 通常用于连接 CSITX、因此您是否使用从 CSIRX 到 CSITX 的直接连接? 在这种情况下、它不应溢出...  您能否尝试将宏 CSIRX_NUM_STREAM 的值更改为 1、看看它是否有用?  

    此致、

    Brijesh

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

    感谢您的答复、Brijesh

    那么您是否正在使用从 CSIRX 到 CSITX 的直接连接?

    CSIRX 和 CSITX 之间有一些节点、例如 VISS、AEWB、MSC 和 Disp M2M、如下图所示

    当包含如上所示的图形时、是否可能发生过流?

    无论如何、我们直接集成了从 SDK 获取的代码、并在该代码中将 CSIRX_NUM 设置为 2

    我会尝试你的方向,但 我有一个关注点..  如果我将此值从 2U 更改为 1U、是否有任何副作用?

    它应该在我的系统中设置为 1U??

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

    [引述 userid=“631758" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2 I2C4 SYSC 寄存器恢复:  完成 CSIRX 流 1 软复位后、我们观察到 I2C4 SYSC 寄存器(地址 0x02040010)值从 0x00000000 变为 0x00000008(AUTOIDLE 位被设置)。

    尽管我最初认为在 CSIRX 软复位过程中启用了 I2C4 上的 AUTOIDLE、但我确认即使在测试期间将 CSIRX NUM 流配置从 2 更改为 1、AUTOIDLE 仍处于间歇性启用状态。 (当时未在代码中包含 csirx 软复位)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lee:

    CSIRX 和 CSITX 之间有一些节点、例如 VISS、AEWB、MSC 和 Disp M2M、如下图

    没关系。 在 OpenVX 中、流的数量与连接到 CSIRX 的节点数无关。

    如果包含如上所示的图形、是否可能发生过流?

    因此没有、 但 CSIRX 必须在 QoS 设置的实时路径上。 我 假设您已设置 QoS 设置...

    [引述 userid=“631758" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2/6248095

    我会尝试你的方向,但 我有一个关注点..  如果我将此值从 2U 更改为 1U、是否有任何副作用?

    它应该在我的系统中设置为 1U??

    [/报价]

    否、首先让我们确认这是否有帮助。 我们需要正确修复它。

    虽然我最初认为在 CSIRX 软复位过程中启用了 I2C4 上的 AUTOIDLE、但我确认即使在测试期间将 CSIRX NUM 流配置从 2 更改为 1、AUTOIDLE 仍处于间歇性启用状态。 (当时代码中不包含 csirx 软复位)

    好的、这是不同的问题、与 CSIRX 无关。

    但通过此更改、您现在是否会观察到 CSIRX/CSITX 溢出错误?

    此致、

    Brijesh  

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

    您好、Brijesh

    因此、没有、 但 CSIRX 必须在 QoS 设置的实时路径上。 我 假设您已设置 QoS 设置。

    我应该检查什么? 如果您告诉我检查的内容、我会进行检查

    但通过此更改、您现在是否会观察到 CSIRX/CSITX 溢出错误?

    我应该多检查几次。。。   直到现在我才见过(关于重置测试 100 次、在 20 次内发生之前)  

    我可以修复这个宏值吗? 因为如果我修正了这个 代码,这个代码还没有认证了吗?  

    好吧、这是不同的问题、 与 CSIRX 无关。

    我认为、为什么会出现这种问题? 当我重置摄像头时、它包括通过 I2C 进行的 ser/des 设置和配置。  

    此致、  

    Kanu Lee

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

    您好、Brijesh

    因此、没有、 但 CSIRX 必须在 QoS 设置的实时路径上。 我 假设您已设置 QoS 设置。

    我应该检查什么? 如果您告诉我检查的内容、我会进行检查

    但通过此更改、您现在是否会观察到 CSIRX/CSITX 溢出错误?

    我应该多检查几次。。。   直到现在我才见过(关于重置测试 100 次、在 20 次内发生之前)  

    我可以修复这个宏值吗? 因为如果我修正了这个 代码,这个代码还没有认证了吗?  

    好吧、这是不同的问题、 与 CSIRX 无关。

    我认为、为什么会出现这种问题?

    此外、当我重置摄像头时、它还包括通过 I2C 进行的 ser/des 设置和配置。  

    此致、  

    Kanu Lee

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

    尊敬的 Lee:

    我该检查什么? 如果您告诉我检查的内容、我会查看相关信息

    我的意思是、您能否查看先前导致 stream1 溢出的同一用例?  

    [引述 userid=“631758" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2/6252713

    我应该多检查几次。。。   直到现在我才见过(关于重置测试 100 次、在 20 次内发生之前)  

    我可以修复这个宏值吗? 因为如果我修正了这个 代码,这个代码还没有认证了吗?  

    [/报价]

    但这种变化是在 CSIRX 驱动程序,据我所知,这是未经认证的。 您能否查看 相同的路线图幻灯片?  

    [引述 userid=“631758" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2/6252713

    我认为、为什么会出现这种问题?

    此外、当我重置摄像头时、它还包括通过 I2C 进行的 ser/des 设置和配置。  

    [/报价]

    我们首先解决 CSIRX 溢出问题、然后再看看 i2c 问题。  

    此致、

    Brijesh

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

    您好、Brijesh

    我的意思是、您能检查此更改之前导致 stream1 溢出的相同用例吗?  [/报价]

    是的,我说在测试被执行作为相同的条件 ealier 与这个代码“CSIRX_NUM_STREAM= 1U“

    结果似乎该问题已解决

    您能否解释一下为什么 CSIRX_NUM_STREAM=2U 会出现此问题?

    这是因为使用缓冲区超出预期吗? 是否 会发生意外的缓冲区处理?

    但此更改是在 CSIRX 驱动程序中进行的、据我所知、该驱动程序没有经过认证。 您能否查看 相同的路线图幻灯片?

    我知道我们不应应用任何未经 TI 认证的代码。

    因此、即使 CSIRX 驱动程序的这种更改似乎有效、但如果 TI 尚未正式认证代码、我们也无法采用该更改。
    此致、
    Kanu Lee
    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lee:

    您使用的是哪个 SDK 版本? 在早期的 SDK 中、代码正在重置所有流、即使它们未启用。 不应该这样做。 因此、将该宏更改为 1 将只会复位用于 CSIRX 输出的 stream0。 由于这有助于解决问题、我们现在需要在代码中正确修复它。  

    此致、

    Brijesh

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

    您好、Brijesh

    如您所述、如果我应用将 CSIRX_NUM_STREAM 从 2U 更改为 1U、则此问题将得到解决。  

    和我有一个通信 sung il park 这改变与 cerification 不管,因为 CSIRX 驱动程序不是 cerificted 模块  

    因为它是由安全机制处理的。 因此、我想处理另一个关于 I2C4 SYSC 的 AUTOIDLE 启用的问题  

    我是否应该为此制作另一个线程进行通信?

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

    尊敬的 Lee:

    是的、理想情况下、一个线程只能用于一种类型的线程。 那么、对于 I2C、是的、您能否再提出一个主题并关闭该主题?  

    此致、

    Brijesh

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

    嗨、Brijesh

    我将提出另一个有关 I2C4 的线程、

    但我又想到了这个问题、流 1 溢出、这个问题在应用软复位之前发生  

    [引述 userid=“631758" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2 背景: 在摄像头重置操作(流式传输→摄像头重置→流式传输)期间、我们偶尔会遇到 CSIRX 流 1 FIFO 溢出错误。 为了从这些错误中恢复、我们实施了以下过程:

    我认为与您如下所述的评论不匹配

    代码重置了所有流、

    请再次查看

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

    尊敬的 Lee:

    我认为、由于没有必要重置 stream1、它导致了 stream1 上的溢出、因此我们 更改了该条件、只重置了一个处于活动状态的流、这也有助于解决溢出情况。  

    此致、

    Brijesh

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

    您好、Brijesh、

    这只是为了阐明我们的理解

    我观察到的 Stream1 溢出最初是通过应用来解决的 CSIRX 流软复位
    但是、您建议不使用此软复位、并建议进行更改 CSIRX_NUM_STREAM 从 2 更改为 1 相反。

    我认为、由于没有必要重置 stream1、它导致 stream1 上出现溢出、因此我们 更改了该条件并只重置了一个有效的流、这也有助于解决溢出情况

    根据您的解释、似乎 TI 发现不必要的内部流复位导致了溢出、并且 TI 已在内部修改了复位逻辑。

    您能否确认您提到的“不必要的流复位“是否指的是 TI 驱动程序内部的内部复位逻辑、而不是指我手动应用的软复位操作?

    我想确保我们讨论的是同一个复位路径。

    我在下面的链接中制作了另一个有关 I2C4 SYSC 的主题、请再次检查。
    e2e.ti.com/.../tda4al-q1-icmu-i2c4-sysc-register-restoration-on-j721s2

    此致、
    Kanu

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

    尊敬的 Lee:

    您能否确认您提到的“不必要的流复位“是否指的是 TI 驱动程序内部的内部复位逻辑、而不是我手动应用的软复位操作?

    是的,这是正确的 CSIRX 不应该重置 stream1 如果它没有启用。  

    此致、

    Brijesh

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

    您好、Brijesh、

    由于我们没有在我们这边应用任何 CSIRX 软复位、
    您能帮助我们了解为什么在 TI 驱动程序中触发内部流复位逻辑吗?
    了解导致此内部复位的条件或代码路径会有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lee:

     您使用的是哪个 SDK 版本?  

    此致、

    Brijesh

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

    您好、Brijesh、

    我们使用 11.00 版本 (pdk_j721s2_11_00_21)

    此致、

    Kanu

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

    尊敬的 Lee:

    我认为主要问题在 CsirxDrv_errorEventIsrFxn API 中。 该代码会在发生 ECC 错误时重置所有流。 我认为我们只需要在这里复位 stream0、那么您能否将 CSIRX_NUM_STREAM 恢复为原始值、将以下代码中的 forloop 更改为仅运行一次、看看它是否解决了错误?  

      IF (1U == errStatus.headerEccIrq)
      {
        适用于 (strmIdx = 0U;strmIdx < CSIRX_NUM_STREAM;strmIdx++)
        {
          /*重置流*/
          GT_ASSERT (CsirxTrace、
               (FVID2_Sok == CsirxDrv_resetStream (instObj、strmIdx));
        }
        STATUS.eventMasks |= CSIRX_EVENT_TYPE_ERR_HEADER_ECC;
        instObj->status.eccCount++;
      }
    此致、
    Brijesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brijesh

    我认为、主要问题在 CsirxDrv_errorEventIsrFxn API 中。 该代码会在发生 ECC 错误时重置所有流。 我认为我们只需要在这里复位 stream0、那么您能否将 CSIRX_NUM_STREAM 恢复为原始值、将以下代码中的 forloop 更改为仅运行一次、看看它是否解决了错误?  [/报价]

    我告诉过您、当我应用您关于将 CSIRX_NUM_STREAM 2 值从 1 更改为 1 的建议时、问题已得到解决。 但不幸的是,它不是

    因为我昨天看到过此错误发生。 因此、正如您上面所说的、我们必须找到另一个解决方案。

    我也查看了您的建议。 也就是说、我担心将 CSIRX_NUM_STREAM 配置为 1 在功能上可能等同于仅复位流 0、从而产生相同的实际结果。 您能解释一下这两种方法在根本原因和副作用方面有何不同吗

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

    尊敬的 Lee:

    抱歉、您是否仍 在连续观察 stream1 溢出? 您现在应该看不到 stream1 错误。 如果您看到 stream0 错误、这是不同的问题。  

    就 解决方案而言、是的、这两个解决方案几乎相似、将 NUM_STREAM 更改为 1 将确保驱动程序不会对未使用的 stream1 进行任何更改。  

    此致、

    Brijesh

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

     大家好、 Brijesh Jadav 

    我确实应用了代码 ,因为你提到,然后 stream1 溢出错误不再被忽略。

    但观察到其他错误、 数据包错误掩码看起来像波形

    0x60(标头 ECC +已校正 ECC)、0x20(标头 ECC)、0x10(有效载荷 CRC)、0xc0(数据 ID +已校正 ECC)和 0xe0 (ID + ECC)。

    这些错误不会恢复,尽管相机关闭和打开恢复。

    因为我认为这些错误是在相机被重置时恢复的。  

    请检查此问题

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

    尊敬的 Lee:

    通道速度设置是否正确、是否与传感器/解串器输出匹配? 因为这就是出现 CRC 和其他错误的原因之一。  

    此致、

    Brijesh

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

    您好、Brihesh

    通道速度设置是否正确、是否与传感器/解串器输出匹配? 因为这就是出现 CRC 和其他错误的原因之一。  [/报价]

    是的,我和你得出同样的结论。
    ‑、由于摄像头反复断电并打开、因此我假设每次串行器/解串器也会重新初始化、因此串行器/解串器侧的通道速度应该没有问题。

    在这种情况下、CSIRX 侧的通道速度是否可能会发生变化?
    该‑是否也重新初始化?

    如果这是串行器/解串器配置问题、则应通过重新初始化来解决该问题;但是、尽管多次重新初始化尝试、该问题仍然存在。

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

    尊敬的 Lee:

    但是、由于摄像头反复关闭和打开、我假设 SerDes 每次都重新初始化、因此 SerDes 侧的通道速度应该不会有问题。

    抱歉、您能帮助我确定您使用的确切顺序吗? 我不知道您正在进行摄像头连接/断开测试。 您要重新初始化哪些所有组件?  您是否也在重新启动 CSIRX?  

    在这种情况下、CSIRX 侧的通道速度是否可能发生变化?
    此部分是否也重新‑初始化?

    不确定,它真的取决于你在踩着相机的时候。  摄像头是否总是在帧结束时停止? 你是否确定它不是停止在中间? 或者、解串器是否可以配置为在摄像头停止输出的情况下发送帧结束?

    如果这是 SerDes 配置问题、应该可以通过重新初始化来解决;但是、尽管多次重新初始化尝试、该问题仍然存在。

    很难说、CSIRX 只是报告错误、例如传入流中的 CRC 和 ECC。 原因之一可能是配置错误或配置不匹配。  

    此致、

    Brijesh

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

    您好、Brijesh

    [quote userid=“80721" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1620188/tda4al-q1-question-regarding-csirx-stream1-soft-reset-and-i2c4-sysc-register-restoration-on-j721s2/6266874
      IF (1U == errStatus.headerEccIrq)
      {
        适用于 (strmIdx = 0U;strmIdx < CSIRX_NUM_STREAM;strmIdx++)
        {
          /*重置流*/
          GT_ASSERT (CsirxTrace、
               (FVID2_Sok == CsirxDrv_resetStream (instObj、strmIdx));
        }
        STATUS.eventMasks |= CSIRX_EVENT_TYPE_ERR_HEADER_ECC;
        instObj->status.eccCount++;
      }
    [/报价]

    正如我在上述更改中所应用的那样、不再观察到流错误上的 stream1。

    和 标头 ECC、有效载荷 ECC 和数据类型错误被重新采集、以便在摄像头复位之前应用 D-PHY 关闭和打开。

    无论如何、您能解释为什么在软复位 stream1 之后出现 stream1 溢出错误吗?  

    我无法理解、是否存在依赖项软复位和流溢出? 您能解释一下更多细节吗?

    此根本原因分析应与客户共享、因此内容应足够清晰且可解释。
    由于这是一个紧急问题、尽管您的日程安排很忙、但我们恳请您及时进行审查并作出回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lee:

    我们不在 CSIRX 驱动程序中使用 stream1、Stream0 仅用于将捕获的数据写入内存。 根据我的记忆、stream1 用于将 CSIRX 连接到 ISP、但不支持该路径。 因此、重置此路径会导致不必要的溢出。  

    此致、

    Brijesh  

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

    顺便说一句,如何应用 DPHY 关闭和打开? 它是否使用 Sciclient 界面?  

    此致、

    Brijesh

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

    您好、Brijesh

    因此重置此路径会导致不必要的溢出。  [/报价]

    虽然我现在知道不必要的复位会触发溢出、但我想更清楚地了解重置未使用的流 (stream1) 会首先导致溢出的原因。

    具体来说、解释当执行流复位时 CSIRX 内部实际发生的情况、以及复位操作如何导致未主动使用的流溢出会有所帮助。

    例如、以下解释将澄清行为:

    即使未使用 stream1 并且软件未使用其数据、当发生安全复位时、CSIRX 在内部复位流状态并将其转换回默认的活动或可解码状态。 复位后、与流的 DMA/DT 匹配的传入数据包可能会开始写入内部 FIFO 或 VC 逻辑。 但是、由于没有为 stream1 配置 DMA 缓冲区或软件使用者、传入数据不会耗尽、这最终会导致内部 FIFO 填满并触发溢出情况。
    Btw,如何应用 DPHY 关闭和打开? 它是否使用 Sciclient 界面?  [/报价]

    我实现了 CSIRX D-PHY 复位/恢复功能、用于摄像头传感器重新初始化、我想通过分析您的官方 TI PDK 源代码来说明我如何获得该实现。

    csirx_drv.c 中的 Csirx_dphyCfg ()  

    我从该函数中提取了 正确的 D-PHY 寄存器配置

    如下所示使用的寄存器位掩码

    所有复位位 (DL0~3_RESET + CL_RESET) 都必须为 1 (释放)
    所有使能位 (DL0~3_ENABLE + CL_ENABLE) 都必须为  1 (已启用)
    最终寄存器值:0x1F01F

    根据上述分析、我实现了以下 D-PHY 复位序列:

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

    尊敬的 Lee:

    但这是 CSIRX 内部工作的。 出于所有实际目的、stream1 未被使用、然后复位 stream1 不正确、它可能会产生副作用、并可能导致 stream1 溢出。  

    感谢您分享有关 CSIRX 复位的详细信息。  

    此致、

    Brijesh

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

    尊敬的 Lee:

    复位未使用/未启用的流可能会影响其状态机、并会导致其中溢出。

    此致、

    Brijesh