问题描述
我在调试一款摄像头,报错 iic read chip id err,但是示波器量是有应答信号,但是主机端没有继续发寄存器地址。
.可以看到从机地址0x6e后面ack位拉低了有应答。
这边加上调试信息定位:在src/big/mpp/kernel/sensor/src/gc2053.c
ret = sensor_reg_read(&dev->i2c_info, GC2053_REG_CHIP_ID_H, &id_high);
可以看到在src/big/rt-smart/kernel/bsp/maix3/board/interdrv/i2c/drv_i2c.c
designware_i2c_xfer函数通过 writel(*buffer, &i2c_base->ic_cmd_data);
发过GC2053_REG_CHIP_ID_H地址。但是不知道为什么实际没有发出,导致后面__dw_i2c_read读超时
复现步骤
使用的硬件:IIC1(GPIO40,GPIO41),M_CLK2,MIPI_CSI0
硬件板卡
自己的板子
软件版本
拉的最新系统:仓库: https://e.coding.net/weidongshan/dshanpi-canmv/k230_sdk.git tag: v2.0
其他信息
报错日志:
cur_dev(0), dev_count(1)
cur_chn(0), chn_count(0)
sensorIndex == 40
sample_vicap: dev_count(1), chn_count(0)
sample_vicap, dev[0] in size[1920x1080]
sample_vicap, dev_num(0), chn_num(0), in_size[1920x1080], out_offset[0:0], out_size[1920x1080]
sample_vicap_vb_init, enable dev(0)
sample_vicap_vb_init, enable chn(0), k(0)
sample_vicap_vb_init, dev(0) chn(0) pool(0) buf_size(3110912) blk_cnt(6)
sample_vicap, set dev(0) chn(0) attr, buffer_size(3110912), out size[1920x1080]
sample_vicap out_win h_start is 0 ,v_start is 0
sample_vicap, vicap dev(0) init
mirror mirror is 0 , sensor tpye is 40
first mode is 0
[tuning] dev: 0
acq_win.width: 1920
acq_win.height: 1080
pipe_ctrl: 4261412857
sensor_fd: 5
sensor_type: 40
sensor_name: gc2053
database_name: gc2053-1920x1080
buffer_num: 0
buffer_size: 0
[tuning] chn: 0
out_win.width: 1920
out_win.height: 1080
bit_width: 0
pix_format: 5
buffer_num: 6
buffer_size: 3110912
yraw_size: 0
uv_size: 0
v_size: 0
block_type: 1
wait_time: 500
chn_enable: 1
isp_3dnr_en is 1 g_isp_dev_ctx[dev_num].dev_attr.pipe_ctrl.bits.dnr3_enable is 0
VsiCamDeviceCreate hw:0-vt:0 created!
gc2053_sensor_get_chip_id error ret = 1
gc2053_sensor_power_on, iic read chip id err
kd_mpi_sensor_power_set, error(-1)
gc2053_sensor_init enter, sensor_type:40
kd_mpi_sensor_init, error(1)
kd_mpi_isp_sensor_init, sensor open failed(1)
kd_mpi_isp_sensor_set_test_pattern failed(12)!
kd_mpi_isp_connect, vsi connect failed(13)!
kd_mpi_isp_init, isp connect failed.
kd_mpi_vicap_init, isp init failed.
sample_vicap, vicap dev(0) init failed.
sample_vicap, vicap dev(0) stop stream
kd_mpi_isp_stop_stream, vsi VsiCamDeviceGetPathStreaming stream failed(12) for dev(0)
kd_mpi_isp_stop_stream failed...
sample_vicap, vicap dev(0) stop stream failed.
display_cnt[0], drop_cnt[0]
sample_vicap, vicap dev(0) deinit
kd_mpi_isp_chn_buf_pool_deinit, vsi release buf pool failed(1)!
kd_mpi_isp_deinit, isp chn buf pool deinit failed(-1609203694)!
Press Enter to exit!!!!
可以贴一下解码后的结果吗?看起来是nack的
解码后的结果是什么。示波器那个图片可以看出有ack的。从机地址0x37(0011 0111)图片可以看到波形0110 1110 0(前面七位是从机地址,第8位低是写,第9位拉低是ack)