首页资源分类嵌入式处理器PIC > PIC中档单片机系列-10位A-D转换器 20页

PIC中档单片机系列-10位A-D转换器 20页

已有 447864个资源

下载专区

文档信息举报收藏

标    签:PIC

分    享:

文档简介

PIC中档单片机系列-10位A-D转换器 20页

文档预览

第 23 章 10 位 A/D 转换器 目录 本章包括以下一些主要内容: 23.1 简介 ............................................................................................................................ 23-2 23.2 控制寄存器 ................................................................................................................. 23-3 23.3 操作 ............................................................................................................................ 23-5 23.4 A/D 采集时间要求....................................................................................................... 23-6 23.5 A/D 转换时钟的选择 ................................................................................................... 23-8 23.6 模拟输入引脚的设置................................................................................................... 23-9 23.7 A/D 转换的编程举例 ................................................................................................. 23-10 23.8 休眠期间的 A/D 转换 ................................................................................................ 23-14 23.9 复位对 A/D 转换的影响............................................................................................. 23-14 23.10 A/D 转换精度与误差 ................................................................................................. 23-15 23.11 连接时的考虑事项 .................................................................................................... 23-16 23.12 传递函数................................................................................................................... 23-16 23.13 初始化 ...................................................................................................................... 23-17 23.14 设计技巧................................................................................................................... 23-18 23.15 相关应用笔记............................................................................................................ 23-19 23.16 版本历史................................................................................................................... 23-20 注 1: 目前发布的中档系列单片机没有包含此模块。已计划推出包含此模块的单片机,但 目前没有供货时间表。请登陆 Microchip 网站或 BBS 查阅已发布的包含器件详细特 性的产品简介。 如果您现在的设计需要一个 10 位 A/D,请参阅 PIC17C756,它带有一个 12 通道的 10 位 A/D,该 A/D 的特性和本章描述的模块相同。 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-1 页 PICmicro 中档单片机系列 23.1 简介 该模拟数字转换器 (A/D) 模块有多达 8 个模拟输入通道。 模拟输入对一个采样保持电容器充电,采样保持电容的输出是 A/D 转换器的输入。A/D 转换器采 用逐次逼近法将这一模拟电平产生数字转换结果,其转换结果为 10 位数字。 模拟参考电压 ( 正电源电压和负电源电压 ) 可通过软件选择为器件的电源电压 (AVDD、AVss) 或 AN3/VREF+ 和 AN2/VREF- 引脚上的电平。 A/D 转换器具备可在休眠状态下工作的独特特性。 A/D 模块有四个寄存器,它们是: • A/D 结果高位寄存器 (ADRESH) • A/D 结果低位寄存器 (ADRESL) • A/D 控制寄存器 0 (ADCON0) • A/D 控制寄存器 1 (ADCON1) ADCON0 寄存器,如图 23-1 所示,控制 A/D 模块的操作。ADCON1 寄存器,如图 23-2,可对 端口的引脚功能进行配置。这些端口引脚可被设置成模拟输入 ( 其中 AN3 和 AN2 也可作为参考 电压输入 ) 或数字 I/O 引脚。 图 23-1:10 位 A/D 转换器结构框图 CHS2:CHS0 111 110 101 100 VAIN ( 输入电压 ) 011 010 10 位 转换器 A/D 001 PCFG0 000 AVDD VREF+ 参考电压 VREF- AVSS AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 DS31023A_CN 第 23-2 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 23.2 控制寄存器 寄存器 23-1: ADCON0 寄存器 R/W-0 R/W-0 R/W-0 ADCS1 ADCS0 CHS2 bit 7 R/W-0 CHS1 R/W-0 CHS0 R/W-0 GO/DONE U-0 R/W-0 — ADON bit 0 bit 7:6 ADCS1:ADCS0: A/D 转换时钟选择位 bit 5:3 00 = FOSC/2 01 = FOSC/8 10 = FOSC/32 11 = FRC (A/D 模块内部专用的 RC 振荡器 ) CHS2:CHS0: 模拟通道选择位 000 = 通道 0, (AN0) 001 = 通道 1, (AN1) 010 = 通道 2, (AN2) 011 = 通道 3, (AN3) 100 = 通道 4, (AN4) 101 = 通道 5, (AN5) 110 = 通道 6, (AN6) 111 = 通道 7, (AN7) bit 2 注 : 对未用满 8 个 A/D 通道的器件,未使用的选项被保留。不要选择未使用的通道。 GO/DONE: A/D 转换状态位 当 ADON = 1 时 1 = A/D 转换正在进行 ( 该位置 1 启动 A/D 转换。 A/D 转换结束后该位由硬件自动清零 ) 0 = 未进行 A/D 转换 bit 1 bit 0 保留 : 总是保持该位为 0。 ADON: A/D 模块开启位 1 = A/D 转换器模块工作 0 = A/D 转换器关闭,不消耗工作电流 图注 R = 可读位 U = 未用,读为 ‘0’ W = 可写位 - n = 上电复位值 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-3 页 PICmicro 中档单片机系列 寄存器 23-2: ADCON1 寄存器 U-0 U-0 — — bit 7 R/W-0 ADFM U-0 R/W-0 R/W-0 R/W-0 R/W-0 — PCFG3 PCFG2 PCFG1 PCFG0 bit 0 bit 7:6 bit 5 bit 4 bit 3:0 未用:读为 '0' ADFM: A/D 结果格式选择位 ( 另见图 23-6)。 1 = 右对齐, ADRESH 寄存器的高 6 位读为 ’0’ 0 = 左对齐, ADRESL 寄存器的低 6 位读为 ’0’ 未用:读为 '0' PCFG3:PCFG0: A/D 端口配置控制位 PCFG AN7 AN6 AN5 AN4 AN3 AN2 0000 A A A A A A 0001 A A A A VREF+ A 0010 D D D A A A 0011 D D D A VREF+ A 0100 D D D D A D 0101 D D D D VREF+ D 011x D D D D D D 1000 A A A A VREF+ VREF- 1001 D D A A A A 1010 D D A A VREF+ A 1011 D D A A VREF+ VREF- 1100 D D D A VREF+ VREF- 1101 D D D D VREF+ VREF- 1110 D D D D D D 1111 D D D D VREF+ VREF- A = 模拟输入 D = 数字 I/O C/R = 模拟输入通道数 / A/D 参考电压数 AN1 AN0 VREF+ VREF- A A AVDD AVSS A A AN3 AVSS A A AVDD AVSS A A AN3 AVSS A A AVDD AVSS A A AN3 AVSS DD— — A A AN3 AN2 A A AVDD AVSS A A AN3 AVSS A A AN3 AN2 A A AN3 AN2 A A AN3 AN2 D A AVDD AVSS D A AN3 AN2 C/R 8/0 7/1 5/0 4/1 3/0 2/1 0/0 6/2 6/0 5/1 4/2 3/2 2/2 1/0 1/2 图注 R = 可读位 U = 未用,读为 ‘0’ W = 可写位 - n = POR 复位值 注 1: 在器件的复位时,复用为模拟功能 (ANx) 的端口引脚均被强制置为模拟输入。 DS31023A_CN 第 23-4 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 23.3 操作 ADRESH:ADRESL 寄存器中保存了 A/D 转换的 10 位结果。当 A/D 转换完成之后,转换结果被 载入这一 A/D 结果寄存器对中, GO/DONE (ADCON0<2>) 位被清零,且 A/D 中断标志位 ADIF 置 1。 A/D 模块的结构框图见图 23-1。 当配置好 A/D 模块后,在启动转换前必须先选择 A/D 转换的通道。模拟输入通道的相应 TRIS 位 必须设置为输入。采集时间 (acquisition time)的确定参见 23.4 “A/D 采集时间要求 ” 小节。在 这一采集时间过去之后, A/D 转换即可开始。按照以下步骤进行 A/D 转换: 1. 配置 A/D 模块 • 对模拟引脚 / 参考电压 / 数字 I/O (ADCON1) 进行配置 • 选择 A/D 输入通道 (ADCON0) • 选择 A/D 转换时钟 (ADCON0) • 打开 A/D 转换模块 (ADCON0) 2. 需要时,设置 A/D 中断 • 将 ADIF 位清零 • 将 ADIE 位置 1 • 将 GIE 位置 1 3. 等待所需的采集时间 4. 启动 A/D 转换 • 将 GO/DONE 置 1 (ADCON0) 5. 等待 A/D 转换完成,通过以下两种方法之一可判断转换是否完成: • 轮询 GO/DONE 位是否被清零或 ADIF 位被置 1 ; 或 • 等待 A/D 转换的中断。 6. 读取 A/D 结果寄存器对 (ADRESH:ADRESL),需要时将 ADIF 位清零。 7. 要再次进行 A/D 转换,根据要求转入步骤 1 或步骤 2。 要再次进行 A/D 转换,根据要求转入步骤 1 或步骤 2。每一位的 A/D 转换时间定义为 TAD。在下 一次采集开始前至少需要等待 2TAD。 图 23-2 为 A/D 转换顺序及所使用的术语。采集时间是 A/D 模块的保持电容连接到外部电平的时 间。随后是 12 TAD 的转换时间,开始于 GO 位被置 1。这两段时间的总和即采样时间(sampling time)。为确保保持电容充电至适当电平以使 A/D 转换达到所需精度,应保证一个最小采集时间。 23 图 23-2:A/D 转换顺序 A/D 采样时间 采集时间 转换时间 A/D 转换结束, 转换结果载入 ADRES 寄存器 。 保持电容开始获取所选择通道的电平。 ADIF 位置 1。 此时为 A/D 转换开始 ( 即 GO 位置 1)。 此时为 A/D 保持电容开始充电。 A/D 转换完成后,或选择了新的 A/D 通道。 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-5 页 PICmicro 中档单片机系列 23.4 A/D 采集时间要求 为了使 A/D 转换达到规定精度,必须让充电保持电容 (CHOLD) 充满至输入通道的电平。图 23-3 显示了模拟输入模型。模拟信号的源阻抗 (RS) 和内部采样开关阻抗 (RSS) 直接影响电容器 CHOLD 所需的充电时间。采样开关 (RSS) 电阻随器件电压 (VDD) 变化,见图 23-3 。模拟信号源的最大建 议阻抗为 10 kΩ。采集时间随阻抗的降低而缩短。选择 ( 改变 ) 模拟输入通道后,在转换开始前 必须先完成模拟信号的采集。 要计算最小采集时间,可使用等式 23-1。该公式假设误差为 1/2 LSb( 即 A/D 的 1024 步 )。 1/2 LSb 误差是 A/D 模块达到规定分辨率的最大允许误差。 公式 23-1: TACQ = = 采集时间 放大器的建立时间 + 保持电容器充电时间 + 温度系数 TAMP + TC + TCOFF 公式 23-2: VHOLD 或 Tc A/D 最小充电时间 = (VREF - (VREF/2048)) • (1 - e(-Tc/CHOLD(RIC + RSS + RS))) = -(120 pF)(1 kΩ + RSS + RS) ln(1/2047) 例 23-1 显示了所需最小采集时间 TACQ 的计算过程。该计算过程基于以下的假定: CHOLD Rs 转换误差 VDD 温度 VHOLD = 120 pF = 10 kΩ ≤ 1/2 LSb = 5V → Rss = 7 kΩ ( 参见图 23-3) = 50°C (system max.) = 0V @ time = 0 例 23-1: 计算所需最小采集时间 ( 情况 1) TACQ = TAMP + TC + TCOFF 只有在温度 > 25°C 时才需要温度系数 TACQ = 2 µs + Tc + [(Temp - 25°C)(0.05 µs/°C)] TC = TACQ = -CHOLD (RIC + RSS + RS) ln(1/2047) -120 pF (1 kΩ + 7 kΩ + 10 kΩ) ln(0.0004885) -120 pF (18 kΩ) ln(0.0004885) -2.16 µs (-7.6241) 16.47 µs 2 µs + 16.47 µs + [(50°C - 25°C)(0.05 µs/°C)] 18.47 µs + 1.25 µs 19.72 µs DS31023A_CN 第 23-6 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 当源阻抗为最小值时 (RS = 50 Ω),来了解采集时间有什么变化。例 23-2 和例 23-1 的条件基本 相同,唯一的不同在于源阻抗为最小值 (RS = 50 Ω)。 例 23-2: 计算所需的最小采集时间 ( 情况 2) TACQ = TAMP + TC + TCOFF 只有在温度 > 25°C 时,才需要温度系数。 TACQ = 2 µs + Tc + [(Temp - 25°C)(0.05 µs/°C)] TC = TACQ = -CHOLD (RIC + RSS + RS) ln(1/2047) -120 pF (1 kΩ + 7 kΩ + 50 Ω) ln(0.0004885) -120 pF (8050 Ω) ln(0.0004885) -0.966 µs (-7.6241) 7.36 µs 2 µs + 16.47 µs + [(50°C - 25°C)(0.05 µs/°C)] 9.36 µs + 1.25 µs 10.61 µs 注 1: 注 2: 注 3: 注 4: 参考电压 (VREF) 对该公式不产生影响,因为它在计算中已将自身消去。 在每次转换后,充电保持电容 (CHOLD) 并不放电。 模拟信号源的最大建议阻抗为 10 kΩ ,这是为了满足引脚漏电流的要求。 在转换完成之后,下一次采集重新开始前应等待 2.0 TAD。在此期间,保持电容并不 与所选 A/D 输入通道相连接。 图 23-3:模拟输入模型 Rs ANx VDD VT = 0.6V RIC ≤ 1k 采样 开关 SS RSS VAIN CPIN 5 pF VT = 0.6V 漏电流 ± 100 nA 符号 CPIN = 输入电容 VT = 门限电压 I LEAKAGE = 各个节点在引脚 上引起的漏电流 RIC SS CHOLD = 内部互连电阻 = 采样开关 = 采样 / 保持电容 ( 来自 DAC) 6V 5V VDD 4V 3V 2V CHOLD = 120 pF VSS 5 6 7 8 9 10 11 采样开关 ( kΩ ) 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-7 页 PICmicro 中档单片机系列 23.5 A/D 转换时钟的选择 每一位的 A/D 转换时间被定义为 TAD。每完成一次 10 位 A/D 转换需要 11.5 个 TAD。A/D 转换的 时钟可用软件进行选择,对于 TAD 可以有以下 4 种选择: • 2Tosc • 8Tosc • 32Tosc • A/D 模块内部 RC 振荡器 为了确保 A/D 转换正确,A/D 转换时钟 (TAD) 的选择必须满足最小 1.6 µs 的 TAD 时间,参见 “ 电 气规范 ” 一章中的参数 130。 表 23-1 和表 23-2 显示了器件在不同工作频率下以及所选的不同 A/D 时钟源下得到的 TAD 结果。 这些时间适用于标准电压范围的器件。 表 23-1: TAD 与器件工作频率关系表 ( 对于标准的 C 型器件 ) AD 时钟源 (TAD) 器件工作频率 状态 ADCS1:ADCS0 20 MHz 5 MHz 1.25 MHz 333.33 kHz 2TOSC 8TOSC 32TOSC RC 00 100 ns(2) 400 ns(2) 1.6 µs 6 µs 01 400 ns(2) 1.6 µs 6.4 µs 24 µs(3) 10 1.6 µs 6.4 µs 25.6 µs(3) 96 µs(3) 11 2 - 6 µs(1,4) 2 - 6 µs(1,4) 2 - 6 µs(1,4) 2 - 6 µs(1) 图注: 阴影部分不在推荐工作范围内。 注 1: RC 时钟源的典型 TAD 为 4 µs。 2: 这些值违反了所需最小 TAD 时间规则。 3: 要加快转换时间,建议选择另一时钟源。 4: 器件工作频率高于 1 MHz 时,整个转换过程应在休眠模式下进行,否则 A/D 转换精度可能超出允许范围。 表 23-2: TAD 与器件工作频率关系表 ( 对于扩展的 LC 型器件 ) AD 时钟源 (TAD) 器件频率 工作状态 ADCS1:ADCS0 4 MHz 2 MHz 1.25 MHz 333.33 kHz 2TOSC 8TOSC 32TOSC RC 00 500 ns(2) 1.0 µs(2) 1.6 µs(2) 6 µs 01 2.0 µs(2) 4.0 µs 6.4 µs 24 µs(3) 10 8.0 µs 16.0 µs 25.6 µs(3) 96 µs(3) 11 3 - 9 µs(1,4) 3 - 9 µs(1,4) 3 - 9 µs(1,4) 3 - 9 µs(1,4) 图注: 阴影部分不在推荐工作范围内。 注 1: RC 时钟源的典型 TAD= 6 µs。 2: 这些值违反了所需最小 TAD 时间。 3: 要加快转换时间,建议选择另一时钟源。 4: 器件工作频率高于 1 MHz 时,整个转换过程应在休眠模式下进行,否则 A/D 转换精度可能超出允许范围。 DS31023A_CN 第 23-8 页 初稿  2004 Microchip Technology Inc. 23.6 第 23 章 10 位 A/D 转换器 模拟输入引脚的设置 ADCON1 和 TRISA 寄存器用来控制 A/D 端口引脚的运行。若希望端口引脚为模拟输入,则必须 将其相应的 TRIS 位置 1( 输入 ) ;如果 TRIS 位被清零 ( 输出 ),则数字输出电平 (VOH 或 VOL) 将被转换。 A/D 转换与 CHS2:CHS0 位及 TRIS 位的状态无关。 注 1: 读取端口寄存器时,所有配置为模拟输入通道的引脚均读为 0( 低电平 )。配置为数 字输入的引脚将转换模拟输入信号。配置为数字输入的引脚上的模拟电平将不影响 转换精度。 注 2: 定义为数字输入的引脚上的模拟电平 ( 包括 AN7:AN0 引脚 ),可能导致输入缓冲器 消耗超出器件规范的电流。 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-9 页 PICmicro 中档单片机系列 23.7 A/D 转换的编程举例 例 23-3 显示了如何在 PIC17C756 上进行 A/D 转换。PORTF 端口 和 PORTG 端口的低四位被配 置成模拟输入。模拟参考电压 (VREF+ 和 VREF-) 为器件的 AVDD 和 AVSS。使能 A/D 中断, A/D 转换时钟设为 FRC。该转换在 AN0 引脚 ( 通道 0) 上进行。 注 : 由于所需采集时间的要求,不应在打开 A/D 模块的同一指令中将 GO/DONE 位置 1。 在转换期间将 GO/DONE 位清零将中止当前 A/D 转换。A/D 结果寄存器对中的内容不会被部分完 成的 A/D 转换样本所更新,即, ADRESH:ADRESL 寄存器对仍然保持上一次转换完成后的结果 ( 或上一次写入 ADRESH:ADRESL 寄存器中的值 )。 A/D 转换被中止后,在下一次采集开始前, 需要等待 2TAD 的时间。等待 2TAD 之后,采集将在所选通道上自动开始。 例 23-3: A/D 转换 BSF STATUS, RP0 ; Select Bank1 CLRF ADCON1 ; Configure A/D inputs, ; result is left justified BSF PIE1, ADIE ; Enable A/D interrupts BCF STATUS, RP0 ; Select Bank0 MOVLW 0xC1 ; RC Clock, A/D is on, Channel 0 is selected MOVWF ADCON0 ; BCF PIR1, ADIF ; Clear A/D interrupt flag bit BSF INTCON, PEIE ; Enable peripheral interrupts BSF INTCON, GIE ; Enable all interrupts ; ; Ensure that the required sampling time for the selected input ; channel has elapsed. Then the conversion may be started. ; BSF ADCON0, GO ; Start A/D Conversion : ; The ADIF bit will be set and the GO/DONE : ; bit is cleared upon completion of the : ; A/D Conversion. 图 23-4:A/D 转换中的 TAD 周期 Tcy - TAD TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 b0 开始转换 保持电容与模拟输入断开 ( 典型断开时间 100 ns) 将 GO 位置 1 下一个 Q4: 转换结果装入 ADRES, GO 位被清零, ADIF 被置 1, 保持电容和模拟输入通道连接 DS31023A_CN 第 23-10 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 图 23-5:A/D 工作流程图 ADON = 0 是 ADON = 0? 否 获取所选 输入通道 是 GO = 0? 否 A/D 时钟 是 = RC? 否 开始 A/D 转换 延迟 1 个指令周期 器件处于 是 休眠模式 ? 否 转换结束 GO = 0 ADIF = 1 中止转换 GO = 0 ADIF = 0 休眠模式 A/D 模块断电 SLEEP 是 指令 ? 否 转换结束 GO = 0 ADIF = 1 等待 2TAD 转换结束 GO = 0 ADIF = 1 从休眠 是 模式唤醒 ? 否 保持休眠模式 A/D 模块断电 等待 2TAD 23 等待 2TAD 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-11 页 PICmicro 中档单片机系列 23.7.1 加快转换速度与降低转换精度的权衡 并非所有的应用都需要 10 位分辩率的转换结果,相反,它们可能需要更快的转换时间。 A/D 模 块允许用户降低转换分辩率以换取转换速度。无论所需的分辨率如何,采集时间都是相同的。为 了加快转换速度,可切换 A/D 模块的时钟源,以使 TAD 违反规定的最小时间 ( 参见电气规范的有 关说明 )。一旦 TAD 违反了规定最小时间,所有接下来的 A/D 转换结果位将不再有效 ( 参见电气 规范章节中 有关 A/D 转换时间的说明 )。时钟源只能在三种振荡器间切换 ( 不能在振荡器模式和 RC 模式间相互切换 )。用以下公式确定须经过多长时间才可切换振荡器: 转换时间 其中 N = TAD + N • TAD + (11 - N)(2TOSC) = 所需分辨率的位数 由于 TAD 基于器件振荡器,用户必须使用一些方法 ( 如定时器,软件循环等 ) 以决定何时切换 A/D 振荡器。例 23-4 显示了 4 位分辨率与 10 位分辨率转换时间的对照。该例中器件的工作频率为 20 MHz (A/D 转换时钟设为 32TOSC),并假定 A/D 时钟在紧随 6TAD 之后被设为 2TOSC。 由于后 4 位将无法正确转换,因此 2TOSC 违反了最小 TAD 时间规则。 例 23-4: 4 位和 10 位转换时间 频率 . (MHz)(1) 5位 TAD 20 1.6 µs TOSC 20 50 ns 2TAD + N • TAD + (11 - N)(2TOSC) 20 8.7 µs 注 1: 要求最小 TAD 时间为 1.6 µs。 2: 若需全部 10 位转换结果,则不能切换 A/D 时钟源。 分辨率 10 位 1.6 µs 50 ns 17.6 µs DS31023A_CN 第 23-12 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 23.7.2 A/D 结果寄存器 在 A/D 转换结束后,其 10 位结果会存放于 ADRESH:ADRESL 寄存器对中。这对寄存器是 16 位 宽。这一 A/D 模块提供了将 10 位结果以左对齐或右对齐的方式存放在 16 位结果寄存器中的灵活 性。图 23-6 显示了 A/D 结果对齐的操作。多余位填入 '0’。当 A/D 结果不改写这些位置时 (A/D 被 禁止 ),这些寄存器可用作两个通用的 8 位寄存器。 图 23-6:A/D 结果的对齐方式 10 位结果 ADFM = 1 ADFM = 0 7 2107 0 0000 00 结果 ADRESH ADRESL 10 位 右对齐 7 0765 0 结果 0000 00 ADRESH ADRESL 10 位 左对齐 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-13 页 PICmicro 中档单片机系列 23.8 23.9 休眠期间的 A/D 转换 A/D 模块可在休眠期间运行,这需要把 A/D 的时钟源设置成 RC 方式 (ADCS1:ADCS0 = 11)。选 择了 RC 时钟源后,A/D 模块等待一个指令周期后才开始转换。这样使 SLEEP 指令得以执行,从 而消除了转换时所有内部的数字开关噪声。A/D 转换完成后, GO/DONE 位清零,转换结果送入 ADRES 寄存器。如果 A/D 中断被使能,器件将从 SLEEP 唤醒。如果 A/D 中断被禁止, A/D 模 块将被关闭,尽管此时 ADON 位保持置 1 状态。 如果 A/D 时钟源为另一时钟选项 ( 非 RC),执行一条 SLEEP 指令将中止当前 A/D 转换并关闭 A/D 模块 ( 以节省功耗 ),尽管此时 ADON 位保持置 1 状态。 将 A/D 关闭将 A/D 模块置于电流消耗最小的状态。 注 : 要使 A/D 模块在 SLEEP 模式下运行, A/D 时钟源必须被设置成 RC 模式 (ADCS1:ADCS0 = 11)。要在 SLEEP 下进行 A/D 转换,必须将 GO/DONE 位置 1, 然后执行 SLEEP 指令。 复位对 A/D 转换的影响 器件复位迫使所有寄存器进入复位状态,同时迫使 A/D 模块关闭并中止任何正在进行的转换。 上电复位时, ADRESH:ADRESL 寄存器中的值保持不变。上电复位后 ADRESH:ADRESL 寄存 器中的值不确定。 DS31023A_CN 第 23-14 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 23.10 A/D 转换精度与误差 在器件频率较低的系统中,最好使用 A/D 模块的 RC 时钟;在中高频时, TAD 应来源于器件的振 荡器。 A/D 转换器的绝对精度参数包括量化误差、积分误差,微分误差、满量程误差、偏移误差和单一 性等所有误差的总和。它被定义为任意数码的实际转换值和理想转换值之间的最大偏差。 当 VDD = VREF 时,A/D 转换器 ( 在器件的规定工作范围内 ) 的绝对误差为 < ±1 LSb ;然而,当 VDD 偏 离 VREF 时, A/D 转换器的精度将下降。 在一个给定的模拟输入范围内, A/D 的输出数码是相同的,这是因为模拟输入被量化到数码了。 典型量化误差为 ± 1/2 LSb,并存在于整个模拟数字转换过程中。减小量化误差的唯一方法是提高 A/D 转换器的分辨率。 偏移误差是首个实际数码转换电平与首个理想数码转换电平的差值。偏移误差使整个传递函数发 生平移。通过模拟输入端的总漏电流和源阻抗的相互作用,偏移误差可在系统外校准或引入系 统。 增益误差是指经过偏移误差调整后,末次实际转换电平与的末次理想转换电平之间的最大偏差。 增益误差显示为传递函数的斜率变化。增益误差和满量程误差的区别在于满量程误差不考虑偏移 误差。 增益误差可通过软件校正以从系统中消除。 线性误差是指数码一致性的变化。线性误差不能从系统中校准。积分非线性误差是指经过增益误 差调整后,各个输出数码的实际转换电平和理想转换电平之间的差值。 微分非线性误差是指最大实际数码宽度和理想数码宽度之间的差值, 该误差无法校正。 引脚的最大漏电流在器件数据手册的电气规范参数 D060 中作了规定。 在器件频率较低的系统中,最好使用 A/D 模块的 RC 时钟。在中高频率时, TAD 应来源于器件的 振荡器。 TAD 不得违反最小时间,且应最大限度地降低以减小由噪声和采样保持电容器放电造成 的误差。 在 A/D 转换开始后器件就进入休眠模式的系统中,必须选择 RC 时钟源。在这种模式下,消除了 模块的数字噪声。这种方法能提供较好的转换精度。 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-15 页 PICmicro 中档单片机系列 23.11 23.12 连接时的考虑事项 如果输入电压超出满幅电压值 (VSS 或 VDD)0.3V,转换精度将超出规定范围。 有时可增加一个输入信号抗混叠外部 RC 滤波器。选择的 R 元件应确保总源阻抗小于建议值 10 kΩ。任何通过高阻抗连接到模拟输入引脚上的外部元件 (如电容器、齐纳二极管等 ),应使其在 引脚上的漏电流很小。 传递函数 以下是 A/D 转换器的理想传递函数:第一次转换发生在模拟输入电压 (VAIN) 为 1 LSb( 或模拟 VREF / 1024) 时 (图 23-7)。 图 23-7:A/D 传递函数 3FFh 3FEh 数码输出 003h 002h 001h 000h 0.5 LSb 1 LSb 1.5 LSb 2 LSb 2.5 LSb 3 LSb 1022 LSb 1022.5 LSb 1023 LSb 1023.5 LSb 模拟输入电压 DS31023A_CN 第 23-16 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 23.13 初始化 例 23-5 给出了 A/D 模块的初始化。 例 23-5: A/D 初始化 BSF STATUS, RP0 ; Select Bank1 CLRF ADCON1 ; Configure A/D inputs BSF PIE1, ADIE ; Enable A/D interrupts BCF STATUS, RP0 ; Select Bank0 MOVLW 0xC1 ; RC Clock, A/D is on, Channel 0 is selected MOVWF ADCON0 ; BCF PIR1, ADIF ; Clear A/D interrupt flag bit BSF INTCON, PEIE ; Enable peripheral interrupts BSF INTCON, GIE ; Enable all interrupts ; ; Ensure that the required sampling time for the selected input ; channel has elapsed. Then the conversion may be started. ; BSF ADCON0, GO ; Start A/D Conversion : ; The ADIF bit will be set and the GO/DONE : ; bit is cleared upon completion of the : ; A/D Conversion. 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-17 页 PICmicro 中档单片机系列 23.14 设计技巧 问 1: 答 1: 我发现模拟数字转换结果并不总是准确的。如何提高转换精度 ? 1. 请确保您满足了所有时序规范要求。如果你关闭 A/D 模块后再打开,应等待一个最小延迟 时间后再开始采样;如果改变了输入通道,同样需要等待一个最小延迟时间后;最后是 TAD,它是所选择的每一位的转换时间。TAD 在 ADCON0 中选择,其值应该处于 1.6 到 6µs 之间。如果 TAD 太短,转换终止时尚未对数据进行完全转换,而如果 TAD 过长,采样电容 上的电压会在转换结束前下降过大。“ 电气规范 ” 一章中提供了这些计时参数。器件的具体 信息请参见器件数据手册。 2. 模拟输入信号的源阻抗经常很高 ( 大于 1k ohms),因此为采样电容充电的信号源的输出电 流会影响精度。如果输入信号并不快速变化,可以尝试在模拟输入端连接一个 0.1 µF 的电 容。该电容可充电到所采样的模拟电压,并为内部 120 pf 的保持电容提供所需的瞬时充电 电流。 3. 最后,直接参见数据手册的内容:“在器件工作频率较低的系统中,最好使用来自器件振 荡器的 A/D 时钟 ... 这将在很大程度上降低数字开关噪声的影响”,以及 “在 A/D 转换开 始后器件就进入休眠模式的系统中,必须选择 RC 时钟源。这种方法可得到最高的转换精 度。” 问 2: 答 2: 在 A/D 转换开始后是否可以改变输出通道 ( 以便进行下一次转换 )? 在保持电容从输入通道断开后, GO 位置 1 后 100 ns (典型值),就可以改变输入通道。 问 3: 答 3: 请问有没有关于 A/D 的较好的参考书 ? “Analog-Digital Conversion Handbook”是便于理解 A/D 转换的较好的参考书,该书由 Prentice Hall 出版 (ISBN 0-13-03-2848-0)。 DS31023A_CN 第 23-18 页 初稿  2004 Microchip Technology Inc. 第 23 章 10 位 A/D 转换器 23.15 相关应用笔记 本部分列出了与本章内容相关的应用笔记。这些应用笔记并非都是专门针对中档单片机系列而写 的 ( 即有些针对低档系列,有些针对高档系列 ),但其概念是相近的,通过适当修改并受到一定的 限制即可使用。目前与 10 位 A/D 模块相关的应用笔记有: 标题 Using the Analog to Digital Converter Four Channel Digital Voltmeter with Display and Keyboard 应用笔记 # AN546 AN557 23 10 位 A/D 转换器  2004 Microchip Technology Inc. 初稿 DS31023A_CN 第 23-19 页 PICmicro 中档单片机系列 23.16 版本历史 版本 A 这是描述 10 位 A/D 模块的初始发行版本。 DS31023A_CN 第 23-20 页 初稿  2004 Microchip Technology Inc.

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。