CMOS输出MIPI数据正常,但是读不上来
-
波形如下,
请问应该如何检查CSI这端的问题,以及ths-prepare ths-zero在哪里配置?
-
ths-prepare ths-zero 这些信息一般配置sensor端的,不修改SOC CSI端的。建议查看sensor的datasheet进行修改。sensor驱动中,info->time_hs 信息可以配置soc端的ths-prepare时间。
-
@chengwei_peng 在 CMOS输出MIPI数据正常,但是读不上来 中说:
ths-prepare ths-zero 这些信息一般配置sensor端的,不修改SOC CSI端的。建议查看sensor的datasheet进行修改。sensor驱动中,info->time_hs 信息可以配置soc端的ths-prepare时间。
info->time_hs这个值文档中没有描述,它的单位是什么?ns吗?
-
@chengwei_peng cmos的FAE说ths-zero那个电压有点高,是CSI端没有配置成功。
-
@inomec 好像不是ns,应该是和clk数有关的,往大往小调就行
-
@inomec 不存在什么电压高的,除非本身mipi信号的电压就不对,还是往时序考虑吧。同时可以将sensor的mipi输出配置为非连续时钟模式试试
-
@chengwei_peng MIPI有挺多参数的,我们的代码里面只有info->time_hs可以调节吗?这个值可以有量化参考的东西吗,比如抓波形 量哪一段,是多长时间,然后根据时间设置这个值。
-
@chengwei_peng 这个里面top_clk和isp_clk什么意思,这个值的大小怎么确定?
static struct sensor_win_size sensor_win_sizes[] = { { .width = 906, .height = 640, .hoffset = 0, //1488, .voffset = 0, //1834, .hts = 906+2918, //7648, /* line_length_pck TODO:*/ .vts = 784, /* frame_length_lines,与寄存器的值要一致 */ .pclk = 64 * 1000 * 1000, /* mipi_bps = hts * vts * fps * raw bit / lane num */ .mipi_bps = 128 * 1000 * 1000, // TODO: /* 定义帧率, fps * hts * vts = pclk */ .fps_fixed = 22, .bin_factor = 1, .intg_min = 4 << 4, .intg_max = 784 << 4, .gain_min = 1 << 4, // TODO: .gain_max = 16 << 4, // TODO: .regs = sensor_906_640_regs, .regs_size = ARRAY_SIZE(sensor_906_640_regs), .set_size = NULL, .top_clk = 336000000, .isp_clk = 336000000, },
-
@inomec 这个本身就是soc端出厂的时候就设置好的,不建议修改这个,提高这个值就像你电脑超频了
-
@inomec ths-prepare 这个
-
@chengwei_peng 这个字段啥意思,用修改吗?我看其他sensor驱动中CMB_PHYA_OFFSET1, CMB_PHYA_OFFSET2,CMB_PHYA_OFFSET23都有
info->combo_mode = CMB_TERMINAL_RES | CMB_PHYA_OFFSET2 | MIPI_NORMAL_MODE;
-
@inomec 忘了,看看代码最后怎么使用吧
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号