最近调试MT9P111 摄像头时camera FAE方面要求使用主控控制闪关灯(具体情况好像是用sensor控制太麻烦了
)。发了几封邮件要求提供相关参数配置,但拿到的参数连闪关灯都无法打开。
看了闪光灯控制芯片数据手册,其基本方法为:1.使能闪光灯模式 2.enable闪光灯。尝试使用定时器控制闪光灯,但效果不理想。主要为以下两方面原因:
1.闪光灯必须在Vsync信号输出前打开,否则图片就可能会出现前半部分未被闪光。
2.不同尺寸图片闪光时间略有差异。最好在Vsync停止后关闭闪光灯。
在阅读iMX53 IPU部分数据手册时发现其提供闪光灯与机械快门控制功能SISG(Still Image Synchronization Generator),硬件解决上面遇到的2大头疼问题
。模块框图如下:


工作原理为SISG COUNTER对被Vsync使能的SISG_CLK时钟计数,当该计数器值大于SISG_SET寄存器设定值时将sisg_out对应引脚执行SET操作,当该计数器继续计数到大于SISG_CLR寄存器值时对isg_out对应引脚执行CLR操作。这样就可以产生与Vsync相关的触发脉冲了,并且脉冲的起始边沿offset与脉宽都可以用户配置。
接下来就是添加IPU的SISG驱动,一共就4个寄存器需要控制。半天时间搞定了,经过测试效果相当不错。
接下来就是添加IPU的SISG驱动,一共就4个寄存器需要控制。半天时间搞定了,经过测试效果相当不错。
需要注意的是IPU_SISG_CTRL0寄存器的MCU_ACTV_TRIG位,最新手册描述为:Reserved, should be cleared. 实际是可以用的。需要先SET然后CLR,用以CPU启动SISG模块。
本文介绍了一种通过SISG(Still Image Synchronization Generator)模块优化摄像头闪光灯控制的方法。面对软件控制闪光灯的挑战,如同步问题及不同图片尺寸所需的闪光时间差异,SISG提供了硬件级别的解决方案。通过计数与Vsync信号同步的时钟周期并设置特定阈值,实现了精确的闪光灯开启与关闭时机控制。
3437

被折叠的 条评论
为什么被折叠?



