AN-1427
应用笔记
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/cn

ADuCM3027/ADuCM3029中的SensorStrobe、超低功耗、时间同步传感器数据采样
ADuCM3027/ADuCM3029具备SensorStrobe机制。此机制支简介持与ADuCM3027/ADuCM3029 MCU相连的传感器实现时

与一个精确时间同步的传感器精密采样，是建筑健康监控、间同步的数据采样。

可穿戴式设备、环境检测等各类无线传感器网络应用的要

SensorStrobe解决了传统软件方法的问题，理由如下：求。传感器数据采样由微控制器单元 (MCU) 支配。传统
方法是利用MCU上的软件产生通用输入/输出 (GPIO) 脉冲，然后以特定间隔触发传感器收集数据。
传统方法有两个问题。一是涉及到相当大的软件开销，这
会提高功耗。二是脉冲触发取决于MCU软件，因此可能随•工作在休眠模式，功耗降低10倍以上。

•设置之后无需软件干预。

•脉冲触发机制独立于软件执行，即使在软件执行期间也
能产生连续触发脉冲（且无漂移）。

着时间推移而发生漂移。

本 应 用 笔 记 使 用 一 个 示 例 设 置 ， 其 中 ADuCM3027/

本应用笔记介绍ADI公司的SensorStrobe™机制，利用它可实

ADuCM3029 MCU连接到ADXL363加速度计，以证明利用现低功耗、一致、同步的传感器数据采集。

SensorStrobe机制采集样本数据时功耗降低超过10倍。将SensorStrobe机制与非SensorStrobe的软件方法进行比较，这
一降幅是很明显的。

ADuCM3027/
ADuCM3029
RTC1_SS1

SYS_WAKE3

ADXL363
SENSOR SAMPLE TRIGGER PULSEMCU WAKE-UP PULSE

INT2

INT1

15018-001

SPI图1. ADuCM3027/ADuCM3029和ADXL363连接图

Rev. 0 | Page 1 of 13

AN-1427

应用笔记目录简介 ..................................................................................................... 1ADXL363 FIFO 读操作............................................................. 10修订历史 ............................................................................................ 2系统功耗分析.................................................................................. 11

SensorStrobe 概述 ............................................................................ 3功耗测量 ..................................................................................... 11ADXL363 特性 ............................................................................. 3

结语 ................................................................................................... 13系统描述 ............................................................................................ 5

结构健康监控 (SHM) .............................................................. 13

MCU 和 ADXL363 之间的接口 ............................................... 5医疗保健监护 ............................................................................. 13

数据传输序列 .............................................................................. 6环境检测 ..................................................................................... 13

软件概述 ............................................................................................ 7源代码片段 ................................................................................... 8修订历史
2017年3月—修订版0：初始版

Rev. 0 | Page 2 of 13

AN-1427应用笔记SENSORSTROBE概述SensorStrobe是一种以高效率、低功耗、内在同步的方式进

ADXL363配置为外部触发模式。ADuCM3027/ADuCM3029

行传感器采样的机制。ADuCM3027/ADuCM3029支持这种

在RTC_SS引脚上产生这些触发脉冲。每个触发脉冲到来机制。SensorStrobe可以在ADuCM3027/ADuCM3029的活时，ADXL363便收集并存储数据到FIFO（最多512个样本，动、灵活 (Flexi™) 和休眠三种功耗模式下使用。

每样本两个字节）缓冲器中。

SensorStrobe机制允许ADuCM3027/ADuCM3029处于休眠对ADXL363进行编程，当FIFO缓冲器达到480样本（每样本

模式 (750 nA)，同时传感器以固定间隔周期性收集数据。

两个字节）的水印时，它便中断并唤醒MCU。使用水印

SensorStrobe机制与ADXL363的外部触发特性相结合，以最特性可以让FIFO留下余地以供接收更多样本，与此同时，

低可能功耗收集传感器数据。
SensorStrobe 是 ADuCM3027/ADuCM3029 中 的 实 时 时 钟(RTC) 的 一 种 报 警 功 能 。 通 过 此 机 制 ， ADuCM3027/ADuCM3029为ADXL363加速度计提供外部触发信号。触发
信号位于RTC1_SS1 (RTC SensorStrobe) 引脚上，是通过MCU唤醒并开始清空FIFO缓冲器。
ADXL363支持通过串行外设接口 (SPI) 进行寄存器读写访问。访问可以是单字节或多字节访问。实现FIFO缓冲器的目的是通过不限长度的多字节读取来连续读取连贯的样本。因此，一个FIFO缓冲器读指令便可清空FIFO缓冲器的ADuCM3027/ADuCM3029上的单一GPIO驱动出来的低频

全部内容。

时钟源 (32 kHz) 的单周期、高电平脉冲。此脉冲是周期性而在其他加速度计中，每个读指令只能检索到一个样本。

的，确保传感器采样时间无变化，而其周期具有高度可配

此 外 ， ADXL363 FIFO缓 冲 器 还 可 以 利 用 ADuCM3027/置性。

ADuCM3029直接存储器访问 (DMA) 控制器清空。

ADXL363特性

利用SPI接口的读命令模式，ADuCM3027/ADuCM3029与ADXL363是一款超低功耗、三传感器器件，集三轴微机电系统 (MEMS) 加速度计、温度传感器和模数转换器 (ADC)

ADXL363高效通信，通过减少SPI协议开销来降低系统整体
功耗。

输入于一体，用于同步采样外部信号。
ADXL363有一个512样本先进先出 (FIFO) 缓冲器用以存
储传感器数据。这种大FIFO可节省系统功耗。在ADXL363
将数据自主记录到FIFO缓冲器的同时，MCU可以处于休眠模式。

Rev. 0 | Page 3 of 13

AN-1427

应用笔记POWER UPCONFIGURE RTC FOR SensorStrobe™
ENTER HIBERNATE MODE

PULSE ON RTC1_SS1
COLLECTSENSORDATA

PULSE ON RTC1_SS1

COLLECTSENSORDATA

PULSE ON RTC1_SS1
ADuCM3027/
ADuCM3029
IN HIBERNATE
MODE

COLLECTSENSORDATA

FIFO WATERMARKREACHED,INTERRUPT MCUINTERRUPT MCUINITIATE READ COMMAND MODE ON

ACTIVE
ORFlexi™
MODE

DATA TRANSFERPULSE ON RTC1_SS1

ADuCM3027/
ADuCM3029
IN HIBERNATE
MODE

PULSE ON RTC1_SS1

PULSE ON RTC1_SS1

COLLECTSENSORDATA
COLLECTSENSORDATA

ADuCM3027/
ADuCM3029

ADXL363

图2. 数据序列图

Rev. 0 | Page 4 of 13

15018-002

COLLECTSENSORDATA

AN-1427

应用笔记系统描述
我们构建了一个示例系统来说明使用SensorStrobe的优点。

ADXL363配置为测量模式；当达到FIFO水印时，它会中此系统包括一个EVAL-ADuCM3029 EZ-KIT万用表和电流断MCU。关于ADXL363配置，“软件概述”部分会做进一

源表。这些系统器件串联起来测量系统电流消耗。

步说明。
使 能 ADuCM3027/ADuCM3029 的 SensorStrobe 机 制 ， 并 将+MULTIMETER

ADuCM3027/ADuCM3029置于休眠模式。触发脉冲以128 Hz

POWER SUPPLY

速率产生。
GND

VPROC

每收到一个脉冲，ADXL363便获取样本并将其存储在FIFO
缓 冲 器 中 。 当 达 到 FIFO 上 水 印 时 ， ADXL363 便 通 过

GPIO

ADuCM3027/ADuCM3029

SYS_WAKE3 (P2_01) 引脚中断ADuCM3027/ADuCM3029。
ADuCM3027/ADuCM3029利用读模式特性通过单个命令

RTC1_SS1VDD I/O

INT1ADXL363

清空FIFO缓冲器，进一步降低MCU的工作时间和系统电流消耗。
15018-003

SPI清空整个FIFO，使SPI协议开销最小。DMA控制器可以EVAL-ADuCM3029 EZ-KIT

通过SensorStrobe，ADuCM3027/ADuCM3029即便在休眠模式下也能在GPIO43引脚上产生触发脉冲。脉冲产生配置取图3. 电流测量的系统连接

决于RTC1寄存器和GPIO引脚复用。

MCU和ADXL363之间的接口
表1. ADuCM3027/ADuCM3029 MCU和ADXL363之间的接

在灵活模式下，DMA可以传输SPI数据，进一步降低系统
功耗。

口连接MCUADXL363

描述

SPIn_MOSIMOSISPI数据（从MCU到ADXL363）

SPIn_MISOMISOSPI数据（从ADXL363到MCU）

SPIn_CLK

SCLK

SPI时钟

SPIn_CSmCS

SPI片选P2_11 (GPIO43) INT2P2_01
INT1(SYS_WAKE3)
P0_01

VDD I/O

RTC_SS—出现在GPIO43上ADXL363利用INT1引脚将MCU从
休眠模式唤醒
ADXL363由MCU GPIO P0_01供电Rev. 0 | Page 5 of 13

AN-1427

应用笔记数据传输序列首先，RTC1_SS1引脚充当外部触发信号，ADXL363收集样MCU收集传感器数据分两个阶段进行。图4和图5显示了这些阶段中的信号活动情况。

本并存储到FIFO缓冲器中。然后，ADXL363 FIFO缓冲器通过SPI读取内容。

NO SPI CLOCKSPIn_SCLK

RTC1_SS1
GENERATED AT
128Hz

ADXL-INT115018-004

RTC1_SS1

INT1 LINE NOTASSERTED BY ADXL363

图4. 第一阶段——数据采集阶段：RTC_SS触发ADXL363
INT1 LINE ASSERTEDBY ADXL363
ADXL-INT1SPI CLOCKSPIn_SCLKNO RTC1_SS1
PULSE
RTC1_SS1

DATA READ
ON MISO

SPIn-MISO

15018-005

SPI_CSSPIn_MOSI

图5. 第二阶段——数据传输至MCU：通过SPI读取ADXL363 FIFO

Rev. 0 | Page 6 of 13

AN-1427

应用笔记软件概述
本部分介绍示例系统的软件流程。

POWER-ON RESETINITIALIZE SPISET UP SYS_WAKE3 AS INTERRUPTCONFIGURE RTC1ENTER HIBERNATE MODE

15018-006

CONFIGURE ADXL363 (OVER SPI)

图6. 初始化和配置步骤

INTERRUPTFROM
ADXL363

WAKE FROMHIBERNATE MODE

READ ADXL363 FIFO USING SPI READ
COMMAND MODE

ENTER HIBERNATE MODE

15018-007

PROCESS THE DATA

图7. 通过SPI读取FIFO（利用读命令）：从ADXL363读取数据Rev. 0 | Page 7 of 13

AN-1427

应用笔记源代码片段pREG_<module>_<name>是板支持包引用寄存器的方法。

本部分提供关于配置和数据读取的参考源代码片段。

在 集成电源管理的 ADuCM302x 超低功耗 ARM Cortex-M3
MCU硬件参考中，同一寄存器称为<module>_<name>。

SensorStrobe的RTC配置#define PRD_VAL 255

void SensorStrobe_Cfg(){// SensorStrobe Pin Mux*pREG_GPIO2_CFG |= (0x3 << BITP_GPIO_CFG_PIN11);// Reset the RTC counter

while(*pREG_RTC1_SR1 & 0x0180); //wait until sync*pREG_RTC1_SR0 = 0xFF;*pREG_RTC1_CR0 = 0;

while(!(*pREG_RTC1_SR0 & 0x0080 )); //wait for sync// SensorStrobe configuration// Initial trigger and auto reload value = 255 RTC counts// RTC runs at 32KHz ideally, 1 RTC count = 30.7us
while(*pREG_RTC1_SR5 != 0);*pREG_RTC1_SS1ARL = PRD_VAL;// SensorStrobe to be triggered after 255 RTC counts*pREG_RTC1_CR4SS = (1 << 9); //Enable Autoreload*pREG_RTC1_SS1 = PRD_VAL; // Initial Compare Value// Enable SensorStrobe*pREG_RTC1_CR3SS = 1;

while(*pREG_RTC1_SR4 != 0x77FF);// Initialize the counter value to zero
while(*pREG_RTC1_SR1 & 0x0600);*pREG_RTC1_CNT0 = 0;
*pREG_RTC1_CNT1 = 0;

while(!(*pREG_RTC1_SR0 & 0x0400));// Enable (start) the counter

while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;*pREG_RTC1_CR0 = 1;}

while(!(*pREG_RTC1_SR0 & 0x0080)); //wait for sync return;Rev. 0 | Page 8 of 13应用笔记AN-1427ADXL363配置

adxl_configure函数突出说明了配置ADXL363所需的寄存器

在初始化阶段，ADXL363由ADuCM3027/ADuCM3029通过
SPI 配 置 。 配 置 期 间 的 每 次 SPI 处 理 均 包 括 来 自ADuCM3027/ADuCM3029的2字节传输。第一个字节给出

写操作，示例应用中使用了这些操作。代码参见
adxl_configure部分。
关于寄存器和设置的信息，参见ADXL363数据手册。

ADXL363寄存器地址，第二个字节给出要写入寄存器的值。
步骤显示在下面的adxl_write_reg函数源代码片段中。代码参见adxl_write_reg部分。

adxl_write_reg
void adxl_write_reg (unsigned char reg, unsigned char data){
adxl_access(1);//Enable chipselectspi_byte_tx(0x0A);//Enable write

spi_byte_tx(reg);

spi_byte_tx(data);}

adxl_access(0);//Write register//Write data//Disable chipselectadxl_configure
void adxl_configure(){// Softresetadxl_write_reg (0x1F,0x52);// Activity configuration
adxl_write_reg (0x27,0x35);// FIFO configuration
adxl_write_reg (0x28,0x00);
adxl_write_reg (0x28,0xFF);// FIFO samples configuration
adxl_write_reg (0x29,0xDF);// FIFO_watermark int

adxl_write_reg (0x2A,0x84);// Filter control
adxl_write_reg (0x2C,0x08);// Power control}

adxl_write_reg (0x2D,0x06);

Rev. 0 | Page 9 of 13

AN-1427

应用笔记

ADXL363 FIFO读取当ADXL363达到FIFO水印（960字节）时，会产生一个中断来 唤 醒 MCU ， 然 后 通 过 SPI 清 空 ADXL363 FIFO 。
void ReadFifo_adxl(){int j=0;// SPI2 configuration*pREG_SPI2_CTL = 0x0803;// Number of bytes to read*pREG_SPI2_CNT = 960;
*pREG_SPI2_IEN = 7;// Enable Read command mode
*pREG_SPI2_RD_CTL = 1;// Enable ADXl Chipselect adxl_access(1);// Flush out Rx FIFO

while(*pREG_SPI2_FIFO_STAT & 0xF00)*pREG_SPI2_RX;// 0x0D written to kickstart the FIFO read from ADXL363*pREG_SPI2_TX = 0x0D;// Dummy read*pREG_SPI2_RX;// Number of samples
while(j < 120){if(*pREG_SPI2_STAT & BITM_SPI_STAT_RXIRQ){*pREG_SPI2_STAT |= BITM_SPI_STAT_RXIRQ;
i=0;

while(i<8){*(data_ref + (8 * j) + i) =i++ ; }}*pREG_SPI2_RX;j++;}adxl_access(0);// Reset SPI*pREG_SPI2_RD_CTL = 0;
*pREG_SPI2_IEN = 0;}

*pREG_SPI2_CTL = 0x0843;

Rev. 0 | Page 10 of 13

AN-1427

应用笔记系统功耗分析
ADuCM3027/ADuCM3029主机处理器负责以下操作：•

表2显示了ADuCM3027/ADuCM3029和ADXL363在本应用

在不同功耗模式（视需要而定，例如活动模式和休眠

笔记所用不同功耗模式下的电流消耗。

模式）之间切换。
•配置RTC产生采样触发脉冲并发送给ADXL363。

•控制与ADXL363的SPI通信。

•存储来自ADXL363的原始数据（本应用笔记所述系统
未实现结果数据的处理或发送）。

ADXL363传感器负责以下操作：•

当ADuCM3027/ADuCM3029触发时，采样并存储原始传感器数据到FIFO缓冲器中。

•响应主机处理器的SPI通信。

•当FIFO缓冲器填满时，中断并唤醒主机处理器。

功耗测量下述步骤说明如何监视系统的电流消耗：
1. 将应用程序代码载入MCU。
15018-008

2. 将信号源的正端连接到万用表。
3. 将万用表的另一端连接到EVAL-ADuCM3029 EZ-KIT的JP6连接器。

图8. 功耗测量的系统连接图

4. 将信号源的GND连接到EVAL-ADuCM3029 EZ-KIT的GND。

图9和图10分别显示了在传感器数据收集期间，使用和不使
用 SensorStrobe 机 制 的 功 耗 差 异 。 所 有 测 量 都 是 在

5. 移除所有跳线。

ADuCM3027/ADuCM3029 EVAL-ADuCM3029 EZ-KIT上进

6. 按电路板上的复位 (RESET) 按钮。

行的。

7. 监视源表和万用表上的电流消耗。

表2. ADuCM3027/ADuCM3029和ADXL363的功耗器件
ADuCM3027/
ADuCM3029

模式
休眠模式
灵活模式

电流消耗750 nA
300 µAADXL363活动模式
正常模式30 µA/MHz
1.8 µA描述
保留通过8 kB随机存取存储器 (RAM) 选通的内核和外设的功耗，使能低频晶振。
内核通过时钟选通，但系统其余部分处于活跃状态。外设和存储器之间的DMA传输继续进行。
全部系统功能都有效。
测量模式。

Rev. 0 | Page 11 of 13

AN-1427

应用笔记
不使用SensorStrobe的功耗测量

图9显示了使用SensorStrobe方法的演示系统的电流曲线。

图10显示了不使用SensorStrobe的样本采集系统的电流曲

SensorStrobe支持主机处理器保持休眠模式，同时产生触发线。在没有SensorStrobe机制的情况下，主机处理器在RTC

脉冲以驱动传感器捕捉和存储数据样本。测得的平均电流中断时唤醒并引起GPIO引脚跳变，从而产生触发脉冲。测

约为4.2 µA。

得的平均电流约为75 µA。
5.0

4.5

4.5

4.0

4.0

3.5

3.5

3.0

3.0

IBAT (mA)

5.0

2.52.02.5

1.5

1.0

1.0

图9. 使用SensorStrobe的功耗测量

TIME (Seconds)

图10. 不使用SensorStrobe的功耗测量

Rev. 0 | Page 12 of 13

15018-010

TIME (Seconds)

00
0.032
0.063
0.095
0.126
0.158
0.189
0.221
0.253
0.284
0.316
0.347
0.379
0.410
0.442
0.473
0.505
0.536
0.568
0.599
0.631
0.662
0.694
0.725
0.757
0.788
0.820
0.851
0.883
0.915
0.946
0.978

00.5

AVERAGE ~4.2µA
15018-009

0.5

AVERAGE ~75µA

2.0

1.5

00.032
0.063
0.095
0.126
0.158
0.189
0.2210.253
0.284
0.316
0.347
0.379
0.410
0.442
0.473
0.505
0.536
0.568
0.599
0.631
0.662
0.694
0.725
0.757
0.788
0.820
0.851
0.883
0.915
0.946
0.978
1.011

IBAT (mA)

使用SensorStrobe的功耗测量

AN-1427

应用笔记结语
SensorStrobe机制使得传感器采样系统的电流消耗大幅降低。
在本应用笔记所述的演示系统中，平均电流消耗从75 µA降至4.2 µA。

结构健康监控 (SHM)
SHM中的传感器节点常常部署在无电源的结构中，例如桥
梁、塔或偏远场所。定期更换电池是一个麻烦，会提高寿ADuCM3027/ADuCM3029的SensorStrobe机制可帮助设计

命周期的维护成本。电池寿命很长的传感器节点可显著降人员利用ADXL363的低功耗特性，使功耗降低10倍以上。

低维护成本。

ADuCM3027/ADuCM3029的SensorStrobe机制对超低功耗

医疗保健监护系统很有利，可降低整体电流消耗，延长系统的电池寿命。

医疗保健监护应用涉及到身体姿势、人员位置和病人生命“结构健康监控 (SHM)”部分、“医疗保健监护”部分和“环境检测”部分提及了一些可以获益于此的应用。

体征的监测。此类监护设备通常是可穿戴式或植入式，降低系统电流消耗可提升设备的电池状况。

环境检测各类环境检测应用，例如空气污染监测、森林防火检测、滑坡检测等，要求将传感器节点部署在偏远地区。这些偏
远地区常常缺少供电线路。延长此类节点的电池寿命可降低维护成本。

©2017 Analog Devices, Inc. All rights reserved. Trademarks andregistered trademarks are the property of their respective owners.
AN15018sc-0-3/17(0)Rev. 0 | Page 13 of 13