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.

[参考译文] TDA4VL-Q1:复位 CSI_RX_IF 模块

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1624448/tda4vl-q1-reset-the-csi_rx_if-module

器件型号: TDA4VL-Q1
主题中讨论的其他器件: TDA4VL

我们正在与配合使用 Texas Instruments TDA4VL (J721S2) 处理器上的 CSI-RX 接口 、从接收图像数据 CSI2 的 Maxim/ Analog Devices 解串器
大多数情况下、我们的应用程序可以正常运行并无问题地捕获图像。

但是、在产品级测试期间、特别是在多次测试之后 电源‑下电上电序列 —CSI-RX 接口最终停止接收任何图像(没有捕获帧),我们观察到几个 Csirx_InstStatus错误计数器 增大:

  • CRC 错误计数:每 10 秒 160 次
  • 未校正的 ECC 错误计数:每 10 秒 6000 次。
  • 已更正 ECC 错误计数:每 10 秒 5000 次。
  • 数据 ID 错误计数:每 10 秒 160 次。
  • 无效的短数据包错误计数:每 10 秒 70 次。

此行为的发生频率更高 –40°C 85°C (每 5 小时下电上电一次)。

根据 J721S2/TDA4VE/TDA4AL/TDA4VL/AM68A 处理器器件修订版本 1.0 勘误表、存在一个已知问题:

当 CSI2 接口接收到一个可能存在 CRC 错误的不完整帧时、模块可能会进入一个未知状态、在该状态下不会捕获所有后续帧。
解决方法:复位 CSI_RX_IF 模块。


已实施恢复序列

按照勘误表指南、我们执行重复的下电上电‑μ s 循环、直到出现 CSI-RX 错误。
然后、我们执行两个恢复序列、每个序列尝试两次:

序列 1 - VID2 驱动程序复位 (根据 csirx/csirx_test.c src)

 
Fvid2_stop(drvHandle, NULL);

/* dequeue any previously queued frames */
Fvid2FrameList_init(&frmList);
Fvid2_dequeue(drvHandle, &frmList, 0U, FVID2_TIMEOUT_NONE);
cleanFrames(handle);

/* requeue empty frame list */
Fvid2FrameList_init(&frmList);
status = Fvid2_queue(drvHandle, &frmList, 0U);

Fvid2_start(drvHandle, NULL);

序列 2—完全软件复位

这包括:

  • 取消初始化过程(以下过程)
Fvid2_stop(drvHandle, NULL);

/* dequeue any previously queued frames */
Fvid2FrameList_init(&frmList);
Fvid2_dequeue(drvHandle, &frmList, 0U, FVID2_TIMEOUT_NONE);
cleanFrames(handle);

/* Disable Error Events */
Fvid2_control(drvHandle, IOCTL_CSIRX_UNREGISTER_EVENT, (void*) CSIRX_EVENT_GROUP_ERROR, NULL);
Fvid2_delete(drvHandle, NULL);        
(void) SemaphoreP_delete(lockSem);
  • FVID2 捕获驱动程序完全重新初始化、
  • 传感器重新配置、
  • 重新配置外设组件、
  • 以及任何相关的板级初始化。

观察到的结果

执行这些恢复步骤后、 CSI-RX 接口不会在同一下电上电过程中恢复图像捕获
不过、在中 下一次下电上电 、系统将正常引导、映像捕获将再次工作。


问题

根据勘误表建议重置 CSI_RX_IF 模块 、可能需要执行哪些额外步骤来确保 CSI-RX 子系统完全有效地重置、以便在不需要完全重启的情况下恢复映像捕获? 温度是否与此类误差直接相关?

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

    您好、

    CSIRX 恢复是一个复杂的过程,通常,你需要  

    -停止来自解串器和传感器的输入流

    -停止 CSIRX 驱动程序

    -清除驱动程序中的所有缓冲区

    -重置 CSIRX 模块

    - Re — 将缓冲器设为 CSIRX 驱动器

    -启动 CSIRX 和传感器驱动程序。  

    另外、我不确定您是如何进行 CSIRX 复位的。 据我所知、没有任何可调用的 API 来直接进行复位。 您可能需要关闭电源并打开电源。 或者执行一些本地复位(如果可用)。  

    但在进入之前,这个请求是为哪一个项目? 您可以分享一些背景信息吗?  

    此致、

    Brijesh