HT46R064B/065B/066B
保证设定的 A/D 转换时钟周期不小于时钟周期的最小值,否则将会产生不准确的 A/D 转换值。使用
者可以参考下面的表格,被标上星号*的数值是不允许的,因为它们的 A/D 转换时钟周期小于规定
的最小值。
A/D 时钟周期 (tAD
ADCS2,
)
ADCS2,
ADCS1,
ADCS2,
ADCS1,
ADCS2,
ADCS1,
ADCS2,
ADCS1,
ADCS2,
ADCS1,
ADCS2,
ADCS1,
ADCS0=011,
(fSYS/4) (fSYS/16)
111
fSYS
ADCS1,
ADCS0=000 ADCS0=001 ADCS0=010 ADCS0=100 ADCS0=101 ADCS0=110
(fSYS/2)
2μs
(fSYS/8) (fSYS/32)
(fSYS
)
1MHz
2MHz
4MHz
8MHz
12MHz
8μs
4μs
2μs
32μs
16μs
8μs
1μs
4μs
2μs
1μs
500ns
333ns*
16μs
8μs
4μs
2μs
1μs
未定义
未定义
未定义
未定义
未定义
1μs
500ns
250ns*
125ns*
83ns*
500ns
250ns*
167ns*
1μs
4μs
667ns
2.67μs
A/D 时钟周期范例
A/D 输入引脚
所有的 A/D 模拟输入引脚都与 PA 或者 PC 端口的 I/O 引脚共用。使用 ADCR 寄存器中的
PCR2~PCR0 位,可以将他们设置为普通输入/输出脚或模拟输入脚。通过这种方式,引脚的功能可
由程序来控制,灵活地切换引脚功能。当输入引脚作为普通 I/O 脚使用时,可使用上拉电阻,若设
置为 A/D 输入,则上拉电阻会自动断开。请注意,PA/PC 端口控制寄存器不需要为使能 A/D 输入而
先设定为输入模式,当 PCR2~PCR0 位使能 A/D 输入时,不需要考虑端口控制寄存器的状态。
A/D 转换步骤
下面概述实现 A/D 转换过程的各个步骤。
步骤 1
通过 ACSR 寄存器中的 ADCS2、ADCS1 和 ADCS0 位,选择所需的 A/D 转换时钟。
步骤 2
通过 ADCR 寄存器中的 PCR2~PCR0 位,选择哪些引脚规划为 A/D 输入引脚。
步骤 3
清零 ACSR 寄存器中的 ADONB 位来使能 A/D。
步骤 4
通过 ADCR 寄存器中的 ACS2~ACS0 位,选择连接至内部 A/D 转换器的通道。
步骤 5
如果要使用中断,则中断控制寄存器需要正确地设置,以确保 A/D 转换功能是激活的。中断
控制寄存器 INTC0 里总中断控制位 EMI 需要置位为“1‖, 以及 A/D 转换器中断位 ADE 也需
要置位为“1‖。
步骤 6
现在可以通过设定 ADCR 寄存器中的 START 位从“0‖到“1‖再回到“0‖,开始模数转换的过
程。注意,该位需初始化为“0‖。
步骤 7
可以轮询 ADCR 寄存器中的 EOCB 位,检查模数转换过程是否完成。当此位成为逻辑低时,
表示转换过程已经完成。转换完成后,可读取 A/D 数据寄存器 ADRL 和 ADRH 获得转换后的
值。另一种方法是,若中断使能且堆栈未满,则转换完成后,程序会进入 A/D 中断服务子程
序。
注意:若使用轮询 ADCR 寄存器中 EOCB 位的状态的方法来检查转换过程是否结束时,则中断
使能的步骤可以省略。
Rev 1.00
2011-04-13
52