求教:关于lcd和sensor的几个问题和讨论
时间:2023-10-18 15:37:00
我的问题是关于的lcd和sensor原则上要普遍,
但其实应该和具体的实现有很大的关系。我的平台是mtk6226,05C代码,
希望老手们导,不要觉得我罗嗦,我想把问题和现象说清楚。
1、在存储卡上播放电影时,显示屏跳动,出现分屏现象。
然而,播放开关机和其他动画时没有问题。
情况下的lcd显示没有问题。
播放速度越高,跳动越强,播放速度为0.5的时候就
只有轻微的跳动。此外,随时旋转到全屏播放正常,
暂停播放后的画面也正常。
刚开始怀疑这个问题。LCD但是修改驱动时序的问题
时序和在BlockWrite函数坐标寄存器在写入间添加延迟,
问题还在;另外,如果时间顺序有问题,因为播放电影
高速刷新显示数据,数据错误应引起花屏现象,
但是颜色没有错,
所以后来觉得不是LCD驱动时间问题。
然后怀疑在播放驱动或上层应用程序时传递的坐标是错误的。
但是,由于任何时候都会暂停播放后的图片和一般播放gif,
图片显示是正常的,所以排除驱动BlockWrite函数
坐标设置错误;同时trace上层应用请求播放电影时
坐标也发现没有问题。
因为播放时减速跳动现象有所改善,怀疑是6226
mpeg解码速度慢或慢lcd总线刷新跟不上,
但是我们的屏幕很小(128X160),8bit并行数据总线,52MHz
这个想法基本上是站不住脚的。另外,因为如果在播放时旋转
全屏播放正常,也可以证明吞吐率没有问题。
希望高人能提供一些想法和想法debug方法
二、附带地,camera相机时屏幕也有同样的现象,通常每个人
会修改sensor帧率、时钟、图像分辨率等。
问题。但是因为我只是在播放电影文件的时候跳动,所以似乎
并不是camera帧率问题。
三、ov7660问题。preivew下当被拍摄物体在摄像头前移动或者摄像头
当突然面对不同光照条件的场景时,屏幕上会出现面积形状
橙色区域不确定。比如用手指挡住。lens再拿开,对着
电脑液晶显示器的白色背景是最严重的。我不知道是什么
原因?请给我一些建议。曝光调整基本没有改善。ov的
fae居然告诉我这是我lcd太差了,气死我。
知道原因的老手要不吝赐教,感激不尽。
四、因为用的是rgbraw格式,因此ov的fae说sensor本身
没什么好调的。主要的调整是mtk的isp相关部分。
但是isp我只看到相关的东西bbchip的datasheet上有
简单介绍(只有一些寄存器列表,模糊),所以我很好
奇怪大家是怎么调的,这个isp我想可能需要几百页
文档可以说清楚,调试时如何知道如何修改?
那些寄存器呢?
既然rgbraw不好做,那就用吧yuv但是我想要一个代码
来想合并我的05C结果失败了,很多都是编译的
(isp_yuv_if.c.h,cam_hp_msg_handler.c,cam_hp_ilm.c
med_c_main.c,med_api.h,img_comm.c,med_context.h
med_c_context.h,med_c_main.h...等文件)
说几句话,最好留个联系方式。
五、还有一个gamma我问表的问题ov的fae是的,结果他说
因为我用的是rgbraw,所以得问mtk是的,虽然现在gamma
校正确实是isp但我认为这是基于每一件事sensor/lens
颜色和感光特性来了,ov人会推脱,nnd。不知道
这是我的想法吗?
还有一个旋转问题,我的preview图与实际物体相差90度,
sensor寄存器只能调整mirror和flip,而makefile中SENSOR_ROTATE
宏的SENSOR_ROTATE_90,SENSOR_ROTATE_代码270两个值
事实上,它不支持,也不起作用。事实上,我认为isp完全应该
能够解决这个问题的人只需要以某种顺序写入和另一种顺序读出
但是我不知道为什么SENSOR_ROTATE_90,SENSOR_ROTATE_270
就是不支持。不知道大家怎么解决,
有人告诉我,制造商可以重做模块。我不知道它是否可以据什么
可以改变这个道理吗?
另外还有个sizematch问题,sensor640X480,而LCD128X160,
bbchip中的resier根据我的电路驱动程序,可以使用我的电路驱动程序sensor和lcdsize自动
match还是不行,这就是我的原因rotate90问题?
七、有人告诉我rgbraw只有mtk还需要一些工具和仪器来调整,
真的吗?
八、时序问题。我代码中
#ifdefined(CAM_PREVIEW_15FPS)
SET_TG_OUTPUT_CLK_DIVIDER(3);
SET_CMOS_RISING_EDGE(0);
SET_CMOS_FALLING_EDGE(2);
ENABLE_CAMERA_PIXEL_CLKIN_ENABLE;
SET_TG_PIXEL_CLK_DIVIDER(7);
SET_CMOS_DATA_LATCH(3);
Mclk=52/(3 1)=13M,plck=13/(7 1)=1.75M,
但是我640X480X15不止这个数字,还没算出来dummyline&piexl,
有人能解释吗?