132
TM September 2013

Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

TM

September 2013

Page 2: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

TM 2

1. Kinetisシリーズ概要紹介

2. Kinetis L シリーズの低消費電力技術の紹介

3. Kinetis LシリーズのFreedomボードを使用したハンズオン

4. オンライン開発環境「mbed」の紹介

Page 3: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

3 TM

50年以上の実績

5,500人以上のエンジニア

6,000件以上の特許群

マイクロコントローラ&デジタル・ネットワーキング・プロセッサの

グローバル・リーダー

マイクロコントローラ

デジタル・ネットワーキング

オートモーティブ MCU

アナログ&センサ

RF

5つのコア製品

グループ

4つのフォーカスマーケット

オートモーティブ

ネットワーキング

インダストリアル

コンスーマ

Page 4: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

4 TM

MC6801

First Engine

Control MCU

First 32-bit

68K MCU

1978 1988 1993 1995

2003

2006

2007

2010

First Flash-based 32-bit MCUs

for Single-Chip Connectivity

First 32-bit MCU w/Flash memory

Flexis 8- and 32-bit

MCU Duos

First 90 nm industrial MCUs

ColdFire+ and Kinetis

First ColdFire 32-bit MCU

MPC5500

32-bit RISC MCU

2009 First Dual-Core

Automotive Power

Architecture MCU

2012 Expanding Kinetis portfolio

Page 5: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

5 TM

業界最高クラスのARMコア搭載製品ラインナップによる

スケーラビリティとコンパチビリティを提供

Kinetis(キネティス)

マイクロコントローラ Design Potential. Realized

Vybrid(バイブリッド) コントローラソリューション Rich Apps in Real Time.

i.MX(アイドットエムエックス) アプリケーションプロセッサ Your Interface to the World.

QorIQプロセッサ

built on Layerscape

Architecture Accelerating the Network’s IQ

Real-time, highly integrated

solutions with best-in-class 2D

graphics to enable

your system to control,

interface, connect, secure and

scale.

Industry’s most versatile

solutions for multimedia and

display applications, with

multicore scalability and

market-leading power,

performance & integration.

Industry’s most scalable

ultra-low-power, mixed-signal

MCU solutions based on the

ARM Cortex-M4(F) and

Cortex-M0+ architectures.

Industry’s first software-aware,

core-agnostic networking

system architecture for the

smarter, more capable

networks of

tomorrow – end to end.

オートモーティブ オートモーティブ ネットワーキング

インダストリアル インダストリアル インダストリアル

コンシューマ コンシューマ コンシューマ

インダストリアル

コンシューマ

Page 6: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

6 TM

Pe

rfo

rma

nc

e

Integration

Kinetis Lシリーズ 超低消費電力 / 低コスト

ARM Cortex-M0+コア

48MHz / 8KB – 256KB

ミックスドシグナル

コネクティビティ & HMI

小ピン・パッケージ

Kinetis Eシリーズ 堅牢 / 5V

ARM Cortex-M0+コア

20MHz / 64KB

256バイト EEPROM

高ノイズ環境対応

高信頼性アプリケーション対応

フリースケール製ツールチェーン + ARMエコシステム・パートナによる IDE / RTOS / ミドルウェア・パッケージ

ARMマイコン最大級のスケーラブルなラインナップと低消費電力、高信頼性、長期製品供給プログラム

Kinetis Kシリーズ 高性能

ARM Cortex-M4(F)コア

50MHz – 150MHz

32KB – 1MB

低電力FlexMemory

ミックスドシグナル

コネクティビティ

HMI & セキュリティ

汎用組込み向け

特定用途向け

Kinetis Wシリーズ RFトランシーバ内蔵

ARM Cortex-M0+コア

およびARM Cortex-M4コア

sub-1 GHz or 2.4 GHz

高性能RFトランシーバ

Kinetis Mシリーズ 高精度メータリング

ARM Cortex-M0+コア

24-bit ADコンバータ

スマートメータ機能を

ワンチップに集積

量産中

量産中

Coming

2013

ES

供給中

ES

供給中

新製品

Page 7: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

7 TM

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I K30 Family

72-100MHz

64-512KB

64-144pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I K20 Family

50-120MHz

32KB-1MB

32-144pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I K10 Family

50-120MHz

32KB-1MB

32-144pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I K40 Family

72-100MHz

64-512KB

64-144pin

I I I I I I I I

I I

I I I

I I I I I I I I

I I

I I I K50 Family

72-100MHz

128-512KB

64-144pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I K60 Family

100-150MHz

256KB-1MB

100-256pin

I I I I I I I I

I I

I I I

I I I I I I I I

I I

I I I K70 Family

120-150MHz

512KB-1MB

196-256pin

+ USB

+セグメント

LCD

+セグメント

LCD

+ USB

+ イーサネット, 暗号化

タンパ回路

DRAMコントローラ

+ アナログ測定エンジン

イーサネット, 暗号化

+グラフィックLCD

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I KL3x Family

48MHz

64-256KB

64-121pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I KL2x Family

48MHz

32KB-256KB

32-121pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I KL1x Family

48MHz

32KB-256KB

32-80pin

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I KL4x Family

48MHz

128-256KB

64-121pin

8ビット

MCU

コンパチ

I I I I I I I I

I I I I I I I I

I I

I I I

I I

I I I KL0x Family

48MHz

8KB-32KB

<24-48pin

エントリ

ポイント

ARM

Cortex-M0+

ARM

Cortex-M4

Page 8: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

8 TM

32QFN

5 x 5 mm

0.5mm pitch

(K10/20)

(KL0/1/2)

Common Packages

64MAPBGA

5 x 5 mm

0.5mm pitch

(K10/20)

(KL1*/2*/3*/4*)

Kinetis K Series Package

Kinetis L Series Package

48LQFP

7 x 7 mm

0.55mm pitch

(K10/20)

(KL0/1*/2*)

64LQFP

10 x 10 mm

0.5mm pitch

(K10/20/30/40/50)

(KL1/2/3/4)

80LQFP

12 x 12 mm

0.5mm pitch

(K10/20/30/40/50)

(KL1/2/3*/4*)

100LQFP

14 x 14 mm

0.5mm pitch

(K10/20/30/40/50/60)

(KL3/4)

144LQFP

20 x 20 mm

0.5mm pitch

(K10/20/30/40/50/60)

48QFN

7 x 7 mm

0.5mm pitch

(K10/20)

(KL0/1*/2*)

144MAPBGA

13 x 13 mm

1.0mm pitch

(K10/20/30/40/50/60)

256MAPBGA

17 x 17 mm

1.0mm pitch

(K60/70)

121MAPBGA

8 x 8 mm

0.65mm pitch

(K10/20/30/40/50/60)

(KL2/3/4)

32LQFP

7 x 7 mm

0.8mm pitch

(KL0)

35WLCSP

2.55x3x0.56 mm

0.4mm pitch

(KL1*/2*)

25WLCSP

2.3x2.3x0.56 mm

0.4mm pitch

(KL0*)

20WLCSP

2x2x0.56 mm

0.4mm pitch

(KL0)

90WLCSP

3.9x4.4x0.56 mm

0.4mm pitch

(K10/20*)

110WLCSP

3.9x4.4x0.56 mm

0.4mm pitch

(K10/20*)

120WLCSP

5.3x5.3x0.56 mm

0.4mm pitch

(K10/20/60)

143WLCSP

6.5x5.6x0.56 mm

0.4mm pitch

(K61)

24QFN

4 x4x1 mm

0.5mm pitch

(KL0x)

16QFN

3x3x1 mm

0.5mm pitch

(KL02)

Kinetis L Series Only Kinetis K Series Only

Page 9: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

TM 9

1. Kinetisシリーズ概要紹介

2. Kinetis L シリーズの低消費電力技術の紹介

3. Kinetis LシリーズのFreedomボードを使用したハンズオン

4. オンライン開発環境「mbed」の紹介

Page 10: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

10 TM

世界最高エネルギー効率 高効率コア

&

省電力アーキテクチャ

ローエンドからハイエンドまで幅広いスケラービリティ

Kinetis K シリーズとの互換性とピンコンパチ品の提供

&

多彩なメモリサイズと

パッケージ・ラインナップ

充実した

エコシステム ARM エコシステム

&

フリースケール

システムパートナー

Kinetis L Series The evolution of the entry-level MCU

Page 11: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

11 TM

TM

1.世界最高エネルギー効率 Cortex-M0+ プロセッサ 高効率 32ビットプ・ロセッサ

CoreMark/mA比較でM0コアより30%アップ

3.豊富なローパワー・モード バッテリライフを最大化するさまざまなアプリケーションに適用可能な柔軟なパワーモード

2.省エネルギー・アーキテクチャ 90nm薄膜ストレージ・テクノロジ

クロック・パワーゲーティング

ローパワー・ブート・オプション

ローパワーIOピンコンフィグレーション

ビット・マニピュレーション・エンジン

ペリフェラル・ブリッジ・クロスバ

ゼロウェイト・ステート・フラッシュメモリ・コントローラ

4.省エネルギー・ペリフェラル ディープスリープ・モード時にコアを起こすことなくオフロードで動作可能なスマート・ペリフェラル搭載

Page 12: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

12 TM

TM

1.世界最高エネルギー効率 Cortex-M0+ プロセッサ 高効率 32ビット・プロセッサ

CoreMark/mA比較でM0コアより30%アップ

3.豊富なローパワー・モード バッテリライフを最大化するさまざまなアプリケーションに適用可能な柔軟なパワーモード

2.省エネルギー・アーキテクチャ 90nm薄膜ストレージ・テクノロジ

クロック・パワーゲーティング

ローパワー・ブート・オプション

ローパワーIOピンコンフィグレーション

ビット・マニピュレーション・エンジン

ペリフェラル・ブリッジ・クロスバ

ゼロウェイト・ステート・フラッシュメモリ・コントローラ

4.省エネルギー・ペリフェラル ディープスリープ・モード時にコアを起こすことなくオフロードで動作可能なスマート・ペリフェラル搭載

Page 13: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

13 TM

シングル・サイクル

アクセス I/O ポート • M0コア比50%高速GPIO

•ネスト型ベクタ割込みコントローラ(NVIC)

•外部イベントに対する低レイテンシ、ばらつきのない割込み応答性能

エネルギー効率 • 2段パイプライン

•ダイナミック電力の最適化

•パワーマネジメント機能

•ウェイクアップ割込みコントローラ

マイクロ・トレース

バッファ(MTB) •より高速で正確なデバッグが可能

•非イントルーシブ型

• 2ピンSWDやJTAGからのリード(CPU Stop状態)

プロセッサ能力 • 1.77Coremark/MHzの性能

• Cortex-M0コアとの完全互換

• Cortex-M3/M4コアとの高い互換性によるアップグレード

•わずか56の命令セット

• Thumb命令によるクラス最高のコード密度

Page 14: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

14 TM

TM

1.世界最高エネルギー効率 Cortex-M0+ プロセッサ 高効率 32ビット・プロセッサ

CoreMark/mA比較でM0コアより30%アップ

3.豊富なローパワー・モード バッテリライフを最大化するさまざまなアプリケーションに適用可能な柔軟なパワーモード

2.省エネルギー・アーキテクチャ 90nm薄膜ストレージ・テクノロジ

クロック・パワーゲーティング

ローパワー・ブート・オプション

ローパワーIOピンコンフィグレーション

ビット・マニピュレーション・エンジン

ペリフェラル・ブリッジ・クロスバ

ゼロウェイト・ステート・フラッシュメモリ・コントローラ

4.省エネルギー・ペリフェラル ディープスリープ・モード時にコアを起こすことなくオフロードで動作可能なスマート・ペリフェラル搭載

Page 15: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

15 TM

• 書き込み時

− Logical AND, OR, XOR

− Bit field insert (BFI)

Peripherals BME Core Accesses

BMEを使用すると・・・

命令数が削減できる 処理時間

コードサイズ の削減

ビット・マニピュレーション・エンジンとは・・・

各ペリフェラルのレジスタ値を読み込むか書き込む時に、同時にビット操作を行うことができるハードウェア・エンジン

サポートされている操作

• 読み込み時

− Load-and-Clear 1 bit (LAC1)

− Load-and-Set 1 bit (LAS1)

− Unsigned Bit Field Extract (UBFX)

Page 16: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

16 TM

BMEを使わずに XOR 操作を行う場合(通常のCコードで実装)

GPIOA_PDOR ^= 0x02;

0000005E 0x.... LDR R0,??DataTable6_5 ;; 0x400ff000

00000060 0x6800 LDR R0,[R0, #+0]

00000062 0x2102 MOVS R1,#+2

00000064 0x4041 EORS R1,R1,R0

00000066 0x.... LDR R0,??DataTable6_5 ;; 0x400ff000

00000068 0x6001 STR R1,[R0, #+0]

コードサイズとして12バイト使用

コード上での記述

(Cコードで実装)

実際の処理

Page 17: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

17 TM

BMEを使用して XOR 操作を行う場合

//macro used to generate hardcoded XOR address

#define BME_XOR_ADDR(ADDR) (*(volatile uint32_t

*)(((uint32_t)ADDR) | (3<<26)))

BME_XOR_ADDR(&GPIOA_PDOR) = 0x02;

00000014 0x.... LDR R0,??DataTable6_6 ;; 0x4c0ff000

00000016 0x2102 MOVS R1,#+2

00000018 0x6001 STR R1,[R0, #+0]

コードサイズとして6バイト使用

BMEを使用しない場合に比べて50%コードサイズを削減

コード上での

定義と記述

実際の処理

Page 18: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

18 TM

XOR操作を行った場合の処理時間比較

通常のCコードで実装 BMEを使用した場合

処理時間は276ns → 166ns と約40%削減

Page 19: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

19 TM

BMEを使わずにBit Field Insert 操作を行う場合(通常のCコードで実装)

reg_val = *addr;

mask = ((1 << (fieldwidth+1)) - 1) << bitpos;

reg_val = (reg_val & ~mask)|((wdata) & mask);

*addr = reg_val;

reg_val = *addr;

00000022 0x6804 LDR R4,[R0, #+0]

mask = ((1 << (fieldwidth+1)) - 1) << bitpos;

00000024 0x2501 MOVS R5,#+1

00000026 0x1C5B ADDS R3,R3,#+1

00000028 0x409D LSLS R5,R5,R3

0000002A 0x1E6D SUBS R5,R5,#+1

0000002C 0x4095 LSLS R5,R5,R2

reg_val = (reg_val & ~mask)|((wdata) & mask);

0000002E 0x43AC BICS R4,R4,R5

00000030 0x0022 MOVS R2,R4

00000032 0x002C MOVS R4,R5

00000034 0x400C ANDS R4,R4,R1

00000036 0x4314 ORRS R4,R4,R2

*addr = reg_val;

00000038 0x6004 STR R4,[R0, #+0]

コードサイズとして24バイト使用

実際の処理

Bit field offset “b” Data being written New destination value

0 ----_-xyz abcd_exyz

1 ----_xyz- abcd_xyzh

2 ---x_yz-- abcx_yzgh

3 --xy_z--- abxy_zfgh

4 -xyz_---- axyz_efgh

5 xyz-_---- xyzd_efgh

6 yz--_---- yzcd_efgh

7 z---_---- zbcd_efgh

ビット・フィールド・インサートの例

コード上での記述

(Cコードで実装)

Page 20: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

20 TM

BMEを使用してBit Field Insert操作を行う場合 //macro used to generate hardcoded BFI address

#define BME_BFI_ADDR(ADDR, BIT, WIDTH) (*(volatile uint32_t

*)(((uint32_t)ADDR) | (1<<28) | (BIT<<23) | (WIDTH<<19)))

BME_BFI_ADDR(&ADC0_CFG1, 0x05, 0x01) = 0x40;

00000020 0x.... LDR R0,??DataTable6_9 ;; 0x528bb008

00000022 0x2140 MOVS R1,#+64

00000024 0x6001 STR R1,[R0, #+0]

コードサイズとして6バイト使用

BMEを使用しない場合と比べて約75%コードサイズを削減

実際の処理

コード上での

定義と記述

Page 21: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

21 TM

Bit Field Insert操作を行った場合の処理時間比較

通常のCコードで実装 BMEを使用した場合

処理時間は608ns → 440ns と25%以上削減

Page 22: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

22 TM

TM

1.世界最高エネルギー効率 Cortex-M0+ プロセッサ 高効率 32ビット・プロセッサ

CoreMark/mA比較でM0コアより30%アップ

3.豊富なローパワー・モード バッテリライフを最大化するさまざまなアプリケーションに適用可能な柔軟なパワーモード

2.省エネルギー・アーキテクチャ 90nm薄膜ストレージ・テクノロジ

クロック・パワーゲーティング

ローパワー・ブート・オプション

ローパワーIOピンコンフィグレーション

ビット・マニピュレーション・エンジン

ペリフェラル・ブリッジ・クロスバ

ゼロウェイト・ステート・フラッシュメモリ・コントローラ

4.省エネルギー・ペリフェラル ディープスリープ・モード時にコアを起こすことなくオフロードで動作可能なスマート・ペリフェラル搭載

Page 23: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

23 TM

ペリフェラル・ブリッジクロスバ(AXBS-Lite)

• マスタ(コア&DMA)からスレーブ(メモリ&ペリフェラル)へ複数同時アクセスをサポート

クロック&パワーゲーティング

• ペリフェラル・クロックをディセーブルにすることで無駄な電力を削減 (デフォルトでディセーブル)

• ペリフェラルとウェイクアップ・リソースへの電力をカットできるLLSおよびVLLSx

モード

ローパワー・ブート・オプション

• 起動時のスパイクを削減するためのパワーオン・リセットとローパワー復帰時間の設定が可能

ローパワーIOピンコンフィグレーション

• I/Oピンはデフォルトでピンの漏れ電流を削減できるローパワー・コンフィグレーションに設定

→ リセットからIO初期設定までの漏れ電流をカット

Page 24: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

24 TM

TM

1.世界最高エネルギー効率 Cortex-M0+ プロセッサ 高効率 32ビット・プロセッサ

CoreMark/mA比較でM0コアより30%アップ

3.豊富なローパワー・モード バッテリライフを最大化するさまざまなアプリケーションに適用可能な柔軟なパワーモード

2.省エネルギー・アーキテクチャ 90nm薄膜ストレージ・テクノロジ

クロック・パワーゲーティング

ローパワー・ブート・オプション

ローパワーIOピンコンフィグレーション

ビット・マニピュレーション・エンジン

ペリフェラル・ブリッジ・クロスバ

ゼロウェイト・ステート・フラッシュメモリ・コントローラ

4.省エネルギー・ペリフェラル ディープスリープ・モード時にコアを起こすことなくオフロードで動作可能なスマート・ペリフェラル搭載

Page 25: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

25 TM

Mode Definition

Run MCUは最大周波数で実行可能。Compute Operation(CPUとSRAM. Flash間のアクセスのみ可能で他のバスマスタ/スレーブはStopモードになる機能)をサポート。

VLP Run (VLPR)

MCUの動作周波数がCore/System=4MHz, Bus/Flash=1 MHz に制限される。LVD プロテクションはオフとなり、Flash

の書き込みも禁止となる。Compute Operationをサポート。

Wait 全てのペリフェラルは動作可能。CPUはスリープ状態。

VLP Wait (VLPW)

CPUはスリープ状態となる以外はVLP Runと同様。

Stop

MCUはスタティック状態となり、LVDプロテクション可能。Energy-savingペリフェラルは Asynchronous DMA

(ADMA)とともに動作可能。ペリフェラル毎にクロックを停止させるオプションあり。PLLをアクティブ状態に保持が可能。

VLP Stop (VLPS)

MCUはスタティック状態となり、LVDプロテクションがオフとなる。Energy-savingペリフェラルはADMA機能とともに動作可能。

LL Stop (LLS)

MCUは内部ロジックのパワーを落としてLow Leakageモードに入る。LLWUモジュールで有効にした復帰ソース(LPTMR, RTC, TSI, CMP, 選択されたピン割り込み)で復帰可能。

VLL Stop 3 (VLLS3)

MCUは内部ロジックのパワーを落としてLow Leakageモードに入る。全てのRAMとI/Oの状態は保持される。レジスタは保持されない。LLSモードと同様にLLWUモジュールが復帰ソースを制御する。

VLL Stop 1 (VLLS1)

RAMとレジスタを保持しないこと以外はVLLS3と同等。

VLL Stop 0

(VLLS0)

LPO(1kHz内部オシレータ)がオフとなる。外部クロック使用時にLLWUモジュールによるLPTMR, RTC, TSI, CMPからの復帰が可能。パワーオン・リセットのイネーブル/ディセーブルが選択可能。

一般的なRun, Wait, Stopモードに加えRun, Sleep, Deep Sleepに各パワーオプションを追加し様々なアプリケーションに対するバッテリライフの最大化に貢献

RU

N

SL

EE

P

DE

EP

SL

EE

P

Page 26: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

26 TM

Kinetis

消費電力モード 復帰時間

KL25

Idd @ 3.0V and 25℃

消費電力

(左表からの計算値)

Run - 85uA/MHz* 255uW/MHz*

Very Low Power Run - 47uA/MHz** 141uW/MHz**

Wait - 3.7mA @ 48MHz 11.1mW @ 48MHz

Very Low Power Wait - 135uA @ 4MHz 405uW @ 4MHz

Stop 4us 345uA 1035uW

Very Low Power Stop 4us 4.4uA 13.2uW

Low Leakage Stop 4us 1.9uA 5.7uW

Very Low leakage Stop 3 42us 1.4uA 4.2uW

Very Low leakage Stop 1 93us 0.7uA 2.1uW

Very Low leakage Stop 0

(POR Disable / Enable) 95us 176nA / 381nA 528nW / 1143nW

RUN

VLPR

WAIT

VLPW

STOP

LLS

VLLS3

VLLS0

* Compute Operation enabled: 6.4mA @ 48MHz core / 24MHz bus)

** Compute Operation enabled: 300uA @ 4MHz core / 0.8MHz bus)

VLPS

VLLS1

Core&Flash clock enable

Bus clock disable

While(1)loopを実行した場合

Page 27: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

27 TM

TM

1.世界最高エネルギー効率 Cortex-M0+ プロセッサ 高効率 32ビット・プロセッサ

CoreMark/mA比較でM0コアより30%アップ

3.豊富なローパワー・モード バッテリライフを最大化するさまざまなアプリケーションに適用可能な柔軟なパワーモード

2.省エネルギー・アーキテクチャ 90nm薄膜ストレージ・テクノロジ

クロック・パワーゲーティング

ローパワー・ブート・オプション

ローパワーIOピンコンフィグレーション

ビット・マニピュレーション・エンジン

ペリフェラル・ブリッジ・クロスバ

ゼロウェイト・ステート・フラッシュメモリ・コントローラ

4.省エネルギー・ペリフェラル ディープスリープ・モード時にコアを起こすことなくオフロードで動作可能なスマート・ペリフェラル搭載

Page 28: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

28 TM

Collect Data Compute

DEEPSLEEPモードでの機能

Kinetis L-シリーズ

System

FLASH

RAM

DMA

4-ch User CLK

Control

Peripheral Bus

Standard peripherals

UART

TIMER

Analog

and

More

Tx/RX

IC/OC

Analog

CORE,

Interrupts

RESET

DEEPSLEEPモード・サポート

• UART信号の送受信

• PWM波形の生成 &インプットキャプチャ / アウトプット

• コンペア

• コンパレータ&ADコンバータ

上記のペリフェラルはDMAに

データ転送要求を行うことができ、DMAがSLEEPモードで

データ転送を完了すると再びDEEPSLEEPモードに戻ることができる

Page 29: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

29 TM

Peripheral Low Power Functionality

DMA

STOP/VLPSモードでADC, CMP, UART, Timer/PWM, TSI, PORTなどのペリフェラルからのトリガでウェイトモードへ復帰しDMA転送を行ったのち、再びSTOP/VLPSモードへとCPUの介在なしに移行できる

UART STOP/VLPSでも動作可能。割り込み要求、DMAリクエストのトリガもサポート

SPI アドレス・マッチ・ウェイクアップをサポート

STOP/VLPSモードでも先頭1ワードの受信が可能

I2C STOP/VLPSモードでの複数アドレス・マッチ・ウェイクアップをサポート

USB STOP/VLPSモードでの非同期復帰をサポート

LPTPM

(Timer/PWM)

STOP/VLPSモードでも16ビットタイマでのインプット・キャプチャ、アウトプット・コンペア、PWM出力が実行可能

LPTMR

(Timer/Pulse

Counter)

すべてのパワーモードで16ビットタイマとパルスカウンタが使用可能

RTC すべてのパワーモードで32ビット・リアルタイム・カウンタが使用可能

バッテリライフを長くするためにCPUが介在することなく

Deep Sleepモードに入っている時間を最大化できる

インテリジェント・ペリフェラル

Page 30: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

30 TM

Peripheral Low Power Functionality

ADC STOP/VLPSモードでの動作をサポート

CMP

(Analog

Comparator) すべてのモードで使用可能

DAC すべてのパワーモードでスタティック・リファレンスをサポート

Segment LCD すべてのパワーモードで表示切り替えと点滅動作をサポート

TSI

(Capacitive

Touch Sense

Interface)

すべてのパワーモードで起動ソースとして使用可能

LLWU

(Low-Leakage

Wake-up Unit)

LLS, VLLSxモードで使用できるウェイクアップ・ピン(8本)、 リセット、 NMIウェイクアップ・ピンといくつかのペリフェラルによる復帰をサポート

バッテリライフを長くするためにCPUが介在することなく

Deep Sleepモードに入っている時間を最大化できる

インテリジェント・ペリフェラル

Page 31: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

TM 31

1. Kinetisシリーズ概要紹介

2. Kinetis L シリーズの低消費電力技術の紹介

3. Kinetis LシリーズのFreedomボードを使用したハンズオン

4. オンライン開発環境「mbed」の紹介

Page 32: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

32 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 33: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

33 TM

• KL25Z128VLK4 (128KB, 80LQFP, USB)

KL05Z32VFM4 (32KB, 32QFN)を実装

• USBでPCと接続するだけで評価開始

• 加速度センサ、タッチセンサやLED搭載

• 低価格で導入できる評価ボード(参考価格 $12.95 / €10 )

• Arduino(アルドゥイーノ)規格に対応

• チップワンストップ, RSコンポーネンツ、DigiKeyから販売

FRDM-KL25Z / FRDM-KLK05Z NEW

GNU

http://www.youtube.com/watch?v=zj0CRBpay24

対応ツール デモ動画

FRDM-KL25Z

FRDM-KL05Z

Page 34: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

34 TM

特長 • KL25Z128VLK4を実装

− Cortex-M0+ MCU

− 128KB flash, 16KB SRAM

− 最大動作周波数48MHz

− USB Full Speedをサポート

• OpenSDA – 最新のUSB debug interface

• 3色LED

• TSIによるスライダを実装

• Freescaleの加速度センサ MMA8451QR1

• 柔軟な電源オプション − USBバスパワー

− コイン電池

− 5-12V Vin (I/O header)

− 5V (I/O header)

− 3.3V (I/O header)

• リセットボタン

• Arduino規格に対応

Kinetis L-Series

KL25Z128VLK4

80 LQFP

USB

D+/D-

RESET

I/O Header

TSI

10-pin

Debug

Mini-B

USBKinetis K-Series

K20DX128VFM5

8 MHz

I/O Header

To

uch

Pa

d -

Slid

er

SPI,GPIO à SWD

SPI 8 MHz

UART

PWM x3Mini-B

USB USB

D+/D-

3.3V LDO

Vin

I/O

3.3V

Serial

Flash

I/O

I2C, GPIO

Inertial

Sensor

10-pin

Debug

CR2032

Hashed blocks indicate optional items that will not be populated by default

OpenSDA

5V

Capacitive

Touch Slider

KL25Z

80 LQFP

Inertial

Sensor

MMA8451Q

RGB

LED

Reset

KL25Z

USB

OpenSDA

Page 35: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

35 TM

• Embedded Serial Debug

Adapter

‒K20DX128 50MHz CM4 に実装

‒シリアル通信とターゲットMCUとの

デバッグ・インタフェースをサポート

‒K20DX128上のOpenSDA アプリケー

ションを書き換えることで、機能を切り替えることができる

• OpenSDAアプリケーション

‒MSDフラッシュ・プログラマ

‒P&Eデバッグ・アプリケーション

‒CIMSIS-DAPデバッグ・アプリケーション

PC KL25Z

Page 36: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

36 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 37: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

37 TM

Freedomボードに関する情報は

www.freescale.com/freedom

にまとめられています。

右のページの”Download”タブを開くと

・回路図

・サンプルコード

・クイックスタート・パッケージ

のダウンロード・ページが開きます。

Freedomページで

Kinetis KL1x, KL2x MCU用FRDM-KL25Z

をクリックすると右のページが開きます。

Page 39: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

39 TM

• クイックスタート・パッケージはZipファイルです。

適当なフォルダに解凍して保存してください。

• Zipファイルを解凍すると、exe形式のサンプルコードの

インストーラが入っていますので、こちらを実行してください。

ファイルを実行すると下記の表示がでますので、

“accept”にチェックをいれて“次へ”をクリックしてください

チェックを入れる

次へをクリック

Page 40: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

40 TM

サンプルコードの保存先を選択できますので、

任意のディレクトリを選択して

”次へ”をクリックしてください

“次へ”をクリックすると、

右の画面のように

サンプルコードの展開が

開始されます

Page 41: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

41 TM

• OpenSDAのシリアル通信・PEMicroのデバッガアプリを使用するためには以下のドライバのインストールが必要です。

• 下記URLよりデバイス・ドライバのインストーラーを

ダウンロードしてください。

http://www.pemicro.com/opensda/

Download PEDrivers_install.exe for manual install.

• Exe形式の実行ファイルがダウンロードできますので、

ダウンロードしたインストーラを実行してください。

Page 42: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

42 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 43: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

43 TM

OpenSDAアプリを書き換えるために、

リセットボタンを押したままUSBケーブルをFreedomボードのJ7に挿してください。

左記のようにPC上から

“BOOTLOADER”というMSDとして見えるようになります。

デスクトップ上の

TFE_FujiSpeedway>FRDM-KL25Z Quick Start

Package>OpenSDA Applicationsフォルダ内の

”MSD-FRDM-KL25Zxxxxx.s19”

というファイルを“BOOTLOADER”にコピーしてください。

コピーが完了したら、USBを一度抜いて、

もう一度挿してください。

J7

Reset

コピー

Page 44: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

44 TM

Freedomボードは購入直後はOpenSDAにMSDアプリケーションが

インストールされています。

まずFreedomボードのJ7 OpenSDA側とPCをUSBケーブルで

接続してください。

Freedomボードが”FRDM-KL25Z”という名前でマスストレージデバイス

としてPCから見えます。

J7

OpenSDA

このマイコンがOpenSDAとして動作します。

デフォルトではこのマイコンにMSDアプリケーションがインストールされています。

Page 45: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

45 TM

デスクトップ上の

TFE_FujiSpeedway>FRDM-KL25Z Quick Start Package>Precompiled Examples

というフォルダ内にすでにコンパイル済みの”.srec”という拡張子のサンプルコードがあります。

ここにあるサンプルコードをひとつ選択し、FreedmKL25Zにコピーしてください。

コピーしたアプリケーションがターゲットMCUに自動的に書き込まれます。

ドラッグ&ドロップで書き込めます

まずは出荷時に書き込まれている

”FRDM_KL25Z_OOBE_Demo.srec”

をターゲットMCUに書き込んでください。

Page 46: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

46 TM

ターゲットマイコン

KL25Z128VLK4

こちらにも出荷時にはサンプルコードがあらかじめ書き込まれており、電源投入すれば、

そのサンプルコードが動き出します。

あらかじめ書き込まれているサンプルコード

FRDM_KL25Z_OOBE_Demo

概要

電源ON

LEDが角色に点灯

ボードを水平においてスライダを触ると、

LEDの明るさが変わる

ボードを傾けるとLEDの色が変わる

Page 47: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

47 TM

ドラッグ&ドロップで書き込めます

blinky_blue.srec

例) blinky_blue.srecを書き込む

ドラッグ&ドロップで書き込めます

blinky_red.srec

例) blinky_red.srecを書き込む

LEDが赤色に点灯します

LEDが青色に点灯します

Page 48: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

48 TM

• OpenSDAはシリアル-USB変換機能も持っています。

• ターゲットMCUであるKL25ZとのUART通信がOpenSDA経由でできるようになっています。

− まずは準備として、前ページと同様にターゲットMCU

に”FRDM_KL25Z_OOBE_Demo.srec”を書き込んでください。

ドラッグ&ドロップで書き込めます

Page 49: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

49 TM

COM8

1. デバイスマネージャから”OpenSDA CDC Serial

Port”がCOMポートの何番と設定されているか確認してください。

(右の例ではCOM8と設定されています)

デバイスマネージャの開き方

- “コンピュータ”をクリック

- “システムプロパティ”をクリック

- “デバイスマネージャー”をクリック

Page 50: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

50 TM

2. 次にターミナルソフト(右の例ではTera Termを使用しています)

を起動し、シリアルを選択し、確認したCOMポートを選んで

OKをクリックしてください。

3. シリアルポートの設定を下記のように設定してください。

(ボーレート19200)

Tera Termの場合は”設定”タブからシリアルポートを選択すると

下記設定画面が現れます。

4. Freedomボードのリセットボタンを押してください。

• 下記のようにマイコンからのUART出力が表示されます

* 他のサンプルプログラムでもシリアル通信を使用していますが、それぞれボーレートの設定が異なりますので注意してください。

クリックして

Tera Termを起動

Page 51: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

51 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 52: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

52 TM

OpenSDAアプリを書き換えるために、

リセットボタンを押したままUSBケーブルをFreedomボードのJ7に挿してください。

左記のようにPC上から

“BOOTLOADER”というMSDとして見えるようになります。

デスクトップ上の

TFE_FujiSpeedway>FRDM-KL25Z Quick Start

Package>OpenSDA Applications

フォルダ以下の

” DEBUG-APP_Pemicro_v102.SDA”

というファイルを”BOOTLOADER”にコピーしてください。

コピーが完了したら、USBを一度抜いて、

もう一度挿してください。

J7

Reset

コピー

ディレクトリ

Page 53: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

53 TM

デスクトップ上

デスクトップ → [TFE_FujiSpeedway] → [kl25_sc_rev6]

→ [klxx-sc-baremetal] → [build] → [iar]

Page 54: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

54 TM

新規のプロジェクトを作成

②下記のようなウィンドウが立ち上がるので、プロジェクト名を入力して”Enter”キーを押す

(下の例では”New_Project”と入力)

③プロジェクトが生成されたので”Enter”キーを押す

④新規のプロジェクトが生成されています

①make_new_project.exe

をダブルクリック

ディレクトリ

Page 55: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

55 TM

①生成されたプロジェクトのフォルダを開く

③EWARMで作成したプロジェクトが開きますので、XXX_freedomのタブをクリック

④Freedomボード用のプロジェクトのディレクトリが見えるようになります

⑤フォルダを開くとソースと

ヘッダファイルがみえます

* プロジェクトを開く時に下記メッセージが出るかもしれませんが、“OK”をクリックしてください。

②xxx.ewwをダブルクリック

Page 56: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

56 TM

①下のタブを開いて、freedomボード用のプロジェクトを開く。

②設定をFLASH_128KBに設定する。

③プロジェクト名を右クリックもしくはプロジェクト名横の「」をクリックしてオプション画面を表示。

Page 57: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

57 TM

④カテゴリの「デバッガ」から「設

定」を選択し、ドライバを「PEMicro」に変更し、

「Run to」にチェックをいれる

⑤カテゴリの「デバッガ」から「ダウンロード」を選択し、

「ベリファイする」

「フラッシュローダを使用する」

にチェックをいれる。

Page 58: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

58 TM

⑥カテゴリの「デバッガ」、「PE micro」を選択し、

P&Eハードウェアインターフェースから『OpenSDA - USB』

を選択し、”OK”をクリック

Page 59: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

59 TM

①ターミナルソフトを起動しておく。

Baud 19200

Data 8bit

Parity none

ストップビット 1bit

フロー制御 なし

* ターミナルソフト(Tera Term)

の起動&設定はP.20参照

Page 60: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

60 TM

②作成されたプロジェクトを”make”して”debug”してみる * “debug”を実行するまえに、USBケーブルでfreedomボードをPCに接続してください。

1. make 2. debug

3. Debug画面に切り替わり、リセット、

ステップ実行、ランなどが実行できるようになります。

Page 61: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

61 TM

③ターミナルソフトに出力が見えます

上記のFlash sizeまでの出力は

cpuフォルダ にある start.c

内の、

outSRS();

cpu_identify();

で行われています。

Page 62: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

62 TM

Uartで受け取った値を

そのまま出力している

ターミナルソフトで叩いたキーボードのデータがそのまま出力される

④Runする ⑤Tera Term上でキーボード入力を行う

作成されたプロジェクトのアプリケーション

main内の下記のwhileを回り続けるだけ

Page 63: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

63 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 64: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

64 TM

LEDを点灯するためには・・・

1. Port Control Registerを操作して、LEDの接続されているポートをGPIOに設定

2. Port Data Direction Registerを操作して、LEDの接続されているポートをアウトプットに設定

3. Port Data Output Register

Port Set Output Register

Port Clear Output Register

Port Toggle Output Register

のいずれかを使用して、出力をHighかLowに設定

Page 65: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

65 TM

• LEDがどのポートに接続されているか確認

− RED LED: PTB18

− GREEN LED: PTB19

− BLUE LED: PTD1

• ポートのファンクションを確認

− PTB18, PTB19, PTD1はデフォルトでGPIOにならないので変更が必要

PTD1

Page 66: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

66 TM

1. Port Control Registerを操作して、LEDの接続されているポートをGPIOに設定

PORTx_PCRn

記述例) PTB をALT1(GPIO)に設定

PORTB_PCR18 &= ~PORT_PCR_MUX_MASK; // PORTB_PCRレジスタのMUXを000

PORTB_PCR18 |= PORT_PCR_MUX(1); // MUXを001にセット

* #define PORT_PCR_MUX(x) (((uint32_t)(((uint32_t)(x))<<PORT_PCR_MUX_SHIFT))&PORT_PCR_MUX_MASK)

#define PORT_PCR_MUX_SHIFT 8

#define PORT_PCR_MUX_MASK 0x700u

Page 67: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

67 TM

2. Port Data Direction Registerを操作して、LEDの接続されているポートをアウトプットに設定

GPIOx_PDDR

例) GPIOB_PDDR |= (1<<18); // PTB18 をアウトプットに設定

Page 68: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

68 TM

3. 出力をHighかLowに設定

− High => LED OFF

− Low => LED ON

GPIOxPDOR(Port Data Output Register)

0: Low

1: High

GPIOxPSOR(Port Set Output Register)

0: Not Change

1: High

GPIOxPCOR(Port Clear Output Register)

0: Not Change

1: Low

GPIOxPTOR(Port Toggle Output Register)

0: Not Change

1: Toggle

例) GPIOB_PSOR = (1<<18); // PTB18をHighに設定

Page 69: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

69 TM

新規に作成したプロジェクトでターミナルの入出力が使用できるので、それを利用し下記のようなコードを作成します。

1. 初期化時点では出力をHighに設定(LED OFF)

2. Terminalから

”r” を入力 Red LED をトグル

“g”を入力 Greed LED をトグル

“b” を入力 Blue LED をトグル

Page 70: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

70 TM

• 今回は演習用に事前にプロジェクト・ファイルを生成してあります。

PCのデスクトップ上に

「TFE_FujiSpeedway」

というフォルダがありますので、こちらを開いてください

左記のディレクトリに「LED_Project1.eww」

というファイルがありますので、

こちらをダブルクリックして

プロジェクトを開いてください

Page 71: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

71 TM

①下のタブを開いて、freedomボード用のプロジェクトを開く。

②設定をFLASH_128KBに設定する。

③プロジェクト名を右クリックもしくはプロジェクト名横の「」をダブルクリックしてオプション画面を表示。

Page 72: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

72 TM

④カテゴリの「デバッガ」から

「設定」を選択し、

ドライバを「PE micro」に変更

⑤カテゴリの「デバッガ」から

「ダウンロード」を選択し、

「ベリファイする」

「フラッシュローダを使用する」

にチェックをいれる。

Page 73: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

73 TM

⑥カテゴリの「デバッガ」、「PE micro」を選択し、

P&Eハードウェアインターフェースから『OpenSDA - USB』

を選択し、”OK”をクリック

Page 74: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

74 TM

Project > LED_Project1.c

のファイルをダブルクリックすると、

LED_Project1.cが開きます。

赤枠で囲っている部分の

『x』を適切な値に変更していただくと、正しく動作するコードになります。

Page 75: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

75 TM

赤枠で囲っている部分の

『x』を適切な値に変更していただくと、正しく動作するコードになります。

Page 76: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

76 TM

①ターミナルソフトを起動しておく。

Baud 19200

Data 8bit

Parity none

ストップビット 1bit

フロー制御 なし

* ターミナル・ソフト(Tera Term)

の起動&設定はP.20参照

Page 77: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

77 TM

②作成したプロジェクトを”make”して”debug”してみる * “debug”を実行するまえに、USBケーブルでfreedomボードをPCに接続してください。

1. make 2. debug

3. Debug画面に切り替わり、リセット、

ステップ実行、ランなどが実行できるようになります。

Page 78: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

78 TM

③Runする

Page 79: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

79 TM

④ターミナル・ソフトに下記出力が見えます

ターミナル・ソフト上でキーボードから、

「r」 を押すと 赤LEDが ON/OFF

「g」を押すと 緑LEDが ON/OFF

「b」を押すと 青LEDが ON/OFF

します。

Page 80: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

80 TM

int main (void)

{ char ch; #ifdef CMSIS // If we are conforming to CMSIS, we need to call start here start(); #endif printf("\n\rRunning the LED_Project1 project.\n\r"); /* Enter these code for Sample Application */ printf("\n\rPrease push key board\n\r"); printf("\n\r r -> RED_LED is toggled\n\r g -> GREEN_LED is toggled\n\r b -> BLUE_LED is toggled\n\r");

/* Please fill the correct number here. */ /* GPIO Port Init */ /* PTB18 is RED LED */ PORTB_PCR18 &= ~PORT_PCR_MUX_MASK; PORTB_PCR18 |= PORT_PCR_MUX(1); // Set PTB18 as GPIO GPIOB_PDDR |= (1 << 18); // Set PTB18 as Output GPIOB_PSOR = (1 << 18); // Set PTB18 as High /* PTB19 is GREEN LED*/ PORTB_PCR19 &= ~PORT_PCR_MUX_MASK; PORTB_PCR19 |= PORT_PCR_MUX(1); // Set PTB19 as GPIO GPIOB_PDDR |= (1 << 19); // Set PTB19 as Output GPIOB_PSOR = (1 << 19); // Set PTB19 as High /* PTD1 is BLUE LED */ PORTD_PCR1 &= ~PORT_PCR_MUX_MASK; PORTD_PCR1 |= PORT_PCR_MUX(1); // Set PTD1 as GPIO GPIOD_PDDR |= (1 << 1); // Set PTD1 as Output GPIOD_PSOR = (1 << 1); // Set PTD1 as High

Page 81: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

81 TM

while(1) { ch = in_char(); out_char(ch); /* Please fill the correct number here */ switch(ch){ case ‘r': GPIOB_PTOR = (1 << 18); // Toggle RED_LED break; case ‘g': GPIOB_PTOR = (1 << 19); // Toggle GREEN_LED break; case 'b': GPIOD_PTOR = (1 << 1); // Toggle BLUE_LED break; default: break; } } } /********************************************************************/

Page 82: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

82 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 83: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

83 TM

FGPIOとは

Cortex-M0+ で追加された高速I/Oコントロール用のレジスタ

レジスタの構成はGPIOもFGPIOも同じ

FGPIO

GPIO

Page 84: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

84 TM

FGPIOを使うには・・・

GPIOx_PTOR FGPIOxPTOR

に変えるだけ

例)

GPIOB_PTOR = (1<<18); // PTB18をトグル

FGPIOB_PTOR = (1<<18); // PTB18をトグル

Page 85: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

85 TM

• こちらも演習用に事前にプロジェクトファイルを生成してあります。

PCのデスクトップ上に

「TFE_FujiSpeedway」

というフォルダがありますので、こちらを開いてください

左記のディレクトリに「LED_Project2.eww」

というファイルがありますので、

こちらをダブルクリックして

プロジェクトを開いてください

Page 86: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

86 TM

先ほどと同様のコードで、

GPIOの初期化の前後にSysTickのコードが追加してあります。

SysTickタイマを読み込むためのオーバヘッドを測定

SysTickタイマを初期化して、

カウント開始時のカウンタの値を読み込む

カウント終了時のカウンタの値を読み込み、測定したオーバーヘッドを含めて、カウント開始から終了までのサイクル数を計算し、printfで出力

Page 87: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

87 TM

• Runさせると以下のような出力が表示されます。

SysTickタイマを読み込むためのオーバヘッドを測定

GPIO Initのサイクル数

0xAE : 174cycle

Page 88: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

88 TM

GPIOの初期化の下に、以下のコードが用意してあります。

#if 0 => #if 1

に変更

GPIO → FGPIO

に変更

Page 89: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

89 TM

• Runさせると以下のような出力が表示されます。

GPIO Initのサイクル数

FGPIO Initのサイクル数

0xAE : 174cycle

0x9A : 154cycle

Page 90: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

90 TM

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

GPIO FGPIO

それぞれPTA4を10回トグルさせ、オシロで波形を観測

1126ns/10 = 112ns/toggle 774ns/10 = 77.4ns/toggle

1/48MHz = 20.833… nS (1サイクルの時間)

確かにFGPIOの方が早いが、

思ったほどスピードが出ない・・・

Page 91: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

91 TM

どちらもGPIOをトグルさせるのに3命令も使っている。

GPIO FGPIO

コンパイラオプションを見ると

デフォルトでは最適化のオプションが

“None”

に設定されています。

この設定を

“Low”

に変更して動作させてみます。

Page 92: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

92 TM

どちらも1命令でGPIOをトグルさせるようになった。

GPIO FGPIO

Page 93: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

93 TM

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

GPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

FGPIOA_PTOR = (1<<4); // Toggle PTA4

GPIO FGPIO

それぞれPTA4を10回トグルさせ、オシロで波形を観測

558ns/10 = 55.8ns/toggle 206ns/10 = 20.6 ns/toggle

FGPIOでアクセスすると

実際に1サイクルでポートの出力が

変更できる。

GPIOでアクセスのときは、

2 cycle/accessなので、

約40nsとなるはずでは?

1/48MHz = 20.833… nS (1サイクルの時間)

Page 94: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

94 TM

• コアが動作するためには、

Flashメモリコントローラから命令をフェッチしてこなければならない

• GPIOアクセスの場合は、この命令フェッチとGPIOアクセスが同時には行えない。

• このために、今回のようにGPIO

アクセスを繰り返すような動作の

場合、GPIOアクセス時間がFGPIOアクセス時間の単純に2倍にはならない

FGPIO

GPIO

GPIOを操作

命令をフェッチ

Page 95: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

95 TM

1. Kinetisシリーズ開発環境 Freedomプラットフォームの紹介

2. Freedomボード向け情報の紹介

− Freedomボード 回路図、サンプルコード、マニュアルなど

− サンプルコードのインストール

− デバイスドライバのインストール

3. Freedomプラットフォームを体験

− OpenSDAのMSDアプリケーションの使い方

− OpenSDAのシリアル通信の使い方

4. IAR EWARM用の新規プロジェクトの作り方

5. 新規プロジェクトに変更を加えてLEDを光らせる

6. シングルサイクル・アクセスのGPIO(FGPIO)について

7. Bit Manipulation Engine(BME)を使ってみる

Page 96: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

96 TM

ビット・マニピュレーション・エンジンとは・・・

−各ペリフェラルのレジスタ値を読み込むか書き込む時に同時にビット操作を行うことができるハードウェア・エンジンです

BMEを使用すると・・・

• 書き込み時

− Logical AND, OR, XOR

− Bit field insert (BFI)

Peripherals BME Core Accesses

サポートされている操作

• 読み込み時

− Load-and-Clear 1 bit (LAC1)

− Load-and-Set 1 bit (LAS1)

− Unsigned Bit Field Extract (UBFX)

命令数が削減できる 処理時間

コードサイズ の削減

Page 97: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

97 TM

Flash

SRAM L&U

Peripherals

&

GPIO

BME

FGPIO

0x0000_0000

0x07FF_FFFF

0x1FFF_F000

0x2000_2FFF

KL25の場合

0x4000_0000

0x400F_FFFF

0x4400_0000

0x5FFF_FFFF

0xF800_0000

0xFFFF_FFFF

Logical AND Store

Logical OR Store

Load-and-Clear 1 Bit

Logical XOR Store

Load-and-Set 1 Bit

Bit Field Insert Store

Bit Field Extract Load

0x4400_0000

0x440F_FFFF

Peripherals

&

GPIO

0x4800_0000

0x480F_FFFF

0x4BEF_FFFF

0x4820_0000

Peripherals

&

GPIO

Peripherals

&

GPIO

Peripherals

&

GPIO

0x5000_0000

0x5FFF_FFFF

Peripherals

&

GPIO

0x4C00_0000

0x4C0F_FFFF

0x4C20_0000

0x4FEF_FFFF

Peripherals

Page 98: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

98 TM

0 1 0 0 x x - - - - - - Register address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

01: AND

10: OR

11: XOR

BME_XOR_W(&GPIOA_PDOR, 0x20); /* GPIOA_PDOR ^= 0x20 */

記述例

#define BME_XOR_W(addr, wdata) *(volatile uint32_t*)((uint32_t)addr | BME_XOR_MASK) = wdata;

#define BME_XOR_MASK (3<<26)

Page 99: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

99 TM

0 1 0 0 x x b b b b b - Register address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

10: Clear

11: Set

//clear AIEN and load current AIEN value into CPU Rx register

load_bit = BME_LAC1_W(&ADC0_SC1A, ADC_SC1_AIEN_SHIFT);

記述例

#define BME_LAC1_W(addr, bit) *(volatile uint8_t*)((uint32_t)addr | BME_LAC1_MASK(bit));

#define BME_LAC1_MASK(BIT) (1<<27) | (BIT<<21)

Clear/Setするビットを設定(LSB)

Page 100: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

100 TM

0 1 0 1 b b b b b w w w w Register address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1: BFI &UBFE

/* reg_val = * ADC0_CFG1;

mask = ((1 << (0x02)) - 1) << ADC_CFG1_ADIV_SHIFT;

reg_val = (reg_val & ~mask)|((2<<ADC_CFG1_ADIV_SHIFT) & mask);

* ADC0_CFG1 = reg_val; */

BME_BFI_W(&ADC0_CFG1, 2<<ADC_CFG1_ADIV_SHIFT, ADC_CFG1_ADIV_SHIFT, 0x02);

記述例

#define BME_BFI_W(addr, wdata, bit, width) \

*(volatile uint32_t*)((uint32_t)addr | BME_BFI_MASK(bit,width)) = wdata;

#define BME_BFI_MASK(BIT,WIDTH) (1<<28) | (BIT<<23) | ((WIDTH-1)<<19)

挿入/読込のデータ位置を決める(LSB)

挿入/読込のデータ長(bit)を決める

Page 101: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

101 TM

• こちらは先ほどと同じ「LED_Project2」を使用します。

PCのデスクトップ上に

「 TFE_FujiSpeedway 」

というフォルダがありますので、こちらを開いてください

左記のディレクトリに「LED_Project2.eww」

というファイルがありますので、

こちらをダブルクリックして

プロジェクトを開いてください

Page 102: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

102 TM

FGPIOの初期化の下に、BMEを使用したGPIOの初期化コードが用意してあります。

#if 0 → #if 1

に変更

Page 103: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

103 TM

• Runさせると以下のような出力が表示されます。

GPIO Initのサイクル数

0xAE : 174cycle

FGPIO Initのサイクル数

0x9A : 154cycle

BME Initのサイクル数

0x58 : 88cycle

Page 104: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

104 TM

24命令

Page 105: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

105 TM

12命令

Page 106: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

TM 106

1. Kinetisシリーズ概要紹介

2. Kinetis L シリーズの低消費電力技術の紹介

3. Kinetis LシリーズのFreedomボードを使用したハンズオン

4. オンライン開発環境「mbed」の紹介

Page 107: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

107 TM

1. mbedとは

2. mbed用のOpenSDAアプリケーションのインストールと

mbedアカウントの作成

3. 新規のプロジェクトを生成してFreedomボード上で動かしてみる

4. Freedomボード用に公開されているサンプルコードをインポートして動かしてみる

− サンプルコードのインポート

− 加速度センサを使用したサンプルコードをインポートして変更を加えてみる

5. MDK-ARM Liteを使用したオフライン・デバッグ

Page 108: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

108 TM

• ブラウザ上で動くオンライン開発環境。

• プログラムの書き込みはストレージとして認識するドライブへ、コンパイラから出力される

(ダウンロード出来る) バイナリファイルを保存することにより書き込み完了となる。

• 一般的なC言語、C++の決まりごとに従って

プログラムを進めればよい。

• mbed ホームページ

www.mbed.org

(例)LEDを点滅させるコード

Page 109: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

109 TM

1. mbedとは

2. mbed用のOpenSDAアプリケーションのインストールと

mbedアカウントの作成

3. 新規のプロジェクトを生成してFreedomボード上で動かしてみる

4. Freedomボード用に公開されているサンプルコードをインポートして動かしてみる

− サンプルコードのインポート

− 加速度センサを使用したサンプルコードをインポートして変更を加えてみる

5. MDK-ARM Liteを使用したオフライン・デバッグ

Page 111: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

111 TM

4. SW1を押しながら “SDA”と書いてある方のUSBとPCを接続

5. リムーバルディスク “BOOTLOADER” として認識。D4(緑)が点滅

6. mbed FRDM KL25Z Getting Started のページに置いてある “mbed_if_v2.0_frdm_kl25Z” を ダウンロードし、 BOOTLOADERにコピー

4 SW1

D4

5

6

Page 112: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

112 TM

7. 一度、USBを抜き差しすると “MBED”

として認識。

8. mbed.htm を開く

mbedアカウントを持っていない場合

9. Signupをクリック

10. No を選択

7

8

9

10

Page 113: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

113 TM

11. 必要事項を記入し、

“私がすることに同意” にチェックをして Signupをクリック

12. アカウントが作成される

13. 右上のCompilerをクリック

14. これでmbedでコンパイルする準備が完了です

11

12

13

他のユーザーからは

こちらの名前で見えます。

Page 115: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

115 TM

1. mbedとは

2. mbed用のOpenSDAアプリケーションのインストールと

mbedアカウントの作成

3. 新規のプロジェクトを生成してFreedomボード上で動かしてみる

4. Freedomボード用に公開されているサンプルコードをインポートして動かしてみる

− サンプルコードのインポート

− 加速度センサを使用したサンプルコードをインポートして変更を加えてみる

5. MDK-ARM Liteを使用したオフライン・デバッグ

Page 116: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

116 TM

画面左上の”New”をクリック

プロジェクト名を入力してOKをクリック

入力した名前のプロジェクトが生成されます。

Main.cppのファイル名をクリックすると、ソースが見えます。

Page 117: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

117 TM

コピー中は緑色のLEDが点滅します。

コピー

Reset ①“Compile”をクリックする

②Binary ファイルが生成される

③生成されたBinaryファイルをMBEDにコピーする

コピーが完了したら、リセットボタンを押すと

青色のLEDが点滅するようになります。

Page 118: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

118 TM

LED1(青) => LED2 (緑)

LED3 (赤)

に変えてみる

0.2 (秒)を変更して点滅の周期を変えてみる。

* 各APIの定義はmbedサイト内のHandbookに記載されています

Page 119: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

119 TM

1. mbedとは

2. mbed用のOpenSDAアプリケーションのインストールと

mbedアカウントの作成

3. 新規のプロジェクトを生成してFreedomボード上で動かしてみる

4. Freedomボード用に公開されているサンプルコードをインポートして動かしてみる

− サンプルコードのインポート

− 加速度センサを使用したサンプルコードをインポートして変更を加えてみる

5. MDK-ARM Liteを使用したオフライン・デバッグ

Page 120: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

120 TM

mbed FRDM KL25Z Examples

http://mbed.org/handbook/mbed-FRDM-KL25Z-Examples

上記のページに、

Freedomボード用の各種サンプルコードが記載されている。

“Import this program”をクリック

することで、簡単にプロジェクトのインポートが可能

Import this program

をクリックすると

左のページのプロジェクトがインポートできます

Page 121: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

121 TM

1. サンプルコードをインポートする。http://mbed.org/handbook/mbed-

FRDM-KL25Z-Examplesにアクセス。

2. 加速度センサを使用したサンプルコードをインポートする

3. 別ウィンドウでコンパイラが起動。プロジェクトの名前を確認して

Importをクリック

2

3

Page 122: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

122 TM

コピー中は緑色のLEDが点滅します。

コピー

Reset

①“Compile”をクリックする

②Binary ファイルが生成される

③生成されたBinaryファイルをMBEDにコピーする

インポートしたプロジェクトを先ほどと同様にコンパイルして動かしてみる

コピーが完了したらリセットボタンを押すと、プログラムが動き始める。

ボードを傾けると傾きによりLEDの色が変化するのが確認出来る。

Page 123: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

123 TM

ターミナルソフトに加速度値を表示するように、下のようにサンプルコードを少し変更

ターミナルソフトを立ち上げ、

コンパイルし、リセットすると

加速度値が表示される。

Page 124: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

124 TM

1. mbedとは

2. mbed用のOpenSDAアプリケーションのインストールと

mbedアカウントの作成

3. 新規のプロジェクトを生成してFreedomボード上で動かしてみる

4. Freedomボード用に公開されているサンプルコードをインポートして動かしてみる

− サンプルコードのインポート

− 加速度センサを使用したサンプルコードをインポートして変更を加えてみる

5. MDK-ARM Liteを使用したオフライン・デバッグ

Page 125: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

125 TM

Exportできるオフライン環境は、2013年4月現在 Keil uVision4 のみ

Keil uVision4 MDK-ARM Lite

• 評価版は32kb制限あり

• 登録が必要(指名、メールアドレス、会社名、住所、電話番号)

• 参照ページ: http://mbed.org/users/MACRUM/notebook/mbed-kl25z_mtb/

1. プロジェクト名を右クリックし、 Export

Program…を選択

2. Exportをクリック

1

2

Page 126: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

126 TM

3. http://mbed.org/users/MACRUM/notebook/uvision4_debug/ にアクセスし、Keil MDK-ARM(v4.70, 約520Mb)を ダウンロード (登録が必要)

4. Keil MDK-ARMのインストール

5. セットアップの最後の方でExample Projectsの追加を聞かれるので、 必要であればチェックを入れる

6. インストールが完了したら、2でExportしたときに出来たZipファイルを解凍し、.uvprojファイルを

ダブルクリックしてIDEを起動

5

6

Page 127: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

127 TM

7. Scatterファイルの修正。

FRDM_MMA8451Q_

uvision_kl25z\FRDM

_MMA8451Q\mbed\

KL25Z\ARM にある.sctをダブルクリックで開く(メモ帳など)

8. Initialization fileの設定。

{install}\ARM\Boards\Freescale\FR

DM-KL25Z\Blinky_MTB

\DBG_MTB.ini にある.iniファイルをコピー

7

8

Page 128: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

128 TM

9

10 9. どちらかの方法で、ターゲット設定を開く

10. DebugタブとUtilitiesタブで右のように変更

11. Edit…をクリック

11

Page 129: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

129 TM

12. IDE上にDBG_MTB.iniが開かれる

13. Configuration Wizardを選択

14. Buffer Positionを0x20001000に変更

14

13

12

Page 130: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

130 TM

15

16

17

18

Loadをクリック

“Application running”を確認

Debugをスタート

Page 131: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

131 TM

19 オフラインデバッグが可能

View→Trace→Trace Data

でトレース情報が見られる

レジスタ情報

Page 132: Freescale PowerPoint Template - NXP …...TM 6 ce Integration Kinetis Lシリーズ 超低消費電力 / 低コスト ARM Cortex-M0+コア 48MHz / 8KB – 256KB バイト ミックスドシグナル

TM