S5PV210开发板 介绍camera 驱动 (4)

本文详细介绍了S5PV210开发板上摄像头驱动的调试过程,包括摄像头的上电、时钟配置,IIC初始化及参数设置。通过调试解决录相花屏、图像干扰、YUV顺序错误、预览方向不对等问题,提供摄像头驱动中常见的问题和解决方案。
摘要由CSDN通过智能技术生成

一、摄像头驱动

我们以GT2005为例,来讲述一个摄像头驱动的调试过程:

摄像头和主控的关系图,如下:


摄像头驱动比较简单,完成一面三大步就可以:

摄像头的上电、时钟这些基本条件;

IIC保证摄像头的初始化;

摄像头工作后传回数据到主控。

完成这三个步骤就完成了摄像头基本工作的调试。

1、 摄像头的上电、时钟这些基本条件的实现

电源部分,上电时对应规格书,确认上电时序;MCLK摄像头的主时钟是否提供,看下面是和电和规格书中的

(1)、主意摄像头工作要两组电压:1.8V(1.5V)、2.8V还有MCLK


程序中对电源控制:我们在arch\arm\mach-smdkv310.c中,完成上面两个步骤的代码,(这一点不同平台也许有所不同,这里这是一个实例,这部分代码只是针对三星平台的)

  1. #ifdef CONFIG_VIDEO_GT2005
  2. static void set_cam2005_main_power(int onoff)
  3. {
  4. unsigned int gpio;
  5. int err;
  6. if(onoff)
  7. {
  8. err = gpio_request(S5PV210_GPB(2), "GPB");
  9. if (err)
  10. printk(KERN_ERR "#### failed to request GPB2 for CAM\n");
  11. s3c_gpio_cfgpin(S5PV210_GPB(2),S3C_GPIO_OUTPUT);
  12. s3c_gpio_setpull(S5PV210_GPB(2), S3C_GPIO_PULL_UP);
  13. gpio_direction_output(S5PV210_GPB(2), 1);
  14. gpio_free(S5PV210_GPB(2));
  15. //RESET
  16. err = gpio_request(S5PV210_GPE1(4), "GPE1");
  17. if (err)
  18. printk(KERN_ERR "#### failed to request GPE1_4 for CAM\n");
  19. s3c_gpio_setpull(S5PV210_GPE1(4), S3C_GPIO_PULL_NONE);
  20. gpio_direction_output(S5PV210_GPE1(4),0);
  21. mdelay(100);
  22. gpio_direction_output(S5PV210_GPE1(4), 1);
  23. gpio_free(S5PV210_GPE1(4));
  24. //PWDN CAM_back
  25. err = gpio_request(S5PV210_GPB(4), "GPB");
  26. if (err)
  27. printk(KERN_ERR "#### failed to request GPB4 for CAM\n");
  28. s3c_gpio_cfgpin(S5PV210_GPB(4),S3C_GPIO_OUTPUT);
  29. s3c_gpio_setpull(S5PV210_GPB(4), S3C_GPIO_PULL_UP);
  30. gpio_direction_output(S5PV210_GPB(4), 0);
  31. mdelay(100);
  32. gpio_direction_output(S5PV2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值