【全志平台】A64平台 TP9950 BT656输入驱动调试(1)驱动调试1

free-jdx 2020-09-08 19:26:12 7579
1. 前言

承接上篇文章, 这里主要是驱动调试部分

2. 调试记录
(1)硬件引脚梳理


9950没有上电时序要求,直接在dts中将PMU电配好即可

(2) 调试I2C

tp9950地址为0x44;
使用CCI测试 /sys/devices/tp9950;
发现I2C不通;

a.查看MCLK发现没有信号, MCLK正常
b. 查看I2C上拉情况, 正常
c. 查看电压情况, 1.8V正常

后来发现是操作原因导致

原因: I2C地址使用错了,应该确实是用0x88,而不是用七位地址0x44
(可能这个版本的I2C地址确实是加上读写位的)

I2C reg读取正常:

(3) 编译图像采集程序

全志平台SDK里面有测试通过的,图像采集程序

路径:
/linux-3.10/drivers/media/platform/sunxi-vfe/test

修改Makefile指定交叉工具链

(4)采集图像

测试命令: csi_test 0 0 640 480 ./ 0 10

尝试采集图像: 采集失败

采集log如下:

[ 2019.459831] [VFE]vfe_open
[ 2019.463020] [VFE]vfe_runtime_resume
[ 2019.479045] [VFE]..........................vfe clk open!.......................
[ 2019.487182] [VFE]vfe_open ok
[ 2019.490401] [VFE_WARN]NOT found this item:  tp9950, you can add this sensor in the sensor_list_t!
[ 2019.500260] [VFE]Set csi core clk = 300000000, after Set csi core clk = 300000000 
[ 2019.520016] [TW2866]CSI_SUBDEV_PWR_ON!
[ 2019.525402] [VFE]mclk on
[ 2019.596433] [TW2866]sensor_init
[ 2019.600049] [TW2866]reg 0x01 rdval = 0x8
[ 2019.604518] [TW2866]reg 0x02 rdval = 0xc2
[ 2019.609086] [TW2866]reg 0x06 rdval = 0x32
[ 2019.613551] [TW2866]sensor_s_parm
[ 2019.617178] [TW2866]sensor_s_fmt
[ 2019.630280] [TW2866]s_fmt = 2006, width = 1280, height = 720
[ 2019.636455] [TW2866]s_fmt end
[ 2019.639700] csi->frame_info.frm_byte_size = 1382400
resolution got from sensor = 128[ 2019.645324] [VFE]queue_setup, buffer count=8, size=1382400
0*720
[ 2019.654234] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.663091] ion_alloc carveout failed!!
[ 2019.668246] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.676645] ion_alloc carveout failed!!
[ 2019.681413] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.689579] ion_alloc carveout failed!!
[ 2019.694745] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.703067] ion_alloc carveout failed!!
[ 2019.707743] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.716130] ion_alloc carveout failed!!
[ 2019.721146] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.729311] ion_alloc carveout failed!!
[ 2019.734237] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.742555] ion_alloc carveout failed!!
[ 2019.747500] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.755893] ion_alloc carveout failed!!
VIDIOC_STREAMON ok
select timeout[ 2021.763256] [VFE]vfe_close

VIDIOC_STREAMOFF ok
*********[ 2021.767092] [TW2866]CSI_SUBDEV_PWR_OFF!
****************mode 0 test fail[ 2021.774226] [VFE]mclk off
ed at the 9 time!!
[ 2021.816503] [VFE]vfe_runtime_suspend
[ 2021.820487] [VFE]..........................vfe clk close!.......................
[ 2021.834875] [VFE]vfe_close end
# 
(5)排查原因

a . tp9950信号测试
这边测了下MCLK Vsync D0~D7是有信号的

b. ion内存分配报错

可能原因: csi_test程序中申请了8个buffer,则 1280720302 8=442M,而A64的ion buffer只分配了256M

解决办法: 将csi_tesi的buffer申请到4个
现象: 发现也是一样的现象

看驱动源码继续查问题,发现ion应该申请成功了:
即上面的CARVEOUT申请失败了,但下面的DMA申请成功了
(因为下面的没有报错)

v4l2-core/videobuf2-dma-contig.c

所以这部分报错可以忽略

c. 查看A64寄存器
cd /sys/class/sunxi_dump/
echo 0x01cb0000,0x01cb009c>dump;cat dump

offset
0x80 1280
0x84 360

0x88 640 1280
0x8c 480 640
这是不接相机查的接口,发现和上面的一样的,这就郁闷了

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 7 3 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区