李 杰 李熹容
ATtiny12是Atmel公司生產(chǎn)的AVR單片機,雖然只有8個引腳,但功能強大(管腳見圖1)。用它設計一些小的智能電路,可以大大降低成本。它采用ISP方式編程,無須購買編程器,經(jīng)濟實用。本文介紹一個用ATtiny12制作的手機電池充電器,其電路簡單、編程方便。
1. ATtiny12特點
(1) AVR RISC 結(jié)構(gòu),有90條指令,大多數(shù)為單指令周期,32 個8 位通用工作寄存器;(2)程序空間1K字節(jié)的FLASHROM,采用ISP編程,壽命1000次;(3)3. 64字節(jié)在線可編程EEPROM壽命100000 次;(4)外圍引腳電平變化中斷及喚醒;(5)一個可預分頻8位定時器/計數(shù)器T0;(6)片內(nèi)模擬比較器;(7)可編程的看門狗定時器由片內(nèi)振蕩器生成;(8)具有低功耗空閑和掉電模式,增強的上電復位電路,可標度的片內(nèi)RC 振蕩器;(9)4MHz 3V 25 條件下的功耗,工作模式2.2mA,空閑模式0.5mA,掉電模式<1 A。
2.充電器電路原理
電路見圖2,本充電器采用脈動快充方式,對3.6V鋰電池充電,脈沖占空比9:1。充電電流Ic=電池容量,電阻R5、R6等于2×1.25V/Ic。根據(jù)各自的電池容量,改變R5、R6的阻值,可以確定充電電流。充電過程是:每充電1分鐘后,停充5s,MCU檢測電池兩端電壓Umax是否大于4.3V,不大于則繼續(xù)充電,否則停止充電。充電一個小時后,無論電池的電壓是多少伏,MCU均自動停止充電,這樣可以避免其它原因損壞電池!LED1指示充電器的工作狀態(tài),充電時閃爍,檢測時熄滅,充滿時常亮。K用于啟動充電器。MCU采用內(nèi)部RC振蕩器工作,工作頻率1MHz,并用內(nèi)部模擬比較器檢測電池的電壓。整體電路簡潔,用萬能板搭接即可。注意V1要加散熱片!
3. 軟件編制
采用MCU內(nèi)部T0定時器完成一個100ms定時基準,使用R0、R1、R2寄存器分別記錄充電、停充的時間。R0計數(shù)從0到9,當R0=0時,置PB2=1,其余時間清PB2=0。這樣可以簡單地完成9:1的占空比控制。R1完成1分鐘定時,R2完成1小時定時。程序采用匯編編寫,在AVR Studio3.51上編譯通過,并用自制編程線下載程序。
4. 調(diào)試過程
請先自制編程線,編程線的接線圖見圖3,使用PC機的并口。編程軟件PonyProg2000可以在http://www.LancOS.com下載(界面見圖4),該軟件為中文操作界面,使用方便。調(diào)試時先在A端接入4.3V穩(wěn)壓電源,調(diào)整電位器W1到LED1常亮即可。
在本刊的網(wǎng)站上給出了源程序,供讀者參考。