一、 前言
HOLTEK微控器是由盛群所开发,而盛群在1998年12月在竹科正式开始营运,在短短的四年间即推出14种不同系列的微控器,其范围包括有通用型与专用型微控器(MCU),除一般应用领域外,更涵盖语音、通讯、计算机外设、家电等各专业领域,此外并提供各种电源管理,非易失性内存等微控制器外围组件,本文主要锁定在具内嵌式之模拟/数字转换器之微控器,它可应用于交换式电源供应、电磁炉、电毯、电饭锅、洗衣机、烘碗机、多功能电池充电器等。
二、 A/D系列之微控器
HT46系列的微控器具内嵌式之模拟/数字转换器,如表1所示。该系列的微控器是以是否含有LCD驱动器,将它们分成两大类八种微控器,每一种都包含两种型式,其一为C型的MASK版本,适合大量生产使用;另一为R型的OTP版本,适合于少量或实验的场合。HT46X47(X是指R或C)微控制器适用于电池快速充电器的设计应用,其内嵌式之模拟/数字转换器A/D及具脉波宽度调变的数字/模拟转换器(PWMD/A),对于设计电池充电器时,能省略外部A/D、PWMD/A、及模拟开关等组件,使得生产成本大大地降低,PWMD/A之设计更是采用高频设计,其优点为可降低系统电力输出级之电感线圈、尺寸与重量及提升电力运用效率,而A/D转换器共有四个信道,其分辨率为9bits,信道的选择及A/D选项均采用软件方式控制,在设计应用上非常方便。
三、 工作原理
以HT46R47微控器为例,其内嵌式之模拟/数字转换器之工作原理系利用四个特殊缓存器来完成,分别是ADRL(20H)、ADRH (21H)、ADCR(22H)、和ACSR(23H)。ADRL和ADRH分别代表A/D转换完成后的低、高字节,因此这两个缓存器仅具有只读的特性。而ADCR是控制A/D转换的工作缓存器,它被用来定义A/D转换的可用信道的数目、那一个模拟信道被选择、开始转换位、及完成指示旗标等,其位定义如表二所示。此外,ACSR缓存器可以被用来设定转换的时序来源,如表三所示。模拟/数字转换器之使用方法如下:
1. 首先以PCR0-PCR2定义好端口B的配置,如表二所示,对于不需要用的信道建议关闭,以节省电源消耗。换言之,选择刚好够用的模拟信道数目,且从端口B的位0开始依序指定,例如需要三个模拟信道、则可以使用位0、位1、及位2、。
2. 再来用ACS0-ACS2来选择工作的模拟信道,如表2所示。
3. 然后再将START位给于上升及下降的讯号变化,如:0→1→0。当START位由0→1时EOC会被设定成1。
4. 最后,等待EOC位变成0即表示转换完成,其转换后的结果存在ADRL和ADRH,其位的配置如表四所示。
模拟/数字转换器使用方法的最后步骤,必须经常查看EOC旗标,因此会浪费许多宝贵的时间,HOLTEK也设计使用中断的方法,来取得A/D转换后的结果,其中断形成的先决条件有三:其一为A/D转换完毕;其二是激活中断向量;最后堆栈尚有空间,也就是说不会造成堆栈溢出的情形。当此三个条件满足后,程序会直接跳至地址00CH处。