AN-1111 应用笔记 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 使用ADuCM360/ADuCM361时的降低功耗选项 作者:Mike Looney 简介 ADuCM360是一款32位ARM® Cortex™-M3微控制器,集成两 有关ADuCM360/ADuCM361技术规格和工作原理的详细信 个24位Σ-Δ型模数转换器(ADC),各ADC前端均有一个完 息,请参阅最新数据手册和用户指南UG-367。 全可编程的仪表放大器。ADuCM361包含ADuCM360的全 部功能,不过它仅有一个24位Σ-Δ ADC (ADC1)。本应用笔 记描述这些器件的多种工作模式和时钟选项,并详细说明 各种配置如何省电。 通过最大限度地利用时钟和功耗模式选项,即便前端ADC 和PGA使能,ARM Cortex-M3处理器设为主动模式,并且SPI 总线和所有定时器使能,也可以将ADuCM360/ADuCM361 的平均IDD功耗降至仅1 mA。 这些微控制器适合广泛的应用,包括工业控制和仪器仪表 应用。在许多应用中,降低功耗至关重要。例如,对于电池 供电应用,利用ADuCM360/ADuCM361的不同工作模式和 本文中的所有IDD测量结果均为环境温度(25°C)下使用电源 电压AVDD = IOVDD = 3.0 V测得的典型值。 时钟选项可以延长电池使用时间。此外,在在4 mA至20 mA 环路应用中ADC性能是举足轻重的,ADuCM360/ADuCM361 可确保传感器模块的总功耗低于3.2 mA。 Rev. 0 | Page 1 of 12 AN-1111 目录 简介.................................................................................................... 1 I2C.................................................................................................. 7 修订历史 ........................................................................................... 2 PWM............................................................................................. 8 时钟控制寄存器.............................................................................. 3 降低模拟IDD ................................................................................ 8 CLKCON0.................................................................................... 4 掉电模式 ........................................................................................... 9 CLKSYSDIV ................................................................................ 4 模式1:MCUHALT模式 .......................................................... 9 CLKDIS ........................................................................................ 4 模式2:PERHALT模式............................................................. 9 CLKCON1.................................................................................... 6 模式3:SYSHALT模式.............................................................. 9 UART ........................................................................................... 7 模式4和模式5:TOTALHALT和休眠模式 .......................... 9 SPI0/SPI1...................................................................................... 7 修订历史 2012年10月—修订版0:初始版 Rev. 0 | Page 2 of 12 AN-1111 时钟控制寄存器 ADuCM360/ADuCM361包含4个主时钟控制寄存器:CLKCON0、CLKCON1、CLKDIS和CLKSYSDIV。图1概要显示了 ADuCM360/ADuCM361的时钟结构。 FCLK CORTEX HCLK FLASH/SRAM CLKSYSDIV[0] CLKCON0[2:0] CLKDIS[8] DMA HFOSC 16MHz OSC PCLK DIV2EN CLKDIS[7] CD DAC LFOSC CLKCON0[4:3] LFXTAL UCLK CLKDIS[5] CLKDIS[5] TIMER0 TIMER0CLK CLKDIS[6] CLKDIS[6] EXTCLK WATCHDOG TIMER WAKE-UP TIMER CLKDIS[0] SPI0CD CLKDIS[1] PWMCD CLKDIS[3] PCLK UCLK CLKDIS[1] CLKDIS[4] CLKDIS[3] CLKDIS[2] CLKCON1[8:6] I2CCD UART UARTCLK TIMER1CLK CLKDIS[2] PWM PWMCLK CLKCON1[11:9] UARTCD SPI1 SPI1CLK CLKCON1[14:12] TIMER0CLK SPI0 SPI0CLK CLKCON1[5:3] SPI1CD CLKDIS[4] CLKDIS[0] CLKCON1[2:0] PCLK PCLK UCLK TIMER1 TIMER1CLK I2C I2CCLK CLKDIS[9] ACLK 图1. ADuCM360和ADuCM361的时钟结构 Rev. 0 | Page 3 of 12 ADC AN-1111 CLKCON0 3.0 UCLK用作ADuCM360和ADuCM361的主系统时钟。寄存 2.5 器 CLKCON0(地 址 0x40002000)的 CLKCON0[2:0]位 选 择 UCLK的时钟分频值。时钟分频设置很重要,因为较低的 IDD (mA) 2.0 系统时钟设置可以降低功耗。 图2显示了ADuCM360/ADuCM361在不同UCLK速率下的 1.5 6 0.5 5 0 0 2 4 6 FREQUENCY (MHz) IDD (mA) 4 图3. 采用3.0 V电源、处理器工作、 CLKSYSDIV = 0x1时的总IDD 3 表1. CLKSYSDIV寄存器的位功能描述 位 [7:1] 0 2 0 4 8 12 16 FREQUENCY (MHz) 名称 保留 DIV2EN 09746-002 1 0 8 09746-003 1.0 IDD。图2中,处理器使能,但ADC关闭。 图2. 采用3.0 V电源、处理器工作在不同频率下的总IDD 描述 这些位保留,应清0。 二分频使能位。此位默认值为1, 意味着系统时钟为8 MHz。 低功耗系统应使能此位。 1: 使能系统时钟分频器, 系统时钟为8 MHz。 0: 禁用系统时钟分频器, 系统时钟为16 MHz。 CLKCON0[4:3]位选择UCLK的来源。选项包括: CLKDIS • 内部16 MHz振荡器(默认)HFOSC CLKDIS寄存器(地址0x4000202C)使能和禁用10个不同外设 • 内部32 kHz振荡器LFOSC 的系统时钟,如图1所示。默认情况下,除位9(ADC系统 • 外部32 kHz振荡器LFXTAL 时钟使能位)以外的所有其它CLKDIS位均置1。复位后,10 • P1.0提供的外部时钟EXTCLK 个外设中有9个的系统时钟禁用。要使用其中的任何一个 默认情况下,16 MHz内部振荡器(HFOSC)的功耗为170 µA。 CLKSYSDIV CLKSYSDIV寄存器(地址0x40002444)使能和禁用16 MHz振 荡器输出端的二分频(DIV2EN)选项。 CLKSYSDIV = 0x1时,系统时钟(UCLK)变为8 MHz;因此, 整个芯片由8 MHz时钟源提供时钟,而不是16 MHz。这样 不仅能将动态电流减半(如图3所示),而且能将后台(静态) 电流降低90 µA(典型值)。 外设,用户必须将CLKDIS寄存器的相应位清0,从而使能 该外设的系统时钟。 如果应用不使用其中的任何一个外设,为降低功耗,应将 所有不用外设对应的CLKDIS寄存器位置1。 表2列出了设置CLKCON1 = 0x00以禁用各外设的时钟所节 省的IDD,假设CLKSYSDIV = 0x01(系统时钟 = 8 MHz)。多 数情况下,虽然外设处于无效状态,但外设默认由系统时 钟提供时钟。有关CLKCON1寄存器的更多信息,请参阅 CLKCON1部分。 Rev. 0 | Page 4 of 12 AN-1111 表2. CLKDIS寄存器的位功能描述 位 [15:10] 9 名称 保留 DISADCCLK 8 DISDMACLK 7 DISDACCLK 6 DIST1CLK 5 DIST0CLK 4 DISPWMCLK 3 DISUARTCLK 2 DISI2CCLK 1 DISSPI1CLK 0 DISSPI0CLK 描述 这些位保留,应清0 1: 禁用ADC系统时钟 0: 使能ADC系统时钟 1: 禁用DMA系统时钟 0: 使能DMA系统时钟 1: 禁用DAC系统时钟 0: 使能DAC系统时钟 1: 禁用Timer1系统时钟 0: 使能Timer1系统时钟 1: 禁用Timer0系统时钟 0: 使能Timer0系统时钟 1: 禁用PWM系统时钟 0: 使能PWM系统时钟 1: 禁用UART时钟 0: 使能UART系统时钟 1: 禁用I2C系统时钟 0: 使能I2C系统时钟 1: 禁用SPI1系统时钟 0: 使能SPI1系统时钟 1: 禁用SPI0系统时钟 0: 使能SPI0系统时钟 IDD降低量 置1时降低75 µA。注意,ADC0和ADC1默认处于空闲模式, ADCxMDE寄存器 = 0x0003。 置1时降低40 µA。注意,默认情况下,所有DMA通道禁用。 置1时降低12 µA。注意,DAC默认处于掉电模式, DACCON寄存器 = 0x200。 置1时降低20 µA。 置1时降低15 µA。 置1时降低95 µA。 置1时降低135 µA。 置1时降低70 µA。 置1时降低80 µA。 置1时降低85 µA。 Rev. 0 | Page 5 of 12 AN-1111 CLKCON1 降至最低,应禁用相应外设的时钟,并将时钟频率设为最 CLKCON1寄存器(地址0x40002004)调整主要通信外设的时 小 值 。 例 如 , 如 果 不 使 用 PWM, 应 将 CLKCON1的 位 钟 : SPI0、 SPI1、 UART、 I 2 C和 PWM。 默 认 情 况 下 , CLKCON1寄存器为0x0000。 如果应用中不使用SPI、I2C、UART或PWM外设,为将IDD [14:12]设为111。注意,外设时钟必须等于或快于处理器时 钟速度。如果外设时钟慢于处理器时钟速度,外设将被禁 用。 表3. CLKCON1寄存器的位功能描述1 位 名称 15 [14:12] 保留 PWMCD [11:9] UARTCD [8:6] I2CCD [5:3] SPI1CD [2:0] SPI0CD 1 描述 PWM系统时钟的时钟分频位 000: UCLK/1 = 16 MHz 001: UCLK/2 = 8 MHz 010: UCLK/4 = 4 MHz 011: UCLK/8 = 2 MHz 100: UCLK/16 = 1 MHz 101: UCLK/32 = 500 kHz 110: UCLK/64 = 250 kHz 111: UCLK/128 = 125 kHz UART系统时钟的时钟分频位 000: UCLK/1 = 16 MHz 001: UCLK/2 = 8 MHz 010: UCLK/4 = 4 MHz 011: UCLK/8 = 2 MHz 100: UCLK/16 = 1 MHz 101: UCLK/32 = 500 kHz 110: UCLK/64 = 250 kHz 111: UCLK/128 = 125 kHz I2C系统时钟的时钟分频位 000: UCLK/1 = 16 MHz 001: UCLK/2 = 8 MHz(支持400 kHz I2C波特率的最小值) 010: UCLK/4 = 4 MHz 011: UCLK/8 = 2 MHz(支持100 kHz I2C波特率的最小值) 100: UCLK/16 = 1 MHz 101: UCLK/32 = 500 kHz 110: UCLK/64 = 250 kHz 111: UCLK/128 = 125 kHz SPI1系统时钟的时钟分频位 000: UCLK/1 = 16 MHz 001: UCLK/2 = 8 MHz 010: UCLK/4 = 4 MHz 011: UCLK/8 = 2 MHz 100: UCLK/16 = 1 MHz 101: UCLK/32 = 500 kHz 110: UCLK/64 = 250 kHz 111: UCLK/128 = 125 kHz SPI0系统时钟的时钟分频位 000: UCLK/1 = 16 MHz 001: UCLK/2 = 8 MHz 010: UCLK/4 = 4 MHz 011: UCLK/8 = 2 MHz 100: UCLK/16 = 1 MHz 101: UCLK/32 = 500 kHz 110: UCLK/64 = 250 kHz 111: UCLK/128 = 125 kHz 计算针对UCLK = 16 MHz且CLKSYSDIV[0] = 0;CLKSYSDIV[0]置1时,需要额外的二分频。 Rev. 0 | Page 6 of 12 AN-1111 UART 主机模式 为将UART消耗的电流降至最低,应采用能使应用满足所 在SPI主机模式下,更改SPI的时钟频率要求重新计算输入 需UART波特率设置的最低时钟设置。更改UART的时钟频 SPIxDIV寄存器(对于SPI0,x为0;对于SPI1,x为1)的正确 率同样需要重新计算输入COMDIV寄存器的正确值,该寄 值,该寄存器控制SPI时钟速率。波特率计算如下: 存器控制波特率。 SPI时钟速率 = SPI时钟/(2 × (1 + SPIxDIV)) 波特率利用下式计算: 其中,“SPI时钟”是SPI的分频系统时钟,由CLKSYSDIV和 CLKCON1寄存器设置。 波特率 = UARTCLK ÷ (2 × 16 × COMDIV) ÷ (M + N ÷ 2048) 从机模式 其中: 在从机模式下,SPI总线上的主机控制波特率。然而, COMDIV = 1至65,536 ADuCM360/ADuCM361内部SPI时钟速率(由CLKCON1寄 M = 1至3 存器设置)必须比主机SPI输出时钟(主机时钟)快至少4倍。 N = 0至2047 UARTCLK是 UART的 分 频 系 统 时 钟 , 由 CLKSYSDIV和 CLKCON1寄存器设置。图4显示了降低UART时钟时的IDD 可能节省量。 为将I2C模块消耗的电流降至最低,应采用能使应用满足所 需I2C时钟速率的最低时钟设置。图6显示了降低I2C时钟时 的IDD可能节省量。注意,这些数值并不包括SDA和SCL引 250 脚上外部上拉电阻的IDD。 支持400 kHz I2C波特率的最小值是8 MHz的I2C系统时钟,而 200 支持100 kHz I2C波特率的最小值是2 MHz的I2C系统时钟。 150 90 80 100 70 60 0 2 4 6 8 10 12 14 16 FREQUENCY (MHz) SPI0/SPI1 09746-004 0 I2C IDD (µA) 50 50 40 30 图4. UART IDD 与UART时钟频率的关系 20 10 为将SPI模块消耗的电流降至最低,应采用能使应用满足所 0 需SPI时钟速率的最低时钟设置。图5显示了选择低频时钟 0 4 6 8 10 12 FREQUENCY (MHz) 时各SPI模块的IDD节省量。 14 16 图6. IDD 与I 2C系统时钟频率的关系 90 主机模式 80 在I2C主机模式下,更改I2C模块的时钟频率要求重新计算 70 输入I2CDIV寄存器的正确值,该寄存器控制I 2 C时钟速 60 率。I2CDIV一个16位寄存器,包含两个8位值:HIGH和 50 LOW。设置公式如下: fI2CSCL = fPERIPH/(Low + High + 3) 40 30 其中: 20 fPERIPH = I2C外设时钟。 fPERIPH = fUCLK/(CLKSYSDIV × I2CCD),其中UCLK为系统时 10 0 钟16 MHz;CLKSYSDIV为1或2,取决于CLKSYSDIV[0]位 0 2 4 6 8 10 12 14 FREQUENCY (MHz) 图5. 各SPI端口的IDD 与SPI时钟频率的关系 16 09746-005 SPI IDD (µA) 2 09746-006 UART IDD (µA) I2C 设置;I2CCD是时钟分频值,由CLKCON1[8:6]位设置一个 1到7之间的值。 Rev. 0 | Page 7 of 12 AN-1111 Low = 时钟的低电平周期,I2CDIV[7:0] = 降低模拟IDD时,必须考虑以下信息: (REQD_LOW_TIME/UCLK_PERIOD) − 1。 • ADCxFLT寄存器选择的ADC更新速率不影响IDD功耗。 High = 时钟的高电平周期,I2CDIV[15:8] = 无论ADC滤波器更新速率为何值,ADC调制器始终采 (REQD_HIGH_TIME/UCLK_PERIOD) − 2。 用500 kHz时钟源工作。 因此,在100 kHz的情况下,I2C外设时钟为16 MHz,Low和 • 当PGA使能且增益大于或等于2时,不需要ADC输入缓 High位的值如下: 冲器;因此,寄存器ADCxCON的位[17:14]可以设置为 Low = 0x4F 1111。此设置可节省70 µA功耗(每ADC)。 • 当PGA增益大于或等于32时,与增益小于32相比,需要 High = 0x4E 多消耗60 µA电流。 在400 kHz的情况下,Low和High位的值如下: • 当PGA禁用(增益为1)时,应使能ADC输入缓冲器,除 Low = 0x13 非提供了外部缓冲器。 High = 0x12 • 每个外部基准输入缓冲器消耗60 µA电流。如果外部基准 负电压连接到AGND,可以将缓冲器的反向输入路旁 从机模式 路,并设置寄存器ADCxCFG的位[1:0] = 11。 在从机模式下,I C总线上的主机控制波特率。 2 • 寄存器IEXCCON的位2 = 0时,禁用激励电流源0。同样, PWM 为将PWM模块消耗的电流降至最低,应采用能使满足所 需PWM占空比和输出频率的最低时钟设置。图7显示了降 120 外设名称 调制器 增益 = 2、4、8或16 (PGA总功耗) 增益 = 32、64或128 (PGA总功耗) ADC正输入缓冲器 ADC负输入缓冲器 外部基准缓冲器 正 负 激励电流 (不包括输出电流) 100 PWM IDD (µA) 80 60 40 2 4 6 8 10 12 14 FREQUENCY (MHz) 16 09746-007 20 0 一个激励电流时,禁用另一个可以节省功耗。 表4. 模拟外设IDD明细 低PWM时钟时的IDD可能节省量。 0 寄存器IEXCCON的位5 = 0时,禁用激励电流源1。仅使用 源0 源1 DAC 图7. IDD 与PWM时钟频率的关系 降低模拟IDD 表4列出了配置ADuCM360/ADuCM361的ADC0和ADC1的 一些选项,以及各选项相关的IDD值。如表4所示,通过精 心配置ADC和DAC,可以将模拟IDD降至最低。 Rev. 0 | Page 8 of 12 ADC0 70 µA 130 µA ADC1 70 µA 130 µA 190 µA 190 µA 35 µA 35 µA 35 µA 35 µA 两个ADC 共有 其它 60 µA 60 µA 25 µA 25 µA 50 µA AN-1111 掉电模式 ADuCM360/ADuCM361提供5个掉电级别。当用户确定哪 FCLK速率 ≤ 1 MHz时,模式3与模式1或模式3与模式2的IDD 种掉电模式最适合应用时,需要权衡IDD节省量、唤醒时间 节省量差异极小。 与要激活的外设。 1600 在模式1、模式2和模式3下,当CPU关断时,利用DMA操 作可以使外设继续工作。为此,必须使能ADC1或ADC0的 1200 MODE 2 DMA操作。使用完整的DMA中断将器件从模式1、模式2 IDD (µA) 或模式3唤醒。 以下部分中的IDD数值假设ADC DMA模式未使能。 MODE 1 800 MODE 3 模式1:MCUHALT模式 400 式。唤醒时间是FCLK的3至5倍,其中FCLK是CLKCON0 0 [2:0]位选择的时钟。 0 4 8 12 16 FREQUENCY (MHz) 模式1下的预期IDD计算如下: 09746-008 在模式1下,HCLK关闭,ARM Cortex-M3处理器处于休眠模 图8. 模式1、模式2和模式3的掉电IDD 与FCLK的关系, CLKSYSDIV = 0x0 寄存器CLKSYSDIV = 0x0时, 900 IDD [µA] = 50 × FCLK + 355 寄存器CLKSYSDIV = 0x1时, IDD [µA] = 50 × FCLK + 435 600 MODE1 IDD (µA) 模式2:PERHALT模式 在模式2下,PCLK关闭,ARM Cortex-M3处理器处于休眠模 MODE 2 MODE 3 300 式。唤醒时间是FCLK的3至5倍,其中FCLK是CLKCON0 模式2下的预期IDD计算如下: 0 寄存器CLKSYSDIV = 0x0时, 0 2 4 6 8 FREQUENCY (MHz) IDD [µA] = 60 × FCLK + 345 09746-009 [2:0]位选择的时钟。 图9. 模式1、模式2和模式3的掉电IDD 与FCLK的关系, CLKSYSDIV = 0x1 寄存器CLKSYSDIV = 0x1时, 模式4和模式5:TOTALHALT和休眠模式 IDD [µA] = 60 × FCLK + 425 在模式4和模式5下,HCLK、ACLK和PCLK关闭,ARM 模式1与模式2的IDD节省量差异极小。 Cortex-M3处理器处于深度休眠(DEEPSLEEP)模式。唤醒时 间约为30.8 µs。这些模式下的IDD典型值为2 µA到4 µA。 模式3:SYSHALT模式 在模式3下,HCLK、ACLK和PCLK关闭,ARM Cortex-M3处 理器处于休眠模式。唤醒时间是FCLK的3至5倍,其中 FCLK是CLKCON0[2:0]位选择的时钟。 模式3下的预期IDD计算如下: 寄存器CLKSYSDIV = 0x0时, IDD [µA] = 16 × FCLK + 345 寄存器CLKSYSDIV = 0x1时, IDD [µA] = 16 × FCLK + 420 Rev. 0 | Page 9 of 12 AN-1111 注释 Rev. 0 | Page 10 of 12 AN-1111 注释 Rev. 0 | Page 11 of 12 AN-1111 注释 I2C指最初由Philips Semiconductors(现为NXP Semiconductors)开发的一种通信协议。 ©2012 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. AN09746sc-0-10/12(0) Rev. 0 | Page 12 of 12