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.

[参考译文] TDA4VE-Q1:如何复位 CSIRX

Guru**** 2540270 points
Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1391991/tda4ve-q1-how-to-reset-csirx

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

工具与软件:

大家好、TI 专家:

我们要通过以下步骤重置 tda4ve 板上的 csirx:

CameraFxns_4_TO_1.streamOff (0);
appLogWaitMsecs(1);

/*仅当这是最后一个活动虚拟上下文时才停止流*/
*(volatile unsigned int *)(0x04504100))= 0x02;
/*停止所有虚拟通道*/

/* VC0 */
regval =*(volatile unsigned int *)(0x04500020);
*(volatile unsigned int *)(0x04500020))=(regval 和0x7FFFFFFF);
/* VC1 */
regval =*(volatile unsigned int *)(0x04500040);
*(volatile unsigned int *)(0x04500040))=(regval 和0x7FFFFFFF);/* VC2 */
regval =*((volatile unsigned int *)(0x04500060));
*(volatile unsigned int *)(0x04500060))=(regval 和0x7FFFFFFF);

/* VC3 */
regval =*(volatile unsigned int *)(0x04500080);
*(volatile unsigned int *)(0x04500080))=(regval 和0x7FFFFFFF);
appLogWaitMsecs(10);

/*使像素接口复位生效*/
regval =*((volatile unsigned int *)(0x04500010));
*(volatile unsigned int *)(0x04500010))=(regval 和0xFFFFFFFE);

/*在配置前重置流*/
*(volatile unsigned int *)(0x04504100))= 0x10;

regval =*((volatile unsigned int *)(0x04504104);
/*等待流变为空闲*/
while (((regval &(1 << 8))!= 0x0U)&&((regval &(0xF << 4))!= 0x0U)

regval =*((volatile unsigned int *)(0x04504104);
}

/*为 PSIL 线程启用 DMA 上下文*/
/* VC0 */
regval =*(volatile unsigned int *)(0x04500020);
*(volatile unsigned int *)(0x04500020))=(regval | 0x80000000);
/* VC1 */
regval =*(volatile unsigned int *)(0x04500040);
*(volatile unsigned int *)(0x04500040))=(regval | 0x80000000);
/* VC2 */
regval =*((volatile unsigned int *)(0x04500060));
*(volatile unsigned int *)(0x04500060))=(regval | 0x80000000);

/* VC3 */
regval =*(volatile unsigned int *)(0x04500080);
*(volatile unsigned int *)(0x04500080))=(regval | 0x80000000);

/*开始流*/
*(volatile unsigned int *)(0x04504100))= 0x01;
appLogWaitMsecs(10);

CameraFxns_4_TO_1.streamOn (0);

购买之后执行上述步骤,流无法恢复。


您能帮助找出问题吗?   

下面附加了日志:

e2e.ti.com/.../log_2800_1_2900_.txt

我们的 SDK 版本是9.2

谢谢

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

    尊敬的 Xie JC:

    但为什么要复位 CSIRX? 您能不能帮助我了解此次变更的原因?  

    此致、

    Brijesh

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

    您好、Brejesh

    谢谢。

    我们发现有时程序会卡在 csirx 中、并且我们已经应用了 TI 提供的补丁(在 tda4vm SDK 8.4上进行了补丁)、因此我们想要添加一个恢复机制、看看它是否能在异常发生时恢复。

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

    您好、Brijesh

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

    尊敬的 Xie JC:

    但在什么情况下它会卡住? 是否遇到一些溢出或其他错误? 我 不明白您为什么需要复位 CSIRX。  

    此致、

    Brijesh

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

    您好、Brijesh:

    谢谢。

    我理解您的担忧。 我们在上电和显示图像时会遇到问题。 我们已确认解串器会向 SoC 提供 MIPI 数据、但 csirx 会卡住。  我们之前在 TDA4VM SDK 8.4上应用了补丁、但问题仍然是偶尔出现的。 因此、我们正在寻找一种恢复机制来处理异常情况。 至于我们在 VE 上调试的原因、我认为这部分代码的实现是类似的、因此我们将在 VE 上测试。 您能否直接告诉我需要操作哪些寄存器来 从卡滞状态恢复 csirx?

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

    尊敬的 Xie JC:  

    该主题的任何进一步更新? 让我们知道是否可以将其关闭。  

    此致、

    Brijesh