Android 如何解决TG导致的黑屏问题
来源:互联网 发布:软件开发项目培训 编辑:程序博客网 时间:2024/04/29 07:41
前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
TG module 处于data path的前端, 当产生问题后经常会有黑屏的现象.
TG前端还有一个Seninf Module, Seninf Module的主要功能是处理Parallel/Mipi/Serial等interface发送的信号,TG module全称为Timing Generator,它主要有两个作用,一是产生sensor 工作所需要的Master Clock,二是接收sensor 吐出的信号。当怀疑是TG有问题的时候通常可以按照以下的思路.
1. 查看是否是ISP wait irq time out error, 出现问题后可以再main log里面看到以下的log:
ERROR: Clear(1),Type(0),IrqStatus(0x00005000),WaitStatus(0x00000400),Timeout(5000)
Bit10: 为1代表没有成功收到TG1 Done status
2. 认为和TG有关系后,接下来可以去分析dump register,主要需要关系以下的register.
A: TG2 receive input image data from seninf 2
0x150044E8 (ex. 0x0CC00990)
Width = 0xCC0, Height = 0x990
Width = 0xCC0, Height = 0x990
B: TG2 grab window
0x150044B8 (ex. 0x0C860002)
Grab pixel start = 0x0002, Grab pixel end = 0x0C86
0x150044BC (ex. 0x09680002)
Grab line start = 0x0002, Grab line end = 0x0968
C. TG1 receive input image data from seninf 1
0x15004448 (ex. 0x0CC00990)
Width = 0xCC0, Height = 0x990
0x15004448 (ex. 0x0CC00990)
Width = 0xCC0, Height = 0x990
D. TG1 grab window
0x15004418 (ex. 0x0C860002)
Grab pixel start = 0x0002, Grab pixel end = 0x0C86
0x1500441C (ex. 0x09680002)
Grab line start = 0x0002, Grab line end = 0x0968
0x15004418 (ex. 0x0C860002)
Grab pixel start = 0x0002, Grab pixel end = 0x0C86
0x1500441C (ex. 0x09680002)
Grab line start = 0x0002, Grab line end = 0x0968
3. 如果发现TG这些register里面的数据已经异常,则很有可能是Seninf Module已经产生了问题.因此就需要再去分析Seninf Module的相关register,Seninf module的register可以参考FAQ10571, 下面就把两种经常犯的错误罗列出来:
A: 以92为例,design note上main/sub camera有独立的mipi port,sub camera使用的为port_A,会有客户把sub camera的mipi-data 与main camera接在一起;这样就造成在切换到sub camra时,TG 无法从port_A 接收到数据.具体的修改不同的平台稍有不同.核心代码如下:
B. 还有一种情况是发生了CRC error;
0x1500810C,bit 0~2 为ECC,CRC error interrupt status;
若bit0,bit1,bit2为1,说明lane number不匹配,通常是sensor module的mipi lane number和对应的driver不匹配。
0x1500810C,bit 0~2 为ECC,CRC error interrupt status;
若bit0,bit1,bit2为1,说明lane number不匹配,通常是sensor module的mipi lane number和对应的driver不匹配。
4. 若发现前端Seninf Module输出来的数据正常,在main log里面还是发现有TG 的irq error而且TG的相关register收到的数据却不正常,可以考虑是bandwidth的问题导致.分析如下:
A: g_TempAddr:Last(0x02EC0000) == Cur(0x02EC0000)
Status(0x00000010),Lost pass1 done,Error IRQ, Type(0)
Bit4: 为1,表明bandwidth不足
B: 此时可以去check 0x15000802c和0x150004448, 0x150080ac和0x150044e8对比数据的大小来确认是否为TG module产生了问题.
0 0
- Android 如何解决TG导致的黑屏问题
- Android 解决SurfaceView切换导致界面闪烁,短暂黑屏问题。
- 解决Android客户端运行Cococs2dx编写的游戏程序遇到的意外游戏中断导致的游戏黑屏问题
- 解决黑屏的问题
- 解决黑屏的问题
- Android 解决程序启动时的黑屏问题
- Android 解决程序启动时的黑屏问题
- Android 解决程序启动时的黑屏问题
- Android 解决程序启动时的黑屏问题
- Android解决程序启动时的黑屏问题
- Android 解决程序启动时的黑屏问题
- Android 解决黑屏时wifi断开连接的问题
- 解决Android应用启动时白屏或者黑屏的问题
- Android 解决程序启动时的黑屏问题
- Android 解决程序启动时的黑屏问题
- android app启动是白屏或黑屏问题的解决
- Android 解决启动app白屏或黑屏的问题
- ubuntu下解决由于错误配置分辨率导致黑屏问题
- Android SIM多次热插拔,某次插入,不识别SIM卡
- C#读写文件总结
- 一个反射将对象转化为sql语句的实例
- the import javax.servlet.http cannot be resolved
- shell 脚本获取服务器应用状态
- Android 如何解决TG导致的黑屏问题
- 为你的水晶报表装载本地图片
- tq210 内核移植和根文件系统
- 我的chromium for Android编译环境搭建(二)
- 均值滤波、中值滤波的matlab实现
- FPGA工程师面试题目网络收集
- Extjs下拉框笔记
- 详解透明网桥的三个功能
- 突破HIPS的防御思路之duplicate physical memory