Firefly开源社区

标题: Firefly-RK3399 Ubuntu下双MIPI摄像头已调通 [打印本页]

作者: Chary    时间: 2018-7-16 18:17
标题: Firefly-RK3399 Ubuntu下双MIPI摄像头已调通
纪念一下 这个伟大的日子

作者: sheqw    时间: 2018-7-17 09:23

作者: firengold    时间: 2018-7-24 10:35
楼主威武,本渣也需要这样的需求,可以分享一下吗?
作者: memetete    时间: 2018-7-26 11:25
Chary 发表于 2018-7-24 21:09
这段时间比较忙,过些天会总结下的

楼主到总结的日子了
作者: 寒江雪    时间: 2018-7-31 11:33
666
作者: qqdf20@163.com    时间: 2018-8-13 12:48
请问.config文件有哪些修改
作者: qqdf20@163.com    时间: 2018-8-13 13:09
请问你们的kernel是用的rockchip主线(https://github.com/rockchip-linux/kernel(release_4.4)分支,还是https://github.com/FireflyTeam/kernel的(firefly/release_4.4)分支,谢谢!
作者: PAIHUAI    时间: 2018-10-26 16:22
请问,为什么不在cam_board.xml里面进行修改?是不是这地方的配置是针对安卓系统的?换系统后,就没有用了。
作者: 张雅男    时间: 2018-11-5 15:46
厉害
作者: loading    时间: 2018-11-5 16:49
厉害了  可以玩双目识别
作者: Chary    时间: 2018-11-7 13:05
张雅男 发表于 2018-11-5 15:46
厉害

我们用的是Ubuntu系统
作者: zkm    时间: 2018-11-24 15:04
ubuntu下mipi驱动写好后,如何测试呢
作者: Chary    时间: 2018-12-10 14:19
zkm 发表于 2018-11-24 15:04
ubuntu下mipi驱动写好后,如何测试呢

自己写个demo测试,简单的v4l2的框架
作者: microhua    时间: 2018-12-14 17:27
本帖最后由 microhua 于 2018-12-14 17:29 编辑

在Firefly RK3399开发板上连接了一个配套购买的摄像头模组(RF-13850-FML 1.0),操作系统为Ubuntu16.04,可以看到/dev/video0设备,但是用不了。
         (1)运行fswebcam进行测试,显示错误信息为:
                   Unable to query input 0.
                   VIDIOC_ENUMINPUT: Inappropriate ioctl for device
         (2)使用OpenCV打开配套摄像头,显示错误信息为:
                   VIDEOIO ERROR: V4L2: Unable to capture video memory.VIDEOIO ERROR: V4L: can't open camera by index 0
连接罗技的USB摄像头可以正常使用。
请问需要怎样操作才可以使用这个配套的摄像头?

作者: RICHYDUAN    时间: 2019-2-17 14:51
请问楼主,之前在debian系统上调试通了一路ov13850,如果要预览两路OV13850,camera id是不是分别设0x10和0x60?
作者: Chary    时间: 2019-2-20 11:38
RICHYDUAN 发表于 2019-2-17 14:51
请问楼主,之前在debian系统上调试通了一路ov13850,如果要预览两路OV13850,camera id是不是分别设0x10和0x ...

因为板子的两路MIPI使用同一路I2C,如果能修改摄像头的从机地址,可以将两个摄像头从机地址设为不一样的,也可以将第二个摄像头挂载到其它I2C上
作者: RICHYDUAN    时间: 2019-2-20 14:23
Chary 发表于 2019-2-20 11:38
因为板子的两路MIPI使用同一路I2C,如果能修改摄像头的从机地址,可以将两个摄像头从机地址设为不一样的, ...

楼主用7750摄像头是把两个摄像头分别挂到I2C0和I2C4的么,为什么camera-module@60即reg设置为0x60
作者: RICHYDUAN    时间: 2019-2-20 14:26
Chary 发表于 2019-2-20 11:38
因为板子的两路MIPI使用同一路I2C,如果能修改摄像头的从机地址,可以将两个摄像头从机地址设为不一样的, ...

之前调通单路的OV13850摄像头,但不明白为什么楼主把地址从0x20改为0x10就可以了呢
作者: RICHYDUAN    时间: 2019-2-20 14:28
Chary 发表于 2019-2-20 11:38
因为板子的两路MIPI使用同一路I2C,如果能修改摄像头的从机地址,可以将两个摄像头从机地址设为不一样的, ...

之前调通单路的OV13850摄像头,但不明白为什么楼主把地址从0x20改为0x10就可以了呢
作者: Chary    时间: 2019-2-25 10:58
RICHYDUAN 发表于 2019-2-20 14:28
之前调通单路的OV13850摄像头,但不明白为什么楼主把地址从0x20改为0x10就可以了呢

可以将两个摄像头的从机地址设置为一样的,挂在不同的i2c下。ov7750的从机地址就是0x60
作者: RICHYDUAN    时间: 2019-2-26 14:54
按照楼主提供的dts修改J24插座对应的OV13850,板子只接J24的MIPI摄像头,从机地址配置为0x10,串口打印显示RK3399读取 另一路sensor id成功,但打开摄像头预览时看不到图像是黑屏,请问可能会是什么原因呢?
串口显示如下:

  1.771751] cif_isp10_v4l2_drv_probe: probing...
[    1.772231] dev_init NUM
[    1.772606] init_cif_power: 1-gpios-cifpower锛gpio=54
[    1.773101] init_cif_power: gpios-cifpower锛gpio_request
[    1.773614] init_cif_power: 1-gpios-cifpower锛gpio_request=0init_cif_power: gpios-cifpower锛54 high
[    1.774524] cif_isp10_pltfrm_dev_init(1274) ERR: could not get default pinstate
[    1.775196] cif_isp10_pltfrm_dev_init WARN: could not get pins_sleep pinstate
[    1.775834] cif_isp10_pltfrm_dev_init WARN: could not get pins_inactive pinstate
[    1.777225] ov13850 1-0010: cif_isp10_pltfrm_get_img_src_device
[    1.793347] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    1.803494] ov13850.ov_camera_module_write_config(184) ERR: no active sensor configuration
[    1.804208] ov13850.ov_camera_module_write_config(235) ERR: failed with error -14
[    1.805138] mmc1: new HS400 Enhanced strobe MMC card at address 0001
[    1.809258] mmcblk1: mmc1:0001 AJNB4R 14.6 GiB
[    1.809832] mmcblk1boot0: mmc1:0001 AJNB4R partition 1 4.00 MiB
[    1.813506] mmcblk1boot1: mmc1:0001 AJNB4R partition 2 4.00 MiB
[    1.814075] ov13850.ov13850_check_camera_id(1834) ERR: successfully detected camera ID 0xd850
[    1.814868] cif_isp10_pltfrm_get_img_src_device: ov13850 attach to cif isp10 img_src_array[0]

作者: RICHYDUAN    时间: 2019-2-27 10:28
我把J24对应的camera的dts配置修改如下:
&cif_isp0 {
        rockchip,camera-modules-attached = <&camera0>;
        rockchip,gpios-cifpower = <&gpio1 22 GPIO_ACTIVE_HIGH>;
        status = "okay";
};
&i2c1 {
        status = "okay";
        i2c-scl-rising-time-ns = <300>;
        i2c-scl-falling-time-ns = <15>;

        rt5640: rt5640@1c {
                #sound-dai-cells = <0>;
                compatible = "realtek,rt5640";
                reg = <0x1c>;
                clocks = <&cru SCLK_I2S_8CH_OUT>;
                clock-names = "mclk";
                realtek,in1-differential;
                pinctrl-names = "default";
                pinctrl-0 = <&rt5640_hpcon>;
                hp-con-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
                //hp-det-gpio = <&gpio4 28 GPIO_ACTIVE_LOW>;
                io-channels = <&saradc 4>;
                hp-det-adc-value = <500>;
        };

        camera0: camera-module@10 {
                status = "okay";
                compatible = "omnivision,ov13850-v4l2-i2c-subdev";
                reg = < 0x10 >;
                device_type = "v4l2-i2c-subdev";

                clocks = <&cru SCLK_CIF_OUT>;
                clock-names = "clk_cif_out";
                rockchip,camera-module-mclk-name = "clk_cif_out";
                rockchip,camera-module-dovdd = "1.8v";
               

                pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep";
                pinctrl-0 = <&cam0_default_pins>;
                pinctrl-1 = <&cam0_sleep_pins>;

                /*GPIO2  B4 = 12 B6 = 14 MIPI0 D4 = 27 C7 = 23 */
                rockchip,pwr-gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;        /*Power                        GPIO1_C7 */
                rockchip,pd-gpio  = <&gpio2 28 GPIO_ACTIVE_LOW>;        /*Power Down        GPIO2_B4  12 OR GPIO2_D4 28 */

                // rst 硬件上拉 无需配置
                //rockchip,rst-gpio = <&gpio0 8 GPIO_ACTIVE_LOW>;                /*Reset                        GPIO0_B0 */
               
                rockchip,camera-module-facing = "back";
                rockchip,camera-module-name = "cmk-cb0695-fv1";
                rockchip,camera-module-len-name = "lg9569a2";
                rockchip,camera-module-fov-h = "66.0";
                rockchip,camera-module-fov-v = "50.1";
                rockchip,camera-module-orientation = <0>;
                rockchip,camera-module-iq-flip = <0>;
                rockchip,camera-module-iq-mirror = <0>;
                rockchip,camera-module-flip = <0>;
                rockchip,camera-module-mirror = <0>;

                rockchip,camera-module-defrect0 = <3264 2448 0 0 3264 2448>;

                rockchip,camera-module-flash-support = <0>;                        /*闪光灯控制开关*/
                rockchip,camera-module-mipi-dphy-index = <0>;                /*MIPI 接口索引*/
        };

       
};
作者: RICHYDUAN    时间: 2019-3-4 10:14
楼主,两路camera是必须接到两个不同的isp还是可以接到通一个isp下面
作者: Chary    时间: 2019-3-5 10:20
RICHYDUAN 发表于 2019-3-4 10:14
楼主,两路camera是必须接到两个不同的isp还是可以接到通一个isp下面

两路Camera要用两个isp
作者: RICHYDUAN    时间: 2019-3-5 21:24
Chary 发表于 2019-3-5 10:20
两路Camera要用两个isp

好的,楼主能否分享一下你们自己画的双摄像头转接板插座接口原理图,和官方RK3399板子上的有哪些区别呢
作者: RICHYDUAN    时间: 2019-3-5 21:29
本帖最后由 RICHYDUAN 于 2019-3-5 21:32 编辑
Chary 发表于 2018-8-3 13:35
显示一个MIPI摄像头可以参考 http://dev.t-firefly.com/thread-13810-1-2.html
要点亮第二个,需要改下摄 ...

请问一下,楼主分享的dts里面,为什么camera2不需要配置rockchip,pwr-gpio还有rockchip,pd-gpio这几个引脚呢,就是GPIO1_C7 和 GPIO2_D4 还需要在camera2中配置么
作者: RICHYDUAN    时间: 2019-3-5 21:35
Chary 发表于 2019-3-5 10:20
两路Camera要用两个isp

如果单独调试J24插座的摄像头,J22的OV13850不接,能否让J24摄像头接到isp0
作者: Chary    时间: 2019-3-9 14:33
RICHYDUAN 发表于 2019-3-5 21:29
请问一下,楼主分享的dts里面,为什么camera2不需要配置rockchip,pwr-gpio还有rockchip,pd-gpio这几个引 ...

Camera的连接器是我们工程师自己做的,默认已经有对应的电平,一路Camera可以接在任何一路isp下,但是好像在dts里面isp有设置选择那个mipi接口
作者: RICHYDUAN    时间: 2019-3-11 09:54
哦,我们尝试将J24摄像头配置到isp0看看
作者: RICHYDUAN    时间: 2019-3-11 13:59
请问一下,rk3399-linux.dtsi文件中,cam0-default-pins和cam0-sleep-pins是不是两个相机配置得不一样
作者: RICHYDUAN    时间: 2019-3-18 16:16
Chary 发表于 2019-3-9 14:33
Camera的连接器是我们工程师自己做的,默认已经有对应的电平,一路Camera可以接在任何一路isp下,但是好 ...

请问楼主,第二路摄像头J24在dts里面修改,pinctrl-0 = <&cam0_default_pins>;                pinctrl-1 = <&cam0_sleep_pins>;这样配置正确么
作者: RICHYDUAN    时间: 2019-3-25 09:59
Chary 发表于 2019-2-25 10:58
可以将两个摄像头的从机地址设置为一样的,挂在不同的i2c下。ov7750的从机地址就是0x60

楼主能否分享一下第二路ISP在rk3399-linux.dtsi中的配置呢,我们参照你的帖子两路摄像头都可以在内核中注册了,但是ISP始终错误导致预览图像黑屏
作者: RICHYDUAN    时间: 2019-3-28 16:26
请问楼主的isp0的电源为啥要用GPIO1_C7来控制,是飞线过去的么?rockchip,pwr-gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;// GPIO1_C7
作者: 15626551325    时间: 2019-4-10 08:58
  我最近在调试
[root@rk3399:/]# dmesg | grep cif
[    0.207501] iommu: Adding device ff910000.cif_isp to group 4
[    1.478768] cif_isp10_v4l2_drv_probe: CIF ISP10 driver version: v0.2.2
[    1.479503] cif_isp10_pltfrm_dev_init(886) ERR: could not get default pinstate
[    1.480197] cif_isp10_pltfrm_dev_init WARN: could not get pins_sleep pinstate
[    1.481259] cif_isp10_pltfrm_dev_init WARN: could not get pins_inactive pinstate
[    1.482949] cif_isp10_img_src_to_img_src(70) ERR: to_img_src failed!
[    1.483525] cif_isp10_img_src_to_img_src(78) ERR: failed with error -14
[    1.484125] cif_isp10_img_srcs_init(1105) ERR: failed with error -14
[    1.484687] cif_isp10_create(6101) ERR: cif_isp10_img_srcs_init failed
[    1.485305] cif_isp10_create(6139) ERR: failed with error -14
哪里错了  有大神解答吗
作者: VoiceJourney    时间: 2019-6-14 15:48
能否说下你RK3399 Ubuntu下单camera下如何实现的?驱动应该参考哪个程序?很多人说RK3399 Ubuntu下不支持mipi摄像头,目前很迷茫。。。
作者: wx_Neal_VzM5s    时间: 2019-8-10 11:45
qqdf20@163.com 发表于 2018-8-13 13:09
请问你们的kernel是用的rockchip主线(https://github.com/rockchip-linux/kernel(release_4.4)分支,还是ht ...

我也想问,成功的是用的哪个内核,是rk官方的,还是firefly的。 还有哪个设备树可以直接用。
作者: wx_Neal_VzM5s    时间: 2019-8-10 11:49
15626551325 发表于 2019-4-10 08:58
我最近在调试
[root@rk3399:/]# dmesg | grep cif
[    0.207501] iommu: Adding device ff910000.cif ...

请问您调试好了吗
作者: wx_Neal_VzM5s    时间: 2019-8-10 11:52
楼主有分享dts 出来吗
作者: rv120827    时间: 2019-10-29 14:46
dts 和做法能分享下吗 大神
作者: Chary    时间: 2020-1-4 15:44
要想两个摄像头同时点亮,要么摄像头从机地址不一样,要不挂在不同的i2c上,firefly默认的两路mipi接在同一路I2C上面,如果要用同样的摄像头,那就考虑飞线,引出来一路其它I2c, 使用的是RK的kernel源码,firefly的更新比较慢。我们自己做的摄像头转接板。一般调试过程中无非就是首先I2C通不通,接着就是看摄像头的几个供电引脚是否正常,基本就这两个,其它的参考RK的camera开发手册慢慢改
作者: Sirius    时间: 2022-7-17 10:45
楼主能分享下吗
作者: yanyu131588    时间: 2022-7-21 16:33
1 楼主请问一下你的双目模组的分辨率分别是多少。
2 两路mipi是分别连的rkisp 和mipi-csi吗。
3 楼主能分享一下设备树配置吗




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1