李 杰 李熹容
ATtiny12是Atmel公司生产的AVR单片机,虽然只有8个引脚,但功能强大(管脚见图1)。用它设计一些小的智能电路,可以大大降低成本。它采用ISP方式编程,无须购买编程器,经济实用。本文介绍一个用ATtiny12制作的手机电池充电器,其电路简单、编程方便。
1. ATtiny12特点
(1) AVR RISC 结构,有90条指令,大多数为单指令周期,32 个8 位通用工作寄存器;(2)程序空间1K字节的FLASHROM,采用ISP编程,寿命1000次;(3)3. 64字节在线可编程EEPROM寿命100000 次;(4)外围引脚电平变化中断及唤醒;(5)一个可预分频8位定时器/计数器T0;(6)片内模拟比较器;(7)可编程的看门狗定时器由片内振荡器生成;(8)具有低功耗空闲和掉电模式,增强的上电复位电路,可标度的片内RC 振荡器;(9)4MHz 3V 25 条件下的功耗,工作模式2.2mA,空闲模式0.5mA,掉电模式<1 A。
2.充电器电路原理
电路见图2,本充电器采用脉动快充方式,对3.6V锂电池充电,脉冲占空比9:1。充电电流Ic=电池容量,电阻R5、R6等于2×1.25V/Ic。根据各自的电池容量,改变R5、R6的阻值,可以确定充电电流。充电过程是:每充电1分钟后,停充5s,MCU检测电池两端电压Umax是否大于4.3V,不大于则继续充电,否则停止充电。充电一个小时后,无论电池的电压是多少伏,MCU均自动停止充电,这样可以避免其它原因损坏电池!LED1指示充电器的工作状态,充电时闪烁,检测时熄灭,充满时常亮。K用于启动充电器。MCU采用内部RC振荡器工作,工作频率1MHz,并用内部模拟比较器检测电池的电压。整体电路简洁,用万能板搭接即可。注意V1要加散热片!
3. 软件编制
采用MCU内部T0定时器完成一个100ms定时基准,使用R0、R1、R2寄存器分别记录充电、停充的时间。R0计数从0到9,当R0=0时,置PB2=1,其余时间清PB2=0。这样可以简单地完成9:1的占空比控制。R1完成1分钟定时,R2完成1小时定时。程序采用汇编编写,在AVR Studio3.51上编译通过,并用自制编程线下载程序。
4. 调试过程
请先自制编程线,编程线的接线图见图3,使用PC机的并口。编程软件PonyProg2000可以在http://www.LancOS.com下载(界面见图4),该软件为中文操作界面,使用方便。调试时先在A端接入4.3V稳压电源,调整电位器W1到LED1常亮即可。
在本刊的网站上给出了源程序,供读者参考。