加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[笔记分享] [Camera] 相机的flash led功能小结

发布时间:2020-12-15 19:53:14 所属栏目:百科 来源:网络整理
导读:平台:msm8926 相关目录及文件: Kernel/drivers/media/platform/msm/camera_v2/sensor/flash: msm_led_flash.c 注册flash为camera架构中的一个subdev,提供ioctl接口给上层camera server调用。 msm_led_torch.c 提供设置torch模式接口,我们没注册进去。(le

平台:msm8926

相关目录及文件:

  • Kernel/drivers/media/platform/msm/camera_v2/sensor/flash:

msm_led_flash.c
注册flash为camera架构中的一个subdev,提供ioctl接口给上层camera server调用。
msm_led_torch.c
提供设置torch模式接口,我们没注册进去。(led_trigger_set_default()里比较的是default_trigger和name,default_trigger在dtsi中被定义,因此下面的leds-qpnp.c才能注册成功set_brightness回调函数)。
msm_led_i2c_trigger.c
如果是单独的flash ic的话通过此文件的i2c接口注册,我们用的pmic自带的flash
led功能,此文件也不需要。
msm_led_trigger.c
注册led驱动,另外还提供config的公共接口。

  • Kernel/drivers/leds:

leds-qpnp.c:
PMIC led相关的功能都放在此文件里空间了,当然也包括了flash led. Flash电流的set核心函数是qpnp_flash_set()。
Led-triggers.c
led_trigger_set_default():name匹配就注册set_brightness回调函数。

  • Kernel/arch/arm/boot/dts/:

msm_pm8226.dtsi
定义flash/torch led相关配置,包括电流大小,周期等。
高通在文档中还介绍了各个property的解释,在leds-qpnp.txt中:

这里写图片描述


- Vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/led_flash

led_flash.c
User space最终通过调用此文件中的ioctl来将设置传递给kernel。主要是led_flash_process()。

两种工作模式:
Camera flash led分flash和torch两种模式。
Flash: 拍照时闪光灯瞬间亮一下的情况,电流比较大,目前是1000mA,最大电流不能超过led的最大承受能力。
Torch: 只用于录video或者拿led当手电筒的情况,电流不能太大,例如现在用的是200mA。

Flash的开启需要先从torch过渡,也就是电流慢慢增大,减小冲击。

保护机制:
有flash timeout,video watchdog timer,short led fault detection等。
另外还有电池低电压的时候降流的功能。

这里写图片描述

调用流程:

这里写图片描述

硬件参数:

这里写图片描述


小结:
电流最终设置的值是多少,需要依据tuning之后的效果。
Flash mode最大只能是1000mA,也要考虑led硬件是否能承受1000mA的电流。

参考文档: 80-NC833-1 page80 80-NC833-5 page98~110 80-NE399-11 第三章节

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读