GMSL开发加解串配置介绍
开发介绍本文主要介绍在orin nx平台上使用加串器MAX96717和解串器MAX96724进行视频流数据传输记录开发过程中遇到的问题以及相关软件GMSL_SerDes_Public_GUI的生成配置方法和jetson orin的设备树配置。适合第一次接触 GMSL 的朋友帮助大家熟悉从零开始到配置视频流输出的完整流程。本文采用Pixel Mode以 4 x MAX96717 MAX96724 的架构接入 Jetson Orin Nano Super 开发者套件如下所示开发加解串gmsl2的基础知识介绍以下截图来自官方手册中典型的四个 sensor 接入方案示意图上图是硬件接线的示意图具体实现时需要重点关注以下几点Pixel 或者 Tunneling Mode 的选择MIPI Lane Swap 的配置Pixel Clock 和 lane的数据量确认需要透传的GPIO和接入设备和sensor的i2c地址确认下面开始介绍配置注意的细节:解串器MAX96717的CFG0-1的管脚配置如下,拿到板子后注意确认测试:解串器MAX96724也有类似的配置:加接串两边要注意匹配,解串MAX96724有两个重要的示意图如下:在这里搞清楚实际接入的soc端的情况根据需要选择那个器件和soc接入方式比如1x4b 2x2 mode1x4a 2x2 mode2x4 mode4x2 mode这些连接方式明确ABCDEF在使用D-PHY 4-LANE模式下使用选择CKA ALT还是CKAP/N那个作为mipi的CLK时钟会涉及到配置相关寄存器一定确认清楚。关于Video pipe的配置需要理解下面的示意图含义:不同的pipe对应的相应的寄存器组进行配置可以通过软件GMSL_SerDes_Public_GUI生成需要的配置不需要记忆但要理解Source VC DTMap X 以及 Dest. VC DTController Dest等上图的模块含义这里不做过多介绍。下面介绍GMSL_SerDes_Public_GUI软件常用的三个功能:解串器的时钟输出配置在软件主界面Tools那一栏中的Other Config中的RCLK中有配置MFP4或者MFP2管脚的时钟输出有里面预设常用时钟也可以自定时钟输出配置自动生成i2c配置命令如下所示:加解串的CSI参数配置在主界面Tools-Video Conifg-CSI Configuration Tool里面选择好加串器和解串器型号如下:比如四个sensor都是出的raw8数据在每个解串器配置添加对应的CSI数据类型如下:在DPHY里面配置lane的数量和极性和map的映射参数:一般挂四个sensor的i2c地址都一样或者加串器设备上挂的有epprom的i2c存储设备需要配置i2c的地址转换参数如下确保映射后四个都不一样:然后配置解串器的虚拟映射参数依次添加解串器的GMSLLink映射到那个PortOutput口如果有配置没有错误软件会有绿色的状态显示如下:最后解串器也需要配置D-PHY的参数配置lane的数量和极性和map的映射参数如下jetson orin NX的CSI口最高支持2.5Gbps总共支持20Gbps的传输数据带宽:然后点击Generate Script-Export Script导出.c的配置文件:加解串的管脚配置主界面Tools-Other Conifg-MFP Configuration里面配置GPIO透传参数orin nx 的驱动设备树配置需要关注的地方Jetson Orin Nano Super开发套件有个需要注意的地方由于载板设计J20/CAM0 使用了 CSI1_CLK仅支持 x2 摄像头接口如下图所示:关于设备树需要注意tegra-capture-vi { vc-id 0; //注意和max96724里面配置的虚拟通道保持一致soc最多支持24个 port-index PORT_INDEX; //和接入的硬件连线保持一致 bus-width BUS_WIDTH; //和接入的数量保持一致 }; lane_polarity //PORT_INDEX为0或者1这个地方需配置6 tegra_sinterface //和接入的硬件连线保持一致对于多个sensor的设备树参考github里面的Jetson示例工程里面的gen_gmsl_dts.py工具根据配置的json配置文件快速生成overlay的设备树配置文件