基于單片機(jī)ATmega16的CCD驅(qū)動(dòng)電路的設(shè)計(jì)
TCD1304工作時(shí)需要SH、ICG和ФM 3路驅(qū)動(dòng)信號(hào)。SH的周期表示光信號(hào)積累時(shí)間,即積分時(shí)間,ICG和SH是同步的,ФM是主脈沖,其典型值為2 MHz。OS表示信號(hào)輸出,每4個(gè)ФM脈沖周期對(duì)應(yīng)1位信號(hào)周期??梢钥闯?,TCD1304工作時(shí)需要的驅(qū)動(dòng)信號(hào)比較簡(jiǎn)單,完全可以用ATmega16來(lái)產(chǎn)生。
3 電路設(shè)計(jì)及實(shí)驗(yàn)結(jié)果
3.1 電路設(shè)計(jì)
基于ATmega16的TCD1304的驅(qū)動(dòng)電路如圖4所示。
使用ATmega16的timer0的CTC工作模式產(chǎn)生2 MHz的方波,并由輸出腳OC0輸出,然后經(jīng)過(guò)施密特反向器整形后輸出作為ФM(即圖4中的FM);使用timer1的相位與頻率修正PWM模式產(chǎn)生一定周期的波形,由OC1A腳輸出,同樣經(jīng)過(guò)施密特反向器整形后輸出作為ICG;將ICG波形經(jīng)過(guò)延時(shí)和變窄處理后得到SH信號(hào)。圖4中還給出了ATmega16的復(fù)位電路。單片機(jī)工作時(shí)使用系統(tǒng)內(nèi)部時(shí)鐘8MHz,timer1采用8分頻(即1 MHz)作為時(shí)鐘輸入。部分的單片機(jī)程序如下:
初始化部分:
LDI TEMP, $00
OUT TCCR0, TEMP
OUT TCNT0, TEMP
OUT TCNT1L, TEMP
OUT TCNT1H, TEMP
OUT TIMSK, TEMP
設(shè)置timer1和timer0的相關(guān)寄存器:
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
啟動(dòng)輸出:
LDI TEMP, $71
OUT TCCR0, TEMP
NOP
LDI TEMP, $12
OUT TCCR1B, TEMP
在程序中,由輸出腳OC0輸出的是2 MHz方波,通過(guò)寄存器OCR0和TCCR0來(lái)確定。輸出腳OC1A輸出的波形周期為T(mén)=7.4 ms(ICR1·2·1 μs),對(duì)應(yīng)CCD的最短積分時(shí)間。改變timer1的寄存器的設(shè)置就可以調(diào)整積分時(shí)間。
評(píng)論