Changes

Jump to navigation Jump to search
Line 4: Line 4:     
=== 概述 ===
 
=== 概述 ===
米尔科技MYD-JX8MX开发板采用i.MX8M处理器,MYD-C8MMX采用了i.MX 8M Mini处理器。我们制作了专用的转接板,VEYE-MIPI-IMX327S、CS-MIPI-IMX307、CS-MIPI-SC132等MIPI模组可以连接上。
+
米尔科技MYD-JX8MX开发板采用i.MX8M处理器,MYD-C8MMX采用了i.MX 8M Mini处理器。
   −
在米尔官方资料(L4.19.35版本)基础上,增加了我们的摄像头模组驱动,并提供了一些应用层的例程。一般情况下,只需使用我们已编译好的Image和DTB,非必要情况下,无需根据代码进行编译。
+
在米尔官方资料(L4.19.35版本)基础上,增加了我们的摄像头模组驱动,并提供了一些应用层的例程。
   −
特殊的,在这个i.MX平台上,摄像头采用了YUYV格式。
+
一般情况下,只需使用我们已编译好的Image和dtb。当然,你也可以根据我们开源的代码修改或重新编译驱动。
 +
 
 +
==== 支持的模组: ====
 +
{| class="wikitable"
 +
|+模组型号支持表
 +
!系列
 +
!型号
 +
!状态
 +
!转接板
 +
|-
 +
|VEYE系列
 +
|VEYE-MIPI-IMX327S
 +
|完成
 +
|ADP-MYiR
 +
|-
 +
|VEYE系列
 +
|VEYE-MIPI-IMX385
 +
|完成
 +
|ADP-MYiR
 +
|-
 +
|VEYE系列
 +
|VEYE-MIPI-IMX462
 +
|完成
 +
|ADP-MYiR
 +
|-
 +
|CS系列
 +
|CS-MIPI-IMX307
 +
|完成
 +
|ADP-MYiR
 +
|-
 +
|CS系列
 +
|CS-MIPI-SC132
 +
|完成
 +
|ADP-MYiR
 +
|}
 +
VEYE系列和CS系列MIPI摄像头模组是内置ISP的,输出为MIPI-CSI2接口。
 +
 
 +
对于图像效果参数,我们并没有采用V4L2接口实现,而是采用了DRA(Directly Register Access)模式,我们提供了一组Shell脚本直接控制摄像头模组。
 +
 
 +
特殊的,在这个i.MX平台上,默认驱动将摄像头配置为YUYV格式。
    
=== 硬件准备及安装 ===
 
=== 硬件准备及安装 ===
TODO(Pciture)
+
使用 [[ADP-MYiR Adapter Board for MYiR-tech|ADP-MYiR]] 接入到 MYD-J8XMX 主板。
 +
[[File:MYiR-MYD-J8XMX connection .jpg|alt=米尔科技MYD-J8XMX连接图(整体图)|center|thumb|800x800px|米尔科技MYD-J8XMX连接图(整体图)]]
 +
[[File:MYiR MYD-JX8MX connection details.jpg|alt=米尔科技MYD-J8XMX连接细节图|center|thumb|800x800px|米尔科技MYD-J8XMX连接细节图]]
 +
<br />
    
=== 更新MYD-JX8MX系统 ===
 
=== 更新MYD-JX8MX系统 ===
   −
===== 烧写米尔官方标准系统 =====
+
===== 概述 =====
 +
本章节描述怎样更新MYD-JX8MX系统以支持我们的摄像头模组。要支持我们的摄像头模组,需要更新系统两个部分,Image和DTB。
 +
 
 +
Image部分,我们增加了摄像头驱动,DTB部分则指明了使用的摄像头型号。一般情况下,只需使用我们已编译好的Image和DTB,非必要情况下,无需根据代码进行编译。
 +
====BSP包介绍:====
 +
=====i.MX平台bsp=====
 +
https://github.com/veyeimaging/nxp_i.mx_veye_bsp
 +
 
 +
包括以下主要内容:
 +
 
 +
*driver源码
 +
*i2c通信工具集
 +
*应用层demo
 +
 
 +
===== MYiR i.MX平台bsp =====
 +
https://github.com/veyeimaging/myir_nxp_i.mx
 +
 
 +
包括以下主要内容:
 +
 
 +
*预编译好的linux kernel:Image
 +
*预编译好的不同平台下的dtb
 +
*dts源码
 +
 
 +
==== 烧写米尔官方标准系统 ====
 
参考《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,烧写米尔科技标准版本系统。
 
参考《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,烧写米尔科技标准版本系统。
   −
===== 使用编译好的Image和dtb =====
+
==== 使用编译好的Image和dtb ====
 
MYD-JX8MX板子的Image和dtb文件,保存在emmc的FAT分区,系统启动后,自动挂载到/run/media/mmcblk0p1/目录。
 
MYD-JX8MX板子的Image和dtb文件,保存在emmc的FAT分区,系统启动后,自动挂载到/run/media/mmcblk0p1/目录。
   Line 35: Line 100:  
=== 应用和测试 ===
 
=== 应用和测试 ===
   −
===== 下载bsp并传到板卡上 =====
+
===== 系统状态检测 =====
<code>git clone <nowiki>https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git</nowiki></code>
  −
 
   
完成系统安装后,在MYD-JX8MX板端执行以下命令来检测是否正确连接摄像头。
 
完成系统安装后,在MYD-JX8MX板端执行以下命令来检测是否正确连接摄像头。
   −
===== 系统状态检测 =====
+
*VEYE-MIPI-IMX327S
 
  −
*VEYE-MIPI-327
      
<code>dmesg | grep veye327</code>  
 
<code>dmesg | grep veye327</code>  
Line 72: Line 133:  
<code>Registered sensor subdevice: cssc132_mipi <0/1>-003b</code>
 
<code>Registered sensor subdevice: cssc132_mipi <0/1>-003b</code>
   −
正确是识别摄像头之后,两个MIPI-CSI2接口的摄像头分别识别挂载到i2c-0,i2c-1,识别为/dev/video0和/dev/video1。
+
正确识别摄像头之后,两个MIPI-CSI2接口的摄像头分别识别挂载到i2c-0,i2c-1,识别为/dev/video0和/dev/video1。
 
====列出摄像头支持的模式====
 
====列出摄像头支持的模式====
 
<code>v4l2-ctl --list-formats-ext -d /dev/video<0/1></code>
 
<code>v4l2-ctl --list-formats-ext -d /dev/video<0/1></code>
Line 79: Line 140:  
<code>export DISPLAY=:0</code>
 
<code>export DISPLAY=:0</code>
   −
*视频预览(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
+
*视频预览(VEYE-MIPI-IMX327S,CS-MIPI-IMX307 @1080p mode)
    
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)30/1' ! waylandsink</code>
 
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)30/1' ! waylandsink</code>
 +
 +
*视频预览(CS-MIPI-IMX307 @1080p mode 10fps)
 +
 +
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)10/1' ! waylandsink</code>
 +
 +
*视频预览(CS-MIPI-IMX307 @720p mode 60fps)
 +
 +
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1280,height=720,framerate=(fraction)60/1' ! waylandsink</code>
 +
 +
*视频预览 (CS-MIPI-SC132 @1280*1080 mode 45fps)
 +
 +
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1280,height=1080,framerate=(fraction)45/1' ! waylandsink</code>
 +
 +
*视频预览 (CS-MIPI-SC132 @1080*1280 mode 45fps)
 +
 +
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1080,height=1280,framerate=(fraction)45/1' ! waylandsink</code>
    
*抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
 
*抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
    
<code>gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1920,height=1080' ! jpegenc ! filesink location=test_image.jpg</code>
 
<code>gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1920,height=1080' ! jpegenc ! filesink location=test_image.jpg</code>
 +
 +
*抓拍一张图片 (CS-MIPI-IMX307 @720p mode)
 +
 +
<code>gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1280,height=720' ! jpegenc ! filesink location=720p.jpg</code>
 +
 +
*抓拍一张图片 (CS-MIPI-SC132 @1280*1080 mode)
 +
 +
<code>gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1280,height=1080' ! jpegenc ! filesink location=test_image.jpg</code>
    
*v4l2grab抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
 
*v4l2grab抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
Line 94: Line 179:     
https://github.com/veyeimaging/nxp_i.mx_veye_bsp/tree/main/i2c_cmd
 
https://github.com/veyeimaging/nxp_i.mx_veye_bsp/tree/main/i2c_cmd
 +
 +
注意脚本使用中,采用-b [i2cbus]参数来指明操作的是哪个摄像头。
    
[[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]
 
[[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]
Line 103: Line 190:     
===== 准备编译环境 =====
 
===== 准备编译环境 =====
参考官方文档《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,部署开发环境。注意,如果只为了编译kernel,可以不使用yocto。当然,使用yocto也是没问题的。03-Tools目录下存在编译工具链安装脚本,直接执行即可。
+
参考官方文档《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,部署开发环境。
 +
 
 +
注意,如果只为了编译kernel,可以不使用yocto。当然,使用yocto也是没问题的。
 +
 
 +
03-Tools目录下存在编译工具链安装脚本,直接执行即可。
    
<code>./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.19-warrior.sh</code>
 
<code>./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.19-warrior.sh</code>
   −
安装编译工具链之后,执行:
+
安装编译工具链之后,执行以下命令配置编译环境:
    
<code>source /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux</code>
 
<code>source /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux</code>
Line 122: Line 213:  
<code>make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- -j4</code>
 
<code>make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- -j4</code>
   −
====Patch我们的代码====
+
====patch我们的代码====
    
*Driver source code
 
*Driver source code
Line 151: Line 242:     
=== 参考资料 ===
 
=== 参考资料 ===
官方资料: http://down.myir-tech.com/MYD-JX8MX/
+
米尔科技:http://www.myir-tech.com/
 +
 
 +
MYD-JX8MX资料: http://down.myir-tech.com/MYD-JX8MX/

Navigation menu