日本語参考資料
最新版英語ユーザー・ガイドはこちら

ADuCM3027/ADuCM3029
ユーザー・ガイド
UG-1091
ADuCM3027/ADuCM3029 のセットアップと使用方法
はじめに

特長

このユーザーガイドでは、
ADuCM3027/ADuCM3029 マイクロコン
トローラの機能と特徴について説明します。各セクションでは、異なる機能を説明します。

ADuCM3027/ADuCM3029 デバイスに共通するシステム機能を次に示します。
••

概要
ADuCM3027/ADuCM3029 プロセッサは、処理、制御、接続のために超低消費電力で統合化されたミックスド・シグナルのマイク
ロ・コントローラ・システムです。MCU サブシステムは、ARM®
Cortex™-M3 プロセッサ、一連のデジタル・ペリフェラル、キャッ
シュ組み込み SRAM とフラッシュ・メモリだけでなく、A/D コン
バータ（ADC）サブシステムや、クロック、リセット、パワー・マネージメント機能を備えたアナログ・サブシステムをベースにしています。

•
•
•
•
•
•
•

超低ダイナミック・モードと休止モードのパワー・マネージメン
トに対応するため、ADuCM3027/ADuCM3029 プロセッサは、ダイナミック / ソフトウェア制御のクロック・ゲートや電力ゲートなど、多数の電力モードと機能を備えています。

•

ADuCM3027/ADuCM3029 の完全な仕様については、製品データ
シートと ADuCM302x Ultra Low Power ARM Cortex-M3 MCU with
Integrated Power Management Hardware Reference Manual を参照してください。

•
•
•
•
•
•

最大 26 MHz ARM Cortex®-M3 プロセッサ
最大 256 KB 組み込みフラッシュ・メモリ、誤差補正コード（ECC）付き
有効電力を下げるための 4 KB キャッシュ（オプション）
パリティ付き 64 KB システム SRAM
パワー・マネージメント・ユニット（PMU）
多層 AMBA（先進マイクロコントローラ・バス・アーキテクチャ）バス・マトリックス
中央ダイレクト・メモリ・アクセス（DMA）コントローラ
ビーパー・インターフェース
シリアル・ポート（SPORT）、シリアル・ペリフェラル・
インターフェース（SPI）× 3、インター集積回路（I2C）、ユニバーサル非同期レシーバー／トランスミッタ（UART）
ペリフェラル・インターフェース
AES（高度暗号化規格）と SHA（セキュア・ハッシュ・ア
ルゴリズム）-256 による暗号化サポート
リアルタイム・クロック（RTC）× 2
汎用タイマー × 3、ウォッチドッグ・タイマー × 1
プログラマブル汎用入出力（GPIO）ピンプログラマブル・ジェネレータ多項式を使用したハードウェ
ア巡回冗長検査（CRC）
パワーオン・リセット（POR）と電源モニタ（PSM）
12 ビット逐次比較レジスタ（SAR）ADC

ADUCM3027/ADUCM3029 機能ブロック図
26MHz CORE RATEPLL
HF XTALLF XTAL
HF OSCSERIAL WIRE
ARM
CORTEX-M3

NVIC

LF OSCREF BUFFER

WIC

MPU

TEMPERATURESENSORADC

INSTRUCTION
RAM/CACHE(32kB)MULTILAYER
AMBA
BUS
MATRIX

SPORT

SRAM0
(16kB)POWER
MANAGEMENT
BUCK

SRAM1
(16kB)DMA
CRYPTO(AES 128/256,
SHA 256)

FLASH(256kB)

UART

TMR0

TMR1

RTC0

RTC1

TMR2

WDT

BEEPERGPIO

TRNG

PROGRAMMABLE
CRC POLYNOMIAL

SPI

SPI

I 2C

SPI

15388-501

AHB-APB
BRIDGE

図 1.

アナログ・デバイセズ社は、提供する情報が正確で信頼できるものであることを期していますが、その情報の利用に関して、あるいは利用によって生じる第三者の特許やその他の権利の侵害に関して一切の責任を負いません。また、アナログ・デバイセズ社の特許または特許の権利の使用を明示
的または暗示的に許諾するものでもありません。仕様は、予告なく変更される場合があります。本紙記載の商標および登録商標は、それぞれの所有者の財産です。※日本語版資料は REVISION が古い場合があります。最新の内容については、英語版をご参照ください。

Rev. 0©2016 Analog Devices, Inc. All rights reserved.

社／〒105-6891 東京都港区海岸 1-16-1 ニューピア竹芝サウスタワービル
電話 03（5402）8200
大阪営業所／〒532-0003 大阪府大阪市淀川区宮原 3-5-36 新大阪トラストタワー
電話 06（6350）6868
本

UG-1091

ユーザー・ガイド
目次
はじめに .............................................................................................. 1キャッシュの効果 ........................................................................ 27

概要 ...................................................................................................... 1

消費電流の比較............................................................................ 29

特長 ...................................................................................................... 1

ADuCM3027/ADuCM3029 のデュアル RTC 機能 ......................... 30

ADuCM3027/ADuCM3029 機能ブロック図 ..................................... 1

RTC 機能の比較 ........................................................................... 30

改訂履歴 .............................................................................................. 2電力に関する考慮事項 ................................................................ 30

はじめに .............................................................................................. 3

まとめ ........................................................................................... 30

ソフトウェアのインストール ...................................................... 4

ADuCM3027/ADuCM3029 DC/DC コンバータのメリット.......... 31

IAR 構成 .......................................................................................... 5

DC/DC の基本 .............................................................................. 31

デモ・プロジェクトの構築 .......................................................... 7

キャパシタとインダクタ・コンバータの比較面積................. 33

ADuCM3027/ADuCM3029 プロセッサの電力最適化 ................... 11

まとめ ........................................................................................... 34

ADuCM3029/ADuCM3027 プロセッサの パワー・マネージメント ............................................................................ 11

UART ソフトウェア・フロー制御 ................................................. 36

ADuCM3029/ADuCM3027 プロセッサの電力モード..................... 11

システムの説明............................................................................ 37

ADUCM3029/ADUCM3027 プロセッサ・ブート・
カーネルの使用 ................................................................................ 17
ブート・カーネルの概要 ............................................................ 17

UART フロー制御 ........................................................................ 36
データ・キャプチャ .................................................................... 41
UART フロー制御方法 .................................................................... 42
SPI 読出しコマンド・モード ..................................................... 42

UART ダウンローダ .................................................................... 20

フロー制御モード ........................................................................ 44

読出し保護キーとハッシュ ........................................................ 23
メモリ構成 .................................................................................... 24
IAR ワークベンチの CRC の処理 .............................................. 25

まとめ ........................................................................................... 46
Sleep on Exit ...................................................................................... 47

ADuCM3027/ADuCM3029 のキャッシュ・メモリ ....................... 27
ブロック図 .................................................................................... 27
フラッシュ・コントローラ ........................................................ 27

改訂履歴3/2017—Revision 0: Initial Version

Rev. 0－ 2/48 －メリット ....................................................................................... 47
Sleep on exit 機能を有効にする .................................................. 47
ADuCM3027/ADuCM3029 のシステム制御レジスタ............... 48

UG-1091

ユーザー・ガイド
はじめに

ここでは、IAR ワークベンチを統合開発環境（IDE）として使用
し、アプリケーションを開発する手順について説明します。ここでは、ボード・サポート・パッケージ（BSP）ドライバが提供するサンプル・コードをダウンロードして実行する方法についても説明します。

15388-001

ここでは、ADuCM3029/ADuCM3027 マイクロコントローラでア
プリケーションを開発するために必要なツールおよびサポート・
パ ッ ケ ー ジ に つ い て 説 明 し ま す 。 こ こ で は 、
ADuCM3027/ADuCM3029 を設定するために使用するプログラ
ムをダウンロード、インストール、構成する方法について説明します。

図 2. IAR Embedded Workbench

Rev. 0－ 3/48 －UG-1091

ユーザー・ガイド
ソフトウェアのインストール

4.

ADuCM3027/ADuCM3029 を使用したアプリケーション開発に必要なソフトウェア・ツールは、
http://www.analog.com/jp/design-center/evaluation-hardware-andsoftware/evaluation-boards-kits/eval-aducm3029-ezkit.html でダウンロードできます。

5.

エミュレータ・ボードを差し込み、デバイス・マネージャを開きます。
USB コントローラの Windows® デバイス・マネージャに表示されるエミュレータ・ボートを確認します（図 4 を参照）。

表 1. 必要なソフトウェア・ツール

ADuCM3027/
ADuCM3029
BSP Drivers

Functions
Used for compiling, debugging, and codedevelopment
J-Link software and documentation pack includes
USB drivers for the emulator, J-Link Commander,and so on
Includes ADuCM3027/ADuCM3029 peripheral
drivers and libraries, IAR configuration files, andexample programs
15388-003

Tool
IAR Embedded
Workbench
Segger J-Link
SoftwareSegger J-Link Driver のインストール
Segger J-Link USB ド ラ イ バ を イ ン ス ト ー ル し て か ら 、 IAR
Embedded Workbench などのシリアル・ワイヤ・インターフェースを使用して、デバッグ・コードをダウンロードする必要があります。
J-Link USB ドライバを使用するには、次の手順に従ってください。
1.
2.
3.

最新の Segger J-Link ソフトウェアと技術文書パックをダウンロードします。
ダウンロード・ディレクトリで実行可能なソフトウェア・
インストーラを開きます。
画面上の指示に従い、インストールを完了します。図 3 に示すように、［Install USB Driver for J-Link］オプションがチェックされていることを確認します。

図 4. デバイス・マネージャ
ソフトウェアのインストール手順の後に、J-Link の USB ドライ
バがインストールされ、検証されます。

IAR ツールのインストール
IAR Embedded Workbench と内蔵の IAR C/C++ コンパイラは、
ARM
ベースのアプリケーションで業界最速の性能を発揮し、最もコン
パクトなコードを生成します。そのため、アナログ・デバイセズ
は、ADuCM3027/ADuCM3029 向けに IAR ワークベンチの BSP ド
ライバを作成しました。
KickStart エディションは無料のスターター・キットで、IAR の評価版です。このエディションでは、コード・サイズ（32 kB）と提供されるサービスやサポートの両方に制限があります。
IAR ソフトウェアは、
IAR Web サイトからダウンロードできます。
無料のお試し版ソフトウェアをダウンロードします。
IAR のインストールとライセンス詳細を追加する手順については、
IAR Web サイトの Installation and Licensing Guide for IAR Embedded
Workbench® を参照してください。

15388-002

BSP のサンプルは、IAR バージョン 7.40.2 向けです。別のバージョンを使用すると、プロジェクトに互換性の問題が発生する可能性があります。

図 3. Segger J-Link ドライバのインストール・オプション

Rev. 0－ 4/48 －UG-1091

ユーザー・ガイド
ADuCM3027/ADuCM3029 ボード・サポート・パッケージ（BSP）

5.

ADuCM3027/ADuCM3029 BSP には、ADuCM3027/ADuCM3029 の開発を簡単にする構成ファイル、サポート・ファイル、コンポー
ネントが含まれています。

BSP のドライバとソース・ファイルのロケーションを選択します（図 6 を参照）。Windows のアクセス制限があるので、ロケーションは Program Files フォルダ以外に設定することをお勧めします。

BSP の内容は次のとおりです。
•
•
•

•

ADuCM3027/ADuCM3029 プロセッサに必要なデバイス・ド
ライバとサービスのソース・ファイル。
デバイス・ドライバとサービスの例。
ツール・チェーンをサポート。これらのコンポーネントは、
IAR 組 み 込 み ワ ー ク ス ペ ー ス に イ ン ス ト ー ル さ れ 、
ADuCM3027/ADuCM3029 を 認 識 す る よ う に ツ ー ル ・チェーンを構成します。
技術文書。

15388-005

IAR Embedded Workbench をインストールしてから BSP をインストールする必要があります。
BSP をインストールするには、次の手順に従います。
1.

2.
3.
4.

ADuCM3027/ADuCM3029 BSP インストーラをhttp://www.analog.com/jp/design-center/evaluation-hardware-andsoftware/evaluation-boards-kits/eval-aducm3029-ezkit.html#ebrelatedsoftware でダウンロードします。
インストーラ・アプリケーションを実行します。
指示に従ってインストールを完了します。
インストールするツール・チェーンがサポートする IAR
Workbench のバージョンを選択します（図 5 を参照）。

図 6. BSP インストール先フォルダの選択ダイアログ・ボックス
6.

インストール・プロセスを完了します。詳細な情報とガイ
ダンスについては、BSP のインストール・フォルダに含まれるファイルと技術文書を確認できます。

IAR 構成ここでは、ADuCM3027/ADuCM3029 を適切に動作させるためのIAR 構成手順について説明します。デフォルト値から変更する必要があるセクションのみを説明しています。
全般オプションで、アナログ・デバイセズの ADuCM3029/
ADuCM3027 デバイス・オプションがターゲットとして選択されていることを確認します。
2. ［C/C++ Compiler］>［Optimizations］で、アプリケーションのニーズに合わせて、速度、コード・サイズ、バランスに最適な各オプションを選択します。コンパイラは、レジス
タへの書込みを最適化するのが望ましいと判断する場合があります。ただし、最適化を実行すると、予期せぬ動作が発生する場合があります。このような状況では、次のコードを使用して、構成機能を最適化から保護することを推奨します。

15388-0041.

図 5. ツールチェーンの選択ダイアログ・ボックス

Rev. 0#pragma optimize=none
3. ［C/C++ Compiler］>［Preprocessor］で、実行するコードに合わせてディレクトリを含むパスを指定します。

－ 5/48 －UG-1091

ユーザー・ガイド

15388-006

5. ［Driver］ドロップダウン・メニューで、［J-Link/J-Trace］をデバッガとして選択します。［Debugger］>［Download］
メニューで、［Verify download］ と ［Use flash loader(s)］の両方のボックスがオンになっていることを確認します（図9 と図 10 を参照）。

シグネチャ・フィールドに保存された 32 ビットの CRC チェッ
クサムを使用すれば、ユーザー・コードからユーザー・ス
ペースの整合性チェックを要求できます。そのため、図 7 と図 8 に示すようにチェックサムを構成する必要があります。
どちらも［Linker］メニューの構成です。

図 9. ［Debugger］>［Setup］タブ

15388-009

15388-007

4.

15388-008

図 7. ［Linker］>［Checksum］設定タブ

図 8. ［Linker］>［Extra Options］設定タブ

Rev. 0

図 10. ［Debugger］>［Download］タブ－ 6/48 －UG-1091

ユーザー・ガイド
図 11 と図 12 に、J-Link/J-trace の設定を示します。［Reset］
ドロップダウン・メニューで、［Halt after bootloader］ター
ゲットを使用して方策をリセットしてください。そうしないと、カーネルが破損し、デバイスがロックダウンされます。
この破損から回復するには、カーネルを再フラッシュする必要があります。

15388-0126.

図 13. IAR ワークスペースを開く

15388-010

BSP の examples フォルダには、関連するプロジェクトがあります（図 14 を参照）。

15388-011

図 11. ［J-Link/J-Trace］>［Setup］設定タブ

図 12. ［J-Link/J-Trace］>［Connection］設定タブ

デモ・プロジェクトの構築
IAR 提供のコード

15388-013

ADuCM3027/ADuCM3029 BSP ディレクトリの examples フォルダには、いくつかのサンプル・プロジェクトがあります。BSP イン
ストール・フォルダ > ¥ADuCM302x_EZ_Kit_Lite > examples サン
プル・プロジェクトを開くには、［File］メニューから、［Open］> ［Workspace…］を選択してワークスペース・ファイルに移動します。
図 14. BSP フォルダ内にあるプロジェクト

各サンプルには、ADuCM3027/ADuCM3029 のペリフェラルへの接続に使用できる充実した下位レベルのペリフェラル・ライブラ
リがあります。ライブラリとサンプルのわかりやすい技術文書が含まれています。

Rev. 0－ 7/48 －UG-1091

ユーザー・ガイド

15388-016

プロジェクトの変更
プロジェクトを変更するには、
ワークスペースで各プロジェクトをクリックし、表示されるメニューから［Set as Active］をクリックします（図 15 を参照）。

図 17. ツールバー上にある IAR Make ボタンを使用したアプリケーションのビルド

15388-017

アプリケーション・コード全体を再ビルドするには、［Project］>［Rebuild All］をクリックします。このアクションでは、すべてのプロジェクト・ファイルのクリーン、再コンパイル、およびリンクが実行されます。

図 18. ［Rebuild All］を使用したアプリケーションのビルド
15388-014

常に、エラーなしでコードをコンパイルできます（図 19 を参照）。

図 15. プロジェクトの変更

アプリケーションのビルド

15388-018

15388-015

アプリケーション・コードをビルドまたはコンパイルするには、［Project］ > ［Make］をクリックする（または F7 を押す）（図16 を参照）か、Make のツールバー・ボタン（図 17 を参照）をクリックします。

図 16. ［Project］>［Make］を使用したアプリケーションのビルド

Rev. 0

図 19. プロジェクトの再コンパイル－ 8/48 －UG-1091

ユーザー・ガイド
アプリケーション・コードのダウンロード

サンプル・プロジェクトの実行

コードをダウンロードするには、［Project］>［Download］>［Download active application］をクリックします。

ADuCM3027/ADuCM3029 BSP には、マイクロコントローラをテストして評価するためのサンプル・プロジェクトが多数あります。
このユーザー・ガイドでは、ADuCM3029 EZ-Kit 評価ボードと IAR
ワークベンチを使用して、BSP パッケージからサンプル・プロジェ
クトを実行します。
ここでは、LED_polled_button サンプル・プロジェクトを使用します。この例では、GPIO サービスを使用して、ADuCM3029/
ADuCM3027 EZ-Kit ボード上のプッシュ・ボタン（GPIO を入力として設定）と LED（GPIO を出力として設定）を構成します。
LED_polled_button プロジェクトを実行するには、

15388-019

1. ［Project］>［Add Existing Project…］を選択します。

15388-023

図 20. アプリケーションのダウンロード
デバイスの電源を入れ直したら、ADuCM3027/ADuCM3029 上でコードが実行されます。

アプリケーション・コードのデバッグ

図 24. ［Add Existing Project…］メニュー・オプション
2.

次の手順を使用して、プロジェクトをダウンロードしてデバッグします。
デバッグのボタンをクリックします。コードのデバッグは、
メイン機能の最初に実行されます。シングル・ステップ、
ステップ・オーバー、ブレーク・ポイントのデバッグ機能を使用できます。
15388-020

1.

ファイル選択ダイアログ・ボックスで、BSP フォルダに移動してから、examples フォルダに移動します。examples フォ
ルダで、gpio¥LED_button_polled¥ADuCM3029¥iar に移動します。
LED_button_polled.ewp ファイルをクリックしてから、［Open］ボタンをクリックします（図 25 を参照）。

図 21. IAR デバッグのツールバー・ボタン
ツールバーにある Go アイコンをクリックするか（図 22 を参照）、［Debug］>［Go］を選択するか、F5 キーを押します（図 24 を参照）。ADuCM3027/ADuCM3029 でコードが実行されます。

15388-024

2.

15388-021

図 25. プロジェクト選択のダイアログ・ボックス

15388-022

図 22. IAR Go のツールバー・ボタン

3. ［Project］ドロップダウン・メニューをクリックし、［Make］を選択してプロジェクトをビルドします。ビルド・コンソー
ルには、エラーや警告メッセージが表示されません。

図 23. ［Debug］>［Go］

Rev. 0－ 9/48 －UG-1091

ユーザー・ガイド
アプリケーションをデバッグするには、［Project］ドロッ［Download and Debug］を
プダウン・メニューをクリックし、選択するか、Ctrl + D を押します（図 26 を参照）。アプリ
ケーションのダウンロード後に、IDE はデバッグ・モードに切り替わり、［Disassembly］ウィンドウなどの別のウィン
ドウ、デバッグ・ツールバー、デバッグ・ロガーなどが表示されます。［Debug］ > ［Go］をクリックして、アプリケー
ションを実行します。

15388-0254.

図 26. ダウンロードとデバッグ

Rev. 0－ 10/48 －UG-1091

ユーザー・ガイド
ADUCM3027/ADUCM3029 プロセッサの電力最適化
低消費電力 MCU を選択するには、データシートを確認して電気仕様を分析する必要があるので、手間がかかります。
多くの場合、該当するシステム・レベルの使用事例にこれらの仕様を関連付けるのは困難です。
ペリフェラルの動作を考慮して実際の使用事例のシナリオをエミュレートしながら、各電力モードを評価するのは、電力要件が厳しいアプリケーションで正しい MCU を選択する場合に欠かせない手順です。低消費電力アプリケーション向けに MCU を選択する場合、次の項目を評価します。
•
•
•
•
•
•
•
•
•
•

低消費電力モードの可用性や、SRAM の内容を保持する機能に与えるこれらのモードの影響
システムの残りの部分が消費電力モードである場合に、RTC を実行した場合の消費電力
低消費電力モードからのウェイクアップ時間
アプリケーションに必要な電源電圧の範囲。設計者は、部品の要件に合わせて電源電圧を調整して選択できます。
アクティブ・モードでの消費電力
コア・アクティビティ - アルゴリズム処理など
ペリフェラルのアクティビティ - DMA 動作
コアとペリフェラルの同時アクティビティ
消費電力を低く抑えながら、システム条件を満たすようにコアとペリフェラル・クロックの周波数を選択できる柔軟性
ペリフェラル・アクティビティの最中に、CPU を低消費電力モードに移行できるハードウェア DMA ブロック

ADuCM3027/ADuCM3029 プロセッサは、処理、制御、接続のための超低消費電力の内蔵ミックスド・シグナル MCU システムです。MCU システムは、26 MHz のピーク性能で最大 33 MIPS を実現する ARM® Cortex®-M3 プロセッサをベースとし、一連のデジタル・ペリフェラル、組み込み SRAM とフラッシュ・メモリ
だけでなく、ADC サブシステムや、クロック、リセット、パワー・マネージメント機能を備えたアナログ・サブシステムを組み合わせています。
ADuCM3027/ADuCM3029 プロセッサは、市場でも数少ない、
キャッシュ・コントローラを備えた低消費電力 MCU のうちの 2 つです。同じデータや命令に繰り返しアクセスするプログラムでは、
キャッシュ・メモリが効率よく使用されるので、全体の消費電力を削減できます。

MCU の消費電力は、主にシステムの動作電圧と周波数に依存します。ADuCM3027/ADuCM3029 プロセッサは、バッテリ駆動のアプリケーションまたは自己給電（エナジー・ハーベスト）アプ
リケーションのビルドに便利な、複数の電力モードを内蔵しています。
ここでは、ADuCM3027/ADuCM3029 プロセッサの電力モードについて詳細に説明し、複数のシナリオにおける電力測定の例を示し、開発者が低消費電力アプリケーションの要件に最も適した電力モードを選択できるようにします。

ADUCM3029/ADUCM3027 プロセッサのパワー・マネージメント
ADuCM3029/ADuCM3027 プロセッサは、高度にカスタマイズされたパワー・マネージメントとクロック・システムを内蔵しているので、電力と性能のバランスを柔軟に保つことができます。パワー・マネージメント・ブロックは、多数のアプリケーション・
シナリオに適した内蔵レギュレータ、クロック・ゲート方式、ス
イッチで構成されます。
パワー・マネージメント・システムは、次の機能で構成されます。
••••

内蔵の 1.2 V LDO とオプションの容量性降圧レギュレータ
休止モードでの低スタンバイ電流向けの内蔵電力スイッチ
スリープ・モードでリークを減らす電力ゲート
電圧範囲を選択できる電源モニタ

ADUCM3029/ADUCM3027 プロセッサの電力モード
パワー・マネージメント・システムには、次の低消費電力モードがあります。
••••

カスタマイズされたクロック・ゲート機能を備えたアクティ
ブ・モード
スマート・ペリフェラルを使用した Flexi™ モード。
オプションの SRAM データ保持機能を備えた休止モード
SRAM データ保持期間なしのシャットダウン・モード

モードごとに、低消費電力と実行可能な機能の間でトレードオフが存在します。表 2 に、各低消費電力モードのシステム・ブロッ
クのステータスを示します。

表 2. 電力モードのシステム・ブロックのステータス
Functional
Block
Active Mode
Flexi Mode
Hibernate Mode
Shutdown Mode
1
2

ARM
Cortex-M3
Core
On
Off
Off
Off

Buck
User 1
User1
Off
Off

PERIPHERAL
-DMA
User1
User1
Off
Off

HF-XTAL
User1
User1
Off
Off

HFOSC
User1
User1
Off
Off

LFXTAL
User1
User1
User
User

PLL
User1
User1
Off
Off

この機能ブロックは、ユーザー・アプリケーション・コードでオンまたはオフに設定できます。
保持可能な SRAM サイズは設定可能です。

Rev. 0－ 11/48 －

LFOSC
On
On
On
Off

RTC0
User1
User1
User1
User1

RTC1
User1
User1
User1
Off

ADC
User1
User1
Off
Off

SRAM
On
On
On 2
Off

FLASH
On
On
Off
Off

UG-1091

ユーザー・ガイド
アクティブ・モード
アクティブ・モード（フル・オン・モードとも呼ばれる）では、ARM Cortex-M3 がアクティブで、フラッシュ・メモリや SRAM
からの命令を実行します。ユーザーの判断ですべてのペリフェ
ラルをイネーブルまたはディスエーブルにでき、最適化されたクロック管理によってアクティブ・モード電力を向上させることができます。

図 28 では、次の条件で素数を計算する場合の ADuCM3027/
ADuCM3029 プロセッサの消費電力を比較します。
•••

VBAT = 3.0 V
HCLK = PCLK = 26 MHz
キャッシュ・メモリはディスエーブル

降圧コンバータは、高い VBAT 値で消費電流を節約します。具体的には、VBAT ≥ 3 V の場合に有効電流が約 50 % 減少します。

アクティブ・モードでは、次の電力節約オプションを使用でき
ます。

3.0

•
•
•
•

2.5

降圧コンバータの使用キャッシュの有効化
ダイナミック・クロック・スケーリング
クロック・ゲート

IBAT (mA)

2.0

降圧コンバータ
オプションの降圧コンバータ機能を使用すれば、
アクティブ・モードで電力を節約できます。降圧コンバータは、リニア電圧レギュレータを介してデジタル・コア領域に給電します。バッテリ電圧（VBAT）が 2.3 V を下回ると、降圧コンバータはバイパス・モードに移行します。バイパス・モードに移行した後、降圧コンバー
タの出力が入力に追従します。図 27 に、降圧コンバータがイネー
ブルになる設計で推奨される外部回路を示します。

BUCK(ENABLED)VDCDC_CAP1N

0

0.1µF

VDCDC_CAP2P
0.1µF

2.3

2.5

2.7

2.9

3.1

3.3

3.5

3.7

VBAT (V)

15388-101

1.

キャッシュ・イネーブル・ステータス・ビット（CACHESTAT レジスタのビット 0）の読出しを実行し、キャッシュ・メモリがディスエーブルであることを確認します。クリアされるまでこのビットをポーリング
します。
2. CACHEKEY レジスタを使用して、ユーザー・キーの書込みを実行します。例えば、次の値を書き込みます。

図 27. 降圧コンバータがイネーブルになる設計の外部回路オプションの降圧コンバータを使用しない設計では、
VDCDC_CAP1P、
VDCDC_CAP1N、VDCDC_OUT、VDCDC_CAP2P、VDCDC_CAP2N
ピンを未接続のままにしてください。
降圧コンバータを使用するのは、プロセッサのみです。降圧コン
バータの出力には、外部負荷を接続できません。
次のコードで CTL1.HPBUCKEN ビットを設定して、降圧コンバー
タをイネーブルにします。

*pREG_PMG0_CTL1 |= (1<<ITP_PMG_CTL1_HPBUCKEN);

Rev. 0

2.1

デフォルトでは、キャッシュ・メモリがスタートアップ時にディスエーブルになります。キャッシュ・メモリをイネーブルにするには、次の手順に従います。

VLDO_OUT
0.47µF

1.9

キャッシュ・メモリを使用すれば、フラッシュ・メモリからデー
タにアクセスするための平均時間が短くなります。CPU がアル
ゴリズムを実行する必要がある場合または同じデータに繰り返し
アクセスする必要がある場合、キャッシュ可能なメモリを使用す
れば、内部命令 SRAM から実行されるので消費電力が減ります。
キャッシュ・コントローラがイネーブルになっている場合、4 KBの命令 SRAM はキャッシュ・メモリとして予約されます。

0.47µF

LDO

1.7

15388-1020.5

図 28. 降圧コンバータがアクティブ・モード消費電力（キャッシュ・メモリはイネーブル）に与える影響

VDCDC_OUTVDCDC_CAP2NBUCK ON

1.5

1.0

VDCDC_CAP1P

VBATBUCK OFF*pREG_FLCC0_CACHE_KEY = 0xF123F456;
3.

命令キャッシュ・イネーブル・ビット（CACHESETUP
レジスタの ICEN）を次のように設定します。

*pREG_FLCC0_CACHE_SETUP |= (1 <<BITP_FLCC_CACHE_SETUP_ICEN);－ 12/48 －UG-1091

ユーザー・ガイド3.0

図 29 では、次の条件で素数を計算する場合の ADuCM3027/
ADuCM3029 プロセッサの消費電力を比較します。

2.5

VBAT = 3.0 V
HCLK = PCLK = 26 MHz
降圧コンバータはディスエーブル

2.0
IBAT (mA)

3.0
CACHE OFF
2.5

IBAT (mA)

1.0

CACHE ON

2.0

1.5

0.5

1.5
0

0

5

1.0

25

1.9

2.1

2.3

2.5

2.7

2.9

3.1

3.3

3.5

3.7

15388-103

コア・クロックの周波数が減少すると、消費電力も減少します。
1.7

クロック・ゲート

図 29. キャッシュ・メモリがアクティブ・
モード消費電力に与える影響
キャッシュ・メモリをイネーブルにすると、有効電力の平均消費量を最大で 18 % 減らすことができます。

ダイナミック・クロック・スケーリング
動的なクロック／周波数のスケーリングは、消費電力を削減する
うえで実績のある手法です。ADuCM3027/ADuCM3029 プロセッ
サには、CPU とペリフェラル・クロックの周波数を動的に変更できる、柔軟なクロック・アーキテクチャが組み込まれています。
クロック分周器とフェーズ・ロック・ループ（PLL）を組み合わせることで、固定のクロック方式よりも消費電力を低く維持したまま、最適なシステム・クロック周波数を柔軟に導出できます。
プログラマブルなクロック分周器でシステム内のクロックを生成し、分周器を即座に構成できます。
図 30 では、次の条件で素数を計算する場合の ADuCM3027/
ADuCM3029 プロセッサの消費電力をプロットしています。
VBAT = 3.0 V
HCLK = PCLK（ルート・クロックの源は HFOSC)
降圧コンバータはディスエーブル
キャッシュはディスエーブル

Rev. 020

図 30. コア・クロック周波数がアクティブ・
モード消費電力に与える影響

VBAT (V)

•
•
•
•

15
HCLK (MHz)

0.5

0

10

15388-104•••

システムは、高度なクロック・ゲーティングと自動クロック・ゲー
ト技術を使用します。大部分のペリフェラルは、ディスエーブルの場合に自動的にクロック・ゲーティングされ、イネーブルな場
合のみクロックが実行されます。例外は、I2C、GPIO、汎用タイ
マー（GPTMR）です。これらのブロックは、CLKCON5 レジス
タを使用して手動でクロック・ゲーティングする必要があります。
CLKCON5.PERCLKOFF ビットをセットして、ペリフェラル・ク
ロックを完全にゲーティングします。
クロック・ゲーティングされたペリフェラルへのアクセスは、
CLKCON5 レジスタのクロック・ゲート設定をオーバーライドします。
コアがデータを処理し、ペリフェラルのアクティビティが望まし
くないアプリケーション・シナリオでは、ペリフェラル・クロック（PCLK）をオフにして電力を節約する必要があります。図 31に、次の条件で素数を計算する場合の ADuCM3027/ADuCM3029
プロセッサの消費電力を示します。
••••－ 13/48 －VBAT = 3.0 V
降圧コンバータはディスエーブル
キャッシュ・メモリはディスエーブル
HCLK = PCLK = 26 MHz

UG-1091

ユーザー・ガイド3.0
1.0

PCLK ON

ACTIVE MODE

2.5
0.8

PCLK OFFIBAT (mA)

1.5

0.2

0.5

1.9

2.1

2.3

2.5

2.7

2.9

VBAT (V)

3.1

3.3

3.5

3.7

15388-105

0

1.7

1.7

1.9

2.1

2.3

2.5

2.7

2.9

3.1

3.3

3.5

3.7

VBAT (V)

図 32. Flexi モードが消費電力に与える影響

図 31. ペリフェラル・クロック・ゲートがアクティブ・
モードの消費電力に与える影響
図 31 に示すように、ペリフェラル・クロックがゲーティングされると、有効電流が 0.2 mA ほど減少します。
アクティブ・モードでは、ここで説明される 4 つの技術を組み合わせて、電力を最大限に節約できます。

Flexi モード
Flexi モードは柔軟なスリープ・モードで、コアが処理を開始する前に、ペリフェラルのデータ転送を待機する必要がある場合に便利です。Flexi モードでは、コアがクロック・ゲーティングされ、システムの残りの部分はアクティブになります。Flexi モードを使用すると、プロセッサがウェイクアップしてデータを処理する前に、非常に低速のアクティビティを完了することが予想される場合（センサーから特定のバイト数の読出しを実行するなど）、
大幅に有効電力を削減できます。

図 32 に示すように、DMA の実行中にコアをアクティブ・モードに維持せずに Flexi モードを使用すると、電力を約 66 % 節約できます。
Flexi モードを終了するには、多数のウェイクアップ・ソースを使用できます（DMA 割込み、外部割込み、タイマー割込みなど）。
通常は、1 つの CPU クロック・サイクルのみで終了します。
Flexi モードで降圧コンバータもイネーブルにすると、さらに電力を節約できます。図 33 に、次の条件で DMA にアクセスして SPI
経由でデータを転送しながら、Flexi モードで降圧コンバータを使用する VBAT 全体の ADuCM3027/ADuCM3029 プロセッサの消費電力を示します。
••••

VBAT = 3.0 V
キャッシュ・メモリはディスエーブル
ODR = 6.5 MHz
SPI_DIV = 49

CPU が SPI DMA を構成し、DMA の完了を待機する必要がある
シナリオを考えます。図 32 に、次の条件で DMA にアクセスして SPI 経由でデータを転送する ADuCM3027/ADuCM3029 プロ
セッサの消費電力を示します。

0.5
BUCK OFF
0.4

VBAT = 3.0 V
降圧コンバータはディスエーブル
キャッシュはディスエーブル
ODR = 6.5 MHz
SPI_DIV = 49

IBAT (mA)

•
•
•
•
•

FLEXI MODE
0.4

1.0

0

0.6

15388-106

IBAT (mA)

2.0

0.3

BUCK ON

0.2

0

1.7

1.9

2.1

2.3

2.5

2.7
VBAT (V)

2.9

3.1

3.3

3.5

3.7

15388-1070.1

図 33. 降圧コンバータが Flexi モードの消費電力に与える影響
図 33 に示す、アクティブ・モードでの降圧コンバータによる影響と同様な電力の向上パターンが 図 28 でも見られます。具体的には、VBAT ≥ 3 V の場合に、50 % の電力の向上が観察されています。

Rev. 0－ 14/48 －UG-1091

ユーザー・ガイド
休止モード

ウェイクアップ・ソース

休止モードでは、ARM Cortex-M3 コアとすべてのデジタル・ペ
リフェラルはオフになり、設定可能な SRAM データ保持期間、ポート・ピンのデータ保持期間、限られた数のウェイクアップ中断、オプションでアクティブな RTC を使用できます。休止モード で は 、 す べ て の GPIO ピ ン の 状 態 が 保 持 さ れ ま す 。
ADuCM3027/ADuCM3029 プ ロ セ ッ サ は 、 RTC ブ ロ ッ ク にSensorStrobe™ 機構も組み込んでいます。これにより、超低消費電力センサーのデータ計測が可能になります。

次のイベントが発生すると、休止モードからデバイスをウェイクアップできます。

休止モードに移行する前に、特定のシーケンスを実行して休止モードに正しく切り替わるように、イネーブルなペリフェラルの大部分をプログラムする必要があります。休止モードの間、複数のシ
ステム・メモリ・マップ・レジスタ（MMR）とペリフェラル・
レジスタは保持されます。
詳細については、
ADuCM302x Ultra Low
Power ARM Cortex-M3 MCU with Integrated Power Management
Hardware Reference に記載された関連するペリフェラル情報を参照してください。

設定可能な保持可能 SRAM
ADuCM3027/ADuCM3029 プロセッサでは、休止モードで保持する SRAM ブロック・サイズに 8 KB（デフォルト）、16 KB、24 KB、
32 KB を使用できます。保持する必要がある SRAM が多くなる
ほど、休止モードでの消費電力は高くなります（図 34 参照）。
1.1
32k
24k
16k
8k

1.0

•
•
•
•

外部割込み 0 ～外部割込み 3
RTC0 と RTC1 の割込み
バッテリ電圧範囲の割込み
UART Rx ピン・アクティビティ

2 つのリアルタイム・クロックのうち、推奨される休止モードからのウェイクアップ・ソースは RTC1 のみです。
休止モードとシャットダウン・モードの両方を使用する必要があるアプリケーション
では、シャットダウン・モードの終了に使用できるのは RTC0 のみであることが理由です。
これらのイベントにおいて、休止モードからのウェイクアップ時
間は、フラッシュから実行する場合は約 14 µs、SRAM から実行
する場合は約 10 µs です。

RTC クロック源
ADuCM3027/ADuCM3029 プロセッサでは、RTC1 ブロックの選
択肢が 2 つあります。
••

低消費電力の内部 RC 発振器（LFOSC）
外部水晶発振器（LFXTAL）

LFOSC または LFXTAL の実装では、
精度と消費電力の間にトレードオフがあります。LFXTAL は LFOSC よりも正確ですが（水晶発振器の製造業者によって異なる）、FOSC のほうが消費電力は低くなります（図 35 を参照）。
1.2

0.8

IBAT (µA)

0.7

0.6

1.9

2.1

2.3

2.5

2.7

2.9

3.1

3.3

3.5

VBAT (V)

3.7

0.8

LFOSC

0.6

0.2

図 34. 保持される SRAM 値に対する VBAT 電源ピン（IBAT）
での電流

0

SRAMRET レジスタで適切なビットをセットすることで、SRAMの保持サイズを設定できます。例えば、休止モード中に 32 KB のSRAM をイネーブルにするには、SRAMRET レジスタで次のコードを使用します。

*pREG_PMG_PWRKEY = 0x4859;*pREG_PMG_SRAMRET |=((1 << BITP_PMG_SRAMRET_SRAM_RET1_EN)|(1 << BITP_PMG_SRAMRET_SRAM_RET2_EN));
パリティをイネーブルにする場合、休止モードからのウェイクアッ
プで保持されない SRAM 領域の初期化が必要になることがあります。

Rev. 0LFXTAL

0.4

1.7

15388-108

0.5

1.0

1.7

1.9

2.1

2.3

2.5

2.7
VBAT (V)

2.9

3.1

3.3

3.5

3.7

15388-109

IBAT (µA)

0.9

図 35.RTC1 をウェイクアップ・ソースに使用した場合の休止電流（LFOSC 対 LFXTAL）

SensorStrobe
SensorStrobe 機構を使用すれば、休止モードを含む一部の電力モードで ADuCM3027/ADuCM3029 プロセッサをプログラマブル・ク
ロック・ジェネレータとして使用できます。この方法では、
ADuCM3027/ADuCM3029 プロセッサによって管理されるタイミン
グ領域を外部センサーで設定できます。SensorStrobe の出力は、
FLEX_RTC からのプログラマブル分周期器の値で、FLEX_RTC は
最大 30.7 μs の分解能で動作します。センサーとマイクロコント
ローラは同期するので、マイクロコントローラとセンサーでデー
タを再サンプリングして時間を合わせる必要はありません。

－ 15/48 －UG-1091

ユーザー・ガイド
シャットダウン・モードは強力なディープ・スリープ・モードで、デジタル回路とアナログ回路の電源がダウンします。デジタル・
コアと SRAM メモリの内容は保持されません。ただし、ウェイ
クアップ割込み構成であるパッドの状態は保存されます。
パッドの構成は、シャットダウン・モードからのウェイクアップ
後に保存およびロックされます。PGM_TST_CLR_LATCH_GPIOS
レジスタへの 0x58FA の書込みを実行し、パットの状態をロック解除する必要があります（ISR ルーチン内が望ましい）。

シャットダウン・モードでは LFOSC がディスエーブルになるので、RTC0 のクロック源を LFXTAL にする必要があります。
RTC0 ブロックがウェイクアップ・ソースとして機能するには電力が必要なので、シャットダウン・モード中の消費電力が増加します（図 36 を参照）。
デバイスがシャットダウン・モードからウェイクアップすると、POR シーケンスに移行し、コードの先頭から実行が開始されます。
400
350*pREG_PMG0_TST_CLR_LATCH_GPIOS = 0x58FA;

250
IBAT (nA)••••

外部割込み 0 ～外部割込み 2
外部リセット
バッテリが 1.6 V を下回る
RTC0 タイマー

RTC0 ブロックはこのモードでイネーブルにでき（オプション）、
RTC0 割込みでプロセッサを定期的にウェイクアップできます。

SHUTDOWN + RTC

300

さらに、次のオプションから選択して、適切なウェイクアップ・
ソースを構成する必要があります。

200
150
100

SHUTDOWN

50
0

1.7

1.9

2.1

2.3

2.5

2.7
VBAT (V)

2.9

3.1

3.3

3.5

3.7

15388-110

シャットダウン・モード

図 36. シャットダウン・モード電流（外部ソース対 RTC0）

Rev. 0－ 16/48 －UG-1091

ユーザー・ガイド

ADUCM3029/ADUCM3027 プロセッサ・ブート・カーネルの使用
0x407FFINFORMATION SPACE(2kB)

シリアル・ダウンロード機能を使用すれば、ターゲット・システ
ムに直接ハンダ処理されたデバイスを再プログラムできるので、外部のデバイス・プログラマが不要になり、システムからデバイ
スをスワップする必要がなくなります。SYS_BMODE0 ピンと
UART ポートに関連するハードウェア・インフラストラクチャがターゲット・ボードに実装されている場合は、シリアル・ダウン
ロード機能を使用することでシステム・アップグレードをフィールドで実行できます。

DEVICE INFORMATIONBOOT KERNEL
0x40000
0x3FFFF

USER SPACE(UP TO 256kB)
0x000015388-601

USER APPLICATION CODE

セキュリティ・オプションの設定

図 37. フラッシュ情報メモリ・スペース
ADuCM3029/ADuCM3027 プロセッサには、ユーザー・アプリケー
ション・コード（ユーザー・スペース）を含む内蔵フラッシュ・メモリと 2 KB の専用メモリ・バンク、構成された情報スペースがあります（図 37 を参照）。
デバイスによっては、128 KB のユーザー・スペースがあります。
詳細については、ADuCM3027/ADuCM3029 データシートを参照
してください。
図 37 に示すように、情報スペース・ブロックは、さらにフラッシュ・メモリの上位 2 KB の ブート・カーネルとデバイス情報に分割されます。ブート・カーネルは、セキュリティ保護された環境を実装しています。また、オプションでユーザー・アプリケー
ション・コードの読出し／書込みが保護され、リセット時にフラッシュ・メモリからアプリケーションを実行できます。また、ブート・カーネルは UART ダウンローダからファームウェアをアップグレードする機構も備えています。
ここでは、オンチップ・フラッシュ・メモリの情報スペース領域
だけでなく、ブート・プロセスと UART ダウンローダを使用してプロセッサ・ファームウェアへのフィールド・アップグレードを実行する方法について説明します。

ブート・カーネルの概要
ブート・カーネルは、特定のチェック（ユーザー・アプリケーションの CRC 整合性を含む）の実行後、ユーザー・アプリケーションに移行したり、SYS_BMODE0 ブート・ピン・モードによっては、リセット時に UART ダウンローダ・モードに移行し、フラッシュ・
メモリでユーザー・アプリケーションをアップグレードします。
ブート・カーネルは、UART ポート経由でユーザー・アプリケー
ションへのフィールド内アップデートをサポートしています。セキュリティ上の理由から、ブート・カーネル自体はフラッシュ・プログラムの機能を備えていません。ただし、ファームウェア・
アップデート・コードには、ユーザー・フラッシュをアップデー
トするためのフラッシュ・ドライバ・コードがあるので、UART
ポートからデバイスにダウンロードできます。このコードは SSL（Second Stage Loader）と呼ばれ、SRAM から実行できます。SSL
は、実行アクセスを提供する前に認証する必要があります。次のセクションでは、セキュリティ・スキームの実装について説明します。ユーザー・コードを読出し／書込み保護できる知的財産のセキュリティを実現し、セキュリティ環境を提供するカーネルの重要な部分について説明します。

Rev. 0

ブート・カーネルでは、デバイスのセキュリティ・オプションを柔軟に設定でき、ユーザー・フラッシュ・メモリの 0 ページで事前に定義されたロケーションにある特定のキーとパラメータをプ
ログラムできます。このカーネルは、ユーザー・コードのセキュ
リティと整合性を提供します。これは、ユーザー・フラッシュ・
メモリの最初のページにあるユーザー定義のパラメータによって決定されます。表 3 に、キーとパラメータのリストに加え、ユーザー・フラッシュ・メモリのロケーションを示します。
表 3. キーとパラメータのリスト
Address Range
0x0000_0180 to
0x0000_018F
0x0000_0190 to
0x0000_0193
0x0000_0194 to
0x0000_0197

Size
128 bits(16 bytes)
32 bits(4 bytes)
32 bits(4 bytes)

0x0000_0198 to
0x0000_019B
0x0000_019C to
0x0000_019F

32-bitword
32-bitword

Description
Read protection key hash
CRC of read protection key hash
Length of user boot loader or entire
user code (used for CRC verification
before boot)In-circuit write protection if set to
NOWR
CPU write protection of individual
flash blocks

保護キー・ハッシュの読出しユーザー・フラッシュ・メモリの最初のページにあるアドレス
0x00000180 で 128 ビットの読出し保護キー・ハッシュをプログラムします。このハッシュの値は、システム内で希望するセキュ
リティの種類によって異なります。このセキュリティは、デバイスへの読出しアクセスを定義するからです。キー・ハッシュは、
シリアル・ワイヤ・デバッガ（SWD）の状態だけでなく、UART
経由でアップグレードするためにダウンロードされる SSL のア
クセス権限を定義します。
•••－ 17/48 －すべてのロジック・ハイ・メモリ・セルのフラッシュ・メ
モリ（有効なキー・ハッシュ CRC）がリセット状態の場合
は、ユーザーが読出し保護を必要としないことを示します。
この場合、SWD インタフェースは、ブート中に自動的にイネーブルになります。
リセット以外の値は SWD をロックするので、SWD はデバ
イスにアクセスできません。
キー・ハッシュは 128 ビットの切り詰められたユーザー・
キー（128 ビット長）のセキュア・ハッシュ・アルゴリズム（SHA-256）で、UART ダウンロード・フェーズ中に SSL と一緒に送信できます。ユーザー・キーが有効で、受信したキーのハッシュが保存されたキー・ハッシュに一致する場
合、SSL はすべての権限で実行されます。ユーザー・キーがキー・ハッシュ・チェックに失敗した場合、SSL のみがユー
ザー・フラッシュへの書込み権限を持ちます。

UG-1091

ユーザー・ガイドキー・ハッシュ CRC

ユーザー・コード CRC

キー・ハッシュには、アドレス 0x00000190 に保存された 32 ビットの CRC チェックサムがあります。関連付けられた 4 バイトのチェックサムが有効な場合のみ、キー・ハッシュは有効です。キー・
ハッシュには、フラッシュの改ざん攻撃から保護する別のキー・ハッシュがあります。実用上の理由から、キー・ハッシュの有効な CRC をキー・ハッシュ自体と一緒に保存する必要があります。

ユーザー・コード CRC は、
N ページの末尾に保存されます。
32 ビッ
ト CRC（MSB ファースト）と 0x4C11DB7 の多項式がカーネルで生成されます。ページ番号が N の場合、CRC はフラッシュ・
メモリ・アドレス（N × 0x800） + 0x7FC に配置されます。例えば、N = 5 の場合は合計 6 ページの CRC が保護され、CRC はア
ドレス 0x2FFC に保存されます。予想される CRC ロケーションに 0xFFFFFFFF をプログラミングして CRC チェックを無効にす
るオプションがあります。カーネルが CRC ロケーションでこの値を発見すると、CRC チェックをスキップします。

回路内書込み保護キー
ユーザー・フラッシュ・メモリのアドレス 0x00000198 にある 32
ビット回路内書込み保護キーは、デバイスの回路内プログラミン
グを防止します。回路内再プログラミングを無効にするには、
NoWr ASCII 文字列（null 文字で終了しない）の 16 進数をこのアドレスにプログラムします。この場合、デバイスへの SWD アク
セスはロックされるので、UART ダウンローダを経由するのがデバイス・コードをアップデートする唯一の方法です。
回路内書込み保護と読出し保護（読出しと書込み両方の保護を提供）を使用します。
回路内書込み保護だけでは、意味がありません。

書込み保護
コードが誤って重要なフラッシュ・メモリ・ブロック（ユーザー・
コード・ブート・ローダなど）を消去したり、再プログラミングしたりすることを防ぐため、ページをロックできます。
フラッシュ・
コントローラには、ブロックにグループ化されたページのプログ
ラムを無効にするハードウェア・レジスタがあります。このレジ
スタは、ハードウェアから自動的にロードされるのではなく、カーネルから書き込まれます。カーネルが、ユーザー・フラッシュ・アドレス 0x0000019C から書込み保護ワードを読み出し、フラッシュ・コントローラの書込み保護レジスタに書き込みます。誤った書込みから保護されるページに応じて、このロケーションに対して適切なワードの書出しを実行できます。このページは 4 つのグループで保護され、32 ビット・ワード内の各ビットは 4 つの連続したフラッシュ・ページに対応します。詳細については、
ADuCM302x Ultra Low Power ARM Cortex-M3 MCU with Integrated
Power Management Hardware Reference Manual を参照してください。

ユーザー・コード長
フラッシュ・メモリ・アドレス 0x00000194 に 32 ビットの値が保存されていますが、これは CRC 保護されたユーザー・コード長を定義します。このフィールドでプログラムされた値は、CRC 保護が望まれるユーザー・フラッシュ・メモリのページ数を定義します。フラッシュ・メモリの 0 ページ～ N ページまで CRC 保護が必要になり、合計 N + 1 ページが保護されます。
アドレス 0x00000194 のフィールドでの有効な値は、256 KB
ADuCM3029 プロセッサで 0 ～ 127、128 KB ADuCM3027 プロセッ
サで 0 ～ 63 です。この範囲外の値は無効と処理され、CRC チェックは失敗します。

Rev. 0

ブート・コード・フロー
ここでは、前に説明したユーザー・プログラマブル・パラメータに基づいて、カーネルが動作する方法について説明します。図 38に、ブート・コードのフローチャートを示します。
リセット後、ブート・カーネルは、ユーザー・フラッシュ・メモ
リの 0 ページに保存されたすべてのパラメータを検査します。
ユー
ザー読出し保護キー・ハッシュがプログラムされず（すべてが FFに設定される）、キー・ハッシュ CRC が有効な場合、ユーザー
は読出し保護を要求していません。SWD 自体は有効でも、ユーザー・コード CRC の状態によってフラッシュの読書きが保護される場合があります。
CRC が有効な場合、ユーザー・フラッシュ・メモリへの読書きは制限されません。
0xFFFFFFFF を CRC ロケーションにプログラムして CRC を無効にすると、ユーザ・フラッシュ・メモリへのアクセスも制限されません。
CRC が無効の場合、ユーザー・フラッシュ・メモリに対する読出し／書込みアクセスは許可されず、保護されます。フラッシュ
大容量消去コマンドのみが許可されます。この場合、ユーザー・
コードの実行は許可されません。
定 義 さ れ た CRC ロ ケ ー シ ョ ン で 有 効 な CRC （ ま た は0xFFFFFFFF）をプログラムする場合は慎重に行ってください。
そうしないと、ユーザー・フラッシュ・メモリの読み出しはカーネルによって保護されます。この場合、フラッシュ・ベースのア
プリケーションは、ユーザー・フラッシュ・メモリが大容量消去されるまでロードできません。
ユーザー読出し保護キー・ハッシュがノンリセット値でプログラムされている場合、つまり、読出し保護が有効であるか、キー・ハッシュ CRC が無効である場合、SWD はカーネルによって無効化され、デバイスへの SWD アクセスは不可能になります。製品
開発の完了後にフィールドでの SWD アクセスが不要になった場
合のみ、このプログラムを実行します。ただし、読出し保護を有効にすると、CRC 保護が有効で CRC が破損している場合に限り
SWD がオープンになるので、CRC が誤って破損した場合にデバイスを修復できます。この場合、SWD はオープンになりますが、
ユーザー・フラッシュ・メモリは読出し、書込み、またはページ
消去のアクセスなしで保護されます（デバイスの回復は可能です
が、ユーザー・コードの機密性は保持されます）。ただし、大容量消去が引き続き可能なので、ユーザー・フラッシュ・メモリは
ここでもオープンになります（読出し／書込みアクセス）。

－ 18/48 －UG-1091

ユーザー・ガイド

デバイスが SWD 経由でプログラムされると、ユーザ・フラッシュ・
メモリはブランクでなくなり、カーネルは SYS_BMODE0 ピンの状態を利用してユーザー・コードを実行するべきか（前に説明したすべてのチェックの実行後）、またはブート・カーネルは UART
ダウンローダー・モードに移行する必要があるか判断します。

ユーザー・フラッシュ・メモリ（ユーザー・スペース）は、出荷
時は完全にブランクです。そのため、セキュリティ・キーとパラ
メータのいずれもプログラムされていません。そのため、キー・ハッシュ CRC などの大部分のパラメータや、ユーザー・コード
長は無効な値になり、パラメータはすべて 0xFF に設定されます。
この場合、カーネルはユーザー・フラッシュ・メモリのチェックを実行し、ブランクであるか、完全にプログラムされていないか識別します。ユーザー・フラッシュがブランクの場合、カーネルは
すべてのチェックをスキップし、SWD をオープンにします。開発のために SWD を介してデバイスに接続できるよう SWD をオープンにする他、ブート・カーネルは UART ダウンローダ・モードに移行して、SSL の受信を待機します。

SYS_BMODE0 ピンがアサートされている（ロー）の場合、カー
ネルは UART ダウンローダに移行し、SSL のダウンロードを待機します。
ISYS_BMODE0 ピンがアサート解除されている（ハイ）の場合、カーネルはすべてのセキュリティ・チェックを実行した後にユー
ザー・フラッシュ・メモリにあるユーザー・リセット・ベクトルにジャンプします。
SYS_BMODE0 ピンのサンプリングなしでカーネルが UART ダウン
ロード・モードに移行するのは、ユーザー・フラッシュ・メモリ
がブランクの場合のみです。

ADI
BOOT LOADER
ENTRY

POINT VTORTO INFO AREA AND
REMAP FLASHKEY HASH
ALL ONES AND
HASH CRC
VALID?

YES

ENABLESWD

YES

ENTER UARTDOWNLOADER

READ PROTECTIONNOT ENABLED

NO

BOOT PINASSERTED?
NONO

CRC LENGTHVALID?

USER FLASHENTIRELYBLANK?
NO

YES

YES

CRC ALL ONES?

ENABLE SERIAL WIRETO PERMIT CUSTOMERTO RECOVER BAD CRC

NO
SKIP
CRC CHECKBLANK DUT, TYPICALDEVELOPMENT/MANUFACTURE

YES

USER
BOOT BLOCKCHECKSUM
VALID?

NO

YES
BOOT USER CODEBAD CRC
OR LEN

IN-CIRCUITWRITE PROTECTENABLED?
NO SWD ACCESSIF ICWP ISYESENABLEDNO

READ PROTECTUSER FLASHENTER UARTDOWNLOADERLOAD FLASHWRITE PROTECTENABLESWD

ENABLE
SWD

WAIT FORSWD CONNECTION

15388-602

POINT VTORTO USER AREAEXECUTEUSER CODE

図 38. ブート・カーネルのフローチャート

Rev. 0－ 19/48 －UG-1091

ユーザー・ガイド
UART ダウンローダ

UART 経由でダウンロードされた SSL コードは、SRAM にマップする必要があります。UART ダウンローダ・モードでは、SSL がSRAM にロードされ、フラッシュ・プログラム機能を実行します。
カーネルは SSL を認証し、認証が成功した場合のみ実行を許可します。このコードは、ユーザー・フラッシュ・メモリの実際のファームウェア（ユーザー・アプリケーションなど）のダウンロー
ドとアップグレードを実行します。カーネルは、ユーザー・フラッ
シュ・メモリへの直接アップデートをサポートしていません。このようなアクションを実行するには、SSL が必要です。

SYS_BMODE0 ピン（GPIO17）がローの場合、ADuCM3027/
ADuCM3029 プロセッサは UART ダウンローダ・モードに移行します。パワーオンまたはハード・リセット時に、デバイスが条件を検出すると、シリアル・ダウンロード・モードに移行します。このモードでは、カーネル内のオンチップ・ローダ・ルーチンが開始され、デバイスの UART ポートを構成し、特定のシリアル・
ダウンロード・プロトコルを介してホストと通信することで、ファー
ムウェアのアップグレード・プロセスを管理します。図 39 に、
UART ダウンローダのフローを示します。

カーネルは特定のプロトコルに従い、プロセッサに SSL をダウンロードします。
これは送信元のホストに従う必要があります。
SSL
がカーネルと同じパケット・プロトコルに従う場合、ホスト・イン
ターフェースは簡略化されます（カーネルや SSL との通信が同型であるなど）。プロトコルの詳細については、次のセクションで説明します。

UART
DOWNLOADEREMPTY‘\r’ OR ‘\n’?

YESNOWAIT FORAUTOBAUD CHARACTERINFOCOMMAND?
CONFIGURE UARTSENDPART NUMBER,SERIAL NUMBER,
KEY_HASH,
USER CODE STATUSNOGET COMMAND

ERROR
DETECTED?
(UART BREAKOR FRAMING)YES

DOWNLOAD
COMMAND?

NOSEND NAK(INVALID
COMMAND)NOSEND NAK(INVALID
COMMAND)YESYESWAIT FOR START(UART RE-AUTOBAUD)DOWNLOAD
CODE TO SRAMNO
PROCESS RX
COMMANDRUNCOMMAND?
YESPERMISSIONVALID?

NOIS ICWPENABLED?

YES

SEND NAKNOREAD PROTECTUSER FLASHEXECUTE CODEIN SRAM

図 39. UART ダウンローダのフローチャート

Rev. 0－ 20/48 －GETCOMMAND

15388-603

EXECUTE CODEIN SRAMUNRESTRICTED

UG-1091

ユーザー・ガイド
プロトコル

パケット開始 ID フィールド、ID0 および ID1

SYS_BMODE0 ピンをアサートすることでシリアル・ダウンロー
ダがトリガされた後に、カーネルはホストからキャリッジ・リターン
文字（ASCII 0x0D 文字、図 40 を参照）が送信されるまで待機し、UART オートボー・プロセスを開始します。

最初の転送フィールドは、2 バイトのパケット開始 ID フィールド（ID0 および ID1）で、2 つの開始文字（ID0 では 0x07 およびID1 では 0x0E）で構成されます。これらのバイトは定数で、ローダーが有効なデータ・パケットの開始を検出するために使用されます。

カーネルは UART オートボー機能を使用して、ホストのボーレートを検出した後、ホストのボーレートで、パリティなしの 8 デー
タ・ビットで UART ポートを送信または受信に構成します。
6.5 MHz のリセット・ペリフェラル・クロック（PCLK）によって、UART は最大 230,400 bps のボーレートをサポートするようにカーネルで構成できます。この値よりもボーレートが高くなるとエラーが増え、データ転送の信頼性が低くなります。ただし、SSL のロード後は、SSL が PCLK を増加させ（最大 26 MHz）、
UART から 2 番目のオートボー検出を実行する場合は、ボーレー
トが高くなります。

データ・バイト・フィールドの数
次の転送フィールドは、データ・バイト・フィールドの合計数です。1 バイトのコマンド（CMD）、4 バイトのアドレス（値）、
残りのペイロード（データ）が含まれます。データ・バイトの最低数は 5 で、コマンドとアドレスのみに対応します。データ・バ
イトの最大数は 255 で、コマンド、アドレス、最大 250 バイトのデータをサポートします。

コマンド機能フィールド（CMD）、データ・バイト 1

オートボー文字の受信後、カーネルは必要なクロック分周器の値を計算して UART を構成します。この時点で、カーネルは 57 バ
イトの ID データ・パケットの一部としてデバイス情報を送信し（表 4 を参照）、オートボー検出プロセスが成功したことを通知します。

コマンド機能フィールドは、データ・パケットの機能について説明します。これらのコマンドはカーネルでサポートされ、ASCII
形式で表現されます。
•••

パケット構造W（0x57）- 書込みコマンド
R（0x52）- 実行コマンド
I（0x45）- 情報コマンド

オートボーのアクノレッジには、プロセッサ通信の準備が整ったことをホストに通知することに加えて、デバイスに関する情報、
ユーザー・フラッシュ・メモリの状態、セキュリティの制限も含まれます。オートボーアクノレッジの後に、データ転送自体は、
データ転送パケット形式によって管理されるように開始できます（表 5 参照）。
CR = ‘\r’ = 0x0D
D0

D1

D2

D3

D4

D5

D6

D7

STOP
15388-604

START

8-BIT MEASUREMENT TIME

図 40. オートボー文字
表 4. 自動ボー応答
Bytes
1 to 15
16 to 18
19
20
21
22
23
24 to 55
56
57

Contents
Product identifier: ADuCM302xand six spaces, where x = 7 or 9
Hardware and firmware version numbers
User code blank; x means the code to execute, and a dash (-) means the user code is blank
User code checksum; P means that the checksum passed, and F means that the checksum failed
Write protection enabled; W means that write protection is disabled, and a dash (-) means that the write protection is enabled
Read protection enabled; R means that read protection is disabled, and a dash (-) means that read protection is enabledSpace
128-bit serial number, as a 32-digit uppercase hexadecimal number (for example, 0123456789ABCDEF0123456789ABCDEF)
Line feed
Carriage return

表 5. UART パケット構造
ID0
0x07

Rev. 0ID1
0x0E

Number of Data Bytes
5 to 255

CMD
W, R, or I

－ 21/48 －Valueh, u, m, l

Data
xx

ChecksumCSUG-1091

ユーザー・ガイド
書込みコマンド

実行コマンド表 6 に示す書込みコマンド・パケットには、データ・バイトの数（5 + n、n はバイト単位のペイロードのサイズ）、書込みコマン
ド（W）、32 ビットの開始アドレス、ペイロード内の n データ・バイトが含まれます。

ホストは、すべてのデータ・パケットをカーネルに転送した後に、カーネルにコードの実行を開始するように命令する最終的なパケットを転送できます。最終的なパケットは、実行コマンド・パケッ
トを送信して実行されます。これは、実行コマンド（R）と実行を開始する 32 ビットのアドレスで構成されます（表 7 を参照）。

カーネルが書込みコマンド・パケットを受信すると、その後ペイロード・バイトは到着時に SRAM に配置され、開始アドレスから開始されます。チェックサムが正しくない場合または受信アドレスが範囲外である場合、カーネルはノー・アクノレッジ・コマン
ドを送信します。ホストがローダからノー・アクノレッジを受信した場合は、ダウンロード・プロセスをアボートし、再起動します。

カーネルが実行コマンド・パケットを受信すると、承認チェックに合格した場合に限り、パケットで指定されたアドレスにジャンプします。

情報コマンドホストはいつでも 表 8 に示す情報コマンド・パケットを送信できます。このパケットは、コマンド（I）と 32 ビット・アドレスで構成されます。カーネルで適切に受信されるには、パケットで値フィールドが必要ですが、値フィールドの内容は関連がありません。
カーネルが情報コマンド・パケットを受信すると、57 バイトの ID
パケットで応答します（表 9 を参照）。

表 6. 書込みコマンド・パケット
ID0
0x07

ID1
0x0E

Number of Data Bytes
5+nCMD
W (0x57)

Value
Start addressDatan bytes

ChecksumCS

CMD
R (0x52)

Value
Start address

ChecksumCS

CMD
I (0x52)

Value
0xXXXXXXXX

ChecksumCS

表 7. 実行コマンド・パケット
ID0
0x07

ID1
0x0E

Number of Data Bytes5

表 8. 情報コマンド・パケット
ID0
0x07

Rev. 0ID1
0x0E

Number of Data Bytes5－ 22/48 －UG-1091

ユーザー・ガイド
値フィールド（データ・バイト 2 ～ データ・バイト 5）
値フィールドには、h、u、m、ロケーションを含む 32 ビット・
アドレスが含まれます。MSB は h ロケーション（データ・バイ
ト 2）にあり、LSB は l ロケーション（データ・バイト 5）にあります。前に説明したように、•••

書込みコマンド・パケットでは、値フィールドはデータ・ペイロードの書込みを実行するメモリ内の開始アドレスを示します。
実行コマンド・パケットでは、値フィールドは SSL コードが開始する SRAM 内のアドレスを示します。
情報コマンド・パケットでは、値フィールドに意味はありません。

データ・フィールド
（データ・バイト 6 ～ データ・バイト 255）
ユーザー・コードは、1 度に 1 バイトずつダウンロードされ、デー
タ・フィールドには、最大 250 バイトを挿入できます。通常、デー
タは Intel® HEX 拡張 16 バイト・レコード形式から取り除かれ、
ホストによって再アセンブリされ、一連の書込みコマンド・パケッ
トを使用して、ADuCM3027/ADuCM3029 プロセッサに送信されます。

チェックサム・フィールド（CS）
データ・パケット・チェックサムは、チェックサム・フィールドに書込まれます。この 2 つの補数チェックサムは、バイト・フィー
ルドの番号からデータ・フィールドの最後までまたがる 16 進数の値の合計から計算されます。このため、データ・バイト・フィー
ルドの番号からチェックサム・フィールドを含むパケットのすべてのバイトの合計の 8 ビット LSB は 0 になります。

コマンドのアクノレッジ
ローダ・ルーチンは、受信した各データ・パケットに対して、負の応答のノー・アクノレッジ・コマンド（0x07）または正の応答のアクノレッジ（0x06）を発行します。
ローダは、次の条件を満たした場合にノー・アクノレッジを送信
します。
•
•

•

ローダが誤ったチェックサムを受信した。
UART フレーミングまたはブレーク・エラーが発生した（このエラーは、UART リンクが無効な場合にホストに到達しない場合があります）。
SRAM コードの検証に失敗した。

これらの条件のいずれかを満たした場合は、ターゲットをリセッ
トし、ファームウェアのアップグレード・プロセスを再起動する必要があります。これらの条件のいずれも満たさない場合は、アクノレッジ・コマンドが送信されます。

読出し保護キーとハッシュ
読出し保護キーを使用して、故障解析中にデバイスにアクセスできます。デバイスが読出し保護されている場合に、現在のフラッ
シュ・メモリの内容の故障分析が必要なときは、ユーザー・フラッ
シュ・メモリに保存されているハッシュに対応するキーを送信して SWD インターフェースを有効にできます。キーはデバイス専用にし、デバイス専用の ID（情報スペースに保存されているシ
リアル番号など）をベースにすることが推奨されます。

Rev. 0

ハッシュは、割込みベクトルの後のユーザー・フラッシュ・メモ
リに保存されます。これは、秘密のカスタム・キーのハッシュです。セキュリティ上の理由から、このキーはデバイス専用にし、キーのロック解除が特定のデバイス 1 台に対して有効になることを強く推奨します。デバイスのキーをユニークに維持するには、どのキーが特定のデバイスに属するか関連付けるデバイス ID が必要です。簡単なキー管理では、キーをマスター・シークレットのハッシュとデバイス ID にすることをお勧めします。例えば読出し保護キー = ハッシュ（マスター・シークレット || ユ
ニークなデバイス ID）
キー・ハッシュ = ハッシュ （読出し保護キー）
カーネルが UART ローダ・モードの場合は、読出し保護キーを受信できます。
次に、ブート・ローダは読出し保護キーのハッシュを実行し、保存されているキー・ハッシュと比較します。マッチが成功したら、ブートローダはすべての権限を有効にして、SRAMにダウンロードされた SSL コードが実行されることを許可します。キー・ハッシュのチェックに失敗した場合、カーネルはユーザー・フラッシュ・メモリの ICWP キーをチェックします。ユー
ザーがアドレス 0x00000198 の値を NoWr ASCII 文字列の 16 進相
当以外の値にプログラムすることで ICWP がオフになっている場
合、SSL は、フラッシュの読出しおよび書込みアクセスの保護の後に実行を許可されます。この場合、SSL は最初にユーザー・フ
ラッシュ・メモリの大容量消去を発行してから、ユーザー・フラッ
シュ・メモリ・スペースへの読書きを試みます。ユーザーが ICWPも有効にしている場合、SSL はキー・ハッシュ認証が合格するまで実行を許可されません。
128 ビットの読出し保護キーが SRAM コードの一部として渡されます。このキーは、アドレス 0x20000180 で開始するデータ・ペイロードとしてビッグエンディアン形式で SRAM に保存する必要があり、カーネルによって正しく解析できるように、メモリ内
で特定の形式に一致させる必要があります。具体的には、読出し保護キーが ABCDEFGHIJKLMNOP として表現され、各文字が 1 バ
イトを表す場合（A が最初のバイトで P が最後のバイト）、メモ
リ内のバイトの必要な配置を 表 9 に示します。
表 9. SRAM の読出し保護
Address
0x20000180
0x20000184
0x20000188
0x2000018C

Byte 0D
H
L
P

Byte 1CGKO

Byte 2B
F
J
N

Byte 3
A
E
I
M

表 10 に、読出し保護キーが 0x00010203040506070-8090A0B0C0D0E0Fの場合のメモリの書込み方法を示します。
表 10. SRAM の読出し保護キーの例
Address
0x20000180
0x20000184
0x20000188
0x2000018C－ 23/48 －Byte 0
0x03
0x07
0x0B
0x0F

Byte 1
0x02
0x06
0x0A
0x0E

Byte 2
0x01
0x05
0x09
0x0D

Byte 3
0x00
0x04
0x08
0x0C

UG-1091

ユーザー・ガイド
カーネルは、このキーの SHA-256 ハッシュを計算し、128 ビット・
ハッシュに切り詰め、
アドレス 0x00000180 のユーザー・フラッシュ・メモリの 0 ページに保存されているハッシュと比較します。ユー
ザーは、同様のパターンを使用して、128 ビットに切り詰められたキーのハッシュを保存する必要があります。表 10 に示すサンプルのキーの SHA-256 ハッシュは、0xBE45CB2605BF36BEBDE684841A28F0FD43C69850A3DCE5FEDBA69928EE3A8991 です。つまり、ユーザー・フラッシュ・メモリ・スペースに適切に保存する必要がある 128 ビットの切り詰められたハッシュは、表 11 に示すように配置された 0x43C69850A3DCE-5FEDBA69928EE3A8991です。

キー・ハッシュの CRC32 は、0x04C11DB7 の多項式と 0xFFFFFFFFのシード値で計算され、アドレス 0x00000190 のフラッシュ・メ
モリ・スペースに LSB 形式で保存されます。

メモリ構成
表 12 に、ユーザー・フラッシュ・メモリの 0 ページに保存されている各キーとパラメータ、関連付けられたアドレス、プロジェ
クトをデフォルトのスタートアップ・ファイルで作成する場合の 0
ページにプログラムされる値を示します。

表 11. フラッシュ・メモリの読出し保護キー・ハッシュの例
Address
0x00000180
0x00000184
0x00000188
0x0000018C

Byte 0
0x50
0xFE
0x28
0x91

Byte 1
0x98
0xE5
0x99
0x89

Byte 2
0xC6
0xDC
0xA6
0x3A

Byte 3
0x00
0xA3
0xDB
0xEE

表 12. 0 ページのメモリ構成
Address Range
Start Address End Address
0x0000_0000
0x0000_017F
0x0000_0180
0x0000_018F

Size(Bytes)384
16Section Name
.intvec
ReadProtection KeyHash

CRC of Read Protection Key
Number of Pages the CRC
Computes
Checksum

0x0000_0190
0x0000_0194

0x0000_0193
0x0000_0197

4
4

CRC_ReadProtection KeyHash
NumCRCPages

0x0000_07FC

0x0000_07FF

4

ChecksumPage 0 User Memory

0x0000_01A0

0x0000_07FC

1628

Page0_region

Content
Vector Table
Read Protection Key HashRev. 0－ 24/48 －Default Content
Vector table
0xFFFFFFFF
0xFFFFFFFF
0xFFFFFFFF
0xFFFFFFFF
0xA79C3203
0
Checksum of 0 to 0x7FB (if enabled intools by the user)
User application

UG-1091

ユーザー・ガイド
IAR ワークベンチの CRC の処理
アプリケーション・イメージの部分から、フラッシュ・メモリの最初の複数のページにロードする CRC を計算します。CRC 計算に関連する最後のページ番号を 32 ビット整数としてアドレス
0x194 に保存します。例えば、0 ページだけが CRC 計算に関連する場合、アドレス 0x194 に値 0x00 を保存します。最初の 3 ページに対して CRC が計算される場合、値を 0x02 にする必要があります。

標準の CRC 計算は、CRC32 と 0x04C11DB7 の多項式で、初期値0xFFFFFFFF で MSB ファースト形式で保存されます。単位サイ
ズは 32 ビットなので、ツールは CRC の計算時にイメージから一度に 32 ビットを読み出す必要があります。

［Checksum］タブ
IAR ツールの［Linker］カテゴリにある［Checksum］タブを使用して、ユーザー・アプリケーション・コードの CRC を生成できます。正しい CRC を保存するには、次の設定を使用する必要があります（図 41 を参照）。
•
•
•
•
•
•
•
•

［Fill unused code memory］ボックスをオンにします。
［End address:］フィールドを 0x7FB に設定します（この値は、ページ番号に応じて変更します）。
［Generate checksum］ボックスをオンにします。
［Checksum size:］プルダウン・メニューから［4 bytes］オ
プションを選択します。
［Alignment:］フィールドを 4（4 バイトを示す）に設定します。
［Algorithm:］プルダウン・メニューから［CRC32］オプ
ションを選択します。
［Initial value］フィールドを 0xFFFFFFFF に設定し、［Use as
input］ボックスがオンになっていることを確認します。
［Checksum unit size:］プルダウン・メニューから［32-bit］
オプションを選択します。

Rev. 015388-609

CRC の計算では、計算に含まれる最後のページの最後の 4 バイ
トは除外されます。これらの 4 バイトは、CRC 値自体を保存するために使用されます。
例えば、最後のページが 0 ページの場合、CRC はアドレス 0x000 からアドレス 0x7FB まで計算されます。
ツールは、計算された CRC 値をアドレス 0x7FC に 32 ビット整数として保存します。

図 41. チェックサムの設定

CCSFP
CrossCore® Serial Flash Programmer（CCSFP）は、アナログ・デバ
イセズが提供する PC ベースのホスト・ユーティリティです。
UART
ポート経由で、ユーザー・コードをアップグレードできます。
CCSFPのグラフィカル・ユーザー・インターフェース
（GUI）
には、
UART をアップグレードするための次のオプションがあります。
•
•
•
•
•
•

ターゲット・プロセッサ
UART PC ポート番号
ボー・レート
アップグレードに使用する SSL 16 進数ファイル
アップグレードするユーザー・アプリケーションの 16 進数
ファイル
SSL へのキー認証［Second stage kernel］フィー
図 42 に、CCSFP の GUI を示します。
ルドで SSL を指定する必要があります。これはプロセッサの SRAMにダウンロードされ、実行されてから、認証に基づいて［File todownload］フィールドにあるユーザー・アプリケーションがフ
［Key］
フィー
ラッシュに送信されます。
認証の 128 ビットキーは、ルドに入力できます。

－ 25/48 －UG-1091

ユーザー・ガイド

15388-610

図 43 に、デバイス上の SSL の実行、ユーザー・アプリケーションの受信、ユーザー・フラッシュ・メモリ・スペースへの書込みを示します。

［Status］ウィンドウには、UART ダウンロード・プロセスの状態、デバイス関連情報、カーネルに返されるコマンドのステータスがあります。図 42 に示すように、［Status］ウィンドウには、カーネルが送信したデバイス情報が表示され、製品 ID、シリアル番
号、ユーザー・コード・ステータスが表示されます。SSL がダウンロードされたら、［Status］ウィンドウに表示される［Download
completed］メッセージに示すように、SSL がカーネルによって認証され、実際のユーザー・アプリケーションが送信されます。

Rev. 015388-611

図 42. CrossCore シリアル･フラッシュ・プログラマ GUI

図 43. CCSFP 経由で SSL によってユーザー・フラッシュ・メモ
リに書込まれているユーザー・アプリケーション・コード－ 26/48 －UG-1091

ユーザー・ガイド
ADUCM3027/ADUCM3029 のキャッシュ・メモリ

ADuCM3027/ADuCM3029 のメモリは、ECC 内の最大 256 KB の内蔵フラッシュ・メモリ、
32 KB のパリティ付きデータ・スタティッ
ク・ランダム・アクセス・メモリ（SRAM）、32 KB のパリティ付きユーザー構成可能な命令／データ SRAM です。4 キロバイトの SRAM をキャッシュ・メモリに使用して、フラッシュ・メモ
リへのアクセスを減らすことで、有効電力の消費を削減できます。

ADuCM3027/ADuCM3029 のキャッシュは、命令コード（ICODE）とデータ・コード（DCODE）の読書き用の下位の電力キャッシュ・
コントローラ、双方向結合の 4 KB の命令キャッシュ、256 ビットのライン・サイズです。命令キャッシュには、最も長い間使われていないものが置換されるポリシーがあります。キャッシュがフラッシュへの書込みを実行すると、コアはフラッシュ・コント
ローラの APB（アドバンスト・ペリフェラル・バス）インター
フェースからのみフラッシュへの書込みを発行できます。コアがフラッシュに配置されている場合、キャッシュを有効にすると、実行速度を上昇できます。詳細については、キャッシュが実行速度に与える影響のセクションを参照してください。消費電流の詳細については、消費電流の比較のセクションを参照してください。

フラッシュ・コントローラ
フラッシュ・コントローラは、2 つの AMBA AHB（アドバンス
ト・マイクロコントローラ・バス・アーキテクチャ、高性能バス）
ポートを備えたキャッシュ・コントローラ・モジュールと組み合わせます。一方のポートはデータの読出し用（DCODE）で、他方のポートは命令の読出し用（ICODE）です。フラッシュ・コン
トローラは、ICODE と DCODE の同時読出しアクセスをサポートします。競合が発生した場合は、DCODE の優先度が高くなります。
フラッシュ・コントローラは、ICODE の読出し性能を最適化す
るため、プリフェッチ機構を実装しています。この機構は、ICODE
インターフェースの連続したアドレスの読出しを実行するときに最適な性能を発揮します。同時読出しは、ICODE 読出しがプリフェッチのバッファ済みデータを返す場合に可能です。
READ PATHAHB ICODEAHB DCODECACHECONTROLLERCUSTOM
INTERFACE

ここでは、オンボード・キャッシュ・コントローラを使用して、SRAM の一部をユーザー・コードの命令／データ・キャッシュとして使用する方法を説明します。これ以外の場合では、ユーザー・
コードはフラッシュ・メモリから実行されます。

FLASH
CONTROLLER

ブロック図WRITE PATH

FLASH

15388-702

APB

図 45. フラッシュ・コントローラとキャッシュ・コントローラ

キャッシュの効果

CACHE
SRAM

キャッシュが実行速度に与える影響

15388-701

MICROPROCESSOR

フラッシュ・メモリと SRAM メモリには、電力と性能について異なるプロファイルがあります。

図 44. ブロック図
ADuCM3027/ADuCM3029 キャッシュ・アーキテクチャは、デジ
タル・キャッシュ・コントローラ、システム SRAM の一部として実装されるキャッシュ・メモリ、デジタル・フラッシュ・コン
トローラ、フラッシュ・メモリで構成されます。キャッシュ・アー
キテクチャは、高速の SRAM メモリを使用することで命令とデー
タ・アクセスの平均遅延を減らし、比較的に消費電力が高いフラッシュ・メモリへのアクセスの頻度を減らします。
キャッシュを有効にしてフラッシュ・メモリからコードを実行すると、頻繁に使用される命令は SRAM の専用領域に自動的にキャッシュされます。ロック機能と制御機能が提供されますが、大部分のアプリケーションでユーザーの作業は不要です。

Rev. 0キャッシュ・アーキテクチャは、実行中にユーザー・コードの一部を SRAM にコピーするので、命令とデータの読出しの遅延が短くなります。キャッシュ・メモリからの命令またはデータの読出しが成功する度に、全体的なシステム性能が向上します。
キャッシュとフラッシュを組み合わせて使用する場合、速度の増
加はコードのタイプに依存します。一般に、実際のコードを観察すると、キャッシュに完全に収まるループ・コードでは、読書き
速度はフラッシュだけを使用する場合よりも 15 % ～ 20 % 速くなります。キャッシュに収まらない線形コードでは、読書き速度
は 10 % ～ 15 % 向上します。
通常、キャッシュを使用すると、実行速度は向上しますが、向上の度合いは使用するコードのタイプによって異なります。コードに、キャッシュに完全に収まるループがある場合は、命令アクセスの大部分は、高速の SRAM から実行されるため、実行速度は大幅に向上します。一般に、コードが線形であったり、セグメン
ト間のジャンプ幅が大きすぎてキャッシュに収まらない場合、命令アクセスの大部分は、速度の遅いフラッシュ・メモリから実行されるため、実行速度は大幅には向上しません。

－ 27/48 －UG-1091

ユーザー・ガイド
各キャッシュ・ミスは、フラッシュ・メモリ 64 ビットの呼び出しで構成されるキャッシュ・ライン・フィルになります。
キャッシュをイネーブルまたはディスエーブルにするには、次の指示に従います。
1.

2.

命令キャッシュ（ICACHE）は、デフォルトではディスエー
ブルです。
ICACHE をイネーブルにするか、切り替えるには、
0xF123F456 キーを CACHEKEY レジスタに書込む必要があります。
ここでは CACHESETUP レジスタの詳細を示します。

3.

4.

5.

キャッシュ・キー・レジスタ

キャッシュ・セットアップ・レジスタ

Rev. 0－ 28/48 －ICACHE をイネーブルにするには、CACHESETUP レジスタの ICacheEnable_mmr ビットをセットします。
ICACHE をディスエーブルするには、このビットをクリアします。
ICacheLock_mmr ビットを使用すれば、今後のミスでキャッシュが置き換えられないようにキャッシュをロックできます。この機能は、ループがキャッシュのサイズよりも大きな場合に役立ち、適切なロックを配置することで電力を節約できます。
ICACHE の内容をロックするには、CACHESETUP レジスタの ICacheLock_mmr ビットをセットします。
CACHESETUP レ
ジスタの ICacheLock_mmr ビットをクリアしてキャッシュのロックを解除します。

ユーザー・ガイド

UG-1091

キャッシュが電流に与える影響

キャッシュの使用量は、消費電流からも推測できます。キャッシュとフラッシュを使用した消費電流が SRAM を使用した消費電流に近い場合は、キャッシュのヒット率が高いと推測されます。
キャッシュとフラッシュを使用した消費電流がフラッシュを使用した消費電流に近い場合は、キャッシュのヒット率が低いと推測されます。

SRAM のアクセスで消費される電流は、フラッシュのアクセスで消費される電流よりも少なくなります。そのため、フラッシュ・メモリからのコード実行中にキャッシュがイネーブルな場合、消費電流の値は、フラッシュから直接コードを実行する場合と SRAM
から直接コードを実行する場合の間に収まります。ここでは、各キャッシュへのアクセスがミスしないことを前提にしています。
この場合、電流はフラッシュのみから実行する場合よりも高くな
ります。キャッシュ・ライン・フィルでは、フラッシュから直接実行する場合よりもフラッシュからの読出し回数が約 2 倍以上になります。この読出し速度は、同様に読出しを実行しているフラッシュのプリフェッチ・バッファでない場合の 4 倍になります。この場合、キャッシュがミスすると、読出しもミスします。

電流 SRAM ≤ 電流 CACHE
キャッシュを使用する場合は、消費電流は、キャッシュ・ミス率に比例します。この結果は、キャッシュ・ヒットごとのスカラ電流の削減に起因します。データまたはコードへのアクセスが高電流のフラッシュ・メモリではなく、低電力の SRAM から実行されるためです。そのため、多数の小さなループで構成されるコードは、線形コードや、大きすぎてキャッシュ・メモリに収まらないセグメントで構成されるコードよりも大きな影響を受けます。

消費電流の比較
ループ・コード（この例では素数コード）の場合、フラッシュとキャッシュを使用した消費電流（980 µA）は、SRAM の消費電流（950 µA）に非常に近いです。これは、キャッシュに収まるほど小さい多数のループでコードが構成されているからです。そのため、フラッシュへのアクセスは比較的頻度が少なく、大部分のコードは低消費電力キャッシュから実行されます。アクセスは最低限なので、SRAM を使用した場合の消費電流と比較すると、フラッシュとキャッシュを使用した場合の消費電流では、最低限の増加しか観察されません。
線形コード（この例では ULPBench コード）では、フラッシュとキャッシュを使用した場合の消費電流は、SRAM のみを使用した
場合の消費電流から逸脱しています。これは、ULPBench コード
がほぼ線形でキャッシュにうまく収まらないので、フラッシュ・
メモリへのアクセス回数が、フラッシュから直接実行する場合と同様の回数であるためです。キャッシュ・ミスが高くなるので、消費電流は大幅に逸脱します。

表 13. 消費電流の比較
Type of CodeLoop code (prime number)
Linear code (ULPBench)

Rev. 0SRAM (μA)
950
911

Flash (μA)
1280
1493

Flash and Cache (μA)
980
1083

－ 29/48 －Cache Misses (~12 sec of Execution)
24~800000

UG-1091

ユーザー・ガイド
ADUCM3027/ADUCM3029 のデュアル RTC 機能
多くのアプリケーションで、RTC はセンサー・データのタイム・スタンプに使用されます。RTC は、MCU がディープ・スリープ・
モードの場合でも実行される必要があります。
低消費電力 RTC は、
バッテリの寿命を長持ちさせるために必須です。

•

ADuCM3027/ADuCM3029 RTC の注目すべき機能には、次のものがあります。

•

デュアル RTC（RTC0 と RTC1）。両方の RTC は、ウェイク
アップ・タイマーとして使用できます。
SensorStrobe と入力キャプチャ機能。

•••

ここでは、必要な電力モードと機能によって、RTC0 と RTC1 のどちらを選択するかのガイドラインを提供します。

RTC 機能の比較
ADuCM3027/ADuCM3029 には、RTC0 と RTC1（別名 FLEX_RTC）の 2 つの RTC があります。表 14 に、RTC0 と RTC1 の違いを示します。

電力に関する考慮事項
表 15 に、さまざまな使用事例で RTC0 と RTC1 を使用する場合の消費電流を示します。次の 4 つのシナリオを考えましょう。
•

シナリオ 1.デバイスはアクティブ・モードと休止モードの間で切り替わり、アプリケーションでは高い精度が必要。
このシナリオでは、RTC0 または RTC1 を使用できますが、
RTC1 のほうが消費電力が少ないので、電力の観点から
RTC1 を推奨します。

シナリオ 2.デバイスはアクティブ・モードと休止モードの間で切り替わり、アプリケーションでは高い精度は不要。
このシナリオでは、RTC0 または RTC1 を使用できますが、
RTC1 のほうが消費電力が少ないので、電力の観点から
RTC1 を推奨します。
シナリオ 3.デバイスは、アクティブ・モードとシャットダ
ウン・モードの間で切り替わる。このシナリオでは、RTC0 のみを実行できます。
シナリオ 4.デバイスは、アクティブ・モード、シャットダ
ウン・モード、休止モードの間で切り替わる。RTC0 のみを使用できます。このシナリオでは、RTC1 はシャットダウン・
モードでアクティブでないからです。

スリープ電力モード（休止モードまたはシャットダウン・モード）の電流を測定するため、ADuCM3027/ADuCM3029 マイクロ・コン
トローラを低消費モードからウェイクアップして LED を切り替える RTC で構成される、基本的なプログラムが使用されました。

まとめ
シャットダウンモードを使用して RTC が必要なアプリケーション
では、RTC0 を使用します。
RTC1 は、アクティブ・モードや Flexi モードの他に、休止モー
ドのみを使用するアプリケーションで超低消費電力を可能にする機能が豊富な RTC です。RTC1 が適している代表的なアプリケー
ションは、ADuCM3027/ADuCM3029 マイクロコントローラが出力パルスを汎用入出力から外部センサーに送信するアプリケー
ションです。SensorStrobe 機構は、RTC1 でのみ使用できます。

表 14. RTC0 と RTC1 の差のまとめ
FeatureResolution of the Time Base
(Prescaling)
Wake-Up Timer
Number of Alarms
Power Domain
SensorStrobe and Input
Capture Features
Source Clock

RTC0
RTC0 counts time at 1 Hz in units of seconds
only
The wake-up time is specified in units ofseconds
1 alarm only, which uses an absolute,
nonrepeating alarm timePowered off VBAT domain and is always on;
RTC0 can function in all power modes
Not supported
Low frequency crystal (LFXTAL)

RTC1
RTC1 can prescale the clock by any power of 2 from 1 to 15, counting time inunits of any of these 15 possible prescale settings
The wake-up time can be specified in units of any power of 2 multiple of 30.7 µs
up to 1 second
2 alarms: one absolute alarm time and one periodic alarm, repeating every 60
prescaled time units
Powered off 1.2 V (VREG) domain; RTC1 can function in all power modes,
except shutdown mode
Supports four input capture channels and one SensorStrobe channel; refer to
AN-1427 for further information on these features
Depending on the low frequency multiplexer (LFMUX) configuration, the RTC
is clocked by LFXTAL or the low frequency oscillator (LFOSC)

表 15. 各使用事例での消費電力の比較
Scenario Number
1
2
3
4
1

1

Use Case
Active to hibernate
Active to hibernate
Active to shutdown
Active to hibernate

Recommended RTC
RTC1 (LFXTAL)
RTC1 (LFOSC)
RTC0 (LFXTAL)
RTC0 (LFXTAL)

デバイスは、この列のモードの間で切り替わります。

Rev. 0－ 30/48 －Sleep Mode Current (nA)
830
750
330
830

UG-1091

ユーザー・ガイド
ADUCM3027/ADUCM3029 DC/DC コンバータのメリット
ここでは、チャージ・ポンプ・コンバータとインダクタ・コンバー
タのメリットとデメリットについて説明します。頻繁に使用されるのは後者です。ここでは、このアーキテクチャがADuCM3027/ADuCM3029 マイクロコントローラで使用される理由を、価格、地域、使いやすさなどの多くの側面から説明します。
DC/DC コンバータは、ADuCM3027/ADuCM3029 マイクロコント
ローラなどの差動電圧領域を管理する必要がある設計において、重要な構成要素です。
ここでは、状況を理解できるように、DC/DC 変換の方法を簡単に説明します。ADuCM3027/ADuCM3029 では、チャージ・ポン
プ・コンバータを使用することが選択されていますが、これは他の構成と比較して利点があるためです。
ADuCM3027/ADuCM3029 が対象とする超低消費電力アプリケー
ションでは、容量性 DC/DC コンバータが誘導性変換ソリュー
ションの優れた代替品になります。
ここでは、詳細と例を示して、このチャージ・ポンプ・コンバー
タ・ソリューションの品質と利点を明らかにします。図 46 に、
ADuCM3027/ADuCM3029 マイクロコントローラの降圧イネーブ
ル設計を示します。ADuCM3027/ADuCM3029 は、チャージ・ポン
プ・コンバータを使用しています。チャージ・ポンプ・コンバー
タは、同様の特性を持つ市販のマイクロコントローラでは使用されません。このようなマイクロコントローラは、従来のインダク
タ・コンバータ・アーキテクチャを使用しています。
VDCDC_CAP1P

VBAT

VDCDC_CAP1N 0.1µF
BUCK(ENABLED)

DC/DC の基本

ADuCM3027/ADuCM3029 プロセッサは、
超低消費電力アプリケー
ションを対象にしています。このようなアプリケーションでは、
電力効率は大きな考慮事項の 1 つです。そのため、可能な限り効率よく電力を使用する必要がある設計では、DC/DC コンバータ
は設計に欠かせません。
DC/DC 電圧変換には、さまざまな方法があります。このような変換では、デバイスに給電するために DC 電圧のステップ・アッ
プとステップ・ダウンが行われます。

DC/DC 変換方法
システムのさまざまな電力領域を安定させるため、最もよく使用される方法は、スイッチング変換とリニア・レギュレーションです。設計またはアプリケーションの条件を最もよく満たす方法を選択してください。

リニア電圧レギュレータ
リニア電圧レギュレータは、可能な電圧を散逸する抵抗分周器のネットワークで構成されます。リニア電圧レギュレータは、使用と実装が簡単で低価格なため、広く使用されています。
超低消費電力アプリケーションにおいて、リニア電圧レギュレー
タはスイッチング・コンバータよりも効率が低くなります。リニ
ア電圧レギュレータでは、出力電流は入力電流とほぼ同じで、動作原理は余剰電圧を散逸するというものです。コンバータを切り替えると、同じアクションを効率的に実行できます。
ADP165/ADP166 デバイスは、超低静止電流、低ドロップアウト（LDO）、リニア電圧レギュレータです。グラウンド電流は、入出力電流の差を表します。図 47 に、ADP165/ADP166 グラウンド
電流と負荷電流（ILOAD）を表します。リニア電圧レギュレータ
では小さな差を示しています。

VDCDC_OUT
0.47µFVDCDC_CAP2PVDCDC_CAP2N 0.1µF

GROUND CURRENT (µA)

VLDO_OUT
0.47µF
15388-201

LDO

100

10

1

0.1
0.001

0.01

0.1

1
ILOAD (mA)

10

100

1000

15388-202

図 46.ADuCM3027/ADuCM3029 降圧イネーブル設計

図 47. ADP165/ADP166 グラウンド電流と負荷電流（ILOAD）

Rev. 0－ 31/48 －UG-1091

ユーザー・ガイド

リニア電圧レギュレータの効率 =1× 1× t× 100 % = 33 %1× 3 × t（2）

2 つのグラフで観察されるように、チャージ・ポンプ・コンバー
タは、出力負荷電流の出力形状により、インダクタ・コンバータ
よりも効率が低くなります。逆に、チャージ・ポンプ・コンバー
タは、低負荷電流アプリケーションに適切なソリューションです。
100

80

（3）

70

リニア電圧レギュレータの代わりにスイッチング・コンバータを使用すると、入力電流は式 4 に示すように 1/3 µA で 100 % の効率になり、最適な性能を発揮します。

効率 =1× 1× t1/ 3 × 3 × t

× 100 % = 100 %

40

10
0
0.001

0.01

0.1

1

IOUT (A)

図 48. ADP2503/ADP2504 効率と出力電流（IOUT）の関係
120
V+ = +6.5V

V+ = +5.5V

EFFICIENCY (%)

100

スイッチング・コンバータ
スイッチング・コンバータでは、スイッチに加え、インダクタやコンデンサなどの損失が少ない部品を使用して電圧を安定化させます。通常、これらの部品はスイッチング・トランジスタによって充電および放電されます。ここでは、チャージ・ポンプ・コン
バータとインダクタ・コンバータの 2 種類のスイッチング・コン
バータについて説明します。

チャージ・ポンプまたはスイッチド・キャパシタ・コンバータは、
誘導性コンバータに代わるものです。チャージ・ポンプ・プロセ
スは、スイッチを接続または切断することで、キャパシタの充電
および放電を実行します。このプロセスは、インダクタなしで実現するので、スペースとコストを節約できます。

50

20

従来、シンプルで低価格であることから、アナログ・デバイセズ
では、ADuCM3027/ADuCM3029 マイクロプロセッサ以前の設計においてリニア電圧レギュレータを使用していました。
現在では、リップル出力を安定させるために、チャージ・ポンプ・コンバー
タの出力にリニア電圧レギュレータを配置するのが一般的です。

インダクタ・コンバータは、マイクロコントローラの設計において高い効率で超低消費電力を実現するために最も一般的に使用されるコンバータです。この効率と幅広いゲイン範囲は、このアーキテクチャの魅力です。

60

30

（4）

一般に、スイッチング・コンバータは、リニア電圧レギュレータ
よりも効率的です。さらに、同じ変換を達成するために散逸が大きくなるので、リニア電圧レギュレータでは、効率の損失により温度が高くなります。さらに、リニア電圧レギュレータでは、温度を下げるために多大な投資が必要になります。

Rev. 0

VIN = 5.5V
VIN = 4.2V
VIN = 3.6V
VIN = 2.3V

9015388-203

× 100 %効率 =（1）

EFFICIENCY (%)× 100 %

効率 =ADP2503/ADP2504 は、安定化された出力電圧よりも大きい、小さい、または等しい入力電圧で動作させることができます。
ADM660/ADM8660 は、低出力電流（最大 50 mA）で 90 % を超える電流を実現できるチャージ・ポンプ電圧コンバータです。図
48 および 図 49 に、ADP2503/ADP2504 デバイスおよび ADM660/
ADM8660 デバイスの入力電圧と出力電流の効率を示します。

V+ = +4.5V

80
V+ = +3.5V

60
V+ = +1.5V

V+ = +2.5V

40

20

0

0

20

40

60

LOAD CURRENT (mA)

80

100

15388-204

ソリューションの電力効率を分析するため、典型的なリニア電圧
レギュレータに基づくアプリケーションを考えます。入力電圧が3 V 、出力電圧が 1 V、出力電流が 1 µA の場合は、入力電流は約1 µA です。このシナリオでは、効率は 33 % になります（式 3 を参照）。

図 49. ADM660/ADM8660 効率と出力電流（IOUT）の関係
ADuCM3027/ADuCM3029 マイクロコントローラには、チャージ・
ポンプ・コンバータ出力にリニア電圧レギュレータが接続されているので、デジタル・コアとメモリ電源を調整して安定化できます。さらに、デバイスには、リニア電圧レギュレータのみを使用
して、電圧を削減して調整するチャージ・ポンプ・コンバータのバイパス機能があります。この機能を使用して、従来のソリュー
ションを使用するか、効率を向上させ、電力を節約するために、
2 つの 0.1 µF キャパシタを追加してでもチャージ・ポンプ・ブロッ
クを使用するか選択できます。

－ 32/48 －UG-1091

ユーザー・ガイド
通常、インダクタ・コンバータでは、チャージ・ポンプ・コンバー
タの設計で不便なリニア電圧レギュレータを出力で使用する必要ありません。ただし、市場で入手できるマイクロコントローラの一部では、インダクタ・コンバータにリニア電圧レギュレータを含むインダクタ・コンバータ・ソリューションを使用しています。
このデメリットにもかかわらず、チャージ・ポンプ・コンバータには、検討に値する次のようなメリットがあります。
•
•
•
•
•
•

面積
厚み
価格
設計のシンプルさ
使いやすさ
電磁場干渉（EMI）

予想どおり、チャージ・ポンプ・コンバータは誘導性コンバータ
よりも採用する部品数が少なく、小さいので、このタイプのコン
バータの面積は小さくなります。インダクタ・コンバータは、チャージ・ポンプ・コンバータの 2 倍以上の面積を使用します。
インダクタ・コンバータ・ソリューションでは、全体の厚さはインダクタに依存します。インダクタ（0.55 mm）はキャパシタ（0.3 mm）
よりも厚いことが理由です。
インダクタの寸法はキャパシタの寸法よりも大きいので、インダクタは設計全体の面積を決定します。
顕微鏡で見ると、寸法の差が明らかになります。図 50 および 図
51 では、2.2 µH のインダクタと 0.1 µF のキャパシタの寸法を比較しています。

次のセクションでは、インダクタ・コンバータと比較したチャー
ジ・ポンプ・コンバータのメリットについて説明します。

キャパシタとインダクタ・コンバータの比較面積

ここでは、ADuCM3027/ADuCM3029 チャージ・ポンプ・コンバー
タを使用するために必要な部品を、市販されている超低消費電力
マイクロコントローラの他の同様なソリューションで使用されるインダクタ・コンバータと比較します。これらのアーキテクチャ
で必要な部品は、対応するデータシートに記載されています。
表 16 および 表 17 に示す 2 つの部品表は、チャージ・ポンプ・コン
バータでは、誘導性コンバータよりも面積が小さいことを示します。キャパシタの寸法（長さ × 幅 × 厚さ）は 0.6 mm × 0.3 mm ×
0.3 mm です。インダクタの寸法は 1 mm × 0.5 mm × 0.55 mm です。キャパシタもインダクタも、0603 パッケージに収納されています。

15388-205

チャージ・ポンプ・コンバータでは、DC/DC 電圧を実現するためのインダクタは不要ですが、インダクタ・コンバータでは、このタスクを実行するためにインダクタ、キャパシタ、抵抗などの部品が必要です。この事実により、回路基板（PCB）が小さくな
り、面積とコストを削減できます。

図 50. 0.1 µF のキャパシタ（下）と 2.2 µH のインダクタ（上）の長さの比較

表 16. ADuCM3027/ADuCM3029 のチャージ・ポンプ・コンバー
タ部品の面積Value (µF)
0.1
0.47

Quantity2
1

表 17. インダクタ・コンバータ部品の面積
Component
Capacitor
Inductor
Total

Rev. 0Value
1 µF
2.2 µH

Quantity222Area (mm )
0.36
0.18
0.52
2

Area (mm )
0.36
1
1.36

15388-206

Component
Capacitor
Capacitor
Total

図 51.0.1 µF のキャパシタ（右）と 2.2 µH のインダクタ（下）の幅の比較－ 33/48 －UG-1091

ユーザー・ガイド
価格
インダクタ・コンバータで作業する場合に考慮する問題には、部品の多さと、部品のコストがあります。キャパシタの容量は大きくなり、インダクタの価格は、キャパシタの価格よりも大幅に高くなります。
表 18 と表 19 に、ADuCM3027/ADuCM3029 ソリューションとイン
ダクタ・ベースのソリューションの価格を示します。
表 18. ADuCM3027/ADuCM3029 のチャージ・ポンプ・コンバー
タ部品の価格
Component
Capacitor
Capacitor
Total

Value (µF)
0.1
0.47

Quantity
2
1

Price ($)
0.10460.459
0.5636Value
1 µF
2.2 µH

Quantity22

インダクタ・ベースのソリューションは、パルス幅変調（PWM）を使用して、デューティ・サイクルを調整して適切なゲインを達成します。この安定化により、効率は高くなりますが、負荷が下がると効率も減少します。
PWM の最中はノイズの影響も表れます。
この結果、インダクタが高額になり、コストが増えます。
インダクタ・コンバータの設計で統合が必要な場合、
組み込みイン
ダクタが機能するには、高周波スイッチングが必要です。高周波スイッチングでは、消費電力が増え、効率が失われ、望ましくない結果が得られます。

電磁場干渉（EMI）

表 19. インダクタ・コンバータ部品の価格
Component
Capacitor
Inductor
Total

チャージ・ポンプ・コンバータを適切に構成すると、入出力電圧比（VIN/VOUT）に従ってゲインを変更できます。このプロセスでは、効率を向上させてインダクタ・コンバータと同じ性能を実現できます。

チャージ・ポンプ・コンバータは、
電磁場干渉の影響を受けません。
インダクタの磁気放射とは異なり、このような放射は懸念事項にはなりません。

Price ($)
1.068
0.538
1.606

両方の材料リストを検討すると、各部品の価格の差は約 1 ドルです。この差は小さいように見えますが、製品が多数になり、コストを乗算すると影響が大きくなり、価格の差は増大します。インダクタ内の設計では、部品が増えると関連する面積が広くなるからです。小さな PCB 設計が可能になれば、コストを減らすことができます。
価格は、市販されている最も安価で、小さな部品を基準にしています。このインダクタの品質が十分出ない場合、消費電力が増え、効率が低下します。そのため、安いインダクタを使用すると、設計者はインダクタベースの性能を利用できなくなります。逆に、この制約を避けることは、インダクタ・コンバータの価格がさらに上がることを意味します。
チャージ・ポンプ・コンバータと従来のインダクタ・ベースのソ
リューションを比較すると、面積と価格のメリットは明白です。

効率

EMI は、インダクタの使用時に悪影響を与えます。スイッチング・
インダクタが放射アンテナと同様に動作する場合は、特に悪影響が大きくなります。設計や基板のその他の部分で、予想外の干渉が発生する可能性があります。さらに、無線周波タスクが実行される場合は、感度の問題があります。
インダクタ・コンバータでは、効率を向上させるために負荷を抑える必要がある場合、PWM をパルス周波数変調（PFM）に置き換えます。PWM が実行されると、スイッチング・ノイズと出力電圧のリップルは、コンバータの出力電圧のシンプルなフィルタで簡単に向上します。ただし、PFM の手法では周波数帯が可変になり、フィルタの共振周波数が生成されることがあります。さらに、この広い周波数スペクトラムにより、
EMI が高くなります。

まとめ
インダクタ・コンバータは、超低消費電力アプリケーションを考えると、多くの意味で適切なソリューションではありません。
イン
ダクタ・コンバータは、負荷が減ると効率が下がり、面積が広く、部品が高額になり、コストも高くなることがあります。インダク
タの放射には、低負荷で EMI が発生するなどの問題があります。

面積を減らすと同時に、組み込みコンポーネントを採用して集積度を向上させることもできます。これは、インダクタではなく、
チャージ・ポンプ・コンバータの効率を高める場合に適したシナリオです。

表 20 に、3 種類の DC/DC コンバータのメリットとデメリットを示します。対象のアプリケーションに最適なタイプのコンバータを評価します。

チャージ・ポンプ・コンバータは、インダクタ・コンバータよりも効率が悪いとみなされます。これは、入力電圧と負荷が変化する場合に当てはまります。

結論を述べると、チャージ・ポンプ・コンバータは、超低消費電力アプリケーションにとって最適なソリューションです。他のソリューションでは、負荷が下がると効率が悪くなりますが、チャージ・ポンプ・コンバータでは、他の状況でも効率が向上します。

低負荷が管理される超低消費電力アプリケーションでチャージ・
ポンプ・コンバータを使用する場合、負荷の変動は問題ではありません。最適な効率で、低負荷電流を実現します。チャージ・ポン
プ・コンバータは、低負荷で適切な効率を発揮します。これは、
超低消費電力アプリケーションで統合を適用すると、簡単に実現できます。必要な負荷が小さくなると、チャージ・ポンプ・コン
バータで統合と効率が向上します。

Rev. 0－ 34/48 －UG-1091

ユーザー・ガイド
表 20. DC/DC コンバータの各タイプの比較
Type of Converter
LDO

Charge Pump

Inductive

Rev. 0

Advantages
SimpleLow cost
No inductor
No EMI
SimpleLow cost
No inductor
Cheaper than inductive
Low loads
Small area
More efficient than LDO
Low EMI
Most efficient (not in low loads)

Disadvantages
Less efficient than charge pumps and inductives

Less efficient than inductive at high loads
EMI (less than inductive)

EMI
Area
Cost
Poor efficiency at low loads
Complex design－ 35/48 －UG-1091

ユーザー・ガイド
UART ソフトウェア・フロー制御
Tx

Rx

Rx

GROUND

DEVICE B

GROUND

15388-301

DEVICE A

Tx

図 52. ソフトウェア・フロー制御のブロック図

UART フロー制御は、低速および高速のデバイスが、データを失うことなく UART を使用して通信するための方法です。2 つのユニットが UART 経由で通信できるケースを考えます。トランス
ミッタ Tx は、長いバイト・ストリームをレシーバー Rx に送信しています。Rx は Tx よりも低速のデバイスで、ある時点で Rx は転送されるデータ速度に対応できなくなります。そのため、Rx は受信できるようになるまで、データの一部または空のバッファを処理する必要があります。Rx は、データを受信する準備が整うまで転送を停止するよう Tx に命令します。この転送を待機する方法をフロー制御と呼びます。
フロー制御では、追加の信号情報をトランスミッタに通知して、転送を停止（一時停止）または開始（再開）します。従来の UART
ハードウェア・フロー制御では、送信リクエスト（RTS）と送信
クリア（CTS）の 2 つの信号が追加で必要でした。これらの信号のロジック・レベルは、トランスミッタがデータの送信を続行す
るか、または停止する必要があるか定義します。ソフトウェア・
フロー制御では、特殊文字を通常のデータ行で送信して転送を開
始または停止するので、使用する信号が少なくなります。
ここでは、
ADuCM3027/ADuCM3029 を使用した UART ソフトウェ
ア・フロー制御機構について説明します。

UART フロー制御
ハードウェア・フロー制御
ハードウェア・フロー制御機構は、帯域外信号を使用して、デー
タのフローを制御します。データ信号の他に、RTS と CTS の追加の信号が必要です。これらのフロー制御信号は、2 台のデバイ
ス間で交差結合します。1 台のデバイスの RTS がリモート・デバ
イスの CTS に接続されます。逆の場合も同様です。

各デバイスは、RTS を使用して新しいデータを受信する準備が整っているか信号で通知し、CTS 信号の読出しでデータを他方のデバ
イスに送信できるか確認します。デバイスでさらにデータを受信する準備が整っている場合、RTS はアサートされたままです。デバイスは、受信バッファがフルになると、RTS 信号をアサート解除します。
他方のデバイスは、フロー制御信号を遵守し、RTS 信号が再度アサートされるまで転送を一次停止する必要があります。

DEVICE A

Tx

Tx

Rx

Rx

CTS

CTS

RTS

RTS

GROUND

DEVICE B

GROUND

15388-302

フロー制御は、2 つのノード間のデータ転送を管理するプロセス
で、速度の速いトランスミッタが速度の遅いレシーバーに過剰な負荷をかけることを防ぎます。フロー制御は、レシーバーが転送速度を制御する機構を提供し、受信ノードが転送ノードからのデータの負荷を過剰に受けることを防ぎます。

図 53. ハードウェア・フロー制御
フロー制御は双方向なので、両方のデバイスが転送で停止を要求できることを意味します。一方のデバイスが転送の停止を絶対に要求しない場合は（例： デバイスが常に高速でデータを受信できる）、他方のデバイスの CTS 信号はアサートされたロジック・レベルに連結できます。このため、速度の速いデバイスの RTS ピン
でその他の機能を実行できます。

XON 信号および XOFF 信号を使用した
ソフトウェア・フロー制御
ソフトウェア・フロー制御では、追加の帯域外信号は不要です。
Rx、Tx、グラウンドの 3 つの信号だけが必要です。ソフトウェ
ア・フロー制御は、特殊な制御フロー文字を使用して実行できます。制御フロー文字は、通常の Tx 行および Rx 行で送信されます。これらの文字は、通常は ASCII コードで、具体的には転送を再開および中断する場合は、それぞれ XON（0x11）と XOFF（0x13）です。
デバイス A が XOFF をデバイス B に送信すると、デバイス B は、
デバイス A から XON 文字を受信するまでデバイス A への転送を中止します。データに XON／XOFF 文字が含まれる場合は、XON／
XOFF 文字の前にエスケープ文字を挿入します。このケースで使用されるエスケープ文字は、¥ と ASCII 値 92（0x5C）です。このエスケープ文字に遭遇すると、後続の文字は、フロー制御信号
ではなく、データ文字とみなされます。データ自体にエスケープ文字が含まれる場合は、データ内に存在する現在のエスケープ文
字の前に別のエスケープ文字を置きます。

Rev. 0－ 36/48 －UG-1091

ユーザー・ガイド
シーケンス図システムの説明

デバイス ADuCM3027/ADuCM3029 MCU とピアの間のデータ通
信を考えます。MCU が送信し、ピアが受信しています。ピアの
速度が MCU よりも遅い場合は、データ転送でピアが過剰な負担を受けます。
この段階では、ピアは XOFF 文字を送信して、データを再度処理できるようになるまで転送を一次停止します。MCU は、ピアから XON 文字を受信するまで待機します。データを受信する準備が整うと、ピアは XON 文字を送信して、転送を再開するよう MCUに命令します。この方法では、ソフトウェア・フロー制御を使用
すると、データが失われません。図 54 に、ここで説明した通信のシーケンス図を示します。

ADuCM3027/ADuCM3029 を使用した UART ソフトウェア・フロー
制御のデモは、EZ-Kit 評価キットを使用して実行されます。端末
プログラム（HyperTerminal など）を実行している PC は EZ-Kit
UART ポートに接続されます。

ADuCM3027/
ADuCM3029

15388-304

ピア・デバイスからのフロー制御の処理
ADuCM3027/ADuCM3029 BSP には、UART を含むすべてのペリ
フェラルのドライバが含まれます。UART ドライバ機能の他に、ソフトウェア・フロー制御機構が実装されています。

COLLECT DATADATATRANSMITTING
DATA

adi_uart_Write_fc 関数は、XOFF 文字と XON 文字を送信し、UART
割込みサービス・ルーチンは、PC から受信した XON 信号と XOFF
信号を処理します。

COLLECT DATADATACOLLECT DATA

adi_uart_Write_fc 関数
adi_uart_Write_fc 関数を使用して書込みが発行されると、グロー
バルな RECV_XON フラグがチェックされ、ピアがデータを受信できるかどうか認識されます。RECV_XON フラグが false の場合
は、XOFF 信号が受信され、ピアがデータを受信できないことを意味するので、失敗が返されます。IRECV_XON フラグが true の場合は、ピアでデータを受信する準備が整っています。
この場合、データが送信され、成功が返されます。

OVERWHELMEDBY DATASEND XOFF
XOFF

PAUSE
TRANSMISSIONREADY TOACCEPT DATAWAIT FORXON

XON

SEND XONRESUME
TRANSMISSIONDATACOLLECT DATATRANSMITTING
DATA

15388-303

ADuCM3027/
ADuCM3029

図 54. ソフトウェア・フロー制御のシーケンス図Rev. 0PC RUNNINGTERMINAL PROGRAM

UART

図 55. 接続図

PEER
DATA

ADuCM3027/
ADuCM3029

EZ-Kit－ 37/48 －UG-1091

ユーザー・ガイド
フロー制御コードの例
次のコードを使用して、フロー制御を使用したデータ転送を行います。

ADI_UART_RESULT adi_uart_Write_fc(

ADI_UART_HANDLE const hDevice, void *const pBuffer, uint32_t nBufSize){/* Return code */ADI_UART_RESULT eResult;/* If there is no XOFF received, safe to transmit data */if(RECV_XON == true)eResult = adi_uart_Write (hDevice, pBuffer, nBufSize);/* If XOFF is received, return fail */else

eResult = ADI_UART_FAILED;}

return eResult;Rev. 0－ 38/48 －UG-1091

ユーザー・ガイド
図 56 に、adi_uart_Write_fc 関数の設計を示します。書込みが発行されると、RECV_XON がチェックされ、フラグが true の場合は、書込みが処理されます。フラグが true でない場合は、失敗が返されます。図 56 の RECV_XON == TRUE ブロックは、RECV_XON
フラグのチェックを示します。

データ処理コードの例
次のコードは、受信したデータを処理します。

switch (readVal){/* If an escape is received */case FCESCAPE:WRITEREQUEST/* If escape already received,
consider it as data */if(bEscFlag == true)bEscFlag = false;

RECV_XON == TRUE

else

NO

bEscFlag = true;break;/* If an XON is received */YEScase XON:/* If escape received before,
consider it as data */TRANSMITDATA

if(bEscFlag == true)

RETURNFAILUREbEscFlag = false;/* Valid control signal,
else

RECV_XON = true;break;

15388-305

RETURN
SUCCESS

update send flag *//* If an XOFF is received */図 56. adi_uart_Write_fc 関数のフローチャート

case XOFF:

割込みサービス・ルーチン（ISR）を使用したピアからのプロセス制御信号/* If escape received before,

UART 経由で受信されたデータは監視され、制御信号とデータのどちらであるかチェックされます。受信されたデータがエスケー
プ文字の場合は、後続のデータが制御信号ではなくデータとみなされるように、エスケープ・フラグ（bEscFlag）がアサートされます。XOFF 信号または XON 信号が受信されたら、エスケープ・フラグが設定されたかどうかのチェックが行われます。エスケー
プ・フラグがセットされていない場合、グローバル・フラグ（RECV_XON）が更新されます。

if(bEscFlag == true)

エスケープ・フラグのセットされずに XOFF 信号を受信した場合は、RECV_XON フラグがアサート解除され、XOFF 信号を受信し、データ転送は発生しないことを意味します。同じ方法で、
RECV_XON フラグは、
エスケープ・フラグがセットされずに XON信号を受信した場合にアサートされます。

Rev. 0consider it as data */bEscFlag = false;/* Valid control signal,
update send flag */else

RECV_XON = false;

break;

default:}－ 39/48 －break;

UG-1091

ユーザー・ガイド
図 57 に、ピアからのフロー制御信号を処理するアルゴリズムを示します。受信されたデータがエスケープ文字であるか最初にチェックされます。エスケープ文字の場合、後続のデータは制御
信号ではなくデータとみなされます。受信されたデータは、XONと XOFF の制御信号がチェックされ、グローバルな RECV_XON
フラグが必要に応じて更新されます。
図 57 の灰色のブロックは、
RECV_XON フラグの更新を示します。

READ
REQUEST

Readval =read_data_from_uart_rx()

readVal ==ESC_CHARYES

bEscFlag = TRUE

NO

YES

XOFF

bEscFlag== TRUE

NO

YES

NO

RETURN
readValreadVal ==XON

RECV_XON=FALSEYES

bEscFlag== TRUENO

YES

RETURN
Readval

RETURN
readVal

RETURNNO

RECV_XON= TRUE

RETURN

図 57. ISR の制御信号の処理フローチャート

Rev. 0－ 40/48 －15388-306

readVal ==UG-1091

ユーザー・ガイド
データ・キャプチャ

受信データ・フローの制御

データ・キャプチャのセットアップでは、MCU が PC に接続され、PC を実行している端末プログラムと通信します。シリアル・
ポート・モニタなどの UART スニファは、ボー・レート 9600 で発生するデータ通信を監視します。ここで説明するように、デー
タ・キャプチャは、スニファを使用して実行されます。

受信データ・フローを制御して ADuCM3027/ADuCM3029 MCU から制御信号を送信する場合は、シンプルな手順を実装します。この場合、MCU はピアと比較して速度が遅くなります。MCU から制御信号を送信する機構はアプリケーションに固有で、制御信号を送信するユーザー独自のアルゴリズムを記述できます。

ADuCM3027/ADuCM3029 のフロー制御文字の処理

図 59 に示すように、XOFF 信号は MCU から送信された 5 回の転送の後に毎回送信されます。XON 信号は、短い間隔の後に送信されます。この実装は簡単で、デモの目的のみで説明されます。
ユーザーは独自の機構を開発してデータを処理し、XON および
XOFF を送信できます。

図 58 に、ピアからのフロー制御信号を処理する例を示します。

DATA SENTCONTINUOUSLYBY MCUDATA SENTCONTINUOUSLYBY MCUXOFF RECEIVEDXOFF SENTAFTER EVERY
5 TRANSMITSNO TRANSMISSIONBY MCU UNTIL
ANXON IS RECEIVEDXON RECEIVEDNO DATA CAN BE
RECEIVED

TRANSMISSIONCONTINUES AFTERXON IS RECEIVEDXON SENT AFTER A
SMALL WAIT PERIODESCAPERECEIVEDDATATRANSMISSIONCONTINUESXOFF RECEIVED
BUT TRANSMISSIONIS NOT STOPPED図 59. 制御信号を送信する ADuCM3027/ADuCM3029
15388-307

XON RECEIVED
BUT TRANSMISSIONIS UNALTERED

15388-308

ESCAPERECEIVED

図 58. スニファ・プログラムを使用したデータ・キャプチャ

Rev. 0－ 41/48 －UG-1091

ユーザー・ガイド
UART フロー制御方法
CS

SCK

SCK

MOSI

MOSI

MISO/RDY

SPI
SLAVE
15388-401

SPI
MASTERCS

MISO/RDY

図 60. SPI 信号

ADuCM3027/
ADuCM3029

SERIAL FLASH
W25Q32
15388-402

SPI

図 61. アプリケーションのブロック図
SPI は、他の SPI 互換デバイスに対する全二重動作を可能にする
業界標準の同期シリアル・リンクです。
ADuCM3027/ADuCM3029 SPI には、半二重動作とフロー・制御
オプションを提供する拡張動作モードがあります。SPI データ転送
は DMA トランザクションを使用して、ADuCM3027/ADuCM3029 コ
アをスリープ・モードにします。半二重モードで複数のバイトを転送する他に、この消費電力の削減は、ワイヤレス・センサー・
ネットワークなどのバッテリ駆動の設計において重要です。
ADuCM3027/ADuCM3029 SPI には次の機能があります。
•
•
•
•
•
•
•

連続読出しモード
半二重動作の読出しコマンド・モード
フロー制御
CS ソフトウェアのオーバーライド
3 ピン SPI マスターまたはスレーブ・モードをサポート
LSB ファースト転送のオプション
割込みモード。割込みは、1、2、3、4、5、6、7、8 バイトの後に使用できます。

ここでは、読出しコマンド・モードとフロー制御方法について理解します。これらの方法は、システムでセンサー、シリアル・フラッシュ・デバイス、ADC、RF トランシーバーなどの SPI スレーブを使用する場合に、システムの消費電力を抑えます。

SPI 読出しコマンド・モード
標準の SPI マスターは、シリアル・クロック（SCK）、マスター・アウト、スレーブ・イン（MOSI）、マスター・イン、スレーブ・アウト（MISO）とチップ選択（CS）のラインを使用して、スレーブと通信します。SCK、MOSI、MISO 信号はスレーブで共有でき、各スレーブは独自の CS ラインを持ちます。SPI 転送の間、データは同時に送信および受信されます。シリアル・クロック・
ラインは、2 つのシリアル・データ・ラインの情報のシフトとサン
プリングを同期します。

大部分の SPI スレーブでは、通信を成功させるためにマスターが使用する必要があるプロトコルを指定します。プロトコルは、コマンドと同じ程度シンプルで、アドレス（オプション）とデータ（オプション）が続きます。
例えば、書込みコマンドは単方向で、マスターがコマンド、アドレス（オプション）、データをスレーブに書き込みます。
読出しコマンドでは、マスターがコマンドとアドレス（オプション）を送信し、スレーブからデータの読出しを実行する必要があります。データが複数バイトの場合、マスターのソフトウェ
アが MOSI にダミー・データを書き込む必要があります。これにより、クロックの動作を継続してすべてのデータ・バイトを正常に読み出すことができます。
ただし、一部の SPI スレーブでは、MOSI の読出しコマンドの転送の後に、1 つの CS トランザクションで MISO で読出しを実行します。この条件の例を図 62 に示します。
ADuCM3027/ADuCM3029 は、このような半二重動作をサポート
する読出しコマンド・モードを提供します。読出しコマンド・モー
ドは、ソフトウェアの負荷を減らし、結果としてコア実行サイクルを減らすのに役立ちます。このモードでは、トランザクション
で送信するバイト数と受信するバイト数を指定する必要があります。また、MOSI で転送が進行中の場合は、MISO のデータを無視するかどうか指定することもできます。
データ読出しコマンド・モードを使用すると、1 バイトを送信して、スレーブからデータ・バイトのセットを受信できます。このモードは、スレーブがセンサーまたは ADC で、測定されたデー
タまたは処理されたデータのセットを送信する場合に便利です。
アプリケーションのシナリオは、システムの説明のセクションで説明しますが、ADuCM3027/ADuCM3029 は SPI マスターで、シリアル・フラッシュ W25Q32 は SPI スレーブです（図 61 参照）。
読出しコマンド・モードは、データのページがフラッシュ・メモ
リから読出す必要がある場合に便利です。

通常、SPI 転送は全二重です。転送は、マスターによって制御されます。スレーブからデータを受信するには、マスターがクロッ
クを提供する必要があります。通常はデータを MOSI ラインで送信する必要がある場合に開始されます。

Rev. 0－ 42/48 －UG-1091

ユーザー・ガイド
CS
0

1

2

3

4

5

6

7

8

9

10

11

13

12

14

15

1

0

16

17

18

7

6

5

19

20

21

22

23

2

1

0

SCK
INSTRUCTION
0

MOSI

0

0

0

1

8-BIT ADDRESS
0

1

1

7

6

5

4

3

2

4

3

15388-403

DATA OUT
MISO

図 62. 読出しコマンド・モード

読出しコマンド・モードを示すために、次のセットアップを使用します。

•

ファームウェア - IAR 用の ADuCM3027/ADuCM3029 BSP からのパワーオン・セルフ・テスト・アプリケーション
ハードウェア - ADuCM3027/ADuCM3029 EZ-Kit ボード

信号をキャプチャするため、SPI ラインにオシロスコープが接続されます。オシロスコープのプロット図 63 ～ 図 67 に、SPI マス
ターである ADuCM3027/ADuCM3029 と SPI スレーブであるシリ
アル・フラッシュ W25Q32 間の SPI 転送を示します。

CS

2

MOSI

3

MISO

4

SCK

読出しコマンド・モードを使用するトランザクションを決定するのは、ユーザー・アプリケーションです。

CH1 2.00VCH3 2.00V

読出しコマンド・モードなし
リファレンス・アプリケーションでは、
フラッシュ・メモリの 4 KB
セクタの消去プロセスで読出しコマンド・モードを使用しません。
消去コマンドの転送と個別のチップ選択フレームのアドレスを確認すれば、このモードが存在しないことがわかります（図 63 お
よび図 64）。

2

CH4

0V

読出しコマンド・モードあり
図 65 に、外部フラッシュからの 1 ページの読出しを示します。
フラッシュの 1 ページのサイズは、256 バイトです。この読出しシーケンスは、読出しコマンド・モードを使用し、ページ全体の読出しが 1 回の CS トランザクションで発生します。

CS
1

CS

2

MOSI

3

MISO

MOSI

3

MISO

4

SCK

CH1 2.00VCH3 2.00V

CH2 2.00V Ω
CH4 2.00V Ω

M2.00ms
T
16µs

CH4

0V

4

SCK
CH1 2.00VCH3 2.00V

図 63. セクタ消去
図 64 に、消去シーケンス全体の CS フレーム・キャプチャを示します。CS ラインは、コマンド・バイトの転送の切り替えを示します。

Rev. 0

M40.0µs
T
16µs

図 64. セクタ消去 — シングル CS フレーム・キャプチャ

15388-404

1

CH2 2.00V
CH4 2.00V

CH2 2.00V
CH4 2.00V

M4.00ms
T
16µs

CH4

0V

15388-406•

115388-405

システムの説明

図 65.ページ読出しシーケンス
図 66 に、ADuCM3027/ADuCM3029 がコマンドとアドレス・バイ
トを転送するページ読出しシーケンスの開始を示します。この転送の後に、シリアル・フラッシュ・メモリからのページ・データが続きます。

－ 43/48 －UG-1091

ユーザー・ガイド

CS

1

2

3

フロー制御モードは、次のセクションで詳細に説明します。SPI フ
ロー制御レジスタ（SPI_FLOW_CTL）のモード・フィールドは、
フロー制御モードを 3 つのモードのいずれかに構成します。
フロー制御機構は、ADuCM3027/ADuCM3029 が SPI マスターとして構成されている場合に限り使用できます。

MOSI

ピンベースのフロー制御
専用の RDY ピンの使用

MISO

一 部 の SPI ス レ ー ブ に は 、 SPI マ ス タ ー （ こ の 場 合 は 、
ADuCM3027/ADuCM3029）の SPI_RDY ピンに接続される専用のRDY ピンがあります。SPI_RDY ピンは、各 SPI インスタンスに専用のピン（GPIO の代替機能）です。

4

CH1 2.00VCH3 2.00V

CH2 2.00V Ω
CH4 2.00V Ω

M100µs
T
16µs

CH4

0V

15388-407

SCK

例えば、CAT64LC40 シリアル・フラッシュは、専用の RDY ピンを使用して、SPI マスターにデータが使用できるか信号で通知します。

図 66. ページ読出しの開始シーケンス（コマンドとアドレス・バイト）
図 67 に、1 バイトの読出しを示します。これはページ読出しシー
ケンスの一部です。

1

2

RDY ピンがアサートされたときに読出しを実行するバイト数を構成できます。この構成を実行するには、SPI フロー制御レジス
タ（SPI_FLOW_CTL）の RDBURSTSZ フィールドを設定します。
MISO でこのバイトのバーストを受信した後、SPI マスターは、
次の RDY ピンのアサーションを待機し、次のバイトのセットを受信します。このプロセスは、SPI カウント・レジスタ（SPI_CNT）のセットのすべてのバイトが受信されるまで繰り返されます。

CS

MOSI
MISO

3

読出しコマンド・モードを使用すると、最大 16 バイトを転送できます。この転送は、SPI 読出し制御レジスタ（SPI_RD_CTL）の TXBYTES フィールドを使用して構成されます。フロー制御を使用した場合に 1 回のバーストで受信されたバイト数は、SPI 読出し制御レジスタ（SPI_RD_CTL）の RDBURSTSZ フィールドで設定されますが、受信バイトの合計数に上限は課せられません。

4

CH2 2.00V
CH4 2.00V

M10.0µs
T
16µs

CH4

0V

15388-408

SCK
CH1 2.00VCH3 2.00V

図 67. ページ読出し - 1 データ・バイト

MISO ピンの使用

フロー制御モード
フロー制御は、マスターとスレーブ間のデータ・フローの同期に必要です。ADuCM3027 は、差別化機能であるフロー制御を SPI で提供します。読出しコマンド・モードでは、フロー制御を使用して複数のデータ・バイトを受信できます。
フロー制御では、SPI マスターとスレーブ間のデータ転送は、定期的なデータ読出しまたはオンデマンドのデータ読出しに関するアプリケーション要件に基づいて制御されます。
ADuCM3027/ADuCM3029 の SPI マスターは、
次のモードのフロー制御をサポートします。
••

ス レ ー ブ が 専 用 の RDY ピ ン を サ ポ ー ト し て い な い 場 合 、
ADuCM3027/ADuCM3029 の RDY ピンは、SPI スレーブの割込みピンに配線できます。スレーブは、RDY ピンを使用して、アクイジションとデータ処理が完了したことを示します。マスターは、
このピンのアクティブなレベルが表示されるまで SPI クロックを提供しません。

一部の SPI スレーブには、専用の RDY ピンはありませんが、MISO
ピンを再利用して MISO で送信する準備が整ったことを SPI マス
ターに通知するという対策があります。
ADuCM3027/ADuCM3029 SPI マスターは、MISO ラインのアク
ティブ・レベルの遷移を待機し、これが検出されると、
RDBURSTSZ+ 1 個のバイトの読出しを実行して、次のアクティブ・レベルがMISO で検出されるまで待機状態に戻ります。
MISO/RDY ピンの極性は、SPI 読出し制御レジスタ（SPI_RD_CTL）を使用して構成できます。

ピンベースのフロー制御、SPI スレーブで制御。
タイマーベースのフロー制御、SPI マスターで制御。

Rev. 0－ 44/48 －UG-1091

ユーザー・ガイド
0x00

0x9F

0x00

0x00

0x05
SPI_WAIT_TMR
SCK CYCLESSPI_WAIT_TMR
SCK CYCLES

SCK
MOSI

0xEF

0x40

0x16

0xFF
15388-409

0xFF
MISO

図 68. ソフトウェア・フロー制御とタイマー

タイマーベースのフロー制御
専用ピンがないスレーブから、マスターにデータが使用できるかどうかを通知するには、マイクロコントローラで 16 ビット・タ
イマーを使用してデータの読出し中に待機状態を導入します。タ
イマーがトリガすると、マスターはバイトのバースト（RDBURSTSZ+ 1）の読出しを実行し、タイマーを再起動します。タイマーは SPI
クロック・レート（SCK）で出力され、タイマーのトリガを待機する SCK サイクルの数は、SPI_WAIT_TMR レジスタを使用して設定できます。この動作の例を図 68 に示します。
このスキームを、フロー制御で SCK の待機と駆動に使用する場
合は、最後の SCK エッジをサンプリング・エッジにする必要があります。待ち時間が終わったら、SCK 駆動エッジが次のデー
タ転送を実行します。

システムの説明
ここでは、ハードウェア・フロー制御モードを使用して、フロー制御機能がシステム内の電力節約にどのように役立つか説明します。
これを示すために使用するシステムは、
ADuCM3027/ADuCM3029
MCU と SPI 経由で接続されているセンサー（加速度センサー）です。
電力効率が高いシステムを設計するには、処理が不要な場合にコアをスリープ・モードにすることが必要です。このようなシステムでは、センサーの読出しが使用できるようになった後に、コアはウェイク・アップし、センサーからデータを受信して処理します。

Rev. 0

ADuCM3027/ADuCM3029 のフロー制御と読出しコマンド・モー
ドは、MCU をさらにオフロードしてこの処理の効率を向上させます。システムは Flexi モードに切り替わります。このモードでは、コアがスリープ状態、SPI ペリフェラルと DMA はアクティ
ブに維持されます。
センサーはデータを測定し、RDY ピンを使用して、データを使用できることを SPI ペリフェラルにストローブ信号で送信します。
ADuCM3027/ADuCM3029 MCU の SPI インスタンスごとに専用の
SPI_RDY ピン（GPIO の代替機能）があります。
SPI は、MCU をウェイクアップせずに、読出しコマンド・モー
ドを使用してデータ・セットの読出しを実行します。このスキー
ムを効果的に使用するには、センサーが複数バイトのデータ転送に対応できる必要があります。加速度センサーの場合、x、y、z 軸の読出しは、SPI 経由で 6 バイトで送信されます。
DMA を使用すると、CPU の介入なく割り当てられたメモリ・ス
ペースにデータを転送できます。
アプリケーションは毎回測定した後に即座にデータを収集するか、構成されたバイト数がセンサーによって収集された後にスレーブ
からバッファ済みデータを収集できます。
ユーザー定義のバイトのセットが収集された後に、SPI ペリフェ
ラルまたは DMA が MCU をウェイクアップしてセンサー・デー
タを処理できます。

－ 45/48 －UG-1091

ユーザー・ガイド
図 69 に、アクティビティが検出されるたびに加速度センサーから SPI データの読出しを実行するデータのアプリケーション・フ
ロー図を示します。ADXL345 などのセンサーでは、データ対応の割込みを使用して、1 回の SPI トランザクションで x、y、z 軸の値を読み出します。別のセンサーでは、FIFO 構成を実行して、マスターが FIFO を読み出すまでセンサーに多数のサンプルを保存できます。

まとめ

ADuCM3029

SENSOR

POWER UPDEVICE INITIALIZATIONPOWER UPDEVICE INITIALIZATIONCONFIGURE SPI WITH FLOWCONTROL AND IN READ
COMMAND MODE

読出しコマンド・モードやフロー制御などの ADuCM3027/
ADuCM3029 SPI の各機能により、デバイスは SPI ペリフェラル
が MCU をオフロードするバッテリ駆動システムに最適で、デー
タ収集に個別に使用できます。
このデバイスの適合性は、システム設計でセンサーのバッテリ寿命が重要になるワイヤレス・センサー・ネットワークで大きな利点があります。また、オンボード・データ・アクイジションとセン
サー・データ分析を使用したスマート・センサー設計の構成要素としても機能します。

SETUP SENSOR(CONFIGURE FIFO MODE,SAMPLES, MEASUREMENTMODE AND RANGE)CONFIGURE INT2 TO
GENERATE DATA READY/
WATERMARK INTERRUPTSPIENTER FLEXI MODESENSOR SETUP

ACTIVITY DETECTED

MEASURE DATASIGNAL ON SPI_RDY
SPI READ AND DMA
TRANSFER
ACTIVITY DETECTED

MEASURE DATASIGNAL ON SPI_RDY
SPI READ AND DMA
TRANSFERENTER ACTIVE MODE

図 69. アプリケーションのフローチャート

Rev. 0－ 46/48 －15388-410

DMA DONE IRQ
WAKE UP MCU

UG-1091

ユーザー・ガイド
SLEEP ON EXIT

ARM® Cortex™-M プロセッサは、
電力と効率のバランスが優れた、
低消費電力アプリケーションに最適です。これらのプロセッサには、Sleep on exit と呼ばれる機能があり、クロック・サイクルと電力を節約できます。
ADuCM3027/ADuCM3029 プロセッサの MCU サブシステムは、Sleep on exit
ARM® Cortex™-M3 プロセッサをベースにしています。
機能は、マイクロコントローラがスリープの場合に割込みハンド
ラで電力を節約します。

図 70 に、Sleep on exit 機能を使用する場合のフローチャートを示します。この機能を使用する手順は、次のとおりです。
1.
2.
3.
4.
5.

Sleep on exit が有効な場合、ISR が完了すると、プロセッサは直接スリープに移行します。複数の割込みが発生する場合、割込み
はネスト構造になります。これらの割込みの実行後、プロセッサは自動的にスリープ・モードに戻ります。

プログラムが開始します。
割込み待機（WFI）またはイベント待機（WFE）の命令により、スリープ・モードが起動します。
システムはスリープ・モードに移行します。
デバイスは、
中断またはイベントでウェイクアップします。
SLEEPONEXIT ビットがセットされている場合、割込みが完了すると、システムは自動的にスリープ・モードに戻り
ます。
START

メリット
WFI/WFE

Sleep on exit 機能は、システムがスリープで割込みを実行すると
きだけウェイクアップする割込み駆動アプリケーションでメリッ
トがあります。

SLEEP

Sleep on exit が無効の場合、割込みが到達するワークフローでは、命令の実行にかかる時間が長くなります。
WAKE UP TOEXECUTE THE INTERRUPT

1.
2.
3.
4.
5.

プロセッサをウェイク・アップします。
必要な情報すべてと電流の状態をスタックにプッシュします。
割込みコードを実行します。
スタックの情報をポップし、レジスタを復元します。
スリープ・モードに戻ります。

割込みを実行する命令はたくさんあります。そのため、割込み駆動アプリケーションでは、コアはスタックに命令をプッシュした
後に再度ポップするので、コンテキストの切り替えに費やされる時間は最適ではありません。
Sleep on exit 機能を有効にすると、プロセスを簡略化できます。
プロセッサは、割込みの終了後、即座にスリープに移行します。
デバイスは、通常のスレッドに戻らず、割込み構成を維持します。
これにより、
プッシュとポップのタスクがスタックに含まれるのを避けることができ、不要な命令の実行に必要な電力とクロック・
サイクルを削減できます。

Rev. 0YESSLEEPONEXIT = 1?
NONEXT INSTRUCTION

13588-002

Sleep on exit 機能を無効にして割込みを実行する手順は、次のよ
うになります。

図 70. Sleep on exit のフローチャート

SLEEP ON EXIT 機能を有効にする
ARM® Cortex™-M ネスト型ベクタ割り込みコントローラ（NVIC）には、システム・コントロール・レジスタと SLEEPONEXIT というビット・フィールドがあります。Sleep on exit 機能を有効にするのに必要なことは、SLEEPONEXIT ビットをセットするだけです。
システム・コントロール・レジスタのアドレスは 0xE000ED10 です。ADuCM3027/ADuCM3029 のシステム制御レジスタ セクションに、ADuCM3027/ADuCM3029 マイクロコントローラのこのレジ
スタとビット・フィールドを示します。

－ 47/48 －UG-1091

ユーザー・ガイド
ADUCM3027/ADUCM3029 のシステム制御レジスタ

ESD に関する注意
ESD（静電放電）の影響を受けやすいデバイスです。電荷を帯びたデバイスや回路ボードは、検知されないまま放電することがあります。本製品は当社独自の特許技術である ESD 保護回路を内蔵してはいますが、デバイスが高エネルギーの静電放電を被った場合、損傷を生じる可能性があります。したがって、性能劣化や機能低下を防止するため、ESD に対する適切な予防措置を講じることをお勧めします。
法的条項
アナログ・デバイセズの標準販売条項が適用される評価用ボードの購入の場合を除き、ここで説明する評価用ボード (すべてのツール、部品ドキュメント、サポート資料、また評価用ボードも含む)を使用することにより、以下に定める条項(本契約) にお客様は同意するものとします。本契約に同意した方のみ、評価用ボードを使用することができます。お客様が評価用ボードを使用した場合は、本契約に同意したと見なします。本契約は、"お客様"と One Technology Way, Norwood, MA 02062, USA に本社を置く Analog Devices, Inc. (以降 ADIと記載)との間で締結されるものです。本契約条項に従い、ADI は、無償、限定的、一身専属、一時的、非独占的、サブライセンス不能、譲渡不能な評価用ボードを、評価目的でのみ使用するライセンスをお客様に許諾します。お客様は、評価用ボードが上記目的に限定して提供されたこと、さらに他の目的に評価用ボードを使用しないことを理解し、同意するものです。さらに、許諾されるライセンスには次の追加制限事項が適用されるものとします。(i) 評価用ボードを賃借、賃貸、展示、販売、移転、譲渡、サブライセンス、または頒布しないものとします。(ii) 評価用ボードへのアクセスを第三者に許可しないものとします。ここで言う “第三者” には、ADI、お客様、その従業員、関連会社、および社内コン
サルタント以外のあらゆる組織が含まれます。この評価用ボードはお客様に販売するものではありません。評価用ボードの所有権などの、本契約にて明示的に許諾されていないす
べての権利は、ADI に帰属します。本契約と評価用ボードはすべて、ADI の機密および専有情報と見なされるものとします。お客様は、この評価用ボードの如何なる部分も、如何なる理由でも他者に開示または譲渡しないものとします。評価用ボード使用の中止または本契約の終了の際、お客様は評価用ボードを速やかに ADI へ返却することに同意するものです。＜追加制限事項＞お客様は、評価用ボード上のチップの逆アセンブル、逆コンパイル、またはリバース・エンジニアリングを行わないものとします。お客様は、ハンダ処理
または評価用ボードの構成材料に影響を与えるその他の行為に限らず、評価用ボードに発生したすべての損傷や修正または改変を ADI へ通知するものとします。評価用ボードに対する修正は、RoHS 規制に限らずすべての該当する法律に従うものとします。＜契約の終了＞ADI は、お客様に書面通知を行うことで、何時でも本契約を終了することができるものとします。お客様は、評価用ボードを速やかに ADI に返却することに同意するものです。＜責任の制限＞ここに提供する評価用ボードは現状有姿のまま提供されるものであり、ADI
はそれに関する如何なる種類の保証または表明も行いません。特に ADI は、明示か黙示かを問わず、評価用ボードにおけるあらゆる表明、推奨または保証（商品性、権原、特定目的適合性または知的財産権非侵害の黙示の保証を含みますがこれらに限定されません）を行いません。如何なる場合でも、ADI およびそのライセンサーは、利益の喪失、遅延コス
ト、労賃、またはのれん価値の喪失など (これらには限定されません)、評価用ボードのお客様による所有または使用から発生する、偶発的損害、特別損害、間接損害、または派生的損害については、責任を負うものではありません。すべての原因から発生する ADI の損害賠償責任の負担額は、総額で 100 米国ドル ($100.00)に限定されるものとします。＜輸出＞
お客様は、この評価用ボードを他国に直接的または間接的に輸出しないことに同意し、輸出に関する該当するすべての米国連邦法と規制に従うことに同意するものとします。準拠法。本契約は、マサチューセッツ州の実体法に従い解釈されるものとします(法律の抵触に関する規則は排除します)。本契約に関するすべての訴訟は、マサチューセッツ州サフォー
ク郡を管轄とする州法廷または連邦法廷で審理するものとし、お客様は当該法廷の人的管轄権と裁判地に従うものとします。本契約には、国際物品売買契約に関する国連条約は適用しないものとし、同条約はここに明確に排除されるものです。

Rev. 0－ 48/48 －