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.

[参考译文] TDA4VM:使用 ub964将新的 YUV 传感器添加到 TDA4VM、但获取错误的 YUV 数据并对&quot 进行 waning;capture:未使用 TIvxCaptureRegisterErrorFrame&quot 提供错误帧;

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1055366/tda4vm-add-new-yuv-sensor-to-tda4vm-with-ub964-but-get-wrong-yuv-data-and-waning-of-capture-error-frame-not-provided-using-tivxcaptureregistererrorframe

器件型号:TDA4VM
主题中讨论的其他器件:DS90UB964-Q1EVMTDA

我的平台是:

J721EXSOMG01EVM+DS90UB964-Q1EVMTDA+DS90UB913+AR0140

传感器输出 YUV 数据,分辨率1280*720。

UB964和 j721EVM 连接到 J721EVM.J52的 J52上、J52是 CSI2 EXP 连接器。

 

我执行下面的整个步骤,但得到错误的 YUV 数据,并看到一些警告,如“

[MCU2_0]  7844.913788 s: vx_zone_warning:[tivxCaptureSetTimeout:772] capture:warning:error frame not provided using tivxCaptureRegisterErrorFrame、defaulting to Forever!!  "

 

1、复印传感器驱动程序。

将成像\sensor_drv\src 中的目录 GW_ar0233_YUV 复制到 GW_ov10635_YUV

IssSensor_CreateParamsis 如下所示(与 GW_ar0233_YUV 几乎相同):

静态 IssSensor_CreateParams GW_ov10635CreatePrms ={

    GW_OV10635_UYVY、    /*传感器名称*/

    0x6、                            /*i2cInstId*/

    {0、0、0、0、0、 0、0、0}、  /*i2cAddrSensor*/

    {0、0、0、0、0、 0、0、0}、     /*i2cAddrSer*/

    /*IssSensor_Info*/

    {

        {

            GW_OV10635_OUT_WIDTH、              /*width*/

            GW_OV10635_OUT_HEIGHT、             /*身高*/

            1、                             /*num_exposures */

            vx_false_e、                    /*line_interleaved*/

            {

                {vx_DF_IMAGE_UYVY、7}、   /*数据格式和 MSB [0]*/

            }、

            0、                             /*meta_height 之前*/

            0、                             /*meta_height_after*/

        }、

        iSS_SENSOR_GW_OV10635_特性,    /*特性*/

        Algorithms_iSS_AEWB_MODE_NONE、 /*aewbMode*/

        60、                            /*fps*/

        4、                             /*numDataLanes*/

        {1、2、3、4}、                  /* dataLanesMap*/

        {0、0、0、0}、                  /* dataLanesPolarity */

        CSIRX_LANK_BADER_SPEED_720_TO_800_Mbps、/* CSI_laneBandSpeed*/

    }、

    1、                                 /*numChan */

    10635、                               /*dccId*/

};

 

2、ub9xx_gw_ov10635_serdec_config.h 中的配置如下所示

(diff:尚未 使用 ub9xxSerCfg_Gw_OV10635)

#define GW_OV10635_OUT_WIDTH          (1280U)

#define GW_OV10635_OUT_HEIGHT         (720U)

 

#define GW_OV10635_SER_CFG_SIZE   (5U)

I2cParams ub9xxSerCfg_Gw_OV10635[Gw_OV10635_SER_CFG_SIZE]={

    {0x0E、0xF0、0xF0}、

    {0x0D、0xF0、0x60}、

    {0x0D、0xB0、0x60}、

    {0x0D、0xB4、0x60}、

    {0xFFFF、0x00、0x0}/*脚本末尾*/

};

 

I2cParams ub9xxGW_OV10635DesCSI2Enable[10U]={

    {0x33、0x03、0x1}、

    {0xFFFF、0x00、0x0}//脚本末尾

};

 

I2cParams ub9xxGW_OV10635DesCSI2Disable[2U]={

    {0x33、0x02、0x10}、

    {0xFFFF、0x00、0x0}/*脚本末尾*/

};

 

3、修改 ub964DesCfg_Common、如下所示

#define common_DES_CFG_SIZE   (36U)

静态 I2cParams ub964DesCfg_Common[common_DES_CFG_SIZE]={

    {0x01、0x02、0x20}、

    {0x1f、0x02、0x00}、

 

    {0x0D、0x90、0x1}、/* I/O 至3V3 -选项对 datasheei*/无效

    {0x0C、0x0F、0x1}、/*启用所有端口*/

 

    {0xBC、0x00、0x1}、/* 720p */

 

    /*选择通道0*/                                               

    {0x4C、0x01、0x10}、

    {0x58、0x58、0x1}、/*启用反向通道、设置为50Mbs*/

    {0x7C、0xE0、0x1}、/*低位8*/

 

 

    /*选择通道1*/

    {0x4C、0x12、0x10}、

    {0x58、0x58、0x1}、/*启用反向通道,设置为50Mbs*/

{0x7C、0xE0、0x1}、/*低位8*/

 

    /*选择通道2*/

    {0x4C、0x24、0x10}、

    {0x58、0x58、0x1}、/*启用反向通道,设置为50Mbs*/

    {0x7C、0xE0、0x1}、/*低位8*/

    

    /*选择通道3*/

    {0x4C、0x38、0x10}、

    {0x58、0x58、0x1}、/*启用反向通道,设置为50Mbs*/

    {0x7C、0xE0、0x1}、/*低位8*/

   

    {0x20、0x00、0x1}、/*转发和使用 CSIport 0 */

 

    /*设置 GPIO */     

    {0x10、0x83、0x1}、

    {0x11、0xA3、0x1}、

    {0x12、0xC3、0x1}、

    {0x13、0xE2、0x1}、

 

    {0x4C、0x01、0x10}、/* 0x01 */

    {0x32、0x01、0x1}、/*启用 TX 端口0*/

    {0x33、0x02、0x1}、/*启用连续时钟模式和 CSI 输出4lnae out endbale */

    {0x4C、0x12、0x10}、/* 0x12 */

    {0x32、0x01、0x1}、/*启用 TX 端口0*/

    {0x33、0x02、0x1}、/*启用连续时钟模式和 CSI 输出*/

    {0x4C、0x24、0x10}、/* 0x24 */

    {0x32、0x01、0x1}、/*启用 TX 端口0*/

    {0x33、0x02、0x1}、/*启用连续时钟模式和 CSI 输出*/

   

 

    {0x4C、0x38、0x10}、/* 0x38 */

    {0x32、0x01、0x1}、/*启用 TX 端口0*/

    {0x33、0x03、0x1}、/*启用连续时钟模式和 CSI 输出*/

    {0xFFFF、0x00、0x0}//脚本末尾

};

 

4、在 iss_sensor.c 中

(1)在函数 IssSensor_DeserializerInit 中

仅调用 “status = ub960_cfgScript (ub964DESCfg_Common,0U); ”

 

  • 函数 ImageSensor_RemoteServiceHandler 中

删除所有禁用 UB960Broadcast (0)和禁用 UB960Broadcast (1)

删除所有 IssSensor_Config()

(如果调用 disableUB960Broadcast,则会发生写入 reg 失败错误。)

  • In 函数 IssSensor_Init()

添加状态|= IssSensor_Gw_ov10635_Init();

 

5制作并运行

生成图像和 v裂变 应用并运行 vx_app_single_cam.out。 选择 SENSOR (传感器)并选择 LDC =0选择‘s’ (LDC =0)以保存数据。 日志如下所示。

 

 

 使用、

  /vx_app_single_cam.out --cfg

 

默认为交互模式

IttCtrl_registerHandler:在位置0注册的命令回显

IttCtrl_registerHandler:在位置1注册的命令 iss_read_2a_params

IttCtrl_registerHandler:在位置2注册的命令 iss_WRITE_2A_params

IttCtrl_registerHandler:在位置3注册的命令 iss_raW_save

IttCtrl_registerHandler:在位置4注册的命令 iss_YUV_save

IttCtrl_registerHandler:在位置5注册的命令 iss_read_sensor_reg

IttCtrl_registerHandler:在位置6注册的命令 iss_WRITE_SENSOR_reg

IttCtrl_registerHandler:在位置7注册的命令 DEV_CTRL

IttCtrl_registerHandler:在位置8注册的命令 iss_send_dCC_file

 网络:在 IP 地址= 192.168.1.101、套接字端口= 5000时打开!!!

TIvxImagingLoadKernels Done (完成装载通道)

  7837.714153 s:ISS:枚举传感器... !!!

[MCU2_0]  7837.714276 s:ImageSensor_RemoteServiceHandler:IM_SENSOR_CMD_create

[MCU2_0]  7837.714405 s:UB960配置启动

  7837.898528 s:ISS:枚举传感器... 找到0:GW_OV10635_UYVY

选择摄像头端口索引0-7:[MCU2_0]  7837.898354 s:UB960配置结束

[MCU2_0]  7837.898431:IssSensor_DeserializerInit 返回状态= 0

 

无效输入

。 请在0和7之间进行选择

选择摄像机端口索引0-7:0

0x1寄存传感器驱动程序

A:GW_OV10635_UYVY

选择上方的传感器或按“0”自动检测传感器:选择无效

。 请重试

0x1寄存传感器驱动程序

A:GW_OV10635_UYVY

选择上方的传感器或按“0”自动检测传感器:A

选择的传感器:GW_OV10635_UYVY

LDC 选择是(1)/否(0):LDC 选择是(1)/否(0):0

## table_width =1920、table_height=1080

APP_INIT 完成

-------- app_create_graph ----------------

查询 GW_OV10635_UYVY

  7844.885405 s:ISS:正在查询传感器[GW_OV10635_UYVY]... !!!

  7844.885672 s:ISS:正在查询传感器[GW_OV10635_UYVY]... 完成了!!!

已选择 YUV 输入。 将绕过 VISS 和 AEWB 节点。

启用传感器 DCC

传感器宽度= 1280

传感器高度= 720

传感器 DCC ID = 10635

传感器支持的特性= 0x100

启用传感器的功能= 0x100

  7844.885699 s:ISS:正在初始化传感器[GW_OV10635_UYVY],正在执行 IM_SENSOR_CMD_PWRON ... !!!

  7844.885876 s:ISS:正在初始化传感器[GW_OV10635_UYVY],正在执行 IM_SENSOR_CMD_CONFIG ... !!!

  7844.886073 s:ISS:正在初始化传感器[GW_OV10635_UYVY]... 完成了!!!

创建图形

为捕获节点初始化参数

为捕获节点初始化参数

TRUE =YUV_CAM_INPUT

CAPTURE_CONFIG = 0x6e0410

正在创建捕获节点

obj->caption_node = 0x69ad10

XX YUV 格式获取 capt_YUV_image

xxx LDC 未启用

null!= obj->capt_yuV_image

xxx DISPLAY_IMAGE

显示设定目标完成

xx add_graph_parameter_by_node_index

XX vxSetGraphScheduleConfig

vxSetGraphScheduleConfig 完成

vxVerifyGraph 完成

禁用定标器

xxx TIvxExportGraphToDot

[MCU2_0]  7844.885493 s:ImageSensor_RemoteServiceHandler:IM_SENSOR_CMD_QUERY

[MCU2_0]  7844.885555 s:收到的 GW_OV10635_UYVY 查询

[MCU2_0]  7844.885591 s:### createPrms pixel_container:1498831189

[MCU2_0]  7844.885762 s:ImageSensor_RemoteServiceHandler:IM_SENSOR_CMD_PWRON

[MCU2_0]  7844.885805 s:IM_SENSOR_CMD_PWRON:CHANGE_MASK = 0x1

[MCU2_0]  7844.885919 s:ImageSensor_RemoteServiceHandler:IM_SENSOR_CMD_CONFIG

[MCU2_0]  7844.885960 s:应用请求的特性= 0x100

[MCU2_0]  

[MCU2_0]  7844.885991 s:sensorBroadcast = 0 @@@@

[MCU2_0]  7844.886012 s:IM_SENSOR_CMD_CONFIG 返回状态= 0

App_create_graph 退出

APP_CREATE _graph

APP_RUN_graph_interactive

 

 

 ===================================

 演示:单摄像头,带2A

 ===================================

 

 P:打印性能统计数据

 

 S:将传感器原始图像、VISS 输出图像和 H3A 输出图像保存到文件系统

 

 E:出口业绩统计

 

 U:从文件系统更新 DCC

 

 

 X:退出

 

 输入选项:

不支持的命令

 

 

 

 ===================================

 演示:单摄像头,带2A

 ===================================

 

 P:打印性能统计数据

 

 S:将传感器原始图像、VISS 输出图像和 H3A 输出图像保存到文件系统

 

 E:出口业绩统计

 

 U:从文件系统更新 DCC

 

 

 X:退出

 

 输入选项:  7844.911112 s:ISS:正在启动传感器[GW_OV10635_UYVY]... !!!

[MCU2_0]  7844.911186 s:ImageSensor_RemoteServiceHandler:IM_SENSOR_CMD_STREAME_ON

[MCU2_0]  7844.911288 s:IM_SENSOR_CMD_STREAME_ON: CHANGE_MASK = 0x1

[MCU2_0]  7844.911327 s:#sensorBroadcast=0

[MCU2_0]  7844.911353 s:UB960配置启动

[MCU2_0]  7844.912365:UB960配置结束

  7844.913446 s:ISS:正在启动传感器[GW_OV10635_UYVY]... !!!

[MCU2_0]  7844.912522 s:###将端口0设置为锁定##、STATUS=0

[MCU2_0]  7844.912700 s:###pageSelectOriging 13,STATUS:0 ##

[MCU2_0]  7844.913282 s:### LINE_COUNT_73:2

[MCU2_0]  7844.913314 s: LINE_COUNT_74:d0

[MCU2_0]  7844.913337 s: LINE_Len_75:A

[MCU2_0]  7844.913359 s: LINE_Len_76:0

[MCU2_0]  7844.913378 s: ##

[MCU2_0]  7844.913788 s: vx_zone_warning:[tivxCaptureSetTimeout:772] capture:warning:error frame not provided using tivxCaptureRegisterErrorFrame、defaulting to Forever!!

 

 

不支持的命令

 

 

 

 ===================================

 演示:单摄像头,带2A

 ===================================

 

 P:打印性能统计数据

 

 S:将传感器原始图像、VISS 输出图像和 H3A 输出图像保存到文件系统

 

 E:出口业绩统计

 

 U:从文件系统更新 DCC

 

 

 X:退出

 

 输入选项:s

 

YUV 文件名/mnt/opt/vision_apps/test_data/cap_0000.yuv

imgaddr_width = 1280

imgaddr_height = 720

imgaddr_STRIDE = 2560

宽度= 1280

高度= 720

写入1843200字节

1843200字节写入/mnt/opt/vision_apps/test_data/cap_0000.yuv

 

6保存的 YUV 数据 显示为红色并伴有随机噪声。

 

7电路板连接视图

(1) j721evm+964 +摄像头  

(2) j721emv 顶视图

(3) U964顶部