Toybrick

标题: TB-RK3399ProD 摄像头调试 [打印本页]

作者: gaoyubin    时间: 2021-11-15 09:53
标题: TB-RK3399ProD 摄像头调试
开发板型号为: TB-RK3399ProDs(6GB+32G)
摄像头型号为:RK3399_Pro-IMX258-V1.0
我参考了论坛的说明:
https://t.rock-chips.com/forum.p ... light=3A&page=2
内核和文件系统均为最新版
调试时运行例程example显示如下信息
[attach]2140[/attach]
这种情况如何判断问题点呢?
哪位大神能帮忙看看呢!

作者: troy    时间: 2021-11-15 10:34
sudo apt-get install v4l-utils安装下工具,然后执行root权限执行media-ctl -p /dev/media0,把日志贴上来。
还有dmesg | grep imx258看有没有报错信息。
作者: 395876134    时间: 2021-11-15 11:04
你这边是用什么摄像头?
作者: gaoyubin    时间: 2021-11-15 11:12
troy 发表于 2021-11-15 10:34
sudo apt-get install v4l-utils安装下工具,然后执行root权限执行media-ctl -p /dev/media0,把日志贴上来 ...

[attach]2141[/attach]

作者: gaoyubin    时间: 2021-11-15 11:13
395876134 发表于 2021-11-15 11:04
你这边是用什么摄像头?

摄像头型号为:RK3399_Pro-IMX258-V1.0
作者: gaoyubin    时间: 2021-11-15 11:14
troy 发表于 2021-11-15 10:34
sudo apt-get install v4l-utils安装下工具,然后执行root权限执行media-ctl -p /dev/media0,把日志贴上来 ...

dmesg | grep imx258 没有任何信息.
作者: troy    时间: 2021-11-15 11:18
gaoyubin 发表于 2021-11-15 11:14
dmesg | grep imx258 没有任何信息.

那你用的应该是默认的dtb,并没有打开imx258,你可以修改下imx258的dtb,你参考的那个帖子里应该有说明。
作者: gaoyubin    时间: 2021-11-15 11:36
troy 发表于 2021-11-15 11:18
那你用的应该是默认的dtb,并没有打开imx258,你可以修改下imx258的dtb,你参考的那个帖子里应该有说明。 ...

写入了帖子上提供的toybrick-imx258.dtb输入dmesg | grep imx258打印信息如下:
root@debian10:/mnt/share/rk3399/example# dmesg | grep imx258
[    2.190485] imx258_eeprom 1-0050: probing...
[    2.192593] imx258_eeprom 1-0050: probing successful
[    2.194793] imx258_eeprom 2-0050: probing...
[    2.196892] imx258_eeprom 2-0050: probing successful
[    2.582759] imx258 1-0010: driver version: 00.01.03
[    2.582809] imx258 1-0010: GPIO lookup for consumer reset
[    2.582813] imx258 1-0010: using device tree for GPIO lookup
[    2.582848] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/i2c@ff110000/imx258@10[0]' - status (0)
[    2.582889] imx258 1-0010: GPIO lookup for consumer pwdn
[    2.582893] imx258 1-0010: using device tree for GPIO lookup
[    2.582916] of_get_named_gpiod_flags: parsed 'pwdn-gpios' property of node '/i2c@ff110000/imx258@10[0]' - status (0)
[    2.582935] imx258 1-0010: Looking up avdd-supply from device tree
[    2.582942] imx258 1-0010: Looking up avdd-supply property in node /i2c@ff110000/imx258@10 failed
[    2.583021] imx258 1-0010: Looking up dovdd-supply from device tree
[    2.583027] imx258 1-0010: Looking up dovdd-supply property in node /i2c@ff110000/imx258@10 failed
[    2.583090] imx258 1-0010: Looking up dvdd-supply from device tree
[    2.583096] imx258 1-0010: Looking up dvdd-supply property in node /i2c@ff110000/imx258@10 failed
[    2.583228] imx258 1-0010: could not get sleep pinstate
[    2.585083] imx258 1-0010: Unexpected sensor id(000000), ret(-5)
[    2.585327] imx258 2-0010: driver version: 00.01.03
[    2.585355] imx258 2-0010: GPIO lookup for consumer reset
[    2.585359] imx258 2-0010: using device tree for GPIO lookup
[    2.585402] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/i2c@ff120000/imx258_1@10[0]' - status (0)
[    2.585424] imx258 2-0010: GPIO lookup for consumer pwdn
[    2.585428] imx258 2-0010: using device tree for GPIO lookup
[    2.585450] of_get_named_gpiod_flags: parsed 'pwdn-gpios' property of node '/i2c@ff120000/imx258_1@10[0]' - status (0)
[    2.585467] imx258 2-0010: Looking up avdd-supply from device tree
[    2.585473] imx258 2-0010: Looking up avdd-supply property in node /i2c@ff120000/imx258_1@10 failed
[    2.585521] imx258 2-0010: Looking up dovdd-supply from device tree
[    2.585526] imx258 2-0010: Looking up dovdd-supply property in node /i2c@ff120000/imx258_1@10 failed
[    2.585566] imx258 2-0010: Looking up dvdd-supply from device tree
[    2.585573] imx258 2-0010: Looking up dvdd-supply property in node /i2c@ff120000/imx258_1@10 failed
[    2.585676] imx258 2-0010: could not get sleep pinstate
[    2.587145] imx258 2-0010: Unexpected sensor id(000000), ret(-5)
root@debian10:/mnt/share/rk3399/example#


在帮忙分析一下吧.



作者: troy    时间: 2021-11-16 12:54
gaoyubin 发表于 2021-11-15 11:36
写入了帖子上提供的toybrick-imx258.dtb输入dmesg | grep imx258打印信息如下:
root@debian10:/mnt/share ...

日志上看是I2C通信失败,没有读到imx256的id,Unexpected sensor id(000000), ret(-5)。
检查下imx258的模组有没有插好,排序正反面有没有插错。
作者: gaoyubin    时间: 2021-11-16 16:08
troy 发表于 2021-11-16 12:54
日志上看是I2C通信失败,没有读到imx256的id,Unexpected sensor id(000000), ret(-5)。
检查下imx258的 ...

imx258的模组插接到位,1脚对应排线的1脚.我用示波器看clk和sda在开机时有很短暂的波形.大概9个方波.
你看下一步该如何测试呢?
作者: troy    时间: 2021-11-22 14:14
gaoyubin 发表于 2021-11-16 16:08
imx258的模组插接到位,1脚对应排线的1脚.我用示波器看clk和sda在开机时有很短暂的波形.大概9个方波.
你看 ...

排线的正反面没接错吧,imx258有没有回复ACK。
再不行就换货试试。
作者: gaoyubin    时间: 2021-11-22 15:34
troy 发表于 2021-11-22 14:14
排线的正反面没接错吧,imx258有没有回复ACK。
再不行就换货试试。

排线应该不会插错,排线1脚对应插座的1脚.波形上看有9个方波,从协议上看第9个应该是imx258回复的ACK吧.

作者: gaoyubin    时间: 2021-11-22 15:36
troy 发表于 2021-11-22 14:14
排线的正反面没接错吧,imx258有没有回复ACK。
再不行就换货试试。

如果换货是换摄像头还是修开发板呢?
作者: troy    时间: 2021-11-23 09:01
gaoyubin 发表于 2021-11-22 15:36
如果换货是换摄像头还是修开发板呢?

板子一般不会有问题,大概率是摄像头问题。基本就是检查排线有没有插反,摄像头方向有没有插错。从你的波形来看,应该是没有ACK的。因为驱动第一步是读取imx258的内部寄存器ID,一下子是发几个i2c通信命令,不会像这样只有一条。
驱动代码在源码的driver/media/i2c/imx258.c,是imx258_check_sensor_id出错,出错原因是I2C通信失败。
作者: gaoyubin    时间: 2021-11-25 14:59
troy 发表于 2021-11-23 09:01
板子一般不会有问题,大概率是摄像头问题。基本就是检查排线有没有插反,摄像头方向有没有插错。从你的波 ...

摄像头换了一个新的,测试结果还是一样的.你看是不是开发板问题呢?系统我已经按要求更新了.
作者: gaoyubin    时间: 2021-11-25 15:53
troy 发表于 2021-11-23 09:01
板子一般不会有问题,大概率是摄像头问题。基本就是检查排线有没有插反,摄像头方向有没有插错。从你的波 ...

mipi_rx1我也试过了,打印信息是一样的.
作者: troy    时间: 2021-11-26 08:44
gaoyubin 发表于 2021-11-25 15:53
mipi_rx1我也试过了,打印信息是一样的.

你把板子和camera的接线拍出来看看,camera是接mipi_rx0的,还有你用的dtb是板子上自带的imx258的dtb吗,还是你有自己修改编译过的。
作者: gaoyubin    时间: 2021-11-26 10:21
troy 发表于 2021-11-26 08:44
你把板子和camera的接线拍出来看看,camera是接mipi_rx0的,还有你用的dtb是板子上自带的imx258的dtb吗, ...

板子上自带的imx258的dtb用过,使用方法是升级最新的系统执行命令:cp toybrick-imx258.dtb toybrick.dtb。然后重启就是给你发的日志截图自己编译的也用过.结果都是一样的.你看看我还要如何操作呢.


作者: troy    时间: 2021-11-26 11:45
gaoyubin 发表于 2021-11-26 10:21
板子上自带的imx258的dtb用过,使用方法是升级最新的系统执行命令:cp toybrick-imx258.dtb toybrick.dtb ...

我们这边也有环境了,我们先看一下。
作者: troy    时间: 2021-11-26 16:02
gaoyubin 发表于 2021-11-26 10:21
板子上自带的imx258的dtb用过,使用方法是升级最新的系统执行命令:cp toybrick-imx258.dtb toybrick.dtb ...

验证过了,看了是V3.0的boot_linux.img有问题,你那边有源码的话,可以自己编译boot_linux.img烧写进行。由于附件太大,所以我这边无法上传。我已经验证过,最新代码编译完,替换imx258的dtb是可以识别imx258的。
作者: gaoyubin    时间: 2021-11-26 17:07
troy 发表于 2021-11-26 16:02
验证过了,看了是V3.0的boot_linux.img有问题,你那边有源码的话,可以自己编译boot_linux.img烧写进行。 ...

只烧写boot_linux.img就可以了吗,我试试看.
或者你可以上传到服务器,更新之前的文件,以免别人用起来也有问题哦.
作者: gaoyubin    时间: 2021-11-26 17:35
troy 发表于 2021-11-26 16:02
验证过了,看了是V3.0的boot_linux.img有问题,你那边有源码的话,可以自己编译boot_linux.img烧写进行。 ...

我看到你已经更新了服务器的boot_linux.img,我下载并烧录.替换imx258的dtb.但是结果还是和之前是一样的.
作者: troy    时间: 2021-11-26 18:10
gaoyubin 发表于 2021-11-26 17:35
我看到你已经更新了服务器的boot_linux.img,我下载并烧录.替换imx258的dtb.但是结果还是和之前是一样的.: ...

我们下周在看一下,可能还是哪里有问题需要修改。安卓版本是可以的,说明硬件连接和模组正常,linux和安卓的驱动不一样,我们还需要对比一下。
作者: troy    时间: 7 天前
gaoyubin 发表于 2021-11-26 17:35
我看到你已经更新了服务器的boot_linux.img,我下载并烧录.替换imx258的dtb.但是结果还是和之前是一样的.: ...

新的imx258模组地址是0x1a,旧的imx258模组是0x10,所以识别不到,使用附件的dtb应该可以了。

作者: LianYYDS    时间: 5 天前
我也是替换了imx258的dtb,但还是无法识别摄像头
作者: troy    时间: 4 天前
LianYYDS 发表于 2021-11-30 16:13
我也是替换了imx258的dtb,但还是无法识别摄像头

你这个截图已经成识别到了。认真看一下日志,imx258 1-001a已经识别到没有报错,imx258 2-001a报错是正常的额,因为dts配置i2c1和i2c2都配置了imx258的dts,对应mipi rx0和mipi rxtx接口。
你只接入一个imx258肯定会有一个扫描不到,这是正常现象。
作者: LianYYDS    时间: 4 天前
troy 发表于 2021-12-1 09:10
你这个截图已经成识别到了。认真看一下日志,imx258 1-001a已经识别到没有报错,imx258 2-001a报错是正常 ...

嗯嗯,已经利用guvcview成功打开摄像头了,但用cheese不行
作者: troy    时间: 3 天前
LianYYDS 发表于 2021-12-1 16:47
嗯嗯,已经利用guvcview成功打开摄像头了,但用cheese不行

cheese看一下打开的节点对不对,之前也是有调过的。接在rx0的话,应该是打开video0节点。cheese如果真的不行,串口和cheese软件的log也可以贴出来。




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3