Android 如何解决TG导致的黑屏问题
2014-02-20 15:21
537 查看
前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
[b][b]CSDN[/b]:[/b]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
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
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
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不匹配。
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产生了问题.
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
[b][b]CSDN[/b]:[/b]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
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
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
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不匹配。
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产生了问题.
相关文章推荐
- Android 如何解决默认壁纸更改为ImageWallpaper之外的壁纸,在特定的操作下,导致死机的问题。
- 如何完美的解决时间轴开发中的"绝对定位"导致的Android兼容性问题(断线,断点问题)
- Android 解决SurfaceView切换导致界面闪烁,短暂黑屏问题。
- Android 如何解决开机过程kernel logo到开机动画黑屏问题
- 解决Android客户端运行Cococs2dx编写的游戏程序遇到的意外游戏中断导致的游戏黑屏问题
- Unity4.6.9 Bug导致在Android 6.0设备上黑屏,更新Unity4.7解决问题
- Android如何解决显示屏尺寸适配问题
- [Android初级]关于如何解决软键盘弹出后覆盖界面布局的问题
- 如何解决Android WebView出现的乱码问题
- Android Studio so文件如何添加,如何解决极光推送无法推送的奇怪问题
- 我们是如何解决B/S因用户友好性差而导致项目失败的问题?
- 如何解决“BPM导入组织架构出现问题导致系统无法登陆”
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
- 【COCOS2DX-LUA 脚本开发之十四】解决自定义cpp类通过tolua++ binding LuaCocos2d后编译到Android运行黑屏(没有调用自定义cpp类)的问题!
- android app启动是白屏或黑屏问题的解决
- Android编程中activity启动时出现白屏、黑屏问题的解决方法
- Android解决Fragment中使用SurfaceView切换时闪一下黑屏的问题
- 如何解决Oracle ASM故障导致的数据丢失问题
- 如何解决Android中输入法挡住输入框的问题
- Android混合开发之Activity类与html页面之间的相互跳转(并解决黑屏问题)