DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 245|回复: 0
打印 上一主题 下一主题

基于单片机的CCD驱动电路的设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 17:28:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 CCD是一种固体成像器件[1],应用广泛。CCD工作需要多路脉冲驱动,并且各路脉冲在时序上要严格对应。对于CCD时序的设计,通常采用CPLD和FPGA技术,CPLD在低频CCD时序设计中使用[2-4],FPGA则用在更为复杂的时序设计中[5]。对于驱动比较简单的线阵CCD没有必要用这种成本比较高的电路。本文针对东芝公司的线阵CCD芯片TCD1304设计了基于单片机ATmega16的驱动电路。采用ATmega16的定时器/计数器timer0的CTC(比较匹配时清零定时器)模式和timer1的相位与频率修正PWM模式产生所需要的基本波形,可通过修改单片机程序中的参数来改变输出波形的频率和占空比,使得波形调整便捷。1  ATmega16的CTC模式及相位与频率修正PWM模式 ATmega16的timer0的CTC模式可通过令控制寄存器TCCR0的WGM01=1和WGM00=0来设定。寄存器OCR0用于调节计数器的分辨率,当计数器的数值TCNT0等于OCR0中的值时计数器清零,即OCR0定义了计数器的TOP值,亦即分辨率。这个模式使得用户可以很容易地控制比较匹配输出的频率。CTC模式的时序图如图1所示。计数器数值TCNT0一直累加到TCNT0与OCR0匹配,然后TCNT0清零。



    为了在CTC模式下得到波形输出,可以设置输出脚OC0在每次比较匹配发生时改变逻辑电平,这可以通过设置COM01:0=1来完成。在期望获得OC0输出之前,首先要将其端口设置为输出。波形发生器能够产生的最大频率由公式fOC0=fclk_I/O/2·N·(1+OCR0)来确定,变量N代表预分频因子(1、8、64或1 024)。 ATmega16的timer1的相位与频率修正模式可通过令控制寄存器TCCR1A和TCCR1B中的WGM13:0=8或9来设定。该种模式可以产生高精度的、相位与频率都准确的PWM波形,其工作时序图如图2所示。这是一种双斜坡操作的模式,计数器重复地从BOTTOM计数到TOP,然后又从TOP倒退回到BOTTOM。TOP的值可由ICR1(WGM13:0=8)或OCR1A(WGM13:0=9)来确定。在一般比较输出模式下,当TCNT1向TOP计数时,若TCNT1与OCR1A相匹配,输出脚OC1A(B)清零,并置为低电平;当TCNT1向BOTTOM计数时,若TCNT1与OCR1A相匹配时,输出脚OC1A(B)置为高电平,工作于反向输出比较时正好相反。输出的PWM波形的频率由公式fOC1A(B)=fclk_I/O/2·N·TOP来确定,变量N代表预分频因子(1、8、64或1 024)。通过改变ICR1及OCR1A两个寄存器的值就可完成PWM波形占空比的调整。



2 线阵图像传感器TCD1304的时序分析    CCD芯片TCD1304是一款高灵敏度、低暗电流的线阵图像传感器,其光电灵敏度的典型值可达到160 V/lx.s,可用于条码扫描、光谱测量等场合。TCD1304有两种工作方式:普通工作方式和电子快门工作方式,图3为在普通工作方式下的时序图。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-9 20:57 , 耗时 0.092361 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表