新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机ATmega16的CCD驱动电路的设计

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

作者:时间:2010-10-22来源:网络收藏

TCD1304工作时需要SH、ICG和ФM 3路驱动信号。SH的周期表示光信号积累时间,即积分时间,ICG和SH是同步的,ФM是主脉冲,其典型值为2 MHz。OS表示信号输出,每4个ФM脉冲周期对应1位信号周期。可以看出,TCD1304工作时需要的驱动信号比较简单,完全可以用ATmega16来产生。
3 电路设计及实验结果
3.1 电路设计

 基于ATmega16的TCD1304的驱动电路如图4所示。


使用ATmega16的timer0的CTC工作模式产生2 MHz的方波,并由输出脚OC0输出,然后经过施密特反向器整形后输出作为ФM(即图4中的FM);使用timer1的相位与频率修正PWM模式产生一定周期的波形,由OC1A脚输出,同样经过施密特反向器整形后输出作为ICG;将ICG波形经过延时和变窄处理后得到SH信号。图4中还给出了ATmega16的复位电路。单片机工作时使用系统内部时钟8MHz,timer1采用8分频(即1 MHz)作为时钟输入。部分的单片机程序如下:
  初始化部分:
  LDI TEMP, $00
  OUT TCCR0, TEMP
  OUT TCNT0, TEMP
  OUT TCNT1L, TEMP
  OUT TCNT1H, TEMP
  OUT TIMSK, TEMP
  设置timer1和timer0的相关寄存器:
  LDI TEMP, $80
  OUT TCCR1A, TEMP
  LDI TEMP, $00
  OUT OCR1AH, TEMP
  LDI TEMP, $04
  OUT OCR1AL, TEMP
  LDI TEMP, $0e
  OUT ICR1H, TEMP
  LDI TEMP, $74;
  OUT ICR1L, TEMP
  
  LDI TEMP, $02;
  OUT OCR0, TEMP
  启动输出:
  LDI TEMP, $71
  OUT TCCR0, TEMP
  NOP
  LDI TEMP, $12
  OUT TCCR1B, TEMP
 在程序中,由输出脚OC0输出的是2 MHz方波,通过寄存器OCR0和TCCR0来确定。输出脚OC1A输出的波形周期为T=7.4 ms(ICR1·2·1 μs),对应CCD的最短积分时间。改变timer1的寄存器的设置就可以调整积分时间。



关键词: 功率模块

评论


相关推荐

技术专区

关闭