常见问题
12 Nov 2024
Read time: 1 minute(s)
摄像头初始化失败
现象
板子启动后,摄像头注册失败,此时 DVP 的注册流程也无法完成。
画面不够流畅
现象
界面显示的摄像头画面有明显卡顿情况。
原因分析
很可能是 OS 的调度不够及时导致,导致 DVP 的帧采集不连续。
解决方法
-
如果 DVP 驱动中的调试信息打开了,每一帧数据处理都有输出 log,会影响帧率,需要关掉。提升 log 级别即可。
-
尝试增加
test_dvp
中的 buffer 数量,保证 buf 队列中有充裕的空闲 buf。
画面被矩形切割
现象
从摄像头采集并回显到屏幕,画面出现被矩形切割成多份,如下图
原因分析
摄像头内部会根据 CLK_OUT 产生一个 pixclk,
-
pixclk 的驱动能力有上限值,由驱动芯片决定
-
pixclk 的频率值由分辨率、帧率决定,分辨率、帧率越高需要的 pixclk 也越高
-
相应的, pixclk 的频率值越高,要求驱动能力也要越高
比如 D13x 开发板上驱动芯片只能支持 pixclk 到最高 50 MHz,如果预期的 pixclk 超出 50 MHz 就会导致同步信号发生异常,于是画面出现不对齐的情况。
解决方法
调低摄像头驱动中的帧率、分辨率配置。以 OV5640 为例,可调整以下配置参数(详见 drv_ov5640.c):