AN-1111: 使用ADuCM360/ADuCM361时的降低功耗选项 (Rev. 0)

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