AN-897 应用笔记 One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com 超级时序控制器的ADC回读 作者:Enrico Del Mastro和Michael Bradley 简介 ADM1062、 ADM1063、 ADM1064、 ADM1066、 值功能开启或关闭)。此外还介绍如何逐步从ADC连续读 ADM1069、ADM1166和ADM1169系列是完全可编程的电 取(均值功能开启或关闭)。本文在所提供指令集中以VH通 源时序控制器和监控器,可以为采用多个电压源的系统提 道为例。 供完整的电源管理解决方案。 有 关 ADM1062、 ADM1063、 ADM1064、 ADM1066、 这些器件均集成一个片内12位ADC。ADC可设置以读取一 ADM1069、ADM1166和ADM1169器件的特性和功能详 个结果或连续读取选定通道。每个通道均提供均值功能并 情,请参阅相关数据手册以及应用笔记AN-698和应用笔记 可任意启用(开启)或停用(关闭)。 AN-721,了解配置寄存器的详细信息。 本应用笔记介绍如何逐步设置并从ADC读取一个结果(均 Rev. A | Page 1 of 5 AN-897 目录 简介...................................................................................................... 1 单次读取(均值关闭) ........................................................................ 4 修订历史 ............................................................................................. 2 单次读取(均值开启) ........................................................................ 4 ADC轮询使能指南........................................................................... 3 连续读取(均值关闭) ........................................................................ 5 特定器件的考虑因素 ....................................................................... 3 连续读取(均值开启) ........................................................................ 5 全零值回读 ................................................................................... 3 静态值回读 ................................................................................... 3 修订历史 2014年8月 — 修订版0至修订版A 增加ADM1166和ADM1169 ......................................................通篇 RRCTL更改为RRCTRL..............................................................通篇 更改标题、作者和简介................................................................... 1 增加“ADC轮询使能指南”部分、“特定器件的考虑因素”部分、 “全零值回读”部分和“静态值回读”部分...................................... 3 2007年6月—修订版0:初始版 Rev. A | Page 2 of 5 AN-897 ADC轮询使能指南 静态值回读 在Super Sequencer®超级时序控制器中,有三种方法可以使 在某些配置下,ADC RR输出寄存器可能会报告静态值或不 能ADC轮询(RR)。 变的值,哪怕输入电源正在发生改变。发生这种情况说明 • RRCTRL寄存器(寄存器0x82[0])中的GO位置1,触发单 ADC RR已停止周期操作,必须停止ADC RR并重启。 根据系统特性以及ADC RR的使能方式,ADC RR自动停止与 周期RR。 • RRCTRL寄存器(寄存器0x82[1])中的使能位置1,执行连 重启操作也许可以作为时序控制引擎正常工作的一部分, 或者用户可以采用外部处理器来实现软件临时解决方案。 续RR操作。 • RRCTRL寄存器(寄存器0x82[1])中的使能位在时序控制 引擎状态中置位。 如果ADC RR作为时序控制引擎状态的一部分来使能(比如电 源良好状态的一部分),则略微修改时序控制引擎的配置即 可以同时采用以上多种方法来使能ADC RR。然而,通常建 可避免回读静态值。建议创建一种与初始状态完全一致的 议一次仅采用这些方法中的某一种来使能ADC RR。这三种 第二个电源良好状态,而不是只用一种电源良好状态来使 使能方法以逻辑OR方式进行组合;因此,如果ADC RR在有 能ADC RR。在第二个状态中,禁用ADC RR。采用较长的 效时序控制引擎状态中使能,则置位或清零使能位(寄存器 (400 ms)超时条件来实现从初始电源良好状态到新的电源良 0x82[1])对ADC RR的状态无影响。 好状态的转换;采用较短的(0.1 ms)超时条件来回到初始电 若只使用一种方法来使能ADC RR,那么用户便可清楚地了 解采样如何开始和停止。对于某些超级时序控制器而言,同 源良好状态。通过这种方式,ADC RR可以被连续使能和禁 用,且读取的ADC值将永远不会是静态值。 样建议仅采用一种方法来使能ADC RR,以保证工作正常; 如果使用单次模式ADC RR,则应在每次轮询之后检查GO位 详情参见“特定器件的考虑因素”部分。 (寄存器0x82[0]),确定该位是否为1。如果为1,就必须向 该位写入0。 特定器件的考虑因素 注 意 , 这 些 特 定 器 件 考 虑 因 素 仅 适 用 于 ADM1062、 ADM1063、ADM1064、ADM1066和ADM1069。它们不适 如果使用连续ADC RR模式,软件必须检测回读值是否是静 态的,如果是则停止和重启ADC RR。可通过将使能位(寄存 用于ADM1166或ADM1169。 器0x82[1])先设为0,然后再设为1来实现。 这些器件正常工作期间,某些条件下可观察到下列行为。 如果同时使用了超过一种方法来使能ADC RR,且输出值是 这些行为的发生频率相对较低,与I2C总线处理的次数与频 率有关。 静态的,则必须禁用所有已经使能的方法,以便ADC RR停 止并重启。 全零值回读 回读不同通道的ADC RR值时,软件可能会报告所有通道从 单次ADC RR迭代获取的零值或0x0000值。 发生这种回读时,软件必须等待下一个ADC RR周期完成(如 果连续运行),或者按需触发另一个单次ADC RR周期。下 一个ADC RR周期会产生一组新值供使用。 只有通过I2C总线对ADC RR通道值的回读会受到影响;这一 点很重要。用于警报和引导时序控制引擎的内部ADC RR寄 存器将不受影响。 Rev. A | Page 3 of 5 AN-897 单次读取(均值关闭) 单次读取(均值开启) 1. 设置寄存器0x80和0x81(分别为RRSEL1和RRSEL2)。这些 1. 设置寄存器0x80和0x81(分别为RRSEL1和RRSEL2)。这些 寄存器选择监控通道。 寄存器选择监控通道。 0 = 选择通道 0 = 选择通道 1 = 未选择通道 1 = 未选择通道 例如,若要选择VH通道,可向寄存器0x80写入0xEF, 例如,若要选择VH通道,可向寄存器0x80写入0xEF, 向寄存器0x81写入0x1F。 向寄存器0x81写入0x1F。 2. 将0x01写入寄存器0x82(RRCTRL),设置GO位。 2. 将寄存器0x82 (RRCTRL)设置为0x05。 Go = 1 Go = 1 Enable = 0 Enable = 0 Average = 0 Average = 1 STOPWRITE = 0 STOPWRITE = 0 CLEARLIM = 0 CLEARLIM = 0 3. 超时进入环路并从寄存器0x82(RRCTRL)连续读取数据。 3. 超时进入环路并从寄存器0x82(RRCTRL)连续读取数据。 • 如果寄存器0x82 = 0x00,则退出环路(GO位复位)。 • 如果寄存器0x82 = 0x04,则退出环路(GO位复位)。 • 如果寄存器0x82 ≠ 0x00,则继续环路。 • 如果寄存器0x82 ≠ 0x04,则继续环路。 4. 如果GO位已复位,则向寄存器0x82 (RRCTRL)写入0x08。 4. 如果GO位已复位,则向寄存器0x82 (RRCTRL)写入0x0C。 Go = 0 Go = 0 Enable = 0 Enable = 0 Average = 0 Average = 1 STOPWRITE = 1 STOPWRITE = 1 CLEARLIM = 0 CLEARLIM = 0 5. 读取VH相关的寄存器。 5. 读取VH相关的寄存器。 0xA8 (ADCHVH) 0xA8 (ADCHVH) 0xA9 (ADCLVH) 0xA9 (ADCLVH) 6. 复位STOPWRITE位。将0x00写入寄存器0x82。 6. 复位STOPWRITE位。将0x04写入寄存器0x82。 Go = 0 Go = 0 Enable = 0 Enable = 0 Average = 0 Average = 1 STOPWRITE = 0 STOPWRITE = 0 CLEARLIM = 0 CLEARLIM = 0 Rev. A | Page 4 of 5 AN-897 连续读取(均值关闭) 连续读取(均值开启) 1. 设置寄存器0x80和0x81(分别为RRSEL1和RRSEL2)。这些 1. 设置寄存器0x80和0x81(分别为RRSEL1和RRSEL2)。这些 寄存器选择监控通道。 寄存器选择监控通道。 0 = 选择通道 0 = 选择通道 1 = 未选择通道 1 = 未选择通道 例如,若要选择VH通道,可向寄存器0x80写入0xEF, 例如,若要选择VH通道,可向寄存器0x80写入0xEF, 向寄存器0x81写入0x1F。 向寄存器0x81写入0x1F。 2. 将0x02写入寄存器0x82(RRCTRL)。 2. 将0x06写入寄存器0x82(RRCTRL)。 Go = 0 Go = 0 Enable = 1 Enable = 1 Average = 0 Average = 1 STOPWRITE = 0 STOPWRITE = 0 CLEARLIM = 0 CLEARLIM = 0 3. 将0x0A写入寄存器0x82(RRCTRL)。 3. 将0x0E写入寄存器0x82(RRCTRL)。 Go = 0 Go = 0 Enable = 1 Enable = 1 Average = 0 Average = 1 STOPWRITE = 1 STOPWRITE = 1 CLEARLIM = 0 CLEARLIM = 0 4. 读取VH相关的寄存器。 4. 读取VH相关的寄存器。 寄存器0xA8 (ADCHVH) 0xA8 (ADCHVH) 寄存器0xA9 (ADCLVH) 0xA9 (ADCLVH) 5. 将0x02写入寄存器0x82(RRCTRL)。 5. 将0x06写入寄存器0x82(RRCTRL)。 Go = 0 Go = 0 Enable = 1 Enable = 1 Average = 0 Average = 1 STOPWRITE = 0 STOPWRITE = 0 CLEARLIM = 0 CLEARLIM = 0 I2C指最初由Philips Semiconductors(现为NXP Semiconductors)开发的一种通信协议。 ©2007–2014 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. AN06585sc-0-8/14(A) Rev. A | Page 5 of 5