


针对Cam84原版电路进行了测量,工作原理更加清晰,原来这篇文章里面有些错误的地方。不过依旧具有参考意义。可以两篇文章来回对照着看

背景
有关注比较久(或者说翻过我空间的)朋友应该知道,我几个月以来一直在尝试手搓CCD相机,参考了CAM84和CAM86项目。

上面的是第一版,所以自然而然地,第二版硬件就出来了,但是并没有像预期的那样正常工作 :(

因为已经回到了学校,而且第一版硬件又是差不多报废的状态。所以干脆想着买一台尼康的D40/50拆开直接测信号好了。所以:

撅撅子CCD相机嗷,很有味道!
整个过程没什么难点,把主板拆下来,就能看到传感器背面
主板:

中间靠左的20pin芯片就是垂直驱动
传感器背面:左上第一根引脚为Pin1(VL)

至于引脚定义,已经有人逆向出来了,站在巨人的肩膀上了是属于 :-P

我主要感兴趣的信号是:
V1~V4:垂直驱动信号
H1/H2:水平时钟信号
Vsub:CCD复位/清空信号(或者叫电子快门也可以?)
Vout:图像信号
RG:FD复位信号(我也不懂该叫啥,反正很重要)
把飞线焊好,主板塞回去:

有条件的话,还是用不同颜色的线罢

塞电池试一下,别给拆坏了xd。
先来看一下整体信号(测试条件:1/200s快门速度,影像尺寸Large)

注:V4不测,测Vsub

标注有误:V4应为Vout
呃...行吧,时基拉这么大,啥细节也看不清。下面就来好好的拆解一下
Vsub脉冲及其电压
Vsub电压负责清空CCD内的残存电子,不然读出的图像可能会出现不正常的过曝
通常在曝光开始前发出,发出后立即开始计算曝光时间
Vpp在30v,传感器不工作时拉低至-8v,开始工作时拉至+15v,脉冲时+30v

曝光时间1/200s,或者说5ms

这里V4应该为Vsub,标注错误
V1~V4信号
目前比较常用的CCD结构图如下:

图片来源:《CCD_CMOS图像传感器基础与应用》书籍
在曝光结束后,电子都存在光电二极管中。不难看出,若要想把这些电子转移出来,至少需要三个步骤:
光电二极管->垂直转移CCD
垂直转移CCD->水平转移CCD
水平转移CCD->输出放大器
把这三个阶段对应以下信号样式:
光电二极管->垂直转移CCD

整体
局部一:
两路+15V的电压将电子从光电管里送到垂直CCD里。当电子从光电管进入CCD后,基本不用担心被二次曝光问题,这时候再慢慢读出即可。

局部一
注:ICX453感觉是全像素读出?而不像ICX413只有场读出。
全像素读出的优势在于,可以一次性将所有光电管的信号转移进垂直CCD中。
场读出一次只能转移奇数行/偶数行的像素,这就意味着,另一半的像素只能留在光电管中继续曝光,如果读出不及时就会过曝。
具体内容可以去读一读《CCD_CMOS图像传感器基础与应用》这本书
考虑到这是尼康向索尼定制的传感器,而且是用在相机上的,全像素读出确实更加合适。而且转移过程要尽可能的快速

仅做示意图,来源:《CCD_CMOS图像传感器基础与应用》
局部二:
不是很清楚为什么会有这个信号,但既然放在这里应该有它的道理.jpg

局部二
垂直转移CCD->水平转移CCD

V1~V4按照一定的样式发出,形成电势井,让信号电荷往特定方向流动。
信号边沿的时间间隔4ns,V1和V2的持续时间比V3和V4要短。
每发出一次,垂直CCD中的电荷向下位移一个像素
注:ICX413和ICX453的垂直转移信号样式相同,可以参考413手册进行垂直驱动设计,下面是ICX413手册中对应部分

还有另一个:
在第一阶段(清空传感器)时,垂直转移信号如下。和曝光结束后,所使用的转移信号有别
频率:78kHz,持续时间大约58ms,边沿距:3.3ns,期间有水平信号

ICX413手册的对应部分

H1~H2信号

其实和垂直CCD差不多,两个相反的信号不断形成电荷井,最终将电荷送入输出放大器中。
如果把垂直信号与水平转移信号结合起来看,应该是下面这样。
垂直CCD往下送一次,水平转移3000次(因为传感器是3000横*2000纵分辨率)

RG/Vout信号


标注有误:V4应为RG
写到这里有点想摆烂,直接偷一张图过来好了

可能唯一需要说的就是:光线越亮,数据部的电平就会越低。
如果是纯黑环境,或者光电二极管->垂直转移CCD过程没有成功的话,那数据部的电平应该会和复位部持平,或者比复位稍高,如下两图

注:上图为D40,下图是我的第二版相机

总的来说想完成一副图片的读出,需要按顺序完成以下几个步骤;
彻底清除传感器中残留的信号
发出Vsub脉冲,开始计算曝光时间
曝光结束(机械快门落下),清除CCD残存信号
V1/V3发出+15v脉冲,将电荷从光电管转移至垂直CCD
垂直CCD向下转移一次,水平CCD转移3000次,重复循环2000次
到这里,整件事算是告一段落。至于后端ADC怎么处理,暂时还是写不了lol。
先让我把自己搓的那块板子出信号再说😢
感谢阅读