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.

[参考译文] RTOS/TDA3XEVM:传感器错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/647542/rtos-tda3xevm-sensor-error

器件型号:TDA3XEVM

工具/软件:TI-RTOS

您好!

我 使用的是 VisionSDK 3.1。 在运行用例时、我会收到如下所示的错误

[IPU1-0]----仅对一个传感器进行编程----(指定打印)
[IPU1-1]    19.004758 s: 系统:SW 消息框消息池、可用消息计数= 1023
[IPU1-1]    19.004880 s: 系统:堆= LOCAL_DDR           @ 0x00000000、总大小= 262144 B (256KB)、可用大小= 255168 B (249KB)
[DSP1]     19.005307 s: 系统:SW 消息框消息池,可用消息计数= 1023
[DSP1 ]    19.005368 s: 系统:堆= LOCAL_L2            @ 0x00800000、总大小= 227264 B (221KB)、可用大小= 201984 B (197KB)
[DSP1 ]    19.005429 s: 系统:堆= LOCAL_DDR           @ 0x00000000、总大小= 524288 B (512KB)、可用大小= 511704 B (499KB)
[DSP2]     17.589824 s: 算法:创建完成(algId = 29)!!!
[DSP2 ]    17.590007 s: IPC_OUT_0  :正在创建!!!
[DSP2 ]    17.590099 s: IPC_OUT_0  :创建完成!!!
[DSP2]     19.005703 s: 系统:软件消息框消息池,可用消息计数=1023
[DSP2 ]    19.005734 s: 系统:堆= local_L2            @ 0x00800000、总大小= 227264 B (221 KB)、可用大小= 27264 B (26 KB)
[DS2 ]    19.005795 s: 系统:堆= LOCAL_DDR           @ 0x00000000、总大小= 524288 B (512 KB)、可用大小= 519408 B (507 KB)
[EVE1]     19.006374 s: 系统:SW 消息框消息池,可用消息计数= 1023
[EVE1 ]    19.006649 s: 系统:堆= LOCAL_L2            @ 0x40020000、总大小= 22528 B (22KB)、可用大小= 17632 B (17KB)
[EVE1 ]    19.007137 s: 系统:堆= LOCAL_DDR           @ 0x00000000、总大小= 262144B (256KB)、可用大小= 245456 B (239KB)
[IPU1-0]    20.489843 s:
[IPU1-0]    20.490117 s: i2cMdSubmitChan:i2c1传输到从地址0x40失败
[IPU1-0]    20.490209 s:src/bsp_deviceI2c.c @第667行:
[IPU1-0]    20.490300 s: I2C1:DEV 0x40:错误!!!
[IPU1-0]    20.490392 s:src="BSP_deviceI2c.c @第689行:
[IPU1-0]    20.490483 s: I2C1:错误超时255 ms!!!
[IPU1-0]    20.490575 s: ISS_SENSOR_START:句柄后
[IPU1-0]    20.490636:
[IPU1-0]--禁用传感器广播--(给定打印)
[IPU1-0]    20.493289 s:

出现此错误后、会出现断言。 但是、我们对断言部分进行了注释、并成功获得了视频输出。 我们如何解决该误差?

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

    您在哪个用例上看到了此问题? 您还能显示断言失败的日志吗?

    谢谢、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我觉得摄像头传感器在 i2c1地址0x40处进行搜索。 但是、我发现 TDA3x EVM 上的摄像头传感器默认路由到 i2c2。
    我认为存在2个修复程序:
    1.在软件中将 I2C1更改为 I2C2。 我想知道为什么以前没有这么做...
    2.将跳线 RJ5和 RJ6切换到其他位置以选择 I2C1。 但是、这将涉及一些焊接。

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

    感谢你能抽出时间。 在代码 I2C0中、I2C1和 I2C1中、I2C2是指 I2C2、这是我发现的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在看到了。 那么、它是否是错误的地址? 是否在传感器本身中设置了0x40? 我没有手动的传感器图。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Stan、

    传感器的地址为0x62、因为我们使用的是4个具有相同 I2C 地址的传感器、因此为这4个传感器设置了别名地址。 0x40、0x42、0x44、0x46是传感器的别名地址。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Stan

    对于解决此错误、您还有其他建议吗? 我还不能解决这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、

    新年快乐!

    您的问题将转发给另一位专家。
    只是让您知道、有些假期仍在进行中、而回复将会延迟。

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

    您好、Blessy、

    您是否能够解决此问题?

    如果不能、请澄清、删除断言后、您能够捕获视频流并显示。 我们是否可以推断在删除断言后可以对传感器进行编程?

    此致、Sujith

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

    您好、Sujith、
    我们更改了串行器功能模式。 有两种操作模式、一种是将外部振荡器用作参考时钟(48MHz)、另一种是将来自成像仪的像素时钟用作参考时钟(2MHz)。 我们选择了第二个、即24MHz。 正如我在上一个问题中所提到的、我们正面临着这个问题。 我们仍然是。 我们注释了断言部分、并捕获了视频流。

    我们使用48MHz 设置进行了测试、当时我们没有看到此错误。 我们要继续进行24MHz 设置。 我找不到24MHz 设置的任何软件代码更改。 这方面还有什么要做的?

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

    您好、Blessy、

    您能否共享您正在使用的 UB913和 UB914配置?

    24MHz 像素时钟可能是问题之一、请参阅 UB913/UB914技术参考手册、有效范围从25MHz 开始。

    此致、Sujith

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

    BspUtils_Ub960I2cParams gUb960Cfg_IMI[]={
    {0x01、0x01、0xFFF}、/*数字复位0 */
    {0x1F、0x05、0x4FF}、

    /* IMI OV10640 1 */
    {0x4C、0x01、0x0}、//RX0
    {0x58、0x58、0x0}、//BC FREQ 选择:2.5Mbps
    {0x6D、0x7D、0x0}、
    {0x5D、0xB0、0x0}、//slaveID[0]= 0XB0 (串行器= 0XB0?)
    {0x65、((UINT8)(IMI_PORT_0_SER_ADDR << 1U))、0x0}、
    {0x5E、0x62、0}、//slaveID[1]= 0x62 (传感器= 0X62)
    {0x66、((UINT8)(IMI_PORT_0_SENSOR_ADDR << 1U))、0x0}、
    {0x7C、0x00、0x0}、
    {0x6E、0x99、0x0}、//GPIO
    {0x70、0x2B、0x0}、//RAW10
    {0x71、0x2C、0x0}、//RAW12


    /* IMI OV10640 2 */
    {0x4C、0x12、0x0}、//RX1
    {0x58、0x58、0x0}、
    {0x6D、0x7D、0x0}、
    {0x5D、0xB0、0x0}、//slaveID[0]= 0XB0 (串行器= 0XB0?)
    {0x65、((UINT8)(IMI_PORT_1_SER_ADDR << 1U))、0x0}、
    {0x5E、0x62、0}、//slaveID[1]= 0x62 (传感器= 0X62)
    {0x66、((UINT8)(IMI_PORT_1_SENSOR_ADDR << 1U))、0x0}、
    {0x7C、0x00、0x0}、
    {0x6E、0x99、0x0}、
    {0x70、0x6B、0x0}、
    {0x71、0x6C、0x0}、


    /* IMI OV10640 3 */
    {0x4C、0x24、0x0}、
    {0x58、0x58、0x0}、
    {0x6D、0x7D、0x0}、
    {0x5D、0xB0、0x0}、//slaveID[0]= 0XB0 (串行器= 0XB0?)
    {0x65、((UINT8)(IMI_PORT_2_SER_ADDR << 1U))、0x0}、
    {0x5E、0x62、0}、//slaveID[1]= 0x62 (传感器= 0X62)
    {0x66、((UINT8)(IMI_PORT_2_SENSOR_ADDR << 1U))、0x0}、
    {0x7C、0x00、0x0}、
    {0x6E、0x99、0x0}、
    {0x70、0xAB、0x0}、
    {0x71、0xAC、0x0}、


    /* IMI OV10640 4 */
    {0x4C、0x38、0x0}、
    {0x58、0x58、0x0}、
    {0x6D、0x7D、0x0}、
    {0x5D、0xB0、0x0}、//slaveID[0]= 0XB0 (串行器= 0XB0?)
    {0x65、((UINT8)(IMI_PORT_3_SER_ADDR << 1U))、0x0}、
    {0x5E、0x62、0}、//slaveID[1]= 0x62 (传感器= 0X62)
    {0x66、((UINT8)(IMI_PORT_3_SENSOR_ADDR << 1U))、0x0}、
    {0x7C、0x00、0x0}、
    {0x6E、0x99、0x0}、
    {0x70、0xEB、0x0}、
    {0x71、0xEC、0x0}、

    {0xB0、0x1C、0xFFF}、/CSI2保留寄存器
    {0xB1、0x13、0xFFF}、
    {0xB2、0x1F、0xFFF}、

    {0x32、0x01、0x0}、// CSI0选择
    #ifdef Board_type_TDA3XX_RVP
    {0x33、0x03、0x0}、/*启用 CSI2连续时钟*
    其他
    {0x33、0x01、0x0}、//CSI_EN 和 CSI0 4L
    #endif
    {0x20、0x00、0x0}、//将所有 RX 转发到 CSI0

    {0x10、0x81、0x0}、//GPIO0输出启用、选择了 Framesync 信号
    {0x11、0x1、0x0}、//GPIO1输出启用、RX 端口通过指示
    {0x12、0xc1、0x0}、//GPIO2输出被启用、
    };


    BspUtils_Ub960I2cParams gUB913SerCfg[]={
    {0x03、0xC5、0x0}、
    {0x0D、0x99、0x0}、

    /*将默认 I2C 时钟速率更改为100KHz */
    /*默认值0x82 = 74kb/s
    0x64 = 100kbps
    0x32 = 400kbps */
    {0x11、0x32、0x0}、/* SCL 高电平周期*/
    {0x12、0x32、0x0}/* SCL 低电平周期*/
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Blessy、

    我们能否检查以下内容  

    1. 确保检测到反向通道锁定
      1. 这是确保 UB964和 UB913之间通信所必需的
      2. 删除断言(默认情况下支持的 IMI 模块以外部时钟模式运行、不需要反向通道锁定检查、因此需要断言)
      3. 对 UB964和 UB913进行编程后、应检查 UB964的寄存器0x4D、位0是否应置位。
        • 等待直到检测到锁定
      4. 确保检查所有接收通道、通过将0x4C 编程为0x01用于端口0、将0x12用于端口1等来选择接收通道。
    2. 像素时钟
      1. 最小像素时钟为25MHz、建议使用25MHz 像素时钟运行
    3. 检查 UB913处报告的反向通道频率
      1. 对 UB964和 UB913进行编程后、添加1秒延迟
      2. 针对所有连接的 UB913读取 UB913寄存器0x14的内容

    此致、Sujith

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

    感谢您的回答。 我核对了上述各点。

    1.检测到反向通道锁定。 在 UB964和 UB913编程之后-检查了每个通道的0X4D 寄存器。 第0位正在设置。 以下是观察到的值。
    0x4D = 0x13
    0x4D = 0x53
    0x4D = 0x93
    0x4D = 0xd3
    2.获得的像素时钟为48MHz
    3.在对 UB964和 UB913进行编程后增加了1秒的延迟
    对于所有连接的 UB953、寄存器0x14的内容= 0x00。

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

    您好、Blessy、

    1.您能多次(2次)读取 UB964的0x4D 以确保指示正确的状态吗?

    2.尝试降低 I2C 时钟速度、即在 UB913配置中、请注释掉写入寄存器 0x11和0x12的值。 即让 I2C 以默认速度运行。

    有趣的是、在对 UB964/UB913进行编程并启动传感器编程后、可以访问传感器。 因此、经过一段延迟后、传感器确实可以访问。

    此致、Sujith

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sujith、
    1.我多次尝试读取 UB964寄存器0x4D 中所有端口的值。 每次设置最后一个位时。
    0x4D = 0x13
    0x4D = 0x53
    0x4D = 0x93
    0x4D = 0xd3
    0x4D = 0x03
    0x4D = 0x43
    0x4D = 0x83
    0x4D = 0xc3
    2.注释掉两个寄存器值0x11和0x12、使 I2C 以默认速度运行

    出现相同的错误、但视频工作正常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Blessy、

    我可以请求您联系 TI FAE 来帮助您、我们需要一个工作会议来对此进行调试。

    此致、
    Sujith