编辑: 此身滑稽 | 2013-04-24 |
0 0
0 使用 使用 使用 使用 ADC ADC ADC ADC 所有功能 所有功能 所有功能 所有功能
1 HT66Fx0 使用 使用 使用 使用 ADC 所有功能 所有功能 所有功能 所有功能 文件编码:AN0194S 简介 简介 简介 简介 HT66FX0 系列微控制器内嵌有至少
8 个通道、12 位分辨率的快速 A/D 转换器.
最快 8?s 即可完成一次 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 n v e r t 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 n c e V o l t a g e A D R L A D R H A / D D a t a R e g i s t 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 t V R E F S B i t A D R F S b i t ?
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转换结果. ADCR
0、 ADCR1 和ACERL 三个控制寄存器控制 A/D 的相关设置和操作. ADCR1 寄存器的 ADCK0~ADCK2 位用来设置 A/D 时钟,为了保证 A/D 转换精度,A/D 时钟周期不应小于 0.5?s.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 为转换结束 标志位.当该位为 0,则表示 A/D 转换过程结束,反之,为A/D 转换过程正在进行中. HT66Fx HT66Fx HT66Fx HT66Fx0
0 0
0 使用 使用 使用 使用 ADC ADC ADC 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.5?s,最大不 超过 10?s, 因此一次 A/D 转换最短只需要
16 x 0.5?s = 8?s 即可完成. 针对不同的系统频率, 需要注意设置的 tAD 需要介于 0.5?s ~ 10?s 之间,编程时时可参考下面的 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 1?s 2?s 4?s 8?s x x x 未定义 2MHz 500ns 1?s 2?s 4?s 8?s x x 未定义 4MHz x 500ns 1?s 2?s 4?s 8?s x 未定义 8MHz x x 500ns 1?s 2?s 4?s 8?s 未定义 12MHz x x x 667ns 1.33?s 2.67?s 5.33?s 未定义 x 表示不建议使用,tAD 小于 0.5?s 或大于 10?s 都可能导致转换结果不够准确. HT66F40 系列的 MCU 的A/D 模块带有一个内建的 1.25V 参考电压.它可以提供精确的参 考电压.利用内建的 1.25V 参考电压,可以实现电源电压的精确测量和 A/D 的精确取样, 而避免了因为电源电压的波动,导致出现带有误差的 A/D 转化结果. P A