微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 请问,双摄像头切换在驱动里应该如何操作呢?

请问,双摄像头切换在驱动里应该如何操作呢?

时间:10-02 整理:3721RD 点击:

wayen 11:34:28

请问,双摄像头切换在驱动里应该如何操作呢?

回复奔逸玄思 11:36:21

。  

回复123456 11:44:37

mtk 的话是用不同的GPIO来控制CMPDN

有双摄像头的工程的话,看看,CAMERA_hw.c 和 image_sensor.c 就明白了  

回复logical 11:45:30

上层的怎么切?怎么添加?  

回复123456 11:46:46

image_sensor.c

里面会定义一个全局变量的

上层切换的时候会修改这个全局变量的  

回复123456 11:47:42

根据全局变量,来点亮camera,进行初始化  

回复wayen 11:54:55

const CameraModule CameraModules[]=

{

/*power_Pin Reset_Pin Cmpdn_Pin CLK_Pin Data_Pin Direction*/

{37, 10, 11, 8, 9, 0x00},//hou

{38, 10, 27, 8, 9, 0x00},//qian

}

我单独打开后摄像头或前摄像头的pin脚定义是能点亮的,但是两个都打开时,默认后摄像头可以亮,切换到前摄像头时就提示“装置未就绪”。为什么呢?  

回复奔逸玄思 11:55:56

看看CMPDN这个pin  

回复奔逸玄思 11:56:06

要一个高一个低  

回复执着 11:56:43

如果都是高有效,那就有效的那个为低啊  

回复奔逸玄思 11:57:51

power其实可以接到一起的  

123456 12:34:45

wayen(1162228408)  11:54:54

换到前摄像头时就提示“装置未就绪”。为什么呢?

切换之后,打印sensor 的ID看看,  

回复wayen 12:35:40

同样的主板,同样的软件,双摄像头,暂时未打开双摄像头切换功能,只对前摄像头操作。现在有一个现象:如果我后摄像头不装到主板上,前摄像头能正常点亮,如何把后摄像头扣上前摄像头打不开,后摄像头却能亮不过是花屏。  

回复123456 12:38:03

切换的时候Cmpdn_Pin有问题

在sensor的init里面没有控制好  

回复123456 12:39:18

进initial,

Cmpdn_Pin 都来高

reset 完了之后,再拉低其中一个  

回复123456 12:40:07

能不能把你的init贴出来看看呢  

回复wayen 12:42:51

现在我不切换了,只当是单摄像头。只是后摄像头扣上与否的区别,就倒置前摄像头点亮或点不亮

for(i=0;i<CAMERA_MODULE_NUM;i++)

{

GPIO_InitIO(1, CameraModules.Module_Power_Pin);

GPIO_ModeSetup(CameraModules.Module_Power_Pin, 0);

GPIO_WriteIO(1, CameraModules.Module_Power_Pin);

//Power Open

#if defined(MT6318)

pMIC_sw_sel(1);

PMIC_vasw_enable(KAL_TRUE);

#endif

GPIO_InitIO(1, CameraModules.Module_Cmpdn_Pin);  

GPIO_ModeSetup(CameraModules.Module_Cmpdn_Pin, 0);

//Powerdown set low

if(get_coms_sensor_pdn_config() == HIGH_POWERDOWN)

GPIO_WriteIO(0, CameraModules.Module_Cmpdn_Pin);

else

GPIO_WriteIO(1, CameraModules.Module_Cmpdn_Pin);

//Reset set high

GPIO_ModeSetup(CameraModules.Module_Reset_Pin, 0);        

GPIO_InitIO(1, CameraModules.Module_Reset_Pin);      

GPIO_WriteIO(1, CameraModules.Module_Reset_Pin);

// SCCB set high

GPIO_ModeSetup(CameraModules.Module_Clk_Pin,0x0);

GPIO_ModeSetup(CameraModules.Module_Data_Pin,0x0);

GPIO_InitIO(1, CameraModules.Module_Clk_Pin);

GPIO_InitIO(1, CameraModules.Module_Data_Pin);  

GPIO_WriteIO(1, CameraModules.Module_Clk_Pin);

GPIO_WriteIO(1, CameraModules.Module_Data_Pin);

}

  

回复奔逸玄思 12:43:40

后摄像头 必须是高阻状态的  

回复奔逸玄思 12:43:48

要不然是会导致你说的问题,  

回复123456 12:49:22

//Powerdown set low

if(get_coms_sensor_pdn_config() == HIGH_POWERDOWN)

GPIO_WriteIO(0, CameraModules.Module_Cmpdn_Pin);

else

GPIO_WriteIO(1, CameraModules.Module_Cmpdn_Pin);  

回复123456 12:49:34

这里似乎有问题  

回复123456 12:50:26

GPIO_WriteIO(0, CameraModules[0].Module_Cmpdn_Pin);

GPIO_WriteIO(0, CameraModules[1].Module_Cmpdn_Pin);

你根据条件查查,是不是都拉低了

  

回复123456 12:51:16

都拉低,装一个摄像头肯定是没有问题,但装两个肯定是有干扰的  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top