编辑: 此身滑稽 | 2013-04-26 |
1 HT66Fx0 使用 ADC 所有功能 文件编码:AN0194T 简介 HT66FX0 系?微控制器内嵌有至少
8 个通道、12 位解析?的快速 A/D 转换器.
最快 8us 即 可完成一次 A/D 转换,本文将介绍如何使用 Holtek 的HT66FX0 系?微控制器的 A/D 功能. 本?以 HT66F40 为?,?续开启
8 个A/D 通道,启动 A/D 转换,并将转换结果进?保存, 实现多?电压采集功能,并介绍如何用一个内建的 1.25V 的?考电压?实现电源电压的采 集,以及实现 A/D 精确取样. 工作原? HT66F40 微控制器的 A/D 模块的核心是一个内嵌的
12 Bits A/D 转换器,具体结构如下图示: A / D C o v e r e r P A
0 / A N
0 ~ P A
7 / A N
7 P E
6 / A N
8 P E
7 / A N
9 P F
0 / A N
1 0 P F
1 / A N
1 1 A / D R e f e r e c e V o l a g e A D R L A D R H A / D D a a R e g i s e r s V
1 2
5 E N S T A R T E O C B A D O F F V S S P B
5 / V R E F A D C K
2 ~ A D C K
0 f S Y S A C E
1 1 ~ A C E
0 A C S
4 ~ A C S
0 1 .
2 5 V A / D C l o c k V D D A D O F F B i V R E F S B i A D R F S b i ?
2 N ( N =
0 ~
6 ) A/D 转换器的电源供应由 AVDD 和AVSS 提供,一般应用时,?者分别接 VDD 和VSS.在A/D 转换过程中所要的?考电压由 VREF 或者 AVDD 提供,VREF 电压?能大於 AVDD+0.1V . ?荽嫫 ADRH 和ADRL 用?保存
12 bits 的A/D 转换结果 . ADCR0 、 ADCR1 和ACERL 三个控制暂存器控制 A/D 的相关设置和操作.ADCR1 暂存器的 ADCK0~ADCK2 位元用?设置 A/D 时钟,为?保证 A/D 转换精?,A/D 时钟周期?应小於 0.5us.ADCR0 中的ADOFF 位元控制 A/D 模块功能的开关.在ACERL 暂存器中,ACE0~ACE7 控制 PA 口作 为A/D 输入脚还是普通 I/O 管脚.而ADCR0 暂存器中 ACS0~ACS2 和ADCR1 暂存器中的 ACS4 控制哪个通道?接到 A/D 转换器,其中一个通道为一个内建的 1.25V 的?考电压. START 为A/D 转换过程启动位元,当该位元由 0→1→0,A/D 即开始转换.EOCB 为转换结 束旗标.当该 bit 为0,则表示 A/D 转换过程结束,反之,为A/D 转换过程正在进?中. HT66Fx0 使用 ADC 所有功能
2 A/D 转换时序图?下图: t A D C A / D c o n v e r s i o n t i m e
0 0
0 1
1 B
0 0
0 1
0 B S T A R T E O C B A C S
4 ~ A C S
0 P o w e r - o n R e s e t E n d o f A / D c o n v e r s i o n
1 : D e f i n e p o r t c o n f i g u r a t i o n
2 : S e l e c t a n a l o g c h a n n e l S t a r t o f A / D c o n v e r s i o n R e s e t A / D c o n v e r t e r A / D s a m p l i n g t i m e t A D S
0 0
0 0
0 B S t a r t o f A / D c o n v e r s i o n R e s e t A / D c o n v e r t e r
0 0
0 0
1 B S t a r t o f A / D c o n v e r s i o n R e s e t A / D c o n v e r t e r E n d o f A / D c o n v e r s i o n A / D s a m p l i n g t i m e t A D S o f f o n o n t O N
2 S T t A D C A / D c o n v e r s i o n t i m e o f f A D O F F A D C M o d u l e O N ADC 采样时间为
4 个tAD,转换一次的时间总共为
16 个tAD,tAD 最小可达 0.5us,最大?超过 10us,因此一次 A/D 转换最短只需要
16 x 0.5us = 8us 即可完成.针对?同的系统频?,需要 注意设置的 tAD 需要介於 0.5us ~ 10us 之间,程式时可?考下面的 tAD 选择表: A/D Clock Period(tAD) fSYS ADCK2~0 =000(fSYS) ADCK2~0 =001(fSYS/2) ADCK2~0 =010(fSYS/4) ADCK2~0 =011(fSYS/8) ADCK2~0 =100(fSYS/16) ADCK2~0 =101(fSYS/32) ADCK2~0 =110(fSYS/64) ADCK2~0 =111 1MHz 1us 2us 4us 8us x x x Undefined 2MHz 500ns 1us 2us 4us 8us x x Undefined 4MHz x 500ns 1us 2us 4us 8us x Undefined 8MHz x x 500ns 1us 2us 4us 8us Undefined 12MHz x x x 667ns 1.33us 2.67us 5.33us Undefined x 表示?建议使用,tAD 小於 0.5us 或大於 10us 都可能导致转换结果?够准确. HT66F40 系?的 MCU 的A/D 模块带有一个内建的 1.25V ?考电压.它可以提供精确的?考 电压.?用内建的 1.25V ?考电压,可以实现电源电压的精确测?和 A/D 的精确取样,而 避免?因为电源电压的波动,导致出现带有误差的 A/D 转化结果. P A