周五见| 工程师笔记之SSD26X相关FAQ

Comake Online

点击蓝字 关注我们



作者| Peng.Xiong


Comake社区常见技术问题汇总,第20230224期,本期汇总了SSD26X相关问题。


Panel Q&A

SSD26X

Q1:prog_panel运行异常如何排查?


A1:第一步检查硬件接线是否无误。


第二步检查加载屏参是否与使用的屏对应,可以通过cat proc/mi_module/mi_panel对比,检查屏参是否正确,屏参设置是否正确(参考sigdoc中《屏参配置》),检查加载sensor驱动是否正确(参考《运行环境配置》的sensor配置)。


第三步检查demo代码中gstDisplayOpt、gstSensorAttr、SENSOR_IDX_FOR_PANEL、SENSOR_IDX_FOR_HDMI配置是否正确,检查GPIO_PANEL_宏定义的几个panel控制脚初始化是否正确。

 /

Q2:prog_panel的demo中,默认是imx415到hdmi,imx307到点屏。现在想用imx307到hdmi输出,需要怎么修改?


A2:最简单的修改是直接交换

SENSOR_IDX_FOR_PANEL、SENSOR_IDX_FOR_HDMI定义的0跟1。

 /

Q3:触摸屏的RST & INT硬件无法正常控制,导致触摸屏无法正常使用。


A3: 开发板的触摸屏的中断与复位(GPIO13、GPIO14)引脚与JTAG引脚有冲突(GPIO13~GPIO16),因此IPL与IPL_CUST需使用NO_JTAG的版本。

/

Q4:TTL屏显示的画面明暗交界处有异常亮点。


A4: 硬件布线较长导致的,去除外部延长线即可。或者增强TTL输出口的驱动能力,参考如下脚本:


/customer/riu_w 103e 13 D5

/customer/riu_w 103e 14 D5

/customer/riu_w 103e 15 D5

/customer/riu_w 103e 16 D5

/customer/riu_w 103e 17 D5

/customer/riu_w 103e 18 D5

/customer/riu_w 103e 19 D5

/customer/riu_w 103e 1A D5

/customer/riu_w 103e 43 D5

/customer/riu_w 103e 44 D5

/customer/riu_w 103e 45 D5

/customer/riu_w 103e 46 D5

/customer/riu_w 103e 47 D5

/customer/riu_w 103e 48 D5

/customer/riu_w 103e 49 D5

/customer/riu_w 103e 4A D5

/customer/riu_w 103e 4B D5

/customer/riu_w 103e 4C D5

/customer/riu_w 103e 5F D5

/customer/riu_w 103e 60 D5

/customer/riu_w 103e 61 D5

/customer/riu_w 103e 62 D5

/customer/riu_w 103e 63 D5

/customer/riu_w 103e 64 D5

/customer/riu_w 103e 65 D5

/customer/riu_w 103e 66 D5

/customer/riu_w 103e 67 D5

/customer/riu_w 103e 68 D5

/

Q5:使用双屏异显demoprog_panel程序测试时,HDMI显示正常而TTL或MIPI屏无法显示。


A5:prog_panel的Panel显示使用的是disp1,因此需要将所使用屏的屏参m_wPanelDispPath配置为1,如

SAT070AT50H18BH屏:

/

UI Q&A

SSD26X

Q6:github下载的Flythings源码编译出zkgui拷贝到customer下运行,屏没有亮?


A6: 不是直接拷贝zkgui到customer运行,还需要通过alkaid打包gui env到image。Verify下面没有application,需要自己创建,然后把zkgui环境文件夹放进去。具体操作可以参考sigdoc的UI环境搭建,文档中是以例子说明,具体路径需根据实际工程修改。

 /

Uboot Q&A

SSD26X

Q7:使用SD卡升级时,已经开启了CONFIG_MS_SDMMC,在uboot下输入sdstar,提示 unknow command ‘sdstar’ - try help。


A7: uboot默认没开sdmmc这个配置,打开之后重新编译烧录,在板子上查看一下uboot的编译时间确认更新成功。

 /

Q8:想重新烧录uboot,该用什么方法?


A8: 如果还能进入uboot可以用tftp,在uboot下使用单独烧录命令estar scripts//[[uboot.es,此命令在image的auto_update.txt文件能查找到。空片或无法进入uboot的话,可以通过ISP工具烧录,请参考Sigdoc的环境搭建。

/

Image Q&A

SSD26X

Q9:用tftp烧录image到SSD268G黑色开发板,estar该选择4layer板还是6layer板?


A9: 选择4layer。

/

Q10:为什么在project下面通过make_usb_upgrade_sigmastar.sh编译出来的usb_updater.bin文件很大,而且还不能usb烧录,而SDK解压出来的很小?


A10: 这两个文件不是同一个东西,usb升级工具里面的那个usb_updater.bin是类似于我们ipl iplcssust的功能。

 /

Q11:SSD268G有类似出厂固件吗?


A11:有的,在SDK下有不同版本的image,选择符合自己板子版本的image烧录。

/

Sensor Q&A

SSD26X

Q12:./prog_vpe 带哪个参数可以实现sensor出图?


A12: 后面需要带一个ini文件,这个ini文件要选择跟接的sensor接口对应的,并且要跟你使用场景修改ini文件里的配置。具体的使用可以参考sdk里的vpedemo使用说明文档。

 /

Q13:出现Sensor is abnormal @sensor pad 0?


A13: 可以先检查一下sensor的dts配置,看看vif mode和csi lane配置是否正确,参考一下sigdoc BSP开发下的sensor配置文档。

 /

Q14:sensor的dts配置下,SR0本身没有复用BT1120,为什么会有vif_sr0_bt1120_mode = <1>?


A14: dts是传递给下层软件初始化硬件的描述,如果有的话就会配置相应模式,没有的话也不会有影响。

 /

Q15:多个sensor pad接相同型号的sensor,要如何加载sensor驱动同时兼容这几个pad?


A15: 通过chmap参数去设置,chmap是为了让板子兼容不同的sensor设计的,是按位掩码计算的。比如sensor pad 0和pad 1都接了imx307,那么用ismod imx307_MIPI.ko chmap=3 lane_num=4即可。

 /

Q16:出现SNR pad enable fail程序出错。


A16: 先根据Demo板硬件指南确认接口是否正确,接线是否接触良好。再检查驱动加载的chmap和lane_num参数是否设置正确。最后,若有读取配置文件,检查ini文件中sensorpad等参数的设置。

 /

Q17:实现raw数据的获取以及抓图功能的demo参考哪个?


A17: 参考mi_demo下的dla_xxx,算法相关的demo,里面有抓图送给算法的实现。

 /

Q18:raw数据的获取是从哪个模块获取,调用哪个函数接口?


A18: 从vif获取,用get vif buffer的接口就可以,mi sys 的接口MI_SYS_ChnInputPortGetBuf。

 /

Q19:获取vif输出端口的MI_SYS_FrameData_s属性中的压缩模式为E_MI_SYS_COMPRESS_MODE_TO_8BIT,如何从vif获得不压缩的raw数据?


A19:把fbc 关掉就是未压缩的数据

 /

GPIO Q&A

SSD26X

Q20:SSD268G可以通过IO输出固定24M时钟吗?


A20: 可以通过SE_XTAL_OUT输出固定24M时钟,使用riu_w配置寄存器控制使能。riu_w 111B 6 0 -> enable output,riu_w 111B 6 1 -> disable output。

 /

VENC Q&A

SSD26X

Q21:prog_venc 报parse_multi_decoder_param[2646]: es filePath=input1.es,val_c="input1.es"错误?


A21: 应该是没有获取到源文件,检查一下配置文件里yuv_path传递的目录下是否有对应的编码源文件,参考一下源码目录下的how to run venc demo文档去配置.json文件。

 /

Q22:sensor 输入经过h265/h264 encode/jpeg编码到文件的demo应该参考哪个?


A22: 参考vpe demo,里面有sensor->vif->isp->scl->venc->file的整个流程。具体使用参考sdk里的vpedemo使用说明文档。

 /

DISP Q&A

SSD26X

Q23:如何把sensor输出到HDMI上显示?


A23: 可以参考一下mi_demo目录下的panel,根据目录下的README配置使用屏幕参数。

 /

Q24:HDMI使用时出现[ST_ResetHdmiDispFlow 1790]exec function failed, error:a0222007报错?


A24: 检查一下输入HDMI的数据格式是否正确,比如SCL->HDMI,那stSclOutputParam.ePixelFormat就要设置正确的格式。

 /

Q25:HDMI显示,GetSInkInfo函数获取显示屏的物理分辨率,对于4K显示屏获取给出的NativeTimingType值为48,但是SDK中提供的MI_HDMI_TimingType_e最大只到42?


A25: 看上去是头文件没更新,链接的库跟头文件要统一才行,再检查一下sdk更新情况,是不是更新之后链接库和头文件对不上了。

 /

Q26:切换HDMI显示器,打印信息中确实检测到了不同分辨率,也下发了配置,各个打印信息也没有error的提示,回调函数中都是pass通过,可并没有激活显示器?


A26: 可以打印/proc下的调试信息看看数据流是否正常,比如看下disp的recvbuff是否有数据。详细的debug信息可以看下sigdoc上的相关文档。

 /

Q27:HDMI模块切换分辨率(例如从4K到1080P),SetAttr后函数提示都是成功的,为什么显示器没有被激活?


A27: 正确的切换分辨率流程是:stop getattr setattr start,如按此流程切换不出图,可以cat /proc下相应的disp设备的debug 信息检查。

 /

Q28:如何调试HDMI驱动能力?


A28: Bank 145A_22/23 = 0x1414 设置成Bank 145A_22/23 = 0x0000 再试试效果。PS:HDMI 起来后,再读寄存器。HDMI Default Bank 145A_22/23 =0x1414 Bank 145A_22 6bit【5:0】 Data0 Bank 145A_22 6bit【13:8】 Data1 Bank 145A_23 6bit【5:0】 Data2 Bank 145A_23 6bit【13:8】 CLK driver current 0.5mA(1[0]+2[1]+4[2]+8[3]+16[4]+32*[5])

 /

System Q&A

SSD26X

Q29:编译完kernel,如何对板子进行kernel升级?


A29: 复制编译kernel后生成的uImage.xz文件到image下重命名kernel,替换掉原来的kernel文件,再通过tftp或者ISP工具进行升级。

 /

Q30:怎么通过当前编译project的defconfig确定kernel所使用的config及dts。


A30: 在project/configs/defconfigs/目录下存放着当前所有的config文件,打开所使用的config文件可以看到CONFIG_KERNEL_CONFIG参数所指定的配置即为当前kernel所使用的配置,如:


tianhui.he@xml0bc6401:~/codes/sourcecode/project$ cat configs/defconfigs/dispcam_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2.demo_defconfig | grep "CONFIG_KERNEL_CONFIG"

CONFIG_KERNEL_CONFIG="mercury6_ssc016a_s01a_spinand_dispcam_defconfig"


或者在make image时也可以看到一行log:linux-config:“mercury6_ssc016a_s01a_spinand_dispcam_defconfig” 在kernel目录下打开所使用的defconfig,搜索CONFIG_SS_DTB_NAME对应的值即为所使用的dts文件名(后缀“.dts”),如:


tianhui.he@xml0bc6401:~/codes/sourcecode/kernel$ cat arch/arm/configs/mercury6_ssc016a_s01a_spinand_dispcam_defconfig | grep "CONFIG_SS_DTB_NAME"

CONFIG_SS_DTB_NAME="mercury6-ssc016a-s01a-dispcam"

 /


由于篇幅有限,未能展示全文,您可点击下方文章链接阅读全文、收藏文章或与作者交流互动。


https://dev.comake.online/home/article/396


资源推荐

Comake社区


点击查看:《社区资源汇总》


进入开发论坛

技术支持|选型咨询官方资源

X 提交 下一题

查看更多