AN210985 Getting Started with FM0+ Development (Japanese).pdf

AN210985
FM0+ 入門
著者: James Trudeau
関連製品ファミリ: FM0+の全製品
関連するアプリケーションノートまたはサンプルコードについては、
FM0+ Family 関連資料をご覧ください。
本アプリケーションノート(AN210985) FM0+は ARM Cortex-M0+ベースの低消費電力設計に最適な 32bit 汎用マ
イクロコントローラ(マイコン) です。この文書で、製品の特長、機能、ファームウェア開発の概略を理解し、豊富な技
術資料について説明しています。本アプリケーションノートは FM0+ S6E1B8-Series Starter Kit を使用した基本的
な使い方について説明しています。
目次
1
FM0+ Family 概要.....................................................2
2
ファームウェアの開発 .................................................3
4.1
始める前に ..................................................... 18
ソフトウェアツール概要 ......................................3
4.2
FLASH MCU Programmer を使った書き込み .. 18
4.3
込み
FLASH USB DIRECT Programmer を使った書き
22
2.1
2.2
Peripheral Driver Library 概要 ..........................4
2.3
MCU Template Projects ...................................6
3
PDL Project のビルドと実行 .......................................6
4
5
Flash メモリへの書き込み ........................................ 18
FM0+ Family 関連資料 ........................................... 24
3.1
始める前に........................................................7
改訂履歴 .......................................................................... 25
3.2
IAR Embedded Workbench を使ったビルド.......9
セールス, ソリューションおよび法律情報 ............................ 26
3.3
Keil µVision を使ったビルド ............................. 13
www.cypress.com
Document No. 002-11388 Rev. **
1
Getting Started with FM 0+ Development
1
FM0+ Family 概要
サイプレスの FM0+は ARM Cortex-M0+ベースの電力効率の高い 32bit 汎用マイクロコントローラ(マイコン) です。
FM0+マイコンは動作周波数 40MHz で、白物家電、センサー、メーター、HMI システム、電動製品およびネットワーク意
識(IoT)のバッテリー駆動やウェアラブルのデバイス用にそれぞれ異なる種類の周辺回路をサポートします。
FM0+ Family として現在 3 つのシリーズがあります。Table 1-1 にそれぞれの Family の特徴を示します。
Table 1-1. FM0+ Family シリーズ
シリーズ
最大 CPU 速度
動作電圧
Flash (Max)
SRAM (Max)
S6E1A
40 MHz
2.7-5.5 V
88 KB
6 KB
S6E1B
40 MHz
1.65-3.6 V
512 KB
64 KB
S6E1C
40 MHz
1.65-3.6 V
128 KB
16 KB
FM0+ Family の特徴:

性能と省エネルギー
ARM Cortex-M0+ベースのマイコンは業界最高の電力効率を誇ります。FM0+ Family の業界最高の電力効率を
®
誇る Cortex-M0+ベースの MCU で、35 µA/CoreMark スコアを提供します。

超低消費電力
本 Family の超低消費電力デバイスは 1.65 - 3.6 V の動作電圧で、最大動作周波数 40MHz、アクティブ電流
40 μA/MHz、ディープスタンバイ RTC モード時 0.6 μA の性能を提供。デバイスは LCDC コントローラやアナログ
周辺回路を提供します。

高性能 Flash メモリ
56 KB ~512 KB までの Flash メモリ容量と最大 64 KB RAM をサポート – Cortex-M3/M4 コアで提供されるメモ
リ容量を M0+コアで提供。Flash メモリは 0 ウェイトサイクル相当でフルスピードで動作し、20 年までのデータ保持
を保証します。

その他主な特徴
単純なバスマトリックスにより消費電力を低減します。ローカルクロックゲーティングにより、それぞれの周辺を必要
に応じてクロック供給でき、クロック分周機能により CPU や周辺の周波数を切り替えて動作可能、小ピンカウント、
少容量のメモリのデバイスを提供します。FM0+マイコンは Full-Speed USB2.0(ホスト/デバイス)、複数のシリアル
通信インターフェース、AES 暗号も提供します。
例として S6E1B シリーズのブロック図を Figure 1-1 に示します。FM0+ Family は A/D コンバータ、LCD コントローラ、
USB、マルチファンクションシリアルインターフェース、RTC(リアルタイムクロック)などの周辺回路を提供します。周辺回
路はシリーズごとに異なります。ピン数、パッケージ、電源電圧範囲、周辺回路、Flash メモリおよび SRAM の容量など
についてはそれぞれのシリーズごとで異なりますので、Product Selector Guide およびデータシートでご確認ください。
www.cypress.com
Document No. 002-11388 Rev.**
2
Getting Started with FM 0+ Development
Figure 1-1. FM0+ S6E1B-Series のブロック図
2
ファームウェアの開発
サイプレスは FM0+のソフトウェア開発を簡素化するために Peripheral Driver Library (PDL)をご提供しています。
PDL はペリフェラルレジスタやビットストラクチャを理解する必要性を減らすことによって、FM4 ファミリの周辺機器の拡
張セットのソフトウェア開発が容易になります。特定デバイスの Library を設定し、Peripheral を使用するために API を
呼びます。FM0+ファミリに加えて、PDL はサイプレス FM4 プロセッサもサポートしています。 PDL を使用することでコ
ードのポーティングが容易になります。
レジスタレベルの開発を行う場合、サイプレスはそれぞれの MCU シリーズに対して template projects をご提供してい
ます。この Template Project はソフトウェア開発の振り出しとして使用できます。 また、PDL と特定デバイスのデータシ
ート、マニュアルを確認していただければ Peripheral の使用方法を学ぶことができます。FM0+ Family 関連資料 部分
をご確認いただくと資料、マニュアル、キットのリンクを公開しています。
2.1
ソフトウェアツール概要
FM4 ファミリがサポートされている複数なエコシステムが存在してあります。ご確認する場合、 Support Tools for
FM0+ Family のリンクをクリックしてください。このページでは IAR Embedded Workbench や Keil 社のμVision IDE
を使用した場合、サンプルプロジェクトの開発フローや開発環境の説明がアップロードされています。
www.cypress.com
Document No. 002-11388 Rev.**
3
Getting Started with FM 0+ Development
2.2
Peripheral Driver Library 概要
PDL はサポートされているデバイスのドライバを構築するためのスーパーセットのコードです。スーパーセットデザインと
は:


Peripheral を初期、設定、利用するために必要な API を用意
選択されているデバイスでは Peripheral は存在しない場合がありますため、エラーチェックが含められている
スーパーセットデザインはすべてのデバイスで PDL が有用であることを意味します。これはプラットフォーム間で
Peripheral のコード互換性を維持されることが可能になります。
PDL のコンフィギュレーションロジックはターゲットデバイスを認識し、ビルドするとサポートされていない Peripheral の
Peripheral レジスタヘッダーを削除します。
選択されたデバイスで利用しようとしている Peripheral は対応していない可能性があるため、データシートを先にご参
考ください。
2.2.1
PDL 入門
一 部 の FM0 キ ッ ト は 自 動 的 に PDL を イ ン ス ト ー ル し ま す 。 イ ン ス ト ー ル さ れ た デ フ ォ ル ト フ ォ ル ダ は My
Documents/Cypress/FM_PDL_<version number>です。キットに関しては FM0+ Family 関連資料部分をご参考くだ
さい。
キットが自動に PDL をインストールしない場合、PDL Installer を FM0+ product page. Tools & Software タブから
PDL ダウンロードリンクを選択してください。
2.2.2
PDL の構造
PDL は複数のフォルダに整理されております。Table 2-1 PDL フォルダ構造をご参考ください。
Table 2-1. PDL フォルダ構造
Path\Folder
Description
common
doc
driver
example
Common header files
PDL documentation
Driver source code and headers
Code examples
template\ARM
Keil project and configuration files for use with code examples
template\IAR
IAR project and configuration files for use with code examples
template\source
template\source\backup
utility
Source files, replace with files from code example, or write your own code
Copy of original source files, used to restore template
Various utility files
PDL を使用する場合、基本は Common ファイル、ドキュメント、またはドライバコードを変更しないことです。
独自のコード(またはサンプルコードを使用) を開発するには Template folder にある以下の 3 ファイルを利用します。



pdl_device.h
pdl_user.h
main.c
www.cypress.com
Document No. 002-11388 Rev.**
4
Getting Started with FM 0+ Development
Template\IAR にすべてのサンプルコードが存在している IAR Embedded Workbench IDE のプロジェクトがあります。
同様に、template\ARM にすべてのサンプルコードが存在している Keil µVision IDE のプロジェクトがあります。
PDL Project のビルドと実行部分に Source file と Project file の利用方法が説明されております。
2.2.3
PDL のサンプルコードを使用する
PDL インスタレーションは 100 以上のコード例が含まれています。ほとんどの Peripheral は複数の例を持っています。
サンプルコードでは Peripheral の基本的な初期化と設定を示しています。またサンプルコードの使い方、説明等は
Readme ファイルをご参考ください。
PDL Project のビルドと実行部分に PDL の設定、プロジェクトのビルド、またコードのデバッグ方法が書かれております。
サンプルコードを利用するために:

Example フォルダから main.c と pdl_user.h を template\source にコピー、すでに存在しているファイルを書きか
える

コードをビルドしてターゲットデバイスにダウンロード
テンプレートを元の状態に戻す場合、template\source\backup の main.c と pdl_user.h ファイルを template\source に
コピーしてください。
2.2.4
PDL を使って自分のプログラムを書く
基本はすでに存在しているプロジェクトファイルで開発をはじめます。(PDL、Peripheral 選択済み)
PDL のファームウェア開発をはじめるときの手順:





ターゲットデバイスを選択するために Project option を修正
pdl_device.h でターゲットデバイスとパッケージを選択
pdl_user.h で PDL を設定
main.c にファームウェアを追加
コードをビルドし、ターゲットデバイスに書き込む
すでに説明したように、pdl_device.h、pdl_user.h と main.c はサンプルコードで提供されております。IAR と Keil 用の
プロジェクトファイルは PDL ソースコードと、これら 3 つのファイルを使用しております。
2.2.5
そのほかの PDL の資料
PDL User Quick Start Guide をご確認する場合、doc フォルダをご参考ください。
API 資料は doc\doxy パスをご確認。Figure 2-1 は index.html のホームページです、ご参考ください。
www.cypress.com
Document No. 002-11388 Rev.**
5
Getting Started with FM 0+ Development
Figure 2-1. PDL Documentation
FM0+ Family 関連資料部分をご確認いただくと資料、マニュアル、キットのリンクを公開しています。
2.3
MCU Template Projects
MCU テンプレートプロジェクトには PDL が含められてないのでレジスタアクセスを行うためにコードを作成する必要が
あります。テンプレートプロジェクトはソフトウェアを開発するためのスタートとして役立つシンプルなソフトウェアフレーム
ワークであります。テンプレートプロジェクトは Startup file, peripheral header file, GPIO header file, システム初期化
ファイル、CMSIS System View Description (SVD) file が含まれています。また Compiler, assembler, linker と
Debugger も設定されています。
すべての FM4 シリーズようにテンプレートプロジェクトが存在しています。PDL とは異なり、テンプレートプロジェクトは
すでに設定されています。しかし main()関数は空のループです。そのため、初期、設定のコードを書く必要があります。
MCU Template Project とサンプルコードは FM0+ Family 関連資料部分にリンクがあります。
3
PDL Project のビルドと実行
本章では、以下の IDE を使用してサンプル PDL project のビルドと実行を行います。


IAR Embedded Workbench バージョン 7.3 またはそれ以降
Keil µVision , バージョン 5 またはそれ以降
本章の説明は Figure 3-1 に示す FM0+ S6E1B8-Series Starter Kit と共にサンプルプロジェクトを使用します。
www.cypress.com
Document No. 002-11388 Rev.**
6
Getting Started with FM 0+ Development
Figure 3-1. The S6E1B8-Series Starter Kit Board
各 IDE では、主に 3 つのタスクを実行します。



ハードウェアに対する IDE のプロジェクトオプションを確認します。
ハードウェアに対する PDL を設定します。
サンプルコードをビルドして実行します。
スタータキットのサンプルプロジェクトは、キットに合わせたプロセッサが選択されているため、プロジェクトオプションが
正しく設定されています。キットのサンプルプロジェクトを使用する場合、IDE のオプションを設定する必要はありません。
3.1
始める前に
3 つの確認事項があります:使用するハードウェアにおいて、コード・PDL・開発環境が実行可能であること。
ハードウェア
本アプリケーションノートは FM0+ S6E1B8-Series Starter Kit を使用します。異なるハードウェアを使用する場合は、
要求される指示に従ってください。
PDL
PDL がインストールされていない場合、 PDL 入門を参照してください。
www.cypress.com
Document No. 002-11388 Rev.**
7
Getting Started with FM 0+ Development
本説明は PDL がデフォルトのパス Documents\Cypress にインストールされていることを前提としています。
開発環境
開発環境がインストールされていることを確認してください。本説明では以下をサポートしています。


IAR Embedded Workbench を使ったビルド
Keil µVision を使ったビルド
キットのプロセッサは固有のため、すべてのプロジェクトオプションは正しく設定されています。
異なるプロセッサやボードを使用する場合、それに応じてプロジェクトオプションを変更しなければなりません。正確なオ
プションや設定方法は IDE によって異なります。PDL と共にインストールされる PDL Quick Start Guide は本問題につ
いて詳細に説明しています。変更が必要なプロジェクトオプションには、ターゲットデバイス・リンカ設定ファイル・フラッシ
ュ設定ファイルがあります。
www.cypress.com
Document No. 002-11388 Rev.**
8
Getting Started with FM 0+ Development
3.2
IAR Embedded Workbench を使ったビルド
本節は IAR ツールを使用して、PDL プロジェクトのビルド・ダウンロード・実行の手順を紹介します。本説明には
S6E1B8 starter kit の Descriptor System Transfer Controller (DSTC) サンプルを使用します。本コードはメモリにバ
ッファを作成して、バッファの値を初期化し、DSCT を使用してデータを別の場所にコピーします。 それから 2 つのバッフ
ァが一致することをテストします。
1. DSTC サンプルを IAR workspace で開く
ファイル名は s6e1b8_dstc.eww です。デフォルトのキットインストールでは、ファイルへのパスは次の通りです。
Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo Projects\s6e1b8_dstc\IAR
ファイルをダブルクリックして、 Figure 3-2 のように IAR Embedded Workbench IDE を開きます。
Figure 3-2. IAR Workspace for the DSTC Example を開く
2. ターゲットプロセッサ用に PDL を設定する
本サンプルでは何かをする必要はありません。コードは既に PDL を正しく設定しています。本手順では、自分でプロ
ジェクトを作成する時にどのように操作し、何が必要かを確認しています。
pdl_device.h のターゲットプロセッサを明示します。
A.
pdl_device.h を開く
File > Open > File… を選択して、Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo
Projects\s6e1b8_dstc フォルダを開きます。ファイルがあるので開くとソースウィンドウに表示されます。
B.
コードを確認する
PDL_MCU_SERIES と PDL_MCU_PACKAGE.の値が定義されているコードを探してください。
本書を作成した時点で、本サンプルではコード 57 行でターゲットシリーズを定義しています。
#define PDL_MCU_SERIES
PDL_DEVICE_SERIES_S6E1B8X
本サンプルではコード 68 行でターゲットパッケージを定義しています。
#define PDL_MCU_PACKAGE
PDL_DEVICE_PACKAGE_S6_F
ファイル内のコメントも利用できる定義のある場所を示していることに注意します。
C.
ファイルを閉じる
www.cypress.com
Document No. 002-11388 Rev.**
9
Getting Started with FM 0+ Development
何か変更する必要はありません。
3. PDL 機能を設定する
本サンプルでは何かをする必要はありません。コードは既に PDL を正しく設定しています。本手順では、自分でプロ
ジェクトを作成する時にどのように操作し、何が必要かを確認しています。
pdl_user.h の PDL 機能を設定します。
A.
pdl_user.h を開く
File > Open > File… を使用して、Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo
Projects\s6e1b8_dstc フォルダを開きます。ファイルがあるので開くとソースウィンドウに表示されます。
B.
ファイルの内容を確認する
本ファイルは #define 文の長いリストを含んでいます。#define 文のそれぞれが PDL で設定可能な機能です。
機能を有効にするために、PDL_ON として定義します。無効の場合は PDL_OFF です。 本サンプルに関係す
るのは、PDL_PERIPHERAL_ENABLE_DSTC を PDL_ON に設定するコード行が見つかります。本書を作
成した時点で、本サンプルではファイルの 122 行にあります。
// DSTC
#define PDL_PERIPHERAL_ENABLE_DSTC
C.
PDL_ON
ファイルを閉じる
何か変更する必要はありません。
4. ボードを PC に繋ぐ
まだ未接続の場合は、キットの指示に従ってください。付属のケーブルを使用して、ボードの CN3 (CMSIS-DAP) ポ
ートに接続してください。 類似のポートが 2 つ並んであります。ポートがどちらか確認できない場合は Figure 3-1 参
照してください。
適切に接続されている場合、 ボード上の LED3 パワーが緑色になります。
5. プロジェクトのデバッグビルドを選択する
デバッグビルドはデバッガシンボルを生成するためのオプションが設定されています。後に続く手順でデバッガを使
用します。
ドロップダウンメニューをクリックして、debug を選択してください。Figure 3-3 を参照してください。
Figure 3-3. Debug Build for the Project を選択する
www.cypress.com
Document No. 002-11388 Rev.**
10
Getting Started with FM 0+ Development
6. コードをダウンロードしてデバッガを起動する
Project > Download & Debug を選択してください。
IDE はコンパイル、リンク、ボードへのコードのダウンロードを実行し、デバッガを起動します。ワーニングやエラーは
発生すべきではありません。プログラムカウンタは Figure 3-4 に示すように main()の最初の行で停止します。
Figure 3-4. main()関数で停止したデバッガ
7. ソースデータバッファを初期化する
A.
Figure 3-5 に示すようにブレークポイントを設定します。
コード: Dstc_SwTrigger(0u);
B.
Go ボタンをクリックします。ブレークポイントで実行が停止します。
Figure 3-5. Dstc_SwTrigger(0u);でブレークする
C.
ウォッチウィンドウでソースデータ値を観測する
ウォッチウィンドウにて, バッファの中身を見るために au32SourceData の+ボタンをクリックして配列を展開くだ
さい。バッファはデータで満たされています。Figure 3-6 を参照してください。
www.cypress.com
Document No. 002-11388 Rev.**
11
Getting Started with FM 0+ Development
Figure 3-6. Source Data Buffer の内容
D.
オプション:デスティネーションデータ値を観測する
デスティネーションバッファは 0 で満たされています。このことを確認したい場合、ウォッチウィンドウで
au32DestinationData の中身を確認してください。
8. データをデスティネーションバッファにコピーするために DSTC を使用する
A.
Figure 3-7 に示すように、Debug > Go を選択するか、Go ボタンをクリックしてください。コードを完全に実行
するのに時間がかかります。
Figure 3-7. Go Button to Run the Code をクリックする
B.
Figure 3-8 に示すように、Debug > Break を選択するか、Break ボタンをクリックしてください。
Figure 3-8. Break Button to Stop the Code をクリックする
C.
ウォッチウィンドウで au32DestinationData の値を観測してください。値はソースデータバッファの中身と一致
するべきです。
アプリケーションは、データをソースバッファからデスティネーションバッファへコピーするために DSTC を使用しました。
PDL を使用した簡単なアプリケーションのビルドに成功しました。
www.cypress.com
Document No. 002-11388 Rev.**
12
Getting Started with FM 0+ Development
3.3
Keil µVision を使ったビルド
本節は Keil ツールを使用して、PDL を使用したプロジェクトのビルド・ダウンロード・実行の手順を紹介します。本説明
には S6E1B8 starter kit の DSTC サンプルを使用します。本コードはメモリにバッファを作成して、バッファの値を初期
化し、DSTC を使用してデータを別の場所にコピーします。 それから 2 つのバッファが一致することをテストします。
1. DSTC サンプルを µVision で開く
ファイル名は s6e1b8_dstc.uvprojx です。デフォルトのキットインストールでは、ファイルへのパスは次の通りです。
Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo Projects\s6e1b8_dstc\ARM
ファイルをダブルクリックして、 Figure 3-9 のように µVision IDE を開きます。
Figure 3-9. µVision project for the DSTC Example を開く
2. ターゲットプロセッサ用に PDL を設定する
本サンプルでは何かをする必要はありません。コードは既に PDL を正しく設定しています。本手順では、自分でプロ
ジェクトを作成する時にどのように操作し、何が必要かを確認しています。
pdl_device.h のターゲットプロセッサを明示します。
A.
pdl_device.h を開く
File > Open > File…を選択して、Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo
Projects\s6e1b8_dstc フォルダを開きます。 ファイルを開くとソースウィンドウに表示されます。
B.
コードを確認する
PDL_MCU_SERIES と PDL_MCU_PACKAGE.の値が定義されているコードを探してください。
本書を作成した時点で、本サンプルではコード 57 行でターゲットシリーズを定義しています。
#define PDL_MCU_SERIES
PDL_DEVICE_SERIES_S6E1B8X
本サンプルではコード 68 行でターゲットパッケージを定義しています。
#define PDL_MCU_PACKAGE
PDL_DEVICE_PACKAGE_S6_F
ファイル内のコメントも利用できる定義のある場所を示していることに注意します。
C.
ファイルを閉じる
www.cypress.com
Document No. 002-11388 Rev.**
13
Getting Started with FM 0+ Development
何か変更する必要はありません。
3. PDL 機能を設定する
本サンプルでは何かをする必要はありません。コードは既に PDL を正しく設定しています。本手順では、自分でプロ
ジェクトを作成する時にどのように操作し、何が必要かを確認しています。
pdl_user.h の PDL 機能を設定します。
A.
pdl_user.h を開く
File > Open > File…を使用して、Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo
Projects\s6e1b8_dstc フォルダを開きます。ファイルがあるので開くとソースウィンドウに表示されます。
B.
ファイルの内容を確認する
本ファイルは #define 文の長いリストを含んでいます。#define 文のそれぞれが PDL で設定可能な機能です。
機能を有効にするために、PDL_ON として定義します。無効の場合は PDL_OFF です。 本サンプルに関係す
るのは、PDL_PERIPHERAL_ENABLE_DMA を PDL_ON に設定するコード行が見つかります。本書を作成
した時点で、本サンプルではファイルの 122 行にあります。
// DSTC
#define PDL_PERIPHERAL_ENABLE_DSTC
C.
PDL_ON
ファイルを閉じる
何かを変更する必要はありません。
4. ボードを PC に繋ぐ
まだ未接続の場合は、キットの指示に従ってください。付属のケーブルを使用して、ボードの CN2 (CMSIS-DAP) ポ
ートに接続してください。 類似のポートが 2 つ並んであります。ポートがどちらか確認できない場合は Figure 3-1 を
参照してください。
適切に接続されている場合、 ボード上の LED3 パワーが緑色になります。
5. プロジェクトのデバッグビルドを選択する
デバッグビルドはデバッガシンボルを生成するためのオプションが設定されています。後に続く手順でデバッガを使
用します。
ドロップダウンメニューをクリックして、Debug を選択してください。Figure 3-10 を参照してください。
Figure 3-10. Debug Build for the Project を選択する
6. コードをビルドする
Project > Build Target を選択してください。
IDE はコードをコンパイルしてリンクします。ワーニングやエラーは発生すべきではありません。
www.cypress.com
Document No. 002-11388 Rev.**
14
Getting Started with FM 0+ Development
7. コードをダウンロードしてデバッガを起動する
Debug > Start/Stop Debug Session を選択してください。
IDE はコードをボードへダウンロードし、デバッガを起動します。プログラムカウンタは Figure 3-11 に示すように
main()の最初の行で停止します。
Figure 3-11. main()関数で停止したデバッガ
注釈:Flash description をロードできないというエラーを Keil IDE から得た場合、解決方法は簡単です。問題は、IDE
がファイルを見失っているためです。キットには必要なファイルが存在します。
デフォルトのキットインストールでは、ファイルへのパスは次の通りです。
Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo Projects\s6e1b8_dstc\ARM\flashloader
ファイル名は S6E1B86XHA.FLM です。
このファイルを Keil ツールの正しい場所にコピーしてください。Keil インストールでのパスは次の通りです。
<Installation-Path>\Keil_v5\ARM\Flash
そのあと本手順を続けてください。
www.cypress.com
Document No. 002-11388 Rev.**
15
Getting Started with FM 0+ Development
8. ウォッチウィンドウを設定する
本ステップでは、デバッガのウォッチウィンドウを開き、2 つの配列を加えることで、コード実行時に起こっていること
を確認できます。結果を Figure 3-12 に示します。
A.
au32SourceData をウォッチウィンドウに追加する
変数名を選択するために、ソースコード内の au32SourceData をダブルクリックしてください。
選択した変数名を右クリックして、 Add ‘au32SourceData’ to > Watch 1 を選択してください。
B.
au32DestinationData を追加する
変数 au32DestinationData をダブルクリックしてください。 これは変数名を選択します。
選択した変数名を右クリックして、Add ‘au32DestinationData’ to > Watch 1 を選択してください。
Figure 3-12. Watch Window の設定
9. ソースデータバッファを初期化する
A.
Figure 3-13 に示すように、ブレークポイントを設定します。
その行のコード: Dstc_SwTrigger(0u);
B.
Run ボタンをクリックしてください。ブレークポイントで実行が停止します。
Figure 3-13. Dstc_SwTrigger(0u);でブレークする
C.
ウォッチウィンドウでソースデータ値を観測する
ウォッチウィンドウにて, バッファの中身を見るために au32SourceData の+ボタンをクリックして配列を展開し
てください。バッファはデータで満たされているべきです。Figure 3-14 を参照してください。
www.cypress.com
Document No. 002-11388 Rev.**
16
Getting Started with FM 0+ Development
Figure 3-14. Source Data Buffer の内容
D.
オプション:デスティネーションデータ値を観測する
デスティネーションバッファは 0 で満たされています。このことを確認したい場合、ウォッチウィンドウで
au32DestinationData の中身を確認してください。
10. データをデスティネーションバッファにコピーするために DSTC を使用する
A.
Figure 3-15 に示すように、Debug > Run を選択するか Run ボタンをクリックしてください。コードを完全に実
行するのに時間がかかります。
Figure 3-15. Run Button to Run the Code をクリックする
B.
Figure 3-16 に示すように、Debug > Stop を選択するか Stop ボタンをクリックしてください。
Figure 3-16. Stop Button to Stop the Code をクリックする
www.cypress.com
Document No. 002-11388 Rev.**
17
Getting Started with FM 0+ Development
C.
ウォッチウィンドウで au32DestinationData の値を観測してください。値はソースデータバッファの中身と一致
するべきです。
アプリケーションは、データをソースバッファからデスティネーションバッファへコピーするために DSTC を使用しまし
た。PDL を使用した簡単なアプリケーションのビルドに成功しました。
4
Flash メモリへの書き込み
ほとんどの IDE でフラッシュへの書き込みが可能ですが、flash programmer による書き込みが好まれる、もしくはその
方法しかない場合もあります。このセクションでは、シリアルもしくは USB 接続によるフラッシュへの書き込み方法を紹
介します。USB 接続にはターゲットデバイスで USB がサポートされている必要があります。
書き込み対象は FM0+ S6E1B8-Series Starter Kit のボードとなります。ハードウェア構成は Figure 3-1 を参照願いま
す。
もし本キットをご使用でない場合は、対象のハードウェアに合わせて使用方法を調整する必要があります。ボード付属
のドキュメントにてジャンパ設定やその他詳細をご確認ください。
4.1
始める前に
ご使用になるプログラマをご確認ください。本書では以下のものが対象です。
4.2



FLASH MCU Programmer for FM0+/FM3/FM4

また、ダウンロードが必要なファイルがあります。フォーマットは Motorola S-Record か Intel-HEX である必要があ
ります。この例では、キット付属の Motorola S-Record を使用しております。

お持ちの IDE でビルドを行う場合、S-Record か Intel-HEX フォーマットのファイルを生成することができるかもしれ
ません。ご使用の IDE の説明資料をご参照願います。IAR Embedded Workbench では、Project > Options >
Output Converter メニューをご使用ください。Keil µVision では、Project > Options for Target > Output メニ
ューをご使用ください。
FLASH USB Direct Programmer
フラッシュプログラマの使用方法は、single step もしくは、自動書き込み(full operation)の 2 つの方法があります。
single step だけが、chip erase が必要となる安全保障されたフラッシュでのみ有効となることにご注意ください。こ
の例では、自動書き込みを使用しております。
FLASH MCU Programmer を使った書き込み
本手順では、S-Record が既にダウンロードされ、starter kit にインストール済であり、必要な S-Record ファイルにアク
セス可能であることが想定されております。そうでない場合、S-Record か Intel-HEX ファイルを指定し、それらのファイ
ルを代わりにご使用ください。
全ての FM0+デバイスは、シリアル接続により書き込みが行われます。S6E1B8-Series Starter Kit Board には 2 つの
コネクタがあります。一つは CMSIS-DAP での書き込み、デバッグ用で、もう一方は、USB 接続用です。 Figure 3-1 の
キャプション 4 と 7 になります。 書き込み、デバッグは USB 経由で PC へ接続した仮想 COM ポートにより行います。
この仮想 COM ポートは 2 つの独立したチャネルを使用します。一つはデバッグ用、もう一つは書き込み用です。書き
込みの場合、USB 通信は、MCU の Multi-Function Serial Interface (MFS)用にシリアルデータに変換されます。
1. ジャンパ設定
ボード上のジャンパが Table 4-1 に従って設定されていることをご確認ください。
Table 4-1. FLASH MCU Programmer による S6E1B8 書き込み用ジャンパ設定
Jumper
Default
Program by Serial
Purpose
J1
Open
Open
Sets MB9AF312K (CMSIS-DAP) to run mode.
J2
Open
Closed
Sets S6E2GM to programming mode.
www.cypress.com
Document No. 002-11388 Rev.**
18
Getting Started with FM 0+ Development
J3
Pin 1 to Pin 2
Pin 1 to Pin 2
Sets for UART programming mode.
J4
Pin 1 to Pin 2
Pin 1 to Pin 2
Get power from the CMSIS-DAP port
2. ボードへの電源供給
USB ケーブルを CMSIS-DAP port (CN3)へ接続すると、電源 LED (LED3)が点灯します(緑)。ポートの位置は
Figure 3-1 をご覧ください。
3. 使用中の COM port の確認
どの COM port にボードが接続されているか確認する必要あります。この番号を flash programmer 設定時に指定
します。
COM port 番号がわからない場合は、デバイスマネジャー を開き、Ports (COM & LPT)を確認します。FMLink/CMSIS-DAP 項目をご覧ください。COM port は Figure 4-1 に示しますように、その項目の最後に記載されて
います。番号を覚えてください。
Figure 4-1. 使用中の COM Port の確認
4. FLASH MCU Programmer の起動
以下のパスでスタートメニューから起動できます。
Start Menu > All Programs > Cypress > FLASH MCU Programmer > FM0+ FM3 FM4
www.cypress.com
Document No. 002-11388 Rev.**
19
Getting Started with FM 0+ Development
5. 書き込み設定
本ステップおよび次のステップにて、ターゲットデバイス用書き込み設定を行います。 Figure 4-2 をご覧ください。
A.
Target MCU を S6E1B86E/F/G に設定
B.
水晶発振周波数を 4 MHz に設定
C.
Hex File に書き込みたいファイルを指定
この例では tp_fm-100l-s6e1b8.srec を使用しています。このファイルは初期状態で starter kit board に書き込
まれています。
Kit の初期状態では、S-Record ファイルは以下の場所にあります。
Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo Projects\Test_Demo_Code
Figure 4-2. Programmer の設定
6. programmer 中での COM Port の設定
A.
Set Environment をクリック
B.
デバイスマネジャーで確認した番号を COM (1-256)の項目に設定する。 Figure 4-3 をご覧ください。
Figure 4-3. Programmer での COM Port の設定
www.cypress.com
Document No. 002-11388 Rev.**
20
Getting Started with FM 0+ Development
7. Flash メモリ書き込み
書き込み内容に合わせて、ボードをリセットする必要があります。Figure 4-4 と Figure 4-5 をご覧ください。
A.
書き込み開始には Full Operation (D+E+B+P)をクリックしてください。(注意: Full Operation は安全保障され
たフラッシュでは動作しません。その場合は single steps を使用する必要があります。)
Figure 4-4. Full Operation ボタンをクリック
書き込みが始まり、 Figure 4-5 のようにダイアログボックスが現れます。
B.
ボードのリセット
ボード上のリセットスイッチ(SW1)を押し、OK をクリックします。
Figure 4-5. Microcontroller のリセット
Programmer が選択したファイルをボードへダウンロードします。
書き込みが成功したことを確認するために、Serial Port Viewer tool (kit にインストール済)を使用して、ボード接続
しデモコードを実行することができます。starter kit guide 中に指示書があります。書き込み中に問題やエラーが発
生した場合は、Help をクリックしてください。
www.cypress.com
Document No. 002-11388 Rev.**
21
Getting Started with FM 0+ Development
4.3
FLASH USB DIRECT Programmer を使った書き込み
本手順では必要ファイルがダウンロードされ、starter kit にインストール済であり、必要な S-Record ファイルにアクセス
可能であることが想定されております。そうでない場合、S-Record か Intel-HEX ファイルを指定し、それらのファイルを
代わりにご使用ください。 USB 接続はターゲットデバイスで USB がサポートされていることが必要となります。
1.
ジャンパ設定
ボード上のジャンパが Table 4-2 に従って設定されていることをご確認ください。
Table 4-2: FLASH USB DIRECT Programmer による S6E1B8 書き込み用ジャンパ設定
Jumper
Default
Program by USB
Purpose
J1
Open
Open
Sets MB9AF312K (CMSIS-DAP) to run mode.
J2
Open
Closed
Sets S6E2GM to programming mode.
J3
Pin 1 to Pin 2
Pin 2 to Pin 3
Sets for USB programming mode.
J4
Pin 1 to Pin 2
Pin 2 to Pin 3
Get power from the USB port
2. ボードへの電源供給
USB ケーブルを CN4 port へ接続すると、電源 LED (LED3)が点灯します(緑)。ポートの位置は Figure 3-1 をご覧
ください。
3. 使用中の COM Port の確認
どの COM port にボードが接続されているか確認する必要があります。この番号を flash programmer 設定時に指
定します。
COM port 番号がわからない場合は、デバイスマネジャーを開き、Ports (COM & LPT)を確認します。USBVCOM
項目をご覧ください。COM port は Figure 4-6 に示しますように、その項目の最後に記載されています。番号を覚え
てください。
Figure 4-6. 使用中の COM Port の確認
4. FLASH USB DIRECT Programmer の起動
以下のパスでスタートメニューから起動できます。
Start Menu > All Programs > Cypress > FLASH USB DIRECT Programmer > USBDirect
www.cypress.com
Document No. 002-11388 Rev.**
22
Getting Started with FM 0+ Development
5. 書き込み設定
本ステップにて、ターゲットデバイス用書き込み設定を行います。 Figure 4-7 をご覧ください。
A.
Target MCU を S6E1B86E/F/G に設定
B.
Hex File に 書き込みたいファイルを指定
この例では、tp_fm-100l-s6e1b8.srec を使用しています。このファイルは初期状態で starter kit board に書き
込まれています。S-Record ファイルは以下の場所にあります。
Documents\Cypress\FM0+ S6E1B-Series Starter Kit\Firmware\Demo Projects\Test_Demo_Code
デバイスマネジャーで確認した番号を COM (1-256)の項目に設定する。
Figure 4-7. Programmer の設定
6. Flash メモリ書き込み
書き込み内容に合わせて、ボードをリセットする必要があります。
A.
書き込み開始時には Full Operation (D+E+B+P)をクリックしてください。(注意: Full Operation は安全保障さ
れたフラッシュでは動作しません。その場合は single steps を使用する必要があります。)
書き込みが始まり、ダイアログボックスが現れます。
B.
ボードのリセット
ボード上のリセットスイッチ(SW1)を押し、 Figure 4-8 のように OK をクリックします。
本操作を複数回以上行う必要があるかも知れません。
Figure 4-8. Microcontroller のリセット
www.cypress.com
Document No. 002-11388 Rev.**
23
Getting Started with FM 0+ Development
書き込みが成功したことを確認するために、Serial Port Viewer tool (kit にインストール済)を使用して、ボード接続
しデモコードを実行することができます。starter kit guide 中に指示書があります。
5
FM0+ Family 関連資料
サイプレスは FM0+ Family を知っていただき、効率的に開発できるよう多数の関連資料を提供しています。開発フェー
ズごとに関連資料を調べて選択できるように以下の Table 5-1 を準備しています。
Table 5-1. FM0+ Family 関連資料ナビゲータ
必要案件
関連資料
本文書
サイプレス ウェブページ FM0+ product pages
FM0+スタータキットの購入
FM0+の評価
FM0+ S6E1A1 MCU Evaluation Board
FM0+ S6E1B8 MCU Starter Kit
FM0+ S6E1C3-Series Starter Kit
製品データシートの参照 FM0+ Datasheets.
アプリケーションノート AN202487 - Differences Among FM0+, FM3, and FM4 Families
FM 製品の選択
製品セレクタガイドのダウンロードおよび確認 Product Selector Guide.
AN202487 - Differences Among FM0+, FM3, and FM4 Families 参照
FM0+サポートツールのウェブページ FM0+ Support Tools page.
利用できるツールの確認
エコシステムウェブページ FM Ecosystem にアクセスする。IDE、コンパイラ、デバッガ、オペレーティ
ングシステム、ミドルウェア、評価ボード、トレーニングなどを提供するパートナーについてのリンクから
アクセスする。いくつかのアイテムについては提供されていない可能性があります。
PDL をインストールして使用する FM0+ Starter Kit の購入
FM0+ S6E1B8 MCU Starter Kit
FM0+ S6E1C-Series Starter Kit
Peripheral Driver Library
の学習
本文書の Peripheral Driver Library 概要 を参照
PDL のダウンロード、本文書の Getting and Installing the PDL を参照
PDL Quick Start Guide を読み、PDL をインストール
PDL を含む 100 以上のサンプルを使って学習
製品データシートの参照 FM0+ Datasheets.
技術資料として FM0+ペリフェラルマニュアルの参照 FM0+ Peripheral Manuals
FM0+開発用としてテンプレートプロジェクトを入手 template project
PDL を使わないソフトウェ
ア開発
テンプレートプロジェクトとサンプルコードを FM0+ S6E1A1 MCU 評価ボード ウェブページから入手
FM0+に関連するアプリケーションノート 以下の例を含む:
AN205411 - FM0+ IEC60730 Class_B Self-Test Library
AN202483 - FM0+ S6E1A1 Series MCU Low-Voltage 3-Phase BLDC and PMSM Control
AN99218 - Multi Function Serial Interface of FM MCU
AN99231 - Using Interrupts in FM0+ Family S6E1C3 Series
Flash Programmer の入手
FLASH MCU Programmer for FM0+/FM3/FM4
Flash プログラミングの学
習
FLASH USB DIRECT Programmer
本文書の Flash メモリへの書き込み
対応する FM0+シリーズの Flash Programming Manual:
S6E1Ax
S6E1Bx
S6E1Cx
アプリケーションノート AN204438 - How to Setup Flash Security for FM0+, FM3 and FM4
www.cypress.com
Document No. 002-11388 Rev.**
24
Getting Started with FM 0+ Development
必要案件
関連資料
Families
著者について
Name:
James Trudeau
Title:
Senior Application Engineer
Background:
Jim Trudeau started at Cypress in 2015, continuing a long career in technical
support, technical communication, and developer relations in the software tools and
semiconductor industry.
改訂履歴
文書名: AN210985 – FM0+入門
文書番号: 002-11388
Revision
**
www.cypress.com
ECN
5152892
Orig. of
Change
EIHA
Submission
Date
2016-02-26
Description of Change
New Spec. (これは英語版の 002-10985 Rev. ** を翻訳した日本語版です。)
Document No. 002-11388 Rev.**
25
Getting Started with FM 0+ Development
セールス, ソリューションおよび法律情報
ワールドワイドな販売と設計サポート
サイプレスは、事業所、ソリューション センター、メーカー代理店、および販売代理店の世界的なネットワークを保持しています。お客様
の最寄りのオフィスについては、サイプレスのロケーション ページをご覧ください。
製品
®
®
ARM Cortex Microcontrollers
車載用
クロック&バッファ
cypress.com/arm
cypress.com/automotive
cypress.com/clocks
インターフェース
cypress.com/interface
照明&電力制御
cypress.com/powerpsoc
メモリ
cypress.com/memory
PSoC
cypress.com/psoc
タッチ センシング
USB コントローラー
ワイヤレス/RF
®
PSoC ソリューション
cypress.com/psoc
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
サイプレス開発者コミュニティ
コミュニティ | フォーラム | ブログ | ビデオ | トレーニング
テクニカルサポート
cypress.com/support
cypress.com/touch
cypress.com/usb
cypress.com/wireless
Cypress, Cypress ロゴ, Spansion®, Spansion ロゴ, MirrorBit®, MirrorBit® EclipseTM, ORNANDTM, Easy DesignSimTM, TraveoTM 及びこれらの組合せは、米国・日本ほか諸外国における
Cypress Semiconductor Corp.の商標です。ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries. 第三者の社名・製品名等の記載はここでは情報提供を目
的として表記したものであり、各権利者の商標もしくは登録商標となっている場合があります。
Cypress Semiconductor
Phone
: 408-943-2600
198 Champion Court
Fax
: 408-943-4730
San Jose, CA 95134-1709
Website : www.cypress.com
© Cypress Semiconductor Corporation, 2016. 本文書に記載される情報は予告なく変更される場合があります。Cypress Semiconductor Corporation (サイプレス セミコンダクタ社) は、サイプレス製品
に組み込まれた回路以外のいかなる回路を使用することに対して一切の責任を負いません。サイプレス セミコンダクタ社は、特許またはその他の権利に基づくライセンスを譲渡することも、または含意する
こともありません。サイプレス製品は、サイプレスとの書面による合意に基づくものでない限り、医療、生命維持、救命、重要な管理、または安全の用途のために使用することを保証するものではなく、また
使用することを意図したものでもありません。さらにサイプレスは、誤動作や誤りによって使用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとしてサイプレ
ス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる
責任を免除されることを意味します。
すべてのソース コード (ソフトウェアおよび/またはファームウェア) はサイプレス セミコンダクタ社 (以下「サイプレス」) が所有し、全世界の特許権保護 (米国およびその他の国)、米国の著作権法ならびに
国際協定の条項により保護され、かつそれらに従います。サイプレスが本書面によりライセンシーに付与するライセンスは、個人的、非独占的かつ譲渡不能のライセンスであり、適用される契約で指定され
たサイプレスの集積回路と併用されるライセンシーの製品のみをサポートするカスタム ソフトウェアおよび/またはカスタム ファームウェアを作成する目的に限って、サイプレスのソース コードの派生著作
物をコピー、使用、変更そして作成するためのライセンス、ならびにサイプレスのソース コードおよび派生著作物をコンパイルするためのライセンスです。上記で指定された場合を除き、サイプレスの書面に
よる明示的な許可なくして本ソース コードを複製、変更、変換、コンパイル、または表示することはすべて禁止します。
免責条項: サイプレスは、明示的または黙示的を問わず、本資料に関するいかなる種類の保証も行いません。これには、商品性または特定目的への適合性の黙示的な保証が含まれますが、これに限定
されません。サイプレスは、本文書に記載される資料に対して今後予告なく変更を加える権利を留保します。サイプレスは、本文書に記載されるいかなる製品または回路を適用または使用したことによって
生ずるいかなる責任も負いません。サイプレスは、誤動作や故障によって使用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとしてサイプレス製品を使用
することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任を免除さ
れることを意味します。
ソフトウェアの使用は、適用されるサイプレス ソフトウェア ライセンス契約によって制限され、かつ制約される場合があります
www.cypress.com
Document No. 002-11388 Rev.**
26