我想知道您是否使用过这种摄像头传感器:AR1335 与任何恩智浦 MCU 配合使用。如果是,请与我分享驱动程序源代码。
此致,
法里德
你好,法比奥,
,我正在使用 yocto。
您可以在此处找到最新的 ar1335 传感器内核驱动程序:
https://github.com/nxp-imx/isp-vvcam/tree/lf-5.15.y_2.0.0/vvcam/v4l2/sensor/ar1335
如果使用 Yocto,除了上述isp-vvcam之外,还需要 isp-imx:
如果对源代码感兴趣,可以在 Ubuntu 主机上下载并执行 bin 文件获取:
https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/isp-imx-4.2.2.20.0.bin
用你在电路板支持包中使用的版本替换版本(这里我们使用 v20)
以下是如何为另一个传感器部署驱动程序的示例:https://www.nxp.com/docs/en/application-note/AN13712.pdf
你好,谢谢。我是新手,所以我的问题可能很愚蠢。 您使用的是 Debian 还是 Yocto?能否提供股票驱动程序的链接?
你好,法比奥,
是的,我可以使用原版驱动程序。
到目前为止,我使用的是高清 1080p 分辨率。
计划过几天还将尝试 4K 及以上的分辨率。
您好。
我想知道你们是否成功地将 AR1335 摄像机与 Mx8 plus 相连接。
请
法比奥
嗨,迈克尔、
>>我已经使用恩智浦 iMX8M Mini SoC 运行了这个传感器
我对此非常感兴趣。你有可能提供源代码和设备树文件吗?
我正试图让iMX8M-plus 也能这样做,因为它与 iMX8M-plus 非常相似。
谢谢 MC
嗨,迈克-帕特黑、
已经请我们的内部专家进行了仔细检查,并在您的新帖中给您回复。
如有任何新问题,请关注该新帖。
顺祝商祺!
kerry
谢谢你,凯瑞!我开设了一个新主题来讨论这个问题: https://community.nxp.com/t5/i-MX-RT/RT1170-Using-MIPI-CSI-with-grayscale-or-raw-image-sensors/m-p...
嗨,迈克-帕特黑、
从 AE 的内部描述来看,是芯片 MIPI CSI 无法支持,而不是 SDK 的问题。
因此,参考手册将来会添加相关描述。
但如果要使用原始数据,则需要使用并行 CSI 接口,而不是 mipi-csi。
很抱歉给您带来不便。
顺祝商祺!
kerry
嗨,凯瑞、
这是否意味着 RT1176(准确地说是 OV9281,数据格式为 RAW8)无法使用 8 位单色灰度图像传感器?这是硬件的基本限制,还是 SDK 的问题,将来会得到修复?
我已经使用恩智浦 iMX8M Mini SoC 运行了这个传感器,它似乎使用了类似的 MIPI CSI 外设,但需要移植到 RT1176。
贝斯特,迈克尔
适用于 Jetson nano 的 AR1335 Linux 设备驱动程序:
你好,fmabrouk、
很抱歉迟迟没有回复。
只要得到内部的 AE 回复,这对你来说确实是一个悲惨的故事:由于 VIDEO_MUX 错误,MIPI-CSI2 无法支持原始数据,这些信息将添加到 RT1170 参考手册中。
因此,请检查外部 AR1335 是否可以配置为支持,例如RGB?
现在是 10bit 原始数据,确实没有解决方法。
很抱歉回复晚了,非常感谢你们的努力。
顺祝商祺!
kerry
论坛其他成员或恩智浦团队对我的问题是否有任何反馈。我真的没时间了,需要解决这个问题!如果可以,请提供帮助。
我希望你一切都好!我只是想跟进一下,看看你们是否对我的问题有任何更新。
我再次需要帮助配置 CSI 驱动程序,这样我才能捕获每个输出像素数据的 10 位原始数据。捕获数据后,我可以使用自己的软件将数据转换为 RGB 888 格式。
谢谢!
你好,凯瑞、
还有一件事我想告诉你,相机传感器的输出格式是 RAW10(10 位):RAW10(10 位),而在当前的恩智浦 CSI/相机驱动程序中,我没有看到支持这种格式。我只看到这些:
/*!@brief 像素格式定义。*/
typedef enum _video_pixel_format
{
/* RGB */
kVIDEO_PixelFormatXRGB8888 = FSL_VIDEO_FOURCC('X','R','2','4'),/*!< 32 位 XRGB8888。*/
kVIDEO_PixelFormatRGBX8888 = FSL_VIDEO_FOURCC('R','X','2','4'),/*!< 32 位 RGBX8888。*/
kVIDEO_PixelFormatXBGR8888 = FSL_VIDEO_FOURCC('X','B','2','4'),/*!< 32 位 XBGR8888。*/
kVIDEO_PixelFormatBGRX8888 = FSL_VIDEO_FOURCC('B','X','2','4'),/*!< 32 位 BGRX8888。*/
kVIDEO_PixelFormatRGB888 = FSL_VIDEO_FOURCC('R','G','2','4'),/*!< 24 位 RGB888。*/
kVIDEO_PixelFormatBGR888 = FSL_VIDEO_FOURCC('B','G','2','4'),/*!< 24 位 BGR888。*/
kVIDEO_PixelFormatRGB565 = FSL_VIDEO_FOURCC('R','G','1','6'),/*!< 16 位 RGB565。*/
kVIDEO_PixelFormatBGR565 = FSL_VIDEO_FOURCC('B', 'G', '1', '6'), /*!< 16 位 BGR565。*/
kVIDEO_PixelFormatXRGB1555 = FSL_VIDEO_FOURCC('X','R','1','5'),/*!< 16 位 XRGB1555。*/
kVIDEO_PixelFormatRGBX5551 = FSL_VIDEO_FOURCC('R','X','1','5'),/*!< 16 位 RGBX5551。*/
kVIDEO_PixelFormatXBGR1555 = FSL_VIDEO_FOURCC('X','B','1','5'),/*!< 16 位 XBGR1555。*/
kVIDEO_PixelFormatBGRX5551 = FSL_VIDEO_FOURCC('B','X','1','5'),/*!< 16 位 BGRX5551。*/
kVIDEO_PixelFormatXRGB4444 = FSL_VIDEO_FOURCC('X','R','1','2'),/*!< 16 位 XRGB4444。*/
kVIDEO_PixelFormatRGBX4444 = FSL_VIDEO_FOURCC('R','X','1','2'),/*!< 16 位 RGBX4444。*/
kVIDEO_PixelFormatXBGR4444 = FSL_VIDEO_FOURCC('X','B','1','2'),/*!< 16 位 XBGR4444。*/
kVIDEO_PixelFormatBGRX4444 = FSL_VIDEO_FOURCC('B','X','1','2'),/*!< 16 位 BGRX4444。*/
/* YUV。*/
kVIDEO_PixelFormatYUYV = FSL_VIDEO_FOURCC('Y', 'U', 'Y', 'V'), /*!< YUV422, Y-U-Y-V.*/
kVIDEO_PixelFormatYVYU = FSL_VIDEO_FOURCC('Y','V','Y','U'),/*!< YUV422, Y-V-Y-U.*/
kVIDEO_PixelFormatUYVY = FSL_VIDEO_FOURCC('U','Y','V','Y'),/*!< YUV422, U-Y-V-Y.*/
kVIDEO_PixelFormatVYUY = FSL_VIDEO_FOURCC('V','Y','U','Y'),/*!< YUV422, V-Y-U-Y.*/
kVIDEO_PixelFormatXYUV = FSL_VIDEO_FOURCC('X', 'Y', 'U', 'V'), /*!< YUV444, X-YU-V.*/
kVIDEO_PixelFormatXYVU = FSL_VIDEO_FOURCC('X','Y','V','U'),/*!< YUV444, X-Y-V-U.*/
} video_pixel_format_t;
能否在应用程序代码中将 Raw10 转换为 RGB888?
我附上了一些数据表供你参考。
你好,fmabrouk、
感谢您提供的信息。
请耐心等待,我将检查您的代码的更多细节,并与我们内部的 CSI 专家核实。
在我得到任何有价值的信息后,我会尽快通知你们。
请再给我一些时间,非常感谢!
顺祝商祺!
kerry
我用示波器验证了相机传感器正在流式传输数据;在调试代码时我能够捕获 CSI 读取寄存器:请参阅随附的屏幕截图。但是,我无法获得全帧缓冲区 CSI 中断。这还是与我初始化 MIPI CSI 的方式有关,你或其他人能否根据我在上一封邮件中说明的图像要求,帮我正确设置一下?
干杯
以下是我感兴趣的图像参数摘要:;
[PLL 参数]
;目标 Vt 像素频率:220 MHz
;输入时钟频率:24 MHz;实际 Vt 像素时钟:220 MHz
;实际操作像素时钟:110 MHz
;pll_multiplier(M 值)= 55
;pll_clk_div2(N 值)= 2
;pll_multiplier2(M2 值)= 55;pll_clk_div2(N2 值)= 55
;pll_clk_div2(N2 值)= 55 2
;Fpfd = 12 MHz;Fvco = 660 MHz;Fvco2 = 660 MHz;Vt 系统分频器 = 1
;Vt Pix 分频器 = 3
;运算系统分频器 = 1;运算像素分频器 = 6
;;[图像参数];每个请求的帧数
第二:30
;输出列:640;输出行数:480
;使用 Y 求和:未选中
;仅限 X 的分箱:未选中
;允许跳过:选中
;空白计算:HB 最大,然后 VB
;;最大帧时间:33.3333 毫秒
;最大帧时钟:7333333.3
clocks
; 读出模式:1,YSum:无,XBin:
; Horiz clks: 640 active + 1688 blank = 2328 total
; Vert rows:480 活动 + 2674 空白 = 总计 3154
; 输出列:640
; 输出行:480
; FOV Cols:640
; FOV 行:480
; 实际帧时钟:7342512 个时钟
; 行时间:10.582 usec / 2328 个时钟
; 积分时间:33 毫秒。
;帧时间:33.375055 毫秒
;允许的最大帧速率:191.739fps
;每秒帧数:29.962 fps
我在 imx RT1170 上使用 mipi CSI2 演示代码从 AR1335 获取 480x640 图像。
我发现该相机传感器的输出格式为:10 位。我需要在 CSI 驱动程序中进行哪些更改才能捕获我需要的图像。
我使用制造商的工具生成了配置文件,但由于错误配置了 CSI 驱动程序,我还远远没有获得图像。
你能否建议需要在演示代码 CSI 驱动程序中修改哪些内容才能从 AR1335 捕获图像。
此致敬礼,
你好,fmabrouk、
到目前为止,我们还没有关于导入其他相机传感器的直接文件。
据我所知,照相机传感器也应该有配置工具,可以进行配置并生成代码。 您的 AR1335 是否已经从自己的公司获得了相关驱动程序?
我还检查了内部,直到现在才找到 AR1335 RT 的相关驱动程序。
顺祝商祺!
kerry
我正在使用这个摄像头传感器:imX RT1170 板上的 AR1335 而不是 OV5640。AR1335 只发送 10 位图像。我相信 OV5640 像素数据总线是 16 位。
如何修改恩智浦 SDK 随附的 mipi csi 演示代码,以便用该传感器获取图像?
我希望能有一些文档,指导如何将另一个相机传感器导入该演示代码。
非常感谢!
你好,fmabrouk、
关于你提到的时钟,你可以从 RT1170 参考手册中找到:
希望它能帮到你!
顺祝商祺!
kerry
除了我上面提出的问题外,如果我需要将像素时钟设置为 80MHz。在 imx RT1170 的 CSI2 mipi 演示代码中,我应该更改哪些寄存器?
谢谢!
我仍在尝试将 AR1335 摄像头驱动程序移植到 ImX RT1170 CCI2 mipi 演示代码中。
在 CS2 mipi 代码中,我发现了这些时钟:
CLOCK_SetRootClock(kCLOCK_Root_Csi2,&csi2CClockConfig);
CLOCK_SetRootClock(kCLOCK_Root_Csi2_Esc,&csi2EscClockConfig);
CLOCK_SetRootClock(kCLOCK_Root_Csi2_Ui,&csi2UiClockConfig);
谁能解释一下这些钟是用来做什么的?
谢谢!
你好,fmabrouk、
到目前为止,我还没有找到有关 AR1335 的 RT 芯片驱动程序,我也在内部搜索过,但没有找到。
也许您可以从互联网上搜索,某些第三方可能有 AR1335 驱动程序。
Nxp 官方那边没有找到,直到现在,RT 主要使用 MT9M114 或 OV7725 摄像头模块。
很抱歉给您带来不便,并感谢您的理解。
顺祝商祺!
kerry