以S4-9296的2号通道(A口)为例:
1.在./config文件夹下创建新的文件夹,文件夹的名称模板为 模组名称_分辨率_帧率_位深_Lane数
在新文件夹下需要包括点亮模组所需的配置文件,以此次为例则需要包括两个文件为:
模组名称_分辨率_帧率_位深_Lane数_init.json文件和模组名称_分辨率_帧率_位深_Lane数_A.json文件
2.配置init.json文件,init.json文件分为几个部分:
(1)i2c-map:
关于参数的具体解析,可以观看论坛的ecFG S*-9296系列配置视频_基础篇(二)ecFG S*-9296系列配置视频_基础篇(二) | OpenNCC-Robotic Cam (eyecloudai.com),此教程只讲解如何配置;
i2c-map部分包含的是slave address,
<a>在slave0中,需要修改的为physical-addr,virtual-addr与type;
physical-addr需要根据解串芯片手册来配置,以9296为例,询问硬件工程师来确定使用哪个,需要注意的是表中的是8为寄存器,而配置文件中需要的是7位寄存器,要注意转换,比如例子模组需要的参数是0xC4,写到配置文件中就应该位0x62即可;
virtual-addr需要确认解串芯片是否具有虚拟地址功能,需要查看芯片手册或者咨询FAE即可,不具有虚拟地址功能一般设置为oxFF即可;
type为协议数据类型,根据需要进行配置即可,一般默认为16_8j即可;(SDK暂不支持16_16数据类型,需要支持请联系FAE);
<b>在slave1中,需要修改的为physical-addr,virtual-addr与type;
physical-addr需要查看模组手册的slave addre进行配置,需要注意寄存器地址是7位还是8位,配置文件需要的是7位寄存器,
virtual-addr的配置只要不与其他物理地址与虚拟地址冲突即可,寄存器位数为7位;
type配置与slave0相同即可。
(2)MIPI-DPHY:
<a>第一部分与添加模组的需求参数相关,需要配置出图的宽高,帧率FPS(300000的含义为30.0000帧),位深为图像的位深;
<b>第二部分中的nlane目前只支持2lane,后续增加其他lane数另作说明,lane_speed需要根据sensor的输出速率来决定,一般要大于sensor的输出速率,但是最多不超过2500;
<c>第三部分为与点亮无关,具体解释询问FAE,使用默认参数即可。
(3)program: 此部分采用ECFG的出图配置工具生成即可;目前配置生成工具有两种方式:
<a>采用ECFG的出图配置中的解串配置生成:填写分辨率,输出图像的格式,位深,速率,lane数然后点击保存文件,保存后的文件结构与init.json文件相同,但是不可直接使用,其中有program部分,即为所需,复制到program中即可。
<b>使用ECFG中的解串配置生成工具:填写lane数,速率,位深, 点击生成即可,然后复制粘贴到init文件中,至此init文件配置完成。
3. 配置A.json文件:A.json文件中只包含program部分,其中program部分分为几个部分:
<a>第一部分为A.json文件的固定参数无需修改;
<b>第二部分为硬件上电时序,需要咨询模组厂,如果模组厂也不知道,则可以先去掉此部分;如果其他部分没有问题时,模组无法跑通,在添加即可;
<c>第三部分与init.json文件中的slave1的物理地址与虚拟地址相关,0x0045为其物理地址,但是注意位数转换,0x0044为虚拟地址的虚拟地址的第一个值;
<d>第四部分使用默认即可,无需修改,但是其中的0x0318,与数据类型相关;
<e>第五部分为sensor配置部分,按照点亮参数进行配置即可。但是要注意数据类型转换(寄存器地址为16位,寄存器值位8位,如果sensor的配置文件中寄存器值位16位,则要分成两个8位,如寄存器值为0x2058,则要拆分成0x20,0x58),在配置此部分时要根据芯片手册注意大小端;至此A.json文件配置完成。