Camera Asic Driver

 

 

DB

Camera ASIC

Camera sensor

Serial/Parallel

LCD

Serial/Parallel

I 2C & Parallel

 

由于DB不直接与LCDCamera sensor相连, 不能直接操作。 通常是对Camera ASIC操作。

Camera ASic camera sensor的连接

I 2C : SCL, SDA, 用于控制//camera sensor命令

Data[0..7] 双向数据

HSYNC/VSYNC/PCLK同步信号(sensor->camera asic

 

开发步骤:

1.       设置LCD bypass模式通常有两种方式, 一种是有单独的CS,如通过操作GPIO CS。这样得话,就先设置bypass模式,调试LCD

通常可以简单认为Camera Asic不存在(实际上通过了camera asic)。

 

2.       还有一种就是要通过写Camera Asic寄存器。这样得话,需要先调试Read/Write register (Camera ASIC)

如果是Serial方式,先配置好Serial方式(baudrate, clock, MSB/LSB, 8bit/16bit, Master/Slave, FIFO, enable/disable interrupt

如果是Parallel方式, 则比较简单。 

通常有一个chip ID,如果read register 读出正确即可

然后Write register, 写完后,再读出看看结果是否一致

 

3.       通过Camera AsicRead/Write LCD register

 

4.       通过camera asic Read/Write camera register(I 2C )

这个实际上还是通过Serial/Parallel来写camera asic的寄存器

注意Read/Write结束后,要读I 2C status

 

5.       Reset & Init camera asic

Reset通常用GPIO来操作,也有SoftReset(通过写camera asic寄存器)

Init 则需要设置Power,  Clock,  Viewfinder default格式, Overlay大小

通常在Init中会读出chip ID

 

6.       Power save (enable/disable) camera asic

在这个Sequence中通常设置Clock, Standby, bypass

 

7.       Init camera

设置Power Clock,  I 2C clock, 读出camera ID

 

8.       Viewfinder

Reset & Init camera asic

Disable power save

LCD display position/size

Overlay position/size

Camera sensor init

Property setting(white balance,…)

Viewfinder sequence

 

9.       Overlay in viewfinder

Disable bypass模式

需要对camera asic寄存器操作来update LCD

 

10.   Stop viewfinder

Stop viewfinder sequence (Switch to LCD bypass)

Stop Camera sensor power/clock

Enable power save of camera asic

 

11.   Snapshot

Stop viewfinder procedure

Jpeg encode(encode sequence, output image size, set interrupt if needed)

Wait encode finished

Read jpeg size/data

Notify high level SW to store it to FS

 

  

 

 

 

你可能感兴趣的:(c,image,output,parallel)