AE (5)_auto exposure的驱动控制

#灵感# 有个项目,一开始驱动没配好,自动曝光乱飞。所以记下配置

参考链接:关于 bringup sensor 时,曝光时间异常的问题排查-CSDN博客

目录

确认最大曝光行:

1、曝光行配置

2、增益配置

raw 图发紫:


确认最大曝光行:

帧长地址:

帧长数值:

【配置最大曝光行: 0x4b0 - 8 = 1192

(frame_length(帧长) = exposure_line(曝光行) + dummy_line)

  

 像素阵列:

1、曝光行配置

先确认sensor 的曝光寄存器地址


 

曝光值在sensor 寄存器中存储的形式为:

一个值存在3个地址中,这就涉及移位操作,补一下移位操作的理论:

综上,此sensor的曝光时间应该这么写入:

sc223a_write_register(0x3e00, (Exposure_line>>12) & 0x0f); ( 右移12位后只剩3e00相关数值)

sc223a_write_register(0x3e01, (Exposure_line>>4) & 0xff);  (右移4位后剩3e00 和3e01数值,与&ff操作后,仅剩3e01相关数值。)

sc223a_write_register(0x3e02, ((Exposure_line>>0) & 0x0f) << 4);   (与&0f 后,剩3e02数值,再左移4位,写到[7:4]里)

附加的设置:这个sensor 的步长为半行时间,则曝光时间是半行*2。也就是写入数据需要*2再写入。之前算的曝光行,实际最大的写入= 0x4b0 *2 -10 = 2390。工具能读出max=2390/2=1195.

Exposure_line *= 2; // AEC 的调节步长为半行时间,半行时间为一行时间除以 2

2、增益配置

配置模拟gain,查 gain_table 写入寄存器regValTable 生效:

 

 

    ana_reg = ana_gain_regValTable_1[i];

    sensor_fine_gain = sensor_gain / ana_gain_regValTable_2[i];

    pRegInfo->settings[pRegInfo->settingSize].regAddr = 0x3e09;
    pRegInfo->settings[pRegInfo->settingSize].regData = ana_reg;

配置完模拟增益,需要再配置数字增益,也需要设置寄存器table 和 gain table。

当前这个sensor 的 again 只有表格对应的倍数,同时向下对齐取值。当total gain=8x时,模拟gain =7.24x, 剩下的由 dgain 补充, 约为 8/ 7.24=1.105,对应的dig gain 寄存器地址为0x8c。

---------------------我这糟心的代码能力。得赶紧补补

raw 图发紫:

补一个raw 图发紫的sensor驱动设置:

sensor的 first pixel 读取如果和ISP 的bayer pattern(RGGB ) 不匹配时,raw 颜色会异常。表现为全屏偏红,无明显可区分彩色。

  

需要修改sensor 的window location。比如此例按默认的读取会偏色,需要进行移位:

GBRG 变成 RGGB。

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327589.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《MySQL系列-InnoDB引擎06》MySQL锁介绍

文章目录 第六章 锁1 什么是锁2 lock与latch3 InnoDB存储引擎中的锁3.1 锁的类型3.2 一致性非锁定读3.3 一致性锁定读3.4 自增长与锁3.5 外键和锁 4 锁的算法4.1 行锁的三种算法4.2 解决Phantom Problem 5 锁问题5.1 脏读5.2 不可重复读5.3 丢失更新 6 阻塞7 死锁 第六章 锁 开…

BMS电池管理系统带充放电控制过流过压保护

2.4G无线采集BMS开发板&#xff08;主从一体&#xff09; 全新升级 &#xff08;赠送上位机源码TTL 上位机&#xff0c;可以改成自己想要的界面&#xff09; 12串电池TTL上位机 CAN通信上位机源码有偿开源&#xff0c;供项目二次开发。 增加STM32平台 USB转TTL通信 CAN通信 增加…

软件测试|使用PyMySQL访问MySQL数据库的详细指南

简介 PyMySQL是Python中流行的MySQL数据库驱动程序&#xff0c;它提供了便捷的方法来连接、查询和更新MySQL数据库。本文将为您提供使用PyMySQL访问MySQL数据库的详细指南&#xff0c;包括安装PyMySQL、连接数据库、执行查询和更新操作等。 环境准备 在开始之前&#xff0c;…

死锁与读写锁

一、死锁 死锁&#xff08;Deadlock&#xff09;是在并发计算中的一种状态&#xff0c;其中两个或多个进程无法继续执行&#xff0c;因为每个进程都在等待另一个进程释放所占用的资源。这种情况通常发生在系统中的资源分配过程中&#xff0c;其中每个进程都占用一些资源&#…

揭秘大模型「幻觉」:数据偏差、泛化与上下文理解的挑战与解决之道

什么是大模型「幻觉」 所谓的「幻觉」指的是当大模型生成与现实不符或逻辑上不连贯的信息时。这通常发生在模型对某些数据理解不足或数据本身存在偏差的情况下。由于模型是基于概率统计和以往数据训练的,它们可能在面对未知或少见情况时产生不准确的推断。 大模型不具有本地知…

docker - 常用容器部署命令大全(MySQL、Redis、RabbitMQ、ES、Kibana、Nacos、Sentinel)

目录 一、常用容器运行指令 MySQL Redis RabbitMQ ElasticSearch & kibana Nacos Sentinel 一、常用容器运行指令 MySQL docker run -d --name mysql -p 3306:3306 -e TZAsia/Shanghai -e MYSQL_ROOT_PASSWORD1111 mysql:5.7 -e TZAsia/Shanghai&#xff1a;指定…

BMTrain来高效训练预训练模型-大模型的福音

一.背景知识 在2018年&#xff0c;预训练语言模型技术的出现成为人工智能领域一场革命性的变革。研究表明&#xff0c;通过增加模型参数量和训练数据规模&#xff0c;可以有效提升语言模型的性能&#xff0c;因此十亿、百亿甚至千亿级大模型的探索成为业界的热门话题。这一趋势…

LLM Agent之数据分析领域的应用

数据分析&#xff1a;Data-Copilot paper: Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow github: https://github.com/zwq2018/Data-Copilot 先介绍下浙大提出的已扩展的数据分析框架&#xff0c;支持多种金融数据类型的查询&#xff0c;数…

HIL(硬件在环)技术汇总梳理

HIL&#xff08;Hardware-in-the-Loop&#xff09;测试领域的知名公司有dSPACE、NI、Vector和speedgoat等&#xff0c;以下是针对这几家HIL技术的对比分析&#xff1a; 文章目录 dSPACE NI Vector speedgoat 总结 dSPACE dSPACE成立于1988年&#xff0c;起源自德国的帕德…

使用pagehelper插件进行分页查询

一、导入mybatis和pagehelper坐标 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version> </dependency> <dependency><groupId&…

Mysql为什么只能支持2000w左右的数据量?

首先说明一下&#xff1a; MySQL并没有硬性规定只能支持到2000万左右的数据量。 其实&#xff0c;MySQL能够处理的数据量远远超过这个数字。无论是开源社区版还是商业版&#xff0c; MySQL在适当的硬件和配置下&#xff0c;都能够支持非常大的数据集。 通常所说的“MySQL只能…

Archlinux下自启动rclone mount

路径&#xff1a; /etc/systemd/system/rclonemount.service [Unit] Descriptionrclonemount Requiresnetwork-online.target.wants Afteralist.service[Service] Typesimple ExecStartPre/bin/mkdir -p /media ExecStart/usr/bin/rclone mount \aliyun: /media \--config /ro…