1、详细代码请对比查看 patch 修改内容。
遇到问题:
- Sensor 没有发送数据进入到vi 中去。cat /proc/umap/vi 无数据调试图像无法出现。
解决过程和方法:
在调试时,将720p120fps 初始化寄存器完全用 1080p60的寄存器替换,能够出图像。对比寄存器初始化设置值,最终锁定为:
/* register setting details */
sensor_write_register (0x3101, 0x30); /* FREQ[1:0] */
0x3101 这个地址,在imx178 手册中是0h, 但是按照这个是无法出现图像。所以这里我们还是用代码中1080p60 和5M30的值 0x30.
- 图像出来后,发现图像颜色值不对。红色变成了紫色,黄色变蓝色。
解决过程及方法:
咋一看图像颜色怪怪的,一开始无从下手,一直以为是哪个寄存器设置不对。找了好久都没看出是哪出问题,那就查看 umap 下面的log 文件。对比查看umap文件。
在板子中分别查看 1080p60 正常和 不正常的 isp,vi vpss 文件
# cat /proc/umap/vpss
# cat /proc/umap/vi
# cat /proc/umap/isp
看到isp log中出现 GBRG 和 GRBG 不一样。这个值设置是在isp 初始化时设置的。
原来是在isp 初始化时设置错误。修改为BAYER_GRBG:
../project/common/sample_comm_isp.c
SAMPLE_COMM_ISP_Init(WDR_MODE_E enWDRMode)
{
...
stPubAttr.enBayer = BAYER_GRBG;
...
}
- 帧率120时画面模糊。
解决过程及方法:
目前只修改VMAX和HMAX 寄存器值调试。分别调试及测试数据如下:
VMAX 5F8
HMAX
117 120fps 271 72fps 226 81fps 210 86fps
测试数据:
VMAX 05F8 + HMAX 210 86fps
VMAX 05E8 + HMAX 0205 88fps
VMAX 05E4 + HMAX 0206 88fps 稳定
VMAX 05E0 + HMAX 0205 88~89fps
VMAX 05DC + HMAX 0203 89fps 1500
VMAX 05D8 + HMAX 0204 89fps 1496
VMAX 05D8 + HMAX 0203 89~90fps 1496
#define VMAX_720P120 (1512+INCREASE_LINES)
sensor_write_register (0x3000, 0x07); /* standby */
sensor_write_register (0x3004, 0x03); /* STBLVDS, 4CH ACTIVE */
sensor_write_register (0x300D, 0x05); /* ADBIT, ADBITFREQ (ADC 12-bit) */
sensor_write_register (0x300E, 0x24); /* HD 720p 2x2 */
sensor_write_register (0x300F, 0x00); /* */
sensor_write_register (0x3010, 0x01); /* TCYCLE */
sensor_write_register (0x3066, 0x04); /* VNDMY */
sensor_write_register (0x302C, 0xF8);
sensor_write_register (0x302D, 0x05); /* VMAX datasheet 0x672*/
sensor_write_register (0x302F, 0x10);
sensor_write_register (0x3030, 0x02); /* HMAX */
sensor_write_register (0x3059, 0x31); /* ODBIT, OPORTSEL (12-BIT) */
/* register setting details */
sensor_write_register (0x3101, 0x30); /* FREQ[1:0] */
目前只能最后达到80多帧。