draft um10398...draft draft draft dr draft draft draft dr af draft draft dr aft draft dra f t d...

415
DRAFT DRAFT DRAFT DR DRAFT DRAFT DRAFT DRAF DRAFT DRAFT DRAFT DRAFT DRAFT D DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA 参考資料 本マニュアルは、参考資料です。英文マニュアルは頻繁に更新されます。 最新情報は英文マニュアルをご参照ください。 UM10398 LPC111x/LPC11C1x ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル Document information Info Content Keywords ARM Cortex-M0, LPC1111, LPC1112, LPC1113, LPC1114, LPC11C12, LPC11C14 Abstract LPC111x/LPC11C1x User manual

Upload: others

Post on 06-Jan-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

参考資料

本マニュアルは、参考資料です。英文マニュアルは頻繁に更新されます。

最新情報は英文マニュアルをご参照ください。

UM10398LPC111x/LPC11C1xユーザーマニュアルRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Document information

Info Content

Keywords ARM Cortex-M0, LPC1111, LPC1112, LPC1113, LPC1114, LPC11C12, LPC11C14

Abstract LPC111x/LPC11C1x User manual

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 2

NXP Semiconductors UM10398LPC111x/LPC11C1x UM

参考資料

Revision history

Rev Date Description

0.15 <tbd> LPC111x/LPC11C1x preliminary user manual

Modifications:

• C_CAN chapter updated.

• C_CAN API description updated.

• Description of power modes updated in Section 3.8.

• PDSLEEPCFG register updated (Section 3.5.32).

• Numerous editorial updates to the System configuration chapter.

0.14 <tbd> LPC111x/LPC11C1x preliminary user manual

Modifications:

• Pin configuration for LPC11C12/C14 parts corrected (Table 99 and Figure 9).

• C_CAN API description updated.

0.13 <tbd> LPC111x/LPC11C1x preliminary user manual

Modifications:

• Parts LPC11C12/C14 added.

• Description of C_CAN controller register interface, C_CAN API, and C_CAN ISP functionsadded.

0.12 <tbd> LPC111x preliminary user manual

Modifications:

• Basic configuration sections added.

• Watchdog oscillator frequency spread changed to 40% in Section 3.4.6.

0.11 <tbd> LPC111x preliminary user manual

0.10 <tbd> LPC111x preliminary user manual

0.09 <tbd> LPC111x preliminary user manual

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 3

参考資料

1.1 はじめに

LPC111x/LPC11C1x は ARM Cortex-M0 ベースの安価な 32 ビット MCU ファミリであり、8/16 ビットのマイクロコントローラアプリケーション用に設計され、高性能、低消費電力、簡易な命令セットとメモリアドレッシングを提供するとともに、既存の 8/16ビットアーキテクチャに比べてコードサイズが小さいことが特長です。

LPC111x/LPC11C1xは、最大 50 MHzの CPU周波数で動作します。

LPC111x/LPC11C1xのペリフェラルコンプリメントには、最大 32 kBのフラッシュメモリ、最大 8 kBのデータメモリ、1個の C_CANコントローラ(LPC11C12/14)、1個の Fastモードプラス I2Cバスインターフェース、1個の RS-485/EIA-485 UART、最大 2個の SSP機能付き SPIインターフェース、4個の多目的タイマ、1個の 10ビット ADC、最大 42個の汎用 I/Oピンがあります。

LPC11C12/C14には、オンチップ C_CANドライバと、C_CANを介したフラッシュ・インシステムプログラミング(ISP)ツールが内蔵されています。

1.2 特長

• システム :

– ARM Cortex-M0プロセッサ、最大周波数 50 MHzで動作。

– ARM Cortex-M0内蔵ネストベクタ割り込みコントローラ(NVIC)。

– シリアルワイヤデバッグ(SWD)。

– システム tickタイマ。

• メモリ :

– 32 kB(LPC1114/LPC11C14)、24 kB(LPC1113)、16 kB(LPC1112/LPC11C12)、または 8 kB(LPC1111)のオンチップ・フラッシュプログラミングメモリ。

– 8 kB、4 kB、または 2 kBの SRAM。

– オンチップのブートローダソフトウェアによるインシステムプログラミング(ISP)とインアプリケーションプログラミング(IAP)。

• デジタルペリフェラル :

– 設定可能なプルアップ/プルダウン抵抗の付いた、最大42個の汎用 I/O(GPIO)ピン。

– GPIOピンは、エッジセンシティブおよびレベルセンシティブな割り込みソースとして使用可能。

– 1個のピンに高電流出力ドライバ(20 mA)。

– Fastモードプラスの I2Cバスピン 2個に高電流シンクドライバ(20 mA)。

– 4個の多目的タイマ /カウンタと、合計 4個のキャプチャ入力および 13個のマッチ出力。

– プログラマブルなウォッチドッグタイマ(WDT)。

UM10398第 1章:LPC111x/LPC11C1xの概要Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 4

NXP Semiconductors UM10398第 1章:LPC111x/LPC11C1xの概要

参考資料

• アナログペリフェラル :

– 8ピン間での入力多重化対応の 10ビット ADC。

• シリアルインターフェース :

– フラクショナル・ボー・レート生成、内部 FIFO、および RS-485対応の UART。

– SSP機能と FIFOおよびマルチプロトコル機能を持つ 2つの SPIコントローラ(第2の SPIは LQFP48と PLCC44のパッケージのみ)。

– 複数アドレス認識とモニターモードによってデータ速度 1 Mbit/s を達成する、フル I2Cバス規格と Fastモードプラスに対応した I2Cバスインターフェース。

– C_CANコントローラ(LPC11C12/C14のみ)。オンチップ CANおよび CANopenドライバを含みます。

• クロック生成 :

– 12MHz内部 RCオシレータを精度 1%までトリミングすることにより、オプションでシステムクロックとして使用可能。

– 動作範囲 1MHz~ 25MHzのクリスタルオシレータ。

– 周波数範囲 7.8 kHz~ 1.8 MHzのプログラマブルなウォッチドッグオシレータ。

– PLLにより、高周波クリスタルがなくても最大 CPU速度での CPU動作が可能。システムオシレータまたは内部 RCオシレータから実行されます。

– システムオシレータクロック、IRCクロック、CPUクロック、およびウォッチドッグクロックを反映できる分周器によるクロック出力機能。

• 電力制御 :

– スリープ、ディープスリープ、ディープパワーダウンの各モードの間、消費電力を最小限にする統合 PMU(パワーマネージメントユニット)。

– 3種類の電力低減モード : スリープ、ディープスリープ、ディープパワーダウン。

– 最大 13個の機能ピンを使用した専用スタートロジックにより、ディープスリープモードからプロセッサをウェイクアップ。

– パワーオンリセット(POR)。

– 割り込みおよび強制リセットのための 4つのしきい値によるブラウンアウト検出。

• 固有のデバイスシリアル番号を識別に使用。• 3.3 Vの単一電源(1.8 V~ 3.6 V)。

• 48 ピン LQFP パッケージ、33 ピン HVQFN パッケージ、44 ピン PLCC パッケージとして提供。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 5

NXP Semiconductors UM10398第 1章:LPC111x/LPC11C1xの概要

参考資料

1.3 注文情報

Table 1. Ordering information

Type number Package

Name Description Version

LPC1111FHN33/101 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1111FHN33/201 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1112FHN33/101 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1112FHN33/201 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1113FHN33/201 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1113FHN33/301 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1114FHN33/201 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1114FHN33/301 HVQFN33 熱強化プラスチック製超薄型クワッドフラットパッケージ、リードなし、33端子、本体 7 x 7 x 0.85 mm

n/a

LPC1113FBD48/301 LQFP48 ロープロファイルプラスチック製クワッドフラットパッケージ、リード 48個、本体 7 x 7 x 1.4 mm

sot313-2

LPC1114FBD48/301 LQFP48 ロープロファイルプラスチック製クワッドフラットパッケージ、リード 48個、本体 7 x 7 x 1.4 mm

sot313-2

LPC1114FA44/301 PLCC44 PLCC44: プラスチックリードチップキャリア、リード 44個 sot187-2

LPC11C12FBD48/301 LQFP48 ロープロファイルプラスチック製クワッドフラットパッケージ、リード 48個、本体 7 7 1.4 mm

sot313-2

LPC11C14FBD48/301 LQFP48 ロープロファイルプラスチック製クワッドフラットパッケージ、リード 48個、本体 7 7 1.4 mm

sot313-2

Table 2. Ordering options

Type number Flash Total SRAM

UART RS-485

I2C/ Fm+ SPI C_CAN ADC channels

Package

LPC1111

LPC1111FHN33/101 8 kB 2 kB 1 1 1 - 8 HVQFN33

LPC1111FHN33/201 8 kB 4 kB 1 1 1 - 8 HVQFN33

LPC1112

LPC1112FHN33/101 16 kB 2 kB 1 1 1 - 8 HVQFN33

LPC1112FHN33/201 16 kB 4 kB 1 1 1 - 8 HVQFN33

LPC1113

LPC1113FHN33/201 24 kB 4 kB 1 1 1 - 8 HVQFN33

LPC1113FHN33/301 24 kB 8 kB 1 1 1 - 8 HVQFN33

LPC1113FBD48/301 24 kB 8 kB 1 1 2 - 8 LQFP48

LPC1114

LPC1114FHN33/201 32 kB 4 kB 1 1 1 - 8 HVQFN33

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 6

NXP Semiconductors UM10398第 1章:LPC111x/LPC11C1xの概要

参考資料

LPC1114FHN33/301 32 kB 8 kB 1 1 1 - 8 HVQFN33

LPC1114FBD48/301 32 kB 8 kB 1 1 2 - 8 LQFP48

LPC1114FA44/301 32 kB 8 kB 1 1 2 - 8 PLCC44

LPC11C1x

LPC11C12FBD48/301 16 kB 8 kB 1 1 2 1 8 LQFP48

LPC11C14FBD48/301 32 kB 8 kB 1 1 2 1 8 LQFP48

Table 2. Ordering options(続き)Type number Flash Total

SRAMUART RS-485

I2C/ Fm+ SPI C_CAN ADC channels

Package

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 7

NXP Semiconductors UM10398第 1章:LPC111x/LPC11C1xの概要

参考資料

1.4 ブロック図

(1) LQFP48/PLCC44 packages only.

(2) LPC11C12/C14 only.

Fig 1. LPC111x/LPC11C1x block diagram

SRAM2/4/8 kB

ARMCORTEX-M0

TEST/DEBUGINTERFACE

FLASH8/16/24/32 kB

HIGH-SPEEDGPIO

AHB TO APBBRIDGE

CLOCKGENERATION,

POWER CONTROL,SYSTEM

FUNCTIONS

XTALINXTALOUT

RESET

clocks and controls

SWD

LPC1111/12/13/14LPC11C12/C14

slave

slave

slave slave

ROM

slave

AHB-LITE BUSGPIO portsPIO0/1/2/3

CLKOUT

IRC

POR

SPI0

10-bit ADCUART

32-bit COUNTER/TIMER 0

I2C-BUS

WDT

IOCONFIG

CT32B0_MAT[3:0]

AD[7:0]

CT32B0_CAP0

SDASCL

RXDTXD

DTR, DSR(1), CTS,DCD(1), RI(1), RTS

SYSTEM CONTROL

PMU

32-bit COUNTER/TIMER 1CT32B1_MAT[3:0]

CT32B1_CAP0

16-bit COUNTER/TIMER 1CT16B1_MAT[1:0]

CT16B1_CAP0

16-bit COUNTER/TIMER 0CT16B0_MAT[2:0]

CT16B0_CAP0

SCK0, SSEL0MISO0, MOSI0

SCK1, SSEL1MISO1, MOSI1 SPI1(1)

system bus

C_CAN(2)CAN_TXD

CAN_RXD

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 8

NXP Semiconductors UM10398第 1章:LPC111x/LPC11C1xの概要

参考資料

1.5 ARM Cortex-M0プロセッサ

ARM Cortex-M0プロセッサの詳細については Section 21.2「Cortex-M0プロセッサとコアペリフェラル」を参照してください。 LPC111x/LPC11C1xについては、ARM Cortex-M0プロセッサコアは次のように構成されます。

• システムオプション :

– ネストベクタ割り込みコントローラ(NVIC)が含まれ、最大 32の割り込みに対応します。

– システム tickタイマが含まれます。

• シリアルワイヤデバッグが 2 つのウォッチポイントおよび 4 つのブレークポイントとともに含まれます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 9

参考資料

2.1 この章を読む前に

各種の LPC111x/LPC11C1x部品のメモリ構成は Table 3のとおりです。

2.2 メモリマップ

Figure 2に、LPC111x/LPC11C1xのメモリとペリフェラルのアドレス空間を示します。

AHBペリフェラルの領域はサイズが 2 MBであり、128のペリフェラルに対応できるように分かれています。 LPC111x/LPC11C1xでは、GPIOポートは AHBペリフェラルのみです。APBペリフェラルの領域はサイズが 512 kBであり、32のペリフェラルに対応できるように分かれています。 いずれのタイプも、各ペリフェラルには 16 kBのスペースが割り当てられます。 それにより、各ペリフェラルのアドレスデコーディングが簡易化されます。

ペリフェラルレジスタアドレスはすべて、そのサイズに関係なく 32ビットワード境界で整列されます。 これは、ワードとハーフワードのレジスタには一度にアクセスする必要があることを意味します。 たとえば、ワードレジスタの上位バイトを別途読み書きすることはできません。

UM10398第 2章:LPC111x/LPC11C1xメモリマッピングRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 3. LPC111x/LPC11C1x memory configuration

Part Flash SRAM

Suffix /101 /201 /301

LPC1111 8 kB 2 kB 4 KB -

LPC1112 16 kB 2 kB 4 KB -

LPC1113 24 kB - 4 KB 8 kB

LPC1114 32 kB - 4 KB 8 kB

LPC11C12 16 kB - - 8 kB

LPC11C14 32 kB - - 8 kB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 10

NXP Semiconductors UM10398第 2章:LPC111x/LPC11C1xメモリマッピング

参考資料

(1) LQFP48/PLCC44 packages only.(2) LPC11C12/14 only.

Fig 2. LPC111x/LPC11C1x memory map

0x5000 0000

0x5001 0000

0x5002 0000

0x5020 0000AHB peripherals

127- 4 reserved

GPIO PIO1 1

0x5003 0000

0x5004 0000

GPIO PIO2

GPIO PIO3

2

3

GPIO PIO0 0

reserved

reserved

reserved

0x0000 00000 GB

0.5 GB

4 GB

1 GB

0x0000 2000

0x1000 2000

0x1000 1000

0x1000 0800

0x1FFF 0000

0x1FFF 4000

0x2000 0000

0x4000 0000

0x4008 0000

0x5000 0000

0x5020 0000

0xFFFF FFFF

reserved

reserved

reserved

APB peripherals

AHB peripherals

8 kB SRAM (LPC1113/14/301; LPC11C1x)

0x1000 0000

4 kB SRAM (LPC1111/12/13/14/201)

2 kB SRAM (LPC1111/12/101)

LPC1111/12/13/14LPC11C12/C14

8 kB on-chip flash (LPC1111)

0x0000 4000

0x0000 6000

16 kB on-chip flash (LPC1112; LPC11C12)

0x0000 800032 kB on-chip flash (LPC1114; LPC11C14)

24 kB on-chip flash (LPC1113)

16 kB boot ROM

0x0000 0000

0x0000 0200active interrupt vectors

+ 512 byte

reserved

APB peripherals

0x4000 4000

0x4000 8000

0x4000 C000

0x4001 0000

0x4001 8000

0x4002 0000

0x4002 8000

0x4003 8000

0x4003 C000

0x4004 0000

0x4004 4000

0x4004 8000

0x4004 C000

0x4005 0000

0x4005 4000

0x4005 8000

0x4005 C000

0x4008 0000

0x4002 4000

0x4001 C000

0x4001 4000

0x4000 0000

WDT

32-bit counter/timer 0

32-bit counter/timer 1

ADC

UART

PMU

I2C-bus

10 - 13 reserved

reserved

reserved

reserved

23 - 31 reserved

1615

14

17

18

SPI0

16-bit counter/timer 1

16-bit counter/timer 0

IOCONFIG

system control

20 C_CAN(2)

reserved

22 SPI1(1)

flash controller

0xE000 0000

0xE010 0000private peripheral bus

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 11

参考資料

3.1 この章を読む前に

C_CANコントローラは部品 LPC11C12/14のみにあり、対応するクロック制御ビットとリセット制御ビット(SYSAHBCLKCTRLレジスタのビット 17と PRESETCTRLレジスタのビット 3)は、すべての LPC1111x部品用に予約されています。

3.2 概要

システム構成ブロックは、LPC111x/LPC11C1xのオシレータ、スタートロジック、およびクロック生成を制御します。 またこのブロックには、AHBアクセスの優先順位を設定するレジスタや、フラッシュ、SRAM、および ROM のメモリ領域をリマップするレジスタも含まれます。

3.3 ピンの説明

Table 4に、システム制御ブロックの機能と関連付けられるピンを示します。

3.4 クロックと電力の制御

LPC111x/LPC11C1xクロック生成ユニット(CGU)の概要については Figure 3を参照してください。

LPC111x/LPC11C1xには 3つの独立したオシレータがあります。 システムオシレータ、内部 RC オシレータ(IRC)、そしてウォッチドッグオシレータです。 それぞれのオシレータは、個々のアプリケーションの必要に応じて複数の目的に使用できます。

リセットすると、LPC111x/LPC11C1xはソフトウェアによって切り替えられるまで内部RCオシレータから動作します。 それにより、外部クリスタルやブートローダコードがなくても、システムは既知の周波数で動作することができます。

SYSAHBCLKCTRLレジスタは、各種ペリフェラルやメモリへのシステムクロックをゲート制御します。 UART、WDT、SPI0/1 には、メインクロックからペリフェラルクロックを求めるためのクロック分周器が個別に備わっています。

メインクロックと、IRC、システムオシレータ、ウォッチドッグオシレータからのクロック出力は、CLKOUTピンで直接確認できます。

UM10398第 3章:LPC111x/LPC11C1xシステム構成Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 4. Pin summary

Pin name Pin direction Pin description

CLKOUT O クロック出力ピンPIO0_0 to PIO0_11 I スタートロジックウェイクアップピ

ン・ポート 0PIO1_0 I スタートロジックウェイクアップピ

ン・ポート 1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 12

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

電力制御の詳細については Section 3.8を参照してください。

3.5 レジスタの説明

レジスタはすべてそのサイズに関係なくワードアドレス境界上にあります。 レジスタの詳細は、各機能の説明に記載しています。

システムセットアップの一部として再構成できるフラッシュアクセスタイミングレジスタについては、Section 3.11 を参照してください。 このレジスタはシステム構成ブロックの一部ではありません。

Fig 3. LPC111x/LPC11C1x CGU block diagram

SYSTEM PLLIRC oscillator

system oscillator

watchdog oscillator

IRC oscillator

watchdog oscillator

MAINCLKSEL(main clock select)

SYSPLLCLKSEL(system PLL clock select)

SYSTEM CLOCKDIVIDER

AHB clock 0(system)

AHBCLKCTRL[1:18]

SPI0 PERIPHERALCLOCK DIVIDER

SPI0_PCLK

SPI1 PERIPHERALCLOCK DIVIDER

SPI1_PCLK

UART PERIPHERALCLOCK DIVIDER

UART_PCLK

WDT CLOCKDIVIDER WDT_PCLK

WDTUEN(WDT clock update enable)

watchdog oscillator

IRC oscillatorsystem oscillator CLKOUT PIN CLOCK

DIVIDERCLKOUT pin

CLKOUTUEN(CLKOUT update enable)

main clock

system clock

IRC oscillator

AHB clocks 1 to 18(memoriesand peripherals)

18

sys_pllclkout

sys_pllclkin

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 13

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

Table 5. Register overview: system control block (base address 0x4004 8000)

Name Access Address offset Description Reset value

Reference

SYSMEMREMAP R/W 0x000 システムメモリリマップ 0x000 Table 6

PRESETCTRL R/W 0x004 ペリフェラルリセット制御 0x000 Table 7

SYSPLLCTRL R/W 0x008 システム PLL制御 0x000 Table 8

SYSPLLSTAT R 0x00C システム PLLステータス 0x000 Table 9

- - 0x010 - 0x01C 予約済み - -

SYSOSCCTRL R/W 0x020 システムオシレータ制御 0x000 Table 10

WDTOSCCTRL R/W 0x024 ウォッチドッグオシレータ制御 0x000 Table 11

IRCCTRL R/W 0x028 IRC制御 0x080 Table 12

- - 0x02C 予約済み - -

SYSRSTSTAT R 0x030 システムリセットステータスレジスタ 0x000 Table 13

- - 0x034 - 0x03C 予約済み - -

SYSPLLCLKSEL R/W 0x040 システム PLLクロックソース選択 0x000 Table 14

SYSPLLCLKUEN R/W 0x044 システム PLL クロックソース更新イネーブル

0x000 Table 15

- - 0x048 - 0x06C 予約済み - -

MAINCLKSEL R/W 0x070 メインクロックソース選択 0x000 Table 16

MAINCLKUEN R/W 0x074 メインクロックソース更新イネーブル 0x000 Table 17

SYSAHBCLKDIV R/W 0x078 システム AHBクロック分周器 0x001 Table 18

- - 0x07C 予約済み - -

SYSAHBCLKCTRL R/W 0x080 システム AHBクロック制御 0x85F Table 19

- - 0x084 - 0x090 予約済み - -

SSP0CLKDIV R/W 0x094 SPI0クロック分周器 0x000 Table 20

UARTCLKDIV R/W 0x098 UARTクロック分周器 0x000 Table 21

SSP1CLKDIV R/W 0x09C SPI1クロック分周器 0x000 Table 22

- - 0x0A0-0x0CC 予約済み - -

WDTCLKSEL R/W 0x0D0 WDTクロックソース選択 0x000 Table 23

WDTCLKUEN R/W 0x0D4 WDTクロックソース更新イネーブル 0x000 Table 24

WDTCLKDIV R/W 0x0D8 WDTクロック分周器 0x000 Table 25

- - 0x0DC 予約済み - -

CLKOUTCLKSEL R/W 0x0E0 CLKOUTクロックソース選択 0x000 Table 26

CLKOUTUEN R/W 0x0E4 CLKOUTクロックソース更新イネーブル 0x000 Table 27

CLKOUTDIV R/W 0x0E8 CLKOUTクロック分周器 0x000 Table 28

- - 0x0EC - 0x0FC 予約済み - -

PIOPORCAP0 R 0x100 PORキャプチャの PIOステータス 0 user dependent

Table 29

PIOPORCAP1 R 0x104 PORキャプチャの PIOステータス 1 user dependent

Table 30

- R 0x108 - 0x14C 予約済み - -

BODCTRL R/W 0x150 BOD制御 0x000 Table 31

- - 0x154 予約済み - -

SYSTCKCAL R/W 0x158 システム tickカウンタ校正 0x004 Table 32

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 14

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.1 システムメモリリマップレジスタシステムメモリリマップレジスタは、ARM 割り込みベクタをブート ROM、フラッシュ、SRAMのいずれから読み取るかを選択します。

3.5.2 ペリフェラルリセット制御レジスタこのレジスタにより、ソフトウェアは SPIおよび I2Cのペリフェラルをリセットすることができます。 SSP0/1_RST_Nビットまたは I2C_RST_Nビットに 0を書き込むと、SPI0/1または I2Cのペリフェラルがリセットされます。 1を書き込むと、リセットがデアサートされます。

注意 : SPIや I2Cのペリフェラルにアクセスする前に、このレジスタに 1を書き込んで SPIおよび I2Cへのリセット信号を確実にデアサートしてください。

- - 0x15C - 0x1FC 予約済み - -

STARTAPRP0 R/W 0x200 スタートロジックエッジ制御レジスタ 0 Table 33

STARTERP0 R/W 0x204 スタートロジック信号イネーブルレジスタ0

Table 34

STARTRSRP0CLR W 0x208 スタートロジックリセットレジスタ 0 n/a Table 35

STARTSRP0 R 0x20C スタートロジックステータスレジスタ 0 n/a Table 36

- - 0x210 - 0x22C 予約済み - -

PDSLEEPCFG R/W 0x230 ディープスリープモードのパワーダウン状態

0x0000 0000

Table 38

PDAWAKECFG R/W 0x234 ディープパワーダウンモードからのウェイクアップ後のパワーダウン状態

0x0000 EDF0

Table 39

PDRUNCFG R/W 0x238 パワーダウン設定レジスタ 0x0000 EDF0

Table 40

- - 0x23C - 0x3F0 予約済み - -

DEVICE_ID R 0x3F4 デバイス ID part dependent

Table 41

Table 5. Register overview: system control block (base address 0x4004 8000) (続き)Name Access Address offset Description Reset

valueReference

Table 6. System memory remap register (SYSMEMREMAP, address 0x4004 8000) bit description

Bit Symbol Value Description Reset value

1:0 MAP システムメモリリマップ 0x00

00 ブートローダモード。 割り込みベクタはブートROMにリマップされます。

01 ユーザー RAM モード。 割り込みベクタはスタティック RAMにリマップされます。

10 or 11

ユーザー Flash モード。 割り込みベクタはリマップされず、Flash内に存在します。

31:2 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 15

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.3 システム PLL制御レジスタこのレジスタはシステム PLLに接続してイネーブルにするとともに、PLL乗算器および分周器の値を設定します。 PLL は、各種クロックソースから 10 MHz ~ 25 MHz の入力周波数を受け入れます。 入力周波数は、高周波まで増大させた後、CPU、ペリフェラル、およびメモリが使用する実際のクロックになるまで分周します。 PLLは、CPUで許容される最大クロックまで生成できます。

3.5.4 システム PLLステータスレジスタこのレジスタは読み取り専用レジスタであり、PLL ロックステータスを提供します(Section 3.10.1を参照)。

Table 7. Peripheral reset control register (PRESETCTRL, address 0x4004 8004) bit description

Bit Symbol Value Description Reset value

0 SSP0_RST_N SPI0リセット制御 0

0 SPI0ペリフェラルをリセットします。1 SPI0リセットがデアサートされます。

1 I2C_RST_N I2Cリセット制御 0

0 I2Cペリフェラルをリセットします。1 I2Cリセットがデアサートされます。

2 SSP1_RST_N SPI1リセット制御 0

0 SPI1ペリフェラルをリセットします。1 SPI1リセットがデアサートされます。

3 CAN_RST_N C_CANリセット制御 0

0 C_CANペリフェラルをリセットします。1 C_CANリセットがデアサートされます。

31:4 - - 予約済み 0x00

Table 8. System PLL control register (SYSPLLCTRL, address 0x4004 8008) bit description

Bit Symbol Value Description Reset value

4:0 MSEL 帰還分周器の値。 分周値MはプログラムされたMSEL値+1です。

0x000

00000 分周比M = 1...

11111 分周比M = 326:5 PSEL ポスト分周比 P。分周比は 2× Pです。 0x00

00 P = 1

01 P = 2

10 P = 4

11 P = 8

31:7 - - 予約済み。 予約ビットには 1を書き込まないでください。 0x0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 16

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.5 システムオシレータ制御レジスタこのレジスタは、システムオシレータの周波数範囲を設定します。

3.5.6 ウォッチドッグオシレータ制御レジスタこのレジスタはウォッチドッグオシレータを設定します。 このオシレータはアナログ部分とデジタル部分で構成されます。 アナログ部分にはオシレータ関数が含まれており、アナログクロック(Fclkana)を生成します。 デジタル部分では、アナログ出力クロック(Fclkana)を必要な出力クロック周波数 wdt_osc_clkまで分周することができます。 アナログ出力周波数(Fclkana)は、FREQSELビットを使用して 500 kHz~ 3.4 MHzの範囲で調整できます。 デジタル部分では、Fclkanaは DIVSELビットを使用して wdt_osc_clkに分周されます(分周比 = 2、4、...、64)。

ウォッチドッグオシレータの出力クロック周波数は次の式により計算されます。 wdt_osc_clk = Fclkana(2 x (1 + DIVSEL)) = 7.8 kHz~ 1.7 MHz(公称値)

注意 : FREQSELビットをどのように設定しても、Fclkanaの値は記載されている周波数値の± 40% になります。 ウォッチドッグオシレータは、最小消費電力のクロックソースです。 タイミングの精度が要求される場合は、IRC またはシステムオシレータを使用してください。

注意 : ウォッチドッグオシレータの周波数は、リセット後は未定義となります。 ウォッチドッグオシレータの周波数は、ウォッチドッグオシレータを使用する前に WDTOSCCTRLレジスタへの書き込みを行うことによってプログラムする必要があります。

Table 9. System PLL status register (SYSPLLSTAT, address 0x4004 800C) bit description

Bit Symbol Value Description Reset value

0 LOCK PLLロックステータス 0x0

0 PLLは非ロック状態1 PLLはロック状態

31:1 - - 予約済み 0x00

Table 10. System oscillator control register (SYSOSCCTRL, address 0x4004 8020) bit description

Bit Symbol Value Description Reset value

0 BYPASS システムオシレータのバイパス 0x0

0 オシレータはバイパスされません。 1 バイパスはイネーブル。 PLL入力(sys_osc_clk)は、

XTALINピンとXTALOUTピンから直接供給されます。1 FREQRANGE ローパワーオシレータの周波数範囲を決定します。 0x0

0 周波数範囲 1~ 20 MHz1 周波数範囲 15~ 25 MHz

31:2 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 17

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.7 内部共振クリスタル制御レジスタこのレジスタは、オンチップ 12 MHzオシレータをトリミングするのに使用します。 トリム値は工場で事前設定されており、起動時にブートコードによって書き込まれます。

Table 11. Watchdog oscillator control register (WDTOSCCTRL, address 0x4004 8024) bit description

Bit Symbol Value Description Reset value

4:0 DIVSEL Fclkanaの分周器を選択します。 wdt_osc_clk = Fclkana(2 x (1 + DIVSEL))

0x00

00000 2× (1 + DIVSEL) = 200001 2× (1 + DIVSEL) = 400010 2× (1 + DIVSEL) = 6... ...

11111 2× (1 + DIVSEL) = 648:5 FREQSEL ウォッチドッグオシレータのアナログ出力周波数(Fclkana)

を選択します。0x00

0001 0.5 MHz

0010 0.8 MHz

0011 1.1 MHz

0100 1.4 MHz

0101 1.6 MHz

0110 1.8 MHz

0111 2.0 MHz

1000 2.2 MHz

1001 2.4 MHz

1010 2.6 MHz

1011 2.7 MHz

1100 2.9 MHz

1101 3.1 MHz

1110 3.2 MHz

1111 3.4 MHz

31:9 - - 予約済み 0x00

Table 12. Internal resonant crystal control register (IRCCTRL, address 0x4004 8028) bit description

Bit Symbol Value Description Reset value

7:0 TRIM トリム値 0x1000 0000, then flash will reprogram

31:9 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 18

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.8 システムリセットステータスレジスタSYSRSTSTAT レジスタは、直近のリセットイベントのソースを表示します。 ビットは任意のビットに1を書き込むことによってクリアされます。 PORイベントはこのレジスタ内にある他のビットをすべてクリアしますが、POR 信号をネゲートした後で他のリセット信号(たとえば EXTRST)がアサートされたままである場合、そのビットは「検出」に設定されます。

3.5.9 システム PLLクロックソース選択レジスタこのレジスタは、システム PLL のクロックソースを選択します。 更新を有効にするには、SYSPLLCLKUENレジスタ(Section 3.5.10を参照)を LOWから HIGHに切り替える必要があります。

注意 : クロックソースを切り替えるときは、クロックソースを更新する前に両方のクロックを動作させておく必要があります。

注意 : ボーレートが 100 kbit/sを超える C_CANコントローラを使用する場合は、システムオシレータを選択する必要があります。

Table 13. System reset status register (SYSRSTSTAT, address 0x4004 8030) bit description

Bit Symbol Value Description Reset value

0 POR PORリセットステータス 0x0

0 POR検出されず1 POR検出

1 EXTRST 外部 RESETピンのステータス 0x0

0 RESETイベント検出されず1 RESET検出

2 WDT ウォッチドッグリセットのステータス 0x0

0 WDTリセット検出されず1 WDTリセット検出

3 BOD ブラウンアウト検出リセットのステータス 0x0

0 BODリセット検出されず1 BODリセット検出

4 SYSRST ソフトウェアシステムリセットのステータス 0x0

0 システムリセット検出されず1 システムリセット検出

31:5 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 19

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.10 システム PLLクロックソース更新イネーブルレジスタこのレジスタは、SYSPLLCLKSELレジスタを書き込んだ後、システム PLLのクロックソースを新しい入力クロックで更新します。 更新を有効にするには、まず SYSPLLUEN レジスタに 0を書き込んでから、SYSPLLUENに 1を書き込みます。

クロックソースを正常に変更するには、このレジスタを更新する前に両方のクロックソースを動作させておく必要があります。

3.5.11 メインクロックソース選択レジスタこのレジスタはメインシステムクロックを、システム PLL への入力、システム PLL からの出力(sys_pllclkout)、ウォッチドッグオシレータまたは IRC オシレータから直接、のいずれかから選択します。 メインシステムクロックは、コア、ペリフェラル、メモリをクロック制御します。

更新を有効にするには、MAINCLKUENレジスタ(Section 3.5.12を参照)を LOWから HIGHに切り替える必要があります。

注意 : クロックソースを切り替えるときは、クロックソースを更新する前に両方のクロックを動作させておく必要があります。

注意 : ボーレートが 100 kbit/sを超える C_CANコントローラを使用する場合は、システムオシレータを選択する必要があります。

Table 14. System PLL clock source select register (SYSPLLCLKSEL, address 0x4004 8040) bit description

Bit Symbol Value Description Reset value

1:0 SEL システム PLLクロックソース 0x00

00 IRCオシレータ01 システムオシレータ10 予約済み11 予約済み

31:2 - - 予約済み 0x00

Table 15. System PLL clock source update enable register (SYSPLLUEN, address 0x4004 8044) bit description

Bit Symbol Value Description Reset value

0 ENA システム PLLクロックソース更新イネーブル 0x0

0 変更なし1 クロックソース更新

31:1 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 20

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.12 メインクロックソース更新イネーブルレジスタこのレジスタは、MAINCLKSEL レジスタを書き込んだ後に、メインクロックのクロックソースを新しい入力クロックで更新します。 更新を有効にするには、まず MAINCLKUENレジスタに 0を書き込んでから、MAINCLKUENに 1を書き込みます。

クロックソースを正常に変更するには、このレジスタを更新する前に両方のクロックソースを動作させておく必要があります。

3.5.13 システム AHBクロック分周器レジスタこのレジスタはメインクロックを分周して、コア、メモリ、ペリフェラルにシステムクロックを提供します。 システムクロックは、DIV ビットを 0x0 に設定することで完全にシャットダウンできます。

Table 16. Main clock source select register (MAINCLKSEL, address 0x4004 8070) bit description

Bit Symbol Value Description Reset value

1:0 SEL メインクロックのクロックソース 0x00

00 IRCオシレータ01 システム PLLへの入力クロック10 WDTオシレータ11 システム PLLクロック出力

31:2 - - 予約済み 0x00

Table 17. Main clock source update enable register (MAINCLKUEN, address 0x4004 8074) bit description

Bit Symbol Value Description Reset value

0 ENA メインクロックソース更新イネーブル 0x0

0 変更なし1 クロックソース更新

31:1 - - 予約済み 0x00

Table 18. System AHB clock divider register (SYSAHBCLKDIV, address 0x4004 8078) bit description

Bit Symbol Value Description Reset value

7:0 DIV システム AHBクロック分周器の値 0x01

0 システムクロックはディスエーブル 1 1で分周to ...

255 255で分周31:8 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 21

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.14 システム AHBクロック制御レジスタAHBCLKCTRL レジスタは、個別のシステムやペリフェラルブロックに対してクロックをイネーブルにします。 システムクロック(sys_ahb_clk[0]、AHBCLKCTRL レジスタのビット 0)は、AHB-APB間ブリッジ、AHBマトリックス、ARM Cortex-M0、Sysconブロック、そして PMUにクロックを提供します。 このクロックはディスエーブルにできません。

Table 19. System AHB clock control register (SYSAHBCLKCTRL, address 0x4004 8080) bit description

Bit Symbol Value Description Reset value

0 SYS AHB-APB間ブリッジ、AHBマトリックス、Cortex-M0FCLKおよび HCLK、Syscon、そして PMUにクロックをイネーブルにします。 このビットは読み取り専用です。

1

0 予約済み1 イネーブル

1 ROM ROMにクロックをイネーブル 1

0 ディスエーブル1 イネーブル

2 RAM RAMにクロックをイネーブル 1

0 ディスエーブル1 イネーブル

3 FLASHREG フラッシュレジスタインターフェースのクロックをイネーブル

1

0 ディスエーブル1 イネーブル

4 FLASHARRAY フラッシュ配列アクセスのクロックをイネーブル 1

0 ディスエーブル1 イネーブル

5 I2C I2Cにクロックをイネーブル 0

0 ディスエーブル1 イネーブル

6 GPIO GPIOにクロックをイネーブル 1

0 ディスエーブル1 イネーブル

7 CT16B0 16ビットカウンタ/タイマ0にクロックをイネーブル 0

0 ディスエーブル1 イネーブル

8 CT16B1 16ビットカウンタ/タイマ1にクロックをイネーブル 0

0 ディスエーブル1 イネーブル

9 CT32B0 32ビットカウンタ/タイマ0にクロックをイネーブル 0

0 ディスエーブル1 イネーブル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 22

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.15 SPI0クロック分周器レジスタこのレジスタは、SPI0ペリフェラルクロックの SPI0_PCLKを設定します。 SPI0_PCLKは、DIVビットを 0x0に設定することでシャットダウンできます。

10 CT32B1 32ビットカウンタ/タイマ1にクロックをイネーブル 0

0 ディスエーブル1 イネーブル

11 SSP0 SPI0にクロックをイネーブル 1

0 ディスエーブル1 イネーブル

12 UART UARTにクロックをイネーブル。 UART ピンは、UARTクロックをイネーブルにする前に IOCONブロック内で設定しておく必要があります。

0

0 ディスエーブル1 イネーブル

13 ADC ADCにクロックをイネーブル 0

0 ディスエーブル1 イネーブル

14 - 予約済み 0

15 WDT WDTにクロックをイネーブル 0

0 ディスエーブル1 イネーブル

16 IOCON I/O設定ブロックにクロックをイネーブル 0

0 ディスエーブル1 イネーブル

17 CAN C_CANにクロックをイネーブル 0

0 ディスエーブル1 イネーブル

18 SSP1 SPI1にクロックをイネーブル 0

0 ディスエーブル1 イネーブル

31:19 - - 予約済み 0x00

Table 19. System AHB clock control register (SYSAHBCLKCTRL, address 0x4004 8080) bit description (続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 23

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.16 UARTクロック分周器レジスタこのレジスタは、UART ペリフェラルクロックの UART_PCLK を設定します。 UART_PCLKは、DIVビットを 0x0に設定することでシャットダウンできます。

注意 : UARTピンは、UARTクロックをイネーブルにする前に IOCONブロック内で設定しておく必要があります。

3.5.17 SPI1クロック分周器レジスタこのレジスタは、SPI1ペリフェラルクロックの SPI1_PCLKを設定します。 SPI1_PCLKは、DIVビットを 0x0に設定することでシャットダウンできます。

3.5.18 WDTクロックソース選択レジスタこのレジスタは、ウォッチドッグタイマのクロックソースを選択します。 更新を有効にするには、WDTCLKUENレジスタ(Section 3.5.19を参照)を LOWから HIGHに切り替える必要があります。

Table 20. SPI0 clock divider register (SSP0CLKDIV, address 0x4004 8094) bit description

Bit Symbol Value Description Reset value

7:0 DIV SPI0_PCLKクロック分周器の値 0x00

0 SPI0_PCLKをディスエーブル1 1で分周to ...

255 255で分周31:8 - - 予約済み 0x00

Table 21. UART clock divider register (UARTCLKDIV, address 0x4004 8098) bit description

Bit Symbol Value Description Reset value

7:0 DIV UART_PCLKクロック分周器の値 0x00

0 UART_PCLKをディスエーブル1 1で分周to ...

255 255で分周31:8 - - 予約済み 0x00

Table 22. SPI1 clock divider register (SSP1CLKDIV, address 0x4004 809C) bit description

Bit Symbol Value Description Reset value

7:0 DIV SPI1_PCLKクロック分周器の値 0x00

0 SPI1_PCLKをディスエーブル1 1で分周to ...

255 255で分周31:8 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 24

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.19 WDTクロックソース更新イネーブルレジスタこのレジスタは、WDTCLKSELレジスタを書き込んだ後、ウォッチドッグタイマのクロックソースを新しい入力クロックで更新します。 ウォッチドッグタイマの入力時に更新を有効にするには、まずWDTCLKUENレジスタに 0を書き込んでから、WDTCLKUENに 1を書き込みます。

3.5.20 WDTクロック分周器レジスタこのレジスタは、ウォッチドッグクロックの wdt_clkの分周値を決定します。

3.5.21 CLKOUTクロックソース選択レジスタこのレジスタは、CLKOUTピンに出力される clkout_clk信号を設定します。 3つのオシレータすべてとメインクロックは、clkout_clkクロックに対して選択できます。

更新を有効にするには、CLKOUTCLKUEN レジスタ(Section 3.5.22 を参照)を LOW からHIGHに切り替える必要があります。

Table 23. WDT clock source select register (WDTCLKSEL, address 0x4004 80D0) bit description

Bit Symbol Value Description Reset value

1:0 SEL WDTクロックソース 0x00

00 IRCオシレータ01 メインクロック10 ウォッチドッグオシレータ11 予約済み

31:2 - - 予約済み 0x00

Table 24. WDT clock source update enable register (WDTCLKUEN, address 0x4004 80D4) bit description

Bit Symbol Value Description Reset value

0 ENA WDTクロックソース更新イネーブル 0x0

0 変更なし1 クロックソース更新

31:1 - - 予約済み 0x00

Table 25. WDT clock divider register (WDTCLKDIV, address 0x4004 80D8) bit description

Bit Symbol Value Description Reset value

7:0 DIV WDTクロック分周器の値 0x00

0 ディスエーブル1 1で分周to ...

255 255で分周31:8 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 25

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.22 CLKOUTクロックソース更新イネーブルレジスタこのレジスタは、CLKOUTCLKSELレジスタを書き込んだ後、CLKOUTピンのクロックソースを新しいクロックで更新します。 CLKOUTピンの入力時に更新を有効にするには、まずCLKCLKUENレジスタに 0を書き込んでから、CLKCLKUENに 1を書き込みます。

3.5.23 CLKOUTクロック分周器レジスタこのレジスタは、CLKOUTピン上のクロック出力信号の分周値を決定します。

3.5.24 PORキャプチャの PIOステータスレジスタ 0

PIOPORCAP0レジスタは、パワーオンリセット時にポート 0、1、2(PIO2_0~ PIO2_7のピン)の PIOピンの状態(HIGHまたは LOW)をキャプチャします。 各ビットは、1つのGPIO ピンのリセット状態を表します。 このレジスタは、読み取り専用のステータスレジスタです。

Table 26. CLKOUT clock source select register (CLKOUTCLKSEL, address 0x4004 80E0) bit description

Bit Symbol Value Description Reset value

1:0 SEL CLKOUTクロックソース 0x00

00 IRCオシレータ01 システムオシレータ10 ウォッチドッグオシレータ11 メインクロック

31:2 - - 予約済み 0x00

Table 27. CLKOUT clock source update enable register (CLKOUTUEN, address 0x4004 80E4) bit description

Bit Symbol Value Description Reset value

0 ENA CLKOUTクロックソース更新イネーブル 0x0

0 変更なし1 クロックソース更新

31:1 - - 予約済み 0x00

Table 28. CLKOUT clock divider registers (CLKOUTCLKDIV, address 0x4004 80E8) bit description

Bit Symbol Value Description Reset value

7:0 DIV クロック分周器の値 0x00

0 ディスエーブル1 1で分周to ...

255 255で分周31:8 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 26

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.25 PORキャプチャの PIOステータスレジスタ 1

PIOPORCAP1 レジスタは、パワーオンリセット時にポート 2(PIO2_8 ~ PIO2_11)およびポート 3 の PIOピンの状態(HIGHまたは LOW)をキャプチャします。 各ビットは、1つの PIOピンのリセット状態を表します。 このレジスタは、読み取り専用のステータスレジスタです。

3.5.26 BOD制御レジスタBOD 制御レジスタは、BOD 割り込みを NVIC へ送り、強制リセットを行うための 4 種類のしきい値を選択します。 Table 31に示すリセットしきい値および割り込みしきい値が標準値です。

Table 29. POR captured PIO status registers 0 (PIOPORCAP0, address 0x4004 8100) bit description

Bit Symbol Description Reset value

11:0 CAPPIO0_11 to CAPPIO0_0

rawリセットステータス入力PIO0_11~ PIO0_0

ユーザー実装に応じて異なる

23:12 CAPPIO1_11 to CAPPIO1_0

rawリセットステータス入力PIO1_11~ PIO1_0

ユーザー実装に応じて異なる

31:24 CAPPIO2_7 to CAPPIO2_0

rawリセットステータス入力PIO2_7~ PIO2_0

ユーザー実装に応じて異なる

Table 30. POR captured PIO status registers 1 (PIOPORCAP1, address 0x4004 8104) bit description

Bit Symbol Description Reset value

0 CAPPIO2_8 rawリセットステータス入力PIO2_8

ユーザー実装に応じて異なる

1 CAPPIO2_9 rawリセットステータス入力PIO2_9

ユーザー実装に応じて異なる

2 CAPPIO2_10 rawリセットステータス入力PIO2_10

ユーザー実装に応じて異なる

3 CAPPIO2_11 rawリセットステータス入力PIO2_11

ユーザー実装に応じて異なる

4 CAPPIO3_0 rawリセットステータス入力PIO3_0

ユーザー実装に応じて異なる

5 CAPPIO3_1 rawリセットステータス入力PIO3_1

ユーザー実装に応じて異なる

6 CAPPIO3_2 rawリセットステータス入力PIO3_2

ユーザー実装に応じて異なる

7 CAPPIO3_3 rawリセットステータス入力PIO3_3

ユーザー実装に応じて異なる

8 CAPPIO3_4 rawリセットステータス入力PIO3_4

ユーザー実装に応じて異なる

9 CAPPIO3_5 rawリセットステータス入力PIO3_5

ユーザー実装に応じて異なる

31:10 - 予約済み -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 27

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.27 システム tickカウンタ校正レジスタ

3.5.28 スタートロジックエッジ制御レジスタ 0

STARTAPRP0レジスタは、ポート 0(PIO0_0~ PIO0_11)とポート 1(PIO1_0)のスタートロジック入力を制御します。 このレジスタは、対応する PIO入力の立ち下がりエッジまたは立ち上がりエッジを選択して、スタートロジックにそれぞれ立ち下がりクロックエッジまたは立ち上がりクロックエッジを生成します(Section 3.9.2を参照)。

STARTAPRP0 レジスタ内の各ビットは 1つのポート入力を制御し、NVIC 内の 1 つのウェイクアップ割り込みに接続されます。 STARTAPRP0 レジスタのビット 0 は割り込み 0 に、ビット 1 は割り込み 1 に、というようにそれぞれ対応し(Table 49 を参照)、合計 13 の割り込みがあります。

Table 31. BOD control register (BODCTRL, address 0x4004 8150) bit description

Bit Symbol Value Description Reset value

1:0 BODRSTLEV BODリセットレベル 00

00 レベル 0: リセットアサートしきい値電圧は 1.46 V、リセットデアサートしきい値電圧は 1.63 V。

01 レベル 1: リセットアサートしきい値電圧は 2.06 V、リセットデアサートしきい値電圧は 2.15 V。

10 レベル 2: リセットアサートしきい値電圧は 2.35 V、リセットデアサートしきい値電圧は 2.43 V。

11 レベル 3: リセットアサートしきい値電圧は 2.63 V、リセットデアサートしきい値電圧は 2.71 V。

3:2 BODINTVAL BOD割り込みレベル 00

00 レベル 0: 割り込みアサートしきい値電圧は 1.65 V、割り込みデアサートしきい値電圧は 1.80 V。

01 レベル 1: 割り込みアサートしきい値電圧は 2.22 V、割り込みデアサートしきい値電圧は 2.35 V。

10 レベル 2: 割り込みアサートしきい値電圧は 2.52 V、割り込みデアサートしきい値電圧は 2.66 V。

11 レベル 3: 割り込みアサートしきい値電圧は 2.80 V、割り込みデアサートしきい値電圧は 2.90 V。

4 BODRSTENA BODリセットイネーブル 0

0 リセット機能をディスエーブルにします。1 リセット機能をイネーブルにします。

31:5 - - 予約済み 0x00

Table 32. System tick timer calibration register (SYSTCKCAL, address 0x4004 8158) bit description

Bit Symbol Value Description Reset value

25:0 CAL システム tickタイマ校正値 0x04

31:26 - - 予約済み 0x00

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 28

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

注意 : 対応するPIOピンを使用してディープスリープモードからチップをウェイクアップする場合、スタートロジック入力に接続されている各割り込みを NVIC内でイネーブルにする必要があります。

3.5.29 スタートロジック信号イネーブルレジスタ 0

この STARTERP0 レジスタは、スタートロジック内のスタート信号ビットをイネーブルまたはディスエーブルにします。 ビットの割り当ては Table 33と同じです。

3.5.30 スタートロジックリセットレジスタ 0

STARTRSRP0CLRレジスタ内のビットに1を書き込むと、スタートロジックの状態がリセットされます。 ビットの割り当ては Table 33と同じです。 スタートアップロジックは、入力信号を使用して、スタート信号を記録するためのクロックエッジを生成します。 このクロックエッジ(立ち下がりまたは立ち上がり)は、ディープスリープモードからのウェイクアップに対して割り込みを設定します。 したがって、スタートアップロジックの状態は使用する前にクリアしておく必要があります。

Table 33. Start logic edge control register 0 (STARTAPRP0, address 0x4004 8200) bit description

Bit Symbol Value Description Reset value

11:0 APRPIO0_11 to APRPIO0_0

スタートロジック入力 PIO0_11~ PIO0_0のエッジ選択

0x0

0 立ち下がりエッジ 1 立ち上がりエッジ

12 APRPIO1_0 スタートロジック入力 PIO1_0のエッジ選択 0x0

0 立ち下がりエッジ 1 立ち上がりエッジ

31:13 - - 予約済み 0x0

Table 34. Start logic signal enable register 0 (STARTERP0, address 0x4004 8204) bit description

Bit Symbol Value Description Reset value

11:0 ERPIO0_11 to ERPIO0_0

スタートロジック入力 PIO0_11~ PIO0_0のスタート信号イネーブル

0x0

0 ディスエーブル 1 イネーブル

12 ERPIO1_0 スタートロジック入力 PIO1_0 のスタート信号イネーブル

0x0

0 ディスエーブル 1 イネーブル

31:13 - 予約済み 0x0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 29

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.31 スタートロジックステータスレジスタ 0

このレジスタは、イネーブルなスタート信号ビットのステータスを反映します。 ビットの割り当ては Table 33と同じです。 各ビット(イネーブルの場合)はスタートロジックの状態、すなわち、所定のピンがウェイクアップ信号を受信したかどうかを反映します。

3.5.32 ディープスリープモード設定レジスタこのレジスタは、デバイスがディープスリープモードになったときのウォッチドッグ(WD)オシレータと BOD回路の動作を制御します。

このレジスタは、ディープスリープモードになる前に最低 1回、Table 37に示す 4つの値のいずれかによって初期化する必要があります。

注意 : このレジスタの初期化とプログラミングが正しく行われないと、マイクロコントローラが未定義の動作をすることになります。 PDSLEEPCFG レジスタで許容される値は、Table 37に示す値のみです。

Table 35. Start logic reset register 0 (STARTRSRP0CLR, address 0x4004 8208) bit description

Bit Symbol Value Description Reset value

11:0 RSRPIO0_11 to RSRPIO0_0

スタートロジック入力PIO0_11~PIO0_0のスタート信号リセット

n/a

0 -

1 書き込み : スタート信号リセット12 RSRPIO1_0 スタートロジック入力PIO1_0のスタート信号リセッ

トn/a

0 -

1 書き込み : スタート信号リセット31:13 - - 予約済み n/a

Table 36. Start logic status register 0 (STARTSRP0, address 0x4004 820C) bit description

Bit Symbol Value Description Reset value

11:0 SRPIO0_11 to SRPIO0_0

スタートロジック入力 PIO0_11~ PIO0_0のスタート信号ステータス

n/a

0 スタート信号受信せず1 スタート信号保留中

12 SRPIO1_0 スタートロジック入力 PIO1_0のスタート信号ステータス

n/a

0 スタート信号受信せず1 スタート信号保留中

31:13 - - 予約済み n/a

Table 37. Allowed values for PDSLEEPCFG register

Configuration WD oscillator on WD oscillator off

BOD on PDSLEEPCFG = 0x0000 18B7 PDSLEEPCFG = 0x0000 18F7

BOD off PDSLEEPCFG = 0x0000 18BF PDSLEEPCFG = 0x0000 18FF

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 30

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

ディープスリープモードで適切な電力設定を選択する際には、以下を考慮してください。

• BOD: BOD回路をイネーブルのままにしておくと、部品がディープスリープモードになっている間に発生する低電圧イベントから部品が保護されます。 ただし、ディープスリープモードでは、BOD回路からの電流ドレインが増加します。

• WD オシレータ : ウェイクアップイベントのタイミングをとるのにウォッチドッグタイマまたは多目的タイマが必要であれば、ウォッチドッグオシレータをディープスリープモードで動作させておいて、これらのタイマのクロックにすることができます(詳細は Section 3.9.3を参照)。 その場合は、ウォッチドッグオシレータのアナログ出力周波数を最小値に設定し(WDTOSCCTRL内のビット FREQSEL = 0001、Table 11を参照)、ディープスリープモードに切り替える前に、SYSAHBCLKCTRLレジスタ(Table19 を参照)内でタイマクロック以外のすべてのペリフェラルクロックをディスエーブルにする必要があります。

ディープスリープモードでウォッチドッグオシレータを動作させると、電流ドレイン増加の原因となります。

注意 : このレジスタの予約ビットは、必ず指定どおりに書き込む必要があります。 このレジスタは、ディープスリープモードに切り替える前に正しく初期化しておかなくてはなりません。

3.5.33 ウェイクアップ設定レジスタこのレジスタのビットは、ディープスリープモードからウェイクアップするとチップがどのような状態になるかを決定します。

Table 38. Deep-sleep configuration register (PDSLEEPCFG, address 0x4004 8230) bit description

Bit Symbol Value Description Reset value

2:0 - 111 予約済み。 これらのビットには常に111と書き込みます。

0

3 BOD_PD ディープスリープモードでの BOD パワーダウン制御、Table 37を参照。

0

0 通常電力状態1 パワーダウン

5:4 - 11 予約済み。 これらのビットには常に 11と書き込みます。

0

6 WDTOSC_PD ディープスリープモードでのウォッチドッグオシレータ電力制御、Table 37を参照。

0

0 通常電力状態1 パワーダウン

7 - 1 予約済み。 このビットには常に 1と書き込みます。 0

10:8 - 000 予約済み。 これらのビットには常に 000 と書き込みます。

0

12:11 - 11 予約済み。 これらのビットには常に 11と書き込みます。

0

31:13 - 0 予約済み 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 31

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

デフォルトでは、チップがディープスリープモードからウェイクアップすると、IRCとフラッシュメモリはパワーアップして動作し、BOD回路はイネーブルになります。

注意 : 予約ビットは、必ず指定どおりに書き込む必要があります。

Table 39. Wake-up configuration register (PDAWAKECFG, address 0x4004 8234) bit description

Bit Symbol Value Description Reset value

0 IRCOUT_PD IRCオシレータ出力ウェイクアップ設定 0

0 通常電力状態1 パワーダウン

1 IRC_PD IRCオシレータパワーダウンウェイクアップ設定 0

0 通常電力状態1 パワーダウン

2 FLASH_PD フラッシュウェイクアップ設定 0

0 通常電力状態1 パワーダウン

3 BOD_PD BODウェイクアップ設定 0

0 通常電力状態1 パワーダウン

4 ADC_PD ADCウェイクアップ設定 1

0 通常電力状態1 パワーダウン

5 SYSOSC_PD システムオシレータウェイクアップ設定 1

0 通常電力状態1 パワーダウン

6 WDTOSC_PD ウォッチドッグオシレータウェイクアップ設定 1

0 通常電力状態1 パワーダウン

7 SYSPLL_PD システム PLLウェイクアップ設定 1

0 通常電力状態1 パワーダウン

8 - 1 予約済み。 このビットには常に 1と書き込みます。 1

9 - 0 予約済み。 このビットには常に 0と書き込みます。 0

10 - 1 予約済み。 このビットには常に 1と書き込みます。 1

11 - 1 予約済み。 このビットには常に 1と書き込みます。 1

12 - 0 予約済み。 このビットには常に 0と書き込みます。 0

15:13 - 111 予約済み。 これらのビットには常に 111と書き込みます。

111

31:16 - - 予約済み -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 32

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.34 パワーダウン設定レジスタPDRUNCFGレジスタ内のビットは、各種アナログブロックへの電力供給を制御します。 このレジスタへの書き込みはチップの動作中いつでも可能であり、IRCへのパワーダウン信号を除く書き込みはただちに有効になります。

IRC をパワーダウンするときのグリッチ発生を避けるため、IRC クロックはクリーンポイントで自動的にオフに切り替わります。 したがって、IRC についてはパワーダウン状態が有効になる前に遅延が発生する可能性があります。

デフォルトでは、IRCとフラッシュメモリはパワーアップして動作し、BOD回路はイネーブルになります。

注意 : 予約ビットは、必ず指定どおりに書き込む必要があります。

Table 40. Power-down configuration register (PDRUNCFG, address 0x4004 8238) bit description

Bit Symbol Value Description Reset value

0 IRCOUT_PD IRCオシレータ出力パワーダウン 0

0 通常電力状態1 パワーダウン

1 IRC_PD IRCオシレータパワーダウン 0

0 通常電力状態1 パワーダウン

2 FLASH_PD フラッシュパワーダウン 0

0 通常電力状態1 パワーダウン

3 BOD_PD BODパワーダウン 0

0 通常電力状態1 パワーダウン

4 ADC_PD ADCパワーダウン 1

0 通常電力状態1 パワーダウン

5 SYSOSC_PD システムオシレータパワーダウン 1

0 通常電力状態1 パワーダウン

6 WDTOSC_PD ウォッチドッグオシレータパワーダウン 1

0 通常電力状態1 パワーダウン

7 SYSPLL_PD システム PLLパワーダウン 1

0 通常電力状態1 パワーダウン

8 - 1 予約済み。 このビットには常に 1と書き込みます。 1

9 - 0 予約済み。 このビットには常に 0と書き込みます。 0

10 - 1 予約済み。 このビットには常に 1と書き込みます。 1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 33

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.5.35 デバイス IDレジスタデバイス ID レジスタは読み取り専用レジスタであり、LPC111x/LPC11C1x の各部品の部品 IDが含まれています。 このレジスタは、ISP/IAPコマンド(Section 17.8.5)によっても読み取られます。

3.6 リセット

LPC111x/LPC11C1xにリセットのソースは 4つあります。RESETピン、ウォッチドッグリセット、パワーオンリセット(POR)、そしてブラウンアウト検出(BOD)です。 さらにソフトウェアリセットもあります。

RESETピンはシュミットトリガ入力ピンです。 任意のソースで Resetチップをアサートすると、動作電圧が使用可能なレベルに達した時点で IRCが起動し、外部 Resetがデアサートされるまでリセットはアサートされたままとなり、オシレータは動作し、フラッシュコントローラは自身の初期化を完了します。

Cortex-M0 CPU(POR、BODリセット、外部リセット、ウォッチドッグリセット)外部のリセットソースをアサートすると、以下のプロセスが開始します。

11 - 1 予約済み。 このビットには常に 1と書き込みます。 1

12 - 0 予約済み。 このビットには常に 0と書き込みます。 0

15:13 - 111 予約済み。 これらのビットには常に111と書き込みます。

111

31:16 - - 予約済み -

Table 40. Power-down configuration register (PDRUNCFG, address 0x4004 8238) bit description (続き)

Bit Symbol Value Description Reset value

Table 41. Device ID register (DEVICE_ID, address 0x4004 83F4) bit description

Bit Symbol Value Description Reset value

31:0 DEVICEID Part ID numbers for LPC111x/LPC11C1x parts

part-dependent

0x041E 502B for LPC1111FHN33/101

0x0416 502B for LPC1111FHN33/201

0x042D 502B for LPC1112FHN33/101

0x0425 502B for LPC1112FHN33/201

0x0434 502B for LPC1113FHN33/201

0x0434 102B for LPC1113FHN33/301

0x0434 102B for LPC1113FBD48/301

0x0444 502B for LPC1114FHN33/201

0x0444 102B for LPC1114FHN33/301

0x0444 102B for LPC1114FBD48/301

0x0444 102B for LPC1114FA44/301

0x1421 102B for LPC11C12/FBD48/301

0x1440 102B for LPC11C14/FBD48/301

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 34

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

1. IRC が起動します。 IRC の起動時間(パワーアップ時で最大 6 s)の後、IRC は安定したクロック出力を提供します。

2. ROM 内のブートコードが起動します。 ブートコードはブートタスクを実行し、フラッシュにジャンプすることもあります。

3. フラッシュがパワーアップします。 これには 100 s ほどの時間がかかります。次に、約 250サイクルのフラッシュ初期化シーケンスが開始します。

内部リセットを解除すると、プロセッサはアドレス 0で実行を開始します。これは当初、ブートブロックからマップされたリセットベクタです。 この時点で、すべてのプロセッサおよびペリフェラルレジスタは既定値に初期化されています。

3.7 ブラウンアウト検出

LPC111x/LPC11C1xには、VDDピンの電圧を監視するためのレベルが 4段階あります。 この電圧が選択した 4段階の 1つを下回った場合、BODは NVICへの割り込み信号をアサートします。 この信号は、NVIC 内の割り込みイネーブルレジスタで割り込みをイネーブルにすることによって、CPU割り込みを発生させます。このようにしない場合、ソフトウェアは NVICステータスレジスタ(Table 49を参照)を読み取ることで信号を監視できます。チップの強制リセットを行うために、さらに 4段階のしきい値を選択できます(Table 31を参照)。

3.8 パワーマネージメント

LPC111x/LPC11C1x はさまざまな電力制御機能を提供します。 アクティブモードでは、チップの動作中に、選択したペリフェラルへの電力とクロックを最適化して消費電力を抑えることができます。 さらに、スリープモード、ディープスリープモード、ディープパワーダウンモードという 3種類のプロセッサ省電力モードがあります。

注意 : デバッグモードは、スリープモード、ディープスリープモード、ディープパワーダウンモードには対応していません。

3.8.1 アクティブモードアクティブモードでは、ARM Cortex-M0 コアおよびメモリはシステムクロックによってクロッキングされ、ペリフェラルはシステムクロックまたは専用ペリフェラルクロックによってクロッキングされます。

チップはリセット後にアクティブモードになり、デフォルトの電力設定は PDRUNCFGレジスタおよび SYSAHBCLKCTRLレジスタのリセット値によって決定されます。 電力設定はランタイム時に変更できます。

3.8.1.1 アクティブモードの電力設定アクティブモードの消費電力は、以下の設定からどれを選ぶかによって異なります。

• SYSAHBCLKCTRL レジスタは、どのメモリやペリフェラルを動作させるかを制御します(Table 19)。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 35

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

• 各種アナログブロック(PLL、オシレータ、ADC、BOD 回路、フラッシュブロック)への電力は、いつでもPDRUNCFGレジスタを使用して個別に制御できます(Table 40)。

• システムクロックのクロックソースは、IRC(デフォルト)、システムオシレータ、またはウォッチドッグオシレータから選択できます(Figure 3および関連レジスタを参照)。

• システムクロック周波数は、SYSPLLCTRL(Table 8)および SYSAHBCLKDIVレジスタ(Table 18)によって選択できます。

• 選択したペリフェラル(UART、SPI0/1、WDT)は、独自のクロック分周器とともに個別のペリフェラルクロックを使用します。 ペリフェラルクロックは、対応するクロック分周器レジスタによってシャットダウンできます(Table 20~ Table 22)。

3.8.2 スリープモードスリープモードでは、ARM Cortex-M0 コアへのシステムクロックは停止し、リセットまたは割り込みのいずれかが発生するまで命令の実行は一時停止されます。

ペリフェラル機能は、SYSAHBCLKCTRLレジスタでクロッキングするように選択した場合、スリープモード中も動作を継続し、割り込みを生成してプロセッサが実行を再開できるようにします。 スリープモードでは、プロセッサ自体、メモリシステムと関連のコントローラ、および内部バスが使用する動的電力がありません。 プロセッサの状態およびレジスタ、ペリフェラルレジスタ、および内部 SRAM 値は維持され、ピンのロジックレベルは静的なままに保たれます。

3.8.2.1 スリープモードの電力設定スリープモードの消費電力は、アクティブモードの場合と同様に設定されます。

• クロックは動作したままです。

• システムクロック周波数はアクティブモードの場合と同じに保たれますが、プロセッサはクロッキングされません。

• アナログペリフェラルおよびデジタルペリフェラルは、アクティブモードと同様に選択されます。

3.8.2.2 スリープモードのプログラミングスリープモードに切り替えるには、以下の手順を実行する必要があります。

1. PCONレジスタの DPDENビットを 0に設定します(Table 46)。

2. ARM Cortex-M0 SCRレジスタの SLEEPDEEPビットを 0に設定します(Table 321を参照)。

3. ARM Cortex-M0割り込み待ち(WFI)命令を使用します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 36

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.8.2.3 スリープモードからのウェイクアップNVIC によってイネーブルにされた割り込みがプロセッサに到達するか、リセットが発生した場合、スリープモードは自動的に終了します。 割り込みによるウェイクアップ後、マイクロコントローラは PDRUNCFGレジスタおよび SYSAHBCLKDIVレジスタの内容によって定義される最初の電力設定に戻ります。 リセットが発生した場合、マイクロコントローラはアクティブモードのデフォルト設定に切り替わります。

3.8.3 ディープスリープモードディープスリープモードでは、スリープモードと同様にプロセッサへのシステムクロックがディスエーブルになります。 BOD 回路とウォッチドッグオシレータ以外のすべてのアナログブロックがパワーダウンします。これは、ディープスリープモード時にPDSLEEPCFGレジスタ内で選択または選択解除する必要があります。

ディープスリープモードでは、フラッシュおよびアナログペリフェラルが使用するすべての電力、そしてプロセッサ自体、メモリシステムと関連のコントローラ、および内部バスが使用するすべての動的電力がありません。 プロセッサの状態およびレジスタ、ペリフェラルレジスタ、および内部 SRAM 値は維持され、ピンのロジックレベルは静的なままに保たれます。

3.8.3.1 ディープスリープモードの電力設定ディープスリープモードの消費電力は、PDSLEEPCFG(Table 38)レジスタのディープスリープ電力設定によって異なります。

• ディープスリープモードで使用可能なクロックソースは、ウォッチドッグオシレータのみです。 タイマ制御ウェイクアップ(Section 3.9.3を参照)のために必要であれば、ウォッチドッグオシレータをディープスリープモードのままで動作させておくことが可能です。 他のすべてのクロックソース(IRC およびシステムオシレータ)やシステム PLLはシャットダウンされます。 ウォッチドッグオシレータのアナログ出力周波数を、そのアナログクロック出力(WDTOSCCTRL内のビット FREQSEL = 0001、Table11を参照)の最小値に設定する必要があります。

• アプリケーションが必要としている場合、BOD 回路をディープスリープモードのままで動作させておくことが可能です。

• ウォッチドッグオシレータがディープスリープモードで動作している場合は、ウォッチドッグタイマまたは多目的タイマの 1つだけを SYSAHBCLKCTRLレジスタでイネーブルにすることによって、消費電力を最小限に抑える必要があります。

3.8.3.2 ディープスリープモードのプログラミングディープスリープモードに切り替えるには、以下の手順を実行する必要があります。

1. PCONレジスタの DPDENビットを 0に設定します(Table 46)。

2. PDSLEEPCFG(Table 38)レジスタでディープスリープモードの電力設定を選択します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 37

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

a. タイマ制御のウェイクアップが必要な場合は、PDRUNCFGレジスタでウォッチドッグオシレータに電力が供給されることを確認し、MAINCLKSEL レジスタ(Table 16)でクロックソースをWDオシレータに切り替えてください。

b. タイマ制御のウェイクアップが不要でウォッチドッグオシレータをシャットダウンする場合は、PDRUNCFGレジスタで IRCに電力が供給されることを確認し、MAINCLKSELレジスタ(Table 16)でクロックソースを IRCに切り替えてください。 そのようにすれば、システムクロックがグリッチなしでシャットダウンされます。

3. PDAWAKECFG(Table 39)レジスタでウェイクアップ後の電力設定を選択します。

4. ウェイクアップに外部ピンを使用する場合は、スタートロジックレジスタ(Table33~ Table 36)でウェイクアップピンをイネーブルにしてからクリアし、NVICでスタートロジック割り込みをイネーブルにします。

5. SYSAHBCLKCTRL レジスタ(Table 19)で、必要に応じてカウンタ / タイマまたはWDTを除くすべてのペリフェラルをディスエーブルにします。

6. ARM Cortex-M0 SCRレジスタ(Table 321)のSLEEPDEEPビットに1を書き込みます。

7. ARM WFI命令を使用します。

3.8.3.3 ディープスリープモードからのウェイクアップマイクロコントローラは、以下の方法でディープスリープモードからウェイクアップすることができます。

• 外部ピンの信号。 この目的のために、ピン PIO0_0 ~ PIO0_11 と PIO1_0 をスタートロジックへの入力としてイネーブルにできます。 スタートロジックにはクロックが不要であり、ディープスリープモードからウェイクアップするために NVICでイネーブルにした場合、割り込みを生成します。

• 多目的タイマのマッチ出力の 1 つでマッチイベントによって生成されたスタートロジックへの入力信号。 タイママッチ機能を保持するピンは NVIC のスタートロジック入力としてイネーブルになり、対応するタイマは SYSAHBCLKCTRLレジスタでイネーブルになり、ウォッチドッグオシレータはディープスリープモードで動作する必要があります(詳細については Section 3.9.3を参照)。

• BOD 回路からのリセット。 この場合、BOD 回路は PDSLEEPCFG レジスタでイネーブルになり、BODリセットは BODCTRLレジスタ(Table 31)でイネーブルになる必要があります。

• ウォッチドッグタイマからのリセット。この場合、ウォッチドッグオシレータはディープスリープモードで動作し(PDSLEEPCFG レジスタを参照)、WDT はSYSAHBCLKCTRLレジスタでイネーブルになる必要があります。

注意 : ウォッチドッグオシレータがディープスリープモードで動作している場合は、その周波数によってウェイクアップ時間が決まるので、IRCによるウェイクアップよりもウェイクアップ時間が長くなります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 38

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.8.4 ディープパワーダウンモードディープパワーダウンモードでは、WAKEUP ピンを除くチップ全体への電力とクロックが遮断されます。

ディープパワーダウンモードの間、SRAM とレジスタの内容は、PMU ブロックの汎用レジスタに格納できる少量のデータ以外は保持されません。

ディープパワーダウンモードでは、WAKEUPピンを除くすべての機能ピンがトライステート状態になります。

3.8.4.1 ディープパワーダウンモードの電力設定ディープパワーダウンモードには設定オプションがありません。 すべてのクロック、コア、そしてすべてのペリフェラルがパワーダウンします。 WAKEUPピンのみに電力が供給されます。

3.8.4.2 ディープパワーダウンモードのプログラミングディープパワーダウンモードに切り替えるには、以下の手順を実行する必要があります。

1. WAKEUPピンを外部から HIGHに引き上げます。

2. PCONレジスタ(Table 46を参照)の DPDENビットに 1を書き込みます。

3. 汎用レジスタ(Table 47)に保持するデータを格納します。

4. ARM Cortex-M0 SCRレジスタ(Table 321)のSLEEPDEEPビットに1を書き込みます。

5. ディープパワーダウンモードに切り替える前に、PDRUNCFG レジスタのビットIRCOUT_PDおよび IRC_PDを 0に設定することによって、IRCへ確実に電力を供給します。

6. ARM WFI命令を使用します。

3.8.4.3 ディープパワーダウンモードからのウェイクアップWAKEUPピンを LOWに引き下げると、LPC111x/LPC11C1xはディープパワーダウンモードからウェイクアップし、チップはリセットプロセス全体を実行します(Section 3.6)。

注意 : RESETピンは、ディープパワーダウンモードではまったく機能しません。

3.9 ディープスリープモードの詳細

3.9.1 IRCオシレータIRCは、LPC111x/LPC11C1x上で唯一、常にグリッチなしでシャットダウンが可能なオシレータです。 このため、チップがディープスリープモードに切り替わる前に、クロックソースを IRCに切り替えておくことをお勧めします。

3.9.2 スタートロジックスタートロジックが ARMコアへの割り込みを示すと、ディープスリープモードは終了します。 ポートピン PIO0_0~ PIO0_11および PIO1_1がスタートロジックに接続され、ウェイクアップピンとして機能します。 ユーザーは、各入力に対してスタートロジックレジス

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 39

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

タをプログラムし、対応するウェイクアップイベントに適切なエッジ極性を設定する必要があります。 さらに、各入力に対応する割り込みを NVIC 内でイネーブルにする必要があります。 NVIC内の割り込み0~12は、13のPIOピンに対応します(Section 3.5.28を参照)。

スタートロジックは、イネーブルにするとイネーブルなピンの入力信号を使用してクロックエッジを生成するので、クロックを動作させる必要がありません。 したがって、スタートロジック信号は使用前にクリア(Table 35)しておく必要があります。

またスタートロジックは、LPC111x/LPC11C1xの入力ピンを使用してベクタ割り込みを行うために、アクティブモードで使用することも可能です。

3.9.3 多目的カウンタ /タイマを使用したセルフウェイクアップイベントの生成カウンタ / タイマは、SYSAHBCLKCFG レジスタを使用してディープスリープモードでイネーブルにすると、ウォッチドッグオシレータのクロックサイクルをカウントし、そのサイクル数が事前設定したマッチ値に等しければマッチイベントを生成します。 マッチイベントにより、対応するマッチ出力ピンは HIGHまたは LOWに切り替わるか、トグルします。 また、マッチ出力ピンの状態はスタートロジックによって監視され、そのピンがNVIC でイネーブルになるとウェイクアップ割り込みをトリガし、それに応じてスタートロジックトリガがスタートロジックエッジ制御レジスタ(Table 33を参照)内で設定されます。

カウンタ /タイマを設定して、タイミング制御したディープスリープセルフウェイクアップイベントを生成するには、以下の手順を実行します。

1. ポートピンを IOCONFIGブロック内のマッチ出力として設定します。 PIO0_1または PIO0_8 ~ PIO0_11 のピンから、スタートロジックへの入力であり、かつマッチ出力機能を持つピンを選択します。

2. 対応するカウンタ /タイマで、マッチ値を設定し、選択したピンのマッチ出力を設定します。

3. PDSLEEPCFG レジスタでディープスリープモードの間に動作するウォッチドッグオシレータを選択します。

4. MAINCLKSELレジスタ(Table 16)でクロックソースをウォッチドッグオシレータに切り替え、PDRUNCFG レジスタでウォッチドッグオシレータに電力が供給されるかを確認します。

5. ピンをイネーブルにして、エッジ検出機能を設定し、スタートロジックレジスタ(Table 33~ Table 36)でスタートロジックをリセットし、NVIC内で割り込みをイネーブルにします。

6. SYSAHBCLKCTRL レジスタ内の他のペリフェラルをすべてディスエーブルにします。

7. PCONレジスタのDPDENビットが0に設定されていることを確認します(Table 46)。

8. ARM Cortex-M0 SCRレジスタ(Table 321)のSLEEPDEEPビットに1を書き込みます。

9. カウンタ /タイマを起動します。

10. ARM WFI命令を使用して、ディープスリープモードに切り替えます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 40

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.10 システム PLLの機能説明

LPC111x/LPC11C1xは、システム PLLを使用してコアおよびペリフェラルのクロックを生成します。

この PLLのブロック図を Figure 4に示します。 入力周波数範囲は 10 MHz~ 25 MHzです。入力クロックは、位相 / 周波数検出器(PFD)に直接供給されます。 このブロックは入力の位相と周波数を比較し、位相および /または周波数が一致しない場合に制御信号を生成します。 ループフィルタがこれらの制御信号をフィルタリングし、電流制御オシレータ(CCO)を駆動することによって、メインクロックとさらに 2つの位相(任意)を生成します。 CCOの周波数範囲は 156 MHz~ 320 MHzです。これらのクロックは、プログラマブルなポスト分周器により 2× Pで分周されて出力クロックを生成するか、出力へ直接送信されます。 次にメイン出力クロックがプログラマブルな帰還分周器により M で分周され、帰還クロックを生成します。 位相 /周波数検出器の出力信号はロック検出器によっても監視されており、PLLが入力クロックにロックオンすると信号を送出します。

3.10.1 ロック検出器ロック検出器は、入力クロックと帰還クロックの立ち上がりエッジ間の位相差を計測します。 9回以上連続した入力クロック周期でこの差がいわゆる「ロック基準」を下回った場合に限り、ロック出力は LOWから HIGHに切り替わります。 1回だけ大きすぎる位相差が発生した場合は、ただちにカウンタがリセットされ、ロック信号がドロップします(それまで HIGH であった場合)。 位相計測値が 8 回連続して一定の数値未満であることを要求するのは、入力クロックと帰還クロックの位相と周波数の両方がほぼ一致するまでロック検出器がロックを示さないようにするためです。 それによって偽のロック表示を効果的に防止でき、グリッチのないロック信号が可能になります。

Fig 4. System PLL block diagram

LOCKDETECT

PFD

FCLKOUT

pd

analog section

pd

cd

/M

/2Pcd

PSEL<1:0>

pd

2

MSEL<4:0>5

irc_osc_clk

sys_osc_clk

SYSPLLCLKSEL

FCLKINFCCO

LOCK

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 41

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

3.10.2 パワーダウン制御PLLクロックが不要な場合に消費電力を抑える目的で、パワーダウンモードが組み込まれています。 このモードは、パワーダウン設定レジスタ(Table 40)で SYSPLL_PDビットを1に設定することによってイネーブルになります。 このモードのときは、内部電流基準がオフになり、オシレータおよび位相 /周波数検出器は停止し、分周器はリセット状態になります。 一方でパワーダウンモードでは、ロック出力が LOW になり、PLL がロック状態にないことを示します。 SYSPLL_PDビットを0に設定することでパワーダウンモードが終了すると、PLLは通常の動作を再開し、入力クロック上でロックを回復した時点でロック信号を HIGHに切り替えます。

3.10.3 分周比のプログラミング

ポスト分周器ポスト分周器の分周比は PSELビットによって制御されます。 分周比は、Table 8に示すように、PSEL ビットによって選択された P 値を 2 倍した値です。 これにより、デューティサイクルが 50%の出力クロックが保証されます。

帰還分周器帰還分周器の分周比は MSELビットによって制御されます。 PLLの出力クロックと入力クロック間の分周比は、Table 8に示すように MSELビットの 10進値に 1を加えた値です。

分周値の変更PLLの動作中に分周比を変更することはお勧めしません。 変更したMSEL値やPSEL値を分周器と同期させる方法はないので、カウンタが未定義の値を読み取って、出力クロックの周波数で無用なスパイクやドロップが発生する危険性があります。 分周器の設定を変更するときは、まず PLL をパワーダウンし、分周器の設定を調整した後に、再度 PLL を起動するという方法をお勧めします。

3.10.4 周波数の選択PLLの周波数方程式では、以下のパラメータを使用します(Figure 3も参照してください)。

3.10.4.1 通常モード通常モードではポスト分周器がイネーブルになり、50% のデューティサイクルで、周波数の関係は次のようになります。

Table 42. PLL frequency parameters

Parameter System PLL

FCLKIN SYSPLLCLKSEL マルチプレクサからの sys_pllclkin(システム PLL への入力クロック)の周波数(Section 3.5.9を参照)。

FCCO 電流制御オシレータ(CCO)の周波数、156~ 320 MHz。FCLKOUT sys_pllclkoutの周波数P システムPLLポスト分周比。SYSPLLCTRLのPSELビット(Section 3.5.3を参照)。M システム PLL帰還分周器レジスタ。SYSPLLCTRLの MSELビット(Section 3.5.3

を参照)。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 42

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

(1)

Mと Pに適した値を選択するには、以下の手順をお勧めします。

1. 入力クロック周波数 Fclkinを指定します。

2. M = Fclkout / Fclkinから、希望の出力周波数Fclkoutが得られるようにMを計算します。

3. FCCO = 2 x P x Fclkoutになるような値を探します。

4. すべての周波数および分周器の値が、Table 8で指定された限界値に適合しているかを検証します。

Table 43 は、SYSPLLCTRL レジスタ(Table 8)を使用して、12 MHz クリスタルオシレータの PLLを設定する方法を示しています。 システムクロック分周器 SYSAHBCLKDIVが 1に設定されている場合(Table 18を参照)、メインクロックはシステムクロックと同等です。

3.10.4.2 パワーダウンモードこのモードのときは、内部電流基準がオフになり、オシレータおよび位相 /周波数検出器は停止し、分周器はリセット状態になります。 一方でパワーダウンモードでは、ロック出力が LOW になり、PLL がロック状態にないことを示します。 パワーダウン設定レジスタ(Table 40)で SYSPLL_PDビットを 0に設定することによってパワーダウンモードが終了すると、PLLは通常の動作を再開し、入力クロック上でロックを回復した時点でロック信号を HIGHに切り替えます。

3.11 フラッシュメモリへのアクセス

システムクロック周波数に応じて、フラッシュメモリへのアクセスはさまざまなアクセス時間で設定できます。設定は、FLASHCFG レジスタのアドレス 0x4003 C010 に書き込みます。 このレジスタはフラッシュ設定ブロックの一部です(Figure 2を参照)。

注意 : このレジスタを正しく設定しないと、LPC111x/LPC11C1xのフラッシュメモリが正常に動作しないことがあります。

Table 43. PLL configuration examples

PLL input clock sys_pllclkin (Fclkin)

Main clock (Fclkout)

MSEL bitsTable 8

M divider value

PSEL bitsTable 8

P divider value

FCCO frequency

12 MHz 48 MHz 00011 4 01 2 192 MHz

12 MHz 36 MHz 00010 3 10 4 288 MHz

12 MHz 24 MHz 00001 2 10 4 192 MHz

Fclkout M Fclkin FCCO 2 P = =

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 43

NXP Semiconductors UM10398第 3章:LPC111x/LPC11C1xシステム構成

参考資料

Table 44. Flash configuration register (FLASHCFG, address 0x4003 C010) bit description

Bit Symbol Value Description Reset value

1:0 FLASHTIM フラッシュメモリへのアクセス時間。 FLASHTIM +1は、フラッシュアクセスに使用されるシステムクロック数に等しくなります。

10

00 1システムクロックのフラッシュアクセス時間(最大 20 MHzのシステムクロック周波数)

01 2システムクロックのフラッシュアクセス時間(最大 40 MHzのシステムクロック周波数)

10 3システムクロックのフラッシュアクセス時間(最大 50 MHzのシステムクロック周波数)

11 予約済み。 31:2 - - 予約済み。 ユーザーソフトウェアがこれらのビットの値を変

更してはなりません。 ビット 31:2は読み取ったとおりに書き戻す必要があります。

<tbd>

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 44

参考資料

4.1 概要

PMUはディープパワーダウンモードを制御します。 ディープパワーダウンモードの間は、PMU内の 4つの汎用レジスタを使用してデータを保持することができます。

4.2 レジスタの説明

4.2.1 電力制御レジスタ電力制御レジスタは、ARM Cortex-M0 制御のパワーダウンモード(スリープモードまたはディープスリープモード)の 1 つか、ディープパワーダウンモードのいずれかに切り替えるように選択し、スリープモードまたはディープスリープモード、およびディープパワーダウンモードのフラグをそれぞれ提供します。 パワーダウンモードに切り替える方法の詳細については、Section 3.7を参照してください。

UM10398第 4章:LPC111x/LPC11C1x PMU(パワーマネージメントユニット)

Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 45. Register overview: PMU (base address 0x4003 8000)

Name Access Address offset

Description Reset value

PCON R/W 0x000 電力制御レジスタ 0x0

GPREG0 R/W 0x004 汎用レジスタ 0 0x0

GPREG1 R/W 0x008 汎用レジスタ 1 0x0

GPREG2 R/W 0x00C 汎用レジスタ 2 0x0

GPREG3 R/W 0x010 汎用レジスタ 3 0x0

GPREG4 R/W 0x014 汎用レジスタ 4 0x0

Table 46. Power control register (PCON, address 0x4003 8000) bit description

Bit Symbol Value Description Reset value

0 - - 予約済み。 このビットには 1を書き込まないでください。 0x0

1 DPDEN ディープパワーダウンモードイネーブル 0

0 ARM WFI がスリープモードまたはディープスリープモードになります(ARM Cortex-M0 コアへのクロックがオフに切り替えられます)。

1 ARM WFI がディープパワーダウンモードになります(ARM Cortex-M0コアがパワーダウンします)。

7:2 - - 予約済み。 このビットには 1を書き込まないでください。 0x0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 45

NXP Semiconductors UM10398第 4章:LPC111x/LPC11C1x PMU (パワーマネージメントユニット)

参考資料

4.2.2 汎用レジスタ 0~ 3

汎用レジスタは、VDDピンには依然として電力が供給されているが、チップがディープパワーダウンモードに切り替わっているときに、ディープパワーダウンモードを使用してデータを保持します。 チップからすべての電力が完全に除去されたときの「コールド」ブートによってのみ、汎用レジスタがリセットされます。

4.2.3 汎用レジスタ 4

汎用レジスタ 4は、VDDピンには依然として電力が供給されているが、チップがディープパワーダウンモードに切り替わっているときに、ディープパワーダウンモードを使用してデータを保持します。 チップからすべての電力が完全に除去されたときの「コールド」ブートによってのみ、汎用レジスタがリセットされます。

注意 : ピン VDD への外部印加電圧が <tbd> V 未満まで低下した場合、チップをディープパワーダウンモードからウェイクアップさせるには、WAKEUP 入力ピンのヒステリシスをディスエーブルにする必要があります。

8 SLEEPFLAG スリープモードフラグ 0

0 読み取り : パワーダウンモードには切り替わっていません。 LPC111x/LPC11C1xはアクティブモードです。書き込み : 影響なし。

1 読み取り : スリープモード /ディープスリープモードまたはディープパワーダウンモードに切り替わっています。書き込み : 1を書き込むと SLEEPFLAGビットが 0にクリアされます。

10:9 - - 予約済み。 このビットには 1を書き込まないでください。 0x0

11 DPDFLAG ディープパワーダウンフラグ 0x0

0 読み取り: ディープパワーダウンモードには切り替わっていません。書き込み : 影響なし。

0x0

1 読み取り: ディープパワーダウンモードに切り替わりました。書き込み : ディープパワーダウンフラグをクリアします。

0x0

31:12 - - 予約済み。 このビットには 1を書き込まないでください。 0x0

Table 46. Power control register (PCON, address 0x4003 8000) bit description (続き)Bit Symbol Value Description Reset

value

Table 47. General purpose registers 0 to 3 (GPREG0 - GPREG3, address 0x4003 8004 to 0x4003 8010) bit description

Bit Symbol Description Reset value

31:0 GPDATA ディープパワーダウンモード中にデータを保持 0x0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 46

NXP Semiconductors UM10398第 4章:LPC111x/LPC11C1x PMU (パワーマネージメントユニット)

参考資料

4.3 機能説明

4.3.1 ディープパワーダウンモードへの切り替え通常のランモードからディープパワーダウンモードに切り替えるには、次の手順に従ってください。

1. (任意)ディープパワーダウンモードの間に保持しておくデータを、4つの汎用レジスタ(Table 47および Table 48)内の DATAビットに保存します。

2. PCON レジスタ(Table 46)で DPDEN ビットを 1に設定し、ディープパワーダウンモードをイネーブルにします。

3. ARM Cortex-M0 WFI/WFE命令を発行します。

ステップ 3の後、PMUはオンチップ電圧レギュレータをオフにして、WAKEUPピンのウェイクアップ信号を待ちます。

4.3.2 ディープパワーダウンモードの終了ディープパワーダウンモードからチップをウェイクアップさせるには、次の手順に従ってください。

1. WAKEUPピン上で HIGHから LOWへの遷移を行います。

– PMUはオンチップ電圧レギュレータをオンにします。 コア電圧がパワーオンリセット(POR)のトリップポイントに達すると、システムリセットがトリガされ、チップはリブートします。

– GPREG0~ GPREG4および PCONを除くすべてのレジスタがリセット状態になります。

2. チップがブートしたら、PCONレジスタ(Table 45)内のディープパワーダウンフラグを読み取り、リセットがディープパワーダウンからのウェイクアップイベントによって行われたものであり、コールドリセットではないことを検証します。

3. PCONレジスタ(Table 45)のディープパワーダウンフラグをクリアします。

4. (任意)汎用レジスタ(Table 47および Table 48)に格納されたデータを読み取ります。

5. 次のディープパワーダウンサイクルのために PMUをセットアップします(Section4.3.1を参照)。

Table 48. General purpose register 4 (GPREG4, address 0x4003 8014) bit description

Bit Symbol Value Description Reset value

9:0 - - 予約済み。 このビットには1を書き込まないでください。

0x0

10 WAKEUPHYS WAKEUPピンのヒステリシスイネーブル 0x0

1 WAKEUPピンのヒステリシスはイネーブル。0 WAKEUPピンのヒステリシスはディスエーブル。

31:11 GPDATA ディープパワーダウンモード中にデータを保持 0x0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 47

参考資料

5.1 この章を読む前に

C_CANコントローラは部品 LPC11C12/14のみにあります。

5.2 概要

ネストベクタ割り込みコントローラ(NVIC)は、Cortex-M0にとって不可欠な要素です。CPU との密な連結は、低割り込みレイテンシや割り込みの遅い到達の効率的処理を考慮に入れています。

5.3 特長

• ARM Cortex-M0の不可欠な要素であるネストベクタ割り込みコントローラ

• 密に連結した割り込みコントローラにより低割り込みレイテンシが可能

• システム例外とペリフェラル割り込みを制御

• NVICは 32のベクタ割り込みに対応

• ハードウェア優先レベルをマスクした状態での、プログラマブルな 4つの割り込み優先レベル

• 再配置可能なベクタテーブル

• ソフトウェアの割り込み生成

5.4 割り込みソース

Table 49に、各ペリフェラル機能の割り込みソースを示します。 各ペリフェラルデバイスには、ベクタ割り込みコントローラに対して 1つ以上の割り込みラインがあります。 各ラインは、2つ以上の割り込みソースを表すことがあります。 どのラインがどこに接続されるかについての重要度や優先度は、ARMによる一定の基準を除き、決まっていません。

UM10398第 5章:LPC111x/LPC11C1x割り込みコントローラRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 48

NXP Semiconductors UM10398第 5章:LPC111x/LPC11C1x割り込みコントローラ

参考資料

Table 49. Connection of interrupt sources to the Vectored Interrupt Controller

Exception Number

Vector Offset

Function Flag(s)

12 to 0 start logic wake-up interrupts

それぞれの割り込みは、ディープスリープモードからのウェイクアップピンとして機能する PIO 入力に接続されています。割り込み 0 ~ 11 は PIO0_0 ~PIO0_11に、割り込み 12は PIO1_0に対応しています。Section 3.4.28を参照してください。

13 C_CAN C_CAN割り込み14 SPI/SSP1 Tx FIFO半分空

Rx FIFO半分満杯RxタイムアウトRxオーバーラン

15 I2C SI(状態変化)16 CT16B0 マッチ 0 - 2

キャプチャ 0 17 CT16B1 マッチ 0 - 1

キャプチャ 018 CT32B0 マッチ 0 - 3

キャプチャ 0 19 CT32B1 マッチ 0 - 3

キャプチャ 020 SPI/SSP0 Tx FIFO半分空

Rx FIFO半分満杯RxタイムアウトRxオーバーラン

21 UART Rxラインステータス(RLS)送信保持レジスタ空(THRE)Rxデータ使用可能(RDA)文字タイムアウトインジケータ(CTI)自動通信速度設定終了(ABEO)自動通信速度設定タイムアウト(ABTO)

22 - 予約済み23 - 予約済み24 ADC A/Dコンバータ変換終了25 WDT ウォッチドッグ割り込み(WDINT)26 BOD ブラウンアウト検出27 - 予約済み28 PIO_3 ポート 3の GPIO割り込みステータス29 PIO_2 ポート 2の GPIO割り込みステータス30 PIO_1 ポート 1の GPIO割り込みステータス31 PIO_0 ポート 0の GPIO割り込みステータス

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 49

参考資料

6.1 この章を読む前に

I/O設定レジスタの実装は、各種の LPC111x/LPC11C1x部品およびパッケージによって異なります。Table 51に、各パッケージで使用される IOCONレジスタを示します。

LPC11C1xでは、PIO3_4と PIO3_5の機能は使用できません。 その代わりに、プルアップ抵抗またはプルダウン抵抗なしで C_CANを送受信できる機能(Table 51を参照)専用の2つのピンがあります。 C_CANピンには、プログラマブルなピン設定がありません。

6.2 概要

I/O 設定レジスタは、パッドの電気的特性を制御します。 プログラマブルな機能は以下のとおりです。

• ピンの機能

• 内部プルアップ /プルダウン抵抗またはバスキーパー機能

• ヒステリシス

• ADC入力をホストするパッドのアナログ入力モードまたはデジタルモード

• I2Cバス機能をホストするパッドの I2Cモード

6.3 概説

IOCON レジスタは、すべての PIOn_m ピンの機能(GPIO またはペリフェラル機能)、入力モード、およびヒステリシスを制御します。 さらに、I2Cバスピンをさまざまな I2Cバスモードに合わせて設定できます。 ピンを ADC の入力ピンとして使用する場合は、アナログ入力モードを選択できます。

UM10398第 6章:LPC111x/LPC11C1x I/O設定Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 50

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

6.3.1 ピンの機能IOCONレジスタの FUNCビットは、GPIO(FUNC = 000)またはペリフェラル機能に設定できます。 ピンが GPIOピンである場合、ピンが入力と出力のどちらとして設定されるのかは GPIOnDIR レジスタによって決められます(Section 8.3.2 を参照)。 どのようなペリフェラル機能でも、ピンの機能に応じてピンの方向が自動的に制御されます。 GPIOnDIRレジスタはペリフェラル機能にまったく影響しません。

6.3.2 ピンのモードIOCONレジスタのMODEビットにより、各ピンに対してオンチップのプルアップ抵抗またはプルダウン抵抗を選択するか、リピータモードを選択することができます。

オンチップ抵抗で可能な設定は、プルアップのイネーブル、プルダウンのイネーブル、またはプルアップ /プルダウンなしのいずれかです。 デフォルト値はプルアップのイネーブルです。

Fig 5. Standard I/O pin configuration

PIN

VDD

ESD

VSS

ESD

VDD

weakpull-up

weakpull-down

output enable

repeater modeenable

output

pull-up enable

pull-down enable

data input

analog input

select analog input

002aaf304

pin configuredas digital output

driver

pin configuredas digital input

pin configuredas analog input

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 51

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

リピータモードでは、ピンがロジック HIGH の場合にプルアップ抵抗をイネーブルにして、ピンがロジック LOW の場合はプルダウン抵抗をイネーブルにします。 これにより、ピンが入力として設定されていて外部駆動されていない場合、ピンは既知の最後の状態を保持します。 ただし、状態の保持はディープパワーダウンモードには適用されません。 リピータモードは一般に、ピンが一時的に駆動されていない場合に、ピンがフロートする(そして不確定な状態までフロートしている場合はかなりの電力を消費する可能性がある)のを防ぐために使用します。

6.3.3 ヒステリシスデジタル機能用入力バッファは、IOCON レジスタを介してヒシテリシスまたはプレインバッファとして設定できます(詳細は LPC111xおよびLPC11Cxのデータシートを参照)。

外部パッド電源電圧 VDDが 2.5 V~ 3.6 Vの場合、ヒステリシスバッファはイネーブルにもディスエーブルにもできます。 VDD が 2.5 V 未満の場合、ピンを入力モードで使用するにはヒステリシスバッファをディスエーブルにする必要があります。

6.3.4 A/DモードA/Dモードでは、アナログ /デジタル変換で正確な入力電圧を得るためにデジタルレシーバが切断されます。 このモードは、アナログ機能を持つピンを制御する IOCON レジスタで選択できます。 A/Dモードを選択した場合、ヒステリシスとピンモードの設定は影響を与えません。

アナログ機能を持たないピンについては、A/Dモード設定は影響を与えません。

6.3.5 I2CモードIOCON_PIO0_4レジスタ(Table 62)および IOCON_PIO0_5レジスタ(Table 63)の FUNCビットによって I2C 機能を選択した場合、I2C バスピンは以下の各 I2C モードに設定できます。

• 入力グリッチフィルタのある標準モード /Fast モードの I2C(I2C バス規格に応じたオープンドレイン出力を含みます)。

• 入力グリッチフィルタのある Fastモードプラス(I2Cバス規格に応じたオープンドレイン出力を含みます)。 このモードでは、ピンが高電流シンクとして機能します。

• 入力フィルタのない標準オープンドレイン I/O機能。

注意 : ピンが GPIOピンとして使用されている場合は、標準モード /Fastモードの I2Cまたは標準 I/O機能を選択する必要があります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 52

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

6.4 レジスタの説明

I/O 設定レジスタは、PIO ポートピン、すべてのペリフェラルおよび機能ブロックの入出力、I2Cバスピン、および ADC入力ピンを制御します。

各ポートピン PIOn_m には、ピンの機能や電気的特性を制御するために割り当てられたIOCONレジスタが 1つあります。

一部の入力機能(SCK0、DSR0、DCD0、RI0)は、複数の物理ピンに多重化されます。IOCON_LOCレジスタは、これらの各機能のピン位置を選択します。

注意 : IOCONレジスタは、Table 50においてメモリ位置の順番で並べられています。この順番は LQFP48 パッケージ内の物理ピン番号の順序と一致しており、左上角のピン 1(PIO2_6)から始まっています。 ポート番号順に並べた IOCONレジスタの一覧は Table 51を参照してください。

Table 50. Register overview: I/O configuration (base address 0x4004 4000)

Name Access Address offset

Description Reset value

Reference

IOCON_PIO2_6 R/W 0x000 ピン PIO2_6の I/O設定 0xD0 Table 52

- R/W 0x004 予約済み。 - -

IOCON_PIO2_0 R/W 0x008 ピン PIO2_0/DTR/SSEL1の I/O設定 0xD0 Table 53

IOCON_RESET_PIO0_0 R/W 0x00C ピン RESET/PIO0_0の I/O設定 0xD0 Table 54

IOCON_PIO0_1 R/W 0x010 ピン PIO0_1/CLKOUT/CT32B0_MAT2 のI/O設定

0xD0 Table 55

IOCON_PIO1_8 R/W 0x014 ピン PIO1_8/CT16B1_CAP0の I/O設定 0xD0 Table 56

- R/W 0x018 予約済み。 - -

IOCON_PIO0_2 R/W 0x01C ピン PIO0_2/SSEL0/CT16B0_CAP0の I/O設定

0xD0 Table 57

IOCON_PIO2_7 R/W 0x020 ピン PIO2_7の I/O設定 0xD0 Table 58

IOCON_PIO2_8 R/W 0x024 ピン PIO2_8の I/O設定 0xD0 Table 59

IOCON_PIO2_1 R/W 0x028 ピン PIO2_1/DSR/SCK1の I/O設定 0xD0 Table 60

IOCON_PIO0_3 R/W 0x02C ピン PIO0_3の I/O設定 0xD0 Table 61

IOCON_PIO0_4 R/W 0x030 ピン PIO0_4/SCLの I/O設定 0xC0 Table 62

IOCON_PIO0_5 R/W 0x034 ピン PIO0_5/SDAの I/O設定 0xC0 Table 63

IOCON_PIO1_9 R/W 0x038 ピン PIO1_9/CT16B1_MAT0の I/O設定 0xD0 Table 64

IOCON_PIO3_4 R/W 0x03C ピン PIO3_4の I/O設定 0xD0 Table 65

IOCON_PIO2_4 R/W 0x040 ピン PIO2_4の I/O設定 0xD0 Table 66

IOCON_PIO2_5 R/W 0x044 ピン PIO2_5の I/O設定 0xD0 Table 67

IOCON_PIO3_5 R/W 0x048 ピン PIO3_5の I/O設定 0xD0 Table 68

IOCON_PIO0_6 R/W 0x04C ピン PIO0_6/SCK0の I/O設定 0xD0 Table 69

IOCON_PIO0_7 R/W 0x050 ピン PIO0_7/CTSの I/O設定 0xD0 Table 70

IOCON_PIO2_9 R/W 0x054 ピン PIO2_9の I/O設定 0xD0 Table 71

IOCON_PIO2_10 R/W 0x058 ピン PIO2_10の I/O設定 0xD0 Table 72

IOCON_PIO2_2 R/W 0x05C ピン PIO2_2/DCD/MISO1の I/O設定 0xD0 Table 73

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 53

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

IOCON_PIO0_8 R/W 0x060 ピンPIO0_8/MISO0/CT16B0_MAT0の I/O設定

0xD0 Table 74

IOCON_PIO0_9 R/W 0x064 ピンPIO0_9/MOSI0/CT16B0_MAT1の I/O設定

0xD0 Table 75

IOCON_SWCLK_PIO0_10 R/W 0x068 ピン SWCLK/PIO0_10/SCK0/SCK0/CT16B0_MAT2の I/O設定

0xD0 Table 76

IOCON_PIO1_10 R/W 0x06C ピン PIO1_10/AD6/CT16B1_MAT1の I/O設定

0xD0 Table 77

IOCON_PIO2_11 R/W 0x070 ピン PIO2_11/SCK0の I/O設定 0xD0 Table 78

IOCON_R_PIO0_11 R/W 0x074 ピン R/PIO0_11/AD0/CT32B0_MAT3 のI/O設定

0xD0 Table 79

IOCON_R_PIO1_0 R/W 0x078 ピン R/PIO1_0/AD1/CT32B1_CAP0の I/O設定

0xD0 Table 80

IOCON_R_PIO1_1 R/W 0x07C ピンR/PIO1_1/AD2/CT32B1_MAT0の I/O設定

0xD0 Table 81

IOCON_R_PIO1_2 R/W 0x080 ピンR/PIO1_2/AD3/CT32B1_MAT1の I/O設定

0xD0 Table 82

IOCON_PIO3_0 R/W 0x084 ピン PIO3_0/DTRの I/O設定 0xD0 Table 83

IOCON_PIO3_1 R/W 0x088 ピン PIO3_1/DSRの I/O設定 0xD0 Table 84

IOCON_PIO2_3 R/W 0x08C ピン PIO2_3/RI/MOSI1の I/O設定 0xD0 Table 85

IOCON_SWDIO_PIO1_3 R/W 0x090 ピン SWDIO/PIO1_3/AD4/CT32B1_MAT2の I/O設定

0xD0 Table 86

IOCON_PIO1_4 R/W 0x094 ピン PIO1_4/AD5/CT32B1_MAT3 の I/O設定

0xD0 Table 87

IOCON_PIO1_11 R/W 0x098 ピン PIO1_11/AD7の I/O設定 0xD0 Table 88

IOCON_PIO3_2 R/W 0x09C ピン PIO3_2/DCDの I/O設定 0xD0 Table 89

IOCON_PIO1_5 R/W 0x0A0 ピン PIO1_5/RTS/CT32B0_CAP0の I/O設定

0xD0 Table 90

IOCON_PIO1_6 R/W 0x0A4 ピン PIO1_6/RXD/CT32B0_MAT0 の I/O設定

0xD0 Table 91

IOCON_PIO1_7 R/W 0x0A8 ピン PIO1_7/TXD/CT32B0_MAT1 の I/O設定

0xD0 Table 92

IOCON_PIO3_3 R/W 0x0AC ピン PIO3_3/RIの I/O設定 0xD0 Table 93

IOCON_SCK_LOC R/W 0x0B0 SCKピン位置選択レジスタ 0x00 Table 94

IOCON_DSR_LOC R/W 0x0B4 DSRピン位置選択レジスタ 0x00 Table 95

IOCON_DCD_LOC R/W 0x0B8 DCDピン位置選択レジスタ 0x00 Table 96

IOCON_RI_LOC R/W 0x0BC RIピン位置レジスタ 0x00 Table 97

Table 50. Register overview: I/O configuration (base address 0x4004 4000)(続き)Name Access Address

offsetDescription Reset

valueReference

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 54

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 51. I/O configuration registers ordered by port number

Port pin Register name LPC1111/12/13/14

LPC1114 LPC1113/14 LPC11C12/C14

Reference

HVQFN33 PLCC44 LQFP48 LQFP48

PIO0_0 IOCON_RESET_PIO0_0 yes yes yes yes Table 54

PIO0_1 IOCON_PIO0_1 yes yes yes yes Table 55

PIO0_2 IOCON_PIO0_2 yes yes yes yes Table 57

PIO0_3 IOCON_PIO0_3 yes yes yes yes Table 61

PIO0_4 IOCON_PIO0_4 yes yes yes yes Table 62

PIO0_5 IOCON_PIO0_5 yes yes yes yes Table 63

PIO0_6 IOCON_PIO0_6 yes yes yes yes Table 69

PIO0_7 IOCON_PIO0_7 yes yes yes yes Table 70

PIO0_8 IOCON_PIO0_8 yes yes yes yes Table 74

PIO0_9 IOCON_PIO0_9 yes yes yes yes Table 75

PIO0_10 IOCON_SWCLK_PIO0_10 yes yes yes yes Table 76

PIO0_11 IOCON_R_PIO0_11 yes yes yes yes Table 79

PIO1_0 IOCON_R_PIO1_0 yes yes yes yes Table 80

PIO1_1 IOCON_R_PIO1_1 yes yes yes yes Table 81

PIO1_2 IOCON_R_PIO1_2 yes yes yes yes Table 82

PIO1_3 IOCON_SWDIO_PIO1_3 yes yes yes yes Table 86

PIO1_4 IOCON_PIO1_4 yes yes yes yes Table 87

PIO1_5 IOCON_PIO1_5 yes yes yes yes Table 90

PIO1_6 IOCON_PIO1_6 yes yes yes yes Table 91

PIO1_7 IOCON_PIO1_7 yes yes yes yes Table 92

PIO1_8 IOCON_PIO1_8 yes yes yes yes Table 56

PIO1_9 IOCON_PIO1_9 yes yes yes yes Table 64

PIO1_10 IOCON_PIO1_10 yes yes yes yes Table 77

PIO1_11 IOCON_PIO1_11 yes yes yes yes Table 88

PIO2_0 IOCON_PIO2_0 yes yes yes yes Table 53

PIO2_1 IOCON_PIO2_1 no yes yes yes Table 60

PIO2_2 IOCON_PIO2_2 no yes yes yes Table 73

PIO2_3 IOCON_PIO2_3 no yes yes yes Table 85

PIO2_4 IOCON_PIO2_4 no yes yes no Table 66

PIO2_5 IOCON_PIO2_5 no yes yes no Table 67

PIO2_6 IOCON_PIO2_6 no yes yes yes Table 52

PIO2_7 IOCON_PIO2_7 no yes yes yes Table 58

PIO2_8 IOCON_PIO2_8 no yes yes yes Table 59

PIO2_9 IOCON_PIO2_9 no yes yes yes Table 71

PIO2_10 IOCON_PIO2_10 no yes yes yes Table 72

PIO2_11 IOCON_PIO2_11 no yes yes yes Table 78

PIO3_0 IOCON_PIO3_0 no no yes yes Table 83

PIO3_1 IOCON_PIO3_1 no no yes yes Table 84

PIO3_2 IOCON_PIO3_2 yes no yes yes Table 89

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 55

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

6.4.1 I/O設定レジスタ IOCON_PIOn

I/O構成設定の詳細については、Section 6.3を参照してください。

PIO3_3 IOCON_PIO3_3 no no yes yes Table 93

PIO3_4 IOCON_PIO3_4 yes yes yes yes Table 65

PIO3_5 IOCON_PIO3_5 yes yes yes yes Table 68

- IOCON_SCK_LOC yes (SCKLOC = 01 reserved)

yes yes yes Table 94

- IOCON_DSR_LOC no no yes yes Table 95

- IOCON_DCD_LOC no no yes yes Table 96

- IOCON_RI_LOC no no yes yes Table 97

Table 51. I/O configuration registers ordered by port number(続き)Port pin Register name LPC1111/

12/13/14LPC1114 LPC1113/14 LPC11C12/

C14Reference

HVQFN33 PLCC44 LQFP48 LQFP48

Table 52. IOCON_PIO2_6 register (IOCON_PIO2_6, address 0x4004 4000) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_6を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 53. IOCON_PIO2_0 register (IOCON_PIO2_0, address 0x4004 4008) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_0を選択します。001 機能 DTRを選択します。010 機能 SSEL1を選択します。011 to

111予約済み。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 56

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 54. IOCON_nRESET_PIO0_0 register (IOCON_nRESET_PIO0_0, address 0x4004 400C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 RESETを選択します。001 機能 PIO0_0を選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 53. IOCON_PIO2_0 register (IOCON_PIO2_0, address 0x4004 4008) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 57

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 55. IOCON_PIO0_1 register (IOCON_PIO0_1, address 0x4004 4010) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_1を選択します。001 機能 CLKOUTを選択します。010 機能 CT32B0_MAT2を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 56. IOCON_PIO1_8 register (IOCON_PIO1_8, address 0x4004 4014) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_8を選択します。001 機能 CT16B1_CAP0を選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 58

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 57. IOCON_PIO0_2 register (IOCON_PIO0_2, address 0x4004 401C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_2を選択します。001 機能 SSEL0を選択します。010 機能 CT16B0_CAP0を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 58. IOCON_PIO2_7 register (IOCON_PIO2_7, address 0x4004 4020) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_7を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 59

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 59. IOCON_PIO2_8 register (IOCON_PIO2_8, address 0x4004 4024) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_8を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 60. IOCON_PIO2_1 register (IOCON_PIO2_1, address 0x4004 4028) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_1を選択します。001 機能 DSRを選択します。010 機能 SCK1を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 60

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

[1] ピンが GPIO(FUNC = 000)である場合は、標準モード(I2CMODE = 00、デフォルト)または標準 I/O 機能(I2CMODE = 01)を選択してください。

Table 61. IOCON_PIO0_3 register (IOCON_PIO0_3 address 0x4004 402C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_3を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 62. IOCON_PIO0_4 register (IOCON_PIO0_4 address 0x4004 4030) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_4(オープンドレインピン)を選択します。001 I2C機能 SCL(オープンドレインピン)を選択します。010 to

111予約済み。

7:3 - 予約済み。 10000

9:8 I2CMODE I2Cモードを選択します(Section 6.3.5を参照)。 00

00[1] 標準モード /Fastモード I2C01[1] 標準 I/O機能10 Fastモードプラス I2C11 予約済み。

31:10 - - 予約済み。 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 61

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

[1] ピンが GPIO(FUNC = 000)である場合は、標準モード(I2CMODE = 00、デフォルト)または標準 I/O 機能(I2CMODE = 01)を選択してください。

Table 63. IOCON_PIO0_5 register (IOCON_PIO0_5 address 0x4004 4034) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_5(オープンドレインピン)を選択します。001 I2C機能 SDA(オープンドレインピン)を選択します。010 to

111予約済み。

7:3 - 予約済み。 10000

9:8 I2CMODE I2Cモードを選択します(Section 6.3.5を参照)。 00

00[1] 標準モード /Fastモード I2C01[1] 標準 I/O機能10 Fastモードプラス I2C11 予約済み。

31:10 - - 予約済み。 -

Table 64. IOCON_PIO1_9 register (IOCON_PIO1_9 address 0x4004 4038) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_9を選択します。001 機能 CT16B1_MAT0を選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 62

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 65. IOCON_PIO3_4 register (IOCON_PIO3_4, address 0x4004 403C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO3_4を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 66. IOCON_PIO2_4 register (IOCON_PIO2_4, address 0x4004 4040) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_4を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 63

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 67. IOCON_PIO2_5 register (IOCON_PIO2_5, address 0x4004 4044) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_5を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 68. IOCON_PIO3_5 register (IOCON_PIO3_5, address 0x4004 4048) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO3_5を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 64

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 69. IOCON_PIO0_6 register (IOCON_PIO0_6 address 0x4004 404C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_6を選択します。001 予約済み。010 機能 SCK0を選択します(ピン PIO0_6/SCK0が Table 94で選

択されている場合のみ)。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 70. IOCON_PIO0_7 register (IOCON_PIO0_7, address 0x4004 4050) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_7を選択します。001 機能 CTSを選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 65

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 71. IOCON_PIO2_9 register (IOCON_PIO2_9, address 0x4004 4054) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_9を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 72. IOCON_PIO2_10 register (IOCON_PIO2_10, address 0x4004 4058) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_10を選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 66

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 73. IOCON_PIO2_2 register (IOCON_PIO2_2, address 0x4004 405C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_2を選択します。001 機能 DCDを選択します。010 機能MISO1を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 74. IOCON_PIO0_8 register (IOCON_PIO0_8, address 0x4004 4060) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_8を選択します。001 機能MISO0を選択します。010 機能 CT16B0_MAT0を選択します。011 予約済み。100 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 67

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 75. IOCON_PIO0_9 register (IOCON_PIO0_9, address 0x4004 4064) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO0_9を選択します。001 機能MOSI0を選択します。010 機能 CT16B0_MAT1を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 76. IOCON_SWCLK_PIO0_10 register (IOCON_SWCLK_PIO0_10, address 0x4004 4068) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 SWCLKを選択します。001 機能 PIO0_10を選択します。010 機能 SCK0を選択します(ピン SWCLK/PIO0_10/SCK0/CT16B0_MAT2が

Table 94で選択されている場合のみ)。011 機能 CT16B0_MAT2を選択します。100 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン /プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 68

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 77. IOCON_PIO1_10 register (IOCON_PIO1_10, address 0x4004 406C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_10を選択します。001 機能 AD6を選択します。010 機能 CT16B1_MAT1を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 78. IOCON_PIO2_11 register (IOCON_PIO2_11, address 0x4004 4070) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_11を選択します。001 機能 SCK0 を選択します(ピン PIO2_11/SCK0 が Table 94 で

選択されている場合のみ)。010 to

111予約済み。

Table 76. IOCON_SWCLK_PIO0_10 register (IOCON_SWCLK_PIO0_10, address 0x4004 4068) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 69

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 79. IOCON_R_PIO0_11 register (IOCON_R_PIO0_11, address 0x4004 4074) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 R を選択します。この機能は予約済みです。 次の代替機能から 1つを選択してください。

001 機能 PIO0_11を選択します。010 機能 AD0を選択します。011 機能 CT32B0_MAT3を選択します。100 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 78. IOCON_PIO2_11 register (IOCON_PIO2_11, address 0x4004 4070) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 70

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 80. IOCON_R_PIO1_0 register (IOCON_R_PIO1_0, address 0x4004 4078) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 R を選択します。この機能は予約済みです。 次の機能から 1つを選択してください。

001 機能 PIO1_0を選択します。010 機能 AD1を選択します。011 機能 CT32B1_CAP0を選択します。100 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 Enable.

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 81. IOCON_R_PIO1_1 register (IOCON_R_PIO1_1, address 0x4004 407C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 R を選択します。この機能は予約済みです。 次の機能から 1つを選択してください。

001 機能 PIO1_1を選択します。010 機能 AD2を選択します。011 機能 CT32B1_MAT0を選択します。100 to

111予約済み。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 71

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 82. IOCON_R_PIO1_2 register (IOCON_R_PIO1_2, address 0x4004 4080) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 R を選択します。この機能は予約済みです。 次の機能から 1つを選択してください。

001 機能 PIO1_2を選択します。010 機能 AD3を選択します。011 機能 CT32B1_MAT1を選択します。100 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

Table 81. IOCON_R_PIO1_1 register (IOCON_R_PIO1_1, address 0x4004 407C) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 72

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 83. IOCON_PIO3_0 register (IOCON_PIO3_0, address 0x4004 4084) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO3_0を選択します。001 機能 DTRを選択します。001 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 84. IOCON_PIO3_1 register (IOCON_PIO3_1, address 0x4004 4088) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO3_1を選択します。001 機能 DSRを選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

Table 82. IOCON_R_PIO1_2 register (IOCON_R_PIO1_2, address 0x4004 4080) bit description (続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 73

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 85. IOCON_PIO2_3 register (IOCON_PIO2_3, address 0x4004 408C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO2_3を選択します。001 機能 RIを選択します。010 機能MOSI1を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 86. IOCON_SWDIO_PIO1_3 register (IOCON_SWDIO_PIO1_3, address 0x4004 4090) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 SWDIOを選択します。001 機能 PIO1_3を選択します。010 機能 AD4を選択します。011 機能 CT32B1_MAT2を選択します。100 to

111予約済み。

Table 84. IOCON_PIO3_1 register (IOCON_PIO3_1, address 0x4004 4088) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 74

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 87. IOCON_PIO1_4 register (IOCON_PIO1_4, address 0x4004 4094) bit description

Bit Symbol Value Description Reset value

2:0 FUNC[1] ピン機能を選択します。 000

000 機能 PIO1_4を選択します。001 機能 AD5を選択します。010 機能 CT32B1_MAT3を選択します。100 to

011予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 86. IOCON_SWDIO_PIO1_3 register (IOCON_SWDIO_PIO1_3, address 0x4004 4090) bit description (続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 75

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

[1] LPC111x/LPC11C1xがディープパワーダウンモードである場合、FUNCの値に関係なく、このピンはWAKEUPピンとして機能します。

Table 88. IOCON_PIO1_11 register (IOCON_PIO1_11 address 0x4004 4098) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_11を選択します。001 機能 AD7を選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

6 - - 予約済み。 1

7 ADMODE アナログ /デジタルモードを選択します。 1

0 アナログ入力モード1 デジタル機能モード

31:8 - - 予約済み。 -

Table 89. IOCON_PIO3_2 register (IOCON_PIO3_2, address 0x4004 409C) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO3_2を選択します。001 機能 DCDを選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 76

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 90. IOCON_PIO1_5 register (IOCON_PIO1_5, address 0x4004 40A0) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_5を選択します。001 機能 RTSを選択します。010 機能 CT32B0_CAP0を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 91. IOCON_PIO1_6 register (IOCON_PIO1_6, address 0x4004 40A4) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_6を選択します。001 機能 RXDを選択します。010 機能 CT32B0_MAT0を選択します。011 to

111予約済み。

Table 89. IOCON_PIO3_2 register (IOCON_PIO3_2, address 0x4004 409C) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 77

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 92. IOCON_PIO1_7 register (IOCON_PIO1_7, address 0x4004 40A8) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO1_7を選択します。001 機能 TXDを選択します。010 機能 CT32B0_MAT1を選択します。011 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 91. IOCON_PIO1_6 register (IOCON_PIO1_6, address 0x4004 40A4) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 78

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

6.4.2 IOCON位置レジスタIOCON位置レジスタは、多重化された機能の物理ピンを選択するのに使用されます。

注意 : いったんピン位置を選択したら、そのピン上で機能を使用できるようにするため、対応する IOCONレジスタで機能を設定する必要があります。

Table 93. IOCON_PIO3_3 register (IOCON_PIO3_3, address 0x4004 40AC) bit description

Bit Symbol Value Description Reset value

2:0 FUNC ピン機能を選択します。 000

000 機能 PIO3_3を選択します。001 機能 RIを選択します。010 to

111予約済み。

4:3 MODE 機能モード(オンチップのプルアップ / プルダウン抵抗の制御)を選択します。

10

00 非アクティブ(プルダウン / プルアップ抵抗がイネーブルでありません)

01 プルダウン抵抗がイネーブル。10 プルアップ抵抗がイネーブル。11 リピータモード

5 HYS ヒステリシス 0

0 ディスエーブル 1 イネーブル

7:6 - - 予約済み。 11

31:8 - - 予約済み。 0

Table 94. IOCON SCK location register (IOCON_SCK_LOC, address 0x4004 40B0) bit description

Bit Symbol Value Description Reset value

1:0 SCKLOC SCK0ピンのピン位置を選択します。 00

00 ピン位置SWCLK/PIO0_10/SCK0/CT16B0_MAT2で機能SCK0を選択します(Table 76を参照)。

01 ピン位置 PIO2_11/SCK0で機能 SCK0を選択します(Table 78を参照)。

10 ピン位置 PIO0_6/SCK0 で機能 SCK0 を選択します(Table 69を参照)。

11 予約済み。31:2 - - 予約済み。 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 79

NXP Semiconductors UM10398第 6章:LPC111x/LPC11C1x I/O設定

参考資料

Table 95. IOCON DSR location register (IOCON_DSR_LOC, address 0x4004 40B4) bit description

Bit Symbol Value Description Reset value

1:0 DSRLOC DSR0ピンのピン位置を選択します。 00

00 ピン位置 PIO2_1/DSR/SCK1で機能 DSRを選択します。 01 ピン位置 PIO3_1/DSRで機能 DSRを選択します。10 予約済み。11 予約済み。

31:2 - - 予約済み。 -

Table 96. IOCON DCD location register (IOCON_DCD_LOC, address 0x4004 40B8) bit description

Bit Symbol Value Description Reset value

1:0 DCDLOC DCDピンのピン位置を選択します。 00

00 ピン位置 PIO2_2/DCD/MISO1で機能 DCDを選択します。 01 ピン位置 PIO3_2/DCDで機能 DCDを選択します。10 予約済み。11 予約済み。

31:2 - - 予約済み。 -

Table 97. IOCON RI location register (IOCON_RI_LOC, address 0x4004 40BC) bit description

Bit Symbol Value Description Reset value

1:0 RILOC RIピンのピン位置を選択します。 00

00 ピン位置 PIO2_3/RI/MOSI1で機能 RIを選択します。 01 ピン位置 PIO3_3/RIで機能 RIを選択します。10 予約済み。11 予約済み。

31:2 - - 予約済み。 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 80

参考資料

7.1 この章を読む前に

LPC111xは、LQFP48(LPC1113、LPC1114)、PLCC44(LPC1114)、HVQFN33(LPC1111、LPC1112、LPC1113、LPC1114)の 3つのパッケージで入手可能です。

LPC11C12および LPC11C14部品は LQFP48パッケージで入手可能です。

UM10398第 7章:LPC111x/LPC11C1xピン構成Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 98. LPC111x/LPC11C1x pin configurations

Part LQFP48 PLCC44 HVQFN33

LPC1111 Pin configuration - - Figure 8

Pin description - - Table 101

LPC1112 Pin configuration - - Figure 8

Pin description - - Table 101

LPC1113 Pin configuration Figure 6 - Figure 8

Pin description Table 99 - Table 101

LPC1114 Pin configuration Figure 6 Figure 7 Figure 8

Pin description Table 99 Table 100 Table 101

LPC11C12 Pin configuration Figure 9 - -

Pin description Table 99 - -

LPC11C14 Pin configuration Figure 9 - -

Pin description Table 99 - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 81

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

7.2 LPC111xピン構成

Fig 6. Pin configuration LQFP48 package

LPC1113FBD48/301LPC1114FBD48/301

PIO2_6 PIO3_0/DTR

PIO2_0/DTR/SSEL1 R/PIO1_2/AD3/CT32B1_MAT1

RESET/PIO0_0 R/PIO1_1/AD2/CT32B1_MAT0

PIO0_1/CLKOUT/CT32B0_MAT2 R/PIO1_0/AD1/CT32B1_CAP0

VSS R/PIO0_11/AD0/CT32B0_MAT3

XTALIN PIO2_11/SCK0

XTALOUT PIO1_10/AD6/CT16B1_MAT1

VDD SWCLK/PIO0_10/SCK0/CT16B0_MAT2

PIO1_8/CT16B1_CAP0 PIO0_9/MOSI0/CT16B0_MAT1

PIO0_2/SSEL0/CT16B0_CAP0 PIO0_8/MISO0/CT16B0_MAT0

PIO2_7 PIO2_2/DCD/MISO1

PIO2_8 PIO2_10

PIO

2_1/

DS

R/S

CK

1P

IO3_

3/R

I

PIO

0_3

PIO

1_7/

TX

D/C

T32

B0_

MA

T1

PIO

0_4/

SC

LP

IO1_

6/R

XD

/CT

32B

0_M

AT

0

PIO

0_5/

SD

AP

IO1_

5/R

TS

/CT

32B

0_C

AP

0

PIO

1_9/

CT

16B

1_M

AT

0V

DD

PIO

3_4

PIO

3_2/

DC

D

PIO

2_4

PIO

1_11

/AD

7

PIO

2_5

VS

S

PIO

3_5

PIO

1_4/

AD

5/C

T32

B1_

MA

T3/

WA

KE

UP

PIO

0_6/

SC

K0

SW

DIO

/PIO

1_3/

AD

4/C

T32

B1_

MA

T2

PIO

0_7/

CT

S

PIO

2_9

PIO

2_3/

RI/M

OS

I1

PIO

3_1/

DS

R

002aae697

1

2

3

4

5

6

7

8

9

10

11

12

36

35

34

33

32

31

30

29

28

27

26

25

13 14 15 16 17 18 19 20 21 22 23

48 47 46 45 44 43 42 41 40 39 38 3724

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 82

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

Fig 7. Pin configuration PLCC44 package

LPC1114FA44/301

RESET/PIO0_0 R/PIO1_2/AD3/CT32B1_MAT1

PIO0_1/CLKOUT/CT32B0_MAT2 R/PIO1_1/AD2/CT32B1_MAT0

VSS R/PIO1_0/AD1/CT32B1_CAP0

XTALIN R/PIO0_11/AD0/CT32B0_MAT3

XTALOUT PIO2_11/SCK0

VDD PIO1_10/AD6/CT16B1_MAT1

PIO1_8/CT16B1_CAP0 SWCLK/PIO0_10/SCK0/CT16B0_MAT2

PIO0_2/SSEL0/CT16B0_CAP0 PIO0_9/MOSI0/CT16B0_MAT1

PIO2_7 PIO0_8/MISO0/CT16B0_MAT0

PIO2_8 PIO2_2/DCD/MISO1

PIO2_1/DSR/SCK1 PIO2_10

PIO

0_3

PIO

2_0/

DT

R/S

SE

L1

PIO

0_4/

SC

LP

IO2_

6

PIO

0_5/

SD

AP

IO1_

7/T

XD

/CT

32B

0_M

AT

1

PIO

1_9/

CT

16B

1_M

AT

0P

IO1_

6/R

XD

/CT

32B

0_M

AT

0

PIO

3_4

PIO

1_5/

RT

S/C

T32

B0_

CA

P0

PIO

2_4

VD

D

PIO

2_5

PIO

1_11

/AD

7

PIO

3_5

VS

S

PIO

0_6/

SC

K0

PIO

1_4/

AD

5/C

T32

B1_

MA

T3/

WA

KE

UP

PIO

0_7/

CT

SS

WD

IO/P

IO1_

3/A

D4/

CT

32B

1_M

AT

2

PIO

2_9

PIO

2_3/

RI/M

OS

I1

002aaf020

7

8

9

10

11

12

13

14

15

16

17

39

38

37

36

35

34

33

32

31

30

29

18 19 20 21 22 23 24 25 26 27 28

6 5 4 3 2 1 44 43 42 41 40

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 83

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

Fig 8. Pin configuration HVQFN 33 package

002aae698

Transparent top view

PIO0_8/MISO0/CT16B0_MAT0

PIO1_8/CT16B1_CAP0

PIO0_2/SSEL0/CT16B0_CAP0

PIO0_9/MOSI0/CT16B0_MAT1

VDD SWCLK/PIO0_10/SCK0/CT16B0_MAT2

XTALOUT PIO1_10/AD6/CT16B1_MAT1

XTALIN R/PIO0_11/AD0/CT32B0_MAT3

PIO0_1/CLKOUT/CT32B0_MAT2 R/PIO1_0/AD1/CT32B1_CAP0

RESET/PIO0_0 R/PIO1_1/AD2/CT32B1_MAT0

PIO2_0/DTR R/PIO1_2/AD3/CT32B1_MAT1P

IO0_

3

PIO

0_4/

SC

L

PIO

0_5/

SD

A

PIO

1_9/

CT

16B

1_M

AT

0

PIO

3_4

PIO

3_5

PIO

0_6/

SC

K0

PIO

0_7/

CT

S

PIO

1_7/

TX

D/C

T32

B0_

MA

T1

PIO

1_6/

RX

D/C

T32

B0_

MA

T0

PIO

1_5/

RT

S/C

T32

B0_

CA

P0

VD

D

PIO

3_2

PIO

1_11

/AD

7

PIO

1_4/

AD

5/C

T32

B1_

MA

T3/

WA

KE

UP

SW

DIO

/PIO

1_3/

AD

4/C

T32

B1_

MA

T2

8 17

7 18

6 19

5 20

4 21

3 22

2 23

1 249 10 11 12 13 14 15 16

32 31 30 29 28 27 26 25

terminal 1index area

33 VSS

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 84

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

7.3 LPC11C12/C14ピン構成

7.4 LPC111x/LPC11C1xピンの説明

Fig 9. Pin configuration LQFP48 package

LPC11C12FBD48/301LPC11C14FBD48/301

PIO2_6 PIO3_0/DTR

PIO2_0/DTR/SSEL1 R/PIO1_2/AD3/CT32B1_MAT1

RESET/PIO0_0 R/PIO1_1/AD2/CT32B1_MAT0

PIO0_1/CLKOUT/CT32B0_MAT2 R/PIO1_0/AD1/CT32B1_CAP0

VSS R/PIO0_11/AD0/CT32B0_MAT3

XTALIN PIO2_11/SCK0

XTALOUT PIO1_10/AD6/CT16B1_MAT1

VDD SWCLK/PIO0_10/SCK0/CT16B0_MAT2

PIO1_8/CT16B1_CAP0 PIO0_9/MOSI0/CT16B0_MAT1

PIO0_2/SSEL0/CT16B0_CAP0 PIO0_8/MISO0/CT16B0_MAT0

PIO2_7 PIO2_2/DCD/MISO1

PIO2_8 PIO2_10

PIO

2_1/

DS

R/S

CK

1P

IO3_

3/R

I

PIO

0_3

PIO

1_7/

TX

D/C

T32

B0_

MA

T1

PIO

0_4/

SC

LP

IO1_

6/R

XD

/CT

32B

0_M

AT

0

PIO

0_5/

SD

AP

IO1_

5/R

TS

/CT

32B

0_C

AP

0

PIO

1_9/

CT

16B

1_M

AT

0V

DD

PIO

2_4

PIO

3_2/

DC

D

CA

N_R

XD

PIO

1_11

/AD

7

CA

N_T

XD

VS

S

PIO

2_5

PIO

1_4/

AD

5/C

T32

B1_

MA

T3/

WA

KE

UP

PIO

0_6/

SC

K0

SW

DIO

/PIO

1_3/

AD

4/C

T32

B1_

MA

T2

PIO

0_7/

CT

S

PIO

2_9

PIO

2_3/

RI/M

OS

I1

PIO

3_1/

DS

R

002aaf266

1

2

3

4

5

6

7

8

9

10

11

12

36

35

34

33

32

31

30

29

28

27

26

25

13 14 15 16 17 18 19 20 21 22 23

48 47 46 45 44 43 42 41 40 39 38 3724

Table 99. LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)

Symbol Pin Type Description

PIO0_0 to PIO0_11 I/O ポート 0 — ポート 0 は 12 ビットの I/O ポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 0のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

RESET/PIO0_0 3[1][2] I RESET — 外部リセット入力 : このピンが LOWであればデバイスはリセットされ、I/O ポートおよびペリフェラルはそれぞれのデフォルト状態となり、プロセッサの実行はアドレス 0で開始されます。

I/O PIO0_0 — 汎用デジタル I/Oピン。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 85

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO0_1/CLKOUT/CT32B0_MAT2

4[3][2] I/O PIO0_1 — 汎用デジタル I/Oピン。 リセット時にこのピンが LOWレベルであれば、ISPコマンドハンドラが起動します。

O CLKOUT — クロック出力ピン。O CT32B0_MAT2 — 32ビットタイマ 0のマッチ出力 2。

PIO0_2/SSEL0/CT16B0_CAP0

10[3][2] I/O PIO0_2 — 汎用デジタル I/Oピン。O SSEL0 — SPI0のスレーブ選択。I CT16B0_CAP0 — 16ビットタイマ 0のキャプチャ入力 0。

PIO0_3 14[3][2] I/O PIO0_3 — 汎用デジタル I/Oピン。 PIO0_4/SCL 15[4][2] I/O PIO0_4 — 汎用デジタル I/Oピン(オープンドレイン)。

I/O SCL — I2C バス、オープンドレインクロック I/O。 I/O 設定レジスタで I2CFastモードプラスを選択している場合にのみ高電流シンク。

PIO0_5/SDA 16[4][2] I/O PIO0_5 — 汎用デジタル I/Oピン(オープンドレイン)。 I/O SDA — I2Cバス、オープンドレインデータ I/O。 I/O設定レジスタで I2C Fast

モードプラスを選択している場合にのみ高電流シンク。PIO0_6/SCK0 22[3][2] I/O PIO0_6 — 汎用デジタル I/Oピン。

I/O SCK0 — SPI0のシリアルクロック。PIO0_7/CTS 23[3][2] I/O PIO0_7 — 汎用デジタル I/Oピン(高電流出力ドライバ)。

I CTS — UARTの CTS(Clear To Send)入力。PIO0_8/MISO0/CT16B0_MAT0

27[3][2] I/O PIO0_8 — 汎用デジタル I/Oピン。I/O MISO0 — SPI0のマスタインスレーブアウト。O CT16B0_MAT0 — 16ビットタイマ 0のマッチ出力 0。

PIO0_9/MOSI0/CT16B0_MAT1

28[3][2] I/O PIO0_9 — 汎用デジタル I/Oピン。I/O MOSI0 — SPI0のマスタアウトスレーブイン。O CT16B0_MAT1 — 16ビットタイマ 0のマッチ出力 1。

SWCLK/PIO0_10/SCK0/CT16B0_MAT2

29[3][2] I SWCLK — シリアルワイヤクロック。I/O PIO0_10 — 汎用デジタル I/Oピン。I/O SCK0 — SPI0のシリアルクロック。O CT16B0_MAT2 — 16ビットタイマ 0のマッチ出力 2。

R/PIO0_11/AD0/CT32B0_MAT3

32[5][2] I R —予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO0_11 — 汎用デジタル I/Oピン。I AD0 — A/Dコンバータ、入力 0。O CT32B0_MAT3 — 32ビットタイマ 0のマッチ出力 3。

PIO1_0 to PIO1_11 I/O ポート 1—ポート 1は 12ビットの I/Oポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 1のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

R/PIO1_0/AD1/CT32B1_CAP0

33[5][2] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_0 — 汎用デジタル I/Oピン。I AD1 — A/Dコンバータ、入力 1。I CT32B1_CAP0 — 32ビットタイマ 1のキャプチャ入力 0。

Table 99. LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 86

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

R/PIO1_1/AD2/CT32B1_MAT0

34[5] O R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_1 — 汎用デジタル I/Oピン。I AD2 — A/Dコンバータ、入力 2。O CT32B1_MAT0 — 32ビットタイマ 1のマッチ出力 0。

R/PIO1_2/AD3/CT32B1_MAT1

35[5] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_2 — 汎用デジタル I/Oピン。I AD3 — A/Dコンバータ、入力 3。O CT32B1_MAT1 — 32ビットタイマ 1のマッチ出力 1。

SWDIO/PIO1_3/AD4/CT32B1_MAT2

39[5] I/O SWDIO — シリアルワイヤデバッグ I/O。I/O PIO1_3 — 汎用デジタル I/Oピン。I AD4 — A/Dコンバータ、入力 4。O CT32B1_MAT2 — 32ビットタイマ 1のマッチ出力 2。

PIO1_4/AD5/CT32B1_MAT3/WAKEUP

40[5] I/O PIO1_4 — 汎用デジタル I/Oピン。I AD5 — A/Dコンバータ、入力 5。O CT32B1_MAT3 — 32ビットタイマ 1のマッチ出力 3。I WAKEUP — ディープパワーダウンモードのウェイクアップピン。 ディー

プパワーダウンモードに切り替えるにはこのピンを外部から HIGH にプルし、ディープパワーダウンモードを終了するにはこのピンを LOWにプルします。

PIO1_5/RTS/CT32B0_CAP0

45[3] I/O PIO1_5 — 汎用デジタル I/Oピン。O RTS — UARTの RTS(Request To Send)出力。I CT32B0_CAP0 — 32ビットタイマ 0のキャプチャ入力 0。

PIO1_6/RXD/CT32B0_MAT0

46[3] I/O PIO1_6 — 汎用デジタル I/Oピン。I RXD — UARTのレシーバ入力。O CT32B0_MAT0 — 32ビットタイマ 0のマッチ出力 0。

PIO1_7/TXD/CT32B0_MAT1

47[3] I/O PIO1_7 — 汎用デジタル I/Oピン。O TXD — UARTのトランスミッタ出力。O CT32B0_MAT1 — 32ビットタイマ 0のマッチ出力 1。

PIO1_8/CT16B1_CAP0 9[3] I/O PIO1_8 — 汎用デジタル I/Oピン。I CT16B1_CAP0 — 16ビットタイマ 1のキャプチャ入力 0。

PIO1_9/CT16B1_MAT0 17[3] I/O PIO1_9 — 汎用デジタル I/Oピン。O CT16B1_MAT0 — 16ビットタイマ 1のマッチ出力 0。

PIO1_10/AD6/CT16B1_MAT1

30[5] I/O PIO1_10 — 汎用デジタル I/Oピン。I AD6 — A/Dコンバータ、入力 6。O CT16B1_MAT1 — 16ビットタイマ 1のマッチ出力 1。

PIO1_11/AD7 42[5] I/O PIO1_11 — 汎用デジタル I/Oピン。I AD7 — A/Dコンバータ、入力 7。

PIO2_0 to PIO2_11 I/O ポート 2 — ポート 2 は 12 ビットの I/O ポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 2のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

Table 99. LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 87

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO2_0/DTR/SSEL1 2[3] I/O PIO2_0 — 汎用デジタル I/Oピン。O DTR — UARTの DTR(Data Terminal Ready)出力。O SSEL1 — SPI1のスレーブ選択。

PIO2_1/DSR/SCK1 13[3] I/O PIO2_1 — 汎用デジタル I/Oピン。I DSR — UARTの DSR(Data Set Ready)入力。I/O SCK1 — SPI1のシリアルクロック。

PIO2_2/DCD/MISO1 26[3] I/O PIO2_2 — 汎用デジタル I/Oピン。I DCD — UARTの DCD(Data Carrier Detect)入力。I/O MISO1 — SPI1のマスタインスレーブアウト。

PIO2_3/RI/MOSI1 38[3] I/O PIO2_3 — 汎用デジタル I/Oピン。I RI — UARTの RI(Ring Indicator)入力。I/O MOSI1 — SPI1のマスタアウトスレーブイン。

PIO2_4 19[3] I/O PIO2_4 — 汎用デジタル I/Oピン。 (LPC1113/14のみ)PIO2_4 18[3] I/O PIO2_4 — 汎用デジタル I/Oピン。 (LPC11C12/C14のみ)PIO2_5 20[3] I/O PIO2_5 — 汎用デジタル I/Oピン。 (LPC1113/14のみ)PIO2_5 21[3] I/O PIO2_5 — 汎用デジタル I/Oピン。 (LPC11C12/C14のみ)PIO2_6 1[3] I/O PIO2_6 — 汎用デジタル I/Oピン。PIO2_7 11[3] I/O PIO2_7 — 汎用デジタル I/Oピン。PIO2_8 12[3] I/O PIO2_8 — 汎用デジタル I/Oピン。PIO2_9 24[3] I/O PIO2_9 — 汎用デジタル I/Oピン。PIO2_10 25[3] I/O PIO2_10 — 汎用デジタル I/Oピン。PIO2_11/SCK0 31[3] I/O PIO2_11 — 汎用デジタル I/Oピン。

I/O SCK0 — SPI0のシリアルクロック。PIO3_0 to PIO3_5 I/O ポート 3 — ポート 3 は 12 ビットの I/O ポートであり、各ビットに個別の

方向制御と機能制御があります。 ポート 3のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。 ピン PIO3_6 ~PIO3_11は使用できません。

PIO3_0/DTR 36[3] I/O PIO3_0 — 汎用デジタル I/Oピン。O DTR — UARTの DTR(Data Terminal Ready)出力。

PIO3_1/DSR 37[3] I/O PIO3_1 — 汎用デジタル I/Oピン。I DSR — UARTの DSR(Data Set Ready)入力。

PIO3_2/DCD 43[3] I/O PIO3_2 — 汎用デジタル I/Oピン。I DCD — UARTの DCD(Data Carrier Detect)入力。

PIO3_3/RI 48[3] I/O PIO3_3 — 汎用デジタル I/Oピン。I RI — UARTの RI(Ring Indicator)入力。

PIO3_4 18[3] I/O PIO3_4 — 汎用デジタル I/Oピン。 (LPC1113/14のみ)PIO3_5 21[3] I/O PIO3_5 — 汎用デジタル I/Oピン。 (LPC1113/14のみ)CAN_RXD 19[6] I CAN_RXD — C_CAN受信データ入力。 (LPC11C12/14のみ)CAN_TXD 20[6] O CAN_TXD — C_CAN送信データ出力。 (LPC11C12/14のみ)VDD 8; 44 I 内部レギュレータ、外部レール、ADCへの 3.3 V電源電圧。 ADC基準電圧と

しても使用できます。

Table 99. LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 88

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

XTALIN 6[7] I オシレータ回路および内部クロックジェネレータ回路への入力。 入力電圧は 1.8 Vを超えないこと。

XTALOUT 7[7] O オシレータアンプからの出力。VSS 5; 41 I Ground.

[1] RESET 機能はディープパワーダウンモードでは使用できません。 チップをリセットしてディープパワーダウンモードからウェイクアップさせるには、WAKEUPピンを使用してください。

[2] 選択したピン機能に関係なく、スタートロジックに対するディープスリープウェイクアップ入力ピンとして機能します(LPC111x/11C1xユーザーマニュアルを参照)。

[3] プルアップ /プルダウン抵抗およびヒステリシスが設定可能な、デジタル I/O機能を提供する 5 Vトレラントパッド。[4] I2C標準モードおよび I2C Fastモードプラスの I2Cバス規格に準拠した I2Cバスパッド。 [5] プルアップ /プルダウン抵抗およびヒステリシスが設定可能で、アナログ入力にも対応可の、デジタル I/O機能を提供する 5 Vトレ

ラントパッド。 ADC入力として設定した場合、パッドのデジタル部分はディスエーブルとなり、ピンは 5 Vトレラントではなくなります。

[6] プルアップ /プルダウン抵抗を持たない、5 Vトレラントのデジタル I/Oパッド。[7] システムオシレータを使用しない場合、XTALINと XTALOUTを次のように接続します。 XTALINはフロート状態のままにしておくこと

も、接地することもできます(ノイズ感受性を低減するには、接地することをお勧めします)。 XTALOUT はフロート状態のままにしておく必要があります。

Table 99. LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)Symbol Pin Type Description

Table 100. LPC1114 pin description table (PLCC44 package)

Symbol Pin Type Description

PIO0_0 to PIO0_11 I/O ポート 0 — ポート 0 は 12 ビットの I/O ポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 0のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

RESET/PIO0_0 7[1][2] I RESET — 外部リセット入力 : このピンが LOWであればデバイスはリセットされ、I/O ポートおよびペリフェラルはそれぞれのデフォルト状態となり、プロセッサの実行はアドレス 0で開始されます。

I/O PIO0_0 — 汎用デジタル I/Oピン。PIO0_1/CLKOUT/CT32B0_MAT2

8[3][2] I/O PIO0_1 — 汎用デジタル I/Oピン。 リセット時にこのピンが LOWレベルであれば、ISPコマンドハンドラが起動します。

O CLKOUT — クロック出力ピン。O CT32B0_MAT2 — 32ビットタイマ 0のマッチ出力 2。

PIO0_2/SSEL0/CT16B0_CAP0

14[3][2] I/O PIO0_2 — 汎用デジタル I/Oピン。O SSEL0 — SPI0のスレーブ選択。I CT16B0_CAP0 — 16ビットタイマ 0のキャプチャ入力 0。

PIO0_3 18[3][2] I/O PIO0_3 — 汎用デジタル I/Oピン。 PIO0_4/SCL 19[4][2] I/O PIO0_4 — 汎用デジタル I/Oピン(オープンドレイン)。

I/O SCL — I2C バス、オープンドレインクロック I/O。 I/O 設定レジスタで I2CFastモードプラスを選択している場合にのみ高電流シンク。

PIO0_5/SDA 20[4][2] I/O PIO0_5 — 汎用デジタル I/Oピン(オープンドレイン)。 I/O SDA — I2Cバス、オープンドレインデータ I/O。 I/O設定レジスタで I2C Fast

モードプラスを選択している場合にのみ高電流シンク。PIO0_6/SCK0 26[3][2] I/O PIO0_6 — 汎用デジタル I/Oピン。

I/O SCK0 — SPI0のシリアルクロック。PIO0_7/CTS 27[3][2] I/O PIO0_7 — 汎用デジタル I/Oピン(高電流出力ドライバ)。

I CTS — UARTの CTS(Clear To Send)入力。PIO0_8/MISO0/CT16B0_MAT0

31[3][2] I/O PIO0_8 — 汎用デジタル I/Oピン。I/O MISO0 — SPI0のマスタインスレーブアウト。O CT16B0_MAT0 — 16ビットタイマ 0のマッチ出力 0。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 89

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO0_9/MOSI0/CT16B0_MAT1

32[3][2] I/O PIO0_9 — 汎用デジタル I/Oピン。I/O MOSI0 — SPI0のマスタアウトスレーブイン。O CT16B0_MAT1 — 16ビットタイマ 0のマッチ出力 1。

SWCLK/PIO0_10/SCK0/CT16B0_MAT2

33[3][2] I SWCLK — シリアルワイヤクロック。I/O PIO0_10 — 汎用デジタル I/Oピン。I/O SCK0 — SPI0のシリアルクロック。O CT16B0_MAT2 — 16ビットタイマ 0のマッチ出力 2。

R/PIO0_11/AD0/CT32B0_MAT3

36[5][2] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO0_11 — 汎用デジタル I/Oピン。I AD0 — A/Dコンバータ、入力 0。O CT32B0_MAT3 — 32ビットタイマ 0のマッチ出力 3。

PIO1_0 to PIO1_11 I/O ポート 1 — ポート 1 は 12 ビットの I/O ポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 1のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

R/PIO1_0/AD1/CT32B1_CAP0

37[5][2] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_0 — 汎用デジタル I/Oピン。I AD1 — A/Dコンバータ、入力 1。I CT32B1_CAP0 — 32ビットタイマ 1のキャプチャ入力 0。

R/PIO1_1/AD2/CT32B1_MAT0

38[5] O R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_1 — 汎用デジタル I/Oピン。I AD2 — A/Dコンバータ、入力 2。O CT32B1_MAT0 — 32ビットタイマ 1のマッチ出力 0。

R/PIO1_2/AD3/CT32B1_MAT1

39[5] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_2 — 汎用デジタル I/Oピン。I AD3 — A/Dコンバータ、入力 3。O CT32B1_MAT1 — 32ビットタイマ 1のマッチ出力 1。

SWDIO/PIO1_3/AD4/CT32B1_MAT2

41[5] I/O SWDIO — シリアルワイヤデバッグ I/O。I/O PIO1_3 — 汎用デジタル I/Oピン。I AD4 — A/Dコンバータ、入力 4。O CT32B1_MAT2

32ビットタイマ 1のマッチ出力 2。PIO1_4/AD5/CT32B1_MAT3/WAKEUP

42[5] I/O PIO1_4 — 汎用デジタル I/Oピン。I AD5 — A/Dコンバータ、入力 5。O CT32B1_MAT3 — 32ビットタイマ 1のマッチ出力 3。I WAKEUP — ディープパワーダウンモードのウェイクアップピン。 ディー

プパワーダウンモードに切り替えるにはこのピンを外部から HIGH にプルし、ディープパワーダウンモードを終了するにはこのピンを LOWにプルします。

PIO1_5/RTS/CT32B0_CAP0

2[3] I/O PIO1_5 — 汎用デジタル I/Oピン。O RTS — UARTの RTS(Request To Send)出力。I CT32B0_CAP0 — 32ビットタイマ 0のキャプチャ入力 0。

Table 100. LPC1114 pin description table (PLCC44 package)(続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 90

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO1_6/RXD/CT32B0_MAT0

3[3] I/O PIO1_6 — 汎用デジタル I/Oピン。I RXD — UARTのレシーバ入力。O CT32B0_MAT0 — 32ビットタイマ 0のマッチ出力 0。

PIO1_7/TXD/CT32B0_MAT1

4[3] I/O PIO1_7 — 汎用デジタル I/Oピン。O TXD — UARTのトランスミッタ出力。O CT32B0_MAT1 — 32ビットタイマ 0のマッチ出力 1。

PIO1_8/CT16B1_CAP0 13[3] I/O PIO1_8 — 汎用デジタル I/Oピン。I CT16B1_CAP0 — 16ビットタイマ 1のキャプチャ入力 0。

PIO1_9/CT16B1_MAT0 21[3] I/O PIO1_9 — 汎用デジタル I/Oピン。O CT16B1_MAT0 — 16ビットタイマ 1のマッチ出力 0。

PIO1_10/AD6/CT16B1_MAT1

34[5] I/O PIO1_10 — 汎用デジタル I/Oピン。I AD6 — A/Dコンバータ、入力 6。O CT16B1_MAT1 — 16ビットタイマ 1のマッチ出力 1。

PIO1_11/AD7 44[5] I/O PIO1_11 — 汎用デジタル I/Oピン。I AD7 — A/Dコンバータ、入力 7。

PIO2_0 to PIO2_11 I/O ポート 2 — ポート 2 は 12 ビットの I/O ポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 2のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

PIO2_0/DTR/SSEL1 6[3] I/O PIO2_0 — 汎用デジタル I/Oピン。O DTR — UARTの DTR(Data Terminal Ready)出力。O SSEL1 — SPI1のスレーブ選択。

PIO2_1/DSR/SCK1 17[3] I/O PIO2_1 — 汎用デジタル I/Oピン。I DSR — UARTの DSR(Data Set Ready)入力。I/O SCK1 — SPI1のシリアルクロック。

PIO2_2/DCD/MISO1 30[3] I/O PIO2_2 — 汎用デジタル I/Oピン。I DCD — UARTの DCD(Data Carrier Detect)入力。I/O MISO1 — SPI1のマスタインスレーブアウト。

PIO2_3/RI/MOSI1 40[3] I/O PIO2_3 — 汎用デジタル I/Oピン。I RI — UARTの RI(Ring Indicator)入力。I/O MOSI1 — SPI1のマスタアウトスレーブイン。

PIO2_4 23[3] I/O PIO2_4 — 汎用デジタル I/Oピン。PIO2_5 24[3] I/O PIO2_5 — 汎用デジタル I/Oピン。PIO2_6 5[3] I/O PIO2_6 — 汎用デジタル I/Oピン。PIO2_7 15[3] I/O PIO2_7 — 汎用デジタル I/Oピン。PIO2_8 16[3] I/O PIO2_8 — 汎用デジタル I/Oピン。PIO2_9 28[3] I/O PIO2_9 — 汎用デジタル I/Oピン。PIO2_10 29[3] I/O PIO2_10 — 汎用デジタル I/Oピン。PIO2_11/SCK0 35[3] I/O PIO2_11 — 汎用デジタル I/Oピン。

I/O SCK0

SPI0のシリアルクロック。

Table 100. LPC1114 pin description table (PLCC44 package)(続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 91

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO3_0 to PIO3_5 I/O ポート 3 — ポート 3 は 12 ビットの I/O ポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 3のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。 ピンPIO3_0~PIO3_3および PIO3_6~ PIO3_11は使用できません。

PIO3_4 22[3] I/O PIO3_4 — 汎用デジタル I/Oピン。PIO3_5 25[3] I/O PIO3_5 — 汎用デジタル I/Oピン。VDD 1; 12 I 内部レギュレータ、外部レール、ADCへの 3.3 V電源電圧。 ADC基準電圧と

しても使用できます。XTALIN 10[7] I オシレータ回路および内部クロックジェネレータ回路への入力。 入力電圧

は 1.8 Vを超えないこと。XTALOUT 11[7] O オシレータアンプからの出力。VSS 9; 43 I GND

[1] RESET 機能はディープパワーダウンモードでは使用できません。 チップをリセットしてディープパワーダウンモードからウェイクアップさせるには、WAKEUPピンを使用してください。

[2] 選択したピン機能に関係なく、スタートロジックに対するディープスリープウェイクアップ入力ピンとして機能します(LPC111x/11C1xÉÜÅ[ÉUÅ[É}ÉjÉÖÉAÉãを参照)。

[3] プルアップ /プルダウン抵抗およびヒステリシスが設定可能な、デジタル I/O機能を提供する 5 Vトレラントパッド。[4] I2C標準モードおよび I2C Fastモードプラスの I2Cバス規格に準拠した I2Cバスパッド。 [5] プルアップ /プルダウン抵抗およびヒステリシスが設定可能で、アナログ入力にも対応可の、デジタル I/O機能を提供する 5 Vトレ

ラントパッド。 ADC入力として設定した場合、パッドのデジタル部分はディスエーブルとなり、ピンは 5 Vトレラントではなくなります。

[6] システムオシレータを使用しない場合、XTALINと XTALOUTを次のように接続します。 XTALINはフロート状態のままにしておくことも、接地することもできます(ノイズ感受性を低減するには、接地することをお勧めします)。 XTALOUT はフロート状態のままにしておく必要があります。

Table 100. LPC1114 pin description table (PLCC44 package)(続き)Symbol Pin Type Description

Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package)

Symbol Pin Type Description

PIO0_0 to PIO0_11 I/O ポート 0 — ポート 0は 12ビットの I/Oポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 0のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

RESET/PIO0_0 2[1][2] I RESET — 外部リセット入力 : このピンが LOWであればデバイスはリセットされ、I/O ポートおよびペリフェラルはそれぞれのデフォルト状態となり、プロセッサの実行はアドレス 0で開始されます。

I/O PIO0_0 — 汎用デジタル I/Oピン。PIO0_1/CLKOUT/CT32B0_MAT2

3[3][2] I/O PIO0_1 — 汎用デジタル I/Oピン。 リセット時にこのピンが LOWレベルであれば、ISPコマンドハンドラが起動します。

O CLKOUT — クロック出力ピン。O CT32B0_MAT2 — 32ビットタイマ 0のマッチ出力 2。

PIO0_2/SSEL0/CT16B0_CAP0

8[3][2] I/O PIO0_2 — 汎用デジタル I/Oピン。O SSEL0 — SPI0のスレーブ選択。I CT16B0_CAP0 — 16ビットタイマ 0のキャプチャ入力 0。

PIO0_3 9[3][2] I/O PIO0_3 — 汎用デジタル I/Oピン。 PIO0_4/SCL 10[4][2] I/O PIO0_4 — 汎用デジタル I/Oピン(オープンドレイン)。

I/O SCL — I2C バス、オープンドレインクロック I/O。 I/O 設定レジスタで I2CFastモードプラスを選択している場合にのみ高電流シンク。

PIO0_5/SDA 11[4][2] I/O PIO0_5 — 汎用デジタル I/Oピン(オープンドレイン)。I/O SDA — I2Cバス、オープンドレインデータ I/O。 I/O設定レジスタで I2C Fast

モードプラスを選択している場合にのみ高電流シンク。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 92

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO0_6/SCK0 15[3][2] I/O PIO0_6 — 汎用デジタル I/Oピン。I/O SCK0 — SPI0のシリアルクロック。

PIO0_7/CTS 16[3][2] I/O PIO0_7 — 汎用デジタル I/Oピン(高電流出力ドライバ)。I CTS — UARTの CTS(Clear To Send)入力。

PIO0_8/MISO0/CT16B0_MAT0

17[3][2] I/O PIO0_8 — 汎用デジタル I/Oピン。I/O MISO0 — SPI0のマスタインスレーブアウト。O CT16B0_MAT0 — 16ビットタイマ 0のマッチ出力 0。

PIO0_9/MOSI0/CT16B0_MAT1

18[3][2] I/O PIO0_9 — 汎用デジタル I/Oピン。I/O MOSI0 — SPI0のマスタアウトスレーブイン。O CT16B0_MAT1 — 16ビットタイマ 0のマッチ出力 1。

SWCLK/PIO0_10/SCK0/CT16B0_MAT2

19[3][2] I SWCLK — シリアルワイヤクロック。I/O PIO0_10 — 汎用デジタル I/Oピン。I/O SCK0 — SPI0のシリアルクロック。O CT16B0_MAT2 — 16ビットタイマ 0のマッチ出力 2。

R/PIO0_11/AD0/CT32B0_MAT3

21[5][2] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO0_11 — 汎用デジタル I/Oピン。I AD0 — A/Dコンバータ、入力 0。O CT32B0_MAT3 — 32ビットタイマ 0のマッチ出力 3。

PIO1_0 to PIO1_11 I/O ポート 1 — ポート 1は 12ビットの I/Oポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 1のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。

R/PIO1_0/AD1/CT32B1_CAP0

22[5][2] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_0 — 汎用デジタル I/Oピン。I AD1 — A/Dコンバータ、入力 1。I CT32B1_CAP0 — 32ビットタイマ 1のキャプチャ入力 0。

R/PIO1_1/AD2/CT32B1_MAT0

23[5] O R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_1 — 汎用デジタル I/Oピン。I AD2 — A/Dコンバータ、入力 2。O CT32B1_MAT0 — 32ビットタイマ 1のマッチ出力 0。

R/PIO1_2/AD3/CT32B1_MAT1

24[5] I R — 予約済み。 IOCONFIGブロックで代替機能に設定します。I/O PIO1_2 — 汎用デジタル I/Oピン。I AD3 — A/Dコンバータ、入力 3。O CT32B1_MAT1 — 32ビットタイマ 1のマッチ出力 1。

SWDIO/PIO1_3/AD4/CT32B1_MAT2

25[5] I/O SWDIO — シリアルワイヤデバッグ I/O。I/O PIO1_3 — 汎用デジタル I/Oピン。I AD4 — A/Dコンバータ、入力 4。O CT32B1_MAT2 — 32ビットタイマ 1のマッチ出力 2。

Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) (続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 93

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

PIO1_4/AD5/CT32B1_MAT3/WAKEUP

26[5] I/O PIO1_4 — 汎用デジタル I/Oピン。I AD5 — A/Dコンバータ、入力 5。O CT32B1_MAT3 — 32ビットタイマ 1のマッチ出力 3。I WAKEUP — ディープパワーダウンモードのウェイクアップピン。 ディー

プパワーダウンモードに切り替えるにはこのピンを外部から HIGH にプルし、ディープパワーダウンモードを終了するにはこのピンを LOWにプルします。

PIO1_5/RTS/CT32B0_CAP0

30[3] I/O PIO1_5 — 汎用デジタル I/Oピン。O RTS — UARTの RTS(Request To Send)出力。I CT32B0_CAP0 — 32ビットタイマ 0のキャプチャ入力 0。

PIO1_6/RXD/CT32B0_MAT0

31[3] I/O PIO1_6 — 汎用デジタル I/Oピン。I RXD — UARTのレシーバ入力。O CT32B0_MAT0 — 32ビットタイマ 0のマッチ出力 0。

PIO1_7/TXD/CT32B0_MAT1

32[3] I/O PIO1_7 — 汎用デジタル I/Oピン。O TXD — UARTのトランスミッタ出力。O CT32B0_MAT1 — 32ビットタイマ 0のマッチ出力 1。

PIO1_8/CT16B1_CAP0 7[3] I/O PIO1_8 — 汎用デジタル I/Oピン。I CT16B1_CAP0 — 16ビットタイマ 1のキャプチャ入力 0。

PIO1_9/CT16B1_MAT0 12[3] I/O PIO1_9 — 汎用デジタル I/Oピン。O CT16B1_MAT0 — 16ビットタイマ 1のマッチ出力 0。

PIO1_10/AD6/CT16B1_MAT1

20[5] I/O PIO1_10 — 汎用デジタル I/Oピン。I AD6 — A/Dコンバータ、入力 6。O CT16B1_MAT1 — 16ビットタイマ 1のマッチ出力 1。

PIO1_11/AD7 27[5] I/O PIO1_11 — 汎用デジタル I/Oピン。I AD7 — A/Dコンバータ、入力 7。

PIO2_0 I/O ポート 2 — ポート 2は 12ビットの I/Oポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 2のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。 Pins PIO2_1 ~ PIO2_11は使用できません。

PIO2_0/DTR 1[3] I/O PIO2_0 — 汎用デジタル I/Oピン。O DTR — UARTの DTR(Data Terminal Ready)出力。

PIO3_0 to PIO3_5 I/O ポート 3 — ポート 3は 12ビットの I/Oポートであり、各ビットに個別の方向制御と機能制御があります。 ポート 3のピンの動作は、IOCONFIGレジスタブロックを介して選択される機能に依存します。 ピン PIO3_0、PIO3_1、PIO3_3、および PIO3_6~ PIO3_11は使用できません。

PIO3_2 28[3] I/O PIO3_2 — 汎用デジタル I/Oピン。PIO3_4 13[3] I/O PIO3_4 — 汎用デジタル I/Oピン。PIO3_5 14[3] I/O PIO3_5 — 汎用デジタル I/Oピン。VDD 6; 29 I 内部レギュレータ、外部レール、ADCへの 3.3 V電源電圧。 ADC基準電圧と

しても使用できます。XTALIN 4[6] I オシレータ回路および内部クロックジェネレータ回路への入力。 入力電圧

は 1.8 Vを超えないこと。

Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) (続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 94

NXP Semiconductors UM10398第 7章:LPC111x/LPC11C1xピン構成

参考資料

XTALOUT 5[6] O オシレータアンプからの出力。VSS 33 - サーマルパッド。 GNDに接続します。[1] RESET 機能はディープパワーダウンモードでは使用できません。 チップをリセットしてディープパワーダウンモードからウェイク

アップさせるには、WAKEUPピンを使用してください。[2] 選択したピン機能に関係なく、スタートロジックに対するディープスリープウェイクアップ入力ピンとして機能します(LPC111x/11C1xユーザーマニュアルを参照)。

[3] プルアップ /プルダウン抵抗およびヒステリシスが設定可能な、デジタル I/O機能を提供する 5 Vトレラントパッド。[4] I2C標準モードおよび I2C Fastモードプラスの I2Cバス規格に準拠した I2Cバスパッド。 [5] プルアップ / プルダウン抵抗およびヒステリシスが設定可能で、アナログ入力にも対応可の、デジタル I/O 機能を提供する 5 V トレ

ラントパッド。 ADC入力として設定した場合、パッドのデジタル部分はディスエーブルとなり、ピンは 5 Vトレラントではなくなります。

[6] システムオシレータを使用しない場合、XTALINと XTALOUTを次のように接続します。 XTALINはフロート状態のままにしておくことも、接地することもできます(ノイズ感受性を低減するには、接地することをお勧めします)。 XTALOUT はフロート状態のままにしておく必要があります。

Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) (続き)Symbol Pin Type Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 95

参考資料

8.1 この章を読む前に

各ポートで使用可能な GPIOピンの数は、LPC111x/LPC11C1x部品とパッケージによって異なります。 使用可能な GPIOピンについては Table 102を参照してください。

使用できない PIOn_mピンに対応するレジスタビットは予約済みです。

8.2 概要

8.2.1 特長

• GPIOピンは、ソフトウェアによって入力または出力として設定できます。

• 個別のポートピンは、エッジセンシティブまたはレベルセンシティブな割り込み要求として機能することができます。

• 割り込みは、単独の立ち下がりエッジか立ち上がりエッジ、あるいは両方のエッジで設定されます。

• レベルセンシティブな割り込みピンは、HIGHアクティブまたはLOWアクティブです。

• すべての GPIOピンは、デフォルトでは入力です。

• データレジスタの読み書きは、アドレスビット 13:2によってマスクされます。

UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 102. GPIO configuration

Part Package GPIO port 0 GPIO port 1 GPIO port 2 GPIO port 3 Total GPIO pins

LPC1111 HVQFN33 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 PIO3_2; PIO3_4; PIO3_5 28

LPC1112 HVQFN33 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 PIO3_2; PIO3_4; PIO3_5 28

LPC1113 HVQFN33 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 PIO3_2; PIO3_4; PIO3_5 28

LQFP48 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 to PIO2_11 PIO3_0 to PIO3_5 42

LPC1114 HVQFN33 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 PIO3_2; PIO3_4; PIO3_5 28

PLCC44 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 to PIO2_11 PIO3_4 and PIO3_5 38

LQFP48 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 to PIO2_11 PIO3_0 to PIO3_5 42

LPC11C12 LQFP48 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 to PIO2_11 except PIO2_4 and PIO2_5

PIO3_0 to PIO3_5 40

LPC11C14 LQFP48 PIO0_0 to PIO0_11 PIO1_0 to PIO1_11 PIO2_0 to PIO2_11 except PIO2_4 and PIO2_5

PIO3_0 to PIO3_5 40

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 96

NXP Semiconductors UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)

参考資料

8.3 レジスタの説明

各 GPIO レジスタは最大幅 12 ビットであり、ワードアドレスでワード演算またはハーフワード演算を使用して読み書きすることができます。

8.3.1 GPIOデータレジスタGPIOnDATA レジスタは、ピンが GPIO 入力または出力、あるいは別のデジタル機能として設定されているかに関係なく、ピンの現在のロジック状態(HIGHまたは LOW)を保持します。 ピンが GPIO出力として設定されている場合、GPIOnDATAレジスタの現在の値がピンに対して駆動されます。

GPIOnDATA レジスタを読み取ると、ピンの設定に関係なく、常にピンの現在のロジックレベル(状態)が返されます。 出力ドライバの値とピン入力の状態の両方に対してデータレジスタが 1つだけなので、ピンの設定に応じて書き込み操作の影響が異なります。

• ピンが GPIO 入力として設定されている場合、GPIOnDATA レジスタへの書き込みはピンのレベルに影響を与えません。 読み取りはピンの現在の状態を返します。

Table 103. Register overview: GPIO (base address port 0: 0x5000 0000; port 1: 0x5001 0000, port 2: 0x5002 0000; port 3: 0x5003 0000)

Name Access Address offset Description Reset value

GPIOnDATA R/W 0x0000 to 0x3FF8 ピン PIOn_0~ PIOn_11のポート nデータアドレスマスキングレジスタの位置(Section8.4.1を参照)。

n/a

GPIOnDATA R/W 0x3FFC ピン PIOn_0~ PIOn_11のポート nデータレジスタ

n/a

- - 0x4000 to 0x7FFC 予約済み -

GPIOnDIR R/W 0x8000 ポート nのデータ方向レジスタ 0x00

GPIOnIS R/W 0x8004 ポート nの割り込み検知レジスタ 0x00

GPIOnIBE R/W 0x8008 ポート nの割り込み両エッジレジスタ 0x00

GPIOnIEV R/W 0x800C ポート nの割り込みイベントレジスタ 0x00

GPIOnIE R/W 0x8010 ポート nの割り込みマスクレジスタ 0x00

GPIOnRIS R 0x8014 ポート nの原割り込みステータスレジスタ 0x00

GPIOnMIS R 0x8018 ポート n のマスク割り込みステータスレジスタ

0x00

GPIOnIC W 0x801C ポート nの割り込みクリアレジスタ 0x00

- - 0x8020 - 0x8FFF 予約済み 0x00

Table 104. GPIOnDATA register (GPIO0DATA, address 0x5000 0000 to 0x5000 3FFC; GPIO1DATA, address 0x5001 0000 to 0x5001 3FFC; GPIO2DATA, address 0x5002 0000 to 0x5002 3FFC; GPIO3DATA, address 0x5003 0000 to 0x5003 3FFC) bit description

Bit Symbol Description Reset value

Access

11:0 DATA ピン PIOn_0~ PIOn_11のロジックレベル。HIGH = 1、LOW= 0。

n/a R/W

31:12 - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 97

NXP Semiconductors UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)

参考資料

• ピンが GPIO 出力として設定されている場合、GPIOnDATA レジスタの現在の値がピンに対して駆動されます。 この値は、GPIOnDATAレジスタへの書き込みの結果であるか、ピンが GPIO 入力または別のデジタル機能から GPIO 出力に切り替えられた場合に、以前のピンの状態を反映することがあります。 読み取りはピンの現在の状態を返します。

• ピンが別のデジタル機能(入力または出力)として設定されている場合、GPIOnDATAレジスタへの書き込みはピンのレベルに影響を与えません。 読み取りは、たとえピンが出力として設定されている場合でも、ピンの現在の状態を返します。 これは、GPIOnDATAレジスタを読み取ることにより、そのピン上で GPIO以外の機能のデジタル出力または入力の値を確認できるという意味です。

ピンが入力から出力に切り替わるときに、以下のルールが適用されます。

• ピンが HIGHレベルが適用される入力として設定されている場合

– ピンを出力に変更し、ピンは HIGHレベルを駆動する。

• ピンは LOWレベルが適用される入力として設定されている場合

– ピンを出力に変更し、ピンは LOWレベルを駆動する。

このルールは、ピンが現在のロジックレベルを反映することを示しています。 したがって、フロート状態のピンは入力から出力に切り替わると予測できないレベルを駆動する可能性があります。

8.3.2 GPIOデータ方向レジスタ

Table 105. GPIOnDIR register (GPIO0DIR, address 0x5000 8000 to GPIO3DIR, address 0x5003 8000) bit description

Bit Symbol Value Description Reset value

Access

11:0 IO ピン xを入力または出力として選択します(x = 0~11)。

0x00 R/W

0 ピン PIOn_xは入力として設定されます。1 ピン PIOn_xは出力として設定されます。

31:12 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 98

NXP Semiconductors UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)

参考資料

8.3.3 GPIO割り込み検知レジスタ

8.3.4 GPIO割り込み両エッジ検知レジスタ

8.3.5 GPIO割り込みイベントレジスタ

8.3.6 GPIO割り込みマスクレジスタGPIOnIEレジスタ内のビットが HIGHに設定されると、対応するピンが個別の割り込みと結合 GPIOnINTR ラインをトリガすることができます。 ビットをクリアすると、そのピンでの割り込みトリガがディスエーブルになります。

Table 106. GPIOnIS register (GPIO0IS, address 0x5000 8004 to GPIO3IS, address 0x5003 8004) bit description

Bit Symbol Value Description Reset value

Access

11:0 ISENSE ピン x への割り込みをレベルセンシティブまたはエッジセンシティブとして選択します(x = 0~11)。

0x00 R/W

0 ピン PIOn_x への割り込みはエッジセンシティブとして設定されます。

1 ピン PIOn_x への割り込みはレベルセンシティブとして設定されます。

31:12 - - 予約済み - -

Table 107. GPIOnIBE register (GPIO0IBE, address 0x5000 8008 to GPIO3IBE, address 0x5003 8008) bit description

Bit Symbol Value Description Reset value

Access

11:0 IBE ピン x への割り込みが両エッジでトリガされるように選択します(x = 0~ 11)。

0x00 R/W

0 ピンPIOn_xへの割り込みはレジスタGPIOnIEVによって制御されます。

1 ピン PIOn_x 上の両エッジが割り込みをトリガします。

31:12 - - 予約済み - -

Table 108. GPIOnIEV register (GPIO0IEV, address 0x5000 800C to GPIO3IEV, address 0x5003 800C) bit description

Bit Symbol Value Description Reset value

Access

11:0 IEV ピン xへの割り込みが、立ち上がりエッジまたは立ち下がりエッジでトリガされるように選択します(x = 0~ 11)。

0x00 R/W

0 レジスタ GPIOnISでの設定に応じて(Table 106を参照)、ピン PIOn_x の立ち下がりエッジまたはLOWレベルによって割り込みがトリガされます。

1 レジスタ GPIOnISでの設定に応じて(Table 106を参照)、ピン PIOn_x の立ち上がりエッジまたはHIGHレベルによって割り込みがトリガされます。

31:12 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 99

NXP Semiconductors UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)

参考資料

8.3.7 GPIO原割り込みステータスレジスタGPIOnIRS レジスタ内で HIGH に設定されているビットは、対応するピンの原(マスク前の)割り込みステータスを反映しており、GPIOIE をトリガする前にすべての要件が満たされていることを示しています。 ビットの読み取りが 0であれば、対応する入力ピンが割り込みを開始していないことを示します。 このレジスタは読み取り専用です。

8.3.8 GPIOマスク割り込みステータスレジスタGPIOnMISレジスタでビットの読み取りが HIGHであれば、割り込みをトリガする入力ラインのステータスを反映しています。 ビットの読み取りが LOW であれば、対応する入力ピンで割り込みが生成されていないか、割り込みがマスクされていることを示します。GPIOMISはマスク後の割り込みの状態です。 このレジスタは読み取り専用です。

8.3.9 GPIO割り込みクリアレジスタこのレジスタにより、ソフトウェアは、割り込み検知レジスタ内でエッジセンシティブと特定されたポートビットのエッジ検出をクリアすることができます。 このレジスタは、レベルセンシティブと特定されたポートビットには影響を与えません。

Table 109. GPIOnIE register (GPIO0IE, address 0x5000 8010 to GPIO3IE, address 0x5003 8010) bit description

Bit Symbol Value Description Reset value

Access

11:0 MASK ピン x への割り込みがマスクされるように選択します(x = 0~ 11)。

0x00 R/W

0 ピン PIOn_xへの割り込みがマスクされます。1 ピン PIOn_xへの割り込みはマスクされません。

31:12 - - 予約済み - -

Table 110. GPIOnIRS register (GPIO0IRS, address 0x5000 8014 to GPIO3IRS, address 0x5003 8014) bit description

Bit Symbol Value Description Reset value

Access

11:0 RAWST 原割り込みステータス(x = 0~ 11)。 0x00 R

0 ピン PIOn_xへの割り込みはありません。1 PIOn_xでは割り込み要件が満たされています。

31:12 - - 予約済み - -

Table 111. GPIOnMIS register (GPIO0MIS, address 0x5000 8018 to GPIO3MIS, address 0x5003 8018) bit description

Bit Symbol Value Description Reset value

Access

11:0 MASK ピンxへの割り込みがマスクされるように選択します(x = 0~ 11)。

0x00 R

0 ピン PIOn_xで割り込みまたは割り込みのマスクはありません。

1 PIOn_xへの割り込み。31:12 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 100

NXP Semiconductors UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)

参考資料

8.4 機能説明

8.4.1 書き込み /読み取りデータ操作ソフトウェアが 1回の書き込み操作で他のピンにまったく影響を与えずにGPIOビットを設定できるようにするには、14ビット幅のアドレスバスのビット [13:2]を使用し、各ポートに対し 12 の GPIO ピンで読み書き操作を行うための 12 ビット幅のマスクを作成します。 1によってマスクされる GPIOnDATAビットのみ、読み書き操作の影響を受けます。 マスクされた GPIOnDATAレジスタは、GPIOnアドレス空間内のアドレスオフセット 0x0000~ 0x3FFCの間であればどこに位置してもかまいません。 GPIOnDATAレジスタのアドレス0x3FFCでの読み書きは、すべてのマスキングビットを 1に設定します。

書き込み操作書き込まれる GPIOポートビット i(i = 0~ 11)と関連付けられるアドレスビット(i+2)が HIGHの場合、GPIODATAレジスタビット iの値が更新されます。 アドレスビット(i+2)が LOWの場合、対応する GPIODATAレジスタビット iは変更されずそのままです。

Table 112. GPIOnIC register (GPIO0IC, address 0x5000 801C to GPIO3IC, address 0x5003 801C) bit description

Bit Symbol Value Description Reset value

Access

11:0 CLR ピン x への割り込みがクリアされるように選択します(x = 0~ 11)。 割り込みエッジ検出ロジックをクリアします。 このレジスタは書き込み専用です。注意 : GPIO ブロックと NVIC ブロック間のシンクロナイザによって、2クロック分の遅延が発生します。 割り込みサービスルーチンを終了する前に、割り込みエッジ検出ロジックをクリアしてから 2 つの NOPを追加することをお勧めします。

0x00 W

0 影響なし。1 ピン PIOn_x のエッジ検出ロジックをクリアしま

す。31:12 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 101

NXP Semiconductors UM10398第 8章:LPC111x/LPC11C1x汎用 I/O(GPIO)

参考資料

読み取り操作GPIO データビットと関連付けられるアドレスビットが HIGH の場合、値は読み取られます。 アドレスビットが LOWの場合、GPIOデータビットは 0として読み取られます。ポート DATAレジスタを読み取ると、ポートピン 11:0の状態がアドレスビット 13:2と AND操作されます。

Fig 10. Masked write operation to the GPIODATA register

Fig 11. Masked read operation

0 0 0 0 0 0 1 0 0 1 1 0

1 1 1 1 1 1 1 0 0 1 0 0

u u u u u u 1 u u 1 0 u

13 12 11 10 9 8 7 6 5 4 3 2

0 0

ADDRESS[13:2]

address 0x098

data 0xFE4

GPIODATA registerat address + 0x098

u = unchanged

0 0 0 0 0 0 1 1 0 0 0 1

1 1 1 1 1 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 0 0 0 0

13 12 11 10 9 8 7 6 5 4 3 2

0 0

ADDRESS[13:2]

address 0x0C4

port pin settings

data read

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 102

参考資料

9.1 この章を読む前に

UART ブロックは、LPC111x と LPC11C1x のすべての部品で同一です。 DSR、DCD、RI のモデム信号は、LQFP48および PLCC44パッケージでのみピンアウトされています。

9.2 基本構成

UARTは以下のレジスタを使用して設定します。

1. ピン : UARTピンは、UARTクロックをイネーブルにする前に IOCONFIGレジスタブロック(Section 6.4.1)内で設定しておく必要があります。

注意 : モデム入力ピンを使用する場合は、モデム機能の位置も UART 位置レジスタ(Section 6.4.2)で選択する必要があります。

2. 電力 : SYSAHBCLKCTRLレジスタで、ビット 12(Table 19)を設定します。

3. ペリフェラルクロック : UARTCLKDIVレジスタ(Table 21)への書き込みによって、UARTペリフェラルクロックをイネーブルにします。

9.3 特長

• 16バイトの送受信 FIFO。

• レジスタの位置は ’550業界標準に適合。

• レシーバ FIFOのトリガポイントは 1、4、8、14バイト。

• 内蔵ボーレートジェネレータ。• UARTは、ソフトウェアまたはハードウェアのフロー制御の実装を考慮。

• 出力イネーブルで RS-485/EIA-485の 9ビットモードに対応。

• モデム制御。

9.4 ピンの説明

UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 113. UART pin description

Pin Type Description

RXD Input シリアル入力。シリアル受信データ。TXD Output シリアル出力。シリアル送信データ。RTS Output Request To Send(送信要求)。 RS-485方向制御ピン。 DTR Output Data Terminal Ready(データ端末レディ)。DSR[1] Input Data Set Ready(データセットレディ)。CTS Input Clear To Send(送信可)。DCD[1] Input Data Carrier Detect(データキャリア検出)。RI[1] Input Ring Indicator(被呼表示)。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 103

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

[1] LQFP48パッケージのみ。

DSR、DCD、RIのモデム入力は、2つの異なるピン位置に多重化されます。 IOCON_LOCレジスタ(Section 6.4.2 を参照)を使用して、IOCON レジスタで機能を選択するのに加えて、LQFP48ピンパッケージで各機能の物理的位置を選択します。

DTR出力も、2つのピン位置で可能です。 DTRピンの出力値は両方の位置で同じく駆動され、任意の位置での DTR機能は、そのピン位置について IOCONレジスタで機能を選択することによって簡単に選択できます。

9.5 クロックと電力の制御

UARTブロックは、AHBCLKCTRLレジスタ(Table 19を参照)によってゲート制御されます。UARTボーレートジェネレータが使用するペリフェラルUARTクロックは、UARTCLKDIVレジスタ(Table 21を参照)によって制御されます。

消費電力を抑えるために、UART_PCLKを UARTCLKDIVレジスタ(Table 21を参照)でディスエーブルにしたり、UARTブロックをシステム AHBクロック制御レジスタのビット 12(Table 19を参照)によってディスエーブルにすることができます。

注意 : UARTクロックをイネーブルにする前に、UARTピンを対応する IOCONレジスタで設定する必要があります。

9.6 レジスタの説明

UARTには、Table 114のような構成のレジスタが含まれています。 ディバイザラッチアクセスビット(DLAB)が U0LCR[7] に含まれており、ディバイザラッチへのアクセスをイネーブルにします。

Table 114. Register overview: UART (base address: 0x4000 8000)

Name Access Address offset

Description Reset Value[1]

Notes

U0RBR RO 0x000 レシーババッファレジスタ。 次に読み取る、受信した文字が含まれます。

NA when DLAB=0

U0THR WO 0x000 送信保持レジスタ。 次に送信される文字がここに書き込まれます。

NA when DLAB=0

U0DLL R/W 0x000 ディバイザラッチ LSB。 ボーレートディバイザ値の最下位バイト。 フルディバイザを使用して分数分周器からボーレートを生成します。

0x01 when DLAB=1

U0DLM R/W 0x004 ディバイザラッチ MSB。 ボーレートディバイザ値の最上位バイト。 フルディバイザを使用して分数分周器からボーレートを生成します。

0x00 when DLAB=1

U0IER R/W 0x004 割り込みイネーブルレジスタ。 可能性のある 7 つの UART 割り込みに対する個別の割り込みイネーブルビットが含まれます。

0x00 when DLAB=0

U0IIR RO 0x008 割り込み IDレジスタ。 どの割り込みが保留されているかを識別します。

0x01 -

U0FCR WO 0x008 FIFO制御レジスタ。 UART FIFOの使用とモードを制御します。 0x00 -

U0LCR R/W 0x00C ライン制御レジスタ。 フレームフォーマットとブレーク生成を制御します。

0x00 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 104

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.1 UARTレシーババッファレジスタ(U0RBR - 0x4000 8000、DLAB = 0のとき、読み取り専用)U0RBR は UART RX FIFO の最上位バイトです。 RX FIFO の最上位バイトには受信した中で最も古い文字があり、バスインターフェースを使用して読み取ることができます。 LSB(ビット 0)は、「最も古い」受信データビットを表します。 受信した文字が 8ビット未満の場合、未使用のMSBは 0で埋められます。

U0RBRにアクセスするには、U0LCR内のディバイザラッチアクセスビット(DLAB)が 0でなくてはなりません。 U0RBRは常に読み取り専用です。

PE、FE、および BIビット(Table 126を参照)は RBR FIFOの最上位にあるバイト(すなわち、RBRからの次回の読み取りで最初に読み取られるバイト)に対応するので、受信バイトの有効なペアとそのステータスビットをフェッチする正しい方法は、まず U0LSR レジスタの内容を読み取った後、U0RBRからのバイトを読み取るというやり方です。

U0MCR R/W 0x010 モデム制御レジスタ 0x00 -

U0LSR RO 0x014 ラインステータスレジスタ。 ラインエラーを含む送受信ステータスのフラグが含まれます。

0x60 -

U0MSR RO 0x018 モデムステータスレジスタ 0x00 -

U0SCR R/W 0x01C スクラッチパッドレジスタ。 ソフトウェア用 8 ビット一時ストレージ。

0x00 -

U0ACR R/W 0x020 自動通信速度設定制御レジスタ。 自動通信速度設定機能の制御が含まれます。

0x00 -

- - 0x024 予約済み - -

U0FDR R/W 0x028 分数分周器レジスタ。 ボーレート分周器のクロック入力を生成します。

0x10 -

- - 0x02C 予約済み - -

U0TER R/W 0x030 送信イネーブルレジスタ。 ソフトウェアのフロー制御で使用するため、UARTトランスミッタをオフにします。

0x80 -

- - 0x034 - 0x048

予約済み - -

U0RS485CTRL R/W 0x04C RS-485/EIA-485 制御。 RS-485/EIA-485 モードのさまざまな側面を設定する制御が含まれます。

0x00 -

U0ADRMATCH R/W 0x050 RS-485/EIA-485 アドレスマッチ。 RS-485/EIA-485 モードのアドレスマッチ値が含まれます。

0x00 -

U0RS485DLY R/W 0x054 RS-485/EIA-485方向制御遅延。 0x00 -

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

Table 114. Register overview: UART (base address: 0x4000 8000)(続き)Name Access Address

offsetDescription Reset

Value[1]Notes

Table 115. UART Receiver Buffer Register (U0RBR - address 0x4000 8000 when DLAB = 0, Read Only) bit description

Bit Symbol Description Reset Value

7:0 RBR UARTレシーババッファレジスタには、UART RX FIFO内で最も古い受信バイトが含まれます。

undefined

31:8 - 予約済み -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 105

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.2 UARTトランスミッタ保持レジスタ(U0THR - 0x4000 8000、DLAB = 0のとき、書き込み専用)U0THRは UART TX FIFOの最上位バイトです。 最上位バイトは TX FIFO内で最も新しい文字であり、バスインターフェースを介して書き込みができます。 LSBは、送信する最初のビットを表します。

U0THRにアクセスするには、U0LCR内のディバイザラッチアクセスビット(DLAB)が 0でなくてはなりません。 U0THRは常に書き込み専用です。

9.6.3 UARTディバイザラッチ LSBおよび MSBレジスタ(U0DLL - 0x4000 8000および U0DLM - 0x4000 8004、DLAB = 1のとき)UARTディバイザラッチは UARTボーレートジェネレータの一部であり、分数分周器とともに、UART_PCLK クロックを分周してボーレートクロック(望ましいボーレートの 16倍)を生成するために使用する値を保持しています。 U0DLLレジスタと U0DLMレジスタが共同で 16 ビットディバイザを形成します。U0DLL にはディバイザの下位 8ビット、U0DLMにはディバイザの上位 8ビットが含まれます。 0で割ることは認められないので、値 0x0000 は値 0x0001 と同様に扱われます。UART ディバイザラッチにアクセスするには、U0LCR 内のディバイザラッチアクセスビット(DLAB)が 1 である必要があります。U0DLL および U0DLM の適切な値を選択する方法の詳細は、Section 9.6.15 を参照してください。

Table 116. UART Transmitter Holding Register (U0THR - address 0x4000 8000 when DLAB = 0, Write Only) bit description

Bit Symbol Description Reset Value

7:0 THR UART送信保持レジスタに書き込みを行うと、データが UART送信 FIFOに格納されます。 バイトは、FIFOの一番下に達してトランスミッタが使用できる状態にあれば送信されます。

NA

31:8 - 予約済み -

Table 117. UART Divisor Latch LSB Register (U0DLL - address 0x4000 8000 when DLAB = 1) bit description

Bit Symbol Description Reset value

7:0 DLLSB UART ディバイザラッチ LSB レジスタは、U0DLM レジスタとともに UARTのボーレートを決定します。

0x01

31:8 - 予約済み -

Table 118. UART Divisor Latch MSB Register (U0DLM - address 0x4000 8004 when DLAB = 1) bit description

Bit Symbol Description Reset value

7:0 DLMSB UART ディバイザラッチ MSB レジスタは、U0DLL レジスタとともに UARTのボーレートを決定します。

0x00

31:8 - 予約済み -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 106

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.4 UART割り込みイネーブルレジスタ(U0IER - 0x4000 8004、DLAB = 0のとき)U0IERは、4つの UART割り込みソースをイネーブルにするのに使用されます。

9.6.5 UART割り込み識別レジスタ(U0IIR - 0x4004 8008、読み取り専用)U0IIR は、保留中の割り込みの優先度とソースを示すステータスコードを提供します。U0IIRアクセスの間、割り込みは凍結されます。 U0IIRアクセス中に割り込みが発生した場合、その割り込みは次の U0IIRアクセスで記録されます。

Table 119. UART Interrupt Enable Register (U0IER - address 0x4000 8004 when DLAB = 0) bit description

Bit Symbol Value Description Reset value

0 RBR Interrupt Enable

UART の受信データ使用可能割り込みをイネーブルにします。 これは文字受信タイムアウト割り込みも制御します。

0

0 RDA割り込みをディスエーブルにします。1 RDA割り込みをイネーブルにします。

1 THRE Interrupt Enable

UARTの THRE割り込みをイネーブルにします。 この割り込みのステータスは U0LSR[5]から読み取ることができます。

0

0 THRE割り込みをディスエーブルにします。1 THRE割り込みをイネーブルにします。

2 RX Line Interrupt Enable

UART RX ラインステータス割り込みをイネーブルにします。 この割り込みのステータスは U0LSR[4:1]から読み取ることができます。

0

0 RXラインステータス割り込みをディスエーブルにします。1 RXラインステータス割り込みをイネーブルにします。

3 - - 予約済み -

6:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

7 - - 予約済み 0

8 ABEOIntEn 自動通信速度設定割り込みの終了をイネーブルにします。 0

0 自動通信速度設定割り込みの終了をディスエーブルにします。

1 自動通信速度設定割り込みの終了をイネーブルにします。9 ABTOIntEn 自動通信速度設定タイムアウト割り込みをイネーブルに

します。0

0 自動通信速度設定タイムアウト割り込みをディスエーブルにします。

1 自動通信速度設定タイムアウト割り込みをイネーブルにします。

31:10 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 107

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

ビット U0IIR[9:8]は自動通信速度設定機能によって設定され、自動通信速度設定状態のタイムアウトまたは終了の信号を出します。 自動通信速度設定割り込み状態は、自動通信速度設定制御レジスタ内の対応するクリアビットを設定することによってクリアされます。

IntStatusビットが1で保留中の割り込みがない場合、IntIdビットは0になります。 IntStatusが 0 の場合、非自動通信速度設定割り込みは保留されます。この場合、IntId ビットはTable 121の説明に従って割り込みの種類を識別し、処理します。 U0IIR[3:0]のステータスでは、割り込みハンドラルーチンが、割り込みの原因とアクティブな割り込みをクリアする方法を特定することができます。 割り込みサービスルーチンを終了する前に割り込みをクリアするには、U0IIRを読み取る必要があります。

UART RLS割り込み(U0IIR[3:1] = 011)は最優先割り込みであり、4つのエラー状態(オーバーランエラー(OE)、パリティエラー(PE)、フレーミングエラー(FE)、ブレーク割り込み(BI))のうちのどれか 1 つが UART RX 入力で発生した場合には必ず設定されます。割り込みを設定した UART Rxエラー状態は、U0LSR[4:1]によって確認できます。 割り込みは、U0LSRを読み取った時点でクリアされます。

Table 120. UART Interrupt Identification Register (U0IIR - address 0x4004 8008, Read Only) bit description

Bit Symbol Value Description Reset value

0 IntStatus 割り込みステータス。 U0IIR[0]はアクティブLOWです。 保留される割り込みは、U0IIR[3:1]を評価することで特定できます。

1

0 少なくとも 1つの割り込みが保留されています。1 割り込みは保留されていません。

3:1 IntId 割り込みの識別。 U0IER[3:1]はUART Rx FIFOに対応する割り込みを識別します。 以下に列挙していないU0IER[3:1]の他の組み合せは、すべて予約済みです(100、101、111)。

0

011 1 - 受信ラインステータス(RLS)010 2a - 受信データ使用可能(RDA)110 2b - 文字タイムアウトインジケータ(CTI)001 3 - THRE割り込み000 4 - モデム割り込み

5:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

7:6 FIFO Enable これらのビットは U0FCR[0]と同等です。 0

8 ABEOInt 自動通信速度設定割り込みの終了。 自動通信速度設定が正常に完了し、割り込みがイネーブルな場合に trueです。

0

9 ABTOInt 自動通信速度設定タイムアウト割り込み。 自動通信速度設定がタイムアウトし、割り込みがイネーブルな場合に trueです。

0

31:10 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 108

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

UART RDA 割り込み(U0IIR[3:1] = 010)は、CTI 割り込み(U0IIR[3:1] = 110)との間で 2番目の優先度を共有します。 RDAは、UART Rx FIFOが U0FCR7:6で定義されたトリガレベルに達するとアクティブになり、UART Rx FIFOの深度がトリガレベルより下がるとリセットされます。 RDA割り込みがアクティブになると、CPUはトリガレベルによって定義されたデータのブロックを読み取ることができます。

CTI割り込み(U0IIR[3:1] = 110)は第 2レベルの割り込みであり、UART Rx FIFOに少なくとも 1つの文字が含まれ、UART Rx FIFOアクティビティが 3.5~ 4.5文字回数以内に発生しなければ設定されます。 何らかの UART Rx FIFOアクティビティ(UART RSRの読み取りまたは書き込み)があると、割り込みはクリアされます。 この割り込みは、トリガレベルサイズの倍数ではないメッセージを受信した後で、UART RBRをフラッシュすることを目的としています。 たとえば、ペリフェラルが 105文字のメッセージを送信しようとしていてトリガレベルが 10文字だとした場合、CPUは 10件の RDA割り込みを受信します。その結果、100文字と 1~ 5件の CTI割り込み(サービスルーチンに応じて異なる)が転送されることによって、残りの 5文字が転送されます。

[1] 値「0000」、「0011」、「0101」、「0111」、「1000」、「1001」、「1010」、「1011」、「1101」、「1110」、「1111」は予約済みです。

[2] 詳細は Section 9.6.9「UARTラインステータスレジスタ(U0LSR - 0x4000 8014、読み取り専用)」を参照。[3] 詳細は Section 9.6.1「UARTレシーババッファレジスタ(U0RBR - 0x4000 8000、DLAB = 0のとき、読み取

り専用)」を参照。[4] 詳細は Section 9.6.5「UART割り込み識別レジスタ(U0IIR - 0x4004 8008、読み取り専用)」および Section

9.6.2「UARTトランスミッタ保持レジスタ(U0THR - 0x4000 8000、DLAB = 0のとき、書き込み専用)」を参照。

Table 121. UART Interrupt Handling

U0IIR[3:0] value[1]

Priority Interrupt type

Interrupt source Interrupt reset

0001 - None なし -

0110 Highest RX Line Status / Error

OE[2]または PE[2]または FE[2]または BI[2] U0LSR 読み取り [2]

0100 Second RX Data Available

Rxデータ使用可能またはFIFO内でトリガレベルに到達(U0FCR0=1)

U0RBR 読み取り [3] または UARTFIFO がトリガレベル未満に低下

1100 Second Character Time-out indication

RX FIFO内に少なくとも 1文字があり、一定時間内に文字の入力や削除が行われていないこと。この時間は、FIFO 内にいくつの文字があり、トリガレベルがいくつに設定されているか(3.5~ 4.5文字回数)によって異なります。正確な時間は次式のとおりです。[(ワード長 ) × 7 - 2] × 8 + [(トリガレベル - 文字数)× 8 + 1] RCLK

U0RBR 読み取り [3]

0010 Third THRE THRE[2] U0IIR読み取り [4](割り込みソースの場合)または THR 書き込み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 109

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

UART THRE割り込み(U0IIR[3:1] = 001)は第 3レベルの割り込みであり、UART THR FIFOが空で、一定の初期化条件を満たしている場合にアクティブになります。 これらの初期化条件は、UART THR FIFOをデータで満たし、多くの THRE割り込みがシステム起動時に発生するのを防ぐことを目的としています。 初期化条件は、THRE = 1のときは常に 1文字遅延からストップビットを引いたものを導入し、最後の THRE = 1イベント以降、U0THR内に一度に少なくとも 2文字が存在したことはありません。 この遅延は、デコードとサービスのために THRE割り込みを行うことなく、U0THRにデータを書き込む時間を CPUに与えるために提供されます。 THRE 割り込みは、UART THR FIFO が一度に 2 文字以上保持していて、現在 U0THRが空であれば、ただちに設定されます。 THRE割り込みは、U0THR書き込みが発生するか、U0IIRの読み取りが発生し、THREが最優先割り込み(U0IIR[3:1] = 001)である場合にリセットされます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 110

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.6 UART FIFO制御レジスタ(U0FCR - 0x4000 8008、書き込み専用)U0FCRは UART RXおよび TX FIFOの動作を制御します。

9.6.7 UARTライン制御レジスタ(U0LCR - 0x4000 800C)U0LCRは、送信または受信されるデータ文字のフォーマットを決定します。

Table 122. UART FIFO Control Register (U0FCR - address 0x4000 8008, Write Only) bit description

Bit Symbol Value Description Reset value

0 FIFO Enable

0 UART FIFO はディスエーブルになります。 アプリケーションで使用してはなりません。

0

1 UART Rxおよび TX FIFOの両方、そして U0FCR[7:1]アクセスでアクティブ HIGHイネーブル。 このビットは、UARTの正常な動作のために設定する必要があります。 このビット上の遷移は UARTFIFOを自動的にクリアします。

1 RX FIFO Reset

0 いずれの UART FIFOにも影響しません。 0

1 U0FCR[1]にロジック 1を書き込むと、UART Rx FIFO内の全バイトがクリアされ、ポインタロジックがリセットされます。 このビットは自動クリアされます。

2 TX FIFO Reset

0 いずれの UART FIFOにも影響しません。 0

1 U0FCR[2] にロジック 1 を書き込むと、UART TX FIFO 内の全バイトがクリアされ、ポインタロジックがリセットされます。 このビットは自動クリアされます。

3 - - 予約済み 0

5:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

7:6 RX Trigger Level

これら 2 つのビットは、割り込みがアクティブ化される前にレシーバ UART FIFO文字をいくつ書き込む必要があるかを決定します。

0

00 トリガレベル 0(1文字または 0x01)。01 トリガレベル 1(4文字または 0x04)。10 トリガレベル 2(8文字または 0x08)。11 トリガレベル 3(14文字または 0x0E)。

31:8 - - 予約済み -

Table 123. UART Line Control Register (U0LCR - address 0x4000 800C) bit description

Bit Symbol Value Description Reset Value

1:0 Word Length Select

00 5ビットの文字長。 0

01 6ビットの文字長。10 7ビットの文字長。11 8ビットの文字長。

2 Stop Bit Select

0 1ストップビット。 0

1 2ストップビット(U0LCR[1:0]=00の場合は 1.5)。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 111

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.8 UARTモデム制御レジスタU0MCRはモデムループバックモードをイネーブルにして、モデム出力信号を制御します。

3 Parity Enable

0 パリティの生成とチェックをディスエーブルにします。 0

1 パリティの生成とチェックをイネーブルにします。5:4 Parity

Select00 奇数パリティ。 送信される文字内の 1の数であり、付加されるパリ

ティビットは奇数になります。0

01 偶数パリティ。 送信される文字内の 1の数であり、付加されるパリティビットは偶数になります。

10 強制 "1"スティックパリティ。11 強制 "0"スティックパリティ。

6 Break Control

0 ブレーク送信をディスエーブルにします。 0

1 ブレーク送信をイネーブルにします。 U0LCR[6]がアクティブ HIGHのとき、出力ピン UART TXDは強制的にロジック 0になります。

7 Divisor Latch Access Bit (DLAB)

0 ディバイザラッチへのアクセスをディスエーブルにします。 0

1 ディバイザラッチへのアクセスをイネーブルにします。

31:8 - - 予約済み -

Table 123. UART Line Control Register (U0LCR - address 0x4000 800C) bit description (続き)

Bit Symbol Value Description Reset Value

Table 124. UART0 Modem Control Register (U0MCR - address 0x4000 8010) bit description

Bit Symbol Value Description Reset value

0 DTR Control

モデム出力ピンDTRのソース。 モデムループバックモードがアクティブのとき、このビットは 0と読み取られます。

0

1 RTS Control

モデム出力ピン RTSのソース。 モデムループバックモードがアクティブのとき、このビットは 0と読み取られます。

0

3:2 - NA 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 112

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.8.1 自動フロー制御自動 RTSモードがイネーブルな場合、UARTのレシーバ FIFOハードウェアが UARTの RTS出力を制御します。 自動 CTSモードがイネーブルな場合、CTS入力信号がアサートされていれば、UARTの U0TSRハードウェアは送信の開始のみを行います。

9.6.8.1.1 自動 RTS

自動 RTS機能は、RTSenビットを設定することによってイネーブルになります。 自動 RTSデータフロー制御は、U0RBRモジュールから発信され、プログラムされたレシーバ FIFOトリガレベルにリンクされます。 自動 RTSがイネーブルの場合、データフローは次のように制御されます。

レシーバの FIFOレベルがプログラムされたトリガレベルに達すると、RTSが(高い値に)デアサートされます。 送信側 UARTは、トリガレベルに達した後に 1バイトを追加送信することができます(送信側 UARTにもう 1つ送信するバイトがあると仮定します)。これは、追加バイトの送信を開始するまで、RTSのデアサートを認識しない可能性があるからです。 レシーバ FIFO が以前のトリガレベルに達すると、RTS は自動的に(低い値に)再アサートされます。 RTSの再アサートは、送信側 UARTに対してデータ送信を続行するように信号を出します。

4 Loopback Mode Select

0

モデムループバックモードは、診断ループバックテストを実行するメカニズムを提供します。 トランスミッタからのシリアルデータは、レシーバのシリアル入力に内部接続されています。 入力ピンRXDはループバックにまったく影響せず、出力ピンTXDはマーキング状態に保たれます。 4 つのモデム入力(CTS、DSR、RI、DCD)は外部で切断されます。 外部では、モデム出力(RTS、DTR)は非アクティブに設定されます。 内部では、4 つのモデム出力が4 つのモデム入力に接続されます。 これらの接続の結果、U0MSRの上位 4 ビットは、通常モードの 4 つのモデム入力ではなく、U0MCRの下位 4ビットによって駆動されます。 これにより、モデムステータス割り込みは、U0MCR の下位 4 ビットを書き込むことによってループバックモードで生成されます。

0

モデムループバックモードをディスエーブルにします。1 モデムループバックモードをイネーブルにします。

5 - NA 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

0

6 RTSen 0 自動 RTSフロー制御をディスエーブルにします。 0

1 自動 RTSフロー制御をイネーブルにします。7 CTSen 0 自動 CTSフロー制御をディスエーブルにします。 0

1 自動 CTSフロー制御をイネーブルにします。31:8 - - 予約済み -

Table 124. UART0 Modem Control Register (U0MCR - address 0x4000 8010) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 113

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

自動 RTS モードがディスエーブルの場合、RTSen ビットが UART の RTS 出力を制御します。 自動 RTSモードがイネーブルの場合、ハードウェアが RTS出力を制御し、RTSの実際値は UARTの RTS制御ビットにコピーされます。 自動 RTSがイネーブルである限り、RTS制御ビットの値はソフトウェアにとって読み取り専用となります。

例 : タイプ ’550モードで動作する UARTの、U0FCRでのトリガレベルが 0x2に設定されているとすれば、自動 RTSがイネーブルの場合、UARTは受信 FIFOに 8バイトが含まれるとただちに RTS 出力をデアサートします(110 ページの Table 122)。 RTS 出力は、受信FIFOが以前のトリガレベルである 4バイトに達すると、ただちに再アサートされます。

9.6.8.1.2 自動 CTS

自動 CTS機能は、CTSenビットを設定することによってイネーブルになります。 自動 CTSがイネーブルの場合、U0TSR モジュール内のトランスミッタ回路は、次のデータバイトを送信する前に CTS入力をチェックします。 CTSがアクティブ(LOW)のとき、トランスミッタは次のバイトを送信します。 後続のバイトの送信をトランスミッタが停止するには、現在送信されている最後のストップビットの中間より前に CTS を解放する必要があります。 自動 CTS モードでは、CTS割り込みイネーブルビットが設定されていない限り、CTS信号の変化によってモデムステータス割り込みがトリガされることはありません(ただし、U0MSR 内のデルタ CTS ビットは設定されます)。モデムステータス割り込みを生成するための条件を Table 125に示します。

Fig 12. Auto-RTS Functional Timing

start byte N stop start bits0..7 stop start bits0..7 stop

N-1 N N-1 N-1N-2 N-2 M+2 M+1 M M-1

UART1 Rx

RTS1 pin

UART1 RxFIFO level

UART1 RxFIFO read

~ ~~ ~

~ ~~ ~

~ ~

Table 125. Modem status interrupt generation

Enable modem status interrupt (U0ER[3])

CTSen (U0MCR[7])

CTS interrupt enable (U0IER[7])

Delta CTS (U0MSR[0])

Delta DCD or trailing edge RI or Delta DSR (U0MSR[3] or U0MSR[2] or U0MSR[1])

Modem status interrupt

0 x x x x No

1 0 x 0 0 No

1 0 x 1 x Yes

1 0 x x 1 Yes

1 1 0 x 0 No

1 1 0 x 1 Yes

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 114

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

自動 CTS機能は、ホストシステムへの割り込みを減らします。 フロー制御がイネーブルのときは、デバイスが自身のトランスミッタを自動制御するので、CTSの状態変化がホスト割り込みをトリガすることはありません。 自動 CTS がなければ、トランスミッタは送信FIFO 内にあるデータをすべて送信するので、レシーバのオーバーランエラーが発生することがあります。Figure 13に、自動 CTSの機能タイミング例を示します。

最初の文字の送信開始時に CTS信号がアサートされます。 送信は、保留中の送信が完了するとただちに停止します。 UARTは、CTSがデアサート(HIGH)されている限り、1ビットの送信を続行します。 CTS がデアサートされるとただちに送信は再開され、スタートビットが送信されるのに続いて、次の文字のデータビットが送信されます。

9.6.9 UARTラインステータスレジスタ(U0LSR - 0x4000 8014、読み取り専用)U0LSRは、UART TXブロックおよび RXブロックに関するステータス情報を提供する読み取り専用のレジスタです。

1 1 1 0 0 No

1 1 1 1 x Yes

1 1 1 x 1 Yes

Table 125. Modem status interrupt generation(続き)Enable modem status interrupt (U0ER[3])

CTSen (U0MCR[7])

CTS interrupt enable (U0IER[7])

Delta CTS (U0MSR[0])

Delta DCD or trailing edge RI or Delta DSR (U0MSR[3] or U0MSR[2] or U0MSR[1])

Modem status interrupt

Fig 13. Auto-CTS Functional Timing

start bits0..7 start bits0..7 stop start bits0..7 stop

UART1 TX

CTS1 pin

~ ~~ ~

~ ~~ ~

stop

Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit description

Bit Symbol Value Description Reset Value

0 Receiver Data Ready(RDR)

Receiver Data Ready: U0LSR[0] は、U0RBR が未読の文字を保持しているときに設定され、UART RBR FIFO が空のときにクリアされます。

0

0 U0RBRは空です。1 U0RBRには有効なデータが含まれています。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 115

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

1 Overrun Error (OE)

オーバーランエラー状態は、発生するとただちに設定されます。U0LSR の読み取りによって U0LSR[1] はクリアされます。 UARTRSR に新たに組み立てられた文字があり、UART RBR FIFO が満杯の場合に U0LSR[1]が設定されます。 この場合、UART RBR FIFOは上書きされず、UART RSR内の文字が失われます。

0

0 オーバーランエラーステータスが非アクティブです。1 オーバーランエラーステータスがアクティブです。

2 Parity Error (PE)

受信した文字のパリティビットが不正な状態のとき、パリティエラーが発生します。 U0LSRの読み取りによって U0LSR[2]はクリアされます。 パリティエラー検出の時間はU0FCR[0]に依存します。注記 : パリティエラーは、UART RBR FIFO の最上位にある文字と関連付けられます。

0

0 パリティエラーステータスが非アクティブです。1 パリティエラーステータスがアクティブです。

3 Framing Error (FE)

受信した文字のストップビットがロジック 0のとき、フレーミングエラーが発生します。 U0LSRの読み取りによって U0LSR[3]はクリアされます。 フレーミングエラー検出の時間は U0FCR0に依存します。 フレーミングエラーを検出すると、RXはデータとの再同期を試み、不正なストップビットが実際には早期のスタートビットであるとみなします。 しかし、たとえフレーミングエラーがなかったとしても、次に受信するバイトが正しいと仮定することはできません。注記 : フレーミングエラーは、UART RBR FIFO の最上位にある文字と関連付けられます。

0

0 フレーミングエラーステータスが非アクティブです。1 フレーミングエラーステータスがアクティブです。

4 Break Interrupt (BI)

RXD1が 1つの完全な文字送信(スタート、データ、パリティ、ストップ)に関してスペーシング状態(すべて 0)に保持されている場合、ブレーク割り込みが発生します。 ブレーク状態が検出されると、RXD1 がマーキング状態(すべて 1)になるまで、レシーバはアイドル状態となります。 U0LSR の読み取りによってこのステータスビットはクリアされます。 ブレーク検出の時間は U0FCR[0]に依存します。注記 : ブレーク割り込みは、UART RBR FIFO の最上位にある文字と関連付けられます。

0

0 ブレーク割り込みステータスが非アクティブです。1 ブレーク割り込みステータスがアクティブです。

5 Transmitter Holding Register Empty (THRE)

THRE は、空の UART THR が検出されるとただちに設定され、U0THRの書き込みによってクリアされます。

1

0 U0THRには有効なデータが含まれています。1 U0THRは空です。

Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit description (続き)

Bit Symbol Value Description Reset Value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 116

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.10 UARTモデムステータスレジスタ

U0MSR は、モデム入力信号に関するステータス情報を提供する読み取り専用のレジスタです。 U0MSR[3:0]は、U0MSRを読み取った時点でクリアされます。 モデム信号は、UARTの動作に直接は影響しません。 これらは、モデム信号動作のソフトウェア実装を容易に行うためのものです。

6 Transmitter Empty (TEMT)

TEMT は、U0THR と U0TSR の両方が空のときに設定されます。また TEMTは、U0TSRまたは U0THRのいずれかに有効なデータが含まれているときクリアされます。

1

0 U0THRまたは U0TSR、あるいはその両方に有効なデータが含まれています。

1 U0THRと U0TSRは空です。7 Error in RX

FIFO (RXFE)

フレーミングエラー、パリティエラー、ブレーク割り込みなどの RXエラーのある文字が U0RBRにロードされると、U0LSR[7]が設定されます。 U0LSR レジスタが読み取られ、その後 UARTFIFOにエラーがなければ、このビットはクリアされます。

0

0 U0RBRにUART RXエラーが含まれていないか、U0FCR[0]=0です。1 UART RBRに 1つ以上の UART RXエラーが含まれています。

31:8

- - 予約済み -

Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit description (続き)

Bit Symbol Value Description Reset Value

Table 127. UART Modem Status Register (U0MSR - address 0x4000 8018) bit description

Bit Symbol Value Description Reset Value

0 Delta CTS

0 入力 CTS に状態変化があった時点で設定されます。 U0MSR を読み取った時点でクリアされます。

0

モデム入力 CTSに変化が検出されていません。1 モデム入力 CTSに状態変化が検出されました。

1 Delta DSR

0 入力 DSR に状態変化があった時点で設定されます。 U0MSR を読み取った時点でクリアされます。

0

モデム入力 DSRに変化が検出されていません。1 モデム入力 DSRに状態変化が検出されました。

2 Trailing Edge RI

0 入力 RI が LOW から HIGH へ遷移した時点で設定されます。 U0MSRを読み取った時点でクリアされます。

0

モデム入力 RIに変化が検出されていません。1 RIで LOWから HIGHへの遷移が検出されました。

3 Delta DCD

0 入力 DCD に状態変化があった時点で設定されます。 U0MSR を読み取った時点でクリアされます。

0

モデム入力 DCDに変化が検出されていません。1 モデム入力 DCDに状態変化が検出されました。

4 CTS Clear To Send状態。 入力信号CTSの補数。 このビットは、モデムループバックモードで U0MCR[1]に接続されます。

0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 117

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.11 UARTスクラッチパッドレジスタ(U0SCR - 0x4000 801C)U0SCR は、UART の動作にまったく影響しません。 このレジスタは、ユーザーの裁量によって読み書きすることができます。 割り込みインターフェースには、U0SCRの読み取りまたは書き込みが発生したことをホストに示す規定がありません。

9.6.12 UART自動通信速度設定制御レジスタ(U0ACR - 0x4000 8020)UART 自動通信速度設定制御レジスタ(U0ACR)は、着信するクロック / データ速度をボーレート生成のために測定するプロセスを制御します。読み書きはユーザーの裁量で行えます。

5 DSR Data Set Ready 状態。 入力信号 DSR の補数。 このビットは、モデムループバックモードで U0MCR[0]に接続されます。

0

6 RI Ring Indicator 状態。 入力 RI の補数。 このビットは、モデムループバックモードで U0MCR[2]に接続されます。

0

7 DCD Data Carrier Detect 状態。 入力 DCD の補数。 このビットは、モデムループバックモードで U0MCR[3]に接続されます。

0

31:8

- - 予約済み -

Table 127. UART Modem Status Register (U0MSR - address 0x4000 8018) bit description(続き)

Bit Symbol Value Description Reset Value

Table 128. UART Scratch Pad Register (U0SCR - address 0x4000 8014) bit description

Bit Symbol Description Reset Value

7:0 Pad 読み取りおよび書き込みが可能なバイト。 0x00

31:8

- 予約済み -

Table 129. Auto-baud Control Register (U0ACR - address 0x4000 8020) bit description

Bit Symbol Value Description Reset value

0 Start このビットは自動通信速度設定の完了後、自動的にクリアされます。

0

0 自動通信速度設定が停止(自動通信速度設定が実行されません)。

1 自動通信速度設定が開始(自動通信速度設定が実行されます)。 自動通信速度設定実行ビット。 このビットは自動通信速度設定の完了後、自動的にクリアされます。

1 Mode 自動通信速度設定モード選択ビット。 0

0 モード 0。1 モード 1。

2 AutoRestart 0 リスタートせず 0

1 タイムアウトの場合はリスタート(次の UART Rx 立ち下がりエッジでカウンタがリスタートします)

0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 118

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.13 自動通信速度設定UART 自動通信速度設定機能は、「AT」プロトコル(Hayes コマンド)に基づいて着信するボーレートを測定する際に使用できます。 イネーブルにすると、自動通信速度設定機能は受信データストリームのビット時間を測定し、それに応じてディバイザラッチレジスタU0DLMおよび U0DLLを設定します。

自動通信速度設定は、U0ACRスタートビットを設定することによって開始されます。 また自動通信速度設定は、U0ACRスタートビットをクリアすることによって停止します。 自動通信速度設定が完了するとスタートビットはクリアされ、このビットを読み取ると自動通信速度設定のステータス(保留 /完了)が返されます。

自動通信速度設定には、U0ACR モードビットによって選択可能な 2 つの測定モードがあります。 モード 0では、UART Rxピンのその後 2つの立ち下がりエッジ(スタートビットの立ち下がりエッジと最下位ビットの立ち下がりエッジ)でボーレートが測定されます。モード 1では、UART Rxピンの立ち下がりエッジとそれに続く立ち上がりエッジの間(スタートビットの長さ)でボーレートが測定されます。

U0ACR AutoRestartビットを使用することにより、タイムアウトが発生した場合(速度測定カウンタがオーバーフローした場合)に、自動的にボーレート測定をリスタートできます。 このビットを設定すると、UART Rx ピンの次の立ち下がりエッジで速度測定がリスタートします。

自動通信速度設定機能は、以下の 2つの割り込みを生成することができます。

• U0IIR ABTOInt割り込みは、その割り込みがイネーブルの場合(U0IER ABToIntEnが設定され、自動通信速度設定の速度測定カウンタがオーバーフローしたとき)に設定されます。

7:3 - NA 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

0

8 ABEOIntClr 自動通信速度設定割り込み終了クリアビット(書き込み専用でアクセス可能)。

0

0 0を書き込んでも影響はありません。1 1を書き込むと、U0IIR内の対応する割り込みがクリア

されます。9 ABTOIntClr 自動通信速度設定タイムアウト割り込みクリアビット

(書き込み専用でアクセス可能)。0

0 0を書き込んでも影響はありません。1 1を書き込むと、U0IIR内の対応する割り込みがクリア

されます。31:10 - NA 予約済み。ユーザーソフトウェアによって予約ビット

に 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

0

Table 129. Auto-baud Control Register (U0ACR - address 0x4000 8020) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 119

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

• U0IIR ABEOInt 割り込みは、その割り込みがイネーブルの場合(U0IER ABEOIntEn が設定され、自動通信速度設定が正常に完了したとき)に設定されます。

自動通信速度設定割り込みは、対応する U0ACR の ABTOIntClr ビットおよび ABEOIntEnビットを設定することによってクリアする必要があります。

自動通信速度設定中は、フラクショナルボーレートジェネレータをディスエーブルにする必要があります(DIVADDVAL = 0)。 また、自動通信速度設定を使用する場合、U0DLMおよびU0DLLレジスタへの書き込みはU0ACRレジスタの書き込みより前に行わなくてはなりません。 UART がサポートする最小 / 最大ボーレートは、UART_PCLK の機能とデータビット、ストップビット、パリティビットの数によって決まります。

(2)

9.6.14 自動通信速度設定モードソフトウェアが "AT" コマンドを要求している場合、そのソフトウェアは UART を要求する文字フォーマットで構成し、U0ACR スタートビットを設定します。 ディバイザラッチU0DLM 内の初期値と U0DLM は何でもかまいません。 "A" または "a" の ASCII コード("A" = 0x41、"a" = 0x61)では、UART Rx ピンが検知したスタートビットと、要求される文字の LSBは、2つの立ち下がりエッジによって区切られます。 U0ACRスタートビットを設定すると、自動通信速度設定プロトコルは以下のフェーズを実行します。

1. U0ACR スタートビットの設定では、ボーレート測定カウンタがリセットされ、UARTU0RSRもリセットされます。 U0RSRボーレートは最高速度に切り替えられます。

2. UART Rxピンの立ち下がりエッジでスタートビットの開始がトリガされます。 速度測定カウンタが UART_PCLKサイクルのカウントを開始します。

3. スタートビットの受信中、UART入力クロックの周波数で RSRボー入力上に 16パルスが生成されます。それによってスタートビットは確実に U0RSRに格納されます。

4. スタートビット(およびモード = 0の場合は文字 LSB)の受信中、速度カウンタはプリスケールされた UART入力クロック(UART_PCLK)によって増加を続けます。

5. モード = 0 の場合、速度カウンタは UART Rx ピンの次の立ち下がりエッジで停止します。 モード = 1の場合、速度カウンタは UART Rxピンの次の立ち上がりエッジで停止します。

6. 速度カウンタが U0DLM/U0DLL にロードされ、ボーレートが通常動作に切り替えられます。 U0DLM/U0DLL を設定後、自動通信速度設定割り込みの終了 U0IIRABEOIntがイネーブルであれば設定されます。 U0RSRは "A/a"文字の残りのビットの受信を続行します。

ratemin 2 P CLK

16 215------------------------- UARTbaudrate

PCLK16 2 databits paritybits stopbits+ + + ------------------------------------------------------------------------------------------------------------ ratemax= =

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 120

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.15 UART分数分周器レジスタ(U0FDR - 0x4000 8028)UART分数分周器レジスタ(U0FDR)はボーレート生成のためのクロックプリスケーラを制御します。読み書きはユーザーの裁量で行えます。 このプリスケーラは APBクロックを使用し、指定された分数要件に従って出力クロックを生成します。

重要 : 分数分周器がアクティブ(DIVADDVAL > 0)で DLM = 0の場合、DLLレジスタの値は 3以上となります。

a. Mode 0 (start bit and LSB are used for auto-baud)

b. Mode 1 (only start bit is used for auto-baud)

Fig 14. Auto-baud a) mode 0 and b) mode 1 waveform

UARTn RXstart bit LSB of 'A' or 'a'

U0ACR start

rate counter

start bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 parity stop

'A' (0x41) or 'a' (0x61)

16 cycles 16 cycles16xbaud_rate

UARTn RXstart bit LSB of 'A' or 'a'

rate counter

'A' (0x41) or 'a' (0x61)

start bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 parity stop

U1ACR start

16 cycles16xbaud_rate

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 121

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

このレジスタは、ボーレート生成のためのクロックプリスケーラを制御します。 レジスタのリセット値が UARTの分数機能をディスエーブルに保つことで、UARTはこの機能の備わっていない UARTともソフトウェアおよびハードウェアの完全な互換性を確保します。

UARTのボーレートは次式により計算することができます。

(3)

ここで、UART_PCLK はペリフェラルクロック、U0DLM および U0DLL は標準 UART ボーレート分周器レジスタ、DIVADDVALおよび MULVALは UARTフラクショナルボーレートジェネレータ固有のパラメータです。

MULVALと DIVADDVALの値は、以下の条件を満たすものとします。

1. 1 ≦MULVAL ≦ 15

2. 0 ≦ DIVADDVAL≦ 14

3. DIVADDVAL< MULVAL

U0FDR の値は、データの送受信中やデータが失われたか壊れた可能性があるときに変更してはなりません。

U0FDR レジスタの値がこれら 2 つの要件を満たさない場合、分数分周器の出力は未定義となります。 DIVADDVAL が 0 のとき、分数分周器はディスエーブルになり、クロックは分周されません。

Table 130. UART Fractional Divider Register (U0FDR - address 0x4000 8028) bit description

Bit Function Value Description Reset value

3:0 DIVADDVAL 0 ボーレート生成プリスケーラディバイザの値。 このフィールドが 0の場合、フラクショナルボーレートジェネレータは UARTボーレートに影響を与えません。

0

7:4 MULVAL 1 ボーレートプリスケーラ乗算器の値。 UART が正常に動作するには、フラクショナルボーレートジェネレータが使用されているかどうかに関係なく、このフィールドが 1以上である必要があります。

1

31:8 - NA 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

0

UARTbaudratePCLK

16 256 U0DLM U0DLL+ 1 DivAddValMulVal

-----------------------------+

----------------------------------------------------------------------------------------------------------------------------------=

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 122

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.15.1 ボーレートの計算UART は、分数分周器の使用の有無にかかわらず動作します。 実際のアプリケーションでは、数種類の分数分周器設定を使用して望ましいボーレートを達成するのが一般的です。DLM、DLL、MULVAL、DIVADDVALの各値を特定する方法の一例を、以下のアルゴリズムに示します。 ここに示す一連のパラメータは、望ましい値からの相対誤差が 1.1% 未満でボーレートを算出します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 123

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

Fig 15. Algorithm for setting UART dividers

PCLK,BR

Calculating UARTbaudrate (BR)

DL est = PCLK/(16 x BR)

DLest is aninteger?

DIVADDVAL = 0MULVAL = 1

True

FR est = 1.5

DL est = Int(PCLK/(16 x BR x FR est))

1.1 < FR est < 1.9?

Pick another FR est fromthe range [1.1, 1.9]

FRest = PCLK/(16 x BR x DL est)

DIVADDVAL = table(FR est )MULVAL = table(FR est )

DLM = DLest [15:8]DLL = DLest [7:0]

End

False

True

False

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 124

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.15.1.1 例 1: UART_PCLK = 14.7456 MHz、BR = 9600

このアルゴリズムに従えば、DLest = PCLK/(16 x BR) = 14.7456 MHz / (16 x 9600) = 96です。この DLestは整数なので、DIVADDVAL = 0、MULVAL = 1、DLM = 0、DLL = 96です。

9.6.15.1.2 例 2: UART_PCLK = 12 MHz、BR = 115200

このアルゴリズムに従えば、DLest = PCLK/(16 x BR) = 12 MHz / (16 x 115200) = 6.51です。この DLest は整数ではないので、次の手順で FR パラメータを評価します。 初期評価FRest = 1.5 から、新たに DLest = 4 が計算され、FRest は FRest = 1.628 と再計算されます。FRest = 1.628は指定範囲 1.1~ 1.9内にあるため、DIVADDVALおよび MULVALの値は添付の参照テーブルから求めることができます。

参照 Table 131で FRest = 1.628に最も近い値は、FR = 1.625です。 これは DIVADDVAL = 5および MULVAL = 8に相当します。

以上わかったことから、UART の推奨設定値は DLM = 0、DLL = 4、DIVADDVAL = 5、MULVAL = 8となります。Equation 3によると、UARTのボーレートは 115384です。この速度は、当初指定されていた 115200からの相対誤差が 0.16%です。

9.6.16 UART送信イネーブルレジスタ(U0TER - 0x4000 8030)ハードウェアフローの完全制御(前述した自動 CTSおよび自動 RTSメカニズム)に加え、U0TER はソフトウェアフロー制御の実装もイネーブルにします。 TxEn = 1 のとき、UARTトランスミッタはデータがある限り送信を続けます。 TxEnが 0になると、UART送信はただちに停止します。

Table 131. Fractional Divider setting look-up table

FR DivAddVal/MulVal

FR DivAddVal/MulVal

FR DivAddVal/MulVal

FR DivAddVal/MulVal

1.000 0/1 1.250 1/4 1.500 1/2 1.750 3/4

1.067 1/15 1.267 4/15 1.533 8/15 1.769 10/13

1.071 1/14 1.273 3/11 1.538 7/13 1.778 7/9

1.077 1/13 1.286 2/7 1.545 6/11 1.786 11/14

1.083 1/12 1.300 3/10 1.556 5/9 1.800 4/5

1.091 1/11 1.308 4/13 1.571 4/7 1.818 9/11

1.100 1/10 1.333 1/3 1.583 7/12 1.833 5/6

1.111 1/9 1.357 5/14 1.600 3/5 1.846 11/13

1.125 1/8 1.364 4/11 1.615 8/13 1.857 6/7

1.133 2/15 1.375 3/8 1.625 5/8 1.867 13/15

1.143 1/7 1.385 5/13 1.636 7/11 1.875 7/8

1.154 2/13 1.400 2/5 1.643 9/14 1.889 8/9

1.167 1/6 1.417 5/12 1.667 2/3 1.900 9/10

1.182 2/11 1.429 3/7 1.692 9/13 1.909 10/11

1.200 1/5 1.444 4/9 1.700 7/10 1.917 11/12

1.214 3/14 1.455 5/11 1.714 5/7 1.923 12/13

1.222 2/9 1.462 6/13 1.727 8/11 1.929 13/14

1.231 3/13 1.467 7/15 1.733 11/15 1.933 14/15

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 125

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

Table 132はTxEnビットを使用してハードウェアフロー制御を達成する方法を説明していますが、これに配慮した自動フロー制御機能を UART ハードウェアが実装し、TxEn の適用範囲はソフトウェアフロー制御に限定することを強くお勧めします。

Table 132で、TxEnビットを使用してソフトウェアフロー制御を達成する方法を説明しています。

9.6.17 UART RS485制御レジスタ(U0RS485CTRL - 0x4000 804C)U0RS485CTRLレジスタは、RS-485/EIA-485モードの UARTの設定を制御します。

Table 132. UART Transmit Enable Register (U0TER - address 0x4000 8030) bit description

Bit Symbol Description Reset Value

6:0 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

7 TXEN このビットが 1のときは、リセット後と同様、THRに書き込まれたデータがそれ以前の全データが送信された後で TXDピンに出力されます。 文字の送信中にこのビットが 0 にクリアされた場合、その文字の送信は完了しますが、このビットを再度設定するまでそれ以降の文字は送信されません。 つまり、このビットが 0 であれば、THR または TX FIFO から送信シフトレジスタへの文字の転送がブロックされます。 ソフトウェアがこのビットをクリアできるのは、ハードウェアがハンドシェークする TX許可信号(CTS)が falseになったことをソフトウェアが検出したときか、ソフトウェアのハンドシェークで XOFF文字(DC3)を受信したときです。 ソフトウェアは、TX 許可信号が true になったことをソフトウェアが検出するか、XON(DC1)文字を受信すると、このビットを再度設定することができます。

1

31:8 - 予約済み -

Table 133. UART RS485 Control register (U0RS485CTRL - address 0x4000 804C) bit description

Bit Symbol Value Description Reset value

0 NMMEN 0 RS-485/EIA-485 通常マルチドロップモード(NMM)がディスエーブルになります。

0

1 RS-485/EIA-485 通常マルチドロップモード(NMM)がイネーブルになります。 このモードでは、受信したバイトが原因で UART がパリティエラーを設定し割り込みを生成したときにアドレスが検出されます。

1 RXDIS 0 レシーバはイネーブルです。 0

1 レシーバはディスエーブルです。2 AADEN 0 自動アドレス検出(AAD)がディスエーブルです。 0

1 自動アドレス検出(AAD)がイネーブルです。3 SEL 0 方向制御がイネーブル(ビット DCTRL = 1)の場

合、ピン RTSが方向制御に使用されます。0

1 方向制御がイネーブル(ビット DCTRL = 1)の場合、ピン DTRが方向制御に使用されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 126

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.18 UART RS-485アドレスマッチレジスタ(U0RS485ADRMATCH - 0x4000 8050)U0RS485ADRMATCH レジスタには、RS-485/EIA-485 モードのアドレスマッチ値が含まれます。

9.6.19 UART1 RS-485遅延値レジスタ(U0RS485DLY - 0x4000 8054)ユーザーは 8ビットの RS485DLYレジスタを、TXFIFOから出る最後のストップビットから RTS(または DTR)のデアサートまでの間に遅延を付けてプログラムすることができます。 この遅延時間はボークロックの時間内です。 遅延時間は 0~ 255ビット時間の範囲でプログラムできます。

4 DCTRL 0 自動方向制御をディスエーブルにします。 0

1 自動方向制御をイネーブルにします。5 OINV このビットは、RTS(または DTR)ピン上の方向

制御信号の極性を反転させます。0

0 送信するデータがトランスミッタにあるとき、方向制御ピンがロジック ’0’に駆動されます。 データの最後のビットが送信された後、このピンはロジック ’1’に駆動されます。

1 送信するデータがトランスミッタにあるとき、方向制御ピンがロジック ’1’に駆動されます。 データの最後のビットが送信された後、このピンはロジック ’0’に駆動されます。

31:6 - - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

Table 133. UART RS485 Control register (U0RS485CTRL - address 0x4000 804C) bit description (続き)

Bit Symbol Value Description Reset value

Table 134. UART RS-485 Address Match register (U0RS485ADRMATCH - address 0x4000 8050) bit description

Bit Symbol Description Reset value

7:0 ADRMATCH アドレスマッチ値が含まれています。 0x00

31:8 - 予約済み -

Table 135. UART RS-485 Delay value register (U0RS485DLY - address 0x4000 8054) bit description

Bit Symbol Description Reset value

7:0 DLY 方向制御(RTS または DTR)遅延値が含まれています。 このレジスタは 8ビットカウンタとともに動作します。

0x00

31:8 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 127

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

9.6.20 RS-485/EIA-485の動作モードRS-485/EIA-485機能により、UARTをアドレス指定可能なスレーブとして設定することができます。 アドレス指定可能なスレーブは、1 つのマスタによって制御される複数のスレーブのうちの 1つです。

UARTマスタトランスミッタは、パリティ(9番目の)ビットを ’1’に設定することによってアドレス文字を識別します。 データ文字については、パリティビットは ’0’に設定されます。

各 UARTスレーブレシーバには、固有のアドレスを割り当てることができます。 スレーブは、自身のものでないアドレスに続くデータを手動または自動で拒否するようにプログラムできます。

RS-485/EIA-485通常マルチドロップモード(NMM)RS485CTRLビットを 0に設定すると、このモードがイネーブルになります。 このモードでは、受信したバイトが原因で UARTがパリティエラーを設定し割り込みを生成したときにアドレスが検出されます。

レシーバがディスエーブルの場合(RS485CTRLビット 1 = ’1’)、受信したデータバイトはすべて無視され、RXFIFOには格納されません。 アドレスバイトが検出されると(パリティビット = ’1’)、そのバイトは RXFIFOに格納され、Rxデータレディ割り込みが生成されます。 プロセッサは次にアドレスバイトを読み取り、それ以降のデータをレシーバが受け入れるようにするかどうかを決定します。

レシーバがイネーブルの間(RS485CTRL ビット 1 =’0’)、受信したバイトはそれらがデータかアドレスかに関係なく、すべて受け入れられて RXFIFOに格納されます。 アドレス文字を受信すると、パリティエラー割り込みが生成され、プロセッサはレシーバをディスエーブルにするかどうかを決定できます。

RS-485/EIA-485自動アドレス検出(AAD)モードRS485CTRLレジスタのビット 0(9ビットモードイネーブル)とビット 2(AADモードイネーブル)の両方を設定している場合、UARTは自動アドレス検出モードです。

このモードでは、レシーバは受信した任意のアドレスバイト(パリティ = ’1’)をRS485ADRMATCHレジスタにプログラムされた 8ビット値と比較します。

レシーバがディスエーブルの場合(RS485CTRLビット 1 = ’1’)、受信したバイトがデータバイトかアドレスバイトのいずれかで、かつ RS485ADRMATCH 値とマッチしなければ、そのバイトは破棄されます。

マッチするアドレス文字が検出されると、その文字はパリティビットとともに RXFIFOにプッシュされ、レシーバは自動的にイネーブルになります(RS485CTRL ビット 1 はハードウェアによってクリアされます)。 また、レシーバは Rxデータレディ割り込みを生成します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 128

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

レシーバがイネーブルの間(RS485CTRLビット 1 = ’0’)、受信したバイトは受け入れられ、RS485ADRMATCH値にマッチしないアドレスバイトを受信するまで RXFIFOに格納されます。 この状態が起きると、レシーバは自動的にハードウェア内でディスエーブルとなり(RS485CTRLビット 1が設定されます)、受信したマッチしないアドレス文字は RXFIFOに格納されません。

RS-485/EIA-485自動方向制御RS485/EIA-485モードには、方向制御出力信号として DIRピンの状態をトランスミッタが自動制御するようにできるオプションが含まれています。

RS485CTRLビット 4 = ’1’と設定すると、この機能がイネーブルになります。

方向制御がイネーブルの場合、RS485CTRLビット 3 = ’0’であれば RTSピンが使用されます。 RS485CTRLビット 3 = ’1’であれば DTRピンを使用します。

自動方向制御がイネーブルの場合、選択されたピンは CPUが TXFIFOにデータを書き込むとアサート(LOW に駆動)されます。 データの最後のビットが送信されると、ピンはデアサート(HIGHに駆動)されます。 RS485CTRLレジスタのビット4と5を確認してください。

RS485CTRL ビット 4 は、ループバックモードは例外として、方向制御ピンを制御する他のどのメカニズムよりも優先されます。

RS485/EIA-485ドライバ遅延時間ドライバ遅延時間とは、最後のストップビットが TXFIFOを出てから RTSがデアサートされるまでの遅延時間のことです。 この遅延時間は、8ビット RS485DLYレジスタでプログラムできます。 この遅延時間はボークロックの時間内です。 0~ 255ビット時間の遅延時間を使用できます。

RS485/EIA-485の出力反転RTS(または DTR)ピンの方向制御信号の極性は、U0RS485CTRL レジスタのビット 5 をプログラムすることによって反転できます。 このビットを設定すると、送信を待機しているデータがトランスミッタにあるとき、方向制御ピンがロジック 1に駆動されます。 データの最後のビットが送信されると、方向制御ピンはロジック 0に駆動されます。

9.7 アーキテクチャ

UARTのアーキテクチャを以下のブロック図に示します。

APBインターフェースは、CPUまたはホストと UARTの間に通信リンクを提供します。

UARTレシーバブロック U0RXは、シリアル入力ライン RXDを監視して入力が有効であるかを確かめます。 UART RXシフトレジスタ(U0RSR)は、RXDを介して有効な文字を受け入れます。 有効な文字は、U0RSR で組み立てられた後、UART RX バッファレジスタ FIFOへ渡され、CPU またはホストが汎用ホストインターフェースを介してアクセスしてくるのを待ちます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 129

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

UARTトランスミッタブロック U0TXは、CPUまたはホストによって書き込まれたデータを受け入れ、UART TX 保持レジスタ FIFO(U0THR)にそのデータをバッファリングします。 UART TXシフトレジスタ(U0TSR)は、U0THRに格納されたデータを読み取り、シリアル出力ピン TXD1を介して送信するためにデータを組み立てます。

UART ボーレートジェネレータブロック U0BRG は、UART TX ブロックが使用するタイミングイネーブルを生成します。 U0BRGのクロック入力ソースは UART_PCLKです。 メインクロックは、U0DLLおよび U0DLMレジスタで指定されたディバイザによって分周されます。 この分周されたクロックは、16倍オーバーサンプルクロックの NBAUDOUTです。

割り込みインターフェースには、レジスタ U0IERおよび U0IIRが含まれています。 割り込みインターフェースは、U0TXおよび U0RXブロックから 1クロック幅のイネーブルをいくつか受信します。

U0TXおよびU0RXからのステータス情報はU0LSRに格納されます。 U0TXおよびU0RXの制御情報は U0LCRに格納されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 130

NXP Semiconductors UM10398第 9章:LPC111x/LPC11Cx汎用非同期送受信回路(UART)

参考資料

Fig 16. UART block diagram

APBINTERFACE

U0LCR

U0RX

DDIS

U0LSR

U0FCR

U0BRG

U0TX

INTERRUPT

PA[2:0]

PSEL

PSTB

PWRITE

PD[7:0]

AR

MR

PCLK

U0INTR

U0SCR

NTXRDY

TXD

NBAUDOUT

RCLK

NRXRDY

RXDU0RBR U0RSR

U0DLM

U0DLL

U0THR U0TSR

U0IIR

U0IER

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 131

参考資料

10.1 この章を読む前に

I2Cバスブロックは、LPC111xと LPC11C1xのすべての部品で同一です。

10.2 基本構成

I2Cバスインターフェースは、以下のレジスタを使用して設定します。

1. ピン : I2Cのピン機能と I2Cのモードは、IOCONFIGレジスタブロックで設定します(Section 6.4.1、Table 62、Table 63)。

2. 電力とペリフェラルクロック : SYSAHBCLKCTRLレジスタで、ビット 5(Table 19)を設定します。

3. リセット : I2C ブロックにアクセスする前に、PRESETCTRL レジスタ(Table 7)のI2C_RST_N ビット(ビット 1)が 1 に設定されているかを確認します。これにより、リセット信号が I2Cブロックにデアサートされます。

10.3 特長

• 標準 I2C準拠バスインターフェースを、マスタ、スレーブ、またはマスタ /スレーブとして設定できます。

• 同時送信するマスタの間では、バス上のシリアルデータを壊さずにアービトレーションを処理します。

• プログラマブルクロックにより、I2C転送速度を調整できます。

• マスタとスレーブ間のデータ転送は双方向です。• シリアルクロックの同期化により、ビットレートの異なるデバイス同士が 1つのシリアルバスを介して通信できます。

• シリアルクロックの同期化をハンドシェークメカニズムとして使用し、シリアル転送の一時停止や再開を行います。

• Fastモードプラスに対応。

• 異なるスレーブアドレスを 4つまでオプションで認識。

• モニターモードでは、スレーブアドレスに関係なくすべての I2Cバストラフィックを監視できます。

• I2Cバスは、テストや診断用に使用できます。

• I2Cバスは、標準 I2C準拠バスインターフェースと 2つのピンで構成されています。

UM10398第 10章:LPC111x/LPC11C1x I2CバスインターフェースRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 132

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.4 用途

シリアル RAM、LCD、トーンジェネレータ、他のマイクロコントローラなど、外部 I2C標準部品とのインターフェース。

10.5 概説

一般的な I2C バス構成を Figure 17 に示します。 方向ビットの状態(R/W)に応じて、I2Cバスでは 2種類のデータ転送が可能です。

• マスタトランスミッタからスレーブレシーバへのデータ転送。マスタが最初に送信するバイトはスレーブアドレスです。 それに続き、多数のデータバイトが送られます。スレーブは、1バイト受信するごとに ACK(肯定応答)ビットを返します。

• スレーブトランスミッタからマスタレシーバへのデータ転送。 最初のバイト(スレーブアドレス)がマスタによって送信されます。 次にスレーブが ACK ビットを返します。 それに続き、スレーブからマスタへデータバイトが送信されます。 マスタは、最後のバイトを除く全バイトを受信した後で、ACKビットを返します。 最後の受信バイトの完了時に「NOT ACK(否定応答)」が返されます。 マスタデバイスは、すべてのシリアルクロックパルスと、START状態および STOP状態を生成します。 STOP状態または Repeated START状態によって転送は終了します。 Repeated START状態は次のシリアル転送の開始でもあるので、I2Cバスは解放されません。

I2Cインターフェースはバイト指向であり、4つの動作モード(マスタトランスミッタモード、マスタレシーバモード、スレーブトランスミッタモード、スレーブレシーバモード)があります。

I2C インターフェースは I2C の全規格に準拠し、同じ I2C バス上の他のデバイスに干渉することなく、ARM Cortex-M0への電源をオフにすることができます。

Fig 17. I2C-bus configuration

OTHER DEVICE WITHI 2C INTERFACE

pull-upresistor

OTHER DEVICE WITHI 2C INTERFACE

LPC???

SDA SCL

I 2C bus

SCL

SDA

pull-upresistor

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 133

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.5.1 I2C FastモードプラスFast モードプラスは、NXP Semiconductors が現在提供している I2C バス製品と通信するための転送速度 1 Mbit/secを実現します。

10.6 ピンの説明

I2C バスピンは、標準モード /Fast モードまたは Fast モードプラス用に、IOCON_PIO0_4(Table 62)および IOCON_PIO0_5(Table 63)レジスタによって設定する必要があります。

Fast モードプラスでは、400 kHz から 1 MHzまでの速度を選択できます。 I2C バスピンはオープンドレイン出力であり、I2Cバス規格と完全な互換性があります。

10.7 クロックと電力の制御

I2Cバスインターフェースへのクロック(PCLK_I2C)は、システムクロックによって提供されます(Figure 3 を参照)。 このクロックは、節電のために、AHBCLKCTRL レジスタ(Table 19)のビット 5によってディスエーブルにすることができます。

注意 : I2C ブロックにアクセスする前に、PRESETCTRL レジスタ(Table 7)の I2C_RST_Nビット(ビット 1)が 1に設定されているかを確認します。これにより、リセット信号がI2Cブロックにデアサートされます。

10.8 レジスタの説明

Table 136. I2C-bus pin description

Pin Type Description

SDA Input/Output I2CシリアルデータSCL Input/Output I2Cシリアルクロック

Table 137. Register overview: I2C (base address 0x4000 0000)

Name Access Address offset

Description Reset value[1]

I2C0CONSET R/W 0x000 I2C制御設定レジスタ。このレジスタのビットに 1を書き込むと、I2C制御レジスタ内の対応するビットが設定されます。 0 を書き込んだ場合は、I2C制御レジスタ内の対応するビットに何も影響を与えません。

0x00

I2C0STAT RO 0x004 I2Cステータスレジスタ。I2Cの動作中、このレジスタは、次に必要なアクションをソフトウェアが判断するための詳細ステータスコードを提供します。

0xF8

I2C0DAT R/W 0x008 I2Cデータレジスタ。マスタまたはスレーブ送信モードの間、送信されるデータはこのレジスタに書き込まれます。 マスタまたはスレーブ受信モードの間、受信したデータはこのレジスタから読み取ることができます。

0x00

I2C0ADR0 R/W 0x00C I2C スレーブアドレスレジスタ 0。I2C インターフェースがスレーブモードで動作するための 7 ビットスレーブアドレスが含まれます。これはマスタモードでは使用されません。 最下位ビットは、スレーブがゼネラルコールアドレスに応答するかどうかを決定します。

0x00

I2C0SCLH R/W 0x010 SCH デューティサイクルレジスタ HIGH ハーフワード。I2C クロックのHIGH時間を決定します。

0x04

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 134

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.8.1 I2C制御設定レジスタ(I2C0CONSET - 0x4000 0000)I2CONSETレジスタは、I2Cインターフェースの動作を制御する I2CONレジスタ内のビットの設定を制御します。 このレジスタのビットに 1 を書き込むと、I2C 制御レジスタ内の対応するビットが設定されます。 0を書き込んでも影響はありません。

I2C0SCLL R/W 0x014 SCL デューティサイクルレジスタ LOW ハーフワード。I2C クロックのLOW時間を決定します。 I2nSCLLと I2nSCLHはともに、I2Cマスタが生成するクロック周波数と、スレーブモードで使用される特定の時間を決定します。

0x04

I2C0CONCLR WO 0x018 I2C 制御クリアレジスタ。このレジスタのビットに 1 を書き込むと、I2C制御レジスタ内の対応するビットがクリアされます。 0を書き込んだ場合は、I2C制御レジスタ内の対応するビットに何も影響を与えません。

NA

I2C0MMCTRL R/W 0x01C モニターモード制御レジスタ。 0x00

I2C0ADR1 R/W 0x020 I2C スレーブアドレスレジスタ 1。I2C インターフェースがスレーブモードで動作するための 7 ビットスレーブアドレスが含まれます。これはマスタモードでは使用されません。 最下位ビットは、スレーブがゼネラルコールアドレスに応答するかどうかを決定します。

0x00

I2C0ADR2 R/W 0x024 I2C スレーブアドレスレジスタ 2。I2C インターフェースがスレーブモードで動作するための 7 ビットスレーブアドレスが含まれます。これはマスタモードでは使用されません。 最下位ビットは、スレーブがゼネラルコールアドレスに応答するかどうかを決定します。

0x00

I2C0ADR3 R/W 0x028 I2C スレーブアドレスレジスタ 3。I2C インターフェースがスレーブモードで動作するための 7 ビットスレーブアドレスが含まれます。これはマスタモードでは使用されません。 最下位ビットは、スレーブがゼネラルコールアドレスに応答するかどうかを決定します。

0x00

I2C0DATA_ BUFFER

RO 0x02C データバッファレジスタ。バスが 9 ビット(8 ビットのデータと ACK または NACK)を受信するたびに、I2DATシフトレジスタ内の 8 MSBの内容が DATA_BUFFERへ自動転送されます。

0x00

I2C0MASK0 R/W 0x030 I2C スレーブアドレスマスクレジスタ 0。 このマスクレジスタは I2ADR0と関連付けられて、アドレスマッチを判定します。 マスクレジスタは、ゼネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

I2C0MASK1 R/W 0x034 I2C スレーブアドレスマスクレジスタ 1。 このマスクレジスタは I2ADR0と関連付けられて、アドレスマッチを判定します。 マスクレジスタは、ゼネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

I2C0MASK2 R/W 0x038 I2C スレーブアドレスマスクレジスタ 2。 このマスクレジスタは I2ADR0と関連付けられて、アドレスマッチを判定します。 マスクレジスタは、ゼネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

I2C0MASK3 R/W 0x03C I2C スレーブアドレスマスクレジスタ 3。 このマスクレジスタは I2ADR0と関連付けられて、アドレスマッチを判定します。 マスクレジスタは、ゼネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

Table 137. Register overview: I2C (base address 0x4000 0000) (続き)Name Access Address

offsetDescription Reset

value[1]

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 135

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

I2EN I2Cインターフェースイネーブル。 I2ENが 1のとき、I2Cインターフェースはイネーブルになります。 I2CONCLRレジスタ内の I2ENCビットに 1を書き込むことにより、I2ENをクリアできます。 I2ENが 0のとき、I2Cインターフェースはディスエーブルになります。

I2ENが「0」のとき、SDAと SCLの入力信号は無視され、I2Cブロックは「アドレス指定されていない」スレーブ状態となり、STOビットは強制的に「0」になります。

I2EN は、I2C バスを一時的に解放するためには使用しないでください。I2EN をリセットすると、I2C バスのステータスが失われるためです。 代わりに AA フラグを使用してください。

STAは STARTフラグです。 このビットを設定すると、I2Cインターフェースはマスタモードとなり、START状態を送信します。すでにマスタモードになっている場合は、RepeatedSTART状態を送信します。

STAが 1で I2Cインターフェースがまだマスタモードになっていない場合は、マスタモードに切り替わり、バスをチェックして、バスが解放されていれば START 状態を生成します。 バスが解放されていない場合は、(バスを解放する)STOP状態を待ち、内部クロックジェネレータの半クロック周期の遅延後に START状態を生成します。 I2Cインターフェースがすでにマスタモードに切り替わっており、データの送信または受信が済んでいる場合は、Repeated START 状態を送信します。 I2C インターフェースがアドレス指定されたスレーブモードであるときを含め、STAはいつでも設定できます。

I2CONCLRレジスタ内の STACビットに 1を書き込むことにより、STAをクリアできます。STAが 0のとき、START状態や Repeated START状態は生成されません。

STAと STOの両方が設定されている場合で、インターフェースがマスタモードのときは、I2Cバス上で STOP状態が送信された後、START状態が送信されます。 I2Cインターフェースがスレーブモードのときは、内部 STOP状態が生成されますが、バス上では送信されません。

STOは STOPフラグです。 このビットを設定すると、I2Cインターフェースはマスタモードで STOP状態を送信するか、スレーブモードでエラー状態から回復します。 マスタモードで STOが 1のとき、STOP状態が I2Cバス上で送信されます。バスが STOP状態を検出すると、STOは自動的にクリアされます。

Table 138. I2C Control Set register (I2C0CONSET - address 0x4000 0000) bit description

Bit Symbol Description Reset value

1:0 - 予約済み。 ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

2 AA アサート ACKフラグ。 3 SI I2C割り込みフラグ。 0

4 STO STOPフラグ。 0

5 STA STARTフラグ。 0

6 I2EN I2C割り込みイネーブル。 0

31:7 - 予約済み。 予約ビットから読み取った値は未定義です。 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 136

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

スレーブモードでは、このビットを設定するとエラー状態から回復することができます。この場合、STOP 状態はバスに送信されません。ハードウェアは STOP 状態を受信したかのように動作し、「アドレス指定されていない」スレーブレシーバモードに切り替わります。 STOフラグは、ハードウェアによって自動的にクリアされます。

SIは I2C割り込みフラグです。 このビットは、I2Cの状態が変化したときに設定されます。ただし、状態 F8に切り替わっても SIは設定されません。その場合は、割り込みサービスルーチンに行うべきことがないからです。

SIの設定中は、SCLライン上のシリアルクロックの LOW時間が延び、シリアル転送が一時停止されます。 SCL が HIGH のときは、SI フラグの状態による影響を受けません。 SI はソフトウェアによってリセットする必要があります。I2CONCLRレジスタ内の SICビットに 1を書き込んでください。

AAはアサート ACKフラグです。 1に設定すると、以下の状況のとき、SCLラインの ACKクロックパルスの間に肯定応答(SDAに対して LOWレベル)が返されます。

1. スレーブアドレスレジスタ内のアドレスを受信した。

2. I2ADR 内のゼネラルコールビット(GC)が設定されている間に、ゼネラルコールアドレスを受信した。

3. I2Cがマスタレシーバモードのときに、データバイトを受信した。

4. I2Cがアドレス指定されたスレーブレシーバモードのときに、データバイトを受信した。

I2CONCLRレジスタ内の AACビットに 1を書き込むことにより、AAビットをクリアできます。 AA が 0 であれば、以下の状況のとき、SCL ラインの ACK クロックパルスの間にNOT ACK(SDAに対して HIGHレベル)が返されます。

1. I2Cがマスタレシーバモードのときに、データバイトを受信した。

2. I2Cがアドレス指定されたスレーブレシーバモードのときに、データバイトを受信した。

10.8.2 I2Cステータスレジスタ(I2C0STAT - 0x4000 0004)各 I2Cステータスレジスタは、対応する I2Cインターフェースの状態を反映します。 I2Cステータスレジスタは読み取り専用です。

Table 139. I2C Status register (I2C0STAT - 0x4000 0004) bit description

Bit Symbol Description Reset value

2:0 - これらのビットは未使用で、常に 0です。 0

7:3 Status これらのビットは、I2Cインターフェースに関する実際のステータス情報を提供します。

0x1F

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 137

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

下位 3 ビットは常に 0 です。1 バイトとして考えると、ステータスレジスタの内容はステータスコードを表します。 可能なステータスコードは 26 あります。 ステータスコードが 0xF8 のとき、利用できる関連情報はなく、SI ビットは設定されません。 他の 25 のステータスコードはすべて、I2C の定義済み状態に対応します。 これらの状態のいずれかになると、SIが設定されます。 全ステータスコードの一覧は、Table 154から Table 159までの表を参照してください。

10.8.3 I2Cデータレジスタ(I2C0DAT - 0x4000 0008)このレジスタには、これから送信されるデータや受信したばかりのデータが含まれています。 SI ビットが設定されているとき、CPU はバイトのシフトプロセス中でないときに限り、このレジスタに読み書きできます。 I2DAT内のデータは、SIビットが設定されている限り安定状態に保たれます。 I2DAT内のデータは、常に右から左へとシフトします。最初に送信されるビットはMSB(ビット 7)であり、1バイトを受信した後、受信データの最初のビットが I2DATのMSBに配置されます。

10.8.4 I2Cスレーブアドレスレジスタ 0(I2C0ADR0- 0x4000 000C)このレジスタは読み書きが可能で、I2Cインターフェースがスレーブモードに設定されているときに限り使用できます。 マスタモードでは、このレジスタは影響を及ぼしません。I2ADRの LSBはゼネラルコールビットです。 このビットを設定すると、ゼネラルコールアドレス(0x00)が認識されます。

これらのレジスタのうちのビット 00x を含むものはディスエーブルとなり、バス上のどのアドレスともマッチしません。リセットするとスレーブアドレスレジスタはこのディスエーブル状態にクリアされます。 Table 147も参照してください。

10.8.5 I2C SCL HIGHおよび LOWデューティサイクルレジスタ(I2C0SCLH - 0x4000 0010および I2C0SCLL- 0x4000 0014)

Table 140. I2C Data register (I2C0DAT - 0x4000 0008) bit description

Bit Symbol Description Reset value

7:0 Data このレジスタには、受信したデータ値やこれから送信されるデータ値が保持されています。

0

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 -

Table 141. I2C Slave Address register 0 (I2C0ADR0- 0x4000 000C) bit description

Bit Symbol Description Reset value

0 GC ゼネラルコールイネーブルビット。 0

7:1 Address スレーブモードの I2Cデバイスアドレス。 0x00

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 -

Table 142. I2C SCL HIGH Duty Cycle register (I2C0SCLH - address 0x4000 0010) bit description

Bit Symbol Description Reset value

15:0 SCLH SCL HIGH時間選択のカウント。 0x0004

31:16 - 予約済み。 予約ビットから読み取った値は未定義です。 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 138

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.8.5.1 適切な I2Cデータ速度およびデューティサイクルの選択ソフトウェアは、適切なデータ速度とデューティサイクルを選択するために、レジスタI2SCLHおよびI2SCLLの値を設定する必要があります。 I2SCLHはSCL HIGH時間のI2C_PCLKサイクル数を定義し、I2SCLLは SCL LOW時間の I2C_PCLKサイクル数を定義します。 周波数は次式により定義されます(I2C_PCLKはペリフェラル I2Cクロックの周波数です)。

(4)

I2SCLLおよび I2SCLHの値については、データ速度が適切な I2Cデータ速度範囲内であるかを確認する必要があります。 各レジスタ値は 4 以上でなければなりません。I2C_PCLK周波数と I2SCLL値および I2SCLH値に基づく I2Cバス速度のいくつかの例を Table 144に示します。

I2SCLLと I2SCLHの値は、必ずしも同じでなくてもかまいません。 ソフトウェアは、これら 2 つのレジスタを設定することにより、異なるデューティサイクルを SCL に設定できます。 たとえば、I2Cバス規格は、Fastモードおよび Fastモードプラス I2Cの異なる値について、SCL LOW時間と HIGH時間を定義できます。

10.8.6 I2C制御クリアレジスタ(I2C0CONCLR - 0x4000 0018)I2CONCLRレジスタは、I2Cインターフェースの動作を制御する I2CONレジスタ内のビットのクリアを制御します。 このレジスタのビットに 1 を書き込むと、I2C 制御レジスタ内の対応するビットがクリアされます。 0を書き込んでも影響はありません。

Table 143. I2C SCL Low duty cycle register (I2C0SCLL - 0x4000 0014) bit description

Bit Symbol Description Reset value

15:0 SCLL SCL LOW時間選択のカウント。 0x0004

31:16 - 予約済み。 予約ビットから読み取った値は未定義です。 -

Table 144. I2SCLL + I2SCLH values for selected I2C clock values

I2C mode I2C bit frequency

I2C_PCLK (MHz)

6 8 10 12 16 20 30 40 50

I2SCLH + I2SCLL

Standard mode 100 kHz 60 80 100 120 160 200 300 400 500

Fast-mode 400 kHz 15 20 25 30 40 50 75 100 125

Fast-mode Plus 1 MHz - 8 10 12 16 20 30 40 50

I2CbitfrequencyI2CPCLK

I2CSCLH I2CSCLL+---------------------------------------------------------=

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 139

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

AACはアサートACKクリアビットです。 このビットに1を書き込むことにより、I2CONSETレジスタ内の AAビットがクリアされます。 0を書き込んでも影響はありません。

SICは I2C割り込みクリアビットです。 このビットに 1を書き込むことにより、I2CONSETレジスタ内の SIビットがクリアされます。 0を書き込んでも影響はありません。

STACはSTARTフラグクリアビットです。 このビットに1を書き込むことにより、I2CONSETレジスタ内の STAビットがクリアされます。 0を書き込んでも影響はありません。

I2ENCは I2Cインターフェースディスエーブルビットです。 このビットに 1を書き込むことにより、I2CONSETレジスタ内の I2ENビットがクリアされます。 0を書き込んでも影響はありません。

10.8.7 I2Cモニターモード制御レジスタ(I2C0MMCTRL - 0x4000 001C)このレジスタは、I2C モジュールが実際にトラフィックに加わったり、I2C バスに干渉することなく、I2Cバス上のトラフィックを監視できるモニターモードを制御します。

Table 145. I2C Control Clear register (I2C0CONCLR - 0x4000 0018) bit description

Bit Symbol Description Reset value

1:0 - 予約済み。 ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

2 AAC アサート ACKクリアビット。3 SIC I2C割り込みクリアビット。 0

4 - 予約済み。 ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

5 STAC STARTフラグクリアビット。 0

6 I2ENC I2C割り込みディスエーブルビット。 0

7 - 予約済み。 ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 -

Table 146. I2C Monitor mode control register (I2C0MMCTRL - 0x4000 001C) bit description

Bit Symbol Value Description Reset value

0 MM_ENA モニターモードイネーブル。 0

0 モニターモードがディスエーブルです。1 I2C モジュールはモニターモードになります。 このモードで

は、SDA出力が強制的に HIGHになります。 これにより、I2Cモジュールが ACK を含むあらゆる種類のデータを I2C データバスに出力することが妨げられます。ENA_SCL ビットの状態に応じて、出力を強制的に HIGH にすれば、モジュールが I2Cクロックラインを制御することが妨げられます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 140

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

[1] ENA_SCLビットがクリアされ、I2Cがバスを停止できなくなると、割り込み応答時間が重要になります。 このような条件下で I2C割り込みに部品が応答するための時間を長くするには、DATA _BUFFERレジスタを使用して(Section 10.8.9)、9ビットワードの全送信時間の間、受信したデータを保持します。

注意 : ENA_SCL ビットと MATCH_ALL ビットは、MM_ENA が「0」の場合(すなわちモジュールがモニターモードではない場合)には影響を与えません。

10.8.7.1 モニターモードでの割り込みモジュールがモニターモードのとき、すべての割り込みは正常なこととして発生します。つまり、最初の割り込みはアドレスマッチが検出されたときに(MATCH_ALLビットが設定されている場合は受信したアドレスすべて、設定されていない場合は 4 つのアドレスレジスタのうちの 1つにマッチするアドレス)発生します。

アドレスマッチ検出に続き、スレーブ書き込み転送のために各データバイトを受信した後、またはスレーブ読み取り転送のために各バイトを送信したとモジュールが「思った」後で、割り込みが生成されます。 後者の場合、実際はマスタによってアドレス指定されたバス上の他のスレーブによって送信されたデータが、実際のデータレジスタに入っています。

このようなすべての割り込みの後で、プロセッサはデータレジスタを読み取り、バス上で実際に送信されたものが何であるかを確認することができます。

1 ENA_SCL SCL出力イネーブル。 0

0 このビットが「0」にクリアされると、モジュールがモニターモードのときに SCL出力が強制的に HIGHになります。前述したように、これによってモジュールが I2Cクロックラインを制御することが妨げられます。

1 このビットを設定すると、I2Cモジュールは通常動作で行ったであろう制御と同じ制御をクロックライン上で行うことができます。 つまり、I2C モジュールは、スレーブペリフェラルとして動作しながら、I2C割り込みに応答する時間ができるまで、クロックライン(LOW に保持)を「延ばす」ことができます。[1]

2 MATCH_ALL 割り込みレジスタマッチの選択。 0

0 このビットをクリアすると、前述した最大 4 つのアドレスレジスタの 1 つにマッチが発生したときに限り、割り込みが生成されます。 つまり、アドレス認識に関する限り、モジュールは通常のスレーブとして応答します。

1 このビットが「1」に設定され、I2C がモニターモードのとき、受信したどのアドレスでも割り込みが生成されます。 これにより、バス上のすべてのトラフィックを監視する部品がイネーブルになります。

31:3 - - 予約済み。 予約ビットから読み取った値は未定義です。

Table 146. I2C Monitor mode control register (I2C0MMCTRL - 0x4000 001C) bit description(続き)

Bit Symbol Value Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 141

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.8.7.2 モニターモードでのアービトレーションロストモニターモードでは、I2C モジュールはバスマスタによる情報の要求に応答したり、ACKを発行することができません。 代わりに、バス上の他のスレーブのいくつかが応答します。 当社のモジュールに関する限り、これによってほとんどの場合、アービトレーションロスト状態が発生します。

ソフトウェアは、モジュールがモニターモードであることを認識する必要があり、検出されたアービトレーションロスト状態に対応してはなりません。 さらに、このような状態によって、必要な割り込みが発生するのが妨げられたり、不要な割り込みが発生してしまう場合、一部またはすべてのアービトレーションロスト状態が発生するのを阻止するために、ハードウェアをモジュールに組み込んで設計することができます。 このようなハードウェアを追加するかどうかを決める必要もあります。

10.8.8 I2Cスレーブアドレスレジスタ(I2C0ADR[1, 2, 3] - 0x4000 00[20, 24, 28])これらのレジスタは読み書きが可能で、I2Cインターフェースがスレーブモードに設定されているときに限り使用できます。 マスタモードでは、このレジスタは影響を及ぼしません。 I2ADRの LSBはゼネラルコールビットです。 このビットを設定すると、ゼネラルコールアドレス(0x00)が認識されます。

これらのレジスタのうちのビット 00x を含むものはディスエーブルとなり、バス上のどのアドレスとも一致しません。リセットすると 4 つのレジスタすべてがこのディスエーブル状態にクリアされます。

10.8.9 I2Cデータバッファレジスタ(I2C0DATA_BUFFER - 0x4000 002C)モニターモードでは、ENA_SCLビットを設定していない場合に、I2Cモジュールがクロックを延長する(バスを停止する)機能を失う可能性があります。 これは、バス上で受信したデータの内容をプロセッサが読み取る時間が限られていることを意味します。プロセッサが通常どおりに I2DAT シフトレジスタを読み取る場合、受信したデータが新しいデータによって上書きされる前に、割り込みに応答する時間が 1 ビット時間しかないことになります。

プロセッサが応答する時間を長くするには、新しい8ビットの読み取り専用DATA_BUFFERレジスタを追加します。 バスが 9ビット(8ビットのデータと ACKまたは NACK)を受信するたびに、I2DATシフトレジスタの 8 MSBの内容が DATA_BUFFERへ自動転送されます。つまり、割り込みに応答し、上書きされる前にデータを読み取るために、プロセッサには9ビットの送信時間が与えられます。

プロセッサはいつもどおりに直接 I2DATを読み取ることが可能であり、I2DATの動作が変わることはいっさいありません。

Table 147. I2C Slave Address registers (I2C0ADR[1, 2, 3]- 0x4000 00[20, 24, 28]) bit description

Bit Symbol Description Reset value

0 GC ゼネラルコールイネーブルビット。 0

7:1 Address スレーブモードの I2Cデバイスアドレス。 0x00

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 142

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

DATA_BUFFERレジスタは、ENA_SCLビット = ‘0’のモニターモードで使用することを主な目的としていますが、いつでも、そしてどの動作モードでも読み取りは可能です。

10.8.10 I2Cマスクレジスタ(I2C0MASK[0, 1, 2, 3] - 0x4000 00[30, 34, 38, 3C])4つのマスクレジスタには、それぞれ 7つのアクティブビット(7:1)が含まれています。これらのレジスタのうち、「1」に設定されている任意のビットは、そのマスクレジスタに関連付けられている I2ADDRnレジスタと比較されたとき、受信したアドレスの対応するビット上で自動的に比較が行われます。 言い換えると、マスクされている I2ADDRn レジスタ内のビットは、アドレスマッチを判定する際に考慮されません。

リセットすると、すべてのマスクレジスタビットは「0」にクリアされます。

マスクレジスタは、ゼネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

マスクレジスタのビット(31:8)とビット(0)は未使用であり、書き込んではなりません。 これらのビットは、常に 0として読み取られます。

アドレスマッチ割り込みが発生すると、プロセッサはデータレジスタ(I2DAT)を読み取って、実際にマッチが発生した受信アドレスがどれであるかを特定します。

10.9 I2Cの動作モード

特定のアプリケーションで、I2Cブロックは、マスタ、スレーブ、またはその両方として動作することが可能です。 スレーブモードで、I2C ハードウェアは 4 つのスレーブアドレスおよびゼネラルコールアドレスのうちのいずれか1つを探します。 これらのアドレスのうちの 1つが検出されると、割り込みが要求されます。 プロセッサがバスマスタになろうとした場合、ハードウェアはバスが解放されるまで待ってから、マスタモードに切り替えます。それにより、可能なスレーブ動作は割り込まれません。 マスタモードでバスアービトレーションロストが発生すると、I2C ブロックはすぐにスレーブモードに切り替わり、同じシリアル転送の中で自身のスレーブアドレスを検出することができます。

Table 148. I2C Data buffer register (I2C0DATA_BUFFER - 0x4000 002C) bit description

Bit Symbol Description Reset value

7:0 Data このレジスタには、I2DATシフトレジスタの8 MSBの内容が入っています。

0

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 0

Table 149. I2C Mask registers (I2C0MASK[0, 1, 2, 3] - 0x4000 00[30, 34, 38, 3C]) bit description

Bit Symbol Description Reset value

0 - 予約済み。 ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 このビットは、常に 0として読み取られます。

0

7:1 MASK マスクビット。 0x00

31:8 - 予約済み。 予約ビットから読み取った値は未定義です。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 143

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.9.1 マスタトランスミッタモードこのモードでは、データがマスタからスレーブへと送信されます。 マスタトランスミッタモードに切り替える前に、I2CONSET レジスタを Table 150 に示すように初期化する必要があります。 I2EN を 1 に設定して、I2C 機能をイネーブルにします。 AA ビットが 0 の場合、I2Cインターフェースは別のデバイスがバスのマスタであれば、どのアドレスでも肯定応答しないので、スレーブモードに切り替わることができません。 STA、STO、およびSIビットは 0である必要があります。SIビットは、I2CONCLRレジスタ内の SICビットに1 を書き込むことによってクリアされます。 STA ビットは、スレーブアドレスに書き込んだ後、クリアする必要があります。

送信される最初のバイトには、受信デバイスのスレーブアドレス(7ビット)とデータ方向ビットが含まれています。 このモードではデータ方向ビット(R/W)は 0、すなわち書き込みです。 送信される最初のバイトには、スレーブアドレスと書き込みビットが含まれています。 データは一度に 8 ビット送信されます。 1 バイト送信すると、ACK ビットを 1つ受信します。 START状態と STOP状態が出力され、シリアル転送の開始と終了が示されます。

I2Cインターフェースは、ソフトウェアが STAビットを設定すると、マスタトランスミッタモードに切り替わります。 I2Cロジックは、バスが解放されるとすぐに START状態を送信します。 START状態が送信された後、SIビットが設定され、I2STATレジスタ内のステータスコードが 0x08になります。 このステータスコードは、スレーブアドレスと I2DATレジスタへの書き込みビットをロードしてから SI ビットをクリアする、状態サービスルーチンへのベクタ化に使用されます。 SIは、I2CONCLRレジスタ内の SICビットに 1を書き込むことによってクリアされます。

スレーブアドレスと R/Wビットが送信済みで、ACKビットを受信すると、SIビットが再度設定され、可能なステータスコードはマスタモードで 0x18、0x20、または 0x38、スレーブモードがイネーブルであれば(AAを 1に設定)0x68、0x78、または 0xB0となります。 これらのステータスコードそれぞれに対して取るべき適切なアクションを Table154~ Table 159に示します。

Table 150. I2C0CONSET and I2C1CONSET used to configure Master mode

Bit 7 6 5 4 3 2 1 0

Symbol - I2EN STA STO SI AA - -

Value - 1 0 0 0 0 - -

Fig 18. Format in the Master Transmitter mode

A = Acknowledge (SDA low)

A = Not acknowledge (SDA high)

S = START condition

P = STOP condition

S SLAVE ADDRESS RW=0 A DATA A A/A P

from Master to Slave

from Slave to Master

DATA

n bytes data transmitted

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 144

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.9.2 マスタレシーバモードマスタレシーバモードでは、データをスレーブトランスミッタから受信します。 転送は、マスタトランスミッタモードと同じ方法で開始されます。 START状態が送信されると、割り込みサービスルーチンがスレーブアドレスとデータ方向ビットを I2C データレジスタ(I2DAT)にロードしてから、SIビットをクリアする必要があります。 この場合、データ方向ビット(R/W)は 1、すなわち読み取りです。

スレーブアドレスとデータ方向ビットが送信済みで、ACK ビットを受信すると、SI ビットが設定され、ステータスレジスタがステータスコードを表示します。 マスタモードで可能なステータスコードは、0x40、0x48、または 0x38 です。 スレーブモードで可能なステータスコードは、0x68、0x78、または 0xB0です。 詳細については、Table 155を参照してください。

Repeated START状態の後、I2Cはマスタトランスミッタモードに切り替わることがあります。

10.9.3 スレーブレシーバモードスレーブレシーバモードでは、データバイトをマスタトランスミッタから受信します。 スレーブレシーバモードを初期化するには、いずれかのスレーブアドレスレジスタ(I2ADR0-3)を書き込み、I2C 制御設定レジスタ(I2CONSET)を Table 151 に示すように書き込みます。

Fig 19. Format of Master Receiver mode

Fig 20. A Master Receiver switches to Master Transmitter after sending Repeated START

DATA

A = Acknowledge (SDA low)

A = Not acknowledge (SDA high)

S = START condition

P = STOP condition

S SLAVE ADDRESS RW=1 A DATA P

n bytes data received

from Master to Slave

from Slave to Master

A A

A = Acknowledge (SDA low)

A = Not acknowledge (SDA high)

S = START condition

P = STOP condition

SLA = Slave AddressSr = Repeated START condition

DATA

n bytes data transmitted

From master to slave

From slave to master

A DATA A ASLA R Sr W PS SLA DATAAA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 145

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

I2ENを 1に設定して、I2C機能をイネーブルにします。 自身のスレーブアドレスまたはゼネラルコールアドレスに肯定応答するには、AA ビットを 1 に設定する必要があります。STA、STO、および SIビットは 0に設定されます。

I2ADRおよび I2CONSETが初期化された後、I2Cインターフェースは、後にデータ方向ビットが続く自身のアドレスまたは一般アドレスによってアドレス指定されるまで待機します。 方向ビットが 0(W)の場合は、スレーブレシーバモードに切り替わります。 方向ビットが 1(R)の場合は、スレーブトランスミッタモードに切り替わります。 アドレスと方向ビットが受信済みで、SI ビットが設定されると、有効なステータスコードをステータスレジスタ(I2STAT)から読み取ることができます。 ステータスコードとアクションについては、Table 158を参照してください。

10.9.4 スレーブトランスミッタモード最初のバイトは、スレーブレシーバモードの場合と同様に受信して処理されます。 ただしこのモードでは、方向ビットが読み取り動作を示す 1になります。 シリアルデータは SDAを介して送信され、シリアルクロックは SCLを介して入力されます。 START状態と STOP状態は、シリアル転送の開始と終了として認識されます。 特定のアプリケーションでは、I2Cがマスタおよびスレーブとして動作することがあります。 スレーブモードのとき、I2Cハードウェアは自身のスレーブアドレスおよびゼネラルコールアドレスを探します。 これらのアドレスのうちの 1つが検出されると、割り込みが要求されます。 マイクロコントローラがバスマスタになろうとした場合、ハードウェアはバスが解放されるまで待ってからマスタモードに切り替わります。それにより、可能なスレーブアクションは割り込まれません。 マスタモードでバスアービトレーションロストが発生すると、I2Cインターフェースはすぐにスレーブモードに切り替わり、同じシリアル転送の中で自身のスレーブアドレスを検出することができます。

Table 151. I2C0CONSET and I2C1CONSET used to configure Slave mode

Bit 7 6 5 4 3 2 1 0

Symbol - I2EN STA STO SI AA - -

Value - 1 0 0 0 1 - -

Fig 21. Format of Slave Receiver mode

A

A = Acknowledge (SDA low)

A = Not acknowledge (SDA high)

S = START condition

P = STOP condition

Sr = Repeated START condition

A A/A

n bytes data received

from Master to Slave

from Slave to Master

S SLAVE ADDRESS RW=0 DATA P/SrDATA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 146

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

Fig 22. Format of Slave Transmitter mode

DATA

A = Acknowledge (SDA low)

A = Not acknowledge (SDA high)

S = START condition

P = STOP condition

A DATA

n bytes data transmitted

from Master to Slave

from Slave to Master

S SLAVE ADDRESS RW=1 A PA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 147

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.10 I2Cの実装と動作

Figure 23 にオンチップ I2C バスインターフェースの実装方法を示し、個別のブロックについては以下で説明します。

Fig 23. I2C serial interface block diagram

AP

B B

US

STATUS REGISTERI2CnSTAT

CONTROL REGISTER and SCL DUTY CYLE REGISTERS

I2CnCONSET, I2CnCONCLR, I2CnSCLH, I2CnSCLL

ADDRESS REGISTERS

MASK and COMPARE

SHIFT REGISTERI2CnDAT

ACK

BIT COUNTER/ARBITRATION and

MONITOR MODEREGISTER

I2CnMMCTRL

SYNC LOGIC

SERIAL CLOCKGENERATOR

TIMING andCONTROL

LOGIC

STATUSDECODER

statusbus

interrupt

PCLKINPUTFILTER

OUTPUTSTAGE

SCL

INPUTFILTER

OUTPUTSTAGE

SDA

I2CnADDR0 to I2CnADDR3

MASK REGISTERSI2CnMASK0 to I2CnMASK3

I2CnDATABUFFER

MATCHALLI2CnMMCTRL[3]

8

8

8

16

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 148

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.10.1 入力フィルタと出力ステージ入力信号は内部クロックと同期し、3クロックよりも短いスパイクはフィルタアウトされます。

I2Cの出力は、I2C規格に準拠するように設計された特殊パッドです。

10.10.2 アドレスレジスタ、I2ADDR0~ I2ADDR3

これらのレジスタは、スレーブトランスミッタまたはレシーバとしてプログラムされているときに I2Cブロックが応答する 7ビットのスレーブアドレス(上位 7ビット)とともにロードされることがあります。 LSB(GC)を使用して、ゼネラルコールアドレス(0x00)の認識をイネーブルにします。 複数のスレーブアドレスをイネーブルにすると、実際に受信したアドレスは、自身のスレーブアドレスを受信した状態で、I2DATレジスタから読み取ることができます。

10.10.3 アドレスマスクレジスタ、I2MASK0~ I2MASK3

4つのマスクレジスタには、それぞれ 7つのアクティブビット(7:1)が含まれています。これらのレジスタのうち、「1」に設定されている任意のビットは、そのマスクレジスタに関連付けられている I2ADDRnレジスタと比較されたとき、受信したアドレスの対応するビット上で自動的に比較が行われます。 言い換えると、マスクされている I2ADDRn レジスタ内のビットは、アドレスマッチを判定する際に考慮されません。

I2ADDRn ビット 0(GC イネーブルビット)が設定され、ビット(7:1)がすべて 0 の場合、関連するマスクレジスタの状態に関係なく、部品は受信アドレス = “0000000”に応答します。

アドレスマッチ割り込みが発生すると、プロセッサはデータレジスタ(I2DAT)を読み取って、実際にマッチが発生した受信アドレスがどれであるかを特定します。

10.10.4 コンパレータコンパレータは、受信した 7ビットスレーブアドレスを自身のスレーブアドレス(I2ADR内の上位 7 ビット)と比較します。 さらに、最初に受信した 8 ビットバイトをゼネラルコールアドレス(0x00)と比較します。 同じであることが判明すれば、該当するステータスビットが設定され、割り込みが要求されます。

10.10.5 シフトレジスタ、I2DAT

この 8 ビットレジスタには、これから送信されるシリアルデータのバイトか、受信したばかりのバイトが含まれています。 I2DAT内のデータは、常に右から左へとシフトします。最初に送信されるビットは MSB(ビット 7)であり、1バイトを受信した後、受信データの最初のビットが I2DAT の MSB に配置されます。 データがシフトアウトしている間、バス上のデータは同時にシフトインします。常に I2DAT には、バス上に存在する最後のバイトが含まれています。 したがって、アービトレーションロストが発生した場合、マスタトランスミッタからスレーブレシーバへの遷移が I2DAT 内の正確なデータによって行われます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 149

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.10.6 アービトレーションと同期化のロジックマスタトランスミッタモードでは、送信された各ロジック 1が実際に I2Cバス上のロジック 1 として現れることをアービトレーションロジックが確認します。バス上の別のデバイスがロジック 1を拒否して SDAラインを LOWにプルした場合、I2Cブロックはアービトレーションを失い、ただちにマスタトランスミッタからスレーブレシーバに変わります。 I2C ブロックは、現在のシリアルバイトの送信が完了するまで(SCL 上で)クロックパルスを出力し続けます。

また、マスタレシーバモードでもアービトレーションが失われることがあります。 このモードでのアービトレーション喪失は、I2Cブロックが「NOT ACK」(ロジック 1)をバスに返している間にのみ発生します。 アービトレーションは、バス上の別のデバイスがこの信号を LOW にプルしているときに失われます。 これはシリアルバイトの最後でのみ発生するため、I2Cブロックはそれ以降にクロックパルスを生成しません。Figure 24にアービトレーションの手順を示します。

同期化ロジックは、シリアルクロックジェネレータを、別のデバイスからの SCL ライン上のクロックパルスと同期させます。 2つ以上のマスタデバイスがクロックパルスを生成している場合、「マーク」の持続時間は最短の「マーク」を生成するデバイスによって決定され、「スペース」の持続時間は最長の「スペース」を生成するデバイスによって決定されます。Figure 25に同期化の手順を示します。

(1) Another device transmits serial data.

(2) Another device overrules a logic (dotted line) transmitted this I2C master by pulling the SDA line low. Arbitration is lost, and this I2C enters Slave Receiver mode.

(3) This I2C is in Slave Receiver mode but still generates clock pulses until the current byte has been transmitted. This I2C will not generate clock pulses for the next byte. Data on SDA originates from the new master once it has won arbitration.

Fig 24. Arbitration procedure

SDA line

SCL line1 2 3 4 8 9

ACK

(1) (2)(1) (3)

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 150

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

スレーブはスペースの持続時間を延ばして、バスマスタの速度を落とします。 スペース持続時間を延ばすのは、ハンドシェークのためでもあります。 これは、1ビットまたは 1バイト全体が転送された後で行えます。I2C ブロックは、1 バイトが送信または受信され、ACKビットが転送された後、SCLスペース持続時間を延ばします。 シリアル割り込みフラグ(SI)が設定され、この延長はシリアル割り込みフラグがクリアされるまで継続します。

10.10.7 シリアルクロックジェネレータこのプログラマブルなクロックパルスジェネレータは、I2C ブロックがマスタトランスミッタモードまたはマスタレシーバモードのときに、SCL クロックパルスを提供します。I2Cブロックがスレーブモードのとき、これはオフに切り替わります。 I2C出力クロック周波数およびデューティサイクルは、I2Cクロック制御レジスタによってプログラムできます。 詳細については、I2CSCLLおよび I2CSCLHレジスタの説明を参照してください。 前述したように、バスが他の SCL クロックソースと同期している場合を除き、出力クロックパルスにはプログラムされたとおりのデューティサイクルがあります。

10.10.8 タイミングと制御タイミングと制御のロジックは、シリアルバイト処理のためのタイミングおよび制御の信号を生成します。 このロジックブロックは、I2DATのシフトパルスを提供し、コンパレータをイネーブルにして START および STOP 状態を生成・検出し、ACK ビットの送受信を行い、マスタおよびスレーブモードを制御し、割り込み要求ロジックを含み、I2Cバスのステータスを監視します。

10.10.9 制御レジスタ、I2CONSETおよび I2CONCLR

I2C制御レジスタには、シリアル転送の開始とリスタート、シリアル転送の終了、ビットレート、アドレス認識、肯定応答などの I2C ブロックの機能を制御するのに使用されるビットが含まれています。

(1) Another device pulls the SCL line low before this I2C has timed a complete high time. The other device effectively determines the (shorter) HIGH period.

(2) Another device continues to pull the SCL line low after this I2C has timed a complete low time and released SCL. The I2C clock generator is forced to wait until SCL goes HIGH. The other device effectively determines the (longer) LOW period.

(3) The SCL line is released , and the clock generator begins timing the HIGH time.

Fig 25. Serial clock synchronization

SDA line

SCL line

(2)

(1)(3)

highperiod

lowperiod

(1)

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 151

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

I2C制御レジスタの内容は、I2CONSETとして読み取られることがあります。 I2CONSETへの書き込みにより、書き込まれた値に含まれているビットに対応する I2C制御レジスタ内のビットが設定されます。 それに対し、I2CONCLRへ書き込むと、書き込まれた値に含まれているビットに対応する I2C制御レジスタ内のビットがクリアされます。

10.10.10 ステータスデコーダとステータスレジスタステータスデコーダは、内部ステータスビットをすべて取り込み、5ビットコードに圧縮します。 このコードは、各 I2Cバスステータスで固有のものです。 5ビットコードは、各種サービスルーチンを高速処理するためのベクタアドレスを生成するのに使用されることがあります。 各サービスルーチンは、特定のバスステータスを処理します。 I2Cブロックの4つのモードすべてが使用されている場合、可能なバスステータスは 26あります。 5ビットステータスコードは、シリアル割り込みフラグが(ハードウェアによって)設定されているときはステータスレジスタの上位 5 ビットにラッチされ、割り込みフラグがソフトウェアによってクリアされるまで、安定を保ちます。 ステータスレジスタの下位 3ビットは常に0です。 ステータスコードがサービスルーチンへのベクタとして使用されている場合、ルーチンは 8つのアドレス位置によって置き換えが行われます。 8バイトのコードはほとんどのサービスルーチンにとって十分です(このセクションのソフトウェア例を参照してください)。

10.11 I2Cの動作モードの詳細

以下の4つの動作モードがあります。

• マスタトランスミッタ• マスタレシーバ• スレーブレシーバ• スレーブトランスミッタ

各動作モードのデータ転送は Figure 26、Figure 27、Figure 28、Figure 29、Figure 30に示すとおりです。これらの図でI2C動作モードの説明で使用する略語をTable 152に示します。

Table 152. Abbreviations used to describe an I2C operation

Abbreviation Explanation

S START状態SLA 7ビットのスレーブアドレスR 読み取りビット(SDAで HIGHレベル)W 書き込みビット(SDAで LOWレベル)A ACKビット(SDAで LOWレベル)A NOT ACKビット(SDAで HIGHレベル)Data 8ビットのデータバイトP STOP状態

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 152

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

Figure 26~ Figure 30では、シリアル割り込みフラグが設定されているときは円で囲み表示しています。 円の中の数字は、I2STATレジスタ内に保持されているステータスコードを示します。 これらのポイントで、サービスルーチンを実行してシリアル転送を続行あるいは完了する必要があります。 これらのサービスルーチンは、シリアル割り込みフラグがソフトウェアによってクリアされるまでシリアル転送が一時停止されるので重大ではありません。

シリアル割り込みルーチンに切り替わると、I2STAT 内のステータスコードを使用して適切なサービスルーチンに分岐します。 各ステータスコードについて、必要なソフトウェア動作とそれに続くシリアル転送の詳細を Table 154~ Table 160の表に示します。

10.11.1 マスタトランスミッタモードマスタトランスミッタモードでは、多数のデータバイトがスレーブレシーバに送信されます(Figure 26を参照)。 マスタトランスミッタモードに切り替える前に、I2CONを以下のように初期化する必要があります。

I2Cの速度は、I2SCLLおよび I2SCLHレジスタでも設定する必要があります。 I2ENをロジック 1に設定して、I2Cブロックをイネーブルにします。 AAビットがリセットされると、I2Cブロックは、別のデバイスがバスのマスタになった場合、自身のスレーブアドレスまたはゼネラルコールアドレスに肯定応答しません。つまり、AA がリセットされると、I2C インターフェースはスレーブモードに切り替わることができません。 STA、STO、SIはリセットする必要があります。

マスタトランスミッタモードには、STAビットを設定することによって切り替えることができます。 I2C ロジックは I2C バスをテストし、バスが解放されるとすぐに START 状態を生成します。 START状態が送信されると、シリアル割り込みフラグ(SI)が設定され、ステータスレジスタ(I2STAT)内のステータスコードが 0x08 になります。 割り込みサービスルーチンはこのステータスコードを使用して、スレーブアドレスおよびデータ方向ビット(SLA+W)とともに I2DAT をロードする、適切な状態サービスルーチンに切り替わります。 このとき I2CON 内の SI ビットをリセットしなければ、シリアル転送は続行できません。

スレーブアドレスと方向ビットが送信済みで、ACK ビットを受信すると、シリアル割り込みフラグ(SI)が再度設定され、I2STAT 内で複数のステータスコードが可能になります。 マスタモードでは 0x18、0x20、または 0x38、スレーブモードがイネーブルであれば(AA = ロジック 1)、0x68、0x78、または 0xB0です。 これらのステータスコードそれぞれに対して取るべき適切なアクションの詳細を Table 154に示します。 Repeated START状態(状態 0x10)の後、 I2Cブロックは、I2DAT を SLA+R とともにロードすることにより、マスタレシーバモードに切り替えることができます。

Table 153. I2CONSET used to initialize Master Transmitter mode

Bit 7 6 5 4 3 2 1 0

Symbol - I2EN STA STO SI AA - -

Value - 1 0 0 0 x - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 153

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

Table 154. Master Transmitter mode

Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

0x08 START 状態を送信済み。

Load SLA+W; clear STA

X 0 0 X SLA+Wを送信する。ACKビットを受信する。

0x10 Repeated START 状態を送信済み。

Load SLA+W or X 0 0 X 同上。Load SLA+R; Clear STA

X 0 0 X SLA+W を送信する。I2C ブロックがMST/RECモードに切り替わる。

0x18 SLA+W を送信済み。ACKを受信済み。

Load data byte or 0 0 0 X データバイトを送信する。ACK ビットを受信する。

No I2DAT action or 1 0 0 X Repeated STARTを送信する。No I2DAT action or 0 1 0 X STOP 状態を送信する。STO フラグをリ

セットする。No I2DAT action 1 1 0 X 後に START 状態が続く STOP 状態を送信

する。STOフラグをリセットする。0x20 SLA+W を送信済み。

NOT ACKを受信済み。Load data byte or 0 0 0 X データバイトを送信する。ACK ビットを

受信する。No I2DAT action or 1 0 0 X Repeated STARTを送信する。No I2DAT action or 0 1 0 X STOP 状態を送信する。STO フラグをリ

セットする。No I2DAT action 1 1 0 X 後に START 状態が続く STOP 状態を送信

する。STOフラグをリセットする。0x28 I2DAT 内のデータバイ

トを送信済み。ACKを受信済み。

Load data byte or 0 0 0 X データバイトを送信する。ACK ビットを受信する。

No I2DAT action or 1 0 0 X Repeated STARTを送信する。No I2DAT action or 0 1 0 X STOP 状態を送信する。STO フラグをリ

セットする。No I2DAT action 1 1 0 X 後に START 状態が続く STOP 状態を送信

する。STOフラグをリセットする。0x30 I2DAT 内のデータバイ

トを送信済み。NOTACKを受信済み。

Load data byte or 0 0 0 X データバイトを送信する。ACK ビットを受信する。

No I2DAT action or 1 0 0 X Repeated STARTを送信する。No I2DAT action or 0 1 0 X STOP 状態を送信する。STO フラグをリ

セットする。No I2DAT action 1 1 0 X 後に START 状態が続く STOP 状態を送信

する。STOフラグをリセットする。0x38 SLA+R/W またはデー

タバイトでアービトレーションを失った。

No I2DAT action or 0 0 0 X I2Cバスを解放する。アドレス指定されていないスレーブに切り替わる。

No I2DAT action 1 0 0 X バスが解放されたときに START 状態を送信する。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 154

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

Fig 26. Format and states in the Master Transmitter mode

DATA

A

R

WSLAS

DATAAWSLA

to Masterreceivemode,entry= MR

MT

to correspondingstates in Slave mode

A OR AA OR A

A

other Mastercontinues

other Mastercontinues

A other Mastercontinues

20H

08H 18H 28H

30H

10H

68H 78H B0H

38H 38H

arbitration lostin Slaveaddress orData byte

NotAcknowledgereceived after aData byte

NotAcknowledgereceived afterthe Slaveaddress

next transferstarted with aRepeated Startcondition

arbitration lostandaddressed asSlave

successfultransmissionto a SlaveReceiver

from Master to Slave

from Slave to Master

any number of data bytes and their associated Acknowledge bits

nthis number (contained in I2STA) corresponds to a defined state of theI2C bus

A P

P

S P

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 155

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.2 マスタレシーバモードマスタレシーバモードでは、多数のデータバイトをスレーブトランスミッタから受信します(Figure 27 を参照)。 転送は、マスタトランスミッタモードと同様に初期化されます。START状態が送信されると、割り込みサービスルーチンは、7ビットのスレーブアドレスおよびデータ方向ビット(SLA+R)とともに I2DATをロードする必要があります。 このとき I2CON内の SIビットをクリアしなければ、シリアル転送は続行できません。

スレーブアドレスとデータ方向ビットが送信済みで、ACK ビットを受信すると、シリアル割り込みフラグ(SI)が再度設定され、I2STAT内で複数のステータスコードが可能になります。 マスタモードでは 0x40、0x48、または 0x38、スレーブモードがイネーブルであれば(AA = 1)、0x68、0x78、または 0xB0です。 これらのステータスコードそれぞれに対して取るべき適切なアクションの詳細を Table 155に示します。 Repeated START状態(状態 0x10)の後、I2Cブロックは I2DATを SLA+Rとともにロードすることにより、マスタトランスミッタモードに切り替えることができます。

Table 155. Master Receiver mode

Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

0x08 START 状態を送信済み。

Load SLA+R X 0 0 X SLA+R を送信する。ACK ビットを受信する。

0x10 Repeated START 状態を送信済み。

Load SLA+R or X 0 0 X 同上。Load SLA+W X 0 0 X SLA+W を送信する。I2C ブロックが

MST/TRXモードに切り替わる。0x38 NOT ACKビットでアー

ビトレーションを失った。

No I2DAT action or 0 0 0 X I2Cバスを解放する。I2Cブロックがスレーブモードに切り替わる。

No I2DAT action 1 0 0 X バスが空き状態になったときに START 状態を送信する。

0x40 SLA+R を送信済み。ACKを受信済み。

No I2DAT action or 0 0 0 0 データバイトを受信する。NOT ACK ビットを返す。

No I2DAT action 0 0 0 1 データバイトを受信する。ACK ビットを返す。

0x48 SLA+R を送信済み。NOT ACKを受信済み。

No I2DAT action or 1 0 0 X Repeated START状態を送信する。No I2DAT action or 0 1 0 X STOP 状態を送信する。STO フラグをリ

セットする。No I2DAT action 1 1 0 X 後に START 状態が続く STOP 状態を送信

する。STOフラグをリセットする。0x50 データバイトを受信

済み。ACKを返送済み。Read data byte or 0 0 0 0 データバイトを受信する。NOT ACK ビッ

トを返す。Read data byte 0 0 0 1 データバイトを受信する。ACK ビットを

返す。0x58 データバイトを受信

済み。NOT ACKを返送済み。

Read data byte or 1 0 0 X Repeated START状態を送信する。Read data byte or 0 1 0 X STOP 状態を送信する。STO フラグをリ

セットする。Read data byte 1 1 0 X 後に START 状態が続く STOP 状態を送信

する。STOフラグをリセットする。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 156

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.3 スレーブレシーバモードスレーブレシーバモードでは、多数のデータバイトをマスタトランスミッタから受信します(Figure 28を参照)。 スレーブレシーバモードを開始するには、以下のように I2ADRとI2CONをロードする必要があります。

Fig 27. Format and states in the Master Receiver mode

A

to Mastertransmit

mode, entry= MT

MR

to correspondingstates in Slave

mode

ARSLAS

RSLAS

W

AA OR A

A P

other Mastercontinues

other Mastercontinues

A other Mastercontinues

48H

40H 58H

10H

68H 78H B0H

38H 38H

arbitration lost inSlave address orAcknowledge bit

Not Acknowledgereceived after theSlave address

next transferstarted with aRepeated Startcondition

arbitration lostand addressedas Slave

successfultransmission toa Slavetransmitter

from Master to Slave

from Slave to Master

any number of data bytes and their associatedAcknowledge bits

nthis number (contained in I2STA) corresponds to a defined state ofthe I2C bus

DATAADATA

50H

ADATA

P

08H

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 157

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

上位 7ビットは、マスタによってアドレス指定されたときに I2Cブロックが応答する先のアドレスです。 LSB(GC)を設定している場合、I2C ブロックはゼネラルコールアドレス(0x00)に応答します。それ以外の場合、ゼネラルコールアドレスは無視されます。

I2C バスの速度設定は、スレーブモードの I2C ブロックには影響を与えません。 I2EN をロジック 1に設定して、I2Cブロックをイネーブルにします。 AAビットを設定して、I2Cブロックが自身のスレーブアドレスまたはゼネラルコールアドレスに肯定応答できるようにする必要があります。 STA、STO、SIはリセットする必要があります。

I2ADRと I2CONが初期化済みの場合、I2Cブロックがスレーブレシーバモードで動作するために、I2C ブロックは自身のスレーブアドレスとその後に続くデータ方向ビット「0」(W)によってアドレス指定されるまで待機します。 自身のスレーブアドレスとWビットを受信すると、シリアル割り込みフラグ(SI)が設定され、有効なステータスコードをI2STATから読み取ることができます。 このステータスコードは、状態サービスルーチンへのベクタ化に使用されます。 これらのステータスコードそれぞれに対して取るべき適切なアクションの詳細をTable 158に示します。 I2Cブロックがマスタモードの間にアービトレーションを失った場合にも、スレーブレシーバモードに切り替わることがあります(ステータス 0x68および 0x78を参照)。

転送中に AA ビットがリセットされた場合、I2C ブロックは次に受信したデータバイトの後で NOT ACK(ロジック 1)を SDA に返します。 AA のリセット中、I2C ブロックは自身のスレーブアドレスやゼネラルコールアドレスには応答しません。 ただし、I2C バスの監視は継続しており、アドレス認識は AA を設定することによっていつでも再開できます。これは、AAビットを使用して、I2Cブロックを一時的に I2Cバスから隔離できることを意味します。

Table 156. I2C0ADR and I2C1ADR usage in Slave Receiver mode

Bit 7 6 5 4 3 2 1 0

Symbol own slave 7-bit address GC

Table 157. I2C0CONSET and I2C1CONSET used to initialize Slave Receiver mode

Bit 7 6 5 4 3 2 1 0

Symbol - I2EN STA STO SI AA - -

Value - 1 0 0 0 1 - -

Table 158. Slave Receiver mode

Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

0x60 自身の SLA+W を受信済み。ACKを返送済み。

No I2DAT action or X 0 0 0 データバイトを受信し、NOT ACKを返す。No I2DAT action X 0 0 1 データバイトを受信し、ACKを返す。

0x68 マ ス タ の と き にSLA+R/W でアービトレーションを失った。自身の SLA+W を受信済み、ACKを返送済み。

No I2DAT action or X 0 0 0 データバイトを受信し、NOT ACKを返す。No I2DAT action X 0 0 1 データバイトを受信し、ACKを返す。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 158

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

0x70 ゼネラルコールアドレス(0x00)を受信済み。ACKを返送済み。

No I2DAT action or X 0 0 0 データバイトを受信し、NOT ACKを返す。No I2DAT action X 0 0 1 データバイトを受信し、ACKを返す。

0x78 マ ス タ の と き にSLA+R/W でアービトレーションを失った。ゼネラルコールアドレスを受信済み、ACKを返送済み。

No I2DAT action or X 0 0 0 データバイトを受信し、NOT ACKを返す。No I2DAT action X 0 0 1 データバイトを受信し、ACKを返す。

0x80 以前は自身の SLVアドレスでアドレス指定されていた。DATA を受信済み。ACKを返送済み。

Read data byte or X 0 0 0 データバイトを受信し、NOT ACKを返す。Read data byte X 0 0 1 データバイトを受信し、ACKを返す。

0x88 以前は自身のSLAでアドレス指定されていた。DATA バイトを受信済み。NOT ACKを返送済み。

Read data byte or 0 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。

Read data byte or 0 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。

Read data byte or 1 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。 バスが解放されたときに START状態を送信する。

Read data byte 1 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。 バスが解放されたときに START状態を送信する。

0x90 以前はゼネラルコールでアドレス指定されていた。DATA バイトを受信済み。ACKを返送済み。

Read data byte or X 0 0 0 データバイトを受信し、NOT ACKを返す。Read data byte X 0 0 1 データバイトを受信し、ACKを返す。

Table 158. Slave Receiver mode (続き)Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 159

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

0x98 以前はゼネラルコールでアドレス指定されていた。DATA バイトを受信済み。NOTACKを返送済み。

Read data byte or 0 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。

Read data byte or 0 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。

Read data byte or 1 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。 バスが解放されたときに START状態を送信する。

Read data byte 1 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。 バスが解放されたときに START状態を送信する。

0xA0 まだ SLV/REC またはSLV/TRX としてアドレス指定されている間に、STOP 状態またはRepeated START 状態を受信した。

No STDAT action or

0 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。

No STDAT action or

0 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。

No STDAT action or

1 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。 バスが解放されたときに START状態を送信する。

No STDAT action 1 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。 バスが解放されたときに START状態を送信する。

Table 158. Slave Receiver mode (続き)Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 160

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

Fig 28. Format and states in the Slave Receiver mode

A

A P OR SAWSLAS

P OR SA

A

68H

60H 80H

88H

reception of theGeneral Call addressand one or more Databytes

arbitration lost asMaster and addressedas Slave

last data bytereceived is Notacknowledged

arbitration lost asMaster and addressedas Slave by GeneralCall

reception of the ownSlave address and oneor more Data bytes allare acknowledged

from Master to Slave

from Slave to Master

any number of data bytes and their associated Acknowledge bits

nthis number (contained in I2STA) corresponds to a defined state of the I2Cbus

DATAADATA

80H A0H

last data byte is Notacknowledged

A P OR SA

70h 90h

DATAADATA

90h A0H

GENERAL CALL

A

98h

P OR S

A

78h

DATA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 161

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.4 スレーブトランスミッタモードスレーブトランスミッタモードでは、多数のデータバイトがマスタレシーバに送信されます(Figure 29を参照)。 データ転送は、スレーブレシーバモードと同様に初期化されます。I2ADRと I2CONが初期化済みの場合、I2Cブロックがスレーブトランスミッタモードで動作するために、I2Cブロックは自身のスレーブアドレスとその後に続くデータ方向ビット「1」(R)によってアドレス指定されるまで待機します。 自身のスレーブアドレスと Rビットを受信すると、シリアル割り込みフラグ(SI)が設定され、有効なステータスコードをI2STATから読み取ることができます。 このステータスコードは、状態サービスルーチンへのベクタ化に使用されます。これらのステータスコードそれぞれに対して取るべき適切なアクションの詳細を Table 159 に示します。 I2C ブロックがマスタモードの間にアービトレーションを失った場合にも、スレーブトランスミッタモードに切り替わることがあります(状態 0xB0を参照)。

転送中に AA ビットがリセットされた場合、I2C ブロックは最後の転送バイトを送信し、状態 0xC0 または 0xC8 に切り替わります。 I2C ブロックはアドレス指定されていないスレーブモードに切り替わり、転送を続行する場合はマスタレシーバを無視します。 したがって、マスタレシーバはシリアルデータとしてすべて 1 を受信します。 AA のリセット中、I2Cブロックは自身のスレーブアドレスやゼネラルコールアドレスには応答しません。ただし、I2C バスの監視は継続しており、アドレス認識は AA を設定することによっていつでも再開できます。 これは、AAビットを使用して、I2Cブロックを一時的に I2Cバスから隔離できることを意味します。

Table 159. Slave Transmitter mode

Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

0xA8 自身のSLA+Rを受信済み。ACKを返送済み。

Load data byte or X 0 0 0 最後のデータバイトを送信し、ACK ビットを受信する。

Load data byte X 0 0 1 データバイトを送信する。ACK を受信する。

0xB0 マ ス タ の と き にSLA+R/W でアービトレーションを失った。自身のSLA+Rを受信済み、ACKを返送済み。

Load data byte or X 0 0 0 最後のデータバイトを送信し、ACK ビットを受信する。

Load data byte X 0 0 1 データバイトを送信する。ACK ビットを受信する。

0xB8 I2DAT 内のデータバイトを送信済み。ACKを受信済み。

Load data byte or X 0 0 0 最後のデータバイトを送信し、ACK ビットを受信する。

Load data byte X 0 0 1 データバイトを送信する。ACK ビットを受信する。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 162

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

0xC0 I2DAT 内のデータバイトを送信済み。NOTACKを受信済み。

No I2DAT action or 0 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。

No I2DAT action or 0 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。

No I2DAT action or 1 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。 バスが解放されたときに START状態を送信する。

No I2DAT action 1 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。 バスが解放されたときに START状態を送信する。

0xC8 I2DAT 内の最後のデータバイトを送信済み(AA = 0)。ACKを受信済み。

No I2DAT action or 0 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。

No I2DAT action or 0 0 0 1 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR[0] =ロジック 1 の場合、ゼネラルコールアドレスを認識する。

No I2DAT action or 1 0 0 0 アドレス指定されていない SLV モードに切り替わる。自身の SLA またはゼネラルコールアドレスを認識しない。 バスが解放されたときに START状態を送信する。

No I2DAT action 1 0 0 01 アドレス指定されていない SLV モードに切り替わる。自身の SLA を認識する。I2ADR.0 =ロジック 1 の場合、ゼネラルコールアドレスを認識する。 バスが解放されたときに START状態を送信する。

Table 159. Slave Transmitter mode

Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 163

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.5 その他の状態定義済みの I2Cハードウェア状態に対応しない I2STATコードが 2つあります(Table 160を参照)。 次にこれらについて説明します。

10.11.5.1 I2STAT = 0xF8

このステータスコードは、シリアル割り込みフラグ SI がまだ設定されていないため、利用できる関連情報がないことを示します。 これは他の状態の間で、I2C ブロックがシリアル転送に関わっていないときに発生します。

Fig 29. Format and states in the Slave Transmitter mode

DATA AARSLAS

P OR SA

A

B0H

A8H C0H

C8H

last data bytetransmitted. Switchedto Not AddressedSlave (AA bit inI2CON = “0”)

arbitration lost asMaster andaddressed as Slave

reception of the ownSlave address andone or more Databytes all areacknowledged

from Master to Slave

from Slave to Master

any number of data bytes and their associatedAcknowledge bits

nthis number (contained in I2STA) corresponds to a defined state ofthe I2C bus

ADATA

B8H

ALL ONES

ADATA

P OR S

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 164

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.5.2 I2STAT = 0x00

このステータスコードは、I2C シリアル転送中にバスエラーが発生したことを示します。バスエラーは、START状態または STOP状態がフォーマットフレーム内の不正な位置で発生したときに起こります。 不正な位置の例としては、アドレスバイト、データバイト、ACKビットのシリアル転送中が挙げられます。 バスエラーは、外部干渉が内部 I2Cブロック信号を妨害しているときにも起こることがあります。 バスエラーが発生するとSIが設定されます。 バスエラーから回復するには、STOフラグを設定し、SIをクリアする必要があります。 これにより、I2Cブロックは「アドレス指定されていない」 スレーブモード(定義済みの状態)に切り替わり、STO フラグをクリアします(I2CON 内の他のビットはいっさい影響を受けません)。 SDAおよびSCLラインは解放されます(STOP状態は送信されません)。

10.11.6 いくつかの特殊なケースI2Cハードウェアには、シリアル転送中に起こりうる以下のような特殊ケースに対処する機能があります。

• 同時に 2つのマスタからの Repeated START状態

• アービトレーションロスト後のデータ転送• I2Cバスへの強制アクセス

• SCLまたは SDA上の LOWレベルによって妨害される I2Cバス

• バスエラー

10.11.6.1 同時に 2つのマスタからの Repeated START状態Repeated START 状態は、マスタトランスミッタモードやマスタレシーバモードで生成されることがあります。 別のマスタが同時に Repeated START 状態を生成した場合に、特殊な状況が起こります(Figure 30を参照)。 このような状況が発生するまでは、どちらのマスタも同じデータを送信していたので、いずれかのマスタによってアービトレーションが失われることはありません。

Table 160. Miscellaneous States

Status Code (I2CSTAT)

Status of the I2C-bus and hardware

Application software response Next action taken by I2C hardware

To/From I2DAT To I2CON

STA STO SI AA

0xF8 関連する状態情報がない。SI = 0。

No I2DAT action No I2CON action 待機するか、現在の転送を続行する。

0x00 不正なSTART状態または STOP 状態による、MSTまたは選択したスレーブモード中のバスエラー。 状態 0x00は、干渉によって I2Cブロックが未定義の状態になったときにも発生することがあります。

No I2DAT action 0 1 0 X MST またはアドレス指定された SLV モードのときは、内部ハードウェアのみが影響を受けます。 すべてのケースで、バスは解放され、I2Cブロックはアドレス指定されていない SLVモードに切り替わります。STOはリセットされます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 165

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

I2Cハードウェアは、自身が Repeated START状態を生成する前に I2Cバス上で RepeatedSTART状態を検出すると、バスを解放するため、割り込み要求は生成されません。 もう 1つのマスタが STOP 状態を生成することによってバスを解放した場合、I2C ブロックは通常の START状態(状態 0x08)を送信し、全シリアルデータ転送の再試行を開始することができます。

10.11.6.2 アービトレーションロスト後のデータ転送アービトレーションは、マスタトランスミッタモードおよびマスタレシーバモードで失われることがあります(Figure 24 を参照)。 アービトレーションの喪失は、I2STAT の状態0x38、0x68、0x78、0xB0によって示されます(Figure 26および Figure 27を参照)。

I2CON の STA フラグがこれらの状態をサービスするルーチンによって設定されている場合、バスが再び解放されると、CPUによる介入なしで START状態(状態 0x08)が送信され、全シリアル転送の再試行を開始することができます。

10.11.6.3 I2Cバスへの強制アクセスアプリケーションによっては、無制御のソースがバスのハングアップの原因になることがあります。 そのような状況では、干渉、バスの一時的割り込み、または SDA-SCL 間の一時的短絡によって障害が発生する可能性があります。

無制御のソースが不要な START 状態を生成したり、STOP 状態をマスクすると、I2C はいつまでもビジーのままとなります。 STAフラグが設定され、バスアクセスが妥当な時間内に取得されない場合、I2C バスへの強制アクセスが可能です。 これは、STA フラグが設定されている間に STOフラグを設定することによって実現されます。 STOP状態は送信されません。 I2Cハードウェアは STOP状態を受信したかのように動作し、START状態を送信することができます。 STO フラグはハードウェアによってクリアされます(Figure 31 を参照)。

Fig 30. Simultaneous Repeated START conditions from two masters

SLAAWSLAS

18H 08H

ADATA

28H08H

OTHER MASTERCONTINUES

other Master sendsrepeated START earlier

S

retry

S P

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 166

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.6.4 SCLまたは SDA上の LOWレベルによって妨害される I2CバスI2Cバスのハングアップは、バス上のデバイスのどれかによって SDAまたは SCLラインがLOWに保持された場合に起こります。 バス上のデバイスによって SCLラインが妨害(LOWにプル)された場合、それ以降のシリアル転送は不可能になり、障害の解決は SCL バスラインを LOWにプルしているデバイスによって行うしかありません。

一般に SDA ラインは、クロックを失うかノイズパルスをクロックとして感知することによって、現在のバスマスタとの同期を失ったバス上の別のデバイスによって妨害される可能性があります。 その場合は、SCLライン上でクロックパルスを追加送信することによって障害を解決できます(Figure 32 を参照)。 I2C インターフェースには、妨害されたバスを検出する専用のタイムアウトタイマはありませんが、システム内の別のタイマを使用してこれを実装できます。 検出されると、ソフトウェアは原因となっているデバイスが SDAを解放するまで、SCL上でクロックを強制することができます(9つまで要求することが可能)。 この時点でもまだスレーブが同期していないことがあるので、START を生成してすべての I2Cペリフェラルを確実に同期させる必要があります。

Fig 31. Forced access to a busy I2C-bus

SDA line

SCL line

STA flag

STO flag

time limit

startcondition

(1) Unsuccessful attempt to send a START condition.

(2) SDA line is released.

(3) Successful attempt to send a START condition. State 08H is entered.

Fig 32. Recovering from a bus obstruction caused by a LOW level on SDA

SDA line

SCL line

(1)

(2)

(1)

(3)STA flag

startcondition

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 167

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.6.5 バスエラーバスエラーは、START状態または STOP状態がフォーマットフレーム内の不正な位置で検出されたときに起こります。 不正な位置の例としては、アドレスバイト、データビット、ACKビットのシリアル転送中が挙げられます。

I2Cハードウェアは、マスタまたはアドレス指定されたスレーブのいずれかとしてシリアル転送に関わっているときに限り、バスエラーに対処します。 バスエラーが検出されると、I2Cブロックはアドレス指定されていないスレーブモードにただちに切り替わり、SDAラインと SCLラインを解放し、割り込みフラグを設定して、0x00のステータスレジスタをロードします。 このステータスコードを使用すれば、アボートされたシリアル転送を再試行するか、Table 160 に示すように単純にエラー状態から回復するかのいずれかを行う状態サービスルーチンにベクタ化できます。

10.11.7 I2C状態サービスルーチンこのセクションでは、各種の I2C状態サービスルーチンによって実行される動作の例を示します。 具体的には以下が挙げられます。

• リセット後の I2Cブロックの初期化。

• I2C割り込みサービス。

• 26の状態サービスルーチンが、4つの I2C動作モードすべてに対応しています。

10.11.8 初期化初期化の例では、I2Cブロックがマスタモードとスレーブモードの両方でイネーブルにされます。 どちらのモードでも、送受信にはバッファが使用されます。 初期化ルーチンは以下の機能を実行します。

• I2ADR が部品自身のスレーブアドレスおよびゼネラルコールビット(GC)とともにロードされます。

• I2C割り込みイネーブルおよび割り込み優先順位ビットが設定されます。

• スレーブモードは I2CONで I2ENビットと AAビットを同時に設定することによってイネーブルになり、シリアルクロック周波数(マスタモードの場合)は I2SCLHレジスタと I2SCLLレジスタをロードすることによって定義されます。 マスタルーチンは、メインプログラムで開始する必要があります。

次に、I2Cハードウェアは、I2Cバスで自身のスレーブアドレスとゼネラルコールのチェックを開始します。 ゼネラルコールまたは自身のスレーブアドレスが検出されると、割り込みが要求され、I2STATが適切な状態情報とともにロードされます。

10.11.9 I2C割り込みサービスI2C割り込みに切り替わると、I2STAT には、実行する 26の状態サービスのうちの 1つを特定するステータスコードが格納されます。

10.11.10 状態サービスルーチン各状態ルーチンは I2C 割り込みルーチンの一部であり、26 の状態のうちの 1 つを処理します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 168

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.11.11 状態サービスをアプリケーションに適合させる状態サービスの例は、26 の I2C 状態コードに対して実行すべき一般的なアクションを示しています。 4つの I2C動作モードのうちの 1つ以上を使用しない場合、関連する状態サービスについては、それらの状態が絶対発生しないように注意するのであれば省略してもかまいません。

アプリケーションでは、動作不能なバスや失われたサービスルーチンをトラップするために、I2Cの動作中にある種のタイムアウトを実装することが望まれます。

10.12 ソフトウェア例

10.12.1 初期化ルーチンI2Cインターフェースをスレーブまたはマスタ、あるいはその両方として初期化するための例

1. I2ADR を自身のスレーブアドレスとともにロードし、必要であればゼネラルコール認識をイネーブルにします。

2. I2C割り込みサービスをイネーブルにします。

3. I2CONSETに 0x44を書き込んで I2ENおよび AAビットを設定し、スレーブ機能をイネーブルにします。 マスタのみの機能については、0x40 を I2CONSET に書き込みます。

10.12.2 マスタ送信機能の開始バッファ、ポインタ、データカウントを設定した後、STARTを起動することによってマスタ送信動作を開始します。

1. マスタデータカウンタを初期化します。

2. データの送信先とするスレーブアドレスを設定し、書き込みビットを追加します。

3. I2CONSETに 0x20を書き込んで STAビットを設定します。

4. 送信するデータをマスタ送信バッファに設定します。

5. 送信するメッセージの長さに合わせてマスタデータカウンタを初期化します。

6. 終了します。

10.12.3 マスタ受信機能の開始バッファ、ポインタ、データカウントを設定した後、STARTを起動することによってマスタ受信動作を開始します。

1. マスタデータカウンタを初期化します。

2. データの送信先とするスレーブアドレスを設定し、読み取りビットを追加します。

3. I2CONSETに 0x20を書き込んで STAビットを設定します。

4. マスタ受信バッファを設定します。

5. 受信するメッセージの長さに合わせてマスタデータカウンタを初期化します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 169

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

6. 終了します。

10.12.4 I2C割り込みルーチンI2Cの状態とそれを処理するためにどの状態ルーチンを使用するかを判定します。

1. I2STAから I2Cステータスを読み取ります。

2. ステータス値を使用して、26の可能な状態ルーチンのうちの 1つに分岐します。

10.12.5 モード共通の状態

10.12.5.1 状態 : 0x00

バスエラー。 アドレス指定されていないスレーブモードに切り替えて、バスを解放します。

1. I2CONSETに 0x14を書き込んで、STOビットと AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.5.2 マスタの状態状態 08と状態 10は、どちらもマスタ送信モードとマスタ受信モードに関するものです。R/W ビットは、次の状態がマスタ送信モードとマスタ受信モードのどちらであるかを決定します。

10.12.5.3 状態 : 0x08

START状態を送信済み。 スレーブアドレス +R/Wビットを送信し、ACKビットを受信します。

1. I2DATにスレーブアドレスと R/Wビットを書き込みます。

2. I2CONSETに 0x04を書き込んで、AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. マスタ送信モードデータバッファを設定します。

5. マスタ受信モードデータバッファを設定します。

6. マスタデータカウンタを初期化します。

7. 終了します。

10.12.5.4 状態 : 0x10

Repeated START 状態を送信済み。 スレーブアドレス +R/W ビットを送信し、ACK ビットを受信します。

1. I2DATにスレーブアドレスと R/Wビットを書き込みます。

2. I2CONSETに 0x04を書き込んで、AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. マスタ送信モードデータバッファを設定します。

5. マスタ受信モードデータバッファを設定します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 170

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

6. マスタデータカウンタを初期化します。

7. 終了します。

10.12.6 マスタトランスミッタの状態

10.12.6.1 状態 : 0x18

前の状態は状態 8または状態 10、スレーブアドレス +書き込み送信済み、ACK受信済み。最初のデータバイトを送信し、ACKビットを受信します。

1. I2DATをマスタ送信バッファからの最初のデータバイトとともにロードします。

2. I2CONSETに 0x04を書き込んで、AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. マスタ送信バッファのポインタをインクリメントします。

5. 終了します。

10.12.6.2 状態 : 0x20

スレーブアドレス +書き込みを送信済み。NOT ACKを受信済み。 STOP状態を送信します。

1. I2CONSETに 0x14を書き込んで、STOビットと AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.6.3 状態 : 0x28

データを送信済み。ACKを受信済み。 送信したデータが最後のデータバイトであった場合は STOP状態を送信し、そうでない場合は次のデータバイトを送信します。

1. マスタデータカウンタをデクリメントします。最後のデータバイトでない場合はステップ 5に進みます。

2. I2CONSETに 0x14を書き込んで、STOビットと AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. 終了します。

5. I2DATをマスタ送信バッファの次のデータバイトとともにロードします。

6. I2CONSETに 0x04を書き込んで、AAビットを設定します。

7. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

8. マスタ送信バッファのポインタをインクリメントします。

9. 終了します。

10.12.6.4 状態 : 0x30

データを送信済み。NOT ACKを受信済み。 STOP状態を送信します。

1. I2CONSETに 0x14を書き込んで、STOビットと AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 171

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

10.12.6.5 状態 : 0x38

スレーブアドレス+書き込みまたはデータの間にアービトレーションを失いました。 バスを解放し、アドレス指定されていないスレーブモードに切り替わります。 バスが再び空き状態になったときに、新たに START状態を送信します。

1. I2CONSETに 0x24を書き込んで、STAビットと AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.7 マスタレシーバの状態

10.12.7.1 状態 : 0x40

前の状態は状態 08 または状態 10。スレーブアドレス + 読み取り送信済み、ACK 受信済み。 データを受信し、ACKを返します。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.7.2 状態 : 0x48

スレーブアドレス +読み取りを送信済み。NOT ACKを受信済み。 STOP状態を送信します。

1. I2CONSETに 0x14を書き込んで、STOビットと AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.7.3 状態 : 0x50

データを受信済み、ACK を返送済み。 I2DAT からデータを読み取ります。 追加のデータを受信します。 これが最後のデータバイトである場合は NOT ACK を返しますが、それ以外の場合は ACKを返します。

1. I2DATからマスタ受信バッファへデータバイトを読み込みます。

2. マスタデータカウンタをデクリメントします。最後のデータバイトでない場合はステップ 5に進みます。

3. I2CONCLRに 0x0Cを書き込んで、SIフラグと AAビットをクリアします。

4. 終了します。

5. I2CONSETに 0x04を書き込んで、AAビットを設定します。

6. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

7. マスタ受信バッファのポインタをインクリメントします。

8. 終了します。

10.12.7.4 状態 : 0x58

データを受信済み、NOT ACKを返送済み。 I2DATからデータを読み取ります。 STOP状態を送信します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 172

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

1. I2DATからマスタ受信バッファへデータバイトを読み込みます。

2. I2CONSETに 0x14を書き込んで、STOビットと AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. 終了します。

10.12.8 スレーブレシーバの状態

10.12.8.1 状態 : 0x60

自身のスレーブアドレス +書き込みを受信済み、ACKを返送済み。 データを受信し、ACKを返します。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. スレーブ受信モードデータバッファを設定します。

4. スレーブデータカウンタを初期化します。

5. 終了します。

10.12.8.2 状態 : 0x68

バスマスタのときにスレーブアドレスおよび R/W ビットでアービトレーションを失いました。 自身のスレーブアドレス +書き込みを受信済み、ACKを返送済み。 データを受信し、ACKを返します。 バスが再び解放された後でマスタモードをリスタートするようにSTAを設定します。

1. I2CONSETに 0x24を書き込んで、STAビットと AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. スレーブ受信モードデータバッファを設定します。

4. スレーブデータカウンタを初期化します。

5. 終了します。

10.12.8.3 状態 : 0x70

ゼネラルコールを受信済み、ACKを返送済み。 データを受信し、ACKを返します。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. スレーブ受信モードデータバッファを設定します。

4. スレーブデータカウンタを初期化します。

5. 終了します。

10.12.8.4 状態 : 0x78

バスマスタのときにスレーブアドレス +R/Wビットでアービトレーションを失いました。ゼネラルコールを受信済み、ACKを返送済み。 データを受信し、ACKを返します。 バスが再び解放された後でマスタモードをリスタートするように STAを設定します。

1. I2CONSETに 0x24を書き込んで、STAビットと AAビットを設定します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 173

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. スレーブ受信モードデータバッファを設定します。

4. スレーブデータカウンタを初期化します。

5. 終了します。

10.12.8.5 状態 : 0x80

以前は自身のスレーブアドレスでアドレス指定されていました。 データを受信済み、ACKを返送済み。 追加のデータを読み取ります。

1. I2DATからスレーブ受信バッファへデータバイトを読み込みます。

2. スレーブデータカウンタをデクリメントします。最後のデータバイトでない場合はステップ 5に進みます。

3. I2CONCLRに 0x0Cを書き込んで、SIフラグと AAビットをクリアします。

4. 終了します。

5. I2CONSETに 0x04を書き込んで、AAビットを設定します。

6. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

7. スレーブ受信バッファのポインタをインクリメントします。

8. 終了します。

10.12.8.6 状態 : 0x88

以前は自身のスレーブアドレスでアドレス指定されていました。 データを受信済み、NOTACK を返送済み。 受信したデータは保存しません。 アドレス指定されていないスレーブモードに切り替わります。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.8.7 状態 : 0x90

以前はゼネラルコールでアドレス指定されていました。 データを受信済み、ACKを返送済み。 受信したデータを保存します。 最初のデータバイトのみ受信し、ACK を送信します。追加のデータを受信し、NOT ACKを送信します。

1. I2DATからスレーブ受信バッファへデータバイトを読み込みます。

2. I2CONCLRに 0x0Cを書き込んで、SIフラグと AAビットをクリアします。

3. 終了します。

10.12.8.8 状態 : 0x98

以前はゼネラルコールでアドレス指定されていました。 データを受信済み、NOT ACKを返送済み。 受信したデータは保存しません。 アドレス指定されていないスレーブモードに切り替わります。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 174

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

3. 終了します。

10.12.8.9 状態 : 0xA0

依然としてスレーブとしてアドレス指定されている間に、STOP 状態または RepeatedSTART 状態を受信しました。 データは保存されません。 アドレス指定されていないスレーブモードに切り替わります。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.9 スレーブトランスミッタの状態

10.12.9.1 状態 : 0xA8

自身のスレーブアドレス +読み取りを受信済み、ACKを返送済み。 データを送信し、ACKビットを受信します。

1. I2DATをスレーブ送信バッファから最初のデータバイトとともにロードします。

2. I2CONSETに 0x04を書き込んで、AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. スレーブ送信モードデータバッファを設定します。

5. スレーブ送信バッファのポインタをインクリメントします。

6. 終了します。

10.12.9.2 状態 : 0xB0

バスマスタのときにスレーブアドレスおよび R/W ビットでアービトレーションを失いました。 自身のスレーブアドレス +読み取りを受信済み、ACKを返送済み。 データを送信し、ACK ビットを受信します。 バスが再び解放された後でマスタモードをリスタートするように STAを設定します。

1. I2DATをスレーブ送信バッファから最初のデータバイトとともにロードします。

2. I2CONSETに 0x24を書き込んで、STAビットと AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. スレーブ送信モードデータバッファを設定します。

5. スレーブ送信バッファのポインタをインクリメントします。

6. 終了します。

10.12.9.3 状態 : 0xB8

データを送信済み。ACKを受信済み。 データを送信し、ACKビットを受信します。

1. I2DATをスレーブ送信バッファからデータバイトとともにロードします。

2. I2CONSETに 0x04を書き込んで、AAビットを設定します。

3. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

4. スレーブ送信バッファのポインタをインクリメントします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 175

NXP Semiconductors UM10398第 10章:LPC111x/LPC11C1x I2Cバスインターフェース

参考資料

5. 終了します。

10.12.9.4 状態 : 0xC0

データを送信済み、NOT ACKを受信済み。 アドレス指定されていないスレーブモードに切り替わります。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

10.12.9.5 状態 : 0xC8

最後のデータバイトを送信済み、ACK を受信済み。 アドレス指定されていないスレーブモードに切り替わります。

1. I2CONSETに 0x04を書き込んで、AAビットを設定します。

2. I2CONCLRに 0x08を書き込んで、SIフラグをクリアします。

3. 終了します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 176

参考資料

11.1 この章を読む前に

SPI ブロックは、LPC111x と LPC11C1x のすべての部品で同一です。 第 2 の SPI ブロック(SPI1)は LQFP48および PLCC44パッケージで提供されます。 SPI1は HVQFN33パッケージでは提供されません。

注意 : どちらの SPIブロックも SSPのフル機能セットを備えており、すべてのレジスタ名に SSPという接頭辞が付いています。

11.2 基本構成

SPI0/1は以下のレジスタを使用して設定します。

1. ピン : SPIピンは、IOCONFIGレジスタブロックで設定する必要があります。 また、IOCON_LOC レジスタ(Section 6.4.2 を参照)を使用して、SCK0 機能に対するピン位置も選択してください。

2. 電力 : SYSAHBCLKCTRLレジスタのビット 11と 18を設定します(Table 19)。

3. ペリフェラルクロック : SSP0/1CLKDIV レジスタに書き込むことにより、SPI0/1 ペリフェラルクロックをイネーブルにします(Section 3.4.15および Section 3.4.17)。

4. リセット : SPIブロックにアクセスする前に、必ず PRESETCTRLレジスタ(Table 7)の SSP_RST_Nビット(ビット 0とビット 2)を 1に設定してください。 これによって、SPIブロックへのリセット信号がデアサートされます。

11.3 特長

• Motorola SPI、4線式 TI SSI、および National Semiconductor Microwireバスと互換。

• 同期シリアル通信。• マスタ /スレーブ操作をサポート。

• 送受信用の 8フレームの FIFO。

• 4~ 16ビットのフレーム。

11.4 概要

SPI/SSP は、SPI、4 線式 SSI、Microwire バスで動作可能な同期シリアルポート(SSP:Synchronous Serial Port)コントローラです。 バス上の複数のマスタやスレーブとやり取りすることが可能です。 特定のデータ転送中は、1つのマスタと 1つのスレーブのみがバス上で通信できます。 データ転送は基本的には全二重で行われ、4 ~ 16 ビットフレームのデータが、マスタからスレーブおよびスレーブからマスタへと流れます。 実際には、それらの多数のデータの流れの中で、1つの流れだけが意味のある重要データを伝送していることがよくあります。

UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 177

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

LPC111x/LPC11C1xは 2つの SPI/同期シリアルポートコントローラを備えています。

11.5 ピンの説明

Table 161. SPI pin descriptions

Pin name

Type Interface pin name/function

Pin description

SPI SSI Microwire

SCK0/1 I/O SCK CLK SK シリアルクロック。 SCK/CLK/SK はデータ転送を同期させるために使用されるクロック信号です。 この信号はマスタによって駆動され、スレーブによって受信されます。 SPI/SSP インターフェースの使用時は、このクロックをアクティブハイまたはアクティブローにプログラムで設定できますが、その他の場合は常にアクティブハイになります。 SCK はデータ転送時にのみ切り替わります。 転送時以外、SPI/SSPインターフェースは SCKを非アクティブに保持するか、または SCK を駆動しません(ハイインピーダンス状態のままにします)。

SSEL0/1 I/O SSEL FS CS フレーム同期 / スレーブ選択。 SPI/SSP インターフェースはバスマスタのとき、シリアルデータの開始前にこの信号を駆動してアクティブ状態にし、データの送信後に解除して非アクティブ状態にします。 選択されているバスとモードに応じて、この信号のアクティブ状態はハイまたはローで示されます。 SPI/SSP インターフェースがバススレーブの場合、この信号は、使用されているプロトコルに基づいてマスタからのデータの現存を制限します。バスマスタとバススレーブがそれぞれ1つだけ存在する場合は、マスタからのフレーム同期 /スレーブ選択信号を、スレーブの対応する入力に直接接続できます。 バス上に複数のスレーブが存在する場合は、1つの転送に複数のスレーブが応答するのを防ぐために、通常は、フレーム選択 /スレーブ選択入力の制限が必要です。

MISO0/1 I/O MISO DR(M)DX(S)

SI(M)SO(S)

マスタインスレーブアウト。 MISO 信号はスレーブからマスタにシリアルデータを転送します。SPI/SSP がスレーブの場合は、この信号によりシリアルデータを出力します。 SPI/SSP がマスタの場合は、クロックで同期をとりながら、この信号から転送されるシリアルデータを取り入れます。 SPI/SSPがスレーブで、FS/SSELによって選択されていない場合、SPI/SSP はこの信号を駆動しません(信号をハイインピーダンス状態のままにします)。

MOSI0/1 I/O MOSI DX(M)DR(S)

SO(M)SI(S)

マスタアウトスレーブイン。 MOSI 信号はマスタからスレーブにシリアルデータを転送します。SPI/SSP がマスタの場合は、この信号によりシリアルデータを出力します。 SPI/SSP がスレーブの場合は、クロックで同期をとりながら、この信号から転送されるシリアルデータを取り入れます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 178

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

注意 : SCK0機能は、3つの異なるピン位置(HVQFNパッケージでは 2つのピン位置)に多重に割り当てられています。 IOCON レジスタで SCK0 機能を選択すると同時に、IOCON_LOCレジスタ(Section 6.4.2を参照)を使用して、SCK0機能に対する物理的なピン位置を選択してください。 SCK1ピンは多重化されていません。

11.6 クロックと電力の制御

SPIブロックは、AHBCLKCTRLレジスタによってゲート制御されます(Table 19を参照)。SPI ペリフェラルクロックは、SPI クロック分周器とプリスケーラによって使用され、SSP0/1CLKDIVレジスタによって制御されます(Section 3.4.15を参照)。

SPI0/1_PCLKクロックは、SSP0/1CLKDIVレジスタ(Section 3.4.15を参照)でディスエーブルにすることができます。また、SPIブロックは、節電のために、AHBCLKCTRLレジスタ(Table 19)でディスエーブルにすることができます。

注意 : SPI ブロックにアクセスする前に、必ず PRESETCTRL レジスタ(Table 7)のSSP0/1_RST_N ビット(ビット 0 とビット 2)を 1 に設定してください。 これによって、SSPブロックへのリセット信号がデアサートされます。

11.7 レジスタの説明

SPIコントローラのレジスタアドレスについては、Table 162および Table 163を参照してください。

注意 : SPIコントローラが SSPのフル機能を備えていることを示すために、レジスタ名には SSPという接頭辞が付いています。

Table 162. Register overview: SPI0 (base address 0x4004 0000)

Name Access Address offset

Description Reset Value[1]

SSP0CR0 R/W 0x000 制御レジスタ 0。 シリアルクロックレート、バスのタイプ、データサイズを選択します。

0

SSP0CR1 R/W 0x004 制御レジスタ 1。 マスタ /スレーブおよびその他のモードを選択します。 0

SSP0DR R/W 0x008 データレジスタ。 送信 FIFO が満杯になるまで書き込み、受信 FIFO が空になるまで読み出します。

0

SSP0SR RO 0x00C ステータスレジスタ 0 x 0 0 0 00003

SSP0CPSR R/W 0x010 クロックプリスケールレジスタ 0

SSP0IMSC R/W 0x014 割り込みマスクセット /クリアレジスタ 0

SSP0RIS RO 0x018 原割り込みステータスレジスタ 0 x 0 0 0 00008

SSP0MIS RO 0x01C マスク割り込みステータスレジスタ 0

SSP0ICR WO 0x020 SSPICR割り込みクリアレジスタ NA

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 179

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.7.1 SPI/SSP制御レジスタ 0

このレジスタは、SPI/SSPコントローラの基本動作を制御します �

Table 163. Register overview: SPI1 (base address 0x4005 8000)

Name Access Address offset

Description Reset Value[1]

SSP1CR0 R/W 0x000 制御レジスタ 0。 シリアルクロックレート、バスのタイプ、データサイズを選択します。

0

SSP1CR1 R/W 0x004 制御レジスタ 1。 マスタ /スレーブおよびその他のモードを選択します。 0

SSP1DR R/W 0x008 データレジスタ。 送信 FIFO が満杯になるまで書き込み、受信 FIFO が空になるまで読み出します。

0

SSP1SR RO 0x00C ステータスレジスタ 0 x 0 0 0 00003

SSP1CPSR R/W 0x010 クロックプリスケールレジスタ 0

SSP1IMSC R/W 0x014 割り込みマスクセット /クリアレジスタ 0

SSP1RIS RO 0x018 原割り込みステータスレジスタ 0 x 0 0 0 00008

SSP1MIS RO 0x01C マスク割り込みステータスレジスタ 0

SSP1ICR WO 0x020 SSPICR割り込みクリアレジスタ NA

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

Table 164: SPI/SSP Control Register 0 (SSP0CR0 - address 0x4004 0000, SSP1CR0 - address 0x4005 8000) bit description

Bit Symbol Value Description Reset Value

3:0 DSS データサイズ選択。 このフィールドは各フレームの転送ビット数を制御します。 値 0000-0010 は未サポートのため、使用しないでください。

0000

0011 4ビット転送0100 5ビット転送0101 6ビット転送0110 7ビット転送0111 8ビット転送1000 9ビット転送1001 10ビット転送1010 11ビット転送1011 12ビット転送1100 13ビット転送1101 14ビット転送1110 15ビット転送1111 16ビット転送

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 180

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.7.2 SPI/SSP0制御レジスタ 1

このレジスタは、SPI/SSPコントローラの特定の動作を制御します。

5:4 FRF フレーム形式 00

00 SPI

01 TI

10 Microwire

11 この組み合せは未サポートのため、使用しないでください。6 CPOL クロック出力極性。 このビットはSPIモードでのみ使用されま

す。0

0 SPI コントローラはフレーム間のバスクロックをローに維持します。

1 SPI コントローラはフレーム間のバスクロックをハイに維持します。

7 CPHA クロック出力位相。 このビットはSPIモードでのみ使用されます。

0

0 SPI コントローラはフレームの最初のクロック遷移でシリアルデータをキャプチャします(クロックラインのフレーム間状態からの遷移)

1 SPIコントローラはフレームの2番目のクロック遷移でシリアルデータをキャプチャします(クロックラインのフレーム間状態への遷移)

15:8 SCR シリアルクロックレート。 バス上のビット当たりのプリスケーラ出力クロック数から 1 を引いた値。 CPSDVSR をプリスケール分周器、APBクロック(PCLK)をプリスケーラにクロックを供給するクロックと仮定した場合、ビット周波数は式PCLK / (CPSDVSR × [SCR+1])で算出されます。

0x00

31:16 - - 予約済み -

Table 164: SPI/SSP Control Register 0 (SSP0CR0 - address 0x4004 0000, SSP1CR0 - address 0x4005 8000) bit description

Bit Symbol Value Description Reset Value

Table 165: SPI/SSP Control Register 1 (SSP0CR1 - address 0x4004 0004, SSP1CR1 - address 0x4005 8004) bit description

Bit Symbol Value Description Reset Value

0 LBM ループバックモード 0

0 通常動作時1 シリアル入力は、シリアル入力ピン(MISO または MOSI)

からではなく、シリアル出力(MOSIまたは MISO)から取得されます。

1 SSE SPIイネーブル 0

0 SPIコントローラはディスエーブル。1 SPI コントローラはシリアルバス上で他のデバイスと通信

します。 ソフトウェアでは、このビットを設定する前に、他の SPI/SSP レジスタおよび割り込みコントローラレジスタに適切な制御情報を書き込む必要があります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 181

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.7.3 SPI/SSPデータレジスタ

ソフトウェアを使用して、このレジスタに送信するデータを書き込んだり、受信済みのデータを読み取ることができます。

11.7.4 SPI/SSPステータスレジスタ

この読み取り専用レジスタは、SPIコントローラの現在のステータスを示します。

2 MS マスタ /スレーブモード。このビットは SSEビットが 0の場合にのみ書き込むことができます。

0

0 SPIコントローラはバス上でマスタとして動作して、SCLK、MOSI、SSELの各ラインを駆動し、MISOラインを受信します。

1 SPI コントローラはバス上でスレーブとして動作して、MISOラインを駆動し、SCLK、MOSI、SSELの各ラインを受信します。

3 SOD スレーブ出力ディスエーブル。 このビットはスレーブモード(MS = 1)の場合にのみ関係します。 1の場合は、SPIコントローラによる送信データライン(MISO)の駆動がブロックされます。

0

31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

Table 165: SPI/SSP Control Register 1 (SSP0CR1 - address 0x4004 0004, SSP1CR1 - address 0x4005 8004) bit description

Bit Symbol Value Description Reset Value

Table 166: SPI/SSP Data Register (SSP0DR - address 0x4004 0008, SSP1DR - address 0x4005 8008) bit description

Bit Symbol Description Reset Value

15:0 DATA 書き込み : ステータスレジスタの TNFビットが 1の場合(Tx FIFOが満杯ではない場合)は、ソフトウェアによって随時、以降のフレームで送信するデータをこのレジスタに書き込むことができます。 Tx FIFO がすでに空で、SPI コントローラがバス上でビジーではない場合は、ただちにデータ送信が開始されます。 それ以外の場合は、以前からのデータがすべて送信(および受信)されるとただちに、このレジスタに書き込んだデータが送信されます。 データ長が 16 ビット未満の場合は、このレジスタに右詰めでデータを書き込む必要があります。読み取り : ステータスレジスタの RNEビットが 1の場合(Rx FIFOが空ではない場合)は、ソフトウェアによって随時、このレジスタからデータを読み取ることができます。 ソフトウェアによってこのレジスタが読み取られると、SPI コントローラは RxFIFO 内の最も古いフレームのデータを返します。 データ長が 16ビット未満の場合、このフィールドのデータは右詰めになり、上位ビットには 0が書き込まれます。

0x0000

31:16 - 予約済み -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 182

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.7.5 SPI/SSPクロックプリスケールレジスタ

このレジスタは、プリスケーラがプリスケーラクロックを得るために SPIペリフェラルクロック SPI_PCLKを分周する際の係数を制御します。このプリスケーラクロックは、ビットクロックを決定するために、さらにSSPCR0レジスタのSCR係数によって分周されます。

重要 : SSPnCPSR値は適切に初期化してください。初期化が不適切な場合、SPIコントローラは正確にデータを伝送できません。

スレーブモードの場合、マスタが供給する SPIクロックレートは Section 3.4.15で選択された SPIペリフェラルクロックの 1/12以下でなければなりません。 SSPnCPSRレジスタの値は関係しません。

マスタモードの場合、CPSDVSRmin = 2以上(偶数のみ)。

11.7.6 SPI/SSP割り込みマスクセット /クリアレジスタ

このレジスタは、SPIコントローラの 4つの割り込み条件それぞれについてイネーブルにするかどうかを制御します。 留意点として、ARMの場合、「マスクされている」という用語は従来のコンピュータ用語とは逆の意味で使用されています(従来のコンピュータ用語では、「マスクされている」とは「ディスエーブルであること」を意味します)。 ARM では、「イネーブルであること」を示す場合に「マスクされている」と表現します。 混乱を避けるために、ここでは「マスクされている」という用語を使用しないことにします。

Table 167: SPI/SSP Status Register (SSP0SR - address 0x4004 000C, SSP1SR - address 0x4005 800C) bit description

Bit Symbol Description Reset Value

0 TFE 送信 FIFOが空。 送信 FIFOが空の場合、このビットは 1(空でない場合は 0)。

1

1 TNF 送信 FIFO が満杯ではない。 Tx FIFO が満杯の場合、このビットは 0(満杯でない場合は 1)。

1

2 RNE 受信 FIFOが空ではない。 受信 FIFOが空の場合、このビットは 0(空でない場合は 1)。

0

3 RFF 受信 FIFOが満杯。 受信 FIFOが満杯の場合、このビットは 1(満杯でない場合は 0)。

0

4 BSY ビジー。 SPIコントローラがアイドル状態の場合、このビットは0。フレームを送信 /受信中か、Tx FIFOが空でない場合は 1。

0

31:5 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

Table 168: SPI/SSP Clock Prescale Register (SSP0CPSR - address 0x4004 0010, SSP1CPSR - address 0x4005 8010) bit description

Bit Symbol Description Reset Value

7:0 CPSDVSR 2~ 254の偶数値。この値によって SPI_PCLKを分周して、プリスケーラ出力クロックを得ます。 ビット 0は常に 0と読み取られます。

0

31:8 - 予約済み -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 183

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.7.7 SPI/SSP原割り込みステータスレジスタ

この読み取り専用レジスタでは、SSPIMSC レジスタでイネーブルになっているか否かにかかわらず、アサートされた割り込み条件に対して 1が設定されます。

Table 169: SPI/SSP Interrupt Mask Set/Clear register (SSP0IMSC - address 0x4004 0014, SSP1IMSC - address 0x4005 8014) bit description

Bit Symbol Description Reset Value

0 RORIM 受信オーバーランが発生した場合(Rx FIFO が満杯でさらにフレームを完全に受信した場合)に割り込みをイネーブルにするには、ソフトウェアによってこのビットを設定する必要があります。 ARM の仕様では、これが発生した場合、前回のフレームデータが新しいフレームデータによって上書きされます。

0

1 RTIM 受信タイムアウト条件が発生した場合に割り込みをイネーブルにするには、ソフトウェアによってこのビットを設定する必要があります。 受信タイムアウトは Rx FIFO が空ではなく、「タイムアウト時間」中に読み取りがなかった場合に発生します。 タイムアウト時間はマスタモードとスレーブモードで同一で、SSPビットレートによって決定されます。 PCLK / (CPSDVSR× [SCR+1]) のとき、32ビットです。

0

2 RXIM Rx FIFO が半分以上満杯になった場合に割り込みをイネーブルにするには、ソフトウェアによってこのビットを設定する必要があります。

0

3 TXIM Tx FIFO が半分以上空になった場合に割り込みをイネーブルにするには、ソフトウェアによってこのビットを設定する必要があります。

0

31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

Table 170: SPI/SSP Raw Interrupt Status register (SSP0RIS - address 0x4004 0018, SSP1RIS - address 0x4005 8018) bit description

Bit Symbol Description Reset Value

0 RORRIS Rx FIFOが満杯時にさらにフレームを完全に受信した場合、このビットは 1 に設定されます。 ARM の仕様では、これが発生した場合、前回のフレームデータが新しいフレームデータによって上書きされます。

0

1 RTRIS Rx FIFOが空ではなく、「タイムアウト時間」中に読み取りがなかった場合、このビットは 1に設定されます。 タイムアウト時間はマスタモードとスレーブモードで同一で、SSPビットレートによって決定されます。 PCLK / (CPSDVSR×[SCR+1]) のとき、32ビットです。

0

2 RXRIS Rx FIFOが半分以上満杯の場合、このビットは 1に設定されます。

0

3 TXRIS Tx FIFOが半分以上空の場合、このビットは 1に設定されます。 1

31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 184

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.7.8 SPI/SSPマスク割り込みステータスレジスタ

この読み取り専用レジスタでは、SSPIMSC レジスタでイネーブルになっている、アサートされた割り込み条件に対して 1が設定されます。 SPI 割り込みが発生すると、割り込みサービスルーチンによってこのレジスタが読み取られ、割り込みの原因が特定されます。

11.7.9 SPI/SSP割り込みクリアレジスタ

ソフトウェアによってこの書き込み専用レジスタに 1を(1つまたは複数)書き込むことにより、SPI コントローラの対応する割り込み条件をクリアできます。 留意点として、他の 2つの割り込み条件は、適切な FIFOを書き込むか読み取ることによりクリアすることも、SSPIMSCレジスタの対応ビットをクリアしてディスエーブルにすることもできます。

Table 171: SPI/SSP Masked Interrupt Status register (SSP0MIS - address 0x4004 001C, SSP1MIS - address 0x4005 801C) bit description

Bit Symbol Description Reset Value

0 RORMIS Rx FIFOが満杯時にさらにフレームを完全に受信した場合、このビットは 1に設定され、割り込みがイネーブルになります。

0

1 RTMIS Rx FIFOが空ではなく、「タイムアウト時間」中に読み取りがなかった場合、このビットは 1 に設定され、割り込みがイネーブルになります。 タイムアウト時間はマスタモードとスレーブモードで同一で、SSP ビットレートによって決定されます。PCLK / (CPSDVSR× [SCR+1]) のとき、32ビットです。

0

2 RXMIS Rx FIFO が半分以上満杯の場合、このビットは 1 に設定され、割り込みがイネーブルになります。

0

3 TXMIS Tx FIFOが半分以上空の場合、このビットは 1に設定され、割り込みがイネーブルになります。

0

31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

Table 172: SPI/SSP interrupt Clear Register (SSP0ICR - address 0x4004 0020, SSP1ICR - address 0x4005 8020) bit description

Bit Symbol Description Reset Value

0 RORIC このビットに 1を書き込むと、「RxFIFOが満杯時にフレームを受信した」ことによる割り込みをクリアできます。

NA

1 RTIC このビットに 1 を書き込むと、「Rx FIFO が空ではなく、タイムアウト時間中に読み取りがなかった」ことによる割り込みをクリアできます。 タイムアウト時間はマスタモードとスレーブモードで同一で、SSP ビットレートによって決定されます。PCLK / (CPSDVSR× [SCR+1]) のとき、32ビットです。

NA

31:2 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 185

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.8 機能説明

11.8.1 Texas Instruments同期シリアルフレーム形式Figure 33 は、SPI モジュールがサポートしている、4 線式 Texas Instruments 同期シリアルフレーム形式を示しています。

このモードでデバイスがマスタとして設定されている場合、CLKと FSは強制的に LOWに設定され、送信データライン DXは、SSPがアイドル状態になると常に 3ステートモードに設定されます。 送信 FIFO の最下位エントリにデータが格納されると、1CLK 周期の間、FSが HIGHになります。 また、送信する値も送信 FIFOから送信ロジックのシリアルシフトレジスタに転送されます。 CLKの次の立ち上がりエッジで、4~ 16ビットデータフレームの MSBが DXピンにシフトアウトされます。 同様に、受信データの MSBが、オフチップシリアルスレーブデバイスによって DRピンにシフトアウトされます。

その後、SSPとオフチップシリアルスレーブデバイスの両方が、各 CLKの立ち下がりエッジでそれぞれのシリアルシフタにデータビットをクロッキングします。 受信データは、LSB がラッチされた後、CLK の最初の立ち上がりエッジでシリアルシフタから受信 FIFOに転送されます。

11.8.2 SPIフレーム形式SPIインターフェースは 4線式インターフェースで、SSEL信号がスレーブ選択として動作します。 SPI 形式の主な特長は、SSPCR0 制御レジスタの CPOL ビットと CPHA ビットによって、SCK信号の非アクティブ状態および位相をプログラムできることです。

a. Single frame transfer

b. Continuous/back-to-back frames transfer

Fig 33. Texas Instruments Synchronous Serial Frame Format: a) Single and b) Continuous/back-to-back Two Frames Transfer

CLK

FS

DX/DR

4 to 16 bits

MSB LSB

CLK

FS

DX/DR LSBMSB LSBMSB

4 to 16 bits 4 to 16 bits

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 186

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

11.8.2.1 クロック極性(CPOL)とクロック位相(CPHA)の制御CPOLクロック極性制御ビットが LOWの場合は、SCKピンの値が LOW(定常状態)になります。 CPOL クロック極性制御ビットが HIGH の場合は、データ転送時を除き、CLK ピンの値が HIGH(定常状態)に設定されます。

CPHA制御ビットは、データをキャプチャするクロックエッジを選択して、その定常状態を変更させます。 この変更は、先頭ビット(最初のデータキャプチャエッジの前のクロック遷移を許可した場合に送信される先頭ビット、または許可しない場合に送信される先頭ビット)に最も大きく影響します。 CPHA位相制御ビットが LOWの場合は、最初のクロックエッジ遷移でデータがキャプチャされます。 CPHA クロック位相制御ビットが HIGH の場合は、2番目のクロックエッジ遷移でデータがキャプチャされます。

11.8.2.2 SPI形式(CPOL=0、CPHA=0の場合)Figure 34は、CPOL = 0、CPHA = 0とした場合の SPI形式について、シングル転送および連続転送の信号シーケンスを示しています。

この構成では、アイドル周期中は以下のようになります。

• CLK信号が強制的に LOWに設定されます。

• SSELが強制的に HIGHに設定されます。

• MOSI/MISO送信パッドがハイインピーダンス状態になります。

a. Single transfer with CPOL=0 and CPHA=0

b. Continuous transfer with CPOL=0 and CPHA=0

Fig 34. SPI frame format with CPOL=0 and CPHA=0 (a) Single and b) Continuous Transfer)

SCKSSEL

MOSIMSB LSB

QMSB LSB

4 to 16 bits

MISO

SCKSSEL

MOSI

MISO

4 to 16 bits 4 to 16 bits

MSB LSBMSB LSB

QMSB LSB QMSB LSB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 187

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

SPI/SSPがイネーブルになっており、送信 FIFO内に有効なデータが存在している場合は、SSELマスタ信号を LOWにすることによって送信の開始が通知されます。 これにより、マスタの MISO入力ライン上でスレーブデータがイネーブルになります。 マスタの MOSIもイネーブルになります。

1/2SCK周期後、有効なマスタデータがMOSIピンに転送されます。 以上でマスタデータとスレーブデータの両方が設定され、さらに 1/2SCK 周期後、SCK マスタクロックピンがHIGHになります。

データは SCK 信号の立ち上がりエッジでキャプチャされ、立ち下がりエッジで伝搬されます。

シングルワード転送の場合、データワードの全ビットの転送が完了し、最終ビットがキャプチャされてから 1SCK周期後に、SSELラインが HIGH(アイドル状態)に戻ります。

ただし、連続転送の場合は、各データワード転送の合間に、SSEL 信号を HIGH にパルスする必要があります。 その理由は、スレーブ選択ピンがそのシリアルペリフェラルレジスタにデータをフリーズして、CPHA ビットが論理 0 の場合には変更を認めないからです。したがって、シリアルペリフェラルデータの書き込みをイネーブルにするために、マスタデバイスは、各データ転送の合間にスレーブデバイスの SSELピンを HIGHにする必要があります。 連続転送が完了すると、最終ビットがキャプチャされてから 1SCK 周期後に、SSELピンはアイドル状態に戻ります。

11.8.2.3 SPI形式(CPOL=0、CPHA=1の場合)Figure 35は、CPOL = 0、CPHA = 1とした場合の SPI形式について、転送信号シーケンスを示しています。この図は、シングル転送と連続転送の両方に該当します。

この構成では、アイドル周期中は以下のようになります。

• CLK信号が強制的に LOWに設定されます。

• SSELが強制的に HIGHに設定されます。

• MOSI/MISO送信パッドがハイインピーダンス状態になります。

Fig 35. SPI frame format with CPOL=0 and CPHA=1

SCKSSEL

MOSI

Q

4 to 16 bits

MISO Q MSB

MSB LSB

LSB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 188

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

SPI/SSPがイネーブルになっており、送信 FIFO内に有効なデータが存在している場合は、SSEL マスタ信号を LOW にすることによって送信の開始が通知されます。 マスタの MOSIピンもイネーブルになります。 さらに1/2SCK周期後、妥当なマスタデータとスレーブデータがそれぞれの転送ラインでイネーブルになります。 同時に、立ち上がりエッジの遷移に伴い SCKがイネーブルになります。

データは SCK 信号の立ち下がりエッジでキャプチャされ、立ち上がりエッジで伝搬されます。

シングルワード転送の場合、全ビットの転送が完了し、最終ビットがキャプチャされてから 1SCK周期後に、SSELラインが HIGH(アイドル状態)に戻ります。

連続転送の場合は、連続するデータワード転送の合間に SSEL ピンが LOW にホールドされ、シングルワード転送と同様に終了します。

11.8.2.4 SPI形式(CPOL = 1、CPHA = 0の場合)Figure 36は、CPOL=1、CPHA=0とした場合の SPI形式について、シングル転送および連続転送の信号シーケンスを示しています。

この構成では、アイドル周期中は以下のようになります。

• CLK信号が強制的に HIGHに設定されます。

• SSELが強制的に HIGHに設定されます。

• MOSI/MISO送信パッドがハイインピーダンス状態になります。

a. Single transfer with CPOL=1 and CPHA=0

b. Continuous transfer with CPOL=1 and CPHA=0

Fig 36. SPI frame format with CPOL = 1 and CPHA = 0 (a) Single and b) Continuous Transfer)

SCK

SSEL

QMSB LSB

4 to 16 bits

MISO

MOSIMSB LSB

SCK

SSEL

MOSI

MISO

4 to 16 bits 4 to 16 bits

MSB LSBMSB LSB

QMSB LSB QMSB LSB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 189

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

SPI/SSPがイネーブルになっており、送信 FIFO内に有効なデータが存在している場合は、SSELマスタ信号を LOWにすることによって送信の開始が通知されます。これにより、スレーブデータがただちにマスタの MISOラインに転送されます。 マスタの MOSIピンもイネーブルになります。

1/2 周期後、有効なマスタデータが MOSI ラインに転送されます。 以上でマスタデータとスレーブデータの両方が設定され、さらに 1/2SCK 周期後、SCK マスタクロックピンがLOW になります。 つまり、データは SCK 信号の立ち下がりエッジでキャプチャされ、立ち上がりエッジで伝搬されます。

シングルワード転送の場合、データワードの全ビットの転送が完了し、最終ビットがキャプチャされてから 1SCK周期後に、SSELラインが HIGH(アイドル状態)に戻ります。

ただし、連続転送の場合は、各データワード転送の合間に、SSEL 信号を HIGH にパルスする必要があります。 その理由は、スレーブ選択ピンがそのシリアルペリフェラルレジスタにデータをフリーズして、CPHA ビットが論理 0 の場合には変更を認めないからです。したがって、シリアルペリフェラルデータの書き込みをイネーブルにするために、マスタデバイスは、各データ転送の合間にスレーブデバイスの SSELピンを HIGHにする必要があります。 連続転送が完了すると、最終ビットがキャプチャされてから 1SCK 周期後に、SSELピンはアイドル状態に戻ります。

11.8.2.5 SPI形式(CPOL = 1、CPHA = 1の場合)Figure 37は、CPOL = 1、CPHA = 1とした場合の SPI形式について、転送信号シーケンスを示しています。この図は、シングル転送と連続転送の両方に該当します。

この構成では、アイドル周期中は以下のようになります。

• CLK信号が強制的に HIGHに設定されます。

• SSELが強制的に HIGHに設定されます。

• MOSI/MISO送信パッドがハイインピーダンス状態になります。

SPI/SSPがイネーブルになっており、送信 FIFO内に有効なデータが存在している場合は、SSEL マスタ信号を LOW にすることによって送信の開始が通知されます。 マスタの MOSIもイネーブルになります。 さらに 1/2SCK 周期後、マスタデータとスレーブデータがそれぞれの転送ラインでイネーブルになります。 同時に、立ち下がりエッジの遷移に伴い SCKがイネーブルになります。 データは SCK信号の立ち上がりエッジでキャプチャされ、立ち下がりエッジで伝搬されます。

Fig 37. SPI Frame Format with CPOL = 1 and CPHA = 1

SCK

SSEL

MOSI

Q

4 to 16 bits

MISO Q MSB

MSB LSB

LSB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 190

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

シングルワード転送の場合、全ビットの転送が完了し、最終ビットがキャプチャされてから 1SCK 周期後に、SSEL ラインが HIGH(アイドル状態)に戻ります。 連続転送の場合、SSELピンは、最後のワードの最終ビットがキャプチャされるまで LOW(アクティブ状態)に留まり、その後、前述のアイドル状態に戻ります。 通常、連続転送の場合は、連続するデータワード転送の合間に SSEL ピンが LOW にホールドされ、シングルワード転送と同様に終了します。

11.8.3 Semiconductor Microwireフレーム形式Figure 38はシングルフレームに対するMicrowireフレーム形式を示し、Figure 39は連続フレーム転送時のMicrowireフレーム形式を示しています。

Microwire形式は SPI形式に非常に似ていますが、マスタスレーブメッセージ伝搬方式を使用して、全二重ではなく半二重で伝送します。 各シリアル伝送は、SPI/SSPからオフチップスレーブデバイスに送信される 8 ビットの制御ワードから始まります。 この送信中、SPI/SSPは入力データを受信しません。 8ビット制御メッセージが送信されると、オフチップスレーブはそれをデコードし、メッセージの最終ビットが送信された後に 1 シリアルクロック待機し、要求されたデータを返します。 返されるデータは 4 ~ 16ビット長で、フレーム全体の長さは 13~ 25ビットになります。

この構成では、アイドル周期中は以下のようになります。

• SK信号が強制的に LOWに設定されます。

• CSが強制的に HIGHに設定されます。

• 送信データライン SOが恣意的に LOWに設定されます。

Fig 38. Microwire frame format (single transfer)

Fig 39. Microwire frame format (continuos transfers)

SKCS

SO

4 to 16 bitsof output data

SI 8-bit control

MSB LSB

0 MSB LSB

SK

CS

SO

SI

MSB LSB

4 to 16 bitsof output data

8-bit control

4 to 16 bitsof output data

MSB LSB0 MSB LSB

LSB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 191

NXP Semiconductors UM10398第 11章:LPC111x/LPC11C1x SSP機能搭載 SPI0/1

参考資料

伝送は送信 FIFOに制御バイトを書き込むことによってトリガされます。CSの立ち下がりエッジによって、送信 FIFOの最下位エントリに格納されている値が送信ロジックのシリアルシフトレジスタに転送され、8ビット制御フレームのMSBが SOピンにシフトアウトされます。 フレームの伝送中、CSは LOWに留まります。 また、この伝送中、SIピンはトライステートに留まります。

オフチップシリアルスレーブデバイスは、各 SKの立ち上がりエッジでシリアルシフタに各制御ビットをラッチします。 スレーブデバイスは最終ビットをラッチした後、制御バイトを 1クロック待機状態の間にデコードし、データを返送することによって SPI/SSPに応答します。 各ビットは、SK の立ち下がりエッジで SI ラインに押し出されます。 一方、SPI/lSSPは SKの立ち上がりエッジで各ビットをラッチします。 シングル転送の場合は、フレームの最後で最終ビットが受信シリアルシフタにラッチされてから 1 クロック周期後に、CS信号が HIGHになります。これによってデータが受信 FIFOに転送されます。

注記 : オフチップスレーブデバイスは、受信シフタによって LSB がラッチされた後に SKの立ち下がりエッジで、または CSピンが HIGHになったときに、受信ラインをトライステートにすることができます。

連続転送の場合、データ伝送の開始と終了はシングル転送と同様に行われます。 ただし、CSラインは継続的にアサート(LOWにホールド)され、データの伝送が連続的に発生します。 現行フレームから受信したデータの LSBの直後に、次のフレームの制御バイトが続きます。 受信された各値は、そのフレームの LSBが SPI/SPPにラッチされた後、SKの立ち下がりエッジで受信シフタから転送されます。

11.8.3.1 Microwireモードの SKに対する CSのセットアップ /ホールドタイム要件Microwireモードでは、SPI/SSPスレーブは、CSが LOWになった後に、SKの立ち上がりエッジで受信データの先頭ビットをサンプリングします。 フリーランの SK を操作するマスタは、SKの立ち上がりエッジに対して、CS信号に十分なセットアップマージンとホールドマージンを確保する必要があります。

Figure 40 は、セットアップタイムとホールドタイムの要件を示しています。 SPI/SSP スレーブによって受信データの先頭ビットがサンプリングされる SKの立ち上がりエッジに対しては、CSのセットアップタイムとして、SPI/SSPが動作する SK周期の少なくとも 2倍の時間が必要です。 また、このエッジの前の SKの立ち上がりエッジに対しては、CSのホールドタイムとして、少なくとも 1SK周期を確保する必要があります。

Fig 40. Microwire frame format setup and hold details

SKCS

SI

tHOLD= tSK

tSETUP=2*tSK

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 192

参考資料

12.1 この章を読む前に

C_CANブロックは、LPC11C12および LPC11C14部品のみで利用可能です。

12.2 基本構成

C_CANは以下のレジスタを使用して設定します。

1. 電力 : SYSAHBCLKCTRLレジスタで、ビット 17(Table 19)を設定します。

2. クロック : C_CAN ブロックへのペリフェラルクロックを正確に保つために、システムオシレータをメインクロック(Table 16)として、またはシステム PLL(Table14)への入力として選択します。 100 kbit/s を超える C_CAN ボーレートが必要な場合は、IRCを選択しないでください。

3. リセット : C_CANブロックにアクセスする前に、必ず PRESETCTRLレジスタ(Table7)の CAN_RST_N ビット(ビット 3)を 1 に設定してください。これによって、C_CANブロックへのリセット信号がデアサートされます。

12.3 特長

• プロトコル Ver 2.0 part Aおよび Bに準拠

• 最大 1 Mbit/sのビットレートをサポート

• 32のメッセージオブジェクトをサポート

• 各メッセージオブジェクトに固有の IDマスク

• プログラマブルな FIFOモード(メッセージオブジェクトの連結)

• マスク可能な割り込み• タイムトリガ CANアプリケーション用の自動再送信ディスエーブルモード(DAR)をサポート

• セルフテスト動作用のプログラマブルなループバックモード

12.4 概説

CAN(Controller Area Network)は、シリアルデータ通信用のハイパフォーマンス通信プロトコルの定義です。 C_CANコントローラは、CAN Specification Version 2.0Bに準拠したCANプロトコルの完全実装を提供します。 C_CANコントローラを使用することにより、非常にハイレベルなセキュリティを備えた分散リアルタイム制御を下支えとして、低コスト多重配線の強固なローカルネットワークを構築できます。

CANコントローラは、CANコア、メッセージ RAM、メッセージハンドラ、制御レジスタ、および APBインターフェースで構成されています。

UM10398第 12章:LPC11C1x C_CANRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 193

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

CAN ネットワークで通信するために、個別のメッセージオブジェクトが設定されます。メッセージオブジェクトおよび受信メッセージの受信フィルタリング用IDマスクは、メッセージ RAMに格納されます。

メッセージ処理に関連する全機能がメッセージハンドラに実装されています。 それらの機能として、受信フィルタリング、CANコアとメッセージ RAM間のメッセージ転送、送信要求の処理、モジュール割り込みの生成などが挙げられます。

CANコントローラのレジスタセットには、APBバスを介して外部 CPUから直接アクセスできます。 それらのレジスタを使用して、CANコアおよびメッセージハンドラの制御 /設定や、メッセージ RAMへのアクセスを行います。

12.5 ピンの説明

12.6 クロックと電力の制御

C_CAN(C_CANシステムクロック)およびプログラマブル C_CANクロック分周器(Table204を参照)へのペリフェラルクロックは、システムクロック(Table 19を参照)によって供給されます。 このクロックは、節電のために、SYSAHBCLKCTRLレジスタのビット 17によってディスエーブルにすることができます。

Fig 41. C_CAN block diagram

CAN CORE

MESSAGE RAM

REGISTER INTERFACE

MESSAGEHANDLER

APBbus

APBINTERFACE

CAN_TXD CAN_RXD

C_CAN

Table 173. CCAN pin description

Pin Type Description

CAN_TXD O C_CAN送信出力CAN_RXD I C_CAN受信入力

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 194

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

注意 : 100 kbit/sを超える C_CANボーレートが必要な場合は、システムクロックのクロックソースとしてシステムオシレータを選択する必要があります。 それよりも低いボーレートの場合は、クロックソースとして IRCを使用することもできます。

12.7 リセットと割り込みの設定

C_CANコントローラは、システム制御ブロックの PRESETCTRLレジスタ(アドレス 0x40048004)のビット 3によってリセットできます。

C_CAN割り込みは、例外番号 13を使用して NVICに接続されます。

12.8 レジスタの説明

C_CANレジスタは、32ビット幅のレジスタとして構成されています。

メッセージ RAMへの CPUアクセスは、2つのインターフェースレジスタセット(IF1とIF2)によって制御されます。 これらのレジスタは RAMに出入りするデータをバッファリングして、CPUアクセスとメッセージ受信 /送信の競合を回避します。

Table 174. Register overview: CCAN (base address 0x4005 0000)

Name Access Address offset

Description Reset value

CANCNTL R/W 0x000 CAN制御 0x0001

CANSTAT R/W 0x004 ステータスレジスタ 0x0000

CANEC RO 0x008 エラーカウンタ 0x0000

CANBT R/W 0x00C ビットタイミングレジスタ 0x2301

CANINT RO 0x010 割り込みレジスタ 0x0000

CANTEST R/W 0x014 テストレジスタ -

CANBRPE R/W 0x018 ボーレートプリスケーラ拡張レジスタ 0x0000

- - 0x01C 予約済み -

CANIF1_CMDREQ R/W 0x020 メッセージインターフェース1コマンド要求

0x0001

CANIF1_CMDMSK R/W 0x024 メッセージインターフェース1コマンドマスク

0x0000

CANIF1_MSK1 R/W 0x028 メッセージインターフェース 1マスク 1 0xFFFF

CANIF1_MSK2 R/W 0x02C メッセージインターフェース 1マスク 2 0xFFFF

CANIF1_ARB1 R/W 0x030 メッセージインターフェース1アービトレーション 1

0x0000

CANIF1_ARB2 R/W 0x034 メッセージインターフェース1アービトレーション 2

0x0000

CANIF1_MCTRL R/W 0x038 メッセージインターフェース1メッセージ制御

0x0000

CANIF1_DA1 R/W 0x03C メッセージインターフェース 1 データA1

0x0000

CANIF1_DA2 R/W 0x040 メッセージインターフェース 1 データA2

0x0000

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 195

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

CANIF1_DB1 R/W 0x044 メッセージインターフェース 1 データB1

0x0000

CANIF1_DB2 R/W 0x048 メッセージインターフェース 1 データB2

0x0000

- - 0x04C - 0x07C

予約済み -

CANIF2_CMDREQ R/W 0x080 メッセージインターフェース2コマンド要求

0x0001

CANIF2_CMDMSK R/W 0x084 メッセージインターフェース2コマンドマスク

0x0000

CANIF2_MSK1 R/W 0x088 メッセージインターフェース 2マスク 1 0xFFFF

CANIF2_MSK2 R/W 0x08C メッセージインターフェース 2マスク 2 0xFFFF

CANIF2_ARB1 R/W 0x090 メッセージインターフェース2アービトレーション 1

0x0000

CANIF2_ARB2 R/W 0x094 メッセージインターフェース2アービトレーション 2

0x0000

CANIF2_MCTRL R/W 0x098 メッセージインターフェース2メッセージ制御

0x0000

CANIF2_DA1 R/W 0x09C メッセージインターフェース 2 データA1

0x0000

CANIF2_DA2 R/W 0x0A0 メッセージインターフェース 2 データA2

0x0000

CANIF2_DB1 R/W 0x0A4 メッセージインターフェース 2 データB1

0x0000

CANIF2_DB2 R/W 0x0A8 メッセージインターフェース 2 データB2

0x0000

- - 0x0AC - 0x0FC

予約済み -

CANTXREQ1 RO 0x100 送信要求 1 0x0000

CANTXREQ2 RO 0x104 送信要求 2 0x0000

- - 0x108 - 0x11C

予約済み -

CANND1 RO 0x120 新規データ 1 0x0000

CANND2 RO 0x124 新規データ 2 0x0000

- - 0x128 - 0x13C

予約済み -

CANIR1 RO 0x140 割り込み保留 1 0x0000

CANIR2 RO 0x144 割り込み保留 2 0x0000

- - 0x148 - 0x15C

予約済み -

CANMSGV1 RO 0x160 メッセージ有効 1 0x0000

Table 174. Register overview: CCAN (base address 0x4005 0000)(続き)Name Access Address

offsetDescription Reset

value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 196

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.1 CANプロトコルレジスタ

12.8.1.1 CAN制御レジスタCANCTRL レジスタのリセット値 0x0001 は、ソフトウェアによる初期化をイネーブルにします(INIT = 1)。 CPUが INITビットを 0にリセットするまで、C_CANは CANバスに影響を与えません。

CANMSGV2 RO 0x164 メッセージ有効 2 0x0000

- - 0x168 - 0x17C

予約済み -

CANCLKDIV R/W 0x180 CANクロック分周器レジスタ 0x0001

Table 174. Register overview: CCAN (base address 0x4005 0000)(続き)Name Access Address

offsetDescription Reset

value

Table 175. CAN control registers (CANCNTL, address 0x4005 0000) bit description

Bit Symbol Value Description Reset value

Access

0 INIT 初期化 1 R/W

0 通常動作1 初期化を開始します。 リセットした場合は、ソ

フトウェアによって CAN コントローラを初期化する必要があります。

1 IE モジュール割り込みイネーブル 0 R/W

0 CAN割り込みをディスエーブルにします。 割り込みラインは常に HIGHです。

1 CAN割り込みをイネーブルにします。 割り込みラインは LOW に設定され、保留中のすべての割り込みがクリアされるまで LOW のままになります。

2 SIE ステータス変化割り込みイネーブル 0 R/W

0 ステータス変化割り込みをディスエーブルにします。 ステータス変化割り込みは生成されません。

1 ステータス変化割り込みをイネーブルにします。 メッセージ転送が正常に完了した場合やCANバスエラーが検出された場合に、ステータス変化割り込みが生成されます。

3 EIE エラー割り込みイネーブル 0 R/W

0 エラー割り込みをディスエーブルにします。 エラーステータス割り込みは生成されません。

1 エラー割り込みをイネーブルにします。CANSTATレジスタのビットBOFFまたはビットEWARN が変化すると、割り込みが生成されます。

4 - - 予約済み 0 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 197

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

注意 : INIT ビットの設定またはリセットによってバスオフ回復シーケンス(CAN

Specification Rev. 2.0を参照)を短縮することはできません。 デバイスがバスオフ状態になると、INITが設定され、すべてのバスアクティビティが停止します。 CPUによって INITがクリアされると、デバイスはバスアイドルが 129回発生(129× 11の HIGH/リセッシブビットの連続)するまで待機してから通常動作を再開します。 バスオフ回復シーケンスが終了すると、エラー管理カウンタがリセットされます。

INITのリセット後の待機時間中に、連続する 11個の HIGH/リセッシブビットが検出されるたびに、ステータスレジスタ CANSTATに Bit0Errorコードが書き込まれます。これにより、CPU はバスオフ回復シーケンスの進捗を監視して、CAN バスが LOW/ ドミナントのままかどうか(問題が継続しているかどうか)を判断することができます。

12.8.1.2 CANステータスレジスタ

ステータス割り込みは、ビット BOFF、EWARN、RXOK、TXOK、または LECによって生成されます。 CANCTRL レジスタで EIE と SIE がそれぞれイネーブルに設定されている場合、BOFF と EWARNはエラー割り込みを生成し、RXOK、TXOK、および LECはステータス変化割り込みを生成します。

EPASSビットの変化、あるいは RXOK、TXOK、LECへの書き込みによってステータス割り込みが生成されることはありません。

CANSTATレジスタを読み取ると、CANIRレジスタのステータス割り込み値(0x8000)はクリアされます。

5 DAR 自動再送信ディスエーブル 0 R/W

0 問題が生じたメッセージの自動再送信がイネーブルになります。

1 自動再送信がディスエーブルになります。6 CCE 設定変更イネーブル 0 R/W

0 CPU はビットタイミングレジスタに書き込みアクセスすることができません。

1 INITビットが 1の場合に、CPUは CANBTレジスタに書き込みアクセスすることができます。

7 TEST テストモードイネーブル 0 R/W

0 通常動作1 テストモード

31:8 - 予約済み - -

Table 175. CAN control registers (CANCNTL, address 0x4005 0000) bit description (続き)Bit Symbol Value Description Reset

valueAccess

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 198

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

Table 176. CAN status register (CANSTAT, address 0x4005 0004) bit description

Bit Symbol Value Description Reset value

Access

2:0 LEC 最後のエラーコードCANバス上で最後に発生したエラーのタイプ。LECフィールドには CANバス上で最後に発生したエラーのタイプを示すコードが書き込まれます。エラーが発生せずにメッセージが転送(受信または送信)されると、このフィールドは「0」にクリアされます。 更新をチェックするために、CPUによって未使用コード「111」が書き込まれることがあります。

000 R/W

000 エラーなし。001 Stuff error(スタッフエラー): 同一状態のビットが 6 個以上連続して

発生することが許可されていない受信メッセージの部分で、同一状態のビットが 6個以上連続して発生しています。

010 Form error(フォームエラー): 受信フレームの固定フォーマット部分のフォーマットが正しくありません。

011 AckError(Ack エラー): この CAN コアが送信したメッセージに対して肯定応答がありませんでした。

100 Bit1Error(ビット 1エラー): (アービトレーションフィールドを除く)メッセージの送信中に、デバイスが HIGH/ リセッシブレベル(論理値「1」のビット)の送信を試みましたが、検出されたバス値が LOW/ドミナントでした。

101 Bit0Error(ビット 0 エラー): メッセージ(または、肯定応答ビット /アクティブエラーフラグ /オーバーロードフラグ)の送信中に、デバイスが LOW/ ドミナントレベル(データビットまたは ID ビットの論理値「0」)の送信を試みましたが、検出されたバス値が HIGH/リセッシブでした。 バスオフ回復中に、連続する 11 個の HIGH/ リセッシブビットが検出されるたびにこのステータスが設定されます。 これによって CPUは、バスオフ回復シーケンスの進捗を監視できます(バスが LOW/ドミナントのままではないかどうか、つまり問題が継続していないかどうかが示されます)。

110 CRCError(CRCエラー): 受信メッセージの CRCチェックサムに誤りがありました。

111 未使用 : CANバスイベントが検出されませんでした(CPUによって書き込まれます)。

3 TXOK メッセージ正常送信このビットはCPUによってリセットされます。 CANコントローラによってリセットされることはありません。

0 R/W

0 このビットがCPUによってリセットされてから、正常に送信されたメッセージがありません。

1 このビットが CPUによってリセットされてから、1つのメッセージが正常に送信されました(エラーが発生せず、少なくとも 1つの他のノードから肯定応答が返されました)。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 199

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.1.3 CANエラーカウンタ

4 RXOK メッセージ正常受信このビットはCPUによってリセットされます。 CANコントローラによってリセットされることはありません。

0 R/W

0 このビットが CPU によって前回リセットされてから、正常に受信したメッセージがありません。

1 このビットが CPUによって前回リセットされてから、1つのメッセージを正常に受信しました(受信フィルタリングの結果には関係しません)。

5 EPASS エラーパッシブ 0 RO

0 CANコントローラはエラーアクティブ状態です。1 CANコントローラは、CANédól2.0で定義されているエラーパッシブ状

態です。6 EWARN 警告ステータス 0 RO

0 両方のエラーカウンタがエラー警告リミットである 96 を下回っています。

1 EMLの少なくとも 1つのエラーカウンタがエラー警告リミットの 96に達しています。

7 BOFF バスオフステータス 0 RO

0 CANモジュールはバスオフ状態ではありません。1 CANコントローラはバスオフ状態です。

31:8 - - 予約済み

Table 176. CAN status register (CANSTAT, address 0x4005 0004) bit description (続き)Bit Symbol Value Description Reset

valueAccess

Table 177. CAN error counter (CANEC, address 0x4005 0008) bit description

Bit Symbol Value Description Reset value

Access

7:0 TEC[7:0] 送信エラーカウンタ送信エラーカウンタの現在の値(最大値は 255)

0 RO

14:8 REC[14:8] 受信エラーカウンタ受信エラーカウンタの現在の値(最大値は 127)

- RO

15 RP 受信エラーパッシブ - RO

0 受信カウンタはエラーパッシブレベル以下です。1 受信カウンタは、CAN édól2.0 で定義されている

エラーパッシブレベルに達しています。31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 200

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.1.4 CANビットタイミングレジスタ

[1] これらのビットに設定した値はハードウェアによってビット値 1と解釈されます。

たとえば、LPC11Cxシステムクロックが 8 MHzに設定されている場合、リセット値 0x2301に対する C_CANのビットレートは 500 kBit/sとなります。

CANCTRL で設定変更がイネーブルになっていて、ソフトウェアによってコントローラが初期化された場合(CAN制御レジスタでビット CCEとビット INITが設定されている場合)にのみ、これらのレジスタに書き込むことができます。

ビットタイミングの詳細については、Section 12.9.5 と『Bosch C_CAN user’s manual,

revision 1.2』を参照してください。

ボーレートプリスケーラビット基本単位時間 tqは、BRP値によって決定されます。

tq = BRP / fsys

(fsysは、C_CANブロックへの LPC11Cxシステムクロックです)

時間セグメント 1および 2

時間セグメント TSEG1と TSEG2は、ビット時間当たりの基本単位時間数とサンプルポイントの位置を決定します。

tTSEG1/2 = tq× (TSEG1/2 + 1)

Table 178. CAN bit timing register (CANBT, address 0x4005 000C) bit description

Bit Symbol Value Description Reset value

Access

5:0 BRP 0x01 - 0x3F[1]

ボーレートプリスケーラビット基本単位時間を導き出すために、オシレータの周波数を分周する値。 ビット時間はこの基本単位時間の倍数から成り立っています。 ボーレートプリスケーラの有効値は 0 ~63です。

000001 R/W

7:6 SJW 0x0 - 0x3[1] (再)同期ジャンプ幅有効な設定値は 0~ 3です。

00 R/W

11:8 TSEG1 0x01 - 0x0F[1]

サンプルポイントの前の時間セグメント有効値は 1~ 15です。

0011 R/W

14:12 TSEG2 0x0 - 0x7[1] サンプルポイントの後の時間セグメント有効値は 0~ 7です。

010 R/W

31:15 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 201

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

同期ジャンプ幅異なるバスコントローラのクロックオシレータ間の位相シフトを補正するために、すべてのバスコントローラは、現在転送中の関連する信号エッジすべてで再同期する必要があります。 同期ジャンプ幅 tSJWは、最大クロックサイクル数を定義します。再同期によって特定のビット周期が短縮または延長される場合があります。

tSJW = tq× (SJW + 1)

12.8.1.5 CAN割り込みレジスタ

複数の割り込みが保留中の場合、CAN 割り込みレジスタは、発生順序とは関係なく、最も優先順位の高い保留中の割り込みを指します。 割り込みは、CPUによってクリアされるまで、保留状態となります。 INTIDの値が 0x0000ではなく、IEが設定されている場合に、CPU への割り込みラインはアクティブになります。 INTID の値が 0x0000 に戻る(割り込みの原因がリセットされる)か IE がリセットされるまで、割り込みラインはアクティブのままです。

ステータス割り込みは最優先の割り込みです。 メッセージ割り込みでは、メッセージオブジェクトの割り込み優先順位はメッセージ番号が大きいほど低くなります。

メッセージ割り込みは、メッセージオブジェクトの INTPNDビットをクリアすることによりクリアできます。 ステータス割り込みは、ステータスレジスタを読み取ることによりクリアできます。

12.8.1.6 CANテストレジスタ

テストレジスタへの書き込みアクセスは、CAN制御レジスタの TESTビットを設定することによりイネーブルになります。

他のテスト機能を組み合せることもできますが、TX[1:0] = ’00’を選択すると、メッセージ転送に問題が生じます。

Table 179. CAN interrupt register (CANINT, address 0x4005 0010) bit description

Bit Symbol Value Description Reset value

Access

15:0 INTID[15:0] 0 R

0x0000 割り込みは保留されていません。0x0001 - 0x0020

割り込みを発生させたメッセージオブジェクトの番号

0x0021 - 0x7FFF

未使用

0x8000 ステータス割り込み0x8001 - 0xFFFF

未使用

31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 202

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.1.7 CANボーレートプリスケーラ拡張レジスタ

Table 180. CAN test register (CANTEST, address 0x4005 0014) bit description

Bit Symbol Value Description Reset value

Access

1:0 - - -

2 BASIC ベーシックモード 0 R/W

0 ベーシックモードはディスエーブルです。1 IF1レジスタを Txバッファとして使用し、IF2

レジスタを Rxバッファとして使用します。3 SILENT サイレントモード 0 R/W

0 通常動作1 モジュールはサイレントモードです。

4 LBACK ループバックモード 0 R/W

0 ループバックモードはディスエーブルです。1 ループバックモードはイネーブルです。

6:5 TX[1:0] CAN_TXDピンの制御 00 R/W

00 CAN_TXD ピンのレベルを CAN コントローラによって制御します。 これはリセット時の値です。

01 サンプルポイントを CAN_TXD ピンで監視することができます。

10 CAN_TXDピンを LOW/ドミナントに駆動します。

11 CAN_TXD ピンを HIGH/ リセッシブに駆動します。

7 RX CAN_RXDピンの実際値を監視します。 0 R

0 CANバスはリセッシブです(CAN_RXD = ’1’)。1 CANバスはドミナントです(CAN_RXD = ’0’)。

31:8 - R/W -

Table 181. CAN baud rate prescaler extension register (CANBRPE, address 0x4005 0018) bit description

Bit Symbol Value Description Reset value

Access

3:0 BRPE 0x00 - 0x0F ボーレートプリスケーラ拡張BRPE をプログラミングして、ボーレートプリスケーラの値を最大1023まで拡張できます。 ハードウェアはこの値を、BRPE(MSB)と BRP(LSB)の値に 1を足した値として解釈します。

0x0000 R/W

31:4 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 203

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2 メッセージインターフェースレジスタメッセージ RAMへの CPUアクセスを制御するために、2セットのインターフェースレジスタが用意されています。 インターフェースレジスタは転送するデータをバッファリングすることによって、メッセージ RAMへの CPUアクセスと CANメッセージの送受信が競合するのを回避します。 メッセージ RAM と IFx メッセージバッファレジスタとの間では、メッセージオブジェクト全体(Section 12.8.2.1)またはその一部を 1回で転送することができます。

2つのインターフェースレジスタセットの機能は同じです(ベーシックテストモードは除く)。 両方のプロセスが相互に割り込みを行うことができるようにして、一方のレジスタセットをメッセージ RAM へのデータ転送に使用し、もう一方のレジスタセットをメッセージ RAMからのデータ転送に使用することができます。

各インターフェースレジスタセットは、それぞれに固有のコマンドレジスタによって制御されるメッセージバッファレジスタで構成されています。 コマンドマスクレジスタは、データ転送の方向とメッセージオブジェクトの転送部分を指定します。 コマンド要求レジスタは、メッセージ RAM内のメッセージオブジェクトを転送のターゲットまたはソースとして選択して、コマンドマスクレジスタで指定されたアクションを開始するために使用します。

メッセージ RAM内には 32のメッセージオブジェクトがあります。 メッセージ RAMへのCPUアクセスと CANメッセージの送受信が競合するのを回避するため、CPUはメッセージオブジェクトに直接アクセスすることはできません。 メッセージオブジェクトへのアクセスは IFxインターフェースレジスタを介して行われます。

メッセージ処理の詳細については、Section 12.9.3を参照してください。

12.8.2.1 メッセージオブジェクト

メッセージオブジェクトには、メッセージインターフェースレジスタのさまざまなビットからの情報が格納されています。 下記の Table 183は、メッセージオブジェクトの構造の概略です。 メッセージオブジェクトのビットと、それらのビットが設定 /クリアされるインターフェースレジスタを示しています。 ビットの機能については、該当するインターフェースレジスタを参照してください。

Table 182. Message interface registers

IF1 register names IF1 register set IF2 register names IF2 register set

CANIF1_CMDREQ IF1 command request CANIF2_CMDREQ IF2 command request

CANIF1_CMDMASK IF1 command mask CANIF2_CMDMASK IF2 command mask

CANIF1_MASK1 IF1 mask 1 CANIF2_MSK1 IF2 mask 1

CANIF1_MASK2 IF1 mask 2 CANIF2_MSK2 IF2 mask 2

CANIF1_ARB1 IF1 arbitration 1 CANIF2_ARB1 IF2 arbitration 1

CANIF1_ARB2 IF1 arbitration 2 CANIF2_ARB2 IF2 arbitration 2

CANIF1_MCTRL IF1 message control CANIF2_MCTRL IF2 message control

CANIF1_DA1 IF1 data A1 CANIF2_DA1 IF2 data A1

CANIF1_DA2 IF1 data A2 CANIF2_DA2 IF2 data A2

CANIF1_DB1 IF1 data B1 CANIF2_DB1 IF2 data B1

CANIF1_DB2 IF1 data B2 CANIF2_DB2 IF2 data B2

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 204

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2.2 CANメッセージインターフェースコマンド要求レジスタ

CPU によってコマンド要求レジスタにメッセージ番号が書き込まれると、メッセージの転送がただちに開始されます。 この書き込み操作が行われると、転送中であることを CPUに通知するために、BUSYビットが自動的に「1」に設定され、信号 CAN_WAIT_Bが LOWになります。 CAN_CLKの 3~ 6 周期後、インターフェースレジスタとメッセージ RAM間の転送が完了します。 BUSYビットが 0に戻り、信号 CAN_WAIT_Bも元に戻ります。

[1] 有効ではないメッセージ番号がコマンド要求レジスタに書き込まれた場合、そのメッセージ番号は有効な値に変換され、該当するメッセージオブジェクトが転送されます。

12.8.2.3 CANメッセージインターフェースコマンドマスクレジスタ

IFxコマンドマスクレジスタの制御ビットによって、転送方向を指定し、データ転送のソースまたはターゲットとして使用する IFxメッセージバッファレジスタを選択します。 レジスタビットの機能は、コマンドマスクレジスタの WR/RDビット(ビット 7)で選択された転送方向(読み取り /書き込み)に応じて異なります。

Table 183. Structure of a message object in the message RAM

UMASK MSK[28:0] MXTD MDIR EOB NEWDAT MSGLST RXIE TXIE INTPND

IF1/2_MCTRL IF1/2_MSK1/2 IF1/2_MCTRL

RMTEN TXRQST MSGVAL ID[28:0] XTD DIR DLC3 DLC2 DLC1 DLC0

IF1/2_MCTRL IF1/2_ARB1/2 IF1/2_MCTRL

DATA0 DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7

IF1/2_DA1 IF1/2_DA2 IF1/2_DB1 IF1/2_DB2

Table 184. CAN message interface command request registers (CANIF1_CMDREQ, address 0x4005 0020 and CANIF2_CMDREQ, address 0x4005 0080) bit description

Bit Symbol Value Description Reset Value

Access

5:0 Message Number

メッセージ番号 0x00 R/W

0x01 - 0x20

有効なメッセージ番号メッセージRAM内のメッセージオブジェクトをデータ転送用に選択します。

0x00 有効なメッセージ番号でありません。 この値は 0x20と解釈されます。[1]

0x21 - 0x3F

有効なメッセージ番号でありません。 この値は 0x01 - 0x1Fと解釈されます。[1]

14:6 - 予約済み - -

15 BUSY ビジーフラグ 0 RO

0 このコマンド要求レジスタに対する読み取り /書き込みアクションが完了すると、ハードウェアにより 0に設定されます。

1 このコマンド要求レジスタへの書き込み時に、ハードウェアにより 1 にセットされます。

31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 205

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

WR/RDの選択

1: 書き込み転送方向(メッセージ RAMに書き込み)

0: 読み取り転送方向(メッセージ RAMから読み取り)

Table 185. CAN message interface command mask registers (CANIF1_CMDMSK, address 0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - write direction

Bit Symbol Value Description Reset value

Access

0 DATA_B データバイト 4~ 7へのアクセス 0 R/W

0 データバイト 4~ 7は変化しません。1 データバイト 4~ 7をメッセージオブジェク

トに転送します。1 DATA_A データバイト 0~ 3へのアクセス 0 R/W

0 データバイト 0~ 3は変化しません。1 データバイト 0~ 3をメッセージオブジェク

トに転送します。2 TXRQST 送信要求ビットへのアクセス 0 R/W

0 送信要求なし。 IF1/2_MCTRLの TXRQSRTビットは変化しません。注意 : このビットを設定して送信を要求した場合、CANIFn_MCTRLレジスタのTXRQSTビットは無視されます。

1 送信を要求。 IF1/2_MCTRL の TXRQST ビットを設定します。

3 CLRINTPND - 書き込み方向ではこのビットは無視されます。

0 R/W

4 CTRL 制御ビットへのアクセス 0 R/W

0 制御ビットは変化しません。1 制御ビットをメッセージオブジェクトに転送

します。5 ARB アービトレーションビットへのアクセス 0 R/W

0 アービトレーションビットは変化しません。1 ID、DIR ビット、XTD ビット、MSGVAL ビッ

トをメッセージオブジェクトに転送します。6 MASK マスクビットへのアクセス 0 R/W

0 マスクビットは変化しません。1 ID MASK、MDIR、MXTDをメッセージオブジェ

クトに転送します。7 WR/RD 1 書き込み転送

選択されたメッセージバッファレジスタから、コマンド要求レジスタ CANIFn_CMDREQで指定されたメッセージオブジェクトにデータを転送します。

0 R/W

31:8 - - 予約済み 0 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 206

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

Table 186. CAN message interface command mask registers (CANIF1_CMDMSK, address 0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - read direction

Bit Symbol Value Description Reset value

Access

0 DATA_B データバイト 4~ 7へのアクセス 0 R/W

0 データバイト 4~ 7は変化しません。1 データバイト4~7を IFxメッセージバッファ

レジスタに転送します。1 DATA_A データバイト 0~ 3へのアクセス 0 R/W

0 データバイト 0~ 3は変化しません。1 データバイト0~3を IFxメッセージバッファ

に転送します。2 NEWDAT 新規データビットへのアクセス 0 R/W

0 NEWDATビットは変化しません。注意 : メッセージオブジェクトへの読み取りアクセスを、IF1/2_MCTRL の制御ビットINTPNDおよび NEWDATのリセットと組み合せることができます。 IFxメッセージ制御レジスタに転送されたこれらのビットの値は、常にビットがリセットされる前のステータスを反映します。

1 メッセージオブジェクトのNEWDATビットをクリアします。

3 CLRINTPND 割り込み保留ビットのクリア 0 R/W

0 INTPNDビットは変化しません。1 メッセージオブジェクトの INTPND ビットを

クリアします。4 CTRL 制御ビットへのアクセス 0 R/W

0 制御ビットは変化しません。1 制御ビットを IFx メッセージバッファに転送

します。5 ARB アービトレーションビットへのアクセス 0 R/W

0 アービトレーションビットは変化しません。1 ID、DIR ビット、XTD ビット、MSGVAL ビッ

トを IFx メッセージバッファレジスタに転送します。

6 MASK マスクビットへのアクセス 0 R/W

0 マスクビットは変化しません。1 ID MASK、 MDIR、MXTDを IFxメッセージバッ

ファレジスタに転送します。7 WR/RD 0 読み取り転送

コマンド要求レジスタ CANIFn_CMDREQで指定されたメッセージオブジェクトから、選択されたメッセージバッファレジスタにデータを転送します。

0 R/W

31:8 - - 予約済み 0 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 207

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2.4 IF1および IF2メッセージバッファレジスタメッセージバッファレジスタのビットは、メッセージ RAM内のメッセージオブジェクトを反映します。

12.8.2.4.1 CANメッセージインターフェースコマンドマスク 1レジスタ

12.8.2.4.2 CANメッセージインターフェースコマンドマスク 2レジスタ

Table 187. CAN message interface command mask 1 registers (CANIF1_MSK1, address 0x4005 0028 and CANIF2_MASK1, address 0x4005 0088) bit description

Bit Symbol Value Description Reset value

Access

15:0 MSK[15:0] IDマスク 0xFFFF R/W

0 メッセージ ID 内の対応ビットによって受信フィルタリングでの一致を抑制することはできません。

1 対応する ID ビットを受信フィルタリングに使用します。

31:16 - - 予約済み 0 -

Table 188. CAN message interface command mask 2 registers (CANIF1_MSK2, address 0x4005 002C and CANIF2_MASK2, address 0x4005 008C) bit description

Bit Symbol Value Description Reset value

Access

12:0 MSK[28:16] IDマスク 0xFFF R/W

0 メッセージ ID 内の対応ビットによって受信フィルタリングでの一致を抑制することはできません。

1 対応する ID ビットを受信フィルタリングに使用します。

13 - 予約済み 1 -

14 MDIR メッセージ方向のマスク 1 R/W

0 メッセージ方向ビット(DIR)は受信フィルタリングに影響を与えません。

1 メッセージ方向ビット(DIR)を受信フィルタリングに使用します。

15 MXTD 拡張 IDのマスク 1 R/W

0 拡張 ID ビット(XTD)は受信フィルタリングに影響を与えません。

1 拡張 ID ビット(XRD)を受信フィルタリングに使用します。

31:16 - - 予約済み 0 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 208

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2.4.3 CANメッセージインターフェースコマンドアービトレーション 1レジスタ

12.8.2.4.4 CANメッセージインターフェースコマンドアービトレーション 2レジスタ

Table 189. CAN message interface command arbitration 1 registers (CANIF1_ARB1, address 0x4005 0030 and CANIF2_ARB1, address 0x4005 0090) bit description

Bit Symbol Value Description Reset value

Access

15:0 ID[15:0] メッセージ ID

29ビット ID(「拡張フレーム」)11ビット ID(「標準フレーム」)

0x00 R/W

31:16 - - 予約済み 0 -

Table 190. CAN message interface command arbitration 2 registers (CANIF1_ARB2, address 0x4005 0034 and CANIF2_ARB2, address 0x4005 0094) bit description

Bit Symbol Value Description Reset value

Access

12:0 ID[28:16] メッセージ ID

29ビット ID(「拡張フレーム」)11ビット ID(「標準フレーム」)

0x00 R/W

13 DIR メッセージ方向 0x00 R/W

0 方向 =受信TXRQST に対して、このメッセージオブジェクトの ID を持つリモートフレームが送信されます。 一致する ID を持つデータフレームを受信すると、そのメッセージがこのメッセージオブジェクトに格納されます。

1 方向 =送信TXRQST に対して、各メッセージオブジェクトがデータフレームとして送信されます。 一致する IDを持つリモートフレームを受信すると、このメッセージオブジェクトのTXRQSTビットが設定されます(RMTEN = 1の場合)。

14 XTD 拡張 ID 0x00 R/W

0 このメッセージオブジェクトに対して11ビットの標準 IDが使用されます。1 このメッセージオブジェクトに対して29ビットの拡張 IDが使用されます。

15 MSGVAL メッセージ有効注意 : CPU は、初期化時に CAN 制御レジスタの INIT ビットをリセットする前に、すべての未使用メッセージオブジェクトのMSGVALをリセットする必要があります。 また、ID(ID28~ 0)、制御ビット(XTD、DIR)、データ長コード(DLC3~ 0)を変更する前、あるいはメッセージオブジェクトが不要になった場合にも、このビットをリセットする必要があります。

0 R/W

0 メッセージオブジェクトはメッセージハンドラによって無視されます。1 メッセージオブジェクトはメッセージハンドラにより設定されて処理さ

れます。31:16 - - 予約済み 0 -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 209

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2.4.5 CANメッセージインターフェースメッセージ制御レジスタ

Table 191. CAN message interface message control registers (CANIF1_MCTRL, address 0x4005 0038 and CANIF2_MCTRL, address 0x4005 0098) bit description

Bit Symbol Value Description Reset value

Access

3:0 DLC[3:0] データ長コード注意 : メッセージオブジェクトのデータ長コードは、他ノードにある同じID を持つ対応オブジェクトすべてのデータ長コードと同一になるように定義する必要があります。 メッセージハンドラはデータフレームを格納するときに、受信メッセージから与えられた値に DLCを書き込みます。

0000 R/W

0000 - 0100

データフレームは 0~ 8データバイトです。

0101 - 1111

データフレームは 8データバイトです。

6:4 - 予約済み - -

7 EOB バッファの最後 0 R/W

0 メッセージオブジェクトは FIFO バッファに属していますが、その FIFOバッファの最後のメッセージオブジェクトではありません。

1 単一のメッセージオブジェクトまたは FIFO バッファの最後のメッセージオブジェクト

8 TXRQST 送信要求 0 R/W

0 このメッセージオブジェクトは送信待ちではありません。1 このメッセージオブジェクトの送信を要求されていますが、まだ送信は行

われていません。9 RMTEN リモートイネーブル 0 R/W

0 リモートフレームの受信時に、TXRQSTは変化しません。1 リモートフレームの受信時に、TXRQSTが設定されます。

10 RXIE 受信割り込みイネーブル 0 R/W

0 フレームを正常に受信した後、INTPNDは変化しません。1 フレームを正常に受信した後、INTPNDが設定されます。

11 TXIE 送信割り込みイネーブル 0 R/W

0 フレームを正常に送信した後、INTPNDビットは変化しません。1 フレームを正常に送信した後、INTPNDが設定されます。

12 UMASK 受信マスクの使用注意 : UMASK が 1 に設定されている場合は、メッセージオブジェクトの初期化時に MAGVAL を 1 に設定する前に、メッセージオブジェクトのマスクビットを設定する必要があります。

0 R/W

0 マスクは無視されます。1 受信フィルタリングに対してマスク(MSK28~ 0、MXTD、および MDIR)

を使用します。13 INTPND 割り込み保留 0 R/W

0 このメッセージオブジェクトは割り込みソースではありません。1 このメッセージオブジェクトは割り込みソースです。 優先順位がより高い

他の割り込みソースがない場合、割り込みレジスタの割り込み ID はこのメッセージオブジェクトを指します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 210

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2.4.6 CANメッセージインターフェースデータ A1レジスタ

CAN データフレーム内では、DATA0 が最初に送受信されるバイト、DATA7(CAN_IF1B2と CAN_IF2B2)が最後に送受信されるバイトとなります。 CANのシリアルビットストリームでは、各バイトの MSBが最初に送信されます。

注意 : 受信中は、バイト DATA0が最初に CANコアのシフトレジスタにシフトされ、バイト DATA7 が最後にシフトされます。 メッセージハンドラはデータフレームを格納するときに、8データバイトすべてをメッセージオブジェクトに書き込みます。 データ長コードが 8 未満の場合、メッセージオブジェクトの残りのバイトは不定値によって上書きされます。

12.8.2.4.7 CANメッセージインターフェースデータ A2レジスタ

14 MSGLST メッセージロスト(受信方向のメッセージオブジェクトにのみ有効) 0 R/W

0 前回このビットが CPU によってリセットされてから、メッセージロストは発生していません。

1 NEWDAT がまだ設定されていたときにメッセージハンドラが新しいメッセージをこのオブジェクトに格納し、CPU がメッセージをロストしました。

15 NEWDAT 新規データ 0 R/W

0 前回このフラグが CPU によってクリアされてから、このメッセージオブジェクトのデータ部分にはメッセージハンドラによって書き込まれた新規データはありません。

1 メッセージハンドラまたは CPU によって、このメッセージオブジェクトのデータ部分に新規データが書き込まれています。

31:16 - - 予約済み 0 -

Table 191. CAN message interface message control registers (CANIF1_MCTRL, address 0x4005 0038 and CANIF2_MCTRL, address 0x4005 0098) bit description (続き)

Bit Symbol Value Description Reset value

Access

Table 192. CAN message interface data A1 registers (CANIF1_DA1, address 0x4005 003C and CANIF2_DA1, address 0x4005 009C) bit description

Bit Symbol Description Reset value Access

7:0 DATA0 Data byte 0 0x00 R/W

15:8 DATA1 Data byte 1 0x00 R/W

31:16 - Reserved - -

Table 193. CAN message interface data A2 registers (CANIF1_DA2, address 0x4005 0040 and CANIF2_DA2, address 0x4005 00A0) bit description

Bit Symbol Description Reset value Access

7:0 DATA2 Data byte 2 0x00 R/W

15:8 DATA3 Data byte 3 0x00 R/W

31:16 - Reserved - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 211

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.2.4.8 CANメッセージインターフェースデータ B1レジスタ

12.8.2.4.9 CANメッセージインターフェースデータ B2レジスタ

12.8.3 メッセージハンドラのレジスタメッセージハンドラのレジスタはすべて読み取り専用です。 レジスタの内容(各メッセージオブジェクトの TXRQST ビット、NEWDAT ビット、INTPND ビット、および MSGVALビットと、割り込み ID)は、メッセージハンドラ FSMから提供されるステータス情報です。

12.8.3.1 CAN送信要求 1レジスタこのレジスタには、メッセージオブジェクト 1 ~ 16 の TXRQST ビットが格納されます。CPU は、TXRQST ビットを読み出すことによって、送信要求が保留中のメッセージオブジェクトを確認できます。 CPU から IFx メッセージインターフェースレジスタを介して、あるいは、リモートフレームの受信後または送信の成功後にメッセージハンドラによって、特定のメッセージオブジェクトの TXRQSTビットを設定またはリセットすることができます。

Table 194. CAN message interface data B1 registers (CANIF1_DB1, address 0x4005 0044 and CANIF2_DB1, address 0x4005 00A4) bit description

Bit Symbol Description Reset value Access

7:0 DATA4 Data byte 4 0x00 R/W

15:8 DATA5 Data byte 5 0x00 R/W

31:16 - Reserved - -

Table 195. CAN message interface data B2 registers (CANIF1_DB2, address 0x4005 0048 and CANIF2_DB2, address 0x4005 00A8) bit description

Bit Symbol Description Reset value Access

7:0 DATA6 Data byte 6 0x00 R/W

15:8 DATA7 Data byte 7 0x00 R/W

31:16 - Reserved - -

Table 196. CAN transmission request 1 register (CANTXREQ1, address 0x4005 0100) bit description

Bit Symbol Value Description Reset value

Access

15:0 TXRQST[16:1] メッセージオブジェクト16~ 1の送信要求ビット

0x00 R

0 このメッセージオブジェクトは送信待ちではありません。

1 このメッセージオブジェクトの送信を要求されていますが、まだ送信は行われていません。

31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 212

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.3.2 CAN送信要求 2レジスタこのレジスタには、メッセージオブジェクト 32~ 17の TXRQSTビットが格納されます。CPU は、TXRQST ビットを読み出すことによって、送信要求が保留中のメッセージオブジェクトを確認できます。 CPU から IFx メッセージインターフェースレジスタを介して、あるいは、リモートフレームの受信後または送信の成功後にメッセージハンドラによって、特定のメッセージオブジェクトの TXRQSTビットを設定またはリセットすることができます。

12.8.3.3 CAN新規データ 1レジスタこのレジスタには、メッセージオブジェクト 16~ 1の NEWDATビットが格納されます。CPU は、NEWDAT ビットを読み出すことによって、データ部分が更新されたメッセージオブジェクトを確認できます。 CPUから IFxメッセージインターフェースレジスタを介して、あるいは、データフレームの受信後または送信の成功後にメッセージハンドラによって、特定のメッセージオブジェクトの NEWDAT ビットを設定またはリセットすることができます。

Table 197. CAN transmission request 2 register (CANTXREQ2, address 0x4005 0104) bit description

Bit Symbol Value Description Reset value

Access

15:0 TXRQST[32:17] メッセージオブジェクト 32~ 17の送信要求ビット

0x00 R

0 このメッセージオブジェクトは送信待ちではありません。

1 このメッセージオブジェクトの送信を要求されていますが、まだ送信は行われていません。

31:16 - - 予約済み - -

Table 198. CAN new data 1 register (CANND1, address 0x4005 0120) bit description

Bit Symbol Value Description Reset value

Access

15:0 NEWDAT[16:1] メッセージオブジェクト16~1の新規データビット

0x00 R

0 前回このフラグがCPUによってクリアされてから、このメッセージオブジェクトのデータ部分にはメッセージハンドラによって書き込まれた新規データはありません。

1 メッセージハンドラまたは CPU によって、このメッセージオブジェクトのデータ部分に新規データが書き込まれています。

31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 213

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.3.4 CAN新規データ 2レジスタ

このレジスタには、メッセージオブジェクト 32~ 17の NEWDATビットが格納されます。CPU は、NEWDAT ビットを読み出すことによって、データ部分が更新されたメッセージオブジェクトを確認できます。 CPUから IFxメッセージインターフェースレジスタを介して、あるいは、データフレームの受信後または送信の成功後にメッセージハンドラによって、特定のメッセージオブジェクトの NEWDAT ビットを設定またはリセットすることができます。

12.8.3.5 CAN割り込み保留 1レジスタ

このレジスタには、メッセージオブジェクト 16 ~ 1 の INTPND ビットが格納されます。CPU は、INTPND ビットを読み出すことによって、割り込みが保留中のメッセージオブジェクトを確認できます。 CPU から IFx メッセージインターフェースレジスタを介して、あるいは、フレームの受信後または送信の成功後にメッセージハンドラによって、特定のメッセージオブジェクトの INTPNDビットを設定またはリセットすることができます。 これは割り込みレジスタの INTPNDの値にも影響します。

Table 199. CAN new data 2 register (CANND2, address 0x4005 0124) bit description

Bit Symbol Value Description Reset value

Access

15:0 NEWDAT[32:17] メッセージオブジェクト 32 ~ 17 の新規データビット

0x00 R

0 前回このフラグがCPUによってクリアされてから、このメッセージオブジェクトのデータ部分にはメッセージハンドラによって書き込まれた新規データはありません。

1 メッセージハンドラまたは CPU によって、このメッセージオブジェクトのデータ部分に新規データが書き込まれています。

31:16 - - 予約済み - -

Table 200. CAN interrupt pending 1 register (CANIR1, address 0x4005 0140) bit description

Bit Symbol Value Description Reset value

Access

15:0 INTPND[16:1] メッセージオブジェクト 16~ 1の割り込み保留ビット

0x00 R

0 このメッセージオブジェクトはメッセージハンドラによって無視されます。

1 このメッセージオブジェクトは割り込みソースです。

31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 214

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.3.6 CAN割り込み保留 2レジスタ

このレジスタには、メッセージオブジェクト 32~ 17の INTPNDビットが格納されます。CPU は、INTPND ビットを読み出すことによって、割り込みが保留中のメッセージオブジェクトを確認できます。 CPU から IFx メッセージインターフェースレジスタを介して、あるいは、フレームの受信後または送信の成功後にメッセージハンドラによって、特定のメッセージオブジェクトの INTPNDビットを設定またはリセットすることができます。 これは割り込みレジスタの INTPNDの値にも影響します。

12.8.3.7 CANメッセージ有効 1レジスタ

このレジスタには、メッセージオブジェクト 16~ 1の MSGVALビットが格納されます。CPU は、MSGVAL ビットを読み出すことによって、有効なメッセージオブジェクトを確認できます。 CPU から IFx メッセージインターフェースレジスタを介して、特定のメッセージオブジェクトのMSGVALビットを設定またはリセットすることができます。

12.8.3.8 CANメッセージ有効 2レジスタ

このレジスタには、メッセージオブジェクト 32~ 17の MSGVALビットが格納されます。CPU は、MSGVAL ビットを読み出すことによって、有効なメッセージオブジェクトを確認できます。 CPU から IFx メッセージインターフェースレジスタを介して、特定のメッセージオブジェクトのMSGVALビットを設定またはリセットすることができます。

Table 201. CAN interrupt pending 2 register (CANIR2, addresses 0x4005 0144) bit description

Bit Symbol Value Description Reset value

Access

15:0 INTPND[32:17] メッセージオブジェクト 32 ~ 17 の割り込み保留ビット

0x00 R

0 このメッセージオブジェクトはメッセージハンドラによって無視されます。

1 このメッセージオブジェクトは割り込みソースです。

31:16 - - 予約済み - -

Table 202. CAN message valid 1 register (CANMSGV1, addresses 0x4005 0160) bit description

Bit Symbol Value Description Reset value

Access

15:0 MSGVAL[16:1] メッセージオブジェクト 16 ~ 1 のメッセージ有効ビット

0x00 R

0 このメッセージオブジェクトはメッセージハンドラによって無視されます。

1 このメッセージオブジェクトはメッセージハンドラにより設定されて処理されます。

31:16 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 215

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.8.4 CANタイミングレジスタ

12.8.4.1 CANクロック分周器レジスタ

このレジスタは CAN クロック信号を決定します。 CAN_CLK は、ペリフェラルクロックPCLKをこのレジスタの値で分周して導き出されます。

12.9 機能説明

12.9.1 リセット後の C_CANコントローラの状態ハードウェアリセット後、レジスタには Table 174 に記載されている値が保持されます。また、バスオフ状態がリセットされ、CAN_TXD出力がリセッシブ(HIGH)に設定されます。 CAN 制御レジスタの値 0x0001(INIT = ’1’)によって、ソフトウェアによる初期化がイネーブルになります。 CANコントローラは、CPUによって INITが「0」にリセットされるまで、CANバスとは通信しません。

メッセージ RAMに格納されているデータは、ハードウェアリセットの影響を受けません。電源投入後、メッセージ RAMの内容は不定です。

Table 203. CAN message valid 2 register (CANMSGV2, address 0x4005 0164) bit description

Bit Symbol Value Description Access Reset value

15:0 MSGVAL[32:17] メッセージオブジェクト32~17のメッセージ有効ビット

R 0x00

0 このメッセージオブジェクトはメッセージハンドラによって無視されます。

1 このメッセージオブジェクトはメッセージハンドラにより設定されて処理されます。

31:16 - - 予約済み - -

Table 204. CAN clock divider register (CANCLKDIV, address 0x4005 0180) bit description

Bit Symbol Value Description Reset value

Access

2:0 CLKDIVVAL クロック分周値 001 R/W

000 CAN_CLK = 1分周した PCLK001 CAN_CLK = 2分周した PCLK010 CAN_CLK = 4分周した PCLK011 CAN_CLK = 8分周した PCLK100 CAN_CLK = 16分周した PCLK101 CAN_CLK = 32分周した PCLK110 無効(デフォルトとして 2分周)111 無効(デフォルトして 2分周)

31:3 - - 予約済み - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 216

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.2 C_CANの動作モード

12.9.2.1 ソフトウェアによる初期化ソフトウェア /ハードウェアリセットによって、またはバスオフ状態にすることによってCAN制御レジスタの INITビットを設定すると、ソフトウェアによる初期化が開始されます。

ソフトウェアによる初期化中(INITビットを設定)には、以下の状況が出現します。

• CANバスを経由するすべてのメッセージ転送が停止されます。

• CAN出力 CAN_TXのステータスがリセッシブ(HIGH)になります。

• EMLのカウンタは変化しません。

• 設定レジスタは変化しません。• CAN 制御レジスタの CCE ビットが設定されている場合は、ビットタイミングレジスタと BRP拡張レジスタへのアクセスがイネーブルになります。

CAN コントローラを初期化するには、ソフトウェアによってビットタイミングレジスタと各メッセージオブジェクトを設定する必要があります。 メッセージオブジェクトが不要な場合は、MSGVALビットを無効に設定するだけで十分です。 メッセージオブジェクトが必要な場合は、メッセージオブジェクト全体を初期化する必要があります。

INITビットがリセットされると、ソフトウェアによる初期化が完了します。 次に、ビットストリームプロセッサ BSP は、連続する 11 のリセッシブビットの発生(バスアイドル)を待って CANバス上のデータ転送と同期し、その後、バスアクティビティに参加してメッセージの転送を開始します。

注意 : メッセージオブジェクトの初期化は INIT とは関係がなく、オンザフライで実行することもできます。ただし、BSPがメッセージ転送を開始する前に、すべてのメッセージオブジェクトを特定の IDに設定するか、またはソフトウェアによる初期化中は無効になるように設定する必要があります。 通常動作時にメッセージオブジェクトの設定を変更するには、MSGVAL ビットを無効に設定して CPU 動作を開始する必要があります。 さらに、設定の完了後、再びMSGVALビットを有効に設定する必要があります。

12.9.2.2 CANメッセージの転送CAN コントローラが初期化され INIT が 0 にリセットされると、CAN コアは CAN バスと同期して、メッセージの転送を開始します。

メッセージハンドラの受信フィルタリングを通過した受信メッセージは、該当するメッセージオブジェクトに格納されます。 すべてのアービトレーションビット、DLC、および8データバイトを含めたメッセージ全体がメッセージオブジェクト内に格納されます。 IDマスクを使用している場合は、「don't care(無視)」マスクが指定されたアービトレーションビットはメッセージオブジェクト内で上書きすることができます。

CPUは、インターフェースレジスタを介して随時、各メッセージの読み取り /書き込みを行うことができます。 同時アクセスの場合、データの一貫性はメッセージハンドラによって保証されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 217

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

送信するメッセージは CPU によって更新されます。 送信メッセージに対して永久メッセージオブジェクト(設定時にアービトレーションビットと制御ビットが設定されている)が存在する場合は、データバイトのみが更新され、TXRQST ビットと NEWDAT ビットが設定されて送信が開始されます。 複数の送信メッセージが同一のメッセージオブジェクトに割り当てられている場合(メッセージオブジェクトの数が不足している場合)は、そのメッセージの送信を要求する前にメッセージオブジェクト全体を設定する必要があります。

同時に複数のメッセージオブジェクトの送信を要求された場合、メッセージオブジェクトは内部優先順位に基づいて順次送信されます。 要求された送信が保留中の場合でも、随時メッセージを更新したり無効に設定することができます。 保留中のメッセージオブジェクトの送信が開始される前にメッセージが更新された場合は、旧データは破棄されます。

メッセージオブジェクトの設定によっては、ID が一致するリモートフレームを受信することにより自発的にメッセージの送信を要求することができます。

12.9.2.3 自動再送信ディスエーブルモード(DAR)CANÇÃédólÅiISO11898, 6.3.3 Recovery ManagementÅjに準拠し、CANコントローラには、アービトレーションロストしたフレームや送信時のエラーによって問題が生じたフレームを自動的に再送信する機能が搭載されています。 送信が正常に完了するまで、フレーム送信サービスについてユーザー確認は行われません。 デフォルトでは、アービトレーションロストやエラーに対して自動再送信機能がイネーブルになっています。 この機能をディスエーブルに設定することにより、タイムトリガ CAN(TTCAN、「ISO11898-1」を参照)環境で CANコントローラを使用できます。

自動再送信ディスエーブルモードは、CAN制御レジスタの DARビットを 1に設定するとイネーブルになります。 この動作モードでは、メッセージバッファの制御レジスタのTXRQST ビットと NEWDAT ビットが通常とは異なる動作をするので、プログラミング時には注意してください。

• 送信の開始時、各メッセージバッファの TXRQST ビットはリセットされますが、NEWDATビットは設定されたままになります。

• 送信が正常に完了すると、NEWDATビットがリセットされます。

• 送信に失敗した場合(アービトレーションロストまたはエラー)、NEWDAT ビットは設定されたままです。 送信を再開するには、CPUによって TXRQSTを 1に戻す必要があります。

12.9.2.4 テストモードCAN 制御レジスタの TEST ビットを 1 に設定すると、テストモードに入ります。 テストモードでは、テストレジスタのビット TX1、TX0、LBACK、SILENT、BASIC が書き込み可能になります。 RXビットはピン RD0および 1の状態を監視しているため、読み取り専用です。 TESTビットが 0にリセットされると、テストレジスタのすべての機能はディスエーブルになります。

12.9.2.4.1 サイレントモードテストレジスタの SILENTビットを 1に設定すると、CANコアをサイレントモードにすることができます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 218

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

サイレントモードでは、CAN コントローラは有効なデータフレームや有効なリモートフレームを受信できますが、CAN バスにはリセッシブビットのみを送信し、送信を開始することはできません。 ドミナントビット(ACKビット、オーバーロードフラグ、アクティブエラーフラグ)の送信に CANコアが必要な場合には、CANコアが監視できるように内部的にそのドミナントビットの経路が変更されます。ただし、CAN バスはリセッシブ状態のままです。 ドミナントビット(肯定応答ビット、エラーフレーム)を送信することにより、CANバスに影響を及ぼすことなく、サイレントモードを使用して CANバス上のトラフィックを分析できます。

12.9.2.4.2 ループバックモードテストレジスタの LBACKビットを 1に設定すると、CANコアをループバックモードにすることができます。 ループバックモードでは、CANコアは自ら送信したメッセージを受信したメッセージと見なして、受信バッファに格納します(受信フィルタリングを通過した場合)。

このモードはセルフテスト機能用のモードです。 ループバックモードでは、外部シミュレーションとは関係なく、CAN コアは肯定応答エラー(データ / リモートフレームの肯定応答スロットでサンプリングされたリセッシブビット)を無視します。 またこのモードでは、CANコアはCAN_TXD出力からCAN_RXD入力への内部帰還を実行します。 CAN_RXD入力ピンの実際値はCANコアによって無視されます。 送信メッセージはCAN_TXDピンで監視することができます。

Fig 42. CAN core in Silent mode

CAN CORE

CAN_TXD CAN_RXD

C_CAN = 1

Rx Tx

Fig 43. CAN core in Loop-back mode

CAN CORE

CAN_TXD CAN_RXD

C_CAN

Rx Tx

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 219

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.2.4.3 ループバックモードとサイレントモードとの組み合せLBACKビットと SILENTビットを同時に 1に設定することにより、ループバックモードとサイレントモードを組み合せることも可能です。 このモードを使用して「ホットセルフテスト」を実行することができます。つまり、CAN_TXDピンと CAN_RXDピンに接続されている実行中の CANシステムに影響を及ぼすことなく、C_CANをテストすることができます。 このモードでは、CAN_RXDピンは CANコアから切り離され、CAN_TXDピンはリセッシブ状態にホールドされます。

12.9.2.4.4 ベーシックモードテストレジスタの BASICビットを 1に設定すると、CANコアをベーシックモードにすることができます。 このモードでは、CANコントローラはメッセージ RAMを使用せずに動作します。

IF1 レジスタは送信バッファとして使用されます。 IF1 レジスタ内容の送信を要求するには、IF1 コマンド要求レジスタの BUSY ビットに「1」を書き込みます。 BUSY ビットを設定すると、IF1レジスタはロックされます。 BUSYビットは送信が保留中であることを示します。

CANバスがアイドル状態になると、ただちに IF1レジスタが CANコアのシフトレジスタにロードされ、送信が開始されます。 送信が完了すると、BUSY ビットはリセットされ、IF1レジスタのロックが解除されます。

IF1 レジスタのロック中に IF1 コマンド要求レジスタの BUSY ビットをリセットすることによって、保留中の送信を随時アボートできます。 CPUによって BUSYビットがリセットされた場合は、アービトレーションロストやエラーが発生した際に再送信できません。

IF2 レジスタは受信バッファとして使用されます。 メッセージを受信すると、受信フィルタリングを使用することなく、シフトレジスタの内容が IF2レジスタに格納されます。

さらに、メッセージ転送中にシフトレジスタの実際の内容を監視することもできます。IF2コマンド要求レジスタの BUSYビットに「1」を書き込んでメッセージオブジェクトの読み取りを開始すると、そのたびにシフトレジスタの内容が IF2レジスタに格納されます。

Fig 44. CAN core in Loop-back mode combined with Silent mode

CAN CORE

CAN_TXD CAN_RXD

C_CAN= 1

Rx Tx

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 220

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

ベーシックモードでは、メッセージオブジェクトに関連するすべての制御ビットとステータスビットの評価、および IFxコマンドマスクレジスタの制御ビットの評価は行われません。 コマンド要求レジスタのメッセージ番号も評価されません。 IF2 メッセージ制御レジスタの NEWDAT ビットと MSGLST ビットの機能は維持され、DLC3 ~ 0 は受信した DLCを示しますが、他の制御ビットの読み取りに対しては「0」が返されます。

ベーシックモードでは、待機出力 CAN_WAIT_Bはディスエーブルになります(常に「1」)。

12.9.2.4.5 CAN_TXピンのソフトウェア制御CAN送信ピン CAN_TXDでは、次の 4種類の出力機能を利用することができます。

1. シリアルデータ出力(デフォルト)

2. CANコントローラのタイミングを監視する CANサンプルポイント信号の駆動

3. 一定のリセッシブ値の駆動

4. 一定のドミナント値の駆動

上記後半の 2つの機能を読み取り可能な CAN受信ピン CAN_RXDと組み合せて使用すると、CANバスの物理層をチェックすることができます。

CAN_TXDピンの出力モードを選択するには、テストレジスタの TX1ビットと TX0ビットを設定します(Section 12.8.1.6を参照)。

注意 : CAN_TXDピンの 3つのテスト機能は、CANプロトコルのすべての機能を妨げます。CAN メッセージを転送する場合や、いずれかのテストモード(ループバックモード、サイレントモード、ベーシックモード)を選択した場合は、CAN_TXDピンの機能をデフォルトのままにしておく必要があります。

12.9.3 CANメッセージハンドラ

メッセージハンドラは、CANコアの Rx/Txシフトレジスタ、メッセージ RAM、IFxレジスタ間のデータ転送を制御します(Figure 45を参照)。

メッセージハンドラは以下の機能を制御します。

• IFxレジスタとメッセージ RAM間でのデータ転送

• シフトレジスタからメッセージ RAMへのデータ転送

• メッセージ RAMからシフトレジスタへのデータ転送

• シフトレジスタから受信フィルタリングユニットへのデータ転送• 一致するメッセージオブジェクトを検索するためのメッセージ RAMのスキャン

• TXRQSTフラグの処理

• 割り込みの処理

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 221

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.3.1 メッセージオブジェクトの管理メッセージ RAM内のメッセージオブジェクトの設定は、チップのリセットによる影響を受けません(ビット MSGVAL、NEWDAT、INTPND、および TXRQSTは除く)。 すべてのメッセージオブジェクトは CPU によって初期化するか、または無効(MSGVAL = ’0’)に設定する必要があります。 また、CPUによって CAN制御レジスタの INITビットをクリアする前に、ビットタイミングを設定する必要があります。

メッセージオブジェクトを設定するには、2つのインターフェースレジスタセットの一方で、マスク、アービトレーション、制御、およびデータフィールドに適切な値を設定します。 対応する IFx コマンド要求レジスタに書き込むことにより、メッセージ RAM 内の指定したメッセージオブジェクトに IFxメッセージバッファレジスタがロードされます。

CAN 制御レジスタの INIT ビットがクリアされると、CAN コアの CAN プロトコルコントローラ状態マシンとメッセージハンドラ状態マシンによって、CAN コントローラの内部データフローが制御されます。 受信フィルタリングを通過した受信メッセージはメッセージ RAMに格納され、送信要求が保留中のメッセージは CANコアのシフトレジスタにロードされて、CANバスを経由して送信されます。

CPUは、IFxインターフェースレジスタを介して、受信メッセージの読み取りや送信メッセージの更新を行います。 設定によっては、特定の CAN メッセージイベントや CAN エラーイベントで CPUへの割り込みが発生します。

Fig 45. Block diagram of a message object transfer

IF1 MASK1, 2IF1 ARBITRATION 1/2IF1 MESSAGE CTRL

IF1 DATA A1/2IF1 DATA B1/2

IF2 MASK1, 2IF2 ARBITRATION 1/2IF2 MESSAGE CTRL

IF2 DATA A1/2IF2 DATA B1/2

MESSAGE RAM

MESSAGE OBJECT 1MESSAGE OBJECT 2

.

.

.MESSAGE OBJECT 32

transfer amessage object

read transfer

write transfer

APBbus

MESSAGE BUFFER REGISTERS

IF1 COMMAND REQUESTIF1 COMMAND MASK

IF2 COMMAND REQUESTIF2 COMMAND MASK

INTERFACECOMMAND REGISTERS

MESSAGE HANDLER

TRANSMISSION REQUEST 1/2NEW DATA 1/2

INTERRUPT PENDING1/2MESSAGE VALID1/2

CANbus

receive

transfer a CAN frame

transmit

CAN CORE/SHIFT REGISTERS

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 222

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.3.2 IFxレジスタとメッセージ RAM間でのデータ転送CPUによって IFxレジスタとメッセージ RAM間でデータ転送が開始されると、メッセージハンドラは各コマンドレジスタの BUSY ビットを「1」に設定します。 転送が完了すると、BUSYビットは「0」に戻されます。

コマンドマスクレジスタは、メッセージオブジェクトの転送部分(メッセージオブジェクト全体または一部)について指定します。 メッセージ RAM の構造上、1 つのメッセージオブジェクトのシングルビット /バイトだけを書き込むことはできません。 ソフトウェアでは、常にメッセージオブジェクト全体をメッセージ RAM に書き込む必要があります。そのため、IFx レジスタからメッセージ RAM へのデータ転送では RMW(リードモディファイライト)サイクルが必要になります。

1. コマンドマスクレジスタを使用して、メッセージオブジェクトの変更されない部分をメッセージ RAMから読み取ります。

– メッセージオブジェクトの部分的読み取り後、コマンドマスクレジスタで選択されていないメッセージバッファレジスタは未変更のままになります。

2. それらのメッセージバッファレジスタの内容をすべてメッセージオブジェクトに書き込みます。

– メッセージオブジェクトへの部分的書き込み後、コマンドマスクレジスタで選択されていないメッセージバッファレジスタに、選択されたメッセージオブジェクトの実際の内容が設定されます。

12.9.3.3 CANコアのシフトレジスタとメッセージバッファ間でのメッセージの送信CAN コアセルのシフトレジスタがロード可能状態で、IFx レジスタとメッセージ RAM 間でデータ転送がない場合には、メッセージ有効レジスタの MSGVAL ビットと送信要求レジスタの TXRQSTビットが評価されます。 送信要求が保留されているメッセージオブジェクトの中から、優先順位が最も高い有効なメッセージオブジェクトがメッセージハンドラによってシフトレジスタにロードされ、送信が開始されます。 そのメッセージオブジェクトの NEWDATビットはリセットされます。

送信が正常に完了すると、その送信の開始以降メッセージオブジェクトに新しいデータが書き込まれていない場合(NEWDAT = ’0’)は、TXRQST ビットがリセットされます。 TXIEが設定されている場合は、送信が正常に完了すると INTPNDが設定されます。 CANコントローラがアービトレーションロストした場合や送信時にエラーが発生した場合は、CANバスが空くと同時にメッセージが再送信されます。 その間に優先順位が高いメッセージの送信が要求された場合は、そのメッセージが優先順位に従って送信されます。

12.9.3.4 受信メッセージの受信フィルタリング着信メッセージのアービトレーションおよび制御フィールド(ID+IDE+RTR+DLC)が CANコアの Rx/Txシフトレジスタに完全にシフトされると、メッセージハンドラ状態マシンはメッセージ RAMのスキャンを開始して、一致する有効なメッセージオブジェクトを検索します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 223

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

メッセージRAMをスキャンして一致するメッセージオブジェクトを検索するために、CANコアのシフトレジスタから受信フィルタリングユニットにアービトレーションビットがロードされます。 次に、メッセージオブジェクト 1 のアービトレーションおよびマスクフィールド(MSGVAL、UMASK、NEWDAT、EOBなど)が受信フィルタリングユニットにロードされ、シフトレジスタのアービトレーションフィールドと比較されます。 一致するメッセージオブジェクトが検出されるか、メッセージ RAMの最後に達するまで、各メッセージオブジェクト対してこの操作が繰り返されます。

一致するメッセージオブジェクトが検出された場合、スキャンは停止され、メッセージハンドラ状態マシンは受信したフレームの種類(データフレームまたはリモートフレーム)に合わせて作業を続行します。

12.9.3.4.1 データフレームの受信メッセージハンドラ状態マシンは、メッセージ RAM 内の各メッセージオブジェクトにCANコアシフトレジスタからのメッセージを格納します。 データバイト、すべてのアービトレーションビット、およびデータ長コードが対応するメッセージオブジェクトに格納されます。 これはデータバイトと ID の結び付きを保持するために実行されます(アービトレーションマスクレジスタが使用されている場合でも同様です)。

(CPUがまだ認識していない)新しいデータを受信したことを示すために、NEWDATビットが設定されます。 CPU/ ソフトウェアは、メッセージオブジェクトの読み取り時にNEWDAT をリセットする必要があります。 受信時に NEWDAT ビットがすでに設定されている場合は、(CPU が認識していないと推測される)前回のデータの喪失を示すためにMSGLSTが設定されます。 RXIEビットが設定されている場合は、INTPNDビットも設定され、割り込みレジスタはこのメッセージオブジェクトを指すようになります。

要求したデータフレームを受信すると、リモートフレームの送信を回避するために、メッセージオブジェクトの TXRQSTビットがリセットされます。

12.9.3.4.2 リモートフレームの受信リモートフレームの受信時には、一致するメッセージオブジェクトについて以下の 3 種類の設定を考慮する必要があります。

1. DIR = ‘1’(方向 =送信)、RMTEN =’1’、UMASK = ‘1’または ’0’一致するリモートフレームを受信すると、そのメッセージオブジェクトの TXRQST ビットが設定されます。 他のメッセージオブジェクトは変更されません。

2. DIR = ‘1’(方向 =送信)、RMTEN = ‘0’、UMASK = ‘0’一致するリモートフレームを受信すると、そのメッセージオブジェクトの TXRQST ビットは変更されず、リモートフレームは無視されます。

3. DIR = ‘1’(方向 =送信)、RMTEN = ‘0’、UMASK = ‘1’一致するリモートフレームを受信すると、そのメッセージオブジェクトの TXRQST ビットがリセットされます。 シフトレジスタのアービトレーションおよび制御フィールド(ID+IDE+RTR+DLC)がメッセージ RAM のメッセージオブジェクトに格納され、そのメッセージオブジェクトの NEWDATビットが設定されます。 メッセージオブジェクトのデータフィールドは変更されず、リモートフレームは受信されたデータフレームと同じように処理されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 224

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.3.5 受信 /送信の優先順位メッセージオブジェクトの受信 / 送信の優先順位はメッセージ番号によって評価されます。 メッセージオブジェクト 1の優先順位が最も高く、メッセージオブジェクト 32の優先順位が最も低くなります。 複数の送信要求が保留中の場合は、対応するメッセージオブジェクトの優先順位に従って処理されます。

12.9.3.6 送信オブジェクトの設定Table 205 は、ソフトウェアによって送信オブジェクトを初期化する方法を示しています(Table 183も参照してください)。

アービトレーションレジスタ(ID28~ 0および XTDビット)はアプリケーションによって設定します。 これらのレジスタにより送信メッセージのIDと種類を定義します。 11ビット ID(「標準フレーム」)を使用する場合は、ID28 に設定します。 その場合、ID18、ID17~ ID0は無視してかまいません。

TXIE ビットが設定されている場合は、メッセージオブジェクトの送信が正常に完了すると INTPNDビットが設定されます。

RMTENビットが設定されている場合は、一致するリモートフレームを受信すると TXRQSTビットが設定され、そのリモートフレームへの応答としてデータフレームが自動的に送信されます。

データレジスタ(DLC3~ 0、Data0~ 7)はアプリケーションによって設定します。 データが有効になる前に TXRQSTおよび RMTENを設定することはできません。

マスクレジスタ(ビットMsk28~0、UMASK、MXTD、およびMDIR)を使用して(UMASK=’1’)、類似の IDを持つリモートフレームグループにTXRQSTビットを設定することができます。詳細については、Section 12.9.3.4.2 を参照してください。 DIR ビットはマスクしないでください。

12.9.3.7 送信オブジェクトの更新CPUは、IFxインターフェースレジスタを介して随時、送信オブジェクトのデータバイトを更新することができます。 ただし、MSGVALも TXRQSTも更新前にリセットできません。

データバイトの一部のみを更新する場合でも、対応する IFxデータ Aレジスタまたは IFxデータ B レジスタの 4 バイトすべてを有効にしてから、レジスタの内容をメッセージオブジェクトに転送する必要があります。 CPUによって IFxデータレジスタに 4バイトすべてを書き込むか、または、CPU がその新しいデータバイトを書き込む前に、メッセージオブジェクトを IFxデータレジスタに転送する必要があります。

Table 205. Initialization of a transmit object

MSGVAL Arbitration bits

Data bits Mask bits EOB DIR NEWDAT

1 アプリケーション依存

アプリケーション依存

アプリケーション依存

1 1 0

MSGLST RXIE TXIE INTPND RMTEN TXRQST

0 0 アプリケーション依存

0 アプリケーション依存

0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 225

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

データバイト(8 バイト)のみを更新する場合は、最初にコマンドマスクレジスタに0x0087 を書き込みます。 次に、コマンド要求レジスタにメッセージオブジェクトの番号を書き込み、データバイトの更新と TXRQSTの設定を同時に行います。

データを更新する際は、すでに実行中の送信の終了時に TXRQSTがリセットされるのを防ぐために、TXRQSTとともにNEWDATを設定する必要があります。 詳細については、Section12.9.3.3を参照してください。

TXRQST とともに NEWDAT を設定した場合、NEWDAT は新たな送信が開始されるとただちにリセットされます。

12.9.3.8 受信オブジェクトの設定Table 206 は、ソフトウェアによって受信オブジェクトを初期化する方法を示しています(Table 183も参照してください)。

アービトレーションレジスタ(ID28~ 0および XTDビット)はアプリケーションによって設定します。 これらのレジスタにより受信メッセージのIDと種類を定義します。 11ビット ID(「標準フレーム」)を使用する場合は、ID28~ ID18に設定します。 ID17~ ID0は無視してかまいません。 11ビット IDのデータフレームを受信した場合、ID17~ ID0は ’0’に設定されます。

RxIE ビットが設定されている場合は、受信したデータフレームが承認されてメッセージオブジェクトに格納されると、INTPNDビットが設定されます。

データ長コード(DLC3 ~ 0)はアプリケーションによって設定します。 メッセージハンドラはデータフレームをメッセージオブジェクトに格納するときに、受信したデータ長コードと 8データバイトを格納します。 データ長コードが 8未満の場合、メッセージオブジェクトの残りのバイトは不定値によって上書きされます。

マスクレジスタ(ビットMsk28~0、UMASK、MXTD、およびMDIR)を使用して(UMASK=’1’)、類似の IDを持つリモートフレームグループを承認することができます。 詳細については、Section 12.9.3.4.1を参照してください。 通常のアプリケーションでは DIRビットをマスクしないでください。

12.9.3.9 受信メッセージの処理CPUは、IFxインターフェースレジスタを介して随時、受信したメッセージを読み取ることができます。 データの一貫性はメッセージハンドラ状態マシンによって保証されます。

Table 206. Initialization of a receive object

MSGVAL Arbitration bits

Data bits Mask bits EOB DIR NEWDAT

1 アプリケーション依存

アプリケーション依存

アプリケーション依存

1 0 0

MSGLST RXIE TXIE INTPND RMTEN TXRQST

0 アプリケーション依存

0 0 0 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 226

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

メッセージ RAMからメッセージバッファに受信メッセージ全体を転送するには、ソフトウェアによって、まずコマンドマスクレジスタに 0x007Fを書き込み、次に、コマンド要求レジスタにメッセージオブジェクトの番号を書き込む必要があります。 また、(メッセージバッファではなく)メッセージ RAM内の NEWDATビットと INTPNDビットがクリアされます。

メッセージオブジェクトが受信フィルタリング用のマスクを使用している場合、アービトレーションビットは、一致したメッセージの中からどのメッセージを受信したかを示します。

NEWDAT の実際の値は、最後にこのメッセージオブジェクトが読み取られてから新たなメッセージを受信したかどうかを示しています。 MSGLSTの実際の値は、最後にこのメッセージオブジェクトが読み取られてから複数のメッセージを受信したかどうかを示しています。 MSGLSTは自動的にはリセットされません。

CPU はリモートフレームを使用して、他の CAN ノードに受信オブジェクト用の新しいデータの送信を要求できます。 受信オブジェクトの TXRQSTビットを設定すると、その受信オブジェクトの ID を持つリモートフレームが送信されます。 このリモートフレームがトリガとなり、他の CAN ノードが一致するデータフレームの送信を開始します。 リモートフレームの送信が可能になる前に一致するデータフレームを受信した場合は、TXRQSTビットが自動的にリセットされます。

12.9.3.10 FIFOバッファの設定FIFOバッファに属している受信オブジェクトの設定は、EOBビットを除き、(単一の)受信オブジェクトの設定と同様です(Section 12.9.3.8を参照)。

2 つ以上のメッセージオブジェクトを連結して FIFO バッファに格納するには、それらのメッセージオブジェクトの IDとマスク(使用する場合)の値が一致するように設定する必要があります。 メッセージオブジェクトの明示的な優先順位によって、番号が最も小さいメッセージオブジェクトがFIFOバッファの最初のメッセージオブジェクトとなります。FIFOバッファのメッセージオブジェクトの EOBビットは、最後のメッセージオブジェクトを除き、すべて 0 に設定する必要があります。 FIFO バッファの最後のメッセージオブジェクトの EOBビットを 1に設定し、それをブロックの最後として設定します。

12.9.3.10.1 FIFOバッファによるメッセージ受信ID が FIFO バッファと一致した受信メッセージは、その FIFO バッファのメッセージオブジェクトに格納されます(メッセージ番号が最も小さいメッセージオブジェクトから順に使用されます)。

FIFO バッファのメッセージオブジェクトにメッセージが格納されると、そのメッセージオブジェクトの NEWDATビットが設定されます。 EOBビットが 0のときに NEWDATビットが設定されると、CPUが NEWDATビットを 0に戻すまで、メッセージオブジェクトへの書き込みアクセスはメッセージハンドラによってロックされます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 227

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

FIFO バッファの最後のメッセージオブジェクトに達するまで、メッセージは FIFO バッファに格納されます。 NEWDATビットに0を書き込んでも先行するメッセージオブジェクトのロックが解除されない場合、その FIFOバッファへの新しいメッセージはすべて、FIFOバッファの最後のメッセージオブジェクトに書き込まれます。そのため、以前からのメッセージは上書きされてしまいます。

12.9.3.10.2 FIFOバッファからの読み取りCPU がメッセージオブジェクトの番号を IFx コマンド要求レジスタに書き込み、それによってメッセージオブジェクトの内容が IFxメッセージバッファレジスタに転送される場合は、対応するコマンドマスクレジスタのNEWDATビットと INTPNDビットを 0にリセットする必要があります(TXRQST/NEWDAT = ’1’および ClrINTPND = ’1’)。 メッセージ制御レジスタのこれらのビットの値は、常にビットがリセットされる前のステータスを反映します。

FIFOバッファを適切に機能させるために、CPUはメッセージ番号が最も小さい FIFOオブジェクトから順にメッセージオブジェクトを読み出す必要があります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 228

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.4 割り込みの処理複数の割り込みが保留中の場合、CAN 割り込みレジスタは、発生順序とは関係なく、最も優先順位の高い保留中の割り込みを指します。 割り込みは、CPUによってクリアされるまで、保留状態となります。

Fig 46. Reading a message from the FIFO buffer to the message buffer

START

END

read CANIR

MessageNum = INTID

read CANIFx_MCTRL

write MessageNum to CANIFx_CMDREQ

read data from CANIFx_DA/B

MessageNum = MessageNum +1

read message to message bufferreset NEWDAT = 0reset INTPND = 0

INTID = 0x8000 ?

NEWDAT = 1

EOB = 1

INTID = 0x0001 to 0x0020 ?

INTID = 0x0000 ?

status changeinterrupt handling

yes yes yes

yes

no

no

yes

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 229

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

ステータス割り込みは最優先の割り込みです。 メッセージ割り込みでは、メッセージオブジェクトの割り込み優先順位はメッセージ番号が大きいほど低くなります。

メッセージ割り込みは、メッセージオブジェクトの INTPNDビットをクリアすることによりクリアできます。 ステータス割り込みは、ステータスレジスタを読み取ることによりクリアできます。

割り込みレジスタの割り込み ID「INTID」は、割り込みの原因を示します。 保留中の割り込みがない場合、レジスタの値は 0となります。 割り込みレジスタの値が 0ではない場合は、保留中の割り込みが存在しており、IE が設定されると、CPU への割り込みライン(RQ_B)がアクティブになります。 割り込みレジスタの値が 0に戻る(割り込みの原因がリセットされる)か IEがリセットされるまで、割り込みラインはアクティブなままです。

値 0x8000は、CANコアによってステータスレジスタ(エラー割り込みまたはステータス割り込み)が更新(必ずしも変更ではない)されたために、割り込みが保留されていることを示しています。 この割り込みは最優先の割り込みです。 CPU はステータスビットRXOK、TXOK、および LECを更新(リセット)することができますが、CPUによるステータスレジスタへの書き込みアクセスによって割り込みを生成したりリセットしたりすることはできません。

他のすべての値はメッセージオブジェクトの 1 つが割り込みソースであることを示し、INTIDは保留されている最優先のメッセージ割り込みを指します。

CPU は、ステータスレジスタの変化に応じて割り込みを生成するかどうか(CAN 制御レジスタの EIE ビットと SIE ビット)、および割り込みレジスタが 0 ではないときに割り込みラインをアクティブにするかどうか(CAN制御レジスタの IEビット)を制御します。 IEがリセットされている場合でも、割り込みレジスタは更新されます。

CPUは以下の 2つの方法でメッセージ割り込みのソースを追跡できます。

• ソフトウェアによる割り込みレジスタの INTIDの追跡

• ソフトウェアによる割り込み保留レジスタのポーリング(Section 12.8.3.5を参照)。

割り込みサービスルーチンは割り込みソースであるメッセージを読み取りますが、読み取りと同時に、そのメッセージオブジェクトの INTPNDをリセットすることができます(コマンドマスクレジスタの ClrINTPNDビット)。 INTPNDがクリアされると、割り込みレジスタは割り込みが保留されている次のメッセージオブジェクトを指します。

12.9.5 ビットタイミングCANビットタイミングの設定における軽度の誤りはただちに問題を引き起こしませんが、それによって CAN ネットワークのパフォーマンスが大幅に低下する可能性があります。多くの場合は、CANビットの同期によって CANビットタイミングの設定の誤りが修正され、エラーフレームの発生はごくまれになります。 ただし、アービトレーションに関しては、複数の CANノードが同時にフレームの転送を試みた場合に、サンプルポイント位置の誤りによってトランスミッタの 1つがエラーパッシブ状態になることがあります。

そのような散発的エラーを分析するには、CAN ノード内での CAN ビットの同期およびCANバス上での CANノードの相互作用についての詳細な知識が必要です。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 230

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

12.9.5.1 ビット時間とビットレートCANは、1kBit/s未満から最大 1000kBit/sまでのビットレートをサポートしています。 CANネットワークの各メンバは固有のクロックジェネレータ(通常は水晶オシレータ)を備えています。 ビット時間(ビットレートの逆数)のタイミングパラメータを CAN ノードごとに設定することにより、CANノードの発振周期(fosc)が異なる場合でも共通のビットレートを生成することができます。

これらのオシレータの周波数は不変ではなく、温度や電圧の変化あるいはコンポーネントの劣化などによってわずかに変動します。 変動幅がオシレータの一定の許容誤差(df)内である限り、CAN ノードはビットストリームとの再同期によってビットレートの変動を補正することができます。

CANの仕様では、ビット時間は 4つのセグメントに分かれています(Figure 47)。 同期セグメント、伝搬時間セグメント、位相バッファセグメント 1、位相バッファセグメント 2。各セグメントはプログラマブルな特定の基本単位時間で構成されています(Table 207 を参照)。 ビット時間の基本単位である基本単位時間の長さ(tq)は、CAN コントローラのシステムクロック fとボーレートプリスケーラ(BRP)によって、tq = BRP / fsysと定義されます。 CANのシステムクロック fsysは LPC11Cxシステムクロックの周波数です(Section12.6を参照)。

同期セグメント Sync_Seg は、ビット時間において CAN バスレベルのエッジの発生が予測される部分です。Sync_Segの外側で発生するエッジと Sync_Segとの距離は、そのエッジの位相誤差と呼ばれます。 伝搬時間セグメント Prop_Segは、CANネットワーク内の物理的な遅延時間を補正するためのセグメントです。 位相バッファセグメント Phase_Seg1と Phase_Seg2 はサンプルポイントを囲んでいます。 (再)同期ジャンプ幅(SJW)は、エッジの位相誤差を補正するために再同期によってサンプルポイントを移動する距離(位相バッファセグメントで定義された限界内)を示します。

Table 207は、CANプロトコルで必要とされる最小限の設定可能範囲を示しています。 ビット時間パラメータは、CANBT レジスタ(Table 178)を介して設定されます。 ビットタイミングの詳細およびその例については、『C_CAN user’s manual, revision 1.2』を参照してください。

Table 207. Parameters of the C_CAN bit time

Parameter Range Function

BRP (1...32) 基本単位時間 tqの長さを定義します。SYNC_SEG 1tq 同期セグメント。 Fixed length. バス入力をシステムクロッ

クに同期。PROP_SEG (1...8) × tq 伝搬時間セグメント。 Compensates for physical delay

times. このパラメータは、C_CAN ネットワークのシステム遅延時間によって決定されます。

TSEG1 (1...8) × tq 位相バッファセグメント 1。 同期によって一時的に延長されることがあります。

TSEG2 (1...8) × tq 位相バッファセグメント2。 May be shortened temporarilyby synchronization.

SJW (1...4) × tq (再)同期ジャンプ幅。 どちらの位相バッファセグメントよりも長くすることはできません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 231

NXP Semiconductors UM10398第 12章:LPC11C1x C_CAN

参考資料

Fig 47. Bit timing

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 232

参考資料

13.1 この章を読む前に

C_CANブロックは、LPC11C12および LPC11C14部品のみで利用可能です。

13.2 特長

ブート ROM に格納されているオンチップドライバは、定義済み API を介して、CAN とCANopenの初期化および通信機能をユーザーアプリケーションに提供します。 APIは以下の機能を備えています。

• CANのセットアップと初期化

• CANメッセージの送信と受信

• CANステータス

• CANopenオブジェクトディクショナリ

• CANopen SDO高速通信

• CANopen SDOセグメント通信プリミティブ

• CANopen SDOフォールバックハンドラ

13.3 概要

ブートROMは、CAN ISP以外に、CANアプリケーション開発を容易にするCANとCANopen用の API も備えています。 この API は、CANopen SDO インターフェースだけではなく、初期化、設定、基本的な CAN による受信 / 送信にも対応しています。 また、受信イベントの処理にはコールバック関数を利用することができます。

13.3.1 完全準拠の CANopenとの相違ブートローダは、SDO 通信プロトコルとオブジェクトディクショナリデータ編成方式を使用していますが、CiA 301 規格に完全に準拠した CANopen ノードではありません。 特に以下は、CiA 301規格にはない機能または CiA 301規格とは異なる機能です。

• ネットワークマネージメント(NMT)メッセージ処理なし

• ハートビートメッセージなし(エントリ 0x1017なし)

• デバイスエラーを示す独自の SDOアボートコードを使用

• ノードへの SDO セグメントダウンロード / 書き込み時の「空の」SDO 応答は、CiA301規格で示されている全 8データバイトではなく、1データバイトに短縮されています。 これによって通信が高速化されます。

UM10398第 13章:LPC11C1x C_CANオンチップドライバRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 233

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

• エントリ [1018h,1] のベンダー ID は、CiA が公式に割り当てた固有のベンダー ID ではなく、「0x0000 0000」となります。 その理由は、特に、このチップがデバイス全体のベンダーとなるカスタマの設計に組み込まれることが予測されるからです。 そして、ホストは CAN ISPデバイスの識別に他の方式を使用せざるをえないと推測されます。

13.4 APIの説明

13.4.1 C_CAN APIの呼び出しROMの固定領域には、ROMドライバテーブルへのポインタが格納されています(0x1FFF1FF8)。 この領域はすべての LPC11C1x部品で同一です。 ROMドライバテーブルには、CANAPIテーブルへのポインタが格納されています。 この CAN APIテーブルには、各種の CANAPI 関数へのポインタが格納されています。 CAN API 関数は、C 構造体を使用して呼び出すことができます。

Figure 48は、オンチップ CAN APIへのアクセスに使用されるポインタのメカニズムを示しています。 オンチップ RAMのアドレス 0x1000 0050~ 0x1000 00B8は、CAN APIによって使用されます。 このアドレス範囲はアプリケーションでは使用できません。 アプリケーションでオンチップ CAN API を使用する場合は、この領域がアプリケーションの変数ストレージに使用されないように、リンカ制御ファイルを適切に変更する必要があります。

C言語では、API関数の呼び出しで参照される関数リストの構造体は以下のように記述されます。

Fig 48. CAN API pointer structure

Ptr to ROM Driver table

Ptr to Device Table 3

Ptr to C_CAN API Table 1

Ptr to Device Table 2

Ptr to Device Table n

init_clk

init_can

config_canopen

Ptr to Function 3

Ptr to Function 1

Ptr to Function 2

Ptr to Function n

C_CAN API

Device 2 ROM Driver Table

0x1FFF 1FF8

config_rxmsgobj

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 234

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

typedef struct _CAND { void (*init_can) (uint32_t * can_cfg); void (*isr) (void); void (*config_rxmsgobj) (CAN_MSG_OBJ * msg_obj); uint8_t (*can_receive) (CAN_MSG_OBJ * msg_obj); void (*can_transmit) (CAN_MSG_OBJ * msg_obj); void (*config_canopen) (CAN_CANOPENCFG * canopen_cfg); void (*canopen_handler) (void); void (*config_calb) (CAN_CALLBACKS * callback_cfg);} CAND;

13.4.2 CAN初期化ポインタを介して渡されるレジスタ値の配列に基づいて、CAN コントローラクロック分周器、CANビットレートが設定され、CANコントローラが初期化されます。

void init_can (uint32_t * can_cfg, uint8_t isr_ena)

配列の 1番目の 32ビット値が CANCLKDIVレジスタに代入され、2番目の値が CAN_BTRレジスタに代入されます。

2番目のパラメータによって、CANコントローラレベルで割り込みがイネーブルになります。 ポーリング済みの通信に FALSEが設定されます。

呼び出し例 :

ROM **rom = (ROM **)0x1fff1ff8;

uint32_t CanApiClkInitTable[2] = { 0x00000000UL, // CANCLKDIV 0x00004DC5UL // CAN_BTR};

(*rom)->pCANAPI->init_can(&CanApiCanInitTable[0]);

13.4.3 CAN割り込みハンドラユーザーアプリケーションがアクティブになると、ユーザーのフラッシュ領域に割り込みハンドラがマップされます。 ユーザーアプリケーションは CAN 割り込み用の割り込みハンドラを用意する必要があります。 CANイベントを処理したり、コールバック関数を呼び出すために、アプリケーションでは割り込みハンドラルーチンから直接 CAN API 割り込みハンドラを呼び出す必要があります。 CAN API割り込みハンドラは、受信データと CANバスで検出されたステータスに基づいて適切なアクションを実行します。

void isr (void)

CAN割り込みハンドラは CANopenメッセージを処理しません。

呼び出し例 :

(*rom)->pCAND->isr();

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 235

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

ポーリング済みの通信に対し、必要に応じて手動で割り込みハンドラを呼び出すことができます。 受信、送信、およびエラーに対するコールバック関数は、割り込みハンドラが呼び出されたレベルと同レベルで、説明のとおりに実行されます。

13.4.4 CAN Rxメッセージオブジェクトの設定CAN APIは 32のメッセージオブジェクトを持つ完全な CANモデルをサポートし、それを使用しています。 任意のメッセージオブジェクトを使用して、11ビットまたは 29ビットの CANメッセージを受信 /送信することができます。 また、RTRビットが設定された(リモート送信)CANメッセージもサポートされています。 受信オブジェクトの場合は、メッセージ IDのマスクパターンによって一連のメッセージを受信できます(最大で、単一のメッセージオブジェクトにバス上のすべての CAN メッセージを受信できます)。 Section12.9.3.4も参照してください。

送信メッセージオブジェクトは使用時に自動的に設定されます。

// control bits for CAN_MSG_OBJ.mode_id#define CAN_MSGOBJ_STD 0x00000000UL // CAN 2.0a 11-bit ID#define CAN_MSGOBJ_EXT 0x20000000UL // CAN 2.0b 29-bit ID#define CAN_MSGOBJ_DAT 0x00000000UL // data frame#define CAN_MSGOBJ_RTR 0x40000000UL // rtr frame

typedef struct _CAN_MSG_OBJ { uint32_t mode_id; uint32_t mask; uint8_t data[8]; uint8_t dlc; uint8_t msgobj;} CAN_MSG_OBJ;

void config_rxmsgobj (CAN_MSG_OBJ * msg_obj)

呼び出し例 :

// Configure message object 1 to receive all 11-bit messages 0x000-0x00F

msg_obj.msgobj = 1;msg_obj.mode_id = 0x000;msg_obj.mask = 0x7F0; (*rom)->pCAND-> config_rxmsgobj(&msg_obj);

13.4.5 CAN受信CAN 受信関数を使用すると、Rx メッセージオブジェクトが受信したメッセージを読み取ることができます。 メッセージオブジェクト構造体へのポインタはこの受信関数に渡されます。 関数を呼び出す前に、読み取るメッセージオブジェクトの番号をメッセージオブジェクト構造体に設定しておく必要があります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 236

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

void config_rxmsgobj (CAN_MSG_OBJ * msg_obj)

呼び出し例 :

// Read out received messagemsg_obj.msgobj = 5;(*rom)->pCAND->can_receive(&msg_obj);

13.4.6 CAN送信CAN送信関数を使用すると、メッセージオブジェクトをセットアップして、バス上で CANメッセージを送信させることができます。 11ビットの標準メッセージと 29ビットの拡張メッセージに加え、標準データメッセージとリモート送信(RTR)メッセージもサポートされています。

void config_txmsgobj (CAN_MSG_OBJ * msg_obj)

呼び出し例 :

msg_obj.msgobj = 3;msg_obj.mode_id = 0x123UL;msg_obj.mask = 0x0UL;msg_obj.dlc = 1;msg_obj.data[0] = 0x00;(*rom)->pCAND->can_transmit(&msg_obj);

13.4.7 CANopen設定CAN API は、オブジェクトディクショナリインターフェースおよび SDO プロトコルをサポートしています。 APIをアクティブにするには、CANopen設定関数を呼び出す必要があります。この呼び出しには、CANopenノード ID(1~ 127)の構造体へのポインタ、送信 /受信 SDOに使用するメッセージオブジェクト番号、CANopen SDOの処理を割り込み用関数で自動的に行うか、専用の API関数を介して行うかを決定するフラグ、および、オブジェクトディクショナリ構成テーブルとそのサイズを指し示す 2 つのポインタを使用します。 1 番目のテーブルには、4 バイト以下で読み取り専用の定数エントリがすべてが格納されています。 2番目のテーブルには、可変で書き込み可能なエントリすべてと SDOセグメントエントリが格納されています。

typedef struct _CAN_ODCONSTENTRY { uint16_t index; uint8_t subindex; uint8_t len; uint32_t val;} CAN_ODCONSTENTRY;

// upper-nibble values for CAN_ODENTRY.entrytype_len#define OD_NONE 0x00 // Object Dictionary entry doesn't exist#define OD_EXP_RO 0x10 // Object Dictionary entry expedited,

read-only#define OD_EXP_WO 0x20 // Object Dictionary entry expedited,

write-only

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 237

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

#define OD_EXP_RW 0x30 // Object Dictionary entry expedited, read-write

#define OD_SEG_RO 0x40 // Object Dictionary entry segmented, read-only

#define OD_SEG_WO 0x50 // Object Dictionary entry segmented, write-only

#define OD_SEG_RW 0x60 // Object Dictionary entry segmented, read-write

typedef struct _CAN_ODENTRY {uint16_t index;uint8_t subindex;uint8_t entrytype_len;unint8_t isr_handled;uint8_t *val;

} CAN_ODENTRY;

typedef struct _CAN_CANOPENCFG {uint8_t node_id;uint8_t msgobj_rx;uint8_t msgobj_tx;uint32_t od_const_num;CAN_ODCONSTENTRY *od_const_table;uint32_t od_num;CAN_ODENTRY *od_table;

} CAN_CANOPENCFG;

ODテーブルと CANopen設定構造体の例 :

// List of fixed, read-only Object Dictionary (OD) entries// Expedited SDO only, length=1/2/4 bytesconst CAN_ODCONSTENTRY myConstOD [] = {// index subindex length value

{ 0x1000, 0x00, 4, 0x54534554UL }, // "TEST" { 0x1018, 0x00, 1, 0x00000003UL }, { 0x1018, 0x01, 4, 0x00000003UL }, { 0x2000, 0x00, 1, (uint32_t)'M' },};

// List of variable OD entries// Expedited SDO with length=1/2/4 bytes// Segmented SDO application-handled with length and value_pointer

don't careconst CAN_ODENTRY myOD [] = {// index subindex access_type|length value_pointer { 0x1001, 0x00, OD_EXP_RO | 1, (uint8_t *)&error_register }, { 0x1018, 0x02, OD_EXP_RO | 4, (uint8_t *)&device_id }, { 0x1018, 0x03, OD_EXP_RO | 4, (uint8_t *)&fw_ver }, { 0x2001, 0x00, OD_EXP_RW | 2, (uint8_t *)&param }, { 0x2200, 0x00, OD_SEG_RW, (uint8_t *)NULL },};

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 238

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

// CANopen configuration structureconst CAN_CANOPENCFG myCANopen = { 20, // node_id 5, // msgobj_rx 6, // msgobj_tx TRUE, // isr_handled sizeof(myConstOD)/sizeof(myConstOD[0]), // od_const_num (CAN_ODCONSTENTRY *)myConstOD, // od_const_table sizeof(myOD)/sizeof(myOD[0]), // od_num (CAN_ODENTRY *)myOD, // od_table};

呼び出し例 :

// Initialize CANopen handler(*rom)->pCAND->config_canopen((CAN_CANOPENCFG *)&myCANopen);

13.4.8 CANopenハンドラCANopen ハンドラは初期化されると、CANopen SDO メッセージを処理してオブジェクトディクショナリにアクセスし、CANopen コールバック関数を呼び出します。 CANopenハンドラは、割り込みハンドラによって自動的に呼び出すか(CANopen初期化構造体で「isr_handled == TRUE」と記述した場合)、または CANopenハンドラ API関数を使用して手動で呼び出します。 CANopen ハンドラを手動で呼び出す場合は、アプリケーションの必要に応じて周期的に呼び出す必要があります。

通常の CANopenアプリケーションの場合、SDO処理は優先順位が低いため、割り込み処理を介さずにフォアグラウンドで実行されます。

呼び出し例 :

// Call CANopen handler(*rom)->pCAND->canopen_handler();

13.4.9 CAN/CANopenコールバック関数CAN APIはさまざまなイベント用のコールバック関数をサポートしています。 コールバック関数は 1つの API関数を介して発行されます。

typedef struct _CAN_CALLBACKS { void (*CAN_rx)(uint8_t msg_obj); void (*CAN_tx)(uint8_t msg_obj); void (*CAN_error)(uint32_t error_info); uint32_t (*CANOPEN_sdo_read)(uint16_t index, uint8_t subindex); uint32_t (*CANOPEN_sdo_write)( uint16_t index, uint8_t subindex, uint8_t *dat_ptr); uint32_t (*CANOPEN_sdo_seg_read)( uint16_t index, uint8_t subindex, uint8_t openclose, uint8_t *length, uint8_t *data, uint8_t *last); uint32_t (*CANOPEN_sdo_seg_write)( uint16_t index, uint8_t subindex, uint8_t openclose, uint8_t length, uint8_t *data, uint8_t *fast_resp);

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 239

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

uint8_t (*CANOPEN_sdo_req)( uint8_t length_req, uint8_t *req_ptr, uint8_t *length_resp, uint8_t *resp_ptr);} CAN_CALLBACKS;

コールバックテーブル定義の例 :

// List of callback function pointersconst CAN_CALLBACKS callbacks = { CAN_rx, CAN_tx, CAN_error, CANOPEN_sdo_exp_read, CANOPEN_sdo_exp_write, CANOPEN_sdo_seg_read, CANOPEN_sdo_seg_write, CANOPEN_sdo_req,};

呼び出し例 :

// Publish callbacks(*rom)->pCAND->config_calb((CAN_CALLBACKS *)&callbacks);

13.4.10 CANメッセージ受信コールバックCAN メッセージ受信コールバック関数は、CAN 割り込みハンドラによって割り込みレベルで呼び出されます。

呼び出し例 :

// CAN receive handlervoid CAN_rx(uint8_t msgobj_num){ // Read out received message msg_obj.msgobj = msgobj_num; (*rom)->pCAND->can_receive(&msg_obj);

return;}

注意 : ユーザーの CANopen ハンドラが SDO 受信に使用されるメッセージオブジェクトに対してアクティブになっている場合、このコールバックは呼び出されません。

13.4.11 CANメッセージ送信コールバックメッセージがバス上で正常に送信された後に、CAN割り込みハンドラによって

割り込みレベルで呼び出されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 240

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

呼び出し例 :

// CAN transmit handlervoid CAN_tx(uint8_t msgobj_num){

// Reset flag used by application to wait for transmission finished

if (wait_for_tx_finished == msgobj_num)wait_for_tx_finished = 0;

return;}

注意 : ユーザーの CANopen ハンドラがメッセージオブジェクトを使用して SDO 応答を送信した後には、このコールバックは呼び出されません。

13.4.12 CANエラーコールバックCAN エラーコールバック関数は、CAN 割り込みハンドラによって割り込みレベルで呼び出されます。

// error status bits#define CAN_ERROR_NONE 0x00000000UL#define CAN_ERROR_PASS 0x00000001UL#define CAN_ERROR_WARN 0x00000002UL#define CAN_ERROR_BOFF 0x00000004UL#define CAN_ERROR_STUF 0x00000008UL#define CAN_ERROR_FORM 0x00000010UL#define CAN_ERROR_ACK 0x00000020UL#define CAN_ERROR_BIT1 0x00000040UL#define CAN_ERROR_BIT0 0x00000080UL#define CAN_ERROR_CRC 0x00000100UL

呼び出し例 :

// CAN error handlervoid CAN_error(uint32_t error_info) // If we went into bus off state, tell the application to // re-initialize the CAN controller if (error_info & CAN_ERROR_BOFF)

reset_can = TRUE;

return;}

13.4.13 CANopen SDO高速読み取りコールバックCANopen SDO 高速読み取りコールバック関数は、CANopen ハンドラによって呼び出されます。 このコールバック関数は SDO 応答が生成される前に呼び出され、データの修正または更新を可能にします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 241

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

呼び出し例 :

// CANopen callback for expedited read accessesuint32_t CANOPEN_sdo_exp_read(uint16_t index, uint8_t subindex){ // Every read of [2001h,0] increases param by one if ((index == 0x2001) && (subindex==0))

param++;

return 0;}

注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコールバック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで実行されます。

13.4.14 CANopen SDO高速書き込みコールバックCANopen SDO 高速書き込みコールバック関数は、CANopen ハンドラによって呼び出されます。 このコールバックは新しいデータを渡します。新しいデータが書き込まれる前に呼び出され、そのデータを拒否または調整できるようにします。

呼び出し例 :

// CANopen callback for expedited write accessesuint32_t CANOPEN_sdo_exp_write(uint16_t index, uint8_t subindex,

uint8_t*dat_ptr){ // Writing 0xAA55 to entry [2001h,0] unlocks writing the config

table if ((index == 0x2001) && (subindex == 0)) if (*(uint16_t *)dat_ptr == 0xAA55)

{write_config_ena = TRUE;

return(TRUE);}else

return(FALSE); // Reject any other value}

注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコールバック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで実行されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 242

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

13.4.15 CANopen SDOセグメント読み取りコールバックCANopen SDO セグメント読み取りコールバック関数は、CANopen ハンドラによって呼び出されます。 このコールバック関数によって、以下のアクションを実行できます。

• 読み取りチャネルのオープンを通知する。

• 最大 7バイトのデータセグメントを読み取りホストに提供する。

• すべてのデータが読み取られたときにチャネルをクローズする。

• 随時、送信をアボートする。

// Values for CANOPEN_sdo_seg_read/write() callback 'openclose' parameter

#define CAN_SDOSEG_SEGMENT 0 // segment read/write#define CAN_SDOSEG_OPEN 1 // channel is opened#define CAN_SDOSEG_CLOSE 2 // channel is closed

呼び出し例(バッファの読み取り):

uint8_t read_buffer[0x123];

// CANopen callback for segmented read accessesuint32_t CANOPEN_sdo_seg_read( uint16_t index, uint8_t subindex, uint8_t openclose, uint8_t *length, uint8_t *data, uint8_t *last){ static uint16_t read_ofs; uint16_t i;

if ((index == 0x2200) && (subindex==0)) { if (openclose == CAN_SDOSEG_OPEN) { // Initialize the read buffer with "something" for (i=0; i<sizeof(read_buffer); i++) { read_buffer[i] = (i+5) + (i<<2); } read_ofs = 0; } else if (openclose == CAN_SDOSEG_SEGMENT) { i = 7; while (i && (read_ofs < sizeof(read_buffer))) { *data++ = read_buffer[read_ofs++]; i--; } *length = 7-i; if (read_ofs == sizeof(read_buffer)) // The whole buffer

read:

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 243

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

// this is last segment { *last = TRUE; } } return 0; } else { return SDO_ABORT_NOT_EXISTS; }}

注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコールバック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで実行されます。

13.4.16 CANopen SDOセグメント書き込みコールバックCANopen SDO セグメント書き込みコールバック関数は、CANopen ハンドラによって呼び出されます。 このコールバック関数によって、以下のアクションを実行できます。

• 書き込みチャネルのオープンとクローズを通知する。

• 書き込みホストからの最大 7バイトのデータセグメントを渡す。

• 随時、送信をアボートする(バッファがオーバーフローした場合など)。

応答は、8バイト(CANopen規格準拠)または 1バイト(高速ですが、SDOクライアントがサポートしていない場合もあります)から選択できます。

// Values for CANOPEN_sdo_seg_read/write() callback 'openclose' parameter

#define CAN_SDOSEG_SEGMENT 0 // segment read/write#define CAN_SDOSEG_OPEN 1 // channel is opened#define CAN_SDOSEG_CLOSE 2 // channel is closed

呼び出し例(バッファの書き込み):

uint8_t write_buffer[0x321];

// CANopen callback for segmented write accessesuint32_t CANOPEN_sdo_seg_write( uint16_t index, uint8_t subindex, uint8_t openclose, uint8_t length, uint8_t *data, uint8_t *fast_resp){ static uint16_t write_ofs; uint16_t i;

if ((index == 0x2200) && (subindex==0)) { if (openclose == CAN_SDOSEG_OPEN) {

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 244

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

// Initialize the write buffer for (i=0; i<sizeof(write_buffer); i++) { write_buffer[i] = 0; } write_ofs = 0; } else if (openclose == CAN_SDOSEG_SEGMENT) { *fast_resp = TRUE; // Use fast 1-byte segment write response i = length; while (i && (write_ofs < sizeof(write_buffer))) { write_buffer[write_ofs++] = *data++; i--; } if (i && (write_ofs >= sizeof(write_buffer))) // Too much

data to write { return SDO_ABORT_TRANSFER; // Data could not be written } } else if (openclose == CAN_SDOSEG_CLOSE) { // Write has successfully finished: mark the buffer valid

etc. } return 0; } else { return SDO_ABORT_NOT_EXISTS; }}

注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコールバック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで実行されます。

13.4.17 CANopenフォールバック SDOハンドラコールバックCANopen SDOフォールバック SDOハンドラコールバック関数は、CANopenハンドラによって呼び出されます。 この関数は、SDO要求を処理できない場合や SDO要求に SDOアボート応答を返す場合に、常に呼び出されます。 この関数は SDO 要求のデータバッファが満杯になると呼び出され、どのような種類の SDO 応答でも生成できるようにします。また、この関数を使用してカスタム SDO ハンドラを実装することもできます(SDO ブロック転送方式の実装など)。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 245

NXP Semiconductors UM10398第 13章:LPC11C1x C_CANオンチップドライバ

参考資料

// Return values for CANOPEN_sdo_req() callback#define CAN_SDOREQ_NOTHANDLED 0 // process regularly, no impact#define CAN_SDOREQ_HANDLED_SEND 1 // processed in callback,

auto-send// returned msg

#define CAN_SDOREQ_HANDLED_NOSEND 2 // processed in callback, don't send

// response

呼び出し例(カスタム処理を実装しない場合):

// CANopen callback for custom SDO request handleruint8_t CANOPEN_sdo_req (

uint8_t length, uint8_t *req_ptr, uint8_t *length_resp, uint8_t *resp_ptr)

{return CAN_SDOREQ_NOTHANDLED;

}

注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコールバック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで実行されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 246

参考資料

14.1 この章を読む前に

16ビットブロックは、LPC111xと LPC11C1xのすべての部品で同一です。

14.2 基本構成

CT16B0/1は以下のレジスタを使用して設定します。

1. ピン :CT16B0/1 ピンは、IOCONFIG レジスタブロックで設定する必要があります(Section 6.4.1)。

2. 電力とペリフェラルクロック :SYSAHBCLKCTRLレジスタのビット 7とビット 8を設定します(Table 19)。

14.3 特長

• プログラマブルな 16ビットプリスケーラを備えた 2つの 16ビットカウンタ /タイマ

• カウンタまたはタイマ動作• 1 つの 16 ビットキャプチャチャネルにより、入力信号の遷移時にタイマ値のスナップショットを取得できます。キャプチャイベントによって任意に割り込みを生成することもできます。

• 4つの 16ビットマッチレジスタによって以下の動作を行うことができます。

– 一致した場合に、任意に割り込みを生成して連続動作

– 一致した場合に、任意に割り込みを生成してタイマを停止

– 一致した場合に、任意に割り込みを生成してタイマをリセット

• マッチレジスタに対応した最大 3つ(CT16B0)または最大 2つ(CT16B1)の外部出力は以下の設定が可能です。

– 一致した場合、LOWに設定

– 一致した場合、HIGHに設定

– 一致した場合、トグル出力

– 一致した場合、変化なし

• 各タイマに対して最大 4 つのマッチレジスタを PWM として設定できます。これによって、最大 3つのマッチ出力をシングルエッジ制御の PWM出力として使用できます。

UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 247

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.4 用途

• 内部イベントカウント用のインターバルタイマ• キャプチャ入力を使用したパルス幅復調器• フリーランニングタイマ• マッチ出力を使用したパルス幅変調器

14.5 説明

カウンタ / タイマは、ペリフェラルクロック(PCLK)または外部供給クロックのサイクルをカウントするように設計されています。4つのマッチレジスタに基づく特定のタイマ値によって、任意に割り込みを生成したりその他のアクションを実行することができます。各カウンタ /タイマは入力信号の遷移時にタイマ値をトラップする 1つのキャプチャ入力機能も備えており、任意に割り込みを生成できます。

PWMモードでは、3つのマッチレジスタ(CT16B0)または 2つのマッチレジスタ(CT16B1)を使用して、シングルエッジ制御の PWM 出力をマッチ出力ピンに供給できます。PWMサイクル長の制御には、ピンアウトされていないマッチレジスタを使用することをお勧めます。

注意 : 16ビットカウンタ /タイマ 0(CT16B0)と 16ビットカウンタ /タイマ 1(CT16B1)は、ペリフェラルのベースアドレスを除き、機能的に同一です。

14.6 ピンの説明

Table 208に各カウンタ /タイマに関連するピンの要約を示します。

14.7 クロックと電力の制御

16ビットタイマへのペリフェラルクロック(PCLK)はシステムクロックによって供給されます(Figure 3 を参照)。これらのクロックは、節電のために、AHBCLKCTRL レジスタ(Table 19)のビット 7とビット 8によってディスエーブルにすることができます。

Table 208. Counter/timer pin description

Pin Type Description

CT16B0_CAP0CT16B1_CAP0

Input キャプチャ信号 : キャプチャピンにおける遷移を設定して、キャプチャレジスタにカウンタ / タイマの値をロードし、任意に割り込みを生成することができます。 カウンタ / タイマブロックでは、PCLK から導き出したクロックの代わりに、キャプチャ信号をクロックソースとして選択できます。詳細については、Section 14.8.11 を参照してください。

CT16B0_MAT[2:0]CT16B1_MAT[1:0]

Output CT16B0/1の外部マッチ出力 :CT16B0/1 のマッチレジスタ(MR3 ~ 0)がタイマカウンタ(TC)と等しい場合、この出力はトグル、LOW、HIGH、または変化なしとなります。この出力の機能は、外部マッチレジスタ(EMR)と PWM制御レジスタ(PWMCON)によって制御します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 248

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8 レジスタの説明

16ビットカウンタ /タイマ 0のレジスタは Table 209に、16ビットカウンタ /タイマ 1のレジスタは Table 210に示されています。詳細は以下を参照してください。

Table 209. Register overview: 16-bit counter/timer 0 CT16B0 (base address 0x4000 C000)

Name Access Address offset

Description Reset value[1]

TMR16B0IR R/W 0x000 割り込みレジスタ(IR)。IRに書き込むことにより割り込みをクリアできます。また、IR を読み取り、5 つの割り込みソースの中から保留中の割り込みソースを特定することができます。

0

TMR16B0TCR R/W 0x004 タイマ制御レジスタ(TCR)。TCRはタイマカウンタ機能の制御に使用します。TCR によってタイマカウンタをディスエーブルにしたり、リセットすることができます。

0

TMR16B0TC R/W 0x008 タイマカウンタ(TC)。16ビット TCは、PCLKの PR+1サイクルごとにインクリメントされます。TCは TCRによって制御されます。

0

TMR16B0PR R/W 0x00C プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値と等しい場合、次のクロックによって TCがインクリメントされ、PCはクリアされます。

0

TMR16B0PC R/W 0x010 プリスケールカウンタ(PC)。16ビット PCは、PRに格納されている値に達するまでインクリメントされるカウンタです。PR の値に達すると、TC がインクリメントされ、PC はクリアされます。PC はバスインターフェースを介して監視および制御できます。

0

TMR16B0MCR R/W 0x014 マッチ制御レジスタ(MCR)。MCR を使用し、一致した場合の割り込みの生成および TCのリセットについて制御します。

0

TMR16B0MR0 R/W 0x018 マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、MR0が TCと一致するたびに、TCのリセット、TCと PCの停止、および割り込みの生成を行うことができます。

0

TMR16B0MR1 R/W 0x01C マッチレジスタ 1(MR1)。MR0の説明を参照してください。 0

TMR16B0MR2 R/W 0x020 マッチレジスタ 2(MR2)。MR0の説明を参照してください。 0

TMR16B0MR3 R/W 0x024 マッチレジスタ 3(MR3)。MR0の説明を参照してください。 0

TMR16B0CCR R/W 0x028 キャプチャ制御レジスタ(CCR)。キャプチャイベントの発生時に、キャプチャレジスタへのロードに使用するキャプチャ入力のエッジを指定し、割り込みを生成するか否かを制御します。

0

TMR16B0CR0 RO 0x02C キャプチャレジスタ 0(CR0)。CT16B0_CAP0入力でイベントが発生すると、CR0に TCの値がロードされます。

0

TMR16B0EMR R/W 0x03C 外部マッチレジスタ(EMR)。マッチ機能および外部マッチピンCT16B0_MAT[2:0]を制御します。

0

- - 0x040 - 0x06C

予約済み -

TMR16B0CTCR R/W 0x070 カウント制御レジスタ(CTCR)。CTCRを使用してタイマモードまたはカウンタモードを選択します。カウンタモードでは、カウント用の信号とエッジを選択できます。

0

TMR16B0PWMC R/W 0x074 PWM 制御レジスタ(PWMCON)。外部マッチピン CT16B0_MAT[2:0] のPWMモードをイネーブルにします。

0

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 249

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.1 割り込みレジスタ(TMR16B0IRおよび TMR16B1IR)割り込みレジスタ(IR)は、マッチ割り込み用の 4 ビットとキャプチャ割り込み用の 1ビットで構成されています。割り込みが発生すると、IRの対応するビットが HIGHになります。それ以外の場合、対応ビットは LOWになります。対応する IRビットにロジック 1を書き込むと、割り込みはリセットされます。0を書き込んでも影響はありません。

Table 210. Register overview: 16-bit counter/timer 1 CT16B1 (base address 0x4001 0000)

Name Access Address offset

Description Reset value[1]

TMR16B1IR R/W 0x000 割り込みレジスタ(IR)。IRに書き込むことにより割り込みをクリアできます。また、IR を読み取り、5 つの割り込みソースの中から保留中の割り込みソースを特定することができます。

0

TMR16B1TCR R/W 0x004 タイマ制御レジスタ(TCR)。TCRはタイマカウンタ機能の制御に使用します。TCRによってタイマカウンタをディスエーブルにしたり、リセットすることができます。

0

TMR16B1TC R/W 0x008 タイマカウンタ(TC)。16ビット TCは、PCLKの PR+1サイクルごとにインクリメントされます。TCは TCRによって制御されます。

0

TMR16B1PR R/W 0x00C プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値と等しい場合、次のクロックによって TCがインクリメントされ、PCはクリアされます。

0

TMR16B1PC R/W 0x010 プリスケールカウンタ(PC)。16ビット PCは、PRに格納されている値に達するまでインクリメントされるカウンタです。PR の値に達すると、TC がインクリメントされ、PC はクリアされます。PC はバスインターフェースを介して監視および制御できます。

0

TMR16B1MCR R/W 0x014 マッチ制御レジスタ(MCR)。MCR を使用し、一致した場合の割り込みの生成および TCのリセットについて制御します。

0

TMR16B1MR0 R/W 0x018 マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、MR0が TCと一致するたびに、TCのリセット、TCと PCの停止、および割り込みの生成を行うことができます。

0

TMR16B1MR1 R/W 0x01C マッチレジスタ 1(MR1)。MR0の説明を参照してください。 0

TMR16B1MR2 R/W 0x020 マッチレジスタ 2(MR2)。MR0の説明を参照してください。 0

TMR16B1MR3 R/W 0x024 マッチレジスタ 3(MR3)。MR0の説明を参照してください。 0

TMR16B1CCR R/W 0x028 キャプチャ制御レジスタ(CCR)。キャプチャイベントの発生時に、キャプチャレジスタへのロードに使用するキャプチャ入力のエッジを指定し、割り込みを生成するか否かを制御します。

0

TMR16B1CR0 RO 0x02C キャプチャレジスタ 0(CR0)。CT16B1_CAP0 入力でイベントが発生すると、CR0に TCの値がロードされます。

0

TMR16B1EMR R/W 0x03C 外部マッチレジスタ(EMR)。マッチ機能および外部マッチピンCT16B1_MAT[1:0]を制御します。

0

- - 0x040 - 0x06C

予約済み -

TMR16B1CTCR R/W 0x070 カウント制御レジスタ(CTCR)。CTCRを使用してタイマモードまたはカウンタモードを選択します。カウンタモードでは、カウント用の信号とエッジを選択できます。

0

TMR16B1PWMC R/W 0x074 PWM 制御レジスタ(PWMCON)。外部マッチピン CT16B1_MAT[1:0] のPWMモードをイネーブルにします。

0

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 250

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.2 タイマ制御レジスタ(TMR16B0TCRおよび TMR16B1TCR)タイマ制御レジスタ(TCR)は、カウンタ /タイマの動作の制御に使用します。

14.8.3 タイマカウンタ(TMR16B0TC - アドレス 0x4000 C008、TMR16B1TC -アドレス 0x4001 0008)プリスケールカウンタが最終カウントに達すると、16 ビットタイマカウンタがインクリメントされます。 上限値に達するまでリセットされない場合、TCは値 00x0000 FFFFまでカウントしてから、値 0x0000 0000 に戻ります。このイベントでは割り込みは発生しませんが、必要に応じてマッチレジスタを使用してオーバーフローを検出することができます。

14.8.4 プリスケールレジスタ(TMR16B0PR - アドレス 0x4000 C00C、TMR16B1PR -アドレス 0x4001 000C)16ビットプリスケールレジスタは、プリスケールカウンタの最大値を指定します。

Table 211. Interrupt Register (TMR16B0IR - address 0x4000 C000 and TMR16B1IR - address 0x4001 0000) bit description

Bit Symbol Description Reset value

0 MR0 Interrupt マッチチャネル 0用の割り込みフラグ 0

1 MR1 Interrupt マッチチャネル 1用の割り込みフラグ 0

2 MR2 Interrupt マッチチャネル 2用の割り込みフラグ 0

3 MR3 Interrupt マッチチャネル 3用の割り込みフラグ 0

4 CR0 Interrupt キャプチャチャネル 0イベント用の割り込みフラグ 0

31:5 - 予約済み -

Table 212. Timer Control Register (TMR16B0TCR - address 0x4000 C004 and TMR16B1TCR - address 0x4001 0004) bit description

Bit Symbol Description Reset value

0 Counter Enable 値が 1の場合は、タイマカウンタとプリスケールカウンタのカウント動作がイネーブルになります。値が 0の場合は、カウンタはディスエーブルになります。

0

1 Counter Reset 値が 1 の場合は、PCLK の次のポジティブエッジで、タイマカウンタとプリスケールカウンタが同時にリセットされます。TCR[1]が 0に戻るまで、カウンタはリセットされた状態になります。

0

31:2 - 予約済み。ユーザーソフトウェアによって予約ビットに1 を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 251

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.5 プリスケールカウンタレジスタ(TMR16B0PC - アドレス 0x4000 C010、TMR16B1PC - アドレス 0x4001 0010)16 ビットプリスケールカウンタは、タイマカウンタに分周クロックが供給される前段階で、一定値による PCLKの分周を制御します。これによって、タイマの分解能と、タイマがオーバーフローするまでの最大時間の関係を制御できます。プリスケールカウンタは1PCLK ごとにインクリメントされます。このカウンタがプリスケールレジスタに格納されている値に達すると、タイマカウンタがインクリメントされ、プリスケールカウンタは次の PCLK でリセットされます。これによって TC は、PR = 0 の場合は 1PCLK ごとに、PR = 1の場合は 2PCLKごとに、以下同様にインクリメントされていきます。

14.8.6 マッチ制御レジスタ(TMR16B0MCRおよび TMR16B1MCR)マッチ制御レジスタを使用して、マッチレジスタの 1 つがタイマカウンタと一致したときに実行する動作を制御します。各ビットの機能については、Table 213 を参照してください。

Table 213. Match Control Register (TMR16B0MCR - address 0x4000 C014 and TMR16B1MCR - address 0x4001 0014) bit description

Bit Symbol Value Description Reset value

0 MR0I 1 MR0による割り込み : MR0が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。1 MR0R 1 MR0によるリセット : MR0が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。2 MR0S 1 MR0による停止: MR0がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。3 MR1I 1 MR1による割り込み : MR1が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。4 MR1R 1 MR1によるリセット : MR1が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。5 MR1S 1 MR1による停止: MR1がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。6 MR2I 1 MR2による割り込み : MR2が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。7 MR2R 1 MR2によるリセット : MR2が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。8 MR2S 1 MR2による停止: MR2がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。9 MR3I 1 MR3による割り込み : MR3が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。10 MR3R 1 MR3によるリセット : MR3が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 252

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.7 マッチレジスタ(TMR16B0MR0/1/2/3 - アドレス 0x4000 C018/1C/20/24、TMR16B1MR0/1/2/3 - アドレス 0x4001 0018/1C/20/24)マッチレジスタの値は常時、タイマカウンタの値と比較されます。2つの値が等しい場合は、自動的にアクションがトリガされます。アクションとして、割り込みの発生、タイマカウンタのリセット、またはタイマの停止が引き起こされます。アクションはMCRレジスタの設定によって制御されます。

14.8.8 キャプチャ制御レジスタ(TMR16B0CCRおよび TMR16B1CCR)キャプチャ制御レジスタは、キャプチャイベントの発生時にカウンタ /タイマの値をキャプチャレジスタにロードするかどうか、および、そのキャプチャイベントによって割り込みを発生させるかどうかを制御します。立ち上がりと立ち下がりの両ビットを同時に有効に設定すると、両方のエッジでキャプチャイベントが発生します。下記の説明では、「n」はタイマ番号(0または 1)を示しています。

14.8.9 キャプチャレジスタ(CT16B0CR0 - アドレス 0x4000 C02C、CT16B1CR0 - アドレス 0x4001 002C)各キャプチャレジスタはデバイスピンに対応しており、指定されたイベントがピンで発生したときにカウンタ /タイマの値がロードされます。キャプチャ機能をイネーブルにするか否か、およびキャプチャイベントが発生するエッジ(関連するピンの立ち上がりエッジ、立ち下がりエッジ、または両エッジ)はキャプチャ制御レジスタの設定により決定されます。

11 MR3S 1 MR3による停止: MR3がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。31:12 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。

予約ビットから読み取った値は未定義です。NA

Table 213. Match Control Register (TMR16B0MCR - address 0x4000 C014 and TMR16B1MCR - address 0x4001 0014) bit description (続き)

Bit Symbol Value Description Reset value

Table 214. Capture Control Register (TMR16B0CCR - address 0x4000 C028 and TMR16B1CCR - address 0x4001 0028) bit description

Bit Symbol Value Description Reset value

0 CAP0RE 1 CT16Bn_CAP0立ち上がりエッジでキャプチャ: CT16Bn_CAP0における 0から 1への変化によって、CR0に TCの値がロードされます。

0

0 この機能はディスエーブルです。1 CAP0FE 1 CT16Bn_CAP0立ち下がりエッジでキャプチャ: CT16Bn_CAP0における 1から 0への変

化によって、CR0に TCの値がロードされます。0

0 この機能はディスエーブルです。2 CAP0I 1 CT16Bn_CAP0 イベントによる割り込み : CT16Bn_CAP0 イベントに起因する CR0 への

ロードによって割り込みが発生します。0

0 この機能はディスエーブルです。31:3 - - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。

予約ビットから読み取った値は未定義です。NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 253

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.10 外部マッチレジスタ(TMR16B0EMRおよび TMR16B1EMR)外部マッチレジスタは、外部マッチチャネルと外部マッチピン(CT16B0_MAT[2:0]およびCT16B1_MAT[1:0])のステータスを示し、それらを制御できるようにします。

マッチ出力が PWMCON レジスタ(Section 14.8.12)で PWM 出力として設定されている場合、外部マッチレジスタの機能はPWMルールにより決定されます(256ページの14.8.13「シングルエッジ制御の PWM出力のルール」)。

Table 215. External Match Register (TMR16B0EMR - address 0x4000 C03C and TMR16B1EMR - address 0x4001 003C) bit description

Bit Symbol Description Reset value

0 EM0 外部マッチ 0。 このビットは出力 CT16B0_MAT0/CT16B1_MAT0の状態を反映します(出力がそのピンに接続しているか否かは問いません)。TC と MR0 が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビット EMR[5:4]によって制御されます。IOCONレジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT16B0_MAT0/CT16B1_MAT0ピンに駆動されます。

0

1 EM1 外部マッチ 1。 このビットは出力 CT16B0_MAT1/CT16B1_MAT1の状態を反映します(出力がそのピンに接続しているか否かは問いません)。TC と MR1 が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビット EMR[7:6]によって制御されます。IOCONレジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT16B0_MAT1/CT16B1_MAT1ピンに駆動されます。

0

2 EM2 外部マッチ 2。 このビットはマッチチャネル 2の出力の状態を反映します(出力がそのピンに接続しているか否かは問いません)TCとMR2が一致した場合、このビットはトグル出力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能はビットEMR[9:8]によって制御されます。カウンタ /タイマ 0ではこのマッチチャネルはピンアウトされないので注意してください。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT16B1_MAT2ピンに駆動されます。

0

3 EM3 外部マッチ 3。 このビットはマッチチャネル 3の出力の状態を反映します。 TCとMR3が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビット EMR[11:10]によって制御されます。どちらの 16ビットタイマにもこのチャネル用の出力ピンはありません。

0

5:4 EMC0 外部マッチ制御 0。 外部マッチ 0の機能を指定します。Table 216はこれらのビットのエンコードした値を示しています。

00

7:6 EMC1 外部マッチ制御 1。 外部マッチ 1の機能を指定します。Table 216はこれらのビットのエンコードした値を示しています。

00

9:8 EMC2 外部マッチ制御 2。 外部マッチ 2の機能を指定します。Table 216はこれらのビットのエンコードした値を示しています。

00

11:10 EMC3 外部マッチ制御 3。 外部マッチ 3の機能を指定します。Table 216はこれらのビットのエンコードした値を示しています。

00

31:12 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 254

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.11 カウント制御レジスタ(TMR16B0CTCRおよび TMR16B1CTCR)カウント制御レジスタ(CTCR)を使用して、タイマモードまたはカウンタモードを選択します。カウンタモードでは、カウント用のピンとエッジを選択できます。

動作モードとしてカウンタモードを選択した場合、(CTCR ビット 3 ~ 2 で選択された)CAP入力が PCLKクロックの立ち上がりエッジごとにサンプリングされます。 CAP入力の2つの連続するサンプルを比較した後、4つのイベント(選択された CAP入力のレベルの立ち上がりエッジ、立ち下がりエッジ、両方のエッジ、変化なし)のいずれかとして認識されます。その識別されたイベントが発生し、それが CTCRレジスタのビット 1~ 0で選択されたイベントと一致した場合にのみ、タイマカウンタレジスタがインクリメントされます。

カウンタへの外部供給クロックを有効に処理するために、いくつかの制限があります。選択された CAP入力の 1つのエッジを識別するのに、PCLKクロックの 2つの連続する立ち上がりエッジが使用されるため、CAP入力の周波数は PCLKクロックの 1/2以下でなければなりません。したがってその場合、同じ CAP入力の HIGH/LOWレベルの継続時間を 1/(2× PCLK)よりも短くすることはできません。

Table 216. External match control

EMR[11:10], EMR[9:8],EMR[7:6], or EMR[5:4]

Function

00 変化なし。01 対応する外部マッチビット / 出力を 0 にクリアします(ピンアウトされた場合、

CT16Bn_MATmピンは LOW)。10 対応する外部マッチビット / 出力を 1 に設定します(ピンアウトされた場合、

CT16Bn_MATmピンは HIGH)。11 対応する外部マッチビット /出力をトグル出力します。

Table 217. Count Control Register (TMR16B0CTCR - address 0x4000 C070 and TMR16B1CTCR - address 0x4001 0070) bit description

Bit Symbol Value Description Reset value

1:0 Counter/Timer Mode

00

このフィールドでは、タイマのプリスケールカウンタ(PC)のインクリメント、または PC のクリアとタイマカウンタ(TC)のインクリメントを行う PCLK の立ち上がりエッジを選択します。タイマモード : PCLKのすべての立ち上がりエッジ

00

01 カウンタモード : ビット 3~ 2で選択された CAP入力の立ち上がりエッジで TCをインクリメントします。

10 カウンタモード : ビット 3~ 2で選択された CAP入力の立ち下がりエッジで TCをインクリメントします。

11 カウンタモード : ビット 3~ 2で選択された CAP入力の両方のエッジで、TCをインクリメントします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 255

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.12 PWM制御レジスタ(TMR16B0PWMCおよび TMR16B1PWMC)PWM 制御レジスタを使用して、マッチ出力を PWM 出力として設定します。各マッチ出力は、PWM出力としてまたは外部マッチレジスタ(EMR)により機能が制御されるマッチ出力として、個々に設定することができます。

タイマ 0の場合は、CT16B0_MAT[2:0]出力に対してシングルエッジ制御の PWM出力を 3つまで選択できます。タイマ 1の場合は、CT16B1_MAT[1:0]出力に対してシングルエッジ制御の PWM出力を 2つまで選択できます。PWMサイクルの長さは別のマッチレジスタによって決定されます。他のマッチレジスタのいずれかで一致が生じた場合、PWM出力は HIGH に設定されます。タイマのリセットは、PWM サイクル長の設定用として設定されているマッチレジスタにより行われます。タイマが 0にリセットされると、現在 PWM出力として設定されている HIGHマッチ出力がすべてクリアされます。

3:2 Count Input Select

00

カウンタモード(このレジスタのビット 1~ 0が 00ではない場合)では、これらのビットによって、クロッキング用にサンプリングする CAPピンを選択します。CT16Bn_CAP0

00

01 予約済み10 予約済み

注記 :CTCR レジスタでカウンタモードを選択した場合は、キャプチャ制御レジスタ(CCR)のビット 2~ 0を 000に設定する必要があります。

11 予約済み 31:4 - - 予約済み。ユーザーソフトウェアによって予約ビットに 1を

書き込まないでください。予約ビットから読み取った値は未定義です。

NA

Table 217. Count Control Register (TMR16B0CTCR - address 0x4000 C070 and TMR16B1CTCR - address 0x4001 0070) bit description(続き)

Bit Symbol Value Description Reset value

Table 218. PWM Control Register (TMR16B0PWMC - address 0x4000 C074 and TMR16B1PWMC- address 0x4001 0074) bit description

Bit Symbol Description Reset value

0 PWM enable 値が 1の場合は、CT16Bn_MAT0に対して PWMモードがイネーブルになります。値が 0 の場合は、CT16Bn_MAT0 はEM0により制御されます。

0

1 PWM enable 値が 1の場合は、CT16Bn_MAT1に対して PWMモードがイネーブルになります。値が 0 の場合は、CT16Bn_MAT1 はEM1により制御されます。

0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 256

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.8.13 シングルエッジ制御の PWM出力のルール1. マッチ値が 0でない場合、すべてのシングルエッジ制御の PWM出力は、各 PWM

サイクルの開始時に LOWになります(タイマは 0に設定されます)。

2. 各 PWM出力は、それぞれのマッチ値に達すると HIGHになります。一致しない場合(マッチ値が PWMサイクル長よりも大きい場合)、PWM出力は LOWのままになります。

3. PWM サイクル長よりも大きいマッチ値がマッチレジスタに書き込まれ、PWM 信号がすでに HIGH になっている場合、PWM 信号は次の PWM サイクルの開始時にクリアされます。

4. マッチレジスタの値がタイマのリセット値(PWM サイクル長)と等しい場合、PWM出力は次のクロックチックで LOWにリセットされます。したがって、PWM出力は常に、PWMサイクル長(タイマのリロード値)によって決定される周期と、1クロックチック幅のポジティブパルスで構成されます。

5. マッチレジスタが 0に設定されている場合、PWM出力はタイマが最初に 0に戻ったときに HIGHになり、その状態にとどまります。

注記 : マッチ出力が PWM 出力として機能するように選択されている場合は、PWM サイクル長を設定するマッチレジスタを除き、マッチ制御レジスタ(MCR)のタイマリセットビット(MRnR)とタイマ停止ビット(MRnS)を 0 に設定する必要があります。このレジスタの MRnR ビットを 1 に設定すると、タイマ値が対応するマッチレジスタの値と一致したときにタイマリセットがイネーブルになります。

2 PWM enable 値が 1 の場合は、マッチチャネル 2 またはピンCT16Bn_MAT2 に対して PWM モードがイネーブルになります。値が 0の場合は、マッチチャネル 2またはピンCT16Bn_MAT2は EM2により制御されます。タイマ 1ではマッチチャネル 2はピンアウトされません。

0

3 PWM enable 値が 1の場合は、マッチチャネル 3に対して PWMモードがイネーブルになります(マッチチャネル 3)。値が 0の場合は、マッチチャネル 3 は EM3 によって制御されます(マッチチャネル 3)。注記 :マッチチャネル3はピンアウトされていないため、マッチチャネル 3を使用して PWMサイクルを設定することをお勧めします。

0

31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに1 を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

Table 218. PWM Control Register (TMR16B0PWMC - address 0x4000 C074 and TMR16B1PWMC- address 0x4001 0074) bit description(続き)

Bit Symbol Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 257

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.9 タイマ動作の例

Figure 50 に示すタイマは、一致した場合にカウントをリセットして割り込みを生成するように設定されています。 プリスケーラは 2に設定され、マッチレジスタは 6に設定されています。 一致が生じるタイマサイクルの終了時に、タイマカウントがリセットされます。これによって、マッチ値にサイクルの全長が設定されます。タイマがマッチ値に達した後の次のクロックで、一致が生じたことを示す割り込みが生成されます。

Figure 51 に示すタイマは、一致した場合に停止して割り込みを生成するように設定されています。 プリスケーラは再び 2に設定され、マッチレジスタは 6に設定されています。タイマがマッチ値に達した後の次のクロックで、TCRのタイマイネーブルビットがクリアされ、一致が生じたことを示す割り込みが生成されます。

Fig 49. Sample PWM waveforms with a PWM cycle length of 100 (selected by MR3) and MAT3:0 enabled as PWM outputs by the PWCON register.

100(counter is reset)

0 41 65

PWM0/MAT0

PWM1/MAT1

PWM2/MAT2 MR2 = 100

MR1 = 41

MR0 = 65

Fig 50. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled

PCLK

prescalecounter

interrupt

timercounter

timer counterreset

2222 0 0 0 01 1 1 1

4 5 6 0 1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 258

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

Fig 51. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled

PCLK

prescale counter

interrupt

timer counter

TCR[0](counter enable)

22 0 01

4 5 6

1 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 259

NXP Semiconductors UM10398第 14章:LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

参考資料

14.10 アーキテクチャ

Figure 52に、カウンタ /タイマ 0およびカウンタ /タイマ 1のブロック図を示します。

Fig 52. 16-bit counter/timer block diagram

reset MAXVAL

TIMER CONTROL REGISTER PRESCALE REGISTER

PRESCALE COUNTERPCLK

enable

CAPTURE REGISTER 0

MATCH REGISTER 3

MATCH REGISTER 2

MATCH REGISTER 1

MATCH REGISTER 0

CAPTURE CONTROL REGISTER

CONTROL

TIMER COUNTERCSN

TCI

CE

=

=

=

=

INTERRUPT REGISTER

EXTERNAL MATCH REGISTER

MATCH CONTROL REGISTER

MATn[2:0]

INTERRUPT

CAP0

STOP ON MATCH

RESET ON MATCH

LOAD[3:0]

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 260

参考資料

15.1 この章を読む前に

32ビットブロックは、LPC111xと LPC11C1xのすべての部品で同一です。

15.2 基本構成

CT32B0/1は以下のレジスタを使用して設定します。

1. ピン :CT32B0/1 ピンは、IOCONFIG レジスタブロックで設定する必要があります(Section 6.4.1)。

2. 電力とペリフェラルクロック :SYSAHBCLKCTRLレジスタのビット 9とビット 10を設定します(Table 19)。

15.3 特長

• プログラマブルな 32ビットプリスケーラを備えた 2つの 32ビットカウンタ /タイマ

• カウンタまたはタイマ動作• 1 つの 32 ビットキャプチャチャネルにより、入力信号の遷移時にタイマ値のスナップショットを取得できます。キャプチャイベントによって任意に割り込みを生成することもできます。

• 4つの 32ビットマッチレジスタによって以下の動作を行うことができます。

– 一致した場合に、任意に割り込みを生成して連続動作

– 一致した場合に、任意に割り込みを生成してタイマを停止

– 一致した場合に、任意に割り込みを生成してタイマをリセット

• マッチレジスタに対応した 4つの外部出力は以下の設定が可能です。

– 一致した場合、LOWに設定

– 一致した場合、HIGHに設定

– 一致した場合、トグル出力

– 一致した場合、変化なし

• 各タイマに対して最大 4 つのマッチレジスタを PWM として設定できます。これによって、最大 3つのマッチ出力をシングルエッジ制御の PWM出力として使用できます。

UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 261

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.4 用途

• 内部イベントカウント用のインターバルタイマ• キャプチャ入力を使用したパルス幅復調器• フリーランニングタイマ• マッチ出力を使用したパルス幅変調器

15.5 説明

カウンタ / タイマは、ペリフェラルクロック(PCLK)または外部供給クロックのサイクルをカウントするように設計されています。4つのマッチレジスタに基づく特定のタイマ値によって、任意に割り込みを生成したりその他のアクションを実行することができます。各カウンタ /タイマは入力信号の遷移時にタイマ値をトラップする 1つのキャプチャ入力機能も備えており、任意に割り込みを生成できます。

PWM モードでは、3 つのマッチレジスタを使用して、シングルエッジ制御の PWM 出力をマッチ出力ピンに供給できます。PWMサイクルの長さは 1つのマッチレジスタによって制御されます。

注意 : 32ビットカウンタ /タイマ 0(CT32B0)と 32ビットカウンタ /タイマ 1(CT32B1)は、ペリフェラルのベースアドレスを除き、機能的に同一です。

15.6 ピンの説明

Table 219に各カウンタ /タイマに関連するピンの要約を示します。

15.7 クロックと電力の制御

32ビットタイマへのペリフェラルクロック(PCLK)はシステムクロックによって供給されます(Figure 3 を参照)。これらのクロックは、節電のために、AHBCLKCTRL レジスタ(Table 19)のビット 9とビット 10によってディスエーブルにすることができます。

Table 219. Counter/timer pin description

Pin Type Description

CT32B0_CAP0CT32B1_CAP0

Input キャプチャ信号 :キャプチャピンにおける遷移を設定して、キャプチャレジスタの 1つにタイマカウンタの値をロードし、任意に割り込みを生成することができます。 カウンタ / タイマブロックでは、PCLK から導き出したクロックの代わりに、キャプチャ信号をクロックソースとして選択できます。詳細については、268ページの 15.8.11「カウント制御レジスタ(TMR32B0CTCRおよび TMR32B1CTCR)」を参照してください。

CT32B0_MAT[3:0]CT32B1_MAT[3:0]

Output CT32B0/1の外部マッチ出力 :マッチレジスタ TMR32B0/1MR3 ~ 0 がタイマカウンタ(TC)と等しい場合、この出力はトグル、LOW、HIGH、または変化なしになります。この出力の機能は、外部マッチレジスタ(EMR)と PWM制御レジスタ(PWMCON)によって制御します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 262

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8 レジスタの説明

32ビットカウンタ /タイマ 0のレジスタは Table 220に、32ビットカウンタ /タイマ 1のレジスタは Table 221に示されています。詳細は以下を参照してください。

Table 220. Register overview: 32-bit counter/timer 0 CT32B0 (base address 0x4001 4000)

Name Access Address offset

Description Reset value[1]

TMR32B0IR R/W 0x000 割り込みレジスタ(IR)。IR に書き込むことにより割り込みをクリアできます。また、IRを読み取り、5つの割り込みソースの中から保留中の割り込みソースを特定することができます。

0

TMR32B0TCR R/W 0x004 タイマ制御レジスタ(TCR)。TCRはタイマカウンタ機能の制御に使用します。TCRによってタイマカウンタをディスエーブルにしたり、リセットすることができます。

0

TMR32B0TC R/W 0x008 タイマカウンタ(TC)。32ビット TCは、PCLKの PR+1サイクルごとにインクリメントされます。TCは TCRによって制御されます。

0

TMR32B0PR R/W 0x00C プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値と等しい場合、次のクロックによって TCがインクリメントされ、PCはクリアされます。

0

TMR32B0PC R/W 0x010 プリスケールカウンタ(PC)。32ビット PCは、PRに格納されている値に達するまでインクリメントされるカウンタです。PRの値に達すると、TC がインクリメントされ、PC はクリアされます。PC はバスインターフェースを介して監視および制御できます。

0

TMR32B0MCR R/W 0x014 マッチ制御レジスタ(MCR)。MCRを使用し、一致した場合の割り込みの生成および TCのリセットについて制御します。

0

TMR32B0MR0 R/W 0x018 マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、MR0が TCと一致するたびに、TCのリセット、TCと PCの停止、および割り込みの生成を行うことができます。

0

TMR32B0MR1 R/W 0x01C マッチレジスタ 1(MR1)。MR0の説明を参照してください。 0

TMR32B0MR2 R/W 0x020 マッチレジスタ 2(MR2)。MR0の説明を参照してください。 0

TMR32B0MR3 R/W 0x024 マッチレジスタ 3(MR3)。MR0の説明を参照してください。 0

TMR32B0CCR R/W 0x028 キャプチャ制御レジスタ(CCR)。キャプチャイベントの発生時に、キャプチャレジスタへのロードに使用するキャプチャ入力のエッジを指定し、割り込みを生成するか否かを制御します。

0

TMR32B0CR0 RO 0x02C キャプチャレジスタ 0(CR0)。CT32B0_CAP0 入力でイベントが発生すると、CR0に TCの値がロードされます。

0

TMR32B0EMR R/W 0x03C 外部マッチレジスタ(EMR)。マッチ機能および外部マッチピンCT32B0_MAT[3:0]を制御します。

0

- - 0x040 - 0x06C

予約済み -

TMR32B0CTCR R/W 0x070 カウント制御レジスタ(CTCR)。CTCR を使用してタイマモードまたはカウンタモードを選択します。カウンタモードでは、カウント用の信号とエッジを選択できます。

0

TMR32B0PWMC R/W 0x074 PWM 制御レジスタ(PWMCON)。外部マッチピン CT32B0_MAT[3:0] のPWMモードをイネーブルにします。

0

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 263

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.1 割り込みレジスタ(TMR32B0IRおよび TMR32B1IR)割り込みレジスタは、マッチ割り込み用の 4 ビットとキャプチャ割り込み用の 1 ビットで構成されています。割り込みが発生すると、IRの対応するビットが HIGHになります。それ以外の場合、対応ビットは LOWになります。対応する IRビットにロジック 1を書き込むと、割り込みはリセットされます。0を書き込んでも影響はありません。

Table 221. Register overview: 32-bit counter/timer 1 CT32B1 (base address 0x4001 8000)

Name Access Address offset

Description Reset value[1]

TMR32B1IR R/W 0x000 割り込みレジスタ(IR)。IR に書き込むことにより割り込みをクリアできます。また、IRを読み取り、5つの割り込みソースの中から保留中の割り込みソースを特定することができます。

0

TMR32B1TCR R/W 0x004 タイマ制御レジスタ(TCR)。TCRはタイマカウンタ機能の制御に使用します。TCRによってタイマカウンタをディスエーブルにしたり、リセットすることができます。

0

TMR32B1TC R/W 0x008 タイマカウンタ(TC)。32ビット TCは、PCLKの PR+1サイクルごとにインクリメントされます。TCは TCRによって制御されます。

0

TMR32B1PR R/W 0x00C プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値と等しい場合、次のクロックによって TCがインクリメントされ、PCはクリアされます。

0

TMR32B1PC R/W 0x010 プリスケールカウンタ(PC)。32ビット PCは、PRに格納されている値に達するまでインクリメントされるカウンタです。PRの値に達すると、TC がインクリメントされ、PC はクリアされます。PC はバスインターフェースを介して監視および制御できます。

0

TMR32B1MCR R/W 0x014 マッチ制御レジスタ(MCR)。MCRを使用し、一致した場合の割り込みの生成および TCのリセットについて制御します。

0

TMR32B1MR0 R/W 0x018 マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、MR0が TCと一致するたびに、TCのリセット、TCと PCの停止、および割り込みの生成を行うことができます。

0

TMR32B1MR1 R/W 0x01C マッチレジスタ 1(MR1)。MR0の説明を参照してください。 0

TMR32B1MR2 R/W 0x020 マッチレジスタ 2(MR2)。MR0の説明を参照してください。 0

TMR32B1MR3 R/W 0x024 マッチレジスタ 3(MR3)。MR0の説明を参照してください。 0

TMR32B1CCR R/W 0x028 キャプチャ制御レジスタ(CCR)。キャプチャイベントの発生時に、キャプチャレジスタへのロードに使用するキャプチャ入力のエッジを指定し、割り込みを生成するか否かを制御します。

0

TMR32B1CR0 RO 0x02C キャプチャレジスタ 0(CR0)。CT32B1_CAP0 入力でイベントが発生すると、CR0に TCの値がロードされます。

0

TMR32B1EMR R/W 0x03C 外部マッチレジスタ(EMR)。マッチ機能および外部マッチピンCT32B1_MAT[3:0]を制御します。

0

- - 0x040 - 0x06C

予約済み -

TMR32B1CTCR R/W 0x070 カウント制御レジスタ(CTCR)。CTCR を使用してタイマモードまたはカウンタモードを選択します。カウンタモードでは、カウント用の信号とエッジを選択できます。

0

TMR32B1PWMC R/W 0x074 PWM 制御レジスタ(PWMCON)。外部マッチピン CT32B1_MAT[3:0] のPWMモードをイネーブルにします。

0

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 264

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.2 タイマ制御レジスタ(TMR32B0TCRおよび TMR32B1TCR)タイマ制御レジスタ(TCR)は、カウンタ /タイマの動作の制御に使用します。

15.8.3 タイマカウンタ(TMR32B0TC - アドレス 0x4001 4008、TMR32B1TC -アドレス 0x4001 8008)プリスケールカウンタが最終カウントに達すると、32 ビットタイマカウンタがインクリメントされます。 上限値に達するまでリセットされない場合、TCは値 0xFFFF FFFFまでカウントしてから、値 0x0000 0000に戻ります。 このイベントでは割り込みは発生しませんが、必要に応じてマッチレジスタを使用してオーバーフローを検出することができます。

15.8.4 プリスケールレジスタ(TMR32B0PR - アドレス 0x4001 400C、TMR32B1PR -アドレス 0x4001 800C)32ビットプリスケールレジスタは、プリスケールカウンタの最大値を指定します。

Table 222: Interrupt Register (TMR32B0IR - address 0x4001 4000 and TMR32B1IR - address 0x4001 8000) bit description

Bit Symbol Description Reset value

0 MR0 Interrupt マッチチャネル 0用の割り込みフラグ 0

1 MR1 Interrupt マッチチャネル 1用の割り込みフラグ 0

2 MR2 Interrupt マッチチャネル 2用の割り込みフラグ 0

3 MR3 Interrupt マッチチャネル 3用の割り込みフラグ 0

4 CR0 Interrupt キャプチャチャネル 0イベント用の割り込みフラグ 0

31:5 - 予約済み -

Table 223: Timer Control Register (TMR32B0TCR - address 0x4001 4004 and TMR32B1TCR - address 0x4001 8004) bit description

Bit Symbol Description Reset value

0 Counter Enable 値が 1の場合は、タイマカウンタとプリスケールカウンタのカウント動作がイネーブルになります。値が 0の場合は、カウンタはディスエーブルになります。

0

1 Counter Reset 値が 1 の場合は、PCLK の次のポジティブエッジで、タイマカウンタとプリスケールカウンタが同時にリセットされます。TCR[1]が 0に戻るまで、カウンタはリセットされた状態になります。

0

31:2 - 予約済み。ユーザーソフトウェアによって予約ビットに1 を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 265

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.5 プリスケールカウンタレジスタ(TMR32B0PC - アドレス 0x4001 4010、TMR32B1PC - アドレス 0x4001 8010)32 ビットプリスケールカウンタは、タイマカウンタに分周クロックが供給される前段階で、一定値による PCLKの分周を制御します。これによって、タイマの分解能と、タイマがオーバーフローするまでの最大時間の関係を制御できます。プリスケールカウンタは1PCLK ごとにインクリメントされます。このカウンタがプリスケールレジスタに格納されている値に達すると、タイマカウンタがインクリメントされ、プリスケールカウンタは次の PCLK でリセットされます。これによって TC は、PR = 0 の場合は 1PCLK ごとに、PR = 1の場合は 2PCLKごとに、以下同様にインクリメントされていきます。

15.8.6 マッチ制御レジスタ(TMR32B0MCRおよび TMR32B1MCR)マッチ制御レジスタを使用して、マッチレジスタの 1 つがタイマカウンタと一致したときに実行する動作を制御します。各ビットの機能については、Table 224 を参照してください。

Table 224: Match Control Register (TMR32B0MCR - address 0x4001 4014 and TMR32B1MCR - address 0x4001 8014) bit description

Bit Symbol Value Description Reset value

0 MR0I 1 MR0による割り込み : MR0が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。1 MR0R 1 MR0によるリセット : MR0が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。2 MR0S 1 MR0による停止: MR0がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。3 MR1I 1 MR1による割り込み : MR1が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。4 MR1R 1 MR1によるリセット : MR1が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。5 MR1S 1 MR1による停止: MR1がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。6 MR2I 1 MR2による割り込み : MR2が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。7 MR2R 1 MR2によるリセット : MR2が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。8 MR2S 1 MR2による停止: MR2がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。9 MR3I 1 MR3による割り込み : MR3が TCの値と一致した場合に、割り込みを生成します。 0

0 この割り込みはディスエーブルです。10 MR3R 1 MR3によるリセット : MR3が TCと一致した場合に、TCをリセットします。 0

0 機能はディスエーブルです。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 266

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.7 マッチレジスタ(TMR32B0MR0/1/2/3 - アドレス 0x4001 4018/1C/20/24、TMR32B1MR0/1/2/3 アドレス 0x4001 8018/1C/20/24)マッチレジスタの値は常時、タイマカウンタの値と比較されます。2つの値が等しい場合は、自動的にアクションがトリガされます。アクションとして、割り込みの発生、タイマカウンタのリセット、またはタイマの停止が引き起こされます。アクションはMCRレジスタの設定によって制御されます。

15.8.8 キャプチャ制御レジスタ(TMR32B0CCRおよび TMR32B1CCR)キャプチャ制御レジスタは、キャプチャイベントの発生時にタイマカウンタの値をキャプチャレジスタにロードするかどうか、および、そのキャプチャイベントによって割り込みを発生させるかどうかを制御します。立ち上がりと立ち下がりの両ビットを同時に有効に設定すると、両方のエッジでキャプチャイベントが発生します。下記の説明では、「n」はタイマ番号(0または 1)を示しています。

15.8.9 キャプチャレジスタ(TMR32B0CR0 - アドレス 0x4001 402C、TMR32B1CR0 - アドレス 0x4001 802C)各キャプチャレジスタはデバイスピンに対応しており、指定されたイベントがピンで発生したときにタイマカウンタの値がロードされます。キャプチャ機能をイネーブルにするか否か、およびキャプチャイベントが発生するエッジ(関連するピンの立ち上がりエッジ、立ち下がりエッジ、または両エッジ)はキャプチャ制御レジスタの設定により決定されます。

11 MR3S 1 MR3による停止: MR3がTCと一致した場合に、TCとPCを停止し、TCR[0]を0に設定します。 0

0 機能はディスエーブルです。31:12 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。

予約ビットから読み取った値は未定義です。NA

Table 224: Match Control Register (TMR32B0MCR - address 0x4001 4014 and TMR32B1MCR - address 0x4001 8014) bit descriptionÅië±Ç´Åj

Bit Symbol Value Description Reset value

Table 225: Capture Control Register (TMR32B0CCR - address 0x4001 4028 and TMR32B1CCR - address 0x4001 8028) bit description

Bit Symbol Value Description Reset value

0 CAP0RE 1 CT32Bn_CAP0立ち上がりエッジでキャプチャ: CT32Bn_CAP0における 0から 1への変化によって、CR0に TCの値がロードされます。

0

0 この機能はディスエーブルです。1 CAP0FE 1 CT32Bn_CAP0立ち下がりエッジでキャプチャ: CT32Bn_CAP0における 1から 0への変

化によって、CR0に TCの値がロードされます。0

0 この機能はディスエーブルです。2 CAP0I 1 CT32Bn_CAP0 イベントによる割り込み : CT32Bn_CAP0 イベントに起因する CR0 への

ロードによって割り込みが発生します。0

0 この機能はディスエーブルです。31:3 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。

予約ビットから読み取った値は未定義です。NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 267

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.10 外部マッチレジスタ(TMR32B0EMRおよび TMR32B1EMR)外部マッチレジスタは、外部マッチピン CAP32Bn_MAT[3:0]のステータスを示し、それらを制御できるようにします。

マッチ出力が PWM 出力として設定されている場合、外部マッチレジスタの機能は PWMルールにより決定されます(270 ページの 15.8.13 「シングルエッジ制御の PWM 出力のルール」)。

Table 226: External Match Register (TMR32B0EMR - address 0x4001 403C and TMR32B1EMR - address0x4001 803C) bit description

Bit Symbol Description Reset value

0 EM0 外部マッチ 0。 このビットは出力 CT32Bn_MAT0 の状態を反映します(出力がそのピンに接続しているか否かは問いません)。TC と MR0 が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビット EMR[5:4]によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT32B0_MAT0/CT32B1_MAT0ピンに駆動されます。

0

1 EM1 外部マッチ 1。 このビットは出力 CT32Bn_MAT1 の状態を反映します(出力がそのピンに接続しているか否かは問いません)。TC と MR1 が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビット EMR[7:6]によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT32B0_MAT1/CT32B1_MAT1ピンに駆動されます。

0

2 EM2 外部マッチ 2。 このビットは出力 CT32Bn_MAT2 の状態を反映します(出力がそのピンに接続しているか否かは問いません)。TC と MR2 が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビット EMR[9:8]によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT32B0_MAT2/CT32B1_MAT2ピンに駆動されます。

0

3 EM3 外部マッチ 3。 このビットは出力 CT32Bn_MAT3 の状態を反映します(出力がそのピンに接続しているか否かは問いません)。TC と MR3 が一致した場合、このビットはトグル出力、LOW出力、HIGH出力、または変化なしとなります。この出力の機能はビットEMR[11:10]によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、1 = HIGH)、このビットは CT32B0_MAT3/CT32B1_MAT3ピンに駆動されます。

0

5:4 EMC0 外部マッチ制御 0。 外部マッチ 0の機能を指定します。 Table 227はこれらのビットのエンコードした値を示しています。

00

7:6 EMC1 外部マッチ制御 1。 外部マッチ 1の機能を指定します。 Table 227はこれらのビットのエンコードした値を示しています。

00

9:8 EMC2 外部マッチ制御 2。 外部マッチ 2の機能を指定します。 Table 227はこれらのビットのエンコードした値を示しています。

00

11:10 EMC3 外部マッチ制御 3。 外部マッチ 3の機能を指定します。 Table 227はこれらのビットのエンコードした値を示しています。

00

31:12 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 268

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.11 カウント制御レジスタ(TMR32B0CTCRおよび TMR32B1CTCR)カウント制御レジスタ(CTCR)を使用して、タイマモードまたはカウンタモードを選択します。カウンタモードでは、カウント用のピンとエッジを選択できます。

動作モードとしてカウンタモードを選択した場合、(CTCR ビット 3 ~ 2 で選択された)CAP入力が PCLKクロックの立ち上がりエッジごとにサンプリングされます。 CAP入力の2つの連続するサンプルを比較した後、4つのイベント(選択された CAP入力のレベルの立ち上がりエッジ、立ち下がりエッジ、両方のエッジ、変化なし)のいずれかとして認識されます。その識別されたイベントが発生し、それが CTCRレジスタのビット 1~ 0で選択されたイベントと一致した場合にのみ、タイマカウンタレジスタがインクリメントされます。

カウンタへの外部供給クロックを有効に処理するために、いくつかの制限があります。選択された CAP入力の 1つのエッジを識別するのに、PCLKクロックの 2つの連続する立ち上がりエッジが使用されるため、CAP入力の周波数は PCLKクロックの 1/2以下でなければなりません。したがってその場合、同じ CAP入力の HIGH/LOWレベルの継続時間を 1/(2× PCLK)よりも短くすることはできません。

Table 227. External match control

EMR[11:10], EMR[9:8],EMR[7:6], or EMR[5:4]

Function

00 変化なし。01 対応する外部マッチビット / 出力を 0 にクリアします(ピンアウトされた場合、

CT32Bn_MATmピンは LOW)。10 対応する外部マッチビット / 出力を 1 に設定します(ピンアウトされた場合、

CT32Bn_MATmピンは HIGH)。11 対応する外部マッチビット /出力をトグル出力します。

Table 228: Count Control Register (TMR32B0CTCR - address 0x4001 4070 and TMR32B1TCR - address 0x4001 8070) bit description

Bit Symbol Value Description Reset value

1:0 Counter/Timer Mode

00

このフィールドでは、タイマのプリスケールカウンタ(PC)のインクリメント、または PC のクリアとタイマカウンタ(TC)のインクリメントを行う PCLK の立ち上がりエッジを選択します。タイマモード : PCLKのすべての立ち上がりエッジ

00

01 カウンタモード : ビット 3~ 2で選択された CAP入力の立ち上がりエッジで TCをインクリメントします。

10 カウンタモード : ビット 3~ 2で選択された CAP入力の立ち下がりエッジで TCをインクリメントします。

11 カウンタモード : ビット 3~ 2で選択された CAP入力の両方のエッジで、TCをインクリメントします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 269

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.12 PWM制御レジスタ(TMR32B0PWMCおよび TMR32B1PWMC)PWM 制御レジスタを使用して、マッチ出力を PWM 出力として設定します。各マッチ出力は、PWM出力としてまたは外部マッチレジスタ(EMR)により機能が制御されるマッチ出力として、個々に設定することができます。

各タイマでは、MATn[2:0]出力に対してシングルエッジ制御の PWM出力を最大 3つまで選択できます。PWMサイクルの長さは別のマッチレジスタによって決定されます。他のマッチレジスタのいずれかで一致が生じた場合、PWM 出力は HIGH に設定されます。タイマのリセットは、PWMサイクル長の設定用として設定されているマッチレジスタにより行われます。タイマが 0 にリセットされると、現在 PWM 出力として設定されているHIGHマッチ出力がすべてクリアされます。

3:2 Count Input Select

00

このレジスタのビット 1~ 0が「00」ではない場合は、これらのビットによって、クロッキング用にサンプリングするCAPピンを選択します。CT32Bn_

CAP0

00

01 予約済み10 予約済み11 予約済み

注記 :TnCTCR でカウンタモードを選択した場合は、キャプチャ制御レジスタ(TnCCR)の入力用の 3つのビットを「000」に設定する必要があります。

31:4 - - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

Table 228: Count Control Register (TMR32B0CTCR - address 0x4001 4070 and TMR32B1TCR - address 0x4001 8070) bit description Åië±Ç´Åj

Bit Symbol Value Description Reset value

Table 229: PWM Control Register (TMR32B0PWMC - 0x4001 4074 and TMR32B1PWMC - 0x4001 8074) bit description

Bit Symbol Description Reset value

0 PWM enable 値が 1 の場合は、CT32Bn_MAT0 に対して PWM モードがイネーブルになります。値が 0 の場合は、CT32Bn_MAT0は EM0により制御されます。

0

1 PWM enable 値が 1 の場合は、CT32Bn_MAT1 対して PWM モードがイネーブルになります。値が 0の場合は、CT32Bn_MAT1は EM1により制御されます。

0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 270

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.8.13 シングルエッジ制御の PWM出力のルール1. マッチ値が 0でない場合、すべてのシングルエッジ制御の PWM出力は、各 PWM

サイクルの開始時に LOWになります(タイマは 0に設定されます)。

2. 各 PWM出力は、それぞれのマッチ値に達すると HIGHになります。一致しない場合(マッチ値が PWMサイクル長よりも大きい場合)、PWM出力は LOWのままになります。

3. PWM サイクル長よりも大きいマッチ値がマッチレジスタに書き込まれ、PWM 信号がすでに HIGH になっている場合、PWM 信号は次の PWM サイクルの開始時にクリアされます。

4. マッチレジスタの値がタイマのリセット値(PWM サイクル長)と等しい場合、PWM出力は、タイマがマッチ値に達した後の次のクロックチックで LOWにリセットされます。したがって、PWM 出力は常に、PWM サイクル長(タイマのリロード値)によって決定される周期と、1クロックチック幅のポジティブパルスで構成されます。

5. マッチレジスタが 0に設定されている場合、PWM出力はタイマが最初に 0に戻ったときに HIGHになり、その状態にとどまります。

注記 : マッチ出力が PWM 出力として機能するように選択されている場合は、PWM サイクル長を設定するマッチレジスタを除き、マッチ制御レジスタ(MCR)のタイマリセットビット(MRnR)とタイマ停止ビット(MRnS)を 0 に設定する必要があります。このレジスタの MRnR ビットを 1 に設定すると、タイマ値が対応するマッチレジスタの値と一致したときにタイマリセットがイネーブルになります。

2 PWM enable 値が 1 の場合は、CT32Bn_MAT2 に対して PWM モードがイネーブルになります。値が 0 の場合は、CT32Bn_MAT2は EM2により制御されます。

0

3 PWM enable 値が 1 の場合は、CT32Bn_MAT3 に対して PWM モードがイネーブルになります。値が 0 の場合は、CT32Bn_MAT3は EM3により制御されます。注記 :マッチチャネル3を使用してPWMサイクルをセットすることをお勧めします。

0

31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに1 を書き込まないでください。予約ビットから読み取った値は未定義です。

NA

Table 229: PWM Control Register (TMR32B0PWMC - 0x4001 4074 and TMR32B1PWMC - 0x4001 8074) bit description

Bit Symbol Description Reset value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 271

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.9 タイマ動作の例

Figure 54 に示すタイマは、一致した場合にカウントをリセットして割り込みを生成するように設定されています。 プリスケーラは 2に設定され、マッチレジスタは 6に設定されています。 一致が生じるタイマサイクルの終了時に、タイマカウントがリセットされます。これによって、マッチ値にサイクルの全長が設定されます。タイマがマッチ値に達した後の次のクロックで、一致が生じたことを示す割り込みが生成されます。

Figure 55 に示すタイマは、一致した場合に停止して割り込みを生成するように設定されています。 プリスケーラは再び 2に設定され、マッチレジスタは 6に設定されています。タイマがマッチ値に達した後の次のクロックで、TCRのタイマイネーブルビットがクリアされ、一致が生じたことを示す割り込みが生成されます。

Fig 53. Sample PWM waveforms with a PWM cycle length of 100 (selected by MR3) and MAT3:0 enabled as PWM outputs by the PWCON register.

100(counter is reset)

0 41 65

PWM0/MAT0

PWM1/MAT1

PWM2/MAT2 MR2 = 100

MR1 = 41

MR0 = 65

Fig 54. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled

PCLK

prescalecounter

interrupt

timercounter

timer counterreset

2222 0 0 0 01 1 1 1

4 5 6 0 1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 272

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

Fig 55. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled

PCLK

prescale counter

interrupt

timer counter

TCR[0](counter enable)

22 0 01

4 5 6

1 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 273

NXP Semiconductors UM10398第 15章:LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

参考資料

15.10 アーキテクチャ

Figure 56に、32ビットカウンタ /タイマ 0および 32ビットカウンタ /タイマ 1のブロック図を示します。

Fig 56. 32-bit counter/timer block diagram

reset MAXVAL

TIMER CONTROL REGISTER PRESCALE REGISTER

PRESCALE COUNTERPCLK

enable

CAPTURE REGISTER 0

MATCH REGISTER 3

MATCH REGISTER 2

MATCH REGISTER 1

MATCH REGISTER 0

CAPTURE CONTROL REGISTER

CONTROL

TIMER COUNTERCSN

TCI

CE

=

=

=

=

INTERRUPT REGISTER

EXTERNAL MATCH REGISTER

MATCH CONTROL REGISTER

MAT[3:0]

INTERRUPT

CAP0

STOP ON MATCH

RESET ON MATCH

LOAD[3:0]

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 274

参考資料

16.1 この章を読む前に

WDTブロックは、LPC111xと LPC11C1xのすべての部品で同一です。

16.2 基本構成

WDTは以下のレジスタを使用して設定します。

1. ピン : WDTは外部ピンを使用しません。

2. 電力 : SYSAHBCLKCTRLレジスタで、ビット 15(Table 19)を設定します。

3. ペリフェラルクロック : ウォッチドッグクロックソース(Table 23)を選択し、WDTCLKDIVレジスタ(Table 25)に書き込むことによりWDTペリフェラルクロックをイネーブルにします。

注意 : ウォッチドッグオシレータの周波数は、リセット後は未定義となります。 WDTに対してウォッチドッグオシレータを使用する前に、WDTOSCCTRLレジスタ(Table 11)に書き込み、ウォッチドッグオシレータの周波数を設定する必要があります。

16.3 特長

• 周期的にリロードされない場合に、内部リセットを実行します。• デバッグモード。• ソフトウェアによりイネーブルになりますが、ハードウェアリセットまたはウォッチドッグリセット /割り込みをディスエーブルにする必要があります。

• イネーブルにすると、不正な /不完全なリフレッシュが行われた場合にリセット /割り込みを発生します。

• ウォッチドッグリセットを示すフラグ。• プログラマブルな 32ビットタイマと内部プリスケーラ

• 時間周期として、TWDCLK × 4 の倍数(TWDCLK × 256 × 4)~(TWDCLK × 232 × 4)を選択可能です。

• ウォッチドッグクロック(WDCLK)ソースとして、内部 RCオシレータ(IRC)、メインクロック、またはウォッチドッグオシレータを syscon ブロックで選択できます(Table 23 を参照)。 これにより、さまざまな電力低減状態におけるウォッチドッグ動作のタイミングを幅広く選択することができます。 また、信頼性を高めるために、外部クリスタルと、その関連コンポーネントおよび配線に依存せず、完全に内部ソースだけでウォッチドッグタイマを実行する機能を備えています。

UM10398第 16章:LPC111x/LPC11C1xウォッチドッグタイマ(WDT)Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 275

NXP Semiconductors UM10398第 16章:LPC111x/LPC11C1xウォッチドッグタイマ(WDT)

参考資料

16.4 用途

ウォッチドッグの目的は、マイクロコントローラがエラー状態に陥ったときに適切な時間内にそれをリセットすることです。 ウォッチドッグをイネーブルにすると、事前設定された時間内にユーザープログラムがウォッチドッグをリフレッシュ(リロード)できなかった場合に、システムリセットが発生します。

16.5 説明

ウォッチドッグは、4分周に固定されたプリスケーラと 32ビットカウンタで構成されています。 クロックはプリスケーラを介してタイマに供給されます。 タイマはクロック入力によりデクリメントされます。 カウンタがデクリメントする最小値は 0xFF です。 0xFF より小さい値を設定すると、0xFFがカウンタにロードされます。 したがって、ウォッチドッグ間隔は(TWDCLK × 4)の倍数となり、最小間隔は(TWDCLK × 256 × 4)、最大間隔は(TWDCLK× 232× 4)となります。 ウォッチドッグは以下の手順で使用してください。

1. WDTCレジスタでウォッチドッグタイマに一定のリロード値を設定します。

2. WDMODレジスタでウォッチドッグタイマの動作モードを設定します。

3. WDFEEDレジスタに 0xAAに続けて 0x55を書き込み、ウォッチドッグをイネーブルにします。

4. リセットや割り込みの発生を防ぐには、ウォッチドッグカウンタがアンダーフローする前にウォッチドッグを再度リフレッシュする必要があります。

ウォッチドッグがリセットモードの時にカウンタがアンダーフローすると、CPUがリセットされ、外部リセットの場合と同様に、ベクタテーブルからスタックポインタとプログラムカウンタがロードされます。 ウォッチドッグタイムアウトフラグ(WDTOF)を調べることにより、ウォッチドッグがリセットを引き起こしたかどうか判断できます。 WDTOFフラグはソフトウェアによってクリアする必要があります。

16.6 クロックと電力の制御

ウォッチドッグタイマブロックでは、2種類のクロック(PCLKとWDCLK)が使用されます。 PCLKはウォッチドッグレジスタにAPBアクセスするために使用され、システムクロックから導き出されます(Figure 3)。 WDCLK はウォッチドッグタイマのカウントに使用され、Figure 3 の wdt_clk から導き出されます。 wdt_clk クロックのクロックソースとしていくつかのクロック(IRC、ウォッチドッグオシレータ、メインクロック)を使用できます。 クロックソースは sysconブロックで選択します(Table 23を参照)。 WDCLKは専用のクロック分周器(Section 3.4.20)を備えており、それを使用してこのクロックをディスエーブルにすることもできます。

これら2つのクロックドメイン間にはいくつかの同期ロジックがあります。 WDMODレジスタとWDTCレジスタが APB動作によって更新されると、新しい値は、WDCLKクロックドメインのロジックにより 3WDCLK サイクルで有効になります。 ウォッチドッグタイマがWDCLKを使用してカウントしているとき、同期ロジックは、まずWDCLKのカウンタの値をロックし、次に、CPU によって WDTV レジスタ値として読み取るために、その値を PCLKと同期させます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 276

NXP Semiconductors UM10398第 16章:LPC111x/LPC11C1xウォッチドッグタイマ(WDT)

参考資料

ウォッチドッグオシレータが不要な場合は、PDRUNCFG レジスタ(Section 3.4.34)でそれをパワーダウンできます。 ウォッチドッグレジスタブロックへのクロック(PCLK)は、節電のために、AHBCLKCTRLレジスタ(Table 19)でディスエーブルにすることができます。

注意 : ウォッチドッグオシレータの周波数は、リセット後は未定義となります。 WDTに対してウォッチドッグオシレータを使用する前に、WDTOSCCTRLレジスタ(Table 11)に書き込み、ウォッチドッグオシレータの周波数を設定する必要があります。

16.7 レジスタの説明

ウォッチドッグには、以下の Table 230に示す 4種類のレジスタがあります。

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

16.7.1 ウォッチドッグモードレジスタ(WDMOD - 0x4000 0000)WDMODレジスタは、WDENビットとWDRESETビットを組み合せてウォッチドッグの動作を制御します。 ただし、WDMOD レジスタに対する変更を有効にするには、ウォッチドッグのリフレッシュを行う必要があります。

Table 230. Register overview: Watchdog timer (base address 0x4000 4000)

Name Access Address offset

Description Reset Value[1]

WDMOD R/W 0x000 ウォッチドッグモードレジスタ。 このレジスタには、ウォッチドッグタイマのベーシックモードとステータスが含まれています。

0

WDTC R/W 0x004 ウォッチドッグタイマ定数レジスタ。 このレジスタはタイムアウト値を決定します。

0xFF

WDFEED WO 0x008 ウォッチドッグリフレッシュレジスタ。 このレジスタに 0xAA に続けて 0x55 を書き込むと、ウォッチドッグタイマにWDTCの値がリロードされます。

NA

WDTV RO 0x00C ウォッチドッグタイマ値レジスタ。 このレジスタは、ウォッチドッグタイマの現在の値を読み出します。

0xFF

Table 231. Watchdog Mode register (WDMOD - address 0x4000 4000) bit description

Bit Symbol Description Reset Value

0 WDEN WDEN ウォッチドッグイネーブルビット(設定のみ)。 値が1の場合、ウォッチドッグタイマは実行中です。

0

1 WDRESET WDRESET ウォッチドッグリセットイネーブルビット(設定のみ)。 値が 1の場合、ウォッチドッグタイムアウトによりチップリセットが発生します。

0

2 WDTOF WDTOF ウォッチドッグタイムアウトフラグ。 ウォッチドッグタイマがタイムアウトすると設定され、ソフトウェアによってクリアされます。

0 (Only after POR and BOD reset)

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 277

NXP Semiconductors UM10398第 16章:LPC111x/LPC11C1xウォッチドッグタイマ(WDT)

参考資料

WDEN ビットまたは WDRESET ビット、あるいはその両方を一度設定すると、ソフトウェアによってそれをクリアすることはできません。 どちらのフラグもリセットまたはウォッチドッグタイマのアンダーフローによってクリアされます。

WDTOF ウォッチドッグタイムアウトフラグは、ウォッチドッグがタイムアウトすると設定されます。 このフラグはソフトウェアによって、またはパワーオンリセット(POR)/ブラウンアウト検出(BOD)リセットによってクリアされます。

WDINT ウォッチドッグ割り込みフラグは、ウォッチドッグがタイムアウトすると設定されます。 このフラグはいずれかのリセットが発生したときにクリアされます。 ウォッチドッグ割り込みが有効になったら、NVICでそれをディスエーブルにできます。ディスエーブルにしないと、ウォッチドッグ割り込み要求は無限に生成されます。 ウォッチドッグ割り込みの目的は、ウォッチドッグがオーバーフローしたときに、デバイスをリセットすることなくウォッチドッグのアクティビティをデバッグできるようにすることです。

ウォッチドッグが稼働中で、そのクロックソースが動作している場合は、いつでもウォッチドッグリセット /割り込みが発生します。 すべてのクロックソースはスリープモードでも機能します。スリープモードでウォッチドッグ割り込みが発生すると、デバイスはスリープ状態から復帰します。

3 WDINT WDINT ウォッチドッグ割り込みフラグ(読み取り専用、ソフトウェアによるクリアは不可)。

0

7:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

31:8 - 予約済み -

Table 232. Watchdog operating modes selection

WDEN WDRESET Mode of Operation

0 X (0 or 1) ウォッチドッグを実行せずにデバッグ /操作します。1 0 ウォッチドッグ割り込みモード : ウォッチドッグ割り込みによるデ

バッグ、ただしWDRESETはディスエーブル。このモードを選択すると、ウォッチドッグカウンタがアンダーフローしたときに WDINT フラグが設定され、ウォッチドッグ割り込み要求が生成されます。

1 1 ウォッチドッグリセットモード : ウォッチドッグ割り込みによる操作、WDRESETはイネーブル。このモードを選択すると、ウォッチドッグカウンタがアンダーフローしたときにマイクロコントローラがリセットされます。 この場合はウォッチドッグ割り込みもイネーブルですが(WDEN = 1)、ウォッチドッグリセットによって WDINT フラグがクリアされるため、割り込みは認識されません。

Table 231. Watchdog Mode register (WDMOD - address 0x4000 4000) bit description(続き)Bit Symbol Description Reset Value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 278

NXP Semiconductors UM10398第 16章:LPC111x/LPC11C1xウォッチドッグタイマ(WDT)

参考資料

16.7.2 ウォッチドッグタイマ定数レジスタ(WDTC - 0x4000 4004)WDTC レジスタはタイムアウト値を決定します。 リフレッシュが発生するたびに、WDTCの内容がウォッチドッグタイマにリロードされます。 この32ビットレジスタの下位8ビットはリセット時に 1に設定されます。 0xFF未満の値を書き込むと、0x0000 00FFがWDTCにロードされます。 最小タイムアウト間隔は、TWDCLK× 256× 4です。

16.7.3 ウォッチドッグリフレッシュレジスタ(WDFEED - 0x4000 4008)このレジスタに 0xAAに続けて 0x55を書き込むと、ウォッチドッグタイマにWDTCの値がリロードされます。 WDMOD レジスタを介してウォッチドッグがイネーブルになっている場合は、この操作によってウォッチドッグが起動します。 ウォッチドッグをイネーブルにするには、WDMODレジスタのWDENビットを設定するだけでは不十分です。 ウォッチドッグがリセットを生成できるように、WDEN の設定後に有効なリフレッシュ手順を完了させる必要があります。 完了するまで、ウォッチドッグはリフレッシュエラーを無視します。 ウォッチドッグがイネーブルになっている場合、WDFEEDに 0xAAを書き込んだ後に、ウォッチドッグレジスタへのアクセス(WDFEEDへの 0x55の書き込み以外)が生じると、ただちにリセット /割り込みが発生します。 このリセットは、リフレッシュ中のウォッチドッグレジスタへの不正アクセスが生じた後、次の PCLK時に生成されます。

リフレッシュ中は割り込みをディスエーブルにしてください。 リフレッシュ中に割り込みが生じると、アボート状態になります。

16.7.4 ウォッチドッグタイマ値レジスタ(WDTV - 0x4000 400C)WDTVは、ウォッチドッグタイマの現在の値を読み取るために使用します。

32ビットタイマの値を読み取る際は、ロックおよび同期手続きに最大 6WDCLKサイクル+6 PCLKサイクルを要します。そのため、CPUによって読み取られる時点で、WDTVの値はタイマの実際の値よりも古くなります。

Table 233. Watchdog Constant register (WDTC - address 0x4000 4004) bit description

Bit Symbol Description Reset Value

31:0 Count ウォッチドッグタイムアウト間隔 0x0000 00FF

Table 234. Watchdog Feed register (WDFEED - address 0x4000 4008) bit description

Bit Symbol Description Reset Value

7:0 Feed リフレッシュ値は 0xAAの後に 0x55を続ける必要があります。

NA

31:8 - 予約済み -

Table 235. Watchdog Timer Value register (WDTV - address 0x4000 000C) bit description

Bit Symbol Description Reset Value

31:0 Count カウンタタイマ値 0x0000 00FF

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 279

NXP Semiconductors UM10398第 16章:LPC111x/LPC11C1xウォッチドッグタイマ(WDT)

参考資料

16.8 ブロック図

以下の Figure 57 は、ウォッチドッグのブロック図です。 このブロック図には同期ロジック(PCLK/WDCLK)は示されていません。

Fig 57. Watchdog block diagram

WDTC

32 BIT DOWN COUNTER

WDINT WDTOF WDRESET WDEN

SHADOW BIT

reset

interrupt

4

WDFEEDfeed ok

feed error

wdt_clk

underflow enablecount

WMOD register

feed sequence

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 280

参考資料

17.1 この章を読む前に

システム tick タイマ(SysTick タイマ)は ARM Cortex-M0 コアの一部であり、すべてのLPC111xおよび LPC11C1x部品で同一です。

17.2 基本構成

システム tickタイマは以下のレジスタを使用して設定します。

1. ピン : システム tickタイマは外部ピンを使用しません。

2. 電力 : システム tick タイマは SysTick レジスタを介してイネーブルになります(Section 21.5.4.1)。 システム tickタイマクロックは、システムクロックの周波数の半分に固定されています。

17.3 特長

• シンプルな 24ビットタイマ

• 専用の例外ベクタを使用• 専用のシステム tickタイマクロックにより内部でクロックを供給。 システム tickタイマクロックは、システムクロックの周波数の半分に固定されています。

17.4 説明

SysTickタイマは Cortex-M0にとって不可欠な要素です。 SysTickタイマは、オペレーティングシステムや他のシステム管理ソフトウェアが使用する10msの固定割り込みを生成することを目的としています。

SysTick タイマは Cortex-M0 の一部です。Cortex-M0 ベースのデバイスで利用可能な標準タイマを提供することにより、ソフトウェアの移植を促進します。 SysTick タイマは以下の用途に使用できます。

• プログラマブルな周期(100Hzなど)で動作して SysTickルーチンを呼び出す、RTOStickタイマ。

• コアクロックを使用する高速アラームタイマ• シンプルなカウンタ。 ソフトウェアでこのタイマを使用して、完了までの時間や消費時間を測定できます。

• 不一致(ミッシング)/一致期間に基づく、内部クロックソースの制御。 動的なクロック管理制御ループの一部として、制御レジスタとステータスレジスタの COUNTFLAGビットフィールドを使用し、設定時間内にアクションが完了したかどうかを判断できます。

詳細については、『Cortex-M0 User Guide』を参照してください。

UM10398第 17章:LPC111x/LPC11C1xシステム tickタイマ Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 281

NXP Semiconductors UM10398第 17章:LPC111x/LPC11C1xシステム tickタイマ

参考資料

17.5 動作

SysTickタイマは、0へカウントダウンして割り込みを生成する 24ビットタイマです。 その目的は、割り込み間に一定の時間間隔(10ms)を設定することです。 SysTick タイマは CPU クロックからクロック供給されます。 特定の間隔で繰り返される割り込みを生成するには、必要とする間隔に適した値で SYST_RVR レジスタを初期化する必要があります。 デフォルト値(<tbd>)が SYST_CALIBレジスタに用意されており、これはソフトウェアによって変更することもできます。 CPU クロックを <tbd> に設定すると、デフォルト値が適用され、割り込みレートは 10msとなります。

以下の Figure 58は、SysTickタイマのブロック図です。

17.6 レジスタの説明

SysTick タイマのレジスタは ARM Cortex-M0 プライベートペリフェラルバス上にあり(Figure 64)、ARM Cortex-M0 コアペリフェラルの一部です。 詳細については、Section

21.5.4を参照してください。

Fig 58. System tick timer block diagram

Table 236. Register overview: SysTick timer (base address 0xE000 E000)

Name Access Address offset

Description Reset value[1]

SYST_CSR R/W 0x010 システムタイマ制御およびステータスレジスタ 0x000 0000

SYST_RVR R/W 0x014 システムタイマリロード値レジスタ 0

SYST_CVR R/W 0x018 システムタイマ現在値レジスタ 0

SYST_CAL R/W 0x01C システムタイマ校正値レジスタ 0x4

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 282

NXP Semiconductors UM10398第 17章:LPC111x/LPC11C1xシステム tickタイマ

参考資料

17.6.1 システムタイマ制御およびステータスレジスタSYST_CSR は SysTick タイマの制御情報を格納するレジスタで、ステータスフラグも備えています。 このレジスタは、ARM Cortex-M0コアシステムタイマレジスタブロックの一部です。 このレジスタのビットの詳細については、Section 21.5.4「システムタイマ、SysTick」を参照してください。

17.6.2 システムタイマリロード値レジスタ

SYST_RVR レジスタに設定された値は、SysTick タイマが 0 までカウントダウンするたびに SysTick タイマにロードされます。 このレジスタは、タイマの初期化の一環としてソフトウェアによってロードされます。 CPUが SYST_CALIB値で使用される周波数で動作している場合には、SYST_CALIB レジスタを読み取って SYST_RVR レジスタの値として使用することができます。

17.6.3 システムタイマ現在値レジスタ

SYST_CVRレジスタは、ソフトウェアによって読み取られたときに System Tickカウンタの現在のカウントを返します。

Table 237. System Timer Reload value register (SYST_RVR - 0xE000 E014) bit description

Bit Symbol Description Reset value

23:0 RELOAD この値は、System Tickカウンタが 0までカウントダウンしたときに System Tickカウンタにロードされます。

0

31:24 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

Table 238. System Timer Current value register (SYST_CVR - 0xE000 E018) bit description

Bit Symbol Description Reset value

23:0 CURRENT このレジスタを読み取ると、System Tick カウンタの現在の値が返されます。 任意の値を書き込むと、System Tickカウンタと STCTRLの COUNTFLAGビットがクリアされます。

0

31:24 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 283

NXP Semiconductors UM10398第 17章:LPC111x/LPC11C1xシステム tickタイマ

参考資料

17.6.4 システムタイマ校正値レジスタ(SYST_CALIB - 0xE000 E01C)<tbd>

17.7 タイマ計算の例

システム tickタイマを使用するには、次の手順に従ってください。

1. SYST_RVR レジスタに、必要とする時間間隔を得るためのリロード値 RELOAD を設定します。

2. SYST_CVRレジスタに書き込んでクリアします。 これによってタイマは、タイマがイネーブルになった時点の不定値ではなく、SYST_RVR値からカウントします。

3. SYST_SCRレジスタに、SysTickタイマと SysTickタイマ割り込みをイネーブルにするための値 0x7を設定します。

下記の例は、50 MHzに設定した LPC111xシステムクロックを使用して 10 msの時間間隔を得る場合の、SysTickタイマのリロード値の算出方法を示しています。

例(システムクロック = 50 MHz)システム tickクロック = システムクロック 2 = 25 MHz.

RELOAD = (システム tickクロック周波数× 10 ms) 1 = (25 MHz× 10 ms) 1 = 2500001= 249999 = 0x0003D08F

Table 239. System Timer Calibration value register (SYST_CALIB - 0xE000 E01C) bit description

Bit Symbol Value Description Reset value

23:0 TENMS <tbd> 0x4

29:24 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

30 SKEW <tbd> 0

31 NOREF <tbd> 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 284

参考資料

18.1 この章を読む前に

ADCブロックは、LPC111xと LPC11C1xのすべての部品で同一です。

18.2 基本構成

ADCは以下のレジスタを使用して設定します。

1. ピン : ADCピン機能は、IOCONFIGレジスタブロック(Section 6.4.1)で設定します。

2. 電力とペリフェラルクロック : SYSAHBCLKCTRLレジスタで、ビット 13(Table 19)を設定します。 ランタイム時の ADC への電力供給は PDRUNCFG レジスタ(Table39)を介して制御されます。

18.3 特長

• 10ビット逐次比較型 A/Dコンバータ(ADC)

• 8ピン多重入力

• パワーダウンモード• 測定範囲 0~ 3.6 V。 電圧レベルが VDDを超えないようにしてください。

• 10ビット変換時間≧ 2.44 s

• 単一入力または複数入力のためのバースト変換モード• 入力ピンまたはタイママッチ信号における遷移による任意の変換• 各 A/Dチャネル用の個別結果レジスタにより、割り込みオーバーヘッドを削減

18.4 ピンの説明

Table 240に ADC関連ピンの要約を示します。

監視しているピンの電圧を正確に測定するには、IOCONレジスタを介して ADC機能を選択する必要があります。 ADC入力用のピンに対してデジタル機能を選択し、なおかつ有効な ADC測定を行うことはできません。 ADCハードウェアに対応しているピンに対してデジタル機能を選択すると、内部回路は ADCハードウェアをそのピンから切り離します。

UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 240. ADC pin description

Pin Type Description

AD[7:0] Input アナログ入力。 A/D コンバータセルはどのような入力信号の電圧も測定できます。注意 : デジタルモードではピンは 5V トレラントですが、ピンがアナログ入力用として設定されている場合には、最大入力電圧は VDD以下でなければなりません。

VDD Input VREF、基準電圧

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 285

NXP Semiconductors UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)

参考資料

18.5 クロックと電力の制御

ADC(PCLK)およびプログラマブル ADCクロック分周器(Section 18.6.1を参照)へのペリフェラルクロックは、システムクロック(Figure 3を参照)によって供給されます。 このクロックは、節電のために、AHBCLKCTRL レジスタ(Table 19)のビット 13 によってディスエーブルにすることができます。

PDRUNCFGレジスタ(Section 3.4.34)を使用して、実行時に ADCをパワーダウンすることができます。

A/Dコンバータの基本クロックは、APBクロック(PCLK)によって決定されます。 このクロックを逐次比較プロセスに必要な 4.5 MHz(最大)クロックにスケーリングするために、A/Dコンバータにはプログラマブルな分周器が装備されています。 正確な変換には 11クロックサイクルが必要です。

18.6 レジスタの説明

ADCには、Table 241のような構成のレジスタが含まれています。

Table 241. Register overview: ADC (base address 0x4001 C000)

Name Access Address offset

Description Reset Value[1]

AD0CR R/W 0x000 A/D制御レジスタ。 A/D変換を実行可能にするには、AD0CRレジスタに書き込んで動作モードを選択する必要があります。

0x0000 0000

AD0GDR R/W 0x004 A/Dグローバルデータレジスタ。 最新の A/D変換の結果を格納します。 NA

- - 0x008 予約済み。 -

AD0INTEN R/W 0x00C A/D 割り込みイネーブルレジスタ。 このレジスタのイネーブルビットにより、A/D割り込みの生成に対して各 A/Dチャネルの DONEフラグを有効または無効にすることができます。

0x0000 0100

AD0DR0 R/W 0x010 A/D チャネル 0 データレジスタ。 このレジスタにはチャネル 0で完了した最新の A/D変換の結果を格納します。

NA

AD0DR1 R/W 0x014 A/D チャネル 1 データレジスタ。 このレジスタにはチャネル 1で完了した最新の A/D変換の結果を格納します。

NA

AD0DR2 R/W 0x018 A/D チャネル 2 データレジスタ。 このレジスタにはチャネル 2で完了した最新の A/D変換の結果を格納します。

NA

AD0DR3 R/W 0x01C A/D チャネル 3 データレジスタ。 このレジスタにはチャネル 3で完了した最新の A/D変換の結果を格納します。

NA

AD0DR4 R/W 0x020 A/D チャネル 4 データレジスタ。 このレジスタにはチャネル 4で完了した最新の A/D変換の結果を格納します。

NA

AD0DR5 R/W 0x024 A/D チャネル 5 データレジスタ。 このレジスタにはチャネル 5で完了した最新の A/D変換の結果を格納します。

NA

AD0DR6 R/W 0x028 A/D チャネル 6 データレジスタ。 このレジスタにはチャネル 6で完了した最新の A/D変換の結果を格納します。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 286

NXP Semiconductors UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)

参考資料

18.6.1 A/D制御レジスタ(AD0CR - 0x4001 C000)A/D 制御レジスタには、変換する A/D チャネル、A/D タイミング、A/D モード、およびA/D起動トリガを選択するためのビットが含まれています。

AD0DR7 R/W 0x02C A/D チャネル 7 データレジスタ。 このレジスタにはチャネル 7で完了した最新の A/D変換の結果を格納します。

NA

AD0STAT RO 0x030 A/D ステータスレジスタ。 このレジスタには、すべての A/D チャネルのDONE フラグと OVERRUN フラグに加え、A/D 割り込みフラグが格納されます。

0

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。 予約ビットの内容は含まれていません。

Table 241. Register overview: ADC (base address 0x4001 C000)(続き)Name Access Address

offsetDescription Reset

Value[1]

Table 242. A/D Control Register (AD0CR - address 0x4001 C000) bit description

Bit Symbol Value Description Reset Value

7:0 SEL ピン AD7 ~ 0 からサンプリングや変換に使用するピンを選択します。 ビット 0 はピンAD0、ビット 1はピン AD1、(中略)、そしてビット 7はピン AD7に対応しています。 ソフトウェア制御モード(BURST = 0)では、1つのチャネルのみ選択可能です(これらのビットのうちの 1つだけが 1に設定されます)。 ハードウェアスキャンモード(BURST = 1)では、任意の数のチャネルを選択可能です(任意のビットまたはすべてのビットを1に設定することができます)。 すべてのビットを

0に設定すると、チャネル 0が自動的に選択されます(SEL = 0x01)。

0x00

15:8 CLKDIV APBクロック(PCLK)を CLKDIV +1で分周して ADC用のクロックを生成します。このクロックは 4.5 MHz以下でなければなりません。 通常、このフィールドには、4.5 MHzまたはそれよりやや小さいクロックを生成するための最小値をソフトウェアによって設定します。ただし、場合によっては(ハイインピーダンスのアナログソースなど)、より遅いクロックが望ましいこともあります。

0

16 BURST 0 ソフトウェア制御モード。 変換はソフトウェアにより制御され、11クロックが必要です。 0

1 ハードウェアスキャンモード。 A/D コンバータは、CLKS フィールドで選択されたレートで変換を繰り返し、必要に応じて、SEL フィールドで選択された(1 が設定されている)ピンを介してスキャンします。 開始後の最初の変換は、SELフィールドで 1が設定されている最下位ビットに対応しています。さらに該当する場合は、最下位ビットより上位の1が設定されているビット(ピン)がスキャンされます。 このビットをクリアすると変換の繰り返しを停止できますが、ビットをクリアした時点で進行中の変換は完遂されます。重要: BURST = 1または変換が開始されていない場合、STARTビットは000になっています。

19:17 CLKS

000

このフィールドでは、バーストモードでの各変換に使用するクロック数、および ADDRの LS ビット内の結果の精度(ビット数)を選択します(11 クロック(10 ビット)~ 4クロック(3ビット))。11クロック /10ビット

000

001 10クロック /9ビット010 9クロック /8ビット011 8クロック /7ビット100 7クロック /6ビット101 6クロック /5ビット110 5クロック /4ビット111 4クロック /3ビット

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 287

NXP Semiconductors UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)

参考資料

18.6.2 A/Dグローバルデータレジスタ(AD0GDR - 0x4001 C004)A/Dグローバルデータレジスタは、最新の A/D変換の結果を格納します。 この結果には、データ、DONE フラグ、オーバーランフラグ、およびデータに関連している A/D チャネルの番号が含まれています。

23:20 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予約ビットから読み取った値は未定義です。

NA

26:24 START

000

バーストビットが 0の場合は、これらのビットによって、AD変換開始の可否とタイミングが制御されます。開始しません(この値は PDNを 0にクリアする場合に使用します)。

0

001 ただちに変換を開始します。010 ビット 27 によって選択されたエッジが PIO0_2/SSEL/CT16B0_CAP0 で発生したときに、

変換を開始します。011 ビット 27によって選択されたエッジが PIO1_5/DIR/CT32B0_CAP0で発生したときに、変

換を開始します。100 ビット 27によって選択されたエッジが CT32B0_MAT0で発生したときに、変換を開始し

ます。[1] 101 ビット 27によって選択されたエッジが CT32B0_MAT1で発生したときに、変換を開始し

ます。[1]

110 ビット 27によって選択されたエッジが CT16B0_MAT0で発生したときに、変換を開始します。[1]

111 ビット 27によって選択されたエッジが CT16B0_MAT1で発生したときに、変換を開始します。[1]

27 EDGE

1

このビットは、STARTフィールドが 010~ 111の場合にのみ有効です。有効な場合の値は以下のとおりです。選択された CAP/MAT信号の立ち下がりエッジで変換を開始します。

0

0 選択された CAP/MAT信号の立ち上がりエッジで変換を開始します。31:28 - 予約済み。ユーザーソフトウェアによって予約ビットに 1を書き込まないでください。 予

約ビットから読み取った値は未定義です。NA

[1] この場合、デバイスピンでタイママッチ機能を実行する必要はありません。

Table 242. A/D Control Register (AD0CR - address 0x4001 C000) bit description(続き)Bit Symbol Value Description Reset

Value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 288

NXP Semiconductors UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)

参考資料

18.6.3 A/Dステータスレジスタ(AD0STAT - 0x4001 C030)A/D ステータスレジスタによって、すべての A/D チャネルの状態を同時にチェックできます。 各 A/D チャネル用の ADDRnレジスタにある DONE フラグと OVERRUN フラグは、ADSTAT に反映されます。 割り込みフラグ(すべての DONE フラグの論理和)も ADSTATに反映されます。

Table 243. A/D Global Data Register (AD0GDR - address 0x4001 C004) bit description

Bit Symbol Description Reset Value

5:0 Unused これらのビットは常に 0を示します。 これらは、将来さらに高い分解能を持つ A/D コンバータと互換性を保つために拡張用として確保されています。

0

15:6 V_VREF DONEが 1の場合、このフィールドには、SELフィールドで選択されたADnピンの電圧を示すバイナリ分数(VDDピンの電圧で割った値)が格納されます。 フィールドの値が 0の場合は、ADnピンの電圧が VSSの電圧以下(未満、同等、近似)であったことを示しています。一方、「0x3FF」の場合は、ADn の電圧が VREF の電圧以上(近似、同等、より大きい)であったことを示しています。

X

23:16 Unused これらのビットは常に 0を示します。 これらのビットによって、ANDマスクせずに連続する A/D値を累積することができます(CHNフィールドへのオーバーフローなしに最少でも 256の値を累積できます)。

0

26:24 CHN これらのビットには、結果を示すビット V_VREFが変換されたチャネルが格納されます。

X

29:27 Unused これらのビットは常に 0を示します。 これらは、将来さらに多くのチャネルを変換できる A/Dコンバータと互換性を保つために、CHNフィールドの拡張用として確保されています。

0

30 OVERRUN

バーストモードにおいて、V_VREFビットに反映される前に 1つまたは複数の変換の結果が失われたり上書きされた場合、このビットは 1になります。

0

31 DONE A/D変換が完了すると、このビットは 1に設定されます。 このレジスタが読み取られたときや ADCRが書き込まれたときに、このビットはクリアされます。 変換の進行中に ADCRが書き込まれると、このビットが設定され、新たな変換が開始されます。

0

Table 244. A/D Status Register (AD0STAT - address 0x4001 C030) bit description

Bit Symbol Description Reset Value

7:0 Done7:0 これらのビットは、各 A/D チャネルの結果レジスタにある DONE ステータスフラグを反映しています。

0

15:8 Overrun7:0 これらのビットは、各 A/Dチャネルの結果レジスタにある OVERRUNステータスフラグを反映しています。 ADSTATを読み取ることにより、すべての A/Dチャネルの状態を同時にチェックできます。

0

16 ADINT このビットは A/D割り込みフラグです。 個々の A/Dチャネルの DONEフラグのいずれかが ADINTENレジスタを介してアサートされ、A/D割り込みの生成に対してイネーブルになっている場合、このビットは 1になります。

0

31:17 Unused 未使用、常に 0。 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 289

NXP Semiconductors UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)

参考資料

18.6.4 A/D割り込みイネーブルレジスタ(AD0INTEN - 0x4001 C00C)このレジスタによって、変換の完了時にどの A/D チャネルによって割り込みを生成するかを制御できます。 たとえば、複数の A/D チャネルを使用し、それらで継続的に変換を行ってセンサを監視することが必要な場合もあります。 最新の結果は、必要に応じて随時、アプリケーションプログラムによって読み取られます。 そのような場合、複数の A/Dチャネルの個々の変換が終了するたびに割り込みが生じるのは望ましいことではありません。

18.6.5 A/Dデータレジスタ(AD0DR0~ AD0DR7 - 0x4001 C010~ 0x4001 C02C)A/D データレジスタは A/D 変換の完了時にその結果を保持し、さらに変換の完了と変換オーバーランの発生を示すフラグも備えています。

Table 245. A/D Interrupt Enable Register (AD0INTEN - address 0x4001 C00C) bit description

Bit Symbol Description Reset Value

7:0 ADINTEN 7:0 これらのビットによって、変換の完了時に割り込みを生成する A/Dチャネルを制御することができます。 ビット 0 が 1 の場合は、A/Dチャネル 0での変換が完了すると割り込みが発生し、ビット 1が 1の場合は、A/Dチャネル 1での変換が完了すると割り込みが発生し、以下同様に割り込みが発生します。

0x00

8 ADGINTEN 値が1の場合は、割り込みの生成に対してADDRのグローバルDONEフラグがイネーブルになります。 値が 0 の場合は、ADINTEN 7 ~ 0によりイネーブルになっているA/Dチャネルのみが割り込みを生成します。

1

31:9 Unused 未使用、常に 0。 0

Table 246. A/D Data Registers (AD0DR0 to AD0DR7 - addresses 0x4001 C010 to 0x4001 C02C) bit description

Bit Symbol Description Reset Value

5:0 Unused 未使用、常に 0。これらのビットは常に 0を示します。 これらは、将来さらに高い分解能を持つADCと互換性を保つために拡張用として確保されています。

0

15:6 V_VREF DONEが 1の場合、このフィールドには、ADnピンの電圧を示すバイナリ分数(VREF ピンの電圧で割った値)が格納されます。 フィールドの値が 0の場合は、ADnピンの電圧が VREFの電圧以下(未満、同等、近似)であったことを示しています。一方、「0x3FF」の場合は、AD入力の電圧が VREFの電圧以上(近似、同等、より大きい)であったことを示しています。

NA

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 290

NXP Semiconductors UM10398第 18章:LPC111x/LPC11C1x A/Dコンバータ(ADC)

参考資料

18.7 動作

18.7.1 ハードウェアトリガによる変換ADCR0レジスタの BURSTビットが 0で、STARTフィールドの値が 010~ 111の場合は、選択されたピンまたはタイママッチ信号で遷移が発生すると、A/D変換が開始されます。

18.7.2 割り込みADSTATレジスタの ADINTビットが 1の場合は、割り込みコントローラに対する割り込み要求が発生します。 (ADINTEN レジスタを介して)割り込みがイネーブルになっているA/D チャネルの DONE ビットのいずれかが 1 になると、ADINT ビットは 1 になります。ADC に対応している割り込みコントローラの割り込みイネーブルビットをソフトウェアで使用して、割り込みの発生の可否を制御できます。 対応する DONEフラグをクリアするには、割り込みを生成している A/Dチャネルの結果レジスタを読み取る必要があります。

18.7.3 精度とデジタルレシーバADC入力ピンの電圧は、IOCONブロックでのピン設定に関わらず A/Dコンバータを使用して測定できますが、ADC入力ピンのデジタル受信機能をディスエーブルにして、IOCONレジスタで ADC機能を選択すると変換精度が向上します(Section 6.3.4を参照)。

29:16 Unused これらのビットは常に 0を示します。 これらのビットによって、ANDマスクせずに連続する A/D値を累積することができます(CHNフィールドへのオーバーフローなしに最少でも 256の値を累積できます)。

0

30 OVERRUN バーストモードにおいて、V_VREF ビットに反映される前に 1 つまたは複数の変換の結果が失われたり上書きされた場合、このビットは 1になります。 OVERRUN ビットはこのレジスタが読み取られるとリセットされます。

0

31 DONE A/D 変換が完了すると、このビットは 1 に設定されます。 DONE ビットはこのレジスタが読み取られるとクリアされます。

0

Table 246. A/D Data Registers (AD0DR0 to AD0DR7 - addresses 0x4001 C010 to 0x4001 C02C) bit description

Bit Symbol Description Reset Value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 291

参考資料

19.1 この章を読む前に

各フラッシュ設定については、Table 247を参照してください。

注意 : ISPコマンドと IAPコマンド以外に、フラッシュコントローラブロック内で、フラッシュメモリへのアクセス時間を設定するためのレジスタにアクセスできます。Section19.9を参照してください。

19.2 特長

• インシステムプログラミング :インシステムプログラミング(ISP)は、ブートローダソフトウェアと UART シリアルポートまたは C_CAN インターフェースを使用して、オンチップフラッシュメモリをプログラミングまたは再プログラミングすることです。この操作は、部品がエンドユーザーボードに搭載されている場合に可能です。

• インアプリケーションプログラミング : インアプリケーション(IAP)プログラミングは、オンチップフラッシュメモリに対して、エンドユーザーアプリケーションコードの指示に従い、消去および書き込み操作を実行することです。

• フラッシュアクセス時間は、フラッシュコントローラブロックのレジスタを介して構成できます。

• 1 セクタの消去時間は、100 ms ± 5% です。256 バイトの 1 ブロックのプログラミング時間は、1 ms± 5%です。

19.3 概説

19.3.1 ブートローダブートローダは、リセット後の初期動作を制御します。また、UART または C_CAN を介してフラッシュメモリのプログラミングを達成する手段も提供します。これは、ブランクデバイスの初回プログラミング、以前にプログラミングされたデバイスの消去と再プログラミング、または実行中のシステムのアプリケーションプログラムによるフラッシュメモリのプログラミングのいずれかになります。

UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファームウェアRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 247. LPC111x/LPC11Cx flash configurations

Type number Flash ISP via UART ISP via C_CAN

LPC1111 8 kB yes no

LPC1112 16 kB yes no

LPC1113 24 kB yes no

LPC1114 32 kB yes no

LPC11C12 16 kB yes yes

LPC11C14 32 kB yes yes

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 292

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

ブートローダのコードは、部品に電源が投入されるかリセットされると毎回実行されます。ローダは、ISPコマンドハンドラまたはユーザーアプリケーションコードを実行できます。PIO0_1 ピンでのリセット後の LOW レベルは、UART または C_CAN(存在する場合)のいずれかを介して ISPコマンドハンドラを起動するための、外部ハードウェア要求と見なされます。

C_CANインターフェースが存在する場合(LPC11Cx部品)、リセット時のピン PIO0_3の状態とピン PIO0_1の LOWレベルにより、UART ISPと C_CAN ISPのどちらのルーチンが呼び出されるかが決定されます。

• PIO0_3が LOWの場合、ブートローダは C_CANインターフェースを構成し、C_CANISPコマンドハンドラを呼び出します。

• PIO0_3 が HIGH の場合、ブートローダは UART シリアルポートを構成し、UART ISPコマンドハンドラを呼び出します(これがデフォルト)。

注意 : C_CANインターフェースを使用しない部品では、ピン PIO0_3の状態は問題になりません。

RESET ピンの立ち上がりエッジが生成されたときに電源ピンが通常のレベルにあると仮定すると、PIO0_1 をサンプリングして、ユーザーコードと ISP ハンドラのどちらを継続するかを決定するまでに最大で 3 ms を要します。PIO0_1 が LOW でサンプリングされ、ウォッチドッグオーバーフローフラグが設定されると、外部ハードウェアからの ISPコマンドハンドラの起動要求が無視されます。ISPコマンドハンドラの実行が要求されない場合(リセット後 PIO0_1が HIGHでサンプリング)、有効なユーザープログラムの検索が行われます。有効なユーザープログラムが見つかると、そのプログラムに実行制御が転送されます。有効なユーザープログラムが見つからない場合は、自動通信速度設定ルーチンが呼び出されます。

注意 :ピン PIO0_1のサンプリングは、フラッシュ位置 0x0000 02FCのプログラミングによってディスエーブルにできます(Section 19.3.7.1を参照)。

19.3.2 リセット後のメモリマップブートブロックのサイズは 16 kBです。 ブートブロックは、アドレス 0x1FFF 0000から開始するメモリ領域内に存在します。 ブートローダは、このメモリ領域から実行されるように設計されていますが、ISP と IAP のいずれのソフトウェアもオンチップ RAM の一部を使用します。RAMの使用については、この章の後半で説明します。オンチップフラッシュメモリのブートブロックに常駐する割り込みベクタは、リセット後にもアクティブになります。すなわち、ブートブロックの下部 512 バイトは、アドレス 0x0000 0000 から開始するメモリ領域内にも現れます。

19.3.3 有効なユーザーコードの基準有効なユーザーコードの基準 : 予約済みの Cortex-M0例外ベクタ位置 7(ベクタテーブルのオフセット 0x 0000 001C)には、テーブルエントリ 0~ 6のチェックサムの 2の補数が格納されます。 最終的に、テーブルの先頭 8エントリのチェックサムは 0になります。ブートローダコードは、フラッシュのセクタ 0の先頭から 8ロケーションを計算します。結果が 0の場合、実行制御はユーザーコードに転送されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 293

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

署名が有効でない場合、自動通信速度設定ルーチンはシリアルポート 0 を介してホストと同期します。 ホストは同期文字として「?」(0x3F)を送信し、応答を待機します。ホスト側のシリアルポートの設定は、8データビット、1ストップビット、パリティなしとします。自動通信速度設定ルーチンでは、受信した同期文字のビット時間を独自の周波数で測定し、シリアルポートのボーレートジェネレータをプログラミングします。また、ASCII文字列(「Synchronized<CR><LF>」)をホストに送信します。ホストはこれに応答して、同じ文字列(「Synchronized<CR><LF>」)を送信します。自動通信速度設定ルーチンは、受信した文字を調べ、同期を検証します。同期が確認された場合、「OK<CR><LF>」文字列がホストに送信されます。ホストは、部品が稼働する水晶周波数(kHz)を送信して応答します。たとえば、部品が 10MHz で稼働している場合、ホストからの応答は「10000<CR><LF>」になります。水晶周波数の受信後、「OK<CR><LF>」文字列がホストに送信されます。同期が確認されない場合、自動通信速度設定ルーチンは再び同期文字を待機します。ユーザーが ISPを呼び出している場合に、自動通信速度設定が正しく動作するためには、CCLK 周波数を 10 MHz と同じか、それを上回る数値に設定する必要があります。

水晶周波数が受信された後、部品は初期化され、ISPコマンドハンドラが呼び出されます。安全上の理由により、結果的にフラッシュの消去 / 書き込み操作を行うコマンドおよび「Go」コマンドを実行する前に、「Unlock」コマンドが必要になります。残りのコマンドは、「Unlock」コマンドを使用せずに実行できます。「Unlock」コマンドは、ISPセッションごとに一度実行する必要があります。「Unlock」コマンドについては、300 ページのSection 19.5「UART ISPコマンド」で説明しています。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 294

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.3.4 ブートプロセスフローチャート

(1) For details on handling the crystal frequency, see Section 19.7.8「Reinvoke ISP(IAP)」on page 318

Fig 59. Boot process flowchart

RESET

INITIALIZE

RECEIVE CRYSTAL FREQUENCY

RUN UART ISP COMMAND HANDLER

RUN C_CAN ISP COMMAND HANDLER

RUN AUTO-BAUD

CRP1/2/3ENABLED?

WATCHDOGFLAG SET?

CRP3/NO_ISPENABLED?

ENTER ISPMODE?

(PIO0_1 = LOW)

C_CAN BOOT?(PIO0_3 = LOW)

USER CODEVALID?

USER CODEVALID?

AUTO-BAUDSUCCESSFUL?

EXECUTE INTERNALUSER CODE

INITIALIZE C_CAN

ENABLE DEBUG

yes

yes

yes

yes

yes

yes

yes

yes

no

no

no

no

nono

no

no

A

A

boot from UART

boot from C_CAN

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 295

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.3.5 セクタ番号IAP と ISP のコマンドの一部はセクタ上で動作し、セクタ番号を指定します。次の表に、LPC111x/LPC11C1デバイスのセクタ番号とメモリアドレスの対応を示します。

19.3.6 フラッシュコンテンツ保護メカニズムLPC111x/LPC11C1xには、誤り訂正符号(ECC)対応フラッシュメモリが搭載されています。誤り訂正モジュールの目的は、2つです。1つは、メモリから読み取ったデータワードをデコードして出力データワードにすることです。もう 1 つは、メモリに書き込まれるデータワードをエンコードすることです。この誤り訂正機能の内容は、ハミングコードによるシングルビットエラー修正です。

ECCの動作は、実行中のアプリケーションに対して透過的です。ECCコンテンツ自体は、ユーザーのコードからアクセスできないフラッシュメモリ内に格納され、読み取りまたは書き込みが独自に行われます。ECC の 1 バイトは、ユーザーによるアクセスが可能なフラッシュの連続した 128 ビットに相当します。したがって、フラッシュのバイト0x0000 0000~ 0x0000 000Fは、ECCの先頭バイトにより保護され、フラッシュのバイト0x0000 0010 ~ 0x0000 001F は ECC の 2 番目のバイトにより保護されるという対応になります。

CPU がユーザーのフラッシュからの読み取りを要求すると、指定されたメモリ位置を含んでいる 128 ビットのローデータと、対応する ECC バイトの両方が評価されます。ECCメカニズムにより、フェッチされたデータにエラーが 1 つ検出されると、データが CPUに供給される前に修正が行われます。ユーザーのフラッシュへの書き込み要求が行われると、ユーザーの指定したコンテンツの書き込みに、ECC メモリで計算および格納されたマッチングする ECC値も含まれます。

フラッシュメモリの 1 セクタが消去されると、ECC の対応するバイトも消去されます。ECCのバイトが書き込まれた後、このバイトを更新するには、まず消去する必要があります。したがって、実装された ECC メカニズムが正しく実行されるためには、データは上記の説明に従ってアライメントされ、16バイト(または 16の倍数)単位でフラッシュメモリに書き込まれる必要があります。

Table 248. Flash sector configuration

Sectornumber

Sector size

Address range LPC11118 kB flash

LPC1112/LPC11C1216 kB flash

LPC111324 kB flash

LPC1114/LPC11C1432 kB flash

0 4 kB 0x0000 0000 - 0x0000 0FFF yes yes yes yes

1 4 kB 0x0000 1000 - 0x0000 1FFF yes yes yes yes

2 4 kB 0x0000 2000 - 0x0000 2FFF - yes yes yes

3 4 kB 0x0000 3000 - 0x0000 3FFF - yes yes yes

4 4 kB 0x0000 4000 - 0x0000 4FFF - - yes yes

5 4 kB 0x0000 5000 - 0x0000 5FFF - - yes yes

6 4 kB 0x0000 6000 - 0x0000 6FFF - - - yes

7 4 kB 0x0000 7000 - 0x0000 7FFF - - yes

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 296

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.3.7 Code Read Protection(CRP)Code Read Protection(CRP: プログラム読み取り禁止)は、ユーザー側でシステム内で異なるレベルのセキュリティをイネーブルにし、オンチップフラッシュへのアクセスおよびISPの使用を制限するためのメカニズムです。CRPは必要に応じて、フラッシュ位置0x000002FC に特定のパターンをプログラミングすることで呼び出すことができます。IAP コマンドは、CRPによる影響を受けません。

重要 :CRPの変更は、デバイスを再起動した後でなければ有効になりません。

Table 249. Code Read Protection options

Name Pattern programmed in 0x0000 02FC

Description

NO_ISP 0x4E69 7370 ISP モード移行時の、ピン PIO0_1 のサンプリングを回避します。PIO0_1は他の用途に使用されます。

CRP1 0x12345678 SWD ピンを介したチップへのアクセスをディスエーブルにします。このモードでは、次の ISP コマンドと制限を適用したフラッシュの部分的更新が許容されます。

• RAM コマンドへの書き込みは、0x1000 0300 より下位の RAMにアクセスできない。

•「Copy RAM to flash」コマンドは、セクタ 0に書き込むことができない。

•「Erase」コマンドによるセクタ 0 の消去は、消去対象としてすべてのセクタが選択されている場合にのみ可能である。

•「Compare」コマンドはディスエーブルになる。

•「Read Memory」コマンドはディスエーブルになる。このモードは、すべてのセクタの消去が不可能な場合に、CRP が要求され、フラッシュのフィールド更新が必要になったときに役に立ちます。「Compare」コマンドは部分更新の際にディスエーブルになるため、セカンダリローダがチェックサムメカニズムを実装し、フラッシュの完全性を検証する必要があります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 297

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

CRP2 0x87654321 SWD ピンを介したチップへのアクセスをディスエーブルにします。次の ISPコマンドがディスエーブルになります。

• Read Memory

• Write to RAM

• Go

• Copy RAM to flash

• Compare

CRP2 がイネーブルになると、ISP の消去コマンドはユーザーの全セクタの消去のみを許可します。

CRP3 0x43218765 SWD ピンを介したチップへのアクセスをディスエーブルにします。PIO0_1の LOWへのプルによる ISPのエントリは、フラッシュセクタ0 に有効なユーザーコードが存在する場合にディスエーブルになります。このモードは、PIO0_1ピンを使用した ISPのオーバーライドをディスエーブルにします。IAP呼び出しを使用したフラッシュ更新メカニズムの適用、または ISPの再起動コマンドの呼び出しによる UARTからのフラッシュ更新のイネーブル化は、ユーザー側アプリケーションで指定します。注意 : CRP3が選択された場合、工場でのデバイスのテストは実行されなくなります。

Table 250. Code Read Protection hardware/software interaction

CRP option User Code Valid

PIO0_1 pin at reset

SWD enabled LPC111x/LPC11C1x enters ISP mode

partial flash update in ISP mode

No No x Yes Yes Yes

No Yes High Yes No NA

No Yes Low Yes Yes Yes

CRP1 Yes High No No NA

CRP1 Yes Low No Yes Yes

CRP2 Yes High No No NA

CRP2 Yes Low No Yes No

CRP3 Yes x No No NA

CRP1 No x No Yes Yes

CRP2 No x No Yes No

CRP3 No x No Yes No

Table 249. Code Read Protection options(続き)Name Pattern

programmed in 0x0000 02FC

Description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 298

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

CRPモードがイネーブルで、ISPによるチップへのアクセスが許可されている場合、サポートされていない、または制限された ISPコマンドはリターンコードCODE_READ_PROTECTION_ENABLEDによって停止します。

19.3.7.1 ISPエントリの保護3つの CRPモード以外に、ユーザーは ISPモード移行時のピン PIO0_1のサンプリングを回避し、他の用途のためにピン PIO0_1を解放することができます。これは NO_ISPモードと呼ばれます。NO_ISPモードへの移行には、0x0000 02FC位置でパターン 0x4E69 7370をプログラミングします。

19.4 UART通信プロトコル

UART ISPのコマンドはすべて、1つの ASCII文字列で送信する必要があります。文字列はCarriage Return(CR)と Line Feed(LF)のいずれか、または両方の制御文字で終了させます。その他の <CR> と <LF> 文字は無視されます。ISP の応答はすべて、<CR><LF> で終わる ASCII文字列で送信されます。データは UUエンコード形式で送受信されます。

19.4.1 UART ISPコマンド形式"Command Parameter_0 Parameter_1 ...Parameter_n<CR><LF>" "Data" (データは「Write」コマンド専用)

19.4.2 UART ISP応答形式" R e t u r n _ C o d e < C R > < L F > R e s p o n s e _ 0 < C R > < L F > R e s p o n s e _ 1 < C R > < L F >...Response_n<CR><LF>" "Data" (データは「Read」コマンド専用)

Table 251. ISP commands allowed for different CRP levels

ISP command CRP1 CRP2 CRP3 (no entry in ISP mode allowed)

Unlock yes yes n/a

Set Baud Rate yes yes n/a

Echo yes yes n/a

Write to RAM 可。0x1000 0300より上位のみ

no n/a

Read Memory no no n/a

Prepare sector(s) for write operation

yes yes n/a

Copy RAM to flash 可。セクタ 0以外 no n/a

Go no no n/a

Erase sector(s) 可。セクタ 0は全セクタの消去の場合にのみ消去可能。

可。全セクタのみ

n/a

Blank check sector(s) no no n/a

Read Part ID yes yes n/a

Read Boot code version yes yes n/a

Compare no no n/a

ReadUID yes yes n/a

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 299

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.4.3 UART ISPデータ形式データストリームは、UU エンコード形式です。UU エンコードアルゴリズムは、3 バイトのバイナリデータを、出力可能な 4 バイトの ASCII文字セットに変換します。これは、1バイトのバイナリデータを 2バイトの ASCII 16進数に変換する、16進形式よりも効率的です。センダは 20 UU エンコード行を送信した後、チェックサムを送信する必要があります。UU エンコード行の長さは、61 文字(バイト)を超えられません。すなわち 45データバイトまで保持できます。レシーバは、受信した行を受信したバイトのチェックサムと比較します。チェックサムが一致すれば、レシーバは「OK<CR><LF>」で応答して以降の伝送を継続します。チェックサムが一致しない場合、レシーバは「RESEND<CR><LF>」で応答します。これに対して、センダはバイトを再送信する必要があります。

UUエンコードの説明は、Wotsitのウェブページに記載されています。

19.4.4 UART ISPフロー制御ソフトウェアの XON/XOFF フロー制御方式は、バッファのオーバーランによるデータ損失を防ぐために使用されます。データが短時間で到着する場合、ASCII制御文字 DC3(停止)が送信されて、データのフローが停止します。ASCII制御文字 DC1(開始)の送信により、データフローが再開します。ホストも同じフロー制御方式に対応している必要があります。

19.4.5 UART SPコマンドのアボートASCII 制御文字「ESC」の送信により、コマンドをアボートできます。この機能は、「ISPコマンド」のセクションでコマンドとして文書化されていません。エスケープコードが受信されると、ISPコマンドハンドラは新しいコマンドを待機します。

19.4.6 UART ISP実行時の割り込みフラッシュのブートブロック上のブートブロック割り込みベクタは、リセット後はアクティブ状態です。

19.4.7 IAP実行時の割り込みオンチップフラッシュメモリは、消去 / 書き込み操作の間はアクセスできません。ユーザーのアプリケーションコードの実行が開始する時点で、ユーザーフラッシュ領域の割り込みベクタはアクティブです。ユーザーは、フラッシュ消去 /書き込み IAP呼び出しを実行する前に、割り込みをディスエーブルにするか、RAM 内のユーザー割り込みベクタがアクティブであることと RAM内に割り込みハンドラが存在することを確認する必要があります。IAPコードは、割り込みを使用することもディスエーブルにすることもありません。

19.4.8 ISPコマンドハンドラで使用される RAM

ISPコマンドは、0x1000 017C~ 0x1000 025Bのオンチップ RAMを使用します。ユーザーはこの領域を使用できますが、リセットによりコンテンツが損なわれる場合があります。フラッシュのプログラミングコマンドは、オンチップ RAM の上位 32バイトを使用します。スタックは、(RAM の先頭~ 32)に配置されています。スタックの利用量は、最大値の 256バイトから減少します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 300

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.4.9 IAPコマンドハンドラで使用される RAM

フラッシュのプログラミングコマンドは、オンチップ RAM の上位 32バイトを使用します。ユーザーが割り当てたスタック空間のスタック利用量は、最大値の 128 バイトから減少します。

19.5 UART ISPコマンド

ISPコマンドハンドラでは、次のコマンドが受け付けられます。各コマンドで、詳細なステータスコードがサポートされます。コマンドハンドラは、未定義コマンドが受信されるとリターンコードINVALID_COMMANDを送信します。コマンドとリターンコードは、ASCII形式です。

受信された ISPコマンドが完全に実行され、新しい ISPコマンドがホストから発行できる場合にのみ、ISPコマンドハンドラにより CMD_SUCCESSが送信されます。このルールの例外は、「Set Baud Rate」、「Write to RAM」、「Read Memory」、「Go」の各コマンドです。

Table 252. UART ISP command summary

ISP Command Usage Described in

Unlock U <Unlock Code> Table 253

Set Baud Rate B <Baud Rate> <stop bit> Table 254

Echo A <setting> Table 256

Write to RAM W <start address> <number of bytes> Table 256

Read Memory R <address> <number of bytes> Table 257

Prepare sector(s) for write operation

P <start sector number> <end sector number> Table 258

Copy RAM to flash C <Flash address> <RAM address> <number of bytes> Table 259

Go G <address> <Mode> Table 260

Erase sector(s) E <start sector number> <end sector number> Table 261

Blank check sector(s) I <start sector number> <end sector number> Table 262

Read Part ID J Table 263

Read Boot code version K Table 265

Compare M <address1> <address2> <number of bytes> Table 266

ReadUID N Table 267

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 301

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.1 Unlock <アンロックコード >(UART ISP)

19.5.2 Set Baud Rate <ボーレート > <ストップビット >(UART ISP)

19.5.3 Echo <設定 >(UART ISP)

Table 253. UART ISP Unlock command

Command U

Input アンロックコード : 2313010

Return Code CMD_SUCCESS |

INVALID_CODE |

PARAM_ERROR

Description このコマンドは、「Flash Write」、「Erase」、「Go」の各コマンドのアンロックに使用されます

Example 「U 23130<CR><LF>」は、「Flash Write」/「Erase」および「Go」コマンドをアンロックします。

Table 254. UART ISP Set Baud Rate command

Command B

Input ボーレート : 9600 | 19200 | 38400 | 57600 | 115200 | 230400

ストップビット : 1 | 2Return Code CMD_SUCCESS |

INVALID_BAUD_RATE |

INVALID_STOP_BIT |

PARAM_ERROR

Description このコマンドは、ボーレートの変更に使用されます。新しいボーレートは、コマンドハンドラが CMD_SUCCESSリターンコードを送信した後で有効になります。

Example 「B 57600 1<CR><LF>」は、シリアルポートにボーレート 57600 bps、およびストップビット 1を設定します。

Table 255. UART ISP Echo command

Command A

Input 設定 : ON = 1 | OFF = 0Return Code CMD_SUCCESS |

PARAM_ERROR

Description エコーコマンドのデフォルト設定は ONです。ONの場合、ISPコマンドハンドラは受信したシリアルデータをホストに戻します。

Example 「A 0<CR><LF>」はエコーを無効にします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 302

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.4 Write to RAM <開始アドレス > <バイト数 >(UART ISP)ホストは、CMD_SUCCESSリターンコードを受信した後でなければ、データを送信できません。ホストは、20 の UU エンコード行を送信した後で、チェックサムを送信する必要があります。チェックサムは、ローデータ(UUエンコーディング前)バイトの追加により生成され、20の UUエンコード行を送信した後でリセットされます。UUエンコード行の長さは、61文字(バイト)を超えられません。すなわち 45データバイトまで保持できます。データが 20未満の UUエンコード行に収まる場合は、チェックサムは実際に送信されたバイト数と一致します。ISP コマンドハンドラは、実際に送信されたバイト数を、受信されたバイトのチェックサムと比較します。チェックサムが一致した場合、ISPコマンドハンドラは「OK<CR><LF>」で応答して、送信を継続します。チェックサムが一致しない場合、ISP コマンドハンドラは「RESEND<CR><LF>」で応答します。これに対して、ホストはバイトを再送信する必要があります。

Table 256. UART ISP Write to RAM command

Command W

Input 開始アドレス : データバイトが書き込まれる RAMアドレス。このアドレスはワード境界になります。バイト数 : 書き込まれるバイト数。4の倍数の数になります。

Return Code CMD_SUCCESS |

ADDR_ERROR(アドレスがワード境界ではない)|ADDR_NOT_MAPPED |

COUNT_ERROR(バイトカウントが 4の倍数ではない)|PARAM_ERROR |

CODE_READ_PROTECTION_ENABLED

Description このコマンドは、データを RAM にダウンロードする場合に使用されます。データは UUエンコード形式になります。このコマンドは、CRPがイネーブルになっている場合はブロックされます。

Example 「W 268436224 4<CR><LF>」は、4 バイトのデータをアドレス 0x1000 0300 に書き込みます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 303

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.5 Read Memory <アドレス > <バイト数 >(UART ISP)データストリームの後に、コマンド成功リターンコードが送信されます。20 の UU エンコード行の送信後、チェックサムが送信されます。チェックサムは、ローデータ(UUエンコーディング前)バイトの追加により生成され、20 の UU エンコード行を送信した後でリセットされます。UUエンコード行の長さは、61文字(バイト)を超えられません。すなわち 45 データバイトまで保持できます。データが 20 未満の UU エンコード行に収まる場合は、チェックサムは実際に送信されたバイト数と一致します。ホストは、実際に送信されたバイト数を受信されたバイトのチェックサムと比較します。チェックサムが一致した場合、ホストは「OK<CR><LF>」で応答して、送信を継続します。チェックサムが一致しない場合、ホストは「RESEND<CR><LF>」で応答します。これに応答して、ISPコマンドハンドラは再度データを送信します。

Table 257. UART ISP Read Memory command

Command R

Input 開始アドレス : データバイトが読み取られるアドレス。このアドレスはワード境界になります。バイト数 : 読み取られるバイト数。4の倍数の数になります。

Return Code CMD_SUCCESSの後に <実際のデータ(UUエンコード)> |

ADDR_ERROR(アドレスがワード境界ではない)|ADDR_NOT_MAPPED |

COUNT_ERROR(バイトカウントが 4の倍数ではない)|PARAM_ERROR |

CODE_READ_PROTECTION_ENABLED

Description このコマンドは、RAMまたはフラッシュメモリからデータを読み取る場合に使用されます。このコマンドは、CRPがイネーブルになっている場合はブロックされます。

Example 「R 268435456 4<CR><LF>」は、4バイトのデータをアドレス 0x1000 0000から読み取ります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 304

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.6 Prepare sector(s) for write operation <開始セクタ番号 > <終了セクタ番号 >(UART ISP)このコマンドは、フラッシュの書き込み /消去操作を 2段階のプロセスに分割します。

19.5.7 Copy RAM to flash <フラッシュアドレス > <RAMアドレス > <バイト数 >(UART ISP)

Table 258. UART ISP Prepare sector(s) for write operation command

Command P

Input 開始セクタ番号終了セクタ番号 : 開始セクタ番号と同じか、それを上回る番号になります。

Return Code CMD_SUCCESS |

BUSY |

INVALID_SECTOR |

PARAM_ERROR

Description このコマンドは、「Copy RAM to flash」または「Erase Sector(s)」コマンドを実行する前に、実行する必要があります。「Copy RAM to flash」または「Erase Sector(s)」コマンドの実行に成功すると、関連するセクタが再度保護されます。ブートブロックは、このコマンドで準備できません。シングルセクタを準備するには、「開始」セクタと「終了」セクタに同じ番号を使用します。

Example 「P 0 0<CR><LF>」は、フラッシュセクタ 0を準備します。

Table 259. UART ISP Copy command

Command C

Input フラッシュアドレス(DST): データバイトが書き込まれるデスティネーションフラッシュアドレス。デスティネーションアドレスは、256バイト境界になります。RAMアドレス(SRC): データバイトが読み取られるソース RAMアドレス。バイト数 : 書き込まれるバイト数。256 | 512 | 1024 | 4096のいずれかになります。

Return Code CMD_SUCCESS |

SRC_ADDR_ERROR(アドレスがワード境界ではない)|

DST_ADDR_ERROR(アドレスが正しい境界ではない)|SRC_ADDR_NOT_MAPPED |

DST_ADDR_NOT_MAPPED |

COUNT_ERROR(バイトカウントが 256 | 512 | 1024 | 4096のいずれでもない)|SECTOR_NOT_PREPARED_FOR WRITE_OPERATION |

BUSY |

CMD_LOCKED |

PARAM_ERROR |

CODE_READ_PROTECTION_ENABLED

Description このコマンドは、フラッシュメモリのプログラミングに使用されます。「PrepareSector(s) for Write Operation」コマンドが、このコマンドに先行する必要があります。「Copy」コマンドが正常に実行されると、影響を受けるセクタが再度自動的に保護されます。ブートブロックは、このコマンドで書き込めません。このコマンドは、CRPがイネーブルになっている場合はブロックされます。

Example 「C 0 268467504 512<CR><LF>」は、RAMアドレス 0x1000 0800の 512バイトをフラッシュアドレス 0にコピーします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 305

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.8 Go <アドレス > <モード >(UART ISP)

19.5.9 Erase sector(s) <開始セクタ番号 > <終了セクタ番号 >(UART ISP)

Table 260. UART ISP Go command

Command G

Input アドレス : コード実行を開始するフラッシュまたは RAM アドレス。このアドレスはワード境界にあります。モード : T(Thumb モードでプログラムを実行)| A(ARM モードでプログラムを実行)。

Return Code CMD_SUCCESS |

ADDR_ERROR |

ADDR_NOT_MAPPED |

CMD_LOCKED |

PARAM_ERROR |

CODE_READ_PROTECTION_ENABLED

Description このコマンドは、RAM またはフラッシュメモリに常駐するプログラムの実行に使用されます。このコマンドが正常に実行された後、ISPコマンドハンドラに戻ることができない場合があります。このコマンドは、CRPがイネーブルになっている場合はブロックされます。

Example 「G 0 A<CR><LF>」は、ARMモードでアドレス 0x0000 0000に分岐します。

Table 261. UART ISP Erase sector command

Command E

Input 開始セクタ番号終了セクタ番号 : 開始セクタ番号と同じか、それを上回る番号になります。

Return Code CMD_SUCCESS |

BUSY |

INVALID_SECTOR |

SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION |

CMD_LOCKED |

PARAM_ERROR |

CODE_READ_PROTECTION_ENABLED

Description このコマンドは、オンチップフラッシュメモリの 1つまたは複数のセクタの消去に使用されます。ブートブロックは、このコマンドで消去できません。このコマンドでは、CRPがイネーブルになっている場合に、全ユーザーセクタの消去のみが可能です。

Example 「E 2 3<CR><LF>」は、フラッシュセクタ 2および 3を消去します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 306

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.10 Blank check sector(s) <セクタ番号 > <終了セクタ番号 >(UART ISP)

19.5.11 Read Part Identification number(UART ISP)

Table 262. UART ISP Blank check sector command

Command I

Input 開始セクタ番号 :

終了セクタ番号 : 開始セクタ番号と同じか、それを上回る番号になります。Return Code CMD_SUCCESS |

SECTOR_NOT_BLANK(< 最初のブランクではないワード位置のオフセット > < ブランクではないワード位置のコンテンツ >が続く)|INVALID_SECTOR |

PARAM_ERROR |

Description このコマンドは、オンチップフラッシュメモリの 1つまたは複数のセクタのブランクチェックに使用されます。セクタ 0のブランクチェックは、先頭 64バイトがフラッシュブートブロックにリマップされているため、常に失敗します。

Example 「I 2 3<CR><LF>」は、フラッシュセクタ 2および 3をブランクチェックします。

Table 263. UART ISP Read Part Identification command

Command J

Input なし。Return Code CMD_SUCCESSの後、ASCII形式の部品識別番号(Table 264「LPC111x and LPC11C1x

part identification numbers」を参照)。Description このコマンドは、部品識別番号の読み取りに使用されます。

Table 264. LPC111x and LPC11C1x part identification numbers

Device ASCII/dec coding Hex coding

LPC111x

LPC1111FHN33/101 69095467 0x041E 502B

LPC1111FHN33/201 68571179 0x0416 502B

LPC1112FHN33/101 70078507 0x042D 502B

LPC1112FHN33/201 69554219 0x0425 502B

LPC1113FHN33/201 70537259 0x0434 502B

LPC1113FHN33/301 70520875 0x0434 102B

LPC1113FBD48/301 70520875 0x0434 102B

LPC1114FHN33/201 71585835 0x0444 502B

LPC1114FHN33/301 71569451 0x0444 102B

LPC1114FBD48/301 71569451 0x0444 102B

LPC1114FA44/301 71569451 0x0444 102B

LPC11C1x

LPC11C12FBD48/301 337711147 0x1421 102B

LPC11C14FBD48/301 339742763 0x1440 102B

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 307

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.12 Read Boot code version number(UART ISP)

19.5.13 Compare <アドレス 1> <アドレス 2> <バイト数 >(UART ISP)

19.5.14 ReadUID(UART ISP)

Table 265. UART ISP Read Boot Code version number command

Command K

Input なしReturn Code CMD_SUCCESS の後、ASCII 形式の 2 バイトのブートコードバージョン番号。

<byte1(Major)>.<byte0(Minor)>と解釈されます。Description このコマンドは、ブートコードバージョン番号の読み取りに使用されます。

Table 266. UART ISP Compare command

Command M

Input アドレス 1(DST): 比較されるデータバイトのフラッシュまたは RAMの開始アドレス。このアドレスはワード境界になります。アドレス 2(SRC): 比較されるデータバイトのフラッシュまたは RAMの開始アドレス。このアドレスはワード境界になります。バイト数 : 比較されるバイト数。4の倍数になります。

Return Code CMD_SUCCESS |(ソースとデスティネーションのデータが同じ)COMPARE_ERROR |(最初のミスマッチのオフセットが続く)COUNT_ERROR(バイトカウントが 4の倍数ではない)|ADDR_ERROR |

ADDR_NOT_MAPPED |

PARAM_ERROR |

Description このコマンドは、2箇所のメモリコンテンツを比較する場合に使用されます。ソースまたはデスティネーションアドレスに、アドレス 0から始まる先頭の 512バイトのいずれかが含まれている場合、正しい比較の結果が得られない場合があります。ROMのブート時に、先頭の 512バイトがリマップされます。

Example 「M 8192 268468224 4<CR><LF>」は、RAM アドレス 0x1000 8000 の 4 バイトを、フラッシュアドレス 0x2000の 4バイトと比較します。

Table 267. UART ISP ReadUID command

Command N

Input なしReturn Code CMD_SUCCESSの後に、Eソートテスト情報の 4つの 32ビットワードが ASCII形式

で続きます。最も低いアドレスのワードが最初に送信されます。Description このコマンドは、固有の IDの読み取りに使用されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 308

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.5.15 UART ISPリターンコード

Table 268. UART ISP Return Codes Summary

Return Code

Mnemonic Description

0 CMD_SUCCESS コマンドの実行に成功しました。ホストから発行されるコマンドが完全かつ正常に実行された場合にのみ、ISPハンドラから送信されます。

1 INVALID_COMMAND 無効なコマンド。2 SRC_ADDR_ERROR ソースアドレスがワード境界にありません。3 DST_ADDR_ERROR デスティネーションアドレスが正しい境界にあり

ません。4 SRC_ADDR_NOT_MAPPED ソースアドレスが、メモリマップにマッピングされ

ていません。適宜、カウントの値が考慮されます。5 DST_ADDR_NOT_MAPPED デスティネーションアドレスが、メモリマップに

マッピングされていません。適宜、カウントの値が考慮されます。

6 COUNT_ERROR バイトカウントが 4 の倍数ではない、または許可される値ではありません。

7 INVALID_SECTOR セクタ番号が無効であるか、終了セクタ番号が開始セクタ番号を上回っています。

8 SECTOR_NOT_BLANK セクタがブランクではありません。9 SECTOR_NOT_PREPARED_FOR_

WRITE_OPERATIONセクタの書き込み操作を準備するコマンドが、実行されていません。

10 COMPARE_ERROR ソースとデスティネーションのデータが一致しません。

11 BUSY フラッシュプログラミングハードウェアインターフェースがビジー状態です。

12 PARAM_ERROR パラメータの個数が不適切です。またはパラメータが無効です。

13 ADDR_ERROR アドレスがワード境界にありません。14 ADDR_NOT_MAPPED アドレスがメモリマップでマッピングされていま

せん。適宜、カウントの値が考慮されます。15 CMD_LOCKED コマンドがロックされています。16 INVALID_CODE アンロックコードが無効です。17 INVALID_BAUD_RATE ボーレート設定が無効です。18 INVALID_STOP_BIT ストップビット設定が無効です。19 CODE_READ_PROTECTION_

ENABLEDCRPがイネーブルです。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 309

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.6 C_CAN通信プロトコル

注意 : C_CANインターフェースは、LPC11C1x部品でのみにあります。

C_CAN ブートローダは、リセット時にが PIO0_3 が LOW で、ISP エントリがイネーブル(PIO0_1 LOW)な場合に、自動的に ROMリセットハンドラによりアクティブになります。

C_CANブートローダは、オンチップオシレータと、CANビットレート 100 kbit/sの CANコントローラを初期化し、固有の CANopen ノード ID を固定値に設定します。この後、ブートローダは CANopen SDOコマンドを待機して、同コマンドに応答します。これらのコマンドにより、いわゆるオブジェクトディクショナリ(OD)内のすべての読み取りと書き込みが可能になります。ODには、16ビットインデックスと 18ビットサブインデックスを経由してアドレス指定されるエントリが格納されます。コマンドインターフェースは、この ODの一部になります。

C_CAN ISP コマンドハンドラを使用すると、UART ISP コマンドで実行可能なすべての機能を実行できます。Table 269を参照してください。

SDOコマンドは、特定の実行アドレスにジャンプするコマンド(「Go」)を受信するまで、またはチップがリセットされるまで「永遠に」受信、処理、応答が行われます。

C_ISPハンドラは、固定 CANopenノード ID 125(0x7D)を占有します。

19.6.1 C_CAN ISP SDOの通信

CAN ISPノードは、0x600にノード ID 0x7Dを加えた 0x67Dに等しい識別子の CAN 2.0A(11ビット)メッセージを待機します。ノードは、0x580にノード IDを加えた 0x5FDに等しい識別子の SDO応答を送信します。SDO通信では、「優先」および「セグメント」プロトコルがサポートされます。 これは、通信が常に確認されることを意味します。各要求の CANメッセージの後に、ISPノードから応答メッセージが送信されます。

Table 269. C_CAN ISP and UART ISP command summary

ISP Command C_CAN usage UART usage

Unlock Section 19.6.3 Table 253

Set Baud Rate n/a Table 254

Echo n/a Table 255

Write to RAM Section 19.6.4 Table 256

Read Memory Section 19.6.5 Table 257

Prepare sector(s) for write operation Section 19.6.6 Table 258

Copy RAM to flash Section 19.6.7 Table 259

Go Section 19.6.8 Table 260

Erase sector(s) Section 19.6.9 Table 261

Blank check sector(s) Section 19.6.10 Table 262

Read Part ID Section 19.6.11 Table 263

Read Boot code version Section 19.6.12 Table 265

ReadUID Section 19.6.13 Table 267

Compare Section 19.6.14 Table 266

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 310

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

SDOブロック転送モードはサポートされません。

SDOプロトコルの詳細については、CiA 301規格を参照してください。

19.6.2 C_CAN ISPオブジェクトディレクトリ

Table 270. C_CAN ISP object directory

Index Subindex Data type Access Description

0x1000 00 UNSIGNED32 RO デバイスタイプ(ASCII “LPC1”)0x1001 00 - RO エラーレジスタ(未使用、0x00)0x1018 00 - IDオブジェクト

01 UNSIGNED32 RO ベンダー ID(未使用、0x0000 0000) 02 UNSIGNED32 RO 部品識別番号 03 UNSIGNED32 RO ブートコードバージョン番号

0x1F50 00 - プログラムデータ 01 DOMAIN RW プログラム領域

0x1F51 00 - プログラム制御 01 UNSIGNED8 RW プログラム制御

0x5000 00 UNSIGNED16 WO アンロックコード0x5010 00 UNSIGNED32 RW メモリ読み取りアドレス0x5011 00 UNSIGNED32 RW メモリ読み取り長0x5015 00 UNSIGNED32 RW RAM書き込みアドレス0x5020 00 UNSIGNED16 WO セクタ書き込み準備0x5030 00 UNSIGNED16 WO セクタ消去0x5040 00 - セクタブランクチェック

01 UNSIGNED16 WO セクタチェック 02 UNSIGNED32 RO 最初の非ブランク位置のオフセット

0x5050 00 - RAMのフラッシュへのコピー 01 UNSIGNED32 RW フラッシュアドレス(DST) 02 UNSIGNED32 RW RAMアドレス(SRC) 03 UNSIGNED16 RW バイト数

0x5060 00 - メモリ比較 01 UNSIGNED32 RW アドレス 1 02 UNSIGNED32 RW アドレス 2 03 UNSIGNED16 RW バイト数 04 UNSIGNED32 RO 最初のミスマッチのオフセット

0x5070 00 - 実行アドレス 01 UNSIGNED32 RW 実行アドレス 02 UNSIGNED8 RO モード(「T」または「A」)、「T」のみサポート

0x5100 00 - シリアル番号 01 UNSIGNED32 RO シリアル番号 1 02 UNSIGNED32 RO シリアル番号 2 03 UNSIGNED32 RO シリアル番号 3 04 UNSIGNED32 RO シリアル番号 4

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 311

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.6.3 Unlock(C_CAN ISP)<アンロックコード >を [0x5000, 0]に書き込みます。無効なアンロックコードを書き込んだ場合、専用のアボートコードが返されます。

19.6.4 Write to RAM(C_CAN ISP)[0x5015, 0] への書き込みにより、RAM 書き込みアドレスを設定します。この後、バイナリデータを [0x1F50, 1]に書き込みます。これは DOMAINエントリであるため、データを連続的に書き込むことができます。ホストが書き込みを終了します。[0x5015, 0] の書き込みアドレスは自動的にインクリメントされるため、値の大きな領域の書き込みは、[0x1F50, 1]への複数の連続的な書き込みサイクルで実行される場合があります。

19.6.5 Read memory(C_CAN ISP)[0x5010, 0]への書き込みにより RAM読み取りアクセスを、[0x5011,0]への書き込みにより読み取り長を設定します。次に [0x1F50,1] から、バイナリデータを読み取ります。これは DOMAIN エントリであるため、データは連続的に読み取られます。読み取り長エントリのバイト数を読み取ると、デバイスは読み取りを終了します。[0x5010, 0] の読み取りアドレスは自動的にインクリメントされるため、値の大きな領域の読み取りは、[0x1F50,1]からの複数の連続した読み取りサイクルで実行される場合があります。

19.6.6 Prepare sectors for write operation(C_CAN ISP)開始セクタ番号が下位 8ビット、終了セクタ番号が上位 8ビットの 16ビット値を [0x5020,0]に書き込みます。

19.6.7 Copy RAM to flash(C_CAN ISP)パラメータをエントリ [0x5050, 1 to 3] に書き込みます。バイト数の [0x5050,3] への書き込みにより、プログラミングが開始します。

19.6.8 Go(C_CAN ISP)開始アドレスを [0x5070, 0] に書き込みます。次に、値 0x1 を [0x1F51, 1] に書き込んで、「start application」コマンドをトリガします。

19.6.9 Erase sectors(C_CAN ISP)開始セクタが下位 8ビット、終了セクタが上位 8ビットの 16ビット値を、[0x5030, 0]に書き込みます。

19.6.10 Blank check sectors(C_CAN ISP)開始セクタが下位 8ビット、終了セクタが上位 8ビットの 16ビット値を [0x5040, 1]に書き込みます。

SECTOR_NOT_BLANKアボートコードが返される場合、エントリ [0x5040, 2]に最初の非ブランク位置のオフセットが格納されています。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 312

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.6.11 Read PartID(C_CAN ISP)[0x1018, 2]を読み取ります。Table 271を参照してください。

19.6.12 Read boot code version(C_CAN ISP)[0x1018, 3]を読み取ります。

19.6.13 Read serial number(C_CAN ISP)[0x5100, 1 to 4]を読み取ります。

19.6.14 Compare(C_CAN ISP)パラメータをエントリ [0x5060, 1 to 3]に書き込みます。バイト数の [0x5060, 3]への書き込みにより、比較が開始します。

COMPARE_ERROR アボートコードが返された場合、エントリ [0x5060, 4] を読み取って最初のミスマッチのオフセットを取得できます。

19.6.15 C_CAN ISP SDOアボートコード

アクションをトリガする OD エントリは、アクションでエラーが返されたときに適切なSDOアボートコードを返します。 アボートコードは、0x0F00 0000に最下位バイトの対応する ISP リターンコードの値を加えた値です。 Table 272 に、アボートコードのリストを示します。

また、ODエントリへの無効なアクセスに対する通常の CANopen SDOアボートコードもサポートされます。

Table 271. LPC11C1x part identification numbers

Device ASCII/dec coding Hex coding

LPC11C12FBD48/301 <tbd> <tbd>

LPC11C14FBD48/301 339742763 0x1440 102B

Table 272. C_CAN ISP SDO abort codes

UART ISP Error Code SDO Abort Code Value

ADDR_ERROR SDOABORT_ADDR_ERROR 0x0F00 000D

ADDR_NOT_MAPPED SDOABORT_ADDR_ NOT_MAPPED 0x0F00 000E

CMD_LOCKED SDOABORT_CMD_LOCKED 0x0F00 000F

CODE_READ_PROTECTION_ ENABLED SDOABORT_CODE_READ _PROTECTION_ENABLED

0x0F00 0013

COMPARE_ERROR SDOABORT_COMPARE_ERROR 0x0F00 000A

COUNT_ERROR SDOABORT_COUNT_ERROR 0x0F00 0006

DST_ADDR_ERROR SDOABORT_DST_ADDR_ERROR 0x0F00 0003

DST_ADDR_NOT_MAPPED SDOABORT_DST_ADDR_ NOT_MAPPED 0x0F00 0005

INVALID_CODE SDOABORT_INVALID_CODE 0x0F00 0010

INVALID_COMMAND SDOABORT_INVALID_COMMAND 0x0F00 0001

INVALID_SECTOR SDOABORT_INVALID_SECTOR 0x0F00 0007

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 313

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.6.16 完全準拠の CANopenとの相違ブートローダは、SDO 通信プロトコルとオブジェクトディクショナリデータ編成方式を使用していますが、CiA 301 規格に完全に準拠した CANopen ノードではありません。以下は、CiA 301規格にはない機能または CiA 301規格とは異なる機能です。

• ネットワークマネージメント(NMT)メッセージ処理は使用できません。

• ハートビートメッセージとエントリ 0x1017は使用できません。

• デバイスエラーを示す独自の SDOアボートコードを使用します。

• 通信速度を上げるために、ノードへの SDO セグメントダウンロード / 書き込み時の「空の」SDO応答は、CiA 301規格で示されている全 8データバイトではなく、1データバイトに短縮されています。

• エントリ [0x1018, 1]のベンダー IDは、CiAが公式に割り当てた固有のベンダー IDではなく、「0x0000 0000」となります。

• ホストは、CAN ISPデバイスの識別に別の方法を使用する必要があります。

19.7 IAPコマンド

インアプリケーションプログラミングでは、IAP ルーチンを呼び出し、レジスタ r0 のワードポインタでコマンドコードとパラメータを格納したメモリ(RAM)を示す必要があります。IAP コマンドの結果は、レジスタ r1 で示される結果テーブルで返されます。ユーザーは、レジスタ r0と r1で同じポインタを渡すことにより、コマンドテーブルを結果に再利用できます。パラメータテーブルは、結果の数がパラメータの数を上回る場合、すべての結果を保持できる十分な大きさが必要です。パラメータの受け渡しを、Figure 60に示します。パラメータと結果の数は、IAP コマンドにより異なります。「Copy RAM toFLASH」コマンドに渡される、パラメータの最大数は 5 です。「ReadUID」コマンドで返される、結果の最大数は 4 です。コマンドハンドラは、未定義コマンドが受信されるとステータスコード INVALID_COMMAND を送信します。IAP ルーチンは 0x1FFF 1FF0 の場所に常駐する Thumbコードです。

IAP関数は、Cを使用した次の方法で呼び出されます。

IAPの位置のエントリポイントを定義します。IAPの位置の 0番目のビットが設定されているため、プログラムカウンタがこのアドレスに分岐するときに Thumb命令セットが変更されます。

PARAM_ERROR SDOABORT_PARAM_ERROR 0x0F00 000C

SECTOR_NOT_BLANK SDOABORT_SECTOR_ NOT_BLANK 0x0F00 0008

SECTOR_NOT_PREPARED_ FOR_WRITE_OPERATION

SDOABORT_SECTOR_NOT_ PREPARED_FOR_WRITE_ OPERATION

0x0F00 0009

SRC_ADDR_ERROR SDOABORT_SRC_ADDR_ERROR 0x0F00 0002

SRC_ADDR_NOT_MAPPED SDOABORT_SRC_ADDR_ NOT_MAPPED 0x0F00 0004

Table 272. C_CAN ISP SDO abort codes(続き)UART ISP Error Code SDO Abort Code Value

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 314

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

#define IAP_LOCATION 0x1fff1ff1

IAPコマンドテーブルと結果テーブルを IAP関数に渡す、データ構造またはポインタを定義します。

unsigned long command[5];unsigned long result[4];

または

unsigned long * command;unsigned long * result;command=(unsigned long *) 0x....result= (unsigned long *) 0x....

2つのパラメータをとり、voidを返す関数タイプのポインタを定義します。IAPは、テーブルのベースアドレスが R1に存在する結果を返します。

typedef void (*IAP)(unsigned int [],unsigned int[]);IAP iap_entry;

関数ポインタの設定 :

iap_entry=(IAP) IAP_LOCATION;

IAPを呼び出す場合は常に、次のステートメントを使用します。

iap_entry (command, result);

ARM仕様書(『ARM Thumbプロシージャ呼び出し規格 SWS ESPC 0002 A-05』)によると、r0、r1、r2、r3の各レジスタでそれぞれ最大 4つのパラメータを渡すことができます。以降のパラメータは、スタックで渡されます。r0、r1、r2、r3の各レジスタで、それぞれ最大 4 つのパラメータが返されます。その他のパラメータは、メモリを経由して間接的に返されます。4 パラメータ以上を要求する IAP 呼び出しもあります。ARM 推奨の方式がパラメータの受け渡し /戻しに使用される場合、別のベンダーの Cコンパイラの実装の違いにより問題が生じる場合があります。推奨されるパラメータ受け渡し方式では、このようなリスクが軽減されます。

書き込み / 消去動作の間、フラッシュメモリにアクセスできません。IAP コマンドはフラッシュの書き込み /消去動作の結果、オンチップ RAMの上部の 32バイトの空間を実行に使用します。アプリケーションで IAPのフラッシュプログラミングが許可されている場合、ユーザープログラムでこの空間を使用することはできません。

Table 273. IAP Command Summary

IAP Command Command Code Described in

Prepare sector(s) for write operation 5010 Table 274

Copy RAM to flash 5110 Table 275

Erase sector(s) 5210 Table 276

Blank check sector(s) 5310 Table 277

Read Part ID 5410 Table 278

Read Boot code version 5510 Table 279

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 315

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.7.1 Prepare sector(s) for write operation(IAP)このコマンドは、フラッシュの書き込み /消去操作を 2段階のプロセスに分割します。

Compare 5610 Table 280

Reinvoke ISP 5710 Table 281

Read UID 5810 Table 282

Fig 60. IAP parameter passing

Table 273. IAP Command Summary(続き)IAP Command Command Code Described in

COMMAND CODE

PARAMETER 1

PARAMETER 2

PARAMETER n

STATUS CODE

RESULT 1

RESULT 2

RESULT n

commandparameter table

commandresult table

ARM REGISTER r0

ARM REGISTER r1

Table 274. IAP Prepare sector(s) for write operation command

Command Prepare sector(s) for write operation

Input コマンドコード : 5010

Param0: 開始セクタ番号Param1: 終了セクタ番号(開始セクタ番号と同じか、それを上回る番号)。

Return Code CMD_SUCCESS |

BUSY |

INVALID_SECTOR

Result なしDescription このコマンドは、「Copy RAM to flash」または「Erase Sector(s)」コマンドを実行

する前に、実行する必要があります。「Copy RAM to flash」または「Erase Sector(s)」コマンドの実行に成功すると、関連するセクタが再度保護されます。ブートセクタは、このコマンドで準備できません。シングルセクタを準備するには、「開始」セクタと「終了」セクタに同じ番号を使用します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 316

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.7.2 Copy RAM to flash(IAP)

19.7.3 Erase Sector(s)(IAP)

Table 275. IAP Copy RAM to flash command

Command Copy RAM to flash

Input コマンドコード : 5110

Param0(DST): データバイトが書き込まれるデスティネーションフラッシュアドレス。このアドレスは 256バイト境界になります。Param1(SRC): データバイトが読み取られるソース RAM アドレス。このアドレスはワード境界になります。Param2: 書き込まれるバイト数。256 | 512 | 1024 | 4096のいずれかになります。Param3: システムクロック周波数(CCLK)(単位 =kHz)。

Return Code CMD_SUCCESS |

SRC_ADDR_ERROR(アドレスがワード境界ではない)|

DST_ADDR_ERROR(アドレスが正しい境界ではない)|SRC_ADDR_NOT_MAPPED |

DST_ADDR_NOT_MAPPED |

COUNT_ERROR(バイトカウントが 256 | 512 | 1024 | 4096のいずれでもない)|SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION |

BUSY |

Result なしDescription このコマンドは、フラッシュメモリのプログラミングに使用されます。最初に

「Preapre Sector for Write Operation」コマンドを呼び出して、影響を受けるセクタを準備します。「Copy」コマンドが正常に実行されると、影響を受けるセクタが再度自動的に保護されます。ブートセクタは、このコマンドで書き込むことができません。

Table 276. IAP Erase Sector(s) command

Command Erase Sector(s)

Input コマンドコード : 5210

Param0: 開始セクタ番号Param1: 終了セクタ番号(開始セクタ番号と同じか、それを上回る番号)。Param2: システムクロック周波数(CCLK)(単位 =kHz)。

Return Code CMD_SUCCESS |

BUSY |

SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION |

INVALID_SECTOR

Result なしDescription このコマンドは、オンチップフラッシュメモリの 1セクタまたは複数セクタの消

去に使用されます。ブートセクタは、このコマンドで消去できません。シングルセクタを消去するには、「開始」セクタと「終了」セクタに同じ番号を使用します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 317

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.7.4 Blank check sector(s)(IAP)

19.7.5 Read Part Identification number(IAP)

19.7.6 Read Boot code version number(IAP)

Table 277. IAP Blank check sector(s) command

Command Blank check sector(s)

Input コマンドコード : 5310

Param0: 開始セクタ番号Param1: 終了セクタ番号(開始セクタ番号と同じか、それを上回る番号)。

Return Code CMD_SUCCESS |

BUSY |

SECTOR_NOT_BLANK |

INVALID_SECTOR

Result Result0: ステータスコードが SECTOR_NOT_BLANKであれば、最初の非ブランクワード位置のオフセット。Result1: 非ブランクワード位置のコンテンツ。

Description このコマンドは、オンチップフラッシュメモリの 1セクタまたは複数セクタのブランクチェックに使用されます。シングルセクタをブランクチェックするには、「開始」セクタと「終了」セクタに同じ番号を使用します。

Table 278. IAP Read Part Identification command

Command Read part identification number

Input コマンドコード : 5410

パラメータ : なしReturn Code CMD_SUCCESS |

Result Result0: 部品識別番号Description このコマンドは、部品識別番号の読み取りに使用されます。

Table 279. IAP Read Boot Code version number command

Command Read boot code version number

Input コマンドコード : 5510

パラメータ : なしReturn Code CMD_SUCCESS |

Result Result0: ASCII形式の 2バイトのブートコードバージョン番号。<byte1(Major)>.<byte0(Minor)>と解釈されます。

Description このコマンドは、ブートコードバージョン番号の読み取りに使用されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 318

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.7.7 Compare <アドレス 1> <アドレス 2> <バイト数 >(IAP)

19.7.8 Reinvoke ISP(IAP)

19.7.9 ReadUID(IAP)

Table 280. IAP Compare command

Command Compare

Input コマンドコード : 5610

Param0(DST): 比較されるデータバイトのフラッシュまたは RAM の開始アドレス。このアドレスはワード境界になります。Param1(SRC): 比較されるデータバイトのフラッシュまたは RAM の開始アドレス。このアドレスはワード境界になります。Param2: 比較されるバイト数。4の倍数になります。

Return Code CMD_SUCCESS |

COMPARE_ERROR |

COUNT_ERROR(バイトカウントが 4の倍数ではない)|ADDR_ERROR |

ADDR_NOT_MAPPED

Result Result0: ステータスコードが COMPARE_ERROR であれば、最初のミスマッチのオフセット。

Description このコマンドは、2箇所のメモリコンテンツを比較する場合に使用されます。ソースまたはデスティネーションに、アドレス 0から始まる先頭の 512バイトのいずれかが含まれている場合、正しい結果が得られない場合があります。先頭の512バイトは、RAMにリマップできます。

Table 281. IAP Reinvoke ISP

Command Compare

Input コマンドコード : 5710

Return Code なしResult なし。Description このコマンドは、ISP モード時のブートローダの起動に使用されます。ブートベ

クタをマッピングし、PCLK = CCLKを設定し、UARTピン RXDおよび TXDを構成します。またカウンタ /タイマ CT32B1をリセットし、U0FDRをリセットします(Table 130を参照)。このコマンドは、内部フラッシュメモリ内に有効なユーザープログラムが存在し、ISPモードへの強制移行時に PIO0_1ピンにアクセスできない場合に使用できます。

Table 282. IAP ReadUID command

Command Compare

Input コマンドコード : 5810

Return Code CMD_SUCCESS

Result Result0: 先頭 32ビットワード(最も値の低いアドレス)。Result1: 2番目の 32ビットワード。Result2: 3番目の 32ビットワード。Result3: 4番目の 32ビットワード。

Description このコマンドは、固有の IDの読み取りに使用されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 319

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.7.10 IAPステータスコード

19.8 デバッグ上の注意

19.8.1 フラッシュイメージの比較使用されるデバッガと IDEデバッグの設定に応じて、デバッガの接続時に確認されるメモリはブート ROM、内部 SRAM、フラッシュのいずれかになります。 現在のデバッグ環境にどのメモリが使用されているかを簡単に判断する場合、フラッシュアドレス 0x0000 0004に格納された値をチェックします。 このアドレスには、ARM Cortex-M0ベクタテーブルのコードのエントリポイント、すなわちブート ROM、内部 SRAM、またはフラッシュメモリの下部が格納されます。

Table 283. IAP Status Codes Summary

Status Code

Mnemonic Description

0 CMD_SUCCESS コマンドの実行に成功しました。1 INVALID_COMMAND 無効なコマンド。2 SRC_ADDR_ERROR ソースアドレスがワード境界にありません。3 DST_ADDR_ERROR デスティネーションアドレスが正しい境界にありませ

ん。4 SRC_ADDR_NOT_MAPPED ソースアドレスが、メモリマップにマッピングされて

いません。適宜、カウントの値が考慮されます。5 DST_ADDR_NOT_MAPPED デスティネーションアドレスが、メモリマップにマッ

ピングされていません。適宜、カウントの値が考慮されます。

6 COUNT_ERROR バイトカウントが 4の倍数ではない、または許可される値ではありません。

7 INVALID_SECTOR セクタ番号が無効です。8 SECTOR_NOT_BLANK セクタがブランクではありません。9 SECTOR_NOT_PREPARED_

FOR_WRITE_OPERATIONセクタの書き込み操作を準備するコマンドが、実行されていません。

10 COMPARE_ERROR ソースとデスティネーションのデータが一致しません。

11 BUSY フラッシュプログラミングハードウェアインターフェースがビジー状態です。

Table 284. Memory mapping in debug mode

Memory mapping mode Memory start address visible at 0x0000 0004

Boot loader mode 0x1FFF 0000

User flash mode 0x0000 0000

User SRAM mode 0x1000 0000

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 320

NXP Semiconductors UM10398第 19章:LPC111x/LPC11C1xフラッシュメモリプログラミングファーム

参考資料

19.8.2 シリアルワイヤデバッグ(SWD)フラッシュプログラミングインターフェースデバッグツールは、フラッシュイメージの一部を RAMに書き込み、IAP呼び出し「CopyRAM to flash」を正しいオフセットで反復的に実行できます。

19.9 フラッシュメモリへのアクセス

システムクロック周波数に応じて、フラッシュメモリへのアクセスはさまざまなアクセス時間で設定できます。設定は、FLASHCFG レジスタのアドレス 0x4003 C010 に書き込みます。

注意 :このレジスタを正しく設定しないと、LPC111x/LPC11C1xのフラッシュメモリが正常に動作しないことがあります。

Table 285. Flash configuration register (FLASHCFG, address 0x4003 C010) bit description

Bit Symbol Value Description Reset value

1:0 FLASHTIM フラッシュメモリへのアクセス時間。FLASHTIM +1は、フラッシュアクセスに使用されるシステムクロック数に等しくなります。

10

00 1システムクロックのフラッシュアクセス時間(最大 20 MHzのシステムクロック周波数)

01 2システムクロックのフラッシュアクセス時間(最大 40 MHzのシステムクロック周波数)

10 3システムクロックのフラッシュアクセス時間(最大 50 MHzのシステムクロック周波数)

11 予約済み。 31:2 - - 予約済み。ユーザーソフトウェアがこれらのビットの値を変

更してはなりません。ビット 31:2は読み取ったとおりに書き戻す必要があります。

<tbd>

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 321

参考資料

20.1 この章を読む前に

デバッグ機能は、LPC111xと LPC11C1xのすべての部品で同一です。

20.2 特長

• ARMシリアルワイヤデバッグモードをサポートします。

• すべてのメモリ、レジスタ、ペリフェラルへのデバッグアクセスを管理します。

• デバッグセッションに、ターゲットリソースは不要です。

• 4 つのブレークポイント。 コードパッチの際に、命令アドレスのリマップにも使用できる 4つの命令ブレークポイント。 パッチのアドレスをリテラル値にリマップする場合に使用できる、2つのデータコンパレータ。

• トリガとしても使用できる、2つのデータウォッチポイント。

20.3 概要

デバッグ機能は、ARM Cortex-M0に統合されています。 シリアルワイヤデバッグ機能がサポートされています。 ARM Cortex-M0は、最大で 4つのブレークポイントと 2つのウォッチポイントに対応するよう構成されています。

20.4 説明

LPC111x/LPC11C1xによるデバッグは、シリアルワイヤデバッグモードを使用します。

20.5 ピンの説明

下記の表に、デバッグに関連した各種のピンの機能を説明しています。 これらの機能の一部は、他の機能とピンを共有しているため、同時に使用できない場合があります。

UM10398第 20章:LPC111x/LPC11C1x シリアルワイヤデバッグ(SWD)Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 286. Serial Wire Debug pin description

Pin Name Type Description

SWCLK Input シリアルワイヤクロック。このピンは、シリアルワイヤデバッグモード時のデバッグロジック用のクロックです(SWDCLK)。

SWDIO Input / Output

シリアルワイヤデバッグのデータ入力 / 出力。SWDIO ピンは、LPC111x/LPC11C1x との通信および制御用に、外部デバッグツールで使用されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 322

NXP Semiconductors UM10398第 20章:LPC111x/LPC11C1x シリアルワイヤデバッグ(SWD)

参考資料

20.6 デバッグ上の注意

重要 : デバッグの間、特定の制限に注意する必要があります。 最も重要な注意点として、ARM Cortex-M0統合の制約により、LPC111x/LPC11C1xがディープスリープモードから通常の方法でウェイクアップできないことが挙げられます。 したがって、このモードはデバッグ中に使用しないようにしてください。

またデバッグモードによる、ARM Cortex-M0 CPU内部での電力低減モードの動作の変化、これのシステム全体への波及も問題となります。 このような変動が発生するため、デバッグの間は電力測定を実施すべきではありません。通常のアプリケーションの使用時よりも測定結果が高くなるためです。

デバッグセッションの間、CPUの停止により自動的にシステム tickタイマが停止します。他のペリフェラルには影響しません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 323

参考資料

21.1 概要

次の資料は、ARMの『Cortex-M0 User Guide』から引用しています。 LPC111x/ LPC11C1x向け Cortex-M0の固有の実装については、マイナーな変更が行われています。

ARM Cortex-M0の文書は、Ref 1と Ref 2でも参照できます。

21.2 Cortex-M0プロセッサとコアペリフェラル

Cortex-M0プロセッサは、幅広い組み込みアプリケーション向けに設計されたエントリレベルの32ビットARM Cortexプロセッサです。 開発者には次のような重要な効果がもたらされます。

• 学習とプログラムが容易なシンプルなアーキテクチャ

• 超低電力、エネルギー効率に優れた動作

• 卓越したコード密度

• 高性能な決定性割り込み処理

• Cortex-Mプロセッサファミリとの上位互換

Cortex-M0プロセッサは、ノイマン型 3段パイプラインアーキテクチャを採用し、面積と電力を高度に最適化した 32 ビットプロセッサコア上に構築されています。 同プロセッサは、コンパクトで強力な命令セットと広範囲に最適化されたデザインを通じて、エネルギー効率を桁外れに高め、シングルサイクル乗算器を含むハイエンドプロセッシングハードウェアを搭載しています。

UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンスRev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Fig 61. Cortex-M0 implementation

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 324

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

Cortex-M0 プロセッサは、16 ビット Thumb 命令セットをベースにし、Thumb-2 テクノロジを採用した ARMv6-M アーキテクチャを実装しています。 新しい 32 ビットアーキテクチャに期待される抜群のパフォーマンスを示し、8 ビットおよび 16 ビットのマイクロコントローラを上回るコード密度を実現しています。

Cortex-M0プロセッサは、設定可能なネストベクタ割り込みコントローラ(NVIC)に緊密に統合され、割り込み性能を業界のトップレベルまで高めています。 NVIC の特長は次のとおりです。

• マスク不可能な割り込み(NMI)機能。 NMIは LPC111x/LPC11C1xに実装されていません。

• ゼロジッタ割り込みオプション

• 4段階の割り込み優先レベル

プロセッサコアと NVICが緊密に統合されているため、割り込みサービスルーチン(ISR)の実行が高速化し、割り込みによる遅延を大幅に短縮することができます。 これが可能になるのは、ハードウェア内のレジスタのスタッキングや、load-multipleと store-multiple(複数のレジスタの同時ロード / ストア)処理の中断および再起動の機能を備えているためです。 割り込みハンドラは、アセンブララッパーコードを必要としないため、ISRのコードのオーバーヘッドを回避できます。 またテールチェインの最適化も、ISR を別の ISR に切り替える場合のオーバーヘッドの大幅な低減に貢献しています。

NVIC は低電力設計の最適化のために、スリープモードを搭載していますが、これにはデバイス全体の迅速なパワーダウンを可能にするディープスリープ機能も含まれます。

21.2.1 システムレベルインターフェースCortex-M0 プロセッサは、AMBA テクノロジを採用した単独のシステムレベルインターフェースを提供し、メモリアクセスの高速化、低遅延化を図っています。

21.2.2 設定可能なデバッグ機能の搭載Cortex-M0 プロセッサは、ハードウェアのブレークポイントとウォッチポイントのオプションを拡大した、完全なハードウェアデバッグソリューションを実装します。 マイクロコントローラやその他の小型パッケージデバイスに最適な 2 ピンシリアルワイヤデバッグ(SWD)ポートを通じて、システムのプロセッサ、メモリ、ペリフェラルの明瞭性が高められます。

21.2.3 Cortex-M0プロセッサの特長の概要

• 32ビット性能による高いコード密度

• ツールとバイナリの Cortex-Mプロセッサファミリとの上位互換

• 超低電力スリープモードの搭載

• 効率的なコード実行によるプロセッサクロック遅延の許容、またはスリープモード時間の長期化

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 325

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• シングルサイクル 32ビットハードウェア乗算器

• ゼロジッタ割り込み処理

• 広範なデバッグ機能

21.2.4 Cortex-M0コアペリフェラルコアペリフェラルは次のとおりです。

NVIC — NVIC は低遅延割り込み処理をサポートする、組み込み割り込みコントローラです。

システム制御ブロック — システム制御ブロック(SCB)は、プロセッサ間のプログラマモデルインターフェースです。 システム実装情報を提供し、設定、制御、システム例外の報告などのシステム制御を実行します。

システムタイマ — システムタイマ SysTickは、24ビットカウントダウンタイマです。 RealTime Operating System(RTOS)tickタイマ、またはシンプルなカウンタとして使用します。

21.3 プロセッサ

21.3.1 プログラマモデルこのセクションでは、Cortex-M0プログラマモデルについて説明します。 個々のコアレジスタの説明以外に、プロセッサモードとスタックについての情報も提供します。

21.3.1.1 プロセッサモードプロセッサモードには次の 2種類があります。

スレッドモード — アプリケーションソフトウェアの実行に使用されます。 プロセッサは、リセット後にスレッドモードに移行します。

ハンドラモード — 例外の処理に使用されます。 プロセッサはすべての例外処理が終了すると、スレッドモードに戻ります。

21.3.1.2 スタックプロセッサは、フル下降スタックを使用します。 これは、スタックポインタがスタックメモリの最後にスタックされた項目を示すことを意味します。 プロセッサがスタックに新しい項目を追加する場合、スタックポインタをデクリメントし、項目を新しいメモリ位置に書き込みます。 プロセッサは、メインスタックとプロセススタックの 2つのスタックを実装し、スタックポインタのコピーを個別に使用します。Section 21.3.1.3.2を参照してください。

スレッドモードでは、CONTROLレジスタは、プロセッサがメインスタックとプロセススタックのどちらを使用するかを制御します。Section 21.3.1.3.7を参照してください。 ハンドラモードの場合、プロセッサは常にメインスタックを使用します。 プロセッサ動作のオプションを次に説明します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 326

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.3.1.3 コアレジスタ

プロセッサのコアレジスタを次に説明します。

[1] スレッドモードとハンドラモードでのプログラム実行中のアクセスタイプを説明しています。 デバッグアクセスは異なる場合があります。

[2] ビット [24]は Tビットであり、リセットベクタのビット [0]からロードされます。

Table 287. Summary of processor mode and stack use options

Processormode

Used toexecute

Stack used

Thread アプリケーション メインスタックまたはプロセススタック。Section 21.3.1.3.7を参照してください。

Handler 例外ハンドラ メインスタック

Fig 62. Processor core register set

Table 288. Core register set summary

Name Type[1] Reset value Description

R0-R12 RW Unknown Section 21.3.1.3.1

MSP RW See description Section 21.3.1.3.2

PSP RW Unknown Section 21.3.1.3.2

LR RW Unknown Section 21.3.1.3.3

PC RW See description Section 21.3.1.3.4

PSR RW Unknown[2] Table 289

APSR RW Unknown Table 290

IPSR RO 0x00000000 Table 291

EPSR RO Unknown[2] Table 292

PRIMASK RW 0x00000000 Table 293

CONTROL RW 0x00000000 Table 294

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 327

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.3.1.3.1 汎用レジスタR0-R12は、データ処理用の 32ビット汎用レジスタです。

21.3.1.3.2 スタックポインタスタックポインタ(SP)はレジスタ R13です。 スレッドモードでは、CONTROLレジスタのビット [1]は、スタックポインタに対して次の使用を指示します。

• 0 = メインスタックポインタ(MSP)。 これはリセット値です。

• 1 = プロセススタックポインタ(PSP)。

リセット後、プロセッサは MSPにアドレス 0x00000000 の値をロードします。

21.3.1.3.3 リンクレジスタリンクレジスタ(LR)はレジスタ R14です。 サブルーチン、関数呼び出し、例外の戻り値情報を格納します。 リセット時の LRの値は Unknownです。

21.3.1.3.4 プログラムカウンタプログラムカウンタ(PC)はレジスタ R15 です。 現在のプログラムアドレスを格納します。 リセット後、プロセッサは PCにアドレス 0x00000004 のリセットベクタの値をロードします。 ビット [0]の値は、リセット時に EPSR Tビットにロードされ、必ず 1になります。

21.3.1.3.5 プログラムステータスレジスタプログラムステータスレジスタ(PSR)は、次のレジスタの組み合わせです。

• アプリケーションプログラムステータスレジスタ(APSR)

• 割り込みプログラムステータスレジスタ(IPSR)

• 実行プログラムステータスレジスタ(EPSR)

これらのレジスタは、32 ビット PSR の相互排他的なビットフィールドです。 PSR ビットの割り当てを次の図に示します。

上記のレジスタには、MSR または MRS 命令の引数としてレジスタ名を使用して、個別に、または 2つか 3つを組み合わせてアクセスします。 以下に例を示します。

• すべてのレジスタを読み取る場合は、MRS 命令に PSR を使用

Fig 63. APSR, IPSR, EPSR register bit assignments

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 328

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• APSRに書き込む場合は、MSR 命令に APSR を使用

PSR の組み合わせと属性を次の表にまとめています。

[1] プロセッサは IPSRビットへの書き込みを無視します。[2] EPSRビットの読み取りによりゼロが返され、プロセッサはこれらのビットへの書き込みを無視します。

プログラムステータスレジスタへのアクセス方法の詳細については、命令の説明のSection 21.4.7.6と Section 21.4.7.7を参照してください。

アプリケーションプログラムステータスレジスタ : APSR は、前回の命令の実行以降の、条件フラグの現在の状態を格納します。 レジスタの属性については、Table 288 のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

APSRのネガティブ、ゼロ、キャリーまたはボロー、およびオーバーフローの各フラグについての詳細は、Section 21.4.4.1.4を参照してください。

割り込みプログラムステータスレジスタ : IPSR は、現在の割り込みサービスルーチン(ISR)の例外番号を格納します。 レジスタの属性については、Table 288のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

Table 289. PSR register combinations

Register Type Combination

PSR RW[1][2] APSR, EPSR, and IPSR

IEPSR RO EPSR and IPSR

IAPSR RW[1] APSR and IPSR

EAPSR RW[2] APSR and EPSR

Table 290. APSR bit assignments

Bits Name Function

[31] N ネガティブフラグ[30] Z ゼロフラグ[29] C キャリーまたはボローフラグ[28] V オーバーフローフラグ[27:0] - 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 329

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

実行プログラムステータスレジスタ : EPSRは、Thumb状態ビットを格納します。

EPSR属性については、Table 288のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

アプリケーションソフトウェアによる MRS 命令を使った直接の EPSRの読み取りの試みでは、常にゼロが返されます。 MSR 命令を使った EPSRの書き込みの試みは、無視されます。障害ハンドラは、スタック PSR内の EPSR値を検証して障害の原因を判断します。 Section21.3.3.6を参照してください。 次の場合、Tビットは 0にクリアされます。

• 命令 BLX、BX、POP{PC}

• 例外リターン時のスタックされた xPSR値からの復元

• 例外エントリ時のベクタ値のビット [0]

Tビットが 0のときに命令の実行を試みると、HardFaultまたはロックアップが発生します。 詳細については、Section 21.3.4.1を参照してください。

Table 291. IPSR bit assignments

Bits Name Function

[31:6] - 予約済み[5:0] Exception number これは現在の例外の番号です。

0 = スレッドモード1 = 予約済み2 = NMI

3 = HardFault

4~ 10 = 予約済み11 = SVCall

12、13 = 予約済み14 = PendSV

15 = SysTick

16 = IRQ0

.

.

.

47 = IRQ31

48~ 63 = 予約済み。詳細については、Section 21.3.3.2を参照してください。

Table 292. EPSR bit assignments

Bits Name Function

[31:25] - 予約済み[24] T Thumb状態ビット[23:0] - 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 330

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

Interruptible-restartable(割り込み可能 /再起動可能)命令 : 割り込み可能 /再起動可能命令は、LDM と STM です。 上記の命令のいずれかの実行中に割り込みが発生すると、プロセッサは命令の実行を中断します。

割り込みの実行後、プロセッサは命令の実行を最初からやり直します。

21.3.1.3.6 例外マスクレジスタ例外マスクレジスタは、プロセッサによる例外の処理をディスエーブルにします。 タイミングが重要なタスク、またはアトミシティを要求するコードシーケンスへの影響が予測される例外をディスエーブルにします。

例外をディスエーブルにする、または再度イネーブルにするには、MSR 命令と MRS 命令、または CPS命令を使用して PRIMASKの値を変更します。 詳細については、Section 21.4.7.6、Section 21.4.7.7、および Section 21.4.7.2を参照してください。

優先順位マスクレジスタ : PRIMASK レジスタは、優先順位が設定可能なすべての例外のアクティブ化を防止します。 レジスタの属性については、Table 288 のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

21.3.1.3.7 CONTROLレジスタCONTROLレジスタは、プロセッサがスレッドモードのときに使用されるスタックを制御します。 レジスタの属性については、Table 288 のレジスタの概要を参照してください。ビットの割り当てを次の表に示します。

ハンドラモードは常に MSP を使用するため、ハンドラモードの場合、プロセッサはCONTROLレジスタのアクティブなスタックポインタビットへの明示的な書き込みを無視します。 例外のエントリとリターンのメカニズムにより、CONTROL レジスタが更新されます。

OS環境では、スレッドモード時に実行されるスレッドはプロセススタックを使用し、カーネルハンドラと例外ハンドラはメインスタックを使用することが推奨されます。

Table 293. PRIMASK register bit assignments

Bits Name Function

[31:1] - 予約済み [0] PRIMASK 0 = 影響なし

1 = 優先順位の設定が可能なすべての例外のアクティブ化を防止します。

Table 294. CONTROL register bit assignments

Bits Name Function

[31:2] - 予約済み[1] Active stack

pointer現在のスタックを定義します。0 = MSPが現在のスタックポインタです。1 = PSPが現在のスタックポインタです。ハンドラモードでは、このビットはゼロとして読み取られ、このビットへの書き込みは無視されます。

[0] - 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 331

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

デフォルトでは、スレッドモードは MSP を使用します。 スレッドモードで使用されるスタックポインタを PSPに切り替えるには、MSR 命令を使用して、アクティブスタックポインタビットを 1に設定します。Section 21.4.7.6を参照してください。

注意 : スタックポインタを変更する場合、ソフトウェアでは MSR 命令の直後に ISB 命令を使用する必要があります。 これにより、ISB 後の命令は確実に新しいスタックポインタを使用して実行されます。 Section 21.4.7.5を参照してください。

21.3.1.4 例外と割り込みCortex-M0プロセッサは、割り込みとシステム例外をサポートしています。 同プロセッサとネストベクタ割り込みコントローラ(NVIC)は、すべての例外に優先順位を付けて処理します。 割り込みまたは例外により、ソフトウェア制御の通常のフローが変化します。プロセッサはハンドラモードを使用して、リセットを除くすべての例外を処理します。 詳細については、Section 21.3.3.6.1と Section 21.3.3.6.2を参照してください。

NVICレジスタは、割り込み処理を制御します。 詳細については、Section 21.5.2を参照してください。

21.3.1.5 データタイプこのプロセッサは、

• 次のデータタイプをサポートします。– 32ビットワード– 16ビットハーフワード– 8ビットバイト

• すべてのデータメモリアクセスを、リトルエンディアンで管理します。 命令メモリとプライベートペリフェラルバス(PPB)へのアクセスは、常にリトルエンディアンです。 詳細については、Section 21.3.2.1を参照してください。

21.3.1.6 Cortexマイクロコントローラソフトウェアインターフェース規格ARMでは、Cortex-M0マイクロコントローラのプログラミング向けに、Cortexマイクロコントローラソフトウェアインターフェース規格(CMSIS)を制定しています。 CMSISは、デバイスドライバライブラリ内に統合されています。

Cortex-M0 マイクロコントローラシステムについては、CMSIS は次のように定義しています。

• 次の操作の共通の方法 :

– ペリフェラルレジスタへのアクセス– 例外ベクタの定義

• 次の名前 :

– コアペリフェラルのレジスタ– コア例外ベクタ

• RTOSカーネルのデバイス独立型インターフェース

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 332

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

CMSISでは、Cortex-M0プロセッサのコアペリフェラルのアドレス定義とデータ構造も規定されています。 また、TCP/IPスタックとフラッシュファイルシステムを含むミドルウェアコンポーネント向けの、オプショナルインターフェースも扱っています。

CMSISにより、テンプレートコードの再利用が可能になり、またさまざまなミドルウェアベンダーのCMSIS準拠ソフトウェアコンポーネントを組み合わせられるため、ソフトウェア開発が容易になります。 ソフトウェアベンダーは、CMSISを拡大して、自社のペリフェラルの定義と、それらのペリフェラルのアクセス機能を盛り込むことも可能です。

本書では、CMSISで定義されるレジスタ名を使用し、プロセッサコアおよびコアペリフェラルに対応する CMSIS機能について簡単に説明しています。

注意 : 本書では、CMSISで定義されているレジスタの短縮名を使用しています。 他の文書で使用されるアーキテクチャ上の短縮名と異なる場合もあります。

CMSISについての詳細は、次のセクションでも扱っています。

• Section 21.3.5.3「パワーマネージメントプログラミング上のヒント」

• Section 21.4.2「組み込み関数」

• Section 21.5.2.1「CMSISを使用した Cortex-M0 NVICレジスタへのアクセス」

• Section 21.5.2.8.1「NVICのプログラミング上のヒント」.

21.3.2 メモリモデルこのセクションでは、プロセッサのメモリマップとメモリアクセスの動作について説明します。 Cortex-M0プロセッサは、最大 4GBのアドレス指定可能なメモリを示した固定メモリマップを使用しています。 以下にメモリマップの図を示します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 333

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

プロセッサは、プライベートペリフェラルバス(PPB)アドレス範囲の領域を、コアペリフェラルレジスタ用に予約しています。Section 21.2を参照してください。

21.3.2.1 メモリ領域、タイプ、属性メモリマップは、領域に分割されます。 各領域にメモリタイプが定義され、メモリ属性が追加される領域もあります。 メモリのタイプと属性により、領域へのアクセス動作が決定します。

次のメモリタイプがあります。

通常—プロセッサは効率性を目的として、または投機的な読み取りを実行するために、トランザクションを再順序付けできます。

See Figure 2 for the LPC111x/LPC11C1x specific implementation of the memory map. SRAM and code locations are different on the LPC111x/LPC11C1x.

Fig 64. Generic ARM Cortex-M0 memory map

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 334

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

デバイス—プロセッサは、デバイスメモリまたは強い順序付けメモリとの他のトランザクションを基準に、トランザクション順序を維持します。

強い順序付け—プロセッサは、他のすべてのトランザクションを基準にトランザクション順序を維持します。

デバイスメモリと強い順序付けメモリの異なる順序付けが必要になるのは、メモリシステムはデバイスメモリへの書き込みをバッファリングできますが、強い順序付けメモリへの書き込みはバッファリングできないためです。

その他に次のメモリ属性が使用されます。

実行不可(XN: Execute Never)—プロセッサが命令アクセスを阻止することを意味します。 メモリの XN 領域からフェッチされた命令を実行した場合、HardFault 例外が生成されます。

21.3.2.2 メモリシステムによるメモリアクセスの順序付け明示的なメモリアクセス命令によるメモリアクセスのほとんどは、再順序付けが命令シーケンスの動作に影響しなければ、アクセスの実行順序とプログラムの命令順序の一致がメモリシステムにより保証されません。 通常、2つのメモリアクセスがプログラムの順序で実行されるかどうかにより、プログラムの正しい実行が左右される場合、メモリアクセス命令の間へのメモリバリア命令の挿入が要求されます。Section 21.3.2.4 を参照してください。

ただし、メモリシステムではデバイスメモリおよび強い順序付けメモリへのアクセスの順序は、保証されない場合があります。 2 つのメモリアクセス命令 A1 と A2 について、A1がプログラム順序で A2の前に実行される場合、2つの命令によるメモリアクセスの順序は次のようになります。

上記の図の説明 :

- —メモリシステムでアクセスの順序が保証されないことを意味します。

< —アクセスはプログラムの順序で実行される、すなわち A1が常に A2より先に実行されることを意味します。

21.3.2.3 メモリアクセスの動作

メモリマップの各領域へのアクセスの動作を次の表に示します。

Fig 65. Memory ordering restrictions

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 335

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

[1] 詳細については、Section 21.3.2.1を参照してください。

コード、SRAM、外部 RAM領域はプログラムを保持できます。

21.3.2.4 ソフトウェアによるメモリアクセスの順序付けプログラムフローの中での命令の順序は、必ずしも対応するメモリトランザクションの順序を保証するものではありません。 これは、次のような理由によります。

• 命令シーケンスの動作に影響しなければ、プロセッサが効率性の改善のために、一部のメモリアクセスの順序を再度設定する可能性がある。

• メモリマップ内のデバイスのメモリは、待機状態が異なる可能性がある。

• バッファリングされるメモリアクセスや投機的なメモリアクセスなど、メモリアクセスが統一されていない。

Section 21.3.2.2 に、メモリシステムによりメモリアクセスの順序が保証される事例を説明しています。 上記の場合以外では、メモリアクセスの順序が重要になる場合、メモリバリア命令をインクルードして当初の順序付けが強制的に実行されるようにする必要があります。 Cortex-M0プロセッサでは、次のメモリバリア命令を指定できます。

DMB —データメモリバリア(DMB)命令は、未処理のメモリトランザクションが後続のメモリトランザクションの前に完了することを保証します。 Section 21.4.7.3 を参照してください。

DSB — データ同期バリア(DSB)命令は、未処理のメモリトランザクションが後続の命令実行の前に完了することを保証します。 Section 21.4.7.4を参照してください。

Table 295. Memory access behavior

Addressrange

Memoryregion

Memorytype[1]

XN[1] Description

0x00000000- 0x1FFFFFFF

Code Normal - プログラムコードの実行可能領域。 ここにデータを配置することもできます。

0x20000000- 0x3FFFFFFF

SRAM Normal - データの実行可能領域。 ここにコードを配置することもできます。

0x40000000- 0x5FFFFFFF

Peripheral Device XN 外部デバイスメモリ

0x60000000- 0x9FFFFFFF

ExternalRAM

Normal - データの実行可能領域。

0xA0000000- 0xDFFFFFFF

Externaldevice

Device XN 外部デバイスメモリ

0xE0000000- 0xE00FFFFF

Private Peripheral Bus

Strongly-ordered XN この領域には、NVIC、システムタイマ、およびシステム制御ブロックが含まれます。 この領域ではワードアクセスのみを使用できます。

0xE0100000- 0xFFFFFFFF

Device Device XN ベンダー固有

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 336

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

ISB — 命令同期バリア(ISB)は、完了したすべてのメモリトランザクションの影響が、後続の命令により認識されることを保証します。 Section 21.4.7.5を参照してください。

メモリバリア命令の使用例を次に示します。

ベクタテーブル—プログラムによってベクタテーブル内のエントリが変更され、対応する例外がイネーブルになった場合、動作の間に DMB 命令を使用します。 これにより、例外がイネーブルになった直後に取り込まれると、プロセッサは確実に新しい例外ベクタを使用します。

自己修正コード—プログラムに自己修正コードが含まれる場合、プログラムのコード修正直後に ISB 命令を使用します。 これにより、後続の命令例外で更新後のプログラムが確実に使用されます。

メモリマップ切り替え—システムにメモリマップ切り替えメカニズムが含まれている場合、メモリマップの切り替え後に DSB 命令を使用します。 これにより、後続の命令例外で更新後のメモリマップが確実に使用されます。

システム制御ブロックなどの強い順序付けのメモリへのメモリアクセスには、DMB 命令の使用が要求されません。

プロセッサは、他のすべてのトランザクションを基準にトランザクション順序を維持します。

21.3.2.5 メモリエンディアンCortex-M0プロセッサは、ゼロから昇順の番号を割り振ったバイトの線形コレクションとしてメモリを表示します。 たとえば、バイト 0~ 3は最初に格納されたワードを保持し、バイト 4 ~ 7 は 2 番目に格納されたワードを保持します。データワードのメモリへの格納方式については、Section 21.3.2.5.1で説明します。

21.3.2.5.1 リトルエンディアン形式リトルエンディアン形式では、プロセッサはワードの最下位バイト(lsbyte)を最も低い番号のバイトに格納し、ワードの最上位バイト(msbyte)を最も高い番号のバイトに格納します。 以下に例を示します。

Fig 66. Little-endian format

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 337

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.3.3 例外モデルこのセクションでは、例外モデルについて説明します。

21.3.3.1 例外状態各例外は次のいずれかの状態にあります。

非アクティブ—例外は非アクティブで、保留中でありません。

保留中—例外はプロセッサによるサービスを待機しています。

ペリフェラルまたはソフトウェアからの割り込み要求により、対応する割り込みの状態が保留中に変わる可能性があります。

アクティブ—プロセッサによりサービスされているが、まだ完了していない例外。

例外ハンドラにより、別の例外ハンドラの実行の割り込みが発生する可能性があります。この場合、両方の例外がアクティブな状態です。

アクティブおよび保留—例外はプロセッサからサービスされ、同じサービス元の保留中の例外が存在します。

21.3.3.2 例外のタイプ次の例外のタイプがあります。

注意 : NMIは LPC111x/LPC11C1xに実装されていません。

リセット—リセットは、電源投入またはウォームリセットで呼び出されます。 例外モデルでは、リセットを特別な形態の例外として処理します。 リセットがアサートされると、プロセッサの動作は命令の任意の箇所で停止します。 リセットがデアサートされると、ベクタテーブルのリセットエントリで指定されるアドレスから実行が再開します。 実行はスレッドモードで再開します。

NMI —マスク不可能な割り込み(NMI: NonMaskable Interrupt)は、ペリフェラルからシグナリングされるか、またはソフトウェアからトリガされます。 これはリセットを除いて、優先順位の最も高い例外です。 永久にイネーブルであり、優先順位は 2 に固定されています。 NMIは次の操作が不可能です。

• 他の例外によるマスク、または他の例外によるアクティブ化の回避

• リセット以外の例外によるプリエンプト

HardFault — HardFaultは、通常処理または例外処理中のエラーにより発生する例外です。HardFaultの優先順位は -1に固定されています。すなわち優先順位が設定可能な例外よりも高い優先順位が割り当てられます。

SVCall —スーパーバイザコール(SVC)は、SVC 命令によりトリガされる例外です。 OS環境では、アプリケーションは SVC 命令を使用して OSカーネル関数とデバイスドライバにアクセスできます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 338

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

PendSV — PendSV は、システムレベルのサービスに対する、割り込み駆動型の要求です。 OS環境では、PendSVは他にアクティブな例外がない場合に、コンテキストの切り替えに使用します。

SysTick — SysTick例外は、システムタイマがゼロに達したときに生成する例外です。 ソフトウェアも SysTick例外を生成します。 OS環境では、プロセッサはこの例外をシステムtickとして使用します。

割り込み(IRQ)—割り込み、すなわち IRQはペリフェラルによりシグナリングされる、またはソフトウェア要求により生成される例外です。 すべての割り込みは、命令実行と非同期です。 システムでは、ペリフェラルは割り込みを使用してプロセッサと対話します。

[1] ソフトウェア層を簡素化するために、CMSISは IRQ番号のみを使用します。したがって割り込み以外の例外では、負の値を使用します。 IPSRは例外番号を返します。Table 291を参照してください。

[2] 詳細については、Section 21.3.3.4を参照してください。[3] Section 21.5.2.6を参照してください。[4] 4ずつ増加。

非同期例外の場合、リセットを除いて、プロセッサは例外がトリガされてからプロセッサが例外ハンドラに移行するまでの間に、追加命令を実行します。

特権ソフトウェアの場合、Table 296 に優先順位が設定可能と示されている例外をディスエーブルにできます。Section 21.5.2.3を参照してください。

HardFaultの詳細については、Section 21.3.4を参照してください。

21.3.3.3 例外ハンドラプロセッサは次の方法で例外を処理します。

割り込みサービスルーチン(ISR)—割り込み IRQ0~ IRQ31は、ISRにより処理される例外です。

障害ハンドラ— HardFaultは、障害ハンドラで処理される唯一の例外です。

システムハンドラ— NMI、PendSV、SVCall SysTick、HardFaultはすべて、システムハンドラで処理されるシステム例外です。

Table 296. Properties of different exception types

Exceptionnumber[1]

IRQnumber[1]

Exceptiontype

Priority Vector address[2]

1 - Reset -3, the highest 0x00000004

2 -14 NMI -2 0x00000008

3 -13 HardFault -1 0x0000000C

4-10 - Reserved - -

11 -5 SVCall Configurable[3] 0x0000002C

12-13 - Reserved - -

14 -2 PendSV Configurable[3] 0x00000038

15 -1 SysTick Configurable[3] 0x0000003C

16 and above 0 and above Interrupt (IRQ) Configurable[3] 0x00000040 and above[4]

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 339

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.3.3.4 ベクタテーブルベクタテーブルには、スタックポインタのリセット値、およびすべての例外ハンドラの開始アドレス(例外ベクタ)が格納されています。 Figure 68 に、ベクタテーブルの例外ベクタの順序を示しています。 各ベクタの最下位ビットは必ず 1になります。すなわち例外ハンドラは Thumbコードで書き込まれます。

ベクタテーブルは、アドレス 0x00000000 に固定されます。

21.3.3.5 例外の優先順位Table 296 に示すように、すべての例外に次のような関連性のある優先順位が割り当てられています。

• 優先順位の値が低いほど優先順位が高い

• リセット、HardFault、NMIを除くすべての例外に対して、設定可能な優先順位

ソフトウェアで優先順位が設定されない場合、優先順位の設定が可能なすべての例外は、優先順位が 0 になります。例外の優先順位の設定の詳細は、次のセクションを参照してください。

Fig 67. Vector table

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 340

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• Section 21.5.3.7

• Section 21.5.2.6.

注意 : 設定可能な優先順位の値の範囲は、0 ~ 3 です。 リセット、HardFault、NMI 例外は、優先順位が負の値で固定されており、常に他の例外よりも優先順位が高くなります。

IRQ[0]に高い優先順位の値を、IRQ[1]に低い優先順位の値を割り当てると、IRQ[1]の優先順位が IRQ[0]よりも高くなります。 IRQ[1]と IRQ[0]の両方がアサートされた場合、IRQ[1]が IRQ[0]の前に処理されます。

保留中の複数の例外の優先順位が同じである場合、例外番号が最も低い保留中の例外が優先されます。 たとえば、IRQ[0]と IRQ[1]がいずれも保留中であり、優先順位が同じである場合、IRQ[0]が IRQ[1]の前に処理されます。

プロセッサが例外ハンドラを実行している場合、優先順位の高い例外が発生すると、例外ハンドラがプリエンプトされます。 処理中の例外と優先順位が同じ例外が発生した場合、ハンドラは例外番号にかかわりなくプリエンプトされます。 ただし、新しい割り込みのステータスは保留中になります。

21.3.3.6 例外のエントリとリターン例外処理の説明では、次の用語を使用します。

プリエンプションン—プロセッサが例外ハンドラを実行している場合、処理されている例外よりも優先順位が高ければ、例外は例外ハンドラをプリエンプトできます。

ある例外が別の例外をプリエンプトした場合、これらの例外はネスト例外と呼ばれます。詳細については、Section 21.3.3.6.1を参照してください。

リターン—リターンが起こるのは、例外ハンドラが完了し、かつ次のような場合です。

• サービス対象となる適切な優先順位の保留中の例外がない

• 完了した例外ハンドラが後着例外を処理していない

プロセッサはスタックをポップし、プロセッサの状態を割り込みが発生する前の状態に戻します。 詳細については、Section 21.3.3.6.2を参照してください。

テールチェイン—このメカニズムは、例外サービスを高速化します。 例外ハンドラの終了後、例外エントリの要件に適合する保留中の例外があれば、スタックのポップはスキップされ、制御は新しい例外ハンドラに転送されます。

後着—このメカニズムは、プリエンプションを高速化します。 先行する例外の状態保存を行っている間に、優先順位の高い例外が発生した場合、プロセッサは高い優先順位の例外の処理に切り替え、その例外のベクタフェッチを開始します。 保存される状態は両方の例外で同じであるため、状態保存は後着による影響は受けません。 後着例外の例外ハンドラからリターンするときに、通常のテールチェインのルールが適用されます。

21.3.3.6.1 例外のエントリ例外のエントリは、優先順位の適切な保留中の例外が存在し、かつ次のいずれかの状態である場合に起こります。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 341

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• プロセッサがスレッドモードである。

• 新しい例外の優先順位が処理中の例外よりも高い。この場合、新しい例外により処理中の例外がプリエンプトされます。

ある例外が別の例外をプリエンプトした場合、これらの例外はネスト化されています。

適切な優先順位とは、例外の優先順位がマスクレジスタで設定される制限よりも高いことを意味します。Section 21.3.1.3.6を参照してください。 この制限よりも優先順位が低い例外は、保留中になりますが、プロセッサにより処理されません。

プロセッサが例外を処理する場合、その例外がテールチェイン例外または後着例外である場合を除き、プロセッサは現在のスタックに情報をプッシュします。 この動作はスタッキングと呼ばれ、8データワードの構造はスタックフレームと呼ばれます。 スタックフレームには、次の情報が格納されます。

スタッキングの直後、スタックポインタはスタックフレームの最下位アドレスを示します。 スタックフレームは、ダブルワードアドレスにアライメントされます。

スタックフレームには、リターンアドレスが含まれます。 これは割り込みされるプログラムの次の命令のアドレスです。 この値は、割り込まれたプログラムが再開できるように、例外リターン時に PCに復元されます。

プロセッサは、例外ハンドラの開始アドレスをベクタテーブルから読み取るベクタフェッチを実行します。 スタッキングが完了すると、プロセッサは例外ハンドラの実行を開始します。 同時に、プロセッサは EXC_RETURN値を LRに書き込みます。 この値により、スタックフレームに対応するスタックポインタが示され、またエントリが起こる前のプロセッサの動作モードが示されます。

例外のエントリの間に、優先順位の高い例外が発生しなければ、プロセッサは例外ハンドラの実行を開始し、対応する保留中の割り込みのステータスを自動的にアクティブに変更します。

例外のエントリの間に、優先順位の高い別の例外が発生した場合、プロセッサはこの例外の例外ハンドラの実行を開始し、先行する例外の保留中のステータスを変更しません。 これは後着のケースです。

Fig 68. Exception entry stack contents

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 342

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.3.3.6.2 例外リターン例外リターンは、プロセッサがハンドラモードの状態で、次の命令のいずれかの実行により PCへの EXC_RETURN値の設定が試みられた場合に起こります。

• PCをロードする POP 命令

• レジスタを使用する BX 命令

プロセッサは、例外のエントリの際に、EXC_RETURN 値を LR に保存します。 実行のメカニズムはこの値に基づいて、プロセッサがいつ例外ハンドラを完了したかを検出します。EXC_RETURN 値のビット [31:4] は、0xFFFFFFF です。 プロセッサがこのパターンを PC にマッチングする値をロードすると、プロセッサはこの動作が通常の分岐処理ではなく、例外が完了したことを検出します。 したがって、プロセッサは例外リターンシーケンスを開始します。 EXC_RETURN値のビット [3:0]は、Table 297に示すように、要求されるリターンスタックとプロセッサモードを示します。

21.3.4 障害処理障害は例外のサブセットです。Section 21.3.3を参照してください。 障害により HardFault例外が取り上げられます。また NMI または HardFault ハンドラで起こる場合は、ロックアップが生じます。 障害は次のような内容です。

• SVCallに等しいまたは高い優先順位での SVC 命令の実行

• デバッガをアタッチしない状態での BKPT 命令の実行

• ロードまたはストア時のシステム生成のバスエラー

• XNメモリアドレスからの命令の実行

• システムでバス障害が生成される場所からの命令の実行

• ベクタフェッチ時のシステム生成のバスエラー

• 未定義の命令の実行

Table 297. Exception return behavior

EXC_RETURN Description

0xFFFFFFF1 ハンドラモードに戻ります。例外リターンはメインスタックから状態を取得します。実行はリターン後に MSPを使用します。

0xFFFFFFF9 スレッドモードに戻ります。例外リターンは MSPから状態を取得します。実行はリターン後に MSPを使用します。

0xFFFFFFFD スレッドモードに戻ります。例外リターンは PSPから状態を取得します。実行はリターン後に PSPを使用します。

All other values 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 343

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• それまでに Tビットが 0にクリアされた結果としての、Thum状態ではない場合の命令の実行

• アライメント前のアドレスへのロードまたはストアの試み

注意 : リセットと NMI のみ、優先順位が固定された HardFault ハンドラをプリエンプトできます。 HardFault は、リセット、NMI、または別のハード障害以外の例外をプリエンプトできます。

21.3.4.1 ロックアップCortex-M0プロセッサは、NMIまたは HardFaultハンドラの実行時に障害が発生する場合、または例外リターン時にMSPを使用して PSRをアンスタッキングする際に、システムでバスエラーが生成される場合に、ロックアップ状態に移行します。 プロセッサがロックアップ状態になると、命令を実行できません。 次のいずれかが起こるまで、プロセッサのロックアップ状態が続きます。

• リセットされる。

• デバッガにより中断される。

• NMIが発生し、続行中のロックアップが HardFaultハンドラの対象になる。

注意 : ロックアップ状態が NMIハンドラで起こる場合、プロセッサのロックアップ状態は後続の NMIによっても終了しません。

21.3.5 パワーマネージメントCortex-M0プロセッサは、スリープモードで電力消費量が低減します。

• スリープモードで、プロセッサのクロックが停止

• ディープスリープモード(Section 3.7.3を参照)

どのスリープモードが使用されるかは、SCR の SLEEPDEEP ビットにより選択されます。Section 21.5.3.5を参照してください。

このセクションでは、スリープモードに移行するメカニズムと、スリープモードからウェイクアップするための条件について説明します。

21.3.5.1 スリープモードへの移行このセクションでは、プロセッサをスリープモードに移行させるために使用されるメカニズムについて説明します。

デバッグ動作によるプロセッサのウェイクアップなど、疑似ウェイクアップイベントがシステムで生成されます。 このようなイベントの後、プロセッサをスリープモードに戻すことができなければなりません。 プロセッサをスリープモードに戻す場合、プログラムのアイドルループが使用できます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 344

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.3.5.1.1 割り込みの待機Wait For Interrupt(割り込み待機)命令 WFI は、スリープモードへの即時移行に使用します。 プロセッサが WFI 命令を実行すると、命令の実行を停止し、スリープモードに移行します。 詳細については、Section 21.4.7.12を参照してください。

21.3.5.1.2 イベント待機注意 : WFE命令は、LPC111x/LPC11C1xに実装されていません。

Wait For Event(イベント待機)命令 WFE は、1ビットイベントレジスタの値の条件によりスリープモードに移行します。 プロセッサが WFE 命令を実行する場合、イベントレジスタの値をチェックします。

0 —プロセッサは命令の実行を停止し、スリープモードに移行します。

1 —プロセッサはレジスタをゼロに設定し、スリープモードに移行せずに命令の実行を続けます。

詳細については、Section 21.4.7.11を参照してください。

イベントレジスタが 1の場合、WFE 命令の実行時にプロセッサがスリープモードに移行できないことを示します。 通常、外部イベントのアサートが原因か、システムの別のプロセッサが SEV 命令を実行していることが原因です。Section 21.4.7.9を参照してください。ソフトウェアからこのレジスタに直接アクセスすることはできません。

21.3.5.1.3 Sleep-on-exit

SCRの SLEEPONEXITビットが 1に設定されている場合、プロセッサが例外ハンドラの実行を完了し、スレッドモードに戻った後すぐにスリープモードに移行します。 このメカニズムは、割り込みが起こった場合にのみプロセッサの稼働が要求されるアプリケーションで使用します。

21.3.5.2 スリープモードからのウェイクアッププロセッサのウェイクアップ条件は、スリープモードへの移行の起動したメカニズムにより異なります。

21.3.5.2.1 WFIまたは sleep-on-exitからのウェイクアップ通常、プロセッサは、例外エントリが起こる適切な優先順位の例外を検出した場合にのみウェイクアップします。

一部の組み込みシステムは、プロセッサのウェイクアップの後、割り込みハンドラを実行する前にシステムのリストアタスクを実行する必要があります。 この場合、PRIMASKビットを 1に設定します。 イネーブルな割り込みが到着し、現在の例外の優先順位よりも高い場合、プロセッサはウェイクアップしますが、PRIMASK をゼロに設定するまで割り込みハンドラを実行しません。 PRIMASKの詳細については、Section 21.3.1.3.6を参照してください。

21.3.5.2.2 WFEからのウェイクアッププロセッサは次の場合にウェイクアップします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 345

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• 例外エントリが起こる適切な優先順位の例外を検出する

• マルチプロセッサシステムの場合、システムの別のプロセッサが SEV 命令を実行する

また、SCRの SEVONPENDビットが 1に設定されている場合、割り込みがディスエーブルな場合でも、また割り込みの優先順位が例外エントリを起こす十分な値である場合でも、保留中の新しい割り込みによりイベントがトリガされ、プロセッサがウェイクアップします。 SCRの詳細については、Section 21.5.3.5を参照してください。

21.3.5.3 パワーマネージメントプログラミング上のヒントISO/IEC Cでは、直接 WFI、WFE、SEV の各命令を生成できません。これらの命令について、CMSIS は次のような固有の関数を備えています。

void __WFE(void) // Wait for Event

void __WFI(void) // Wait for Interrupt

void __SEV(void) // Send Event

21.4 命令セット

21.4.1 命令セットの概要プロセッサは、特定のバージョンの Thumb 命令セットを実装します。 Table 298 に、サポートされる命令を一覧表示しています。

注意 : Table 298では、次の表記規則に従っています。

• 角括弧、<>で代替形式のオペランドを囲む

• 中括弧 {}で、オプションオペランドとニーモニック部分を囲む

• オペランドカラムは含まれない

命令とオペランドの詳細については、命令の説明を参照してください。

Table 298. Cortex-M0 instructions

Mnemonic Operands Brief description Flags Reference

ADCS {Rd,} Rn, Rm キャリー付き加算 N,Z,C,V Section 21.4.5.1

ADD{S} {Rd,} Rn, <Rm|#imm> 加算 N,Z,C,V Section 21.4.5.1

ADR Rd, label レジスタへの PC相対アドレス - Section 21.4.4.1

ANDS {Rd,} Rn, Rm ビット AND N,Z Section 21.4.5.1

ASRS {Rd,} Rm, <Rs|#imm> 算術右シフト N,Z,C Section 21.4.5.3

B{cc} label 分岐 {条件付き } - Section 21.4.6.1

BICS {Rd,} Rn, Rm ビットクリア N,Z Section 21.4.5.2

BKPT #imm ブレークポイント - Section 21.4.7.1

BL label リンク付き分岐 - Section 21.4.6.1

BLX Rm リンク付き間接分岐 - Section 21.4.6.1

BX Rm 間接分岐 - Section 21.4.6.1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 346

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

CMN Rn, Rm 否定比較 N,Z,C,V Section 21.4.5.4

CMP Rn, <Rm|#imm> 比較 N,Z,C,V Section 21.4.5.4

CPSID i プロセッサ状態変更、割り込みディスエーブル

- Section 21.4.7.2

CPSIE i プロセッサ状態変更、割り込みイネーブル

- Section 21.4.7.2

DMB - データメモリバリア - Section 21.4.7.3

DSB - データ同期バリア - Section 21.4.7.4

EORS {Rd,} Rn, Rm 排他的 OR N,Z Section 21.4.5.2

ISB - 命令同期バリア - Section 21.4.7.5

LDM Rn{!}, reglist 複数レジスタロード、直後にインクリメント

- Section 21.4.4.5

LDR Rt, label PC相対アドレスからレジスタロード - Section 21.4.4

LDR Rt, [Rn, <Rm|#imm>] レジスタロード、ワード - Section 21.4.4

LDRB Rt, [Rn, <Rm|#imm>] レジスタロード、バイト - Section 21.4.4

LDRH Rt, [Rn, <Rm|#imm>] レジスタロード、ハーフワード - Section 21.4.4

LDRSB Rt, [Rn, <Rm|#imm>] レジスタロード、符号付きバイト - Section 21.4.4

LDRSH Rt, [Rn, <Rm|#imm>] レジスタロード、符号付きハーフワード

- Section 21.4.4

LSLS {Rd,} Rn, <Rs|#imm> 論理左シフト N,Z,C Section 21.4.5.3

U {Rd,} Rn, <Rs|#imm> 論理右シフト N,Z,C Section 21.4.5.3

MOV{S} Rd, Rm Move N,Z Section 21.4.5.5

MRS Rd, spec_reg 特殊レジスタから汎用レジスタへ移動 - Section 21.4.7.6

MSR spec_reg, Rm 汎用レジスタから特殊レジスタへ移動 N,Z,C,V Section 21.4.7.7

MULS Rd, Rn, Rm 乗算、32ビット結果 N,Z Section 21.4.5.6

MVNS Rd, Rm ビット NOT N,Z Section 21.4.5.5

NOP - 演算なし - Section 21.4.7.8

ORRS {Rd,} Rn, Rm 論理 OR N,Z Section 21.4.5.2

POP reglist スタックからレジスタをポップ - Section 21.4.4.6

PUSH reglist スタックへレジスタをプッシュ - Section 21.4.4.6

REV Rd, Rm ワードのバイト反転 - Section 21.4.5.7

REV16 Rd, Rm パックハーフワードのバイト反転 - Section 21.4.5.7

REVSH Rd, Rm 符号付きハーフワードのバイト反転 - Section 21.4.5.7

RORS {Rd,} Rn, Rs 右ローテート N,Z,C Section 21.4.5.3

RSBS {Rd,} Rn, #0 逆減算 N,Z,C,V Section 21.4.5.1

SBCS {Rd,} Rn, Rm キャリー付き減算 N,Z,C,V Section 21.4.5.1

SEV - イベント送信 - Section 21.4.7.9

STM Rn!, reglist 複数レジスタストア、直後にインクリメント

- Section 21.4.4.5

STR Rt, [Rn, <Rm|#imm>] レジスタストア、ワード - Section 21.4.4

Table 298. Cortex-M0 instructions(続き)Mnemonic Operands Brief description Flags Reference

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 347

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.2 組み込み関数ISO/IEC C コードは、一部の Cortex-M0 命令に直接アクセスできません。 このセクションでは、このような命令を生成する、CMSISの組み込み関数と、Cコンパイラにより供給される組み込み関数について説明します。 Cコンパイラが適切な組み込み関数をサポートしない場合、インラインアセンブラを使用して当該の命令にアクセスする必要があります。

CMSISは、ISO/IECコードから直接アクセスできない命令を生成する、次の組み込み関数を提供します。

また CMSISは、MRSと MSR命令を使用して特別なレジスタにアクセスするための複数の関数も提供します。

STRB Rt, [Rn, <Rm|#imm>] レジスタストア、バイト - Section 21.4.4

STRH Rt, [Rn, <Rm|#imm>] レジスタストア、ハーフワード - Section 21.4.4

SUB{S} {Rd,} Rn, <Rm|#imm> 減算 N,Z,C,V Section 21.4.5.1

SVC #imm スーパーバイザコール - Section 21.4.7.10

SXTB Rd, Rm バイトの符号拡張 - Section 21.4.5.8

SXTH Rd, Rm ハーフワードの符号拡張 - Section 21.4.5.8

TST Rn, Rm 論理 ANDベースのテスト N,Z Section 21.4.5.9

UXTB Rd, Rm バイトのゼロ拡張 - Section 21.4.5.8

UXTH Rd, Rm ハーフワードのゼロ拡張 - Section 21.4.5.8

WFE - イベント待機 - Section 21.4.7.11

WFI - 割り込み待機 - Section 21.4.7.12

Table 298. Cortex-M0 instructions(続き)Mnemonic Operands Brief description Flags Reference

Table 299. CMSIS intrinsic functions to generate some Cortex-M0 instructions

Instruction CMSIS intrinsic function

CPSIE i void __enable_irq(void)

CPSID i void __disable_irq(void)

ISB void __ISB(void)

DSB void __DSB(void)

DMB void __DMB(void)

NOP void __NOP(void)

REV uint32_t __REV(uint32_t int value)

REV16 uint32_t __REV16(uint32_t int value)

REVSH uint32_t __REVSH(uint32_t int value)

SEV void __SEV(void)

WFE void __WFE(void)

WFI void __WFI(void)

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 348

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.3 命令の説明について命令の使用法については、次のセクションで詳細に説明しています。

• Section 21.4.3.1「オペランド」

• Section 21.4.3.2「PCまたは SPの使用時の制限」

• Section 21.4.3.3「シフト演算」

• Section 21.4.3.4「アドレスアライメント」

• Section 21.4.3.5「PC相対式」

• Section 21.4.3.6「条件付き実行」.

21.4.3.1 オペランド命令オペランドは、ARM レジスタ、定数、別の命令固有のパラメータのいずれかになります。 命令はオペランドで機能し、多くの場合、結果をデスティネーションレジスタに格納します。 命令にデスティネーションレジスタが含まれる場合、通常は他のオペランドの前に指定されます。

21.4.3.2 PCまたは SPの使用時の制限多くの命令は、オペランドまたはデスティネーションレジスタにプログラムカウンタ(PC)もスタックポインタ(SP)も使用できません。あるいは、その使用が制限されます。詳細については、命令の説明を参照してください。

注意 : BX、BLX、または POP命令で PCを更新する場合、アドレスのビット [0]が 1でなければ正しく実行されません。 これは、このビットによりデスティネーション命令セットが指示されますが、Cortex-M0プロセッサは Thumb命令しかサポートしていないためです。 BLまたは BLX命令によりビット [0]の値が LRに書き込まれる場合、自動的に値 1が割り当てられます。

Table 300. insic functions to access the special registers

Special register Access CMSIS function

PRIMASK Read uint32_t __get_PRIMASK (void)

Write void __set_PRIMASK (uint32_t value)

CONTROL Read uint32_t __get_CONTROL (void)

Write void __set_CONTROL (uint32_t value)

MSP Read uint32_t __get_MSP (void)

Write void __set_MSP (uint32_t TopOfMainStack)

PSP Read uint32_t __get_PSP (void)

Write void __set_PSP (uint32_t TopOfProcStack)

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 349

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.3.3 シフト演算レジスタのシフト演算では、指定されたビット数、すなわちシフト長だけ、レジスタのビットを左または右に移動します。 レジスタのシフトは、命令 ASR、LSR、LSL、RORにより直接実行され、結果はデスティネーションレジスタに書き込まれます。許容シフト長はシフトのタイプと命令により決定します。個々の命令の説明を参照してください。 シフト長が 0の場合、シフトが起こりません。 レジスタのシフト演算では、指定されたシフト長が 0の場合を除き、キャリーフラグが更新されます。 次の項では、さまざまなシフト演算と、各演算がキャリーフラグにどのように影響するかについて説明します。 次の説明内で、Rmはシフトされる値を含むレジスタを、nはシフト長を表します。

21.4.3.3.1 ASR

nビットの算術右シフトは、レジスタ Rmの左側 32 -nビットを n桁右に移動し、結果の右側 32 -n ビットに配置します。レジスタの元のビット [31] を、結果の左側 n ビットにコピーします。 Figure 69を参照してください。

ASR 演算は、レジスタ Rm の符号付きの値を 2nで除算し、結果を負の無限大に端数処理します。

命令が ASRS の場合、キャリーフラグはレジスタ Rm の最後にシフトアウトされたビット、ビット [n-1]に更新されます。

注意 :

• nが32以上であれば、結果のすべてのビットはRmのビット [31]の値に設定されます。

• nが 32以上で、キャリーフラグが更新される場合、キャリーフラグは Rmのビット[31]の値に更新されます。

21.4.3.3.2 LSR

nビットの論理右シフトは、レジスタ Rmの左側 32 -nビットを n桁右に移動し、結果の右側 32 -nビットに配置します。結果の左側 nビットを 0に設定します。 Figure 70を参照してください。

値が符号なし整数と見なされる場合、LSR演算を使用してレジスタ Rmの値を 2nで除算します。

命令が LSRSの場合、キャリーフラグはレジスタRmの最後にシフトアウトされたビット、ビット [n-1]に更新されます。

Fig 69. ASR #3

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 350

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

注意 :

• nが 32以上であれば、結果のすべてのビットは 0にクリアされます。

• nが 33以上で、キャリーフラグが更新される場合、キャリーフラグは 0に更新されます。

21.4.3.3.3 LSL

nビットの論理左シフトは、レジスタ Rmの右側 32 -nビットを n桁左に移動し、結果の左側 32 -nビットに配置します。結果の右側 nビットを 0に設定します。 Figure 71を参照してください。

値が符号なし整数または 2つの符号付き補数と見なされる場合、LSL演算を使用してレジスタ Rmの値を 2nで乗算します。 警告のないオーバーフローが起こる場合があります。

命令が LSLSの場合、キャリーフラグはレジスタ Rmの最後にシフトアウトされたビット、ビット [32-n]に更新されます。 上記の命令は、LSL #0で使用される場合、キャリーフラグに影響しません。

注意 :

• nが 32以上であれば、結果のすべてのビットは 0にクリアされます。

• nが 33以上で、キャリーフラグが更新される場合、キャリーフラグは 0に更新されます。

Fig 70. LSR #3

Fig 71. LSL #3

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 351

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.3.3.4 ROR

nビットの右ロテートは、レジスタ Rmの左側 32 -nビットを n桁右に移動し、結果の右側 32 -nビットに配置します。レジスタの右側の nビットを結果の左側 nビットに移動します。 Figure 72を参照してください。

命令が RORSの場合、キャリーフラグはレジスタ Rmの最後の美と回転、ビット [n-1]に更新されます。

注意 :

• nが 32の場合、結果の値は Rmの値と同じになり、キャリーフラグが更新される場合、Rmのビット [31]に更新されます。

• ROR

シフト長 nが 32より大きい場合は、同じ ROR

シフト長 n-32

21.4.3.4 アドレスアライメントアライメントされたアクセスとは、単一ワードまたは複数ワードアクセスにワードアライメントされたアドレスが使用される、またはハーフワードアクセスにハーフワードアライメントされたアドレスが使用される動作です。 バイトアクセスは常にアライメントされます。

Cortex-M0プロセッサでは、非アライメントアクセスはサポートされません。 非アライメントメモリアクセス動作を試みると、HardFault例外が発生します。

21.4.3.5 PC相対式PC 相対式またはラベルは、命令またはリテラルデータのアドレスを表すシンボルです。命令内で、PC 値マイナス / プラス数値オフセットとして表されます。 アセンブラはラベルと現在の命令のアドレスから、要求されるオフセットを計算します。 オフセットが大きすぎる場合、アセンブラはエラーを生成します。

注意 :

• ほとんどの命令では、PCの値は現在の命令のアドレス + 4バイトになります。

Fig 72. ROR #3

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 352

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• アセンブラは、ラベル +/-数値や [PC, #imm]形式の式など、他の構文の PC相対式を許容する場合があります。

21.4.3.6 条件付き実行ほとんどのデータ処理命令は、動作の結果に従って、アプリケーションプログラムステータスレジスタ(APSR)で条件フラグを更新します。Sectionを参照してください。 命令によりすべてのフラグを更新する場合もあれば、サブセットのみの更新の場合もあります。フラグが更新されない場合、元の値が維持されます。 影響を受けるフラグについては、命令の説明を参照してください。

次のいずれかの場合、別の命令で設定された条件フラグに基づいて、条件付き分岐命令を実行できます。

• フラグを更新した命令の直後

• フラグを更新していない任意の数の介在命令の後

Cortex-M0プロセッサでは、条件分岐の使用により条件付きの実行が可能になります。

このセクションでは、次の内容について説明します。

• Section 21.4.3.6.1「条件フラグ」

• Section 21.4.3.6.2「条件コードのサフィックス」.

21.4.3.6.1 条件フラグAPSRには次の条件フラグが格納されます。

N —演算の結果が負の場合、1に設定し、それ以外の場合は 0にクリアされます。

Z —演算の結果がゼロの場合、1に設定し、それ以外の場合は 0にクリアされます。

C —演算によりキャリーが起こる場合は 1に設定し、それ以外の場合は 0にクリアされます。

V —演算によりオーバーフローが発生する場合は 1に設定し、それ以外の場合は 0にクリアされます。

APSRの詳細については、Section 21.3.1.3.5を参照してください。

キャリーは次の場合に起こります。

• 加算の結果が 232に等しいか上回る場合

• 減算の結果が正またはゼロになる場合

• シフトまたはロテート命令の結果

オーバーフローは、ビット [31] の結果の符合が、次のように、無限精度で演算が実行された結果の符合と一致しない場合に起こります。

• 2つの負の値の加算の結果が正の値の場合

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 353

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• 2つの正の値の加算の結果が負の値の場合

• 負の値からの正の値の減算により正の値が生成される場合

• 正の値からの負の値の減算により負の値が生成される場合

比較演算は CMPでは減算と、CMNでは加算と同じ結果になりますが、比較演算では結果が破棄されます。 詳細については、命令の説明を参照してください。

21.4.3.6.2 条件コードのサフィックス条件分岐は、構文の説明では B{cond} のように表されます。 条件コードを含む分岐命令は、APSRの条件コードフラグが指定された条件を満たす場合にのみ処理され、それ以外の場合、分岐命令は無視されます。 Table 301に、使用する条件コードを示します。

また Table 301に、条件コードサフィックスと N、Z、C、Vの各フラグとの関係を示します。

21.4.4 メモリアクセス命令Table 302に、メモリアクセス命令を示します。

Table 301. Condition code suffixes

Suffix Flags Meaning

EQ Z = 1 等しい。最後のフラグ設定結果はゼロでした。NE Z = 0 等しくない。最後のフラグ設定結果はゼロ以外でした。CS or HS C = 1 より高いか同じ。符号なし。CC or LO C = 0 より低い。符号なしMI N = 1 負PL N = 0 正またはゼロVS V = 1 オーバーフローVC V = 0 オーバーフローなしHI C = 1 and Z = 0 より高い。符号なし。LS C = 0 or Z = 1 より低いか同じ。符号なし。GE N = V より大きいか等しい。符号付き。 LT N = V より小さい。符号付き。GT Z = 0 and N = V より大きい。符号付き。LE Z = 1 and N = V より小さいか等しい。符号付きAL Can have any value 常時。 これはサフィックスが指定されていない場合のデ

フォルト値です。

Table 302. Access instructions

Mnemonic Brief description See

LDR{type} レジスタオフセットを使用したレジスタロード Section 21.4.4.3

LDR PC相対アドレスからレジスタロード Section 21.4.4.4

POP スタックからレジスタをポップ Section 21.4.4.6

PUSH スタックへレジスタをプッシュ Section 21.4.4.6

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 354

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.4.1 ADR

PC相対アドレスを生成します。

21.4.4.1.1 構文ADR Rd, label

上記の構文の説明 :

Rd はデスティネーションレジスタです。

labelは PC相対式です。 Section 21.4.3.5を参照してください。

21.4.4.1.2 演算ADRは PCにイミディエート値を付加してアドレスを生成し、結果をデスティネーションレジスタに書き込みます。

アドレスは PC相対であるため、ADRにより位置独立コードが効率的に生成されます。

ADRを使用して BXまたは BLX命令のターゲットアドレスを生成する場合、生成するアドレスのビット [0]が、正しい実行に必要な 1に設定されていることを確認する必要があります。

21.4.4.1.3 制限この命令では、Rdによる R0~ R7の指定が要求されます。アドレス指定されるデータ値はワードアライメントが要求され、現在の PCの 1020バイト内でなければなりません。

21.4.4.1.4 条件フラグこの命令はフラグを変更しません。

21.4.4.1.5 例

ADR R1, TextMessage ; Write address value of a location labelled as; TextMessage to R1

ADR R3, [PC,#996] ; Set R3 to value of PC + 996.

21.4.4.2 LDRと STR、イミディエートオフセットイミディエートオフセットによるロードとストア

21.4.4.2.1 構文LDR Rt, [<Rn | SP> {, #imm}]

LDR<B|H> Rt, [Rn {, #imm}]

STM 複数レジスタストア Section 21.4.4.5

STR{type} イミディエートオフセットを使用したレジスタストア Section 21.4.4.2

STR{type} レジスタオフセットを使用したレジスタストア Section 21.4.4.3

Table 302. Access instructions(続き)Mnemonic Brief description See

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 355

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

STR Rt, [<Rn | SP>, {,#imm}]

STR<B|H> Rt, [Rn {,#imm}]

上記の構文の説明 :

Rtはロードまたはストアするレジスタです。

Rnはメモリアドレスの基準となるレジスタです。

immは Rnからのオフセットです。 immを省略した場合、ゼロと仮定されます。

21.4.4.2.2 演算LDR、LDRB、LDRH の各命令は Rt で指定されるレジスタに、メモリからのワード、バイト、ハーフワードのいずれかのデータをロードします。 ワード未満のサイズは、Rt で指定されるレジスタに書き込まれる前に、32ビットにゼロ拡張されます。

STR、STRB、STRHの各命令は、Rtで指定されるシングルレジスタ内のワード、最下位バイト、下位ハーフワードのいずれかをメモリに格納します。 ロードまたはストアのためのメモリアドレスは、Rn と SP のいずれかで指定されるレジスタの値とイミディエート値immの合計です。

21.4.4.2.3 制限上記の命令で、

• Rtと Rnは R0~ R7のみ指定します。

• immの条件 :

– ベースレジスタに SPを使用する LDRと STRについては、 0~ 1020の範囲で、4の倍数の整数

– ベースレジスタに R0~ R7を使用する LDRと STRについては 0~ 124の範囲で、4の倍数の整数

– LDRHと STRHについては、0~ 62の範囲で 2の倍数の整数– LDRBと STRBについては 0~ 31の範囲

• 計算されたアドレスは、トランザクションのバイト数で割り切れなければなりません。Section 21.4.3.4を参照してください。

21.4.4.2.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.4.2.5 例

LDR R4, [R7 ; Loads R4 from the address in R7.STR R2, [R0,#const-struc] ; const-struc is an expression evaluating

; to a constant in the range 0-1020.

21.4.4.3 LDRと STR、レジスタオフセットレジスタオフセットによるロードとストア。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 356

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.4.3.1 構文LDR Rt, [Rn, Rm]

LDR<B|H> Rt, [Rn, Rm]

LDR<SB|SH> Rt, [Rn, Rm]

STR Rt, [Rn, Rm]

STR<B|H> Rt, [Rn, Rm]

上記の構文の説明 :

Rtはロードまたはストアするレジスタです。

Rnはメモリアドレスの基準となるレジスタです。

Rmはオフセットとして使用される値を含むレジスタです。

21.4.4.3.2 演算LDR、LDRB、U、LDRSB、LDRSHは Rtで指定されるレジスタに、ワード、ゼロ拡張バイト、ゼロ拡張ハーフワード、符号拡張バイト、符号拡張ハーフワードのいずれかの値をメモリからロードします。

STR、STRB、STRHは、Rtで指定されるシングルレジスタ内のワード、最下位バイト、下位ハーフワードのいずれかをメモリに格納します。

ロードまたはストアのためのメモリアドレスは、Rnと Rmで指定される各レジスタの値の合計です。

21.4.4.3.3 制限上記の命令で、

• Rt、Rn、Rmは R0~ R7のみ指定します。

• 計算されたメモリアドレスは、ロードまたはストアのバイト数で割り切れなければなりません。Section 21.4.3.4を参照してください。

21.4.4.3.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.4.3.5 例

STR R0, [R5, R1] ; Store value of R0 into an address equal to; sum of R5 and R1

LDRSH R1, [R2, R3] ; Load a halfword from the memory address; specified by (R2 + R3), sign extend to 32-bits

; and write to R1.

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 357

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.4.4 LDR、PC相対レジスタ(リテラル)をメモリからロードします。

21.4.4.4.1 構文LDR Rt, label

上記の構文の説明 :

Rtはロードするレジスタです。

labelは PC相対式です。 Section 21.4.3.5を参照してください。

21.4.4.4.2 演算Rtで指定されるレジスタを、labelで指定されるメモリ内のワードからロードします。

21.4.4.4.3 制限上記の命令では、label は現在の PC の 120 バイト内で、ワードアライメントされている必要があります。

21.4.4.4.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.4.4.5 例

LDR R0, LookUpTable ; Load R0 with a word of data from an address; labelled as LookUpTable.

LDR R3, [PC, #100] ; Load R3 with memory word at (PC + 100).

21.4.4.5 LDMと STM

複数レジスタのロードとストア。

21.4.4.5.1 構文LDM Rn{!}, reglist

STM Rn!, reglist

上記の構文の説明 :

Rnはメモリアドレスの基準となるレジスタです。

! ライトバックサフィックス。

reglist は、ロードまたはストアされる 1 つまたは複数のレジスタのリストで、中括弧で囲まれます。 レジスタの範囲を格納できます。 複数のレジスタまたはレジスタ範囲を格納する場合は、コンマで区切ります。Section 21.4.4.5.5を参照してください。

LDMIA と LDMFD は、LDM の同義語です。 LDMIA は、各アクセス後にインクリメントされるベースレジスタを表します。 LDMFD は、フル下降スタックからデータをポップする用途を表します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 358

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

STMIAと STMEAは STMの同義語です。 STMIAは、各アクセス後にインクリメントされるベースレジスタを表します。 STMEA は空の昇順スタックにデータをプッシュする用途を表します。

21.4.4.5.2 演算LDM命令は reglistのレジスタに、Rnをベースとしたメモリアクセスのワード値をロードします。

STM 命令は、reglist のレジスタのワード値を Rn を基準としたメモリアドレスに格納します。

アクセスに使用するメモリアドレスは、Rnで指定されるレジスタの値から Rn + 4 * (n-1)で指定されるレジスタの値までの範囲の 4バイト間隔です。ここで nは reglistのレジスタの数です。 アクセスはレジスタの番号の昇順に実行され、最下位の番号のレジスタが最も低いのメモリアドレスを使用し、最上位の番号のレジスタは最も高いメモリアドレスを使用します。 ライトバックサフィックスが指定される場合、Rn + 4 *n で指定されるレジスタの値は、Rnで指定されるレジスタにライトバックされます。

21.4.4.5.3 制限上記の命令で、

• reglistと Rnは R0~ R7に制限されます。

• ライトバックサフィックスは必ず使用する必要がありますが、reglistにも Rnが格納される LDM が命令の場合を除きます。この場合、ライトバックサフィックスを使用できません。

• Rnで指定されるレジスタの値は、ワードアライメントが必要です。 詳細については、Section 21.4.3.4を参照してください。

• STM については、Rn が reglist に含まれている場合、リストの先頭レジスタでなければなりません。

21.4.4.5.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.4.5.5 例

LDM R0,{R0,R3,R4} ; LDMIA is a synonym for LDMSTMIA R1!,{R2-R4,R6}

21.4.4.5.6 間違った例

STM R5!,{R4,R5,R6} ; Value stored for R5 is unpredictable LDM R2,{} ; There must be at least one register in the list

21.4.4.6 PUSHと POP

レジスタをフル下降スタックにプッシュし、レジスタをポップします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 359

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.4.6.1 構文PUSH reglist

POP reglist

上記の構文の説明 :

reglistは、レジスタのノンエンプティリストで、中括弧で囲まれます。 レジスタの範囲を格納できます。 複数のレジスタまたはレジスタ範囲を格納する場合は、コンマで区切ります。

21.4.4.6.2 演算PUSHはスタックにレジスタを格納しますが、最も低い番号のレジスタが最下位メモリアドレスを使用し、最も高い番号のレジスタが最上位メモリアドレスを使用します。

POP はスタックからレジスタをロードしますが、最も低い番号のレジスタが最下位メモリアドレスを使用し、最も高い番号のレジスタが最上位メモリアドレスを使用します。

PUSHは SPレジスタの値から 4を引いた結果を、最上位メモリアドレスに使用します。

POPは最下位メモリアドレスとして SPレジスタの値を使用し、フル下降スタックを実装します。 完了時に、

PUSHは、最下位ストア値の場所を示すように、SPレジスタを更新します。

POPは、ロードされる最上位の場所より上の場所を示すように、SPレジスタを更新します。

POP命令の reglistに PCが含まれている場合、この場所への分岐は POP命令の完了時に実行されます。 PC に読み取られる値のビット [0] は、APSR T ビットの更新に使用されます。 このビットは 1に設定しなければ、正しく動作しません。

21.4.4.6.3 制限上記の命令で、

• reglistは R0~ R7のみを使用する必要があります。

• 例外は PUSHでは LR、POPでは PCになります。

21.4.4.6.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.4.6.5 例

PUSH {R0,R4-R7} ; Push R0,R4,R5,R6,R7 onto the stackPUSH {R2,LR} ; Push R2 and the link-register onto the stackPOP {R0,R6,PC} ; Pop r0,r6 and PC from the stack, then branch to

; the new PC.

21.4.5 一般的なデータ処理命令Table 303に、データ処理命令を示します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 360

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.5.1 ADC、ADD、RSB、SBC、SUB

キャリー付き加算、加算、逆減算、キャリー付き減算、減算。

21.4.5.1.1 構文ADCS {Rd,} Rn, Rm

ADD{S} {Rd,} Rn, <Rm|#imm>

RSBS {Rd,} Rn, Rm, #0

SBCS {Rd,} Rn, Rm

SUB{S} {Rd,} Rn,

<Rm|#imm>

Table 303. Data processing instructions

Mnemonic Brief description See

ADCS キャリー付き加算 Section 21.4.5.1

ADD{S} Add Section 21.4.5.1

ANDS 論理 AND Section 21.4.5.2

ASRS 算術右シフト Section 21.4.5.3

BICS ビットクリア Section 21.4.5.2

CMN 否定比較 Section 21.4.5.4

CMP 比較 Section 21.4.5.4

EORS 排他的 OR Section 21.4.5.2

LSLS 論理左シフト Section 21.4.5.3

LSRS 論理右シフト Section 21.4.5.3

MOV{S} 移動 Section 21.4.5.5

MULS 乗算 Section 21.4.5.6

MVNS Move NOT(補数移動) Section 21.4.5.5

ORRS 論理 OR Section 21.4.5.2

REV ワード内のバイト順序の反転 Section 21.4.5.7

REV16 各ハーフワード内のバイト順序の反転

Section 21.4.5.7

REVSH 下位ハーフワードのバイト順序の反転と符号拡張

Section 21.4.5.7

RORS 右ローテート Section 21.4.5.3

RSBS 逆減算 Section 21.4.5.1

SBCS キャリー付き減算 Section 21.4.5.1

SUBS 減算 Section 21.4.5.1

SXTB バイトの符号拡張 Section 21.4.5.8

SXTH ハーフワードの符号拡張 Section 21.4.5.8

UXTB バイトのゼロ拡張 Section 21.4.5.8

UXTH ハーフワードのゼロ拡張 Section 21.4.5.8

TST テスト Section 21.4.5.9

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 361

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

上記の構文の説明 :

Sは ADDまたは SUB命令によるフラグ更新を起動させます。

Rd は結果レジスタを指定します。

Rnは、最初のソースレジスタを指定します。

Rmは、2番目のソースレジスタを指定します。

immは、定数イミーディエイト値を指定します。

オプションの Rdレジスタ指示子が省略された場合、Rnと同じ値を取るように推測されます。たとえば、ADDS R1、R2は ADDS R1、R1、R2と同等に扱われます。

21.4.5.1.2 演算ADCS命令は、Rnの値を Rmの値に付加し、キャリーフラグが設定されている場合はさらに 1が付加されます。また Rdで指定されたレジスタに結果を配置し、N、Z、C、Vの各フラグを更新します。

ADD 命令は、Rn の値を Rm の値または imm で指定されるイミディエート値に付加し、結果を Rdで指定されるレジスタに配置します。

ADDS命令は、ADDと同じ演算を実行し、N、Z、C、Vの各フラグも更新します。

RSBS命令は、Rnの値をゼロから減算し、算術的な負の値を生成し、結果を Rdで指定されるレジスタに配置して、N、Z、C、Vの各フラグを更新します。

SBCS命令は、Rmの値を Rnの値から減算し、キャリーフラグが設定されている場合は、さらに 1 を減算します。 この命令は、結果を Rd で指定されるレジスタに配置し、N、Z、C、Vの各フラグを更新します。

SUB命令は、Rmの値または immで指定されるイミディエート値を減算します。 この後、Rdで指定されるレジスタに結果を配置します。

SUBS命令は、SUBと同じ演算を実行し、N、Z、C、Vの各フラグも更新します。

ADC と SBC は、マルチワード算術を同期する場合に使用します。Section 21.4.5.1.4 を参照してください。

Section 21.4.4.1も参照してください。

21.4.5.1.3 制限Table 304 に、レジスタ指示子の正規の組み合わせと、各命令で使用できるイミディエート値を一覧にしています。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 362

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.5.1.4 例次に示す 2つの命令は、R0と R1内の 64ビット整数を R2と R3内の別の 64ビット整数に付加し、結果を R0と R1に配置しています。

64ビットの加算 :

ADDS R0, R0, R2 ; add the least significant wordsADCS R1, R1, R3 ; add the most significant words with carry

マルチワード値では、連続するレジスタを使用する必要はありません。 次に示す命令は、R1、R2、R3内の 96ビット整数を R4、R5、R6内の別の 96ビット整数から減算しています。 この例では、結果を R4、R5、R6に格納しています。

96ビット減算 :

SUBS R4, R4, R1 ; subtract the least significant wordsSBCS R5, R5, R2 ; subtract the middle words with carrySBCS R6, R6, R3 ; subtract the most significant words with carry

次に、単一レジスタの 1の補数演算を実行する場合に使用される、RSBS命令を示します。

符号反転 : RSBS R7, R7, #0 ; subtract R7 from zero

21.4.5.2 AND、ORR、EOR、BIC

論理 AND、論理 OR、排他的 OR、ビットクリア。

21.4.5.2.1 構文ANDS {Rd,} Rn, Rm

ORRS {Rd,} Rn, Rm

EORS {Rd,} Rn, Rm

Table 304. ADC, ADD, RSB, SBC and SUB operand restrictions

Instruction Rd Rn Rm imm Restrictions

ADCS R0-R7 R0-R7 R0-R7 - Rdと Rnで同じレジスタを指定する必要があります。ADD R0-R15 R0-R15 R0-PC - Rdと Rnで同じレジスタを指定する必要があります。

Rnと Rmには PCを指定できません。R0-R7 SP or PC - 0-1020 イミディエート値は 4の倍数にする必要があります。SP SP - 0-508 イミディエート値は 4の倍数にする必要があります。

ADDS R0-R7 R0-R7 - 0-7 -

R0-R7 R0-R7 - 0-255 Rdと Rnで同じレジスタを指定する必要があります。R0-R7 R0-R7 R0-R7 - -

RSBS R0-R7 R0-R7 - - -

SBCS R0-R7 R0-R7 R0-R7 - Rdと Rnで同じレジスタを指定する必要があります。SUB SP SP - 0-508 イミディエート値は 4の倍数にする必要があります。SUBS R0-R7 R0-R7 - 0-7 -

R0-R7 R0-R7 - 0-255 Rdと Rnで同じレジスタを指定する必要があります。R0-R7 R0-R7 R0-R7 - -

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 363

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

BICS {Rd,} Rn, Rm

上記の構文の説明 :

Rd はデスティネーションレジスタです。

Rn は、最初のオペランドを保持するレジスタ。デスティネーションレジスタと同じです。

Rmは、セカンドレジスタ。

21.4.5.2.2 演算AND、EOR、ORRの各命令は、Rnと Rmの値に対してビット論理 AND、排他的 OR、包含的 ORの各演算を実行します。

BIC命令は、Rnのビットに対して AND演算を実行し、Rmの値の対応するビットを論理的に否定します。

演算の結果について、条件コードフラグが更新されます。Section 21.4.3.6.1を参照してください。

21.4.5.2.3 制限上記の命令で、Rd、Rn、Rmは R0~ R7のみ指定します。

21.4.5.2.4 条件フラグ上記の命令は

• 結果に従って、Nと Zのフラグを更新します。

• Cフラグと Vフラグには影響しません。

21.4.5.2.5 例

ANDS R2, R2, R1ORRS R2, R2, R5ANDS R5, R5, R8EORS R7, R7, R6BICS R0, R0, R1

21.4.5.3 ASR、LSL、LSR、ROR

算術右シフト、論理左シフト、論理右シフト、右ロテート。

21.4.5.3.1 構文ASRS {Rd,} Rm, Rs

ASRS {Rd,} Rm, #imm

LSLS {Rd,} Rm, Rs

LSLS {Rd,} Rm, #imm

LSRS {Rd,} Rm, Rs

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 364

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

LSRS {Rd,} Rm, #imm

RORS {Rd,} Rm, Rs

上記の構文の説明 :

Rd はデスティネーションレジスタです。 Rdが省略された場合、Rmと同じ値を取ると推測されます。

Rmは、シフトされる値を保持したレジスタです。

Rsは、Rmの値に適用されるシフト長を保持するレジスタです。

immはシフト長です。

シフト長の範囲は、命令により異なります。

ASR — 1~ 32のシフト長

LSL — 0~ 31のシフト長

LSR — 1~ 32のシフト長

注意 : MOVS Rd, Rmは、LSLS Rd, Rm, #0のシュードニムです。

21.4.5.3.2 演算ASR、LSL、LSR、RORはレジスタ Rmのビットに対して、イミディエート immで指定される桁数、または Rsで指定されるレジスタの最下位バイトの値の算術左シフト、論理左シフト、論理右シフト、右ロテートのいずれかを実行します。

各命令で生成される結果の内容の詳細については、Section 21.4.3.3を参照してください。

21.4.5.3.3 制限上記の命令で、Rd、Rm、Rsは R0~ R7のみ指定します。 非イミディエート命令については、Rdと Rmに同じレジスタの指定が要求されます。

21.4.5.3.4 条件フラグ上記の命令は、結果に従って、Nと Zのフラグを更新します。

C フラグは、シフト長が 0 の場合を除き、最後にシフトされたビットに更新されます。Section 21.4.3.3を参照してください。 Vフラグは変更されません。

21.4.5.3.5 例

ASRS R7, R5, #9 ; Arithmetic shift right by 9 bitsLSLS R1, R2, #3 ; Logical shift left by 3 bits with flag updateLSRS R4, R5, #6 ; Logical shift right by 6 bitsRORS R4, R4, R6 ; Rotate right by the value in the bottom byte of R6.

21.4.5.4 CMPと CMN

比較と否定比較。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 365

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.5.4.1 構文CMN Rn, Rm

CMP Rn, #imm

CMP Rn, Rm

上記の構文の説明 :

Rnは最初のオペランドを保持するレジスタです。

Rmは、比較対象のレジスタです。

immは、比較対象のイミディエート値です。

21.4.5.4.2 演算上記の命令は、レジスタの値を別のレジスタの値またはイミディエート値と比較します。結果に従って条件フラグを更新しますが、結果をレジスタに書き込みません。

CMP命令は、Rmで指定されるレジスタの値かイミディエート immを Rnの値から減算し、フラグを更新します。 これは SUBS命令と同じ演算ですが、結果は破棄されます。

CMN命令は、Rmの値を Rnの値に加算し、フラグを更新します。 これは ADDS命令と同じ演算ですが、結果は破棄されます。

21.4.5.4.3 制限次の制限があります。

• CMN命令

Rtと Rnは R0~ R7のみ指定します。

• CMP命令

– Rnと Rmは R0~ R14を指定できます。– イミディエートの範囲は 0~ 255とします。

21.4.5.4.4 条件フラグ上記の命令は、結果に従って、N、Z、C、Vの各フラグを更新します。

21.4.5.4.5 例

CMP R2, R9CMN R0, R2

21.4.5.5 MOVと MVN

Moveと Move NOT。

21.4.5.5.1 構文MOV{S} Rd, Rm

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 366

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

MOVS Rd, #imm

MVNS Rd, Rm

上記の構文の説明 :

Sはオプションサフィックスです。 Sが指定される場合、条件コードフラグは演算の結果に基づいて更新されます。Section 21.4.3.6を参照してください。

Rd はデスティネーションレジスタです。

Rmはレジスタ。

immは、0~ 255の範囲の任意の値。

21.4.5.5.2 演算MOV命令は、Rmの値を Rdにコピーします。

MOVS命令は、MOV命令と同じ演算を実行しますが、Nと Zのフラグも更新します。

MVNS命令は Rmの値を取り、値に対してビット論理 ,否定演算を実行し、結果を Rdに配置します。

21.4.5.5.3 制限上記の命令で、Rdと Rmは R0~ R7のみ指定します。

MOV命令で Rdが PCの場合 :

• 結果のビット [0]は破棄されます。

• 結果のビット [0]を強制的に 0に設定して生成されたアドレスに対して、分岐を発生させます。 Tビットは変更されません。

注意 : MOVを分岐命令として使用することは可能ですが、ソフトウェアの移植性を目的として、分岐化には BXまたは BLXのいずれかの命令を使用することを強くお勧めします。

21.4.5.5.4 条件フラグSが指定される場合の上記の命令は :

• 結果に従って、Nと Zのフラグを更新します。

• Cまたは Vフラグには影響しません。

21.4.5.5.5 例

MOVS R0, #0x000B ; Write value of 0x000B to R0, flags get updatedMOVS R1, #0x0 ; Write value of zero to R1, flags are updatedMOV R10, R12 ; Write value in R12 to R10, flags are not updatedMOVS R3, #23 ; Write value of 23 to R3MOV R8, SP ; Write value of stack pointer to R8MVNS R2, R0 ; Write inverse of R0 to the R2 and update flags

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 367

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.5.6 MULS

32ビットオペランドを使って乗算し、32ビットの結果を生成します。

21.4.5.6.1 構文MULS Rd, Rn, Rm

上記の構文の説明 :

Rd はデスティネーションレジスタです。

Rn、Rmは、乗算される値を保持するレジスタです。

21.4.5.6.2 演算MUL命令は、Rnと Rmで指定されるレジスタの値を乗算し、結果の最上位 32ビットをRd に配置します。 演算の結果について、条件コードフラグが更新されます。Section21.4.3.6を参照してください。

この命令の結果は、オペランドが符号付きか符号なしかに依存しません。

21.4.5.6.3 制限上記の命令で、

• Rd、Rn、Rmは R0~ R7のみ指定します。

• Rdは Rmに準ずるものとします。

21.4.5.6.4 条件フラグ上記の命令は

• 結果に従って、Nと Zのフラグを更新します。

• Cまたは Vフラグには影響しません。

21.4.5.6.5 例

MULS R0, R2, R0 ; Multiply with flag update, R0 = R0 x R2

21.4.5.7 REV、REV16、REVSH

予約バイト。

21.4.5.7.1 構文REV Rd, Rn

REV16 Rd, Rn

REVSH Rd, Rn

上記の構文の説明 :

Rd はデスティネーションレジスタです。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 368

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

Rnはソースレジスタです。

21.4.5.7.2 演算これらの命令は、データのエンディアンを変更する場合に使用します。

REV — 32ビットビッグエンディアンをリトルエンディアンに、または 32ビットリトルエンディアンをビッグエンディアンのデータに変換します。

REV16 — 2 つのパックされた 16 ビットビッグエンディアンのデータをリトルエンディアンのデータに、または 2 つのパックされた 16 ビットリトルエンディアンのデータをビッグエンディアンのデータに変換します。

REVSH — 16ビット符号付きビッグエンディアンのデータを32ビット符号付きリトルエンディアンのデータに、または 16ビット符号付きリトルエンディアンのデータを 32ビット符号付きビッグエンディアンのデータに変換します。

21.4.5.7.3 制限上記の命令で、Rdと Rnは R0~ R7のみ指定します。

21.4.5.7.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.5.7.5 例

REV R3, R7 ; Reverse byte order of value in R7 and write it to R3REV16 R0, R0 ; Reverse byte order of each 16-bit halfword in R0REVSH R0, R5 ; Reverse signed halfword

21.4.5.8 SXTと UXT

符号拡張とゼロ拡張。

21.4.5.8.1 構文SXTB Rd, Rm

SXTH Rd, Rm

UXTB Rd, Rm

UXTH Rd, Rm

上記の構文の説明 :

Rd はデスティネーションレジスタです。

Rmは、拡張される値を保持したレジスタです。

21.4.5.8.2 演算これらの命令は、最終的な値からビットを抽出します。

• SXTBはビット [7:0]を抽出して、32ビットに符号拡張します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 369

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• UXTBはビット [7:0]を抽出して、32ビットにゼロ拡張します。

• SXTHはビット [15:0]を抽出して、32ビットに符号拡張します。

• UXTHはビット [15:0]を抽出して、32ビットにゼロ拡張します。

21.4.5.8.3 制限上記の命令で、Rdと Rmは R0~ R7のみ指定します。

21.4.5.8.4 条件フラグ上記の命令はフラグに影響しません。

21.4.5.8.5 例

SXTH R4, R6 ; Obtain the lower halfword of the; value in R6 and then sign extend to; 32 bits and write the result to R4.

UXTB R3, R1 ; Extract lowest byte of the value in R10 and zero; extend it, and write the result to R3

21.4.5.9 TST

テストビット。

21.4.5.9.1 構文TST Rn, Rm

上記の構文の説明 :

Rnは最初のオペランドを保持するレジスタです。

Rmはテストの対象となるレジスタです。

21.4.5.9.2 演算この命令は、レジスタの値を別のレジスタと比較してテストします。 結果に基づいて条件フラグを更新しますが、結果をレジスタに書き込みません。

TST命令は、Rnの値と Rmの値に対してビット AND演算を実行します。 これは ANDS命令と同じですが、結果を破棄します。

Rnのビットが 0か 1かをテストするには、テストするビットが 1に設定され、他のすべてのビットが 0にクリアされたレジスタを使って TST命令を実行します。

21.4.5.9.3 制限上記の命令で、Rnと Rmは R0~ R7のみ指定します。

21.4.5.9.4 条件フラグ上記の命令は

• 結果に従って、Nと Zのフラグを更新します。

• Cまたは Vフラグには影響しません。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 370

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.5.9.5 例

TST R0, R1 ; Perform bitwise AND of R0 value and R1 value, ; condition code flags are updated but result is discarded

21.4.6 分岐と制御命令Table 305に、分岐命令と制御命令を示します。

21.4.6.1 B、BL、BX、BLX

分岐命令

21.4.6.1.1 構文B{cond} label

BL label

BX Rm

BLX Rm

上記の構文の説明 :

condはオプションの条件コードです。Section 21.4.3.6を参照してください。

labelは PC相対式です。 Section 21.4.3.5を参照してください。

Rmは、分岐先アドレスを提供するレジスタです。

21.4.6.1.2 演算これらの命令はすべて、labelで示されるアドレス、または Rmで指定されるレジスタ内のアドレスに分岐を発生させます。 また、次のことも行われます。

• BLと BLX命令は、次の命令のアドレスを LR、リンクレジスタ R14に書き込みます。

• BXと BLXの命令により、Rmのビット [0]が 0であれば、HardFault例外が発生します。

BLと BLX命令はまた、LRのビット [0]を 1に設定します。 これによって、後続の POP {PC}または BX命令がリターン分岐を成功させるために適した値になります。

Table 306に、さまざまな分岐命令の範囲を示します。

Table 305. Branch and control instructions

Mnemonic Brief description See

B{cc} 分岐 {条件付き } Section 21.4.6.1

BL リンク付き分岐 Section 21.4.6.1

BLX リンク付き間接分岐 Section 21.4.6.1

BX 間接分岐 Section 21.4.6.1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 371

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.6.1.3 制限上記の命令で、

• BXまたは BLX命令では、SPまたは PCを使用しないでください。

• BXと BLXの場合、Rmのビット [0]は 1でなければ正しく実行されません。 Bit[0]は、EPSR-Tビットの更新に使用され、ターゲットアドレスから破棄されます。

注意 : Bcondは、Cortex-M0プロセッサの唯一の条件付き命令です。

21.4.6.1.4 条件フラグ上記の命令では、フラグが変更されません。

21.4.6.1.5 例

B loopA ; Branch to loopABL funC ; Branch with link (Call) to function funC, return address

; stored in LRBX LR ; Return from function callBLX R0 ; Branch with link and exchange (Call) to a address stored

; in R0

BEQ labelD ; Conditionally branch to labelD if last flag setting

; instruction set the Z flag, else do not branch.

21.4.7 その他の命令Table 307に残りの Cortex-M0命令を示します。

Table 306. Branch ranges

Instruction Branch range

B label 2 KBから +2 KBまでBcond label 256バイトから +254バイトまでBL label 16 MBから +16 MBまでBX Rm レジスタ内の任意の値 BLX Rm レジスタ内の任意の値

Table 307. Miscellaneous instructions

Mnemonic Brief description See

BKPT ブレークポイント Section 21.4.7.1

CPSID プロセッサ状態変更、割り込みディスエーブル Section 21.4.7.2

CPSIE プロセッサ状態変更、割り込みイネーブル Section 21.4.7.2

DMB データメモリバリア Section 21.4.7.3

DSB データ同期バリア Section 21.4.7.4

ISB 命令同期バリア Section 21.4.7.5

MRS 特殊レジスタからレジスタへ移動 Section 21.4.7.6

MSR レジスタから特殊レジスタへ移動 Section 21.4.7.7

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 372

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.7.1 BKPT

ブレークポイント。

21.4.7.1.1 構文BKPT #imm

上記の構文の説明 :

immは、0~ 255の範囲の整数。

21.4.7.1.2 演算BKPT 命令は、プロセッサをデバッグ状態に移行させます。 デバッグツールはこの命令を使って、命令が特定のアドレスに達したときのシステムの状態を調査します。 imm はプロセッサにより無視されます。 必要に応じて、デバッガはこの命令を使用して、ブレークポイントに関する追加情報を格納します。

プロセッサは、BKPT命令の実行時にデバッガがアタッチされない場合に、HardFaultを生成するか、ロックアップ状態に移行します。 詳細については、Section 21.3.4.1を参照してください。

21.4.7.1.3 制限制限はありません。

21.4.7.1.4 条件フラグこの命令はフラグを変更しません。

21.4.7.1.5 例

BKPT #0 ; Breakpoint with immediate value set to 0x0.

21.4.7.2 CPS

プロセッサ状態変更。

21.4.7.2.1 構文CPSID i

CPSIE i

NOP 演算なし Section 21.4.7.8

SEV イベント送信 Section 21.4.7.9

SVC スーパーバイザコール Section 21.4.7.10

WFE イベント待機 Section 21.4.7.11

WFI 割り込み待機 Section 21.4.7.12

Table 307. Miscellaneous instructions

Mnemonic Brief description See

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 373

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.7.2.2 演算CPS は、PRIMASK 特別なレジスタ値を変更します。 CPSID は PRIMASK を設定し、割り込みがディスエーブルになります。 CPSIEは PRIMASKをクリアし、割り込みがイネーブルになります。これらのレジスタの詳細については、Section 21.3.1.3.6を参照してください。

21.4.7.2.3 制限制限はありません。

21.4.7.2.4 条件フラグこの命令は条件フラグを変更しません。

21.4.7.2.5 例

CPSID i ; Disable all interrupts except NMI (set PRIMASK)

CPSIE i ; Enable interrupts (clear PRIMASK)

21.4.7.3 DMB

データメモリバリア。

21.4.7.3.1 構文DMB

21.4.7.3.2 演算DMBはデータメモリバリアとして機能します。 プログラム順序でDMB命令の前に現れるすべての明示的なメモリアクセスが、プログラム順序で DMB命令の後に現れるすべての明示的なメモリアクセスの前に、確実に観察されるようにします。 DMB は、メモリにアクセスしない命令の順序に影響しません。

21.4.7.3.3 制限制限はありません。

21.4.7.3.4 条件フラグこの命令はフラグを変更しません。

21.4.7.3.5 例

DMB ; Data Memory Barrier

21.4.7.4 DSB

データ同期バリア。

21.4.7.4.1 構文DSB

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 374

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.7.4.2 演算DSBは、特別なデータ同期メモリバリアとして機能します。 プログラム順序で、DSBの後に現れる命令は、DSB命令が終了するまで実行されません。 DSB命令は、この命令の前のすべてのメモリアクセスが終了した後に終了します。

21.4.7.4.3 制限制限はありません。

21.4.7.4.4 条件フラグこの命令はフラグを変更しません。

21.4.7.4.5 例

DSB ; Data Synchronisation Barrier

21.4.7.5 ISB

命令同期バリア。

21.4.7.5.1 構文ISB

21.4.7.5.2 演算ISBは命令同期バリアとして機能します。 プロセッサのパイプラインをフラッシュし、ISB命令が完了した後に、ISB の後続のすべての命令がキャッシュまたはメモリから再度フェッチされるようにします。

21.4.7.5.3 制限制限はありません。

21.4.7.5.4 条件フラグこの命令はフラグを変更しません。

21.4.7.5.5 例

ISB ; Instruction Synchronisation Barrier

21.4.7.6 MRS

特殊レジスタのコンテンツを汎用レジスタに移動します。

21.4.7.6.1 構文MRS Rd, spec_reg

上記の構文の説明 :

Rdは汎用デスティネーションレジスタです。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 375

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

spec_regは、特殊用途レジスタ APSR、IPSR、EPSR、IEPSR、IAPSR、EAPSR、PSR、MSP、PSP、PRIMASK、CONTROLのいずれかです。

21.4.7.6.2 演算MRSは、特殊用途レジスタのコンテンツを汎用レジスタに格納します。 MRS命令を MR命令と結合して、PSR の特定のフラグの修正に適した read-modify-write シーケンスを生成できます。

Section 21.4.7.7を参照してください。

21.4.7.6.3 制限この命令では、Rdを SPと PCにできません。

21.4.7.6.4 条件フラグこの命令はフラグを変更しません。

21.4.7.6.5 例

MRS R0, PRIMASK ; Read PRIMASK value and write it to R0

21.4.7.7 MSR

汎用レジスタのコンテンツを、指定された特殊レジスタに移動します。

21.4.7.7.1 構文MSR spec_reg, Rn

上記の構文の説明 :

Rnは汎用ソースレジスタです。

spec_reg は、特殊用途デスティネーションレジスタ APSR、IPSR、EPSR、IEPSR、IAPSR、EAPSR、PSR、MSP、PSP、PRIMASK、CONTROLのいずれかです。

21.4.7.7.2 演算MSRは特殊レジスタのいずれかを、Rnで指定されるレジスタの値で更新します。

Section 21.4.7.6を参照してください。

21.4.7.7.3 制限この命令では、Rnを SPと PCにできません。

21.4.7.7.4 条件フラグこの命令は、Rnの値に基づいてフラグを明示的に更新します。

21.4.7.7.5 例

MSR CONTROL, R1 ; Read R1 value and write it to the CONTROL register

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 376

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.7.8 NOP

演算なし。

21.4.7.8.1 構文NOP

21.4.7.8.2 演算NOPは、演算を実行せず、時間消費が保証されません。 プロセッサは実行段階に達する前に、パイプラインからこの命令を削除する場合があります。

後続の命令を64ビットバウンダリに配置する場合など、パディングにNOPを使用します。

21.4.7.8.3 制限制限はありません。

21.4.7.8.4 条件フラグこの命令はフラグを変更しません。

21.4.7.8.5 例

NOP ; No operation

21.4.7.9 SEV

イベント送信。

21.4.7.9.1 構文SEV

21.4.7.9.2 演算SEVは、マルチプロセッサシステム内のすべてのプロセッサにイベントをシグナリングします。 またローカルイベントレジスタも設定します。Section 21.3.5を参照してください。

Section 21.4.7.11も参照してください。

21.4.7.9.3 制限制限はありません。

21.4.7.9.4 条件フラグこの命令はフラグを変更しません。

21.4.7.9.5 例

SEV ; Send Event

21.4.7.10 SVC

スーパーバイザコール。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 377

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.4.7.10.1 構文SVC #imm

上記の構文の説明 :

immは、0~ 255の範囲の整数。

21.4.7.10.2 演算SVC命令は SVC例外を発生させます。

imm はプロセッサにより無視されます。 要求されているサービスの内容を判断するために、必要に応じて例外ハンドラにより取り出されます。

21.4.7.10.3 制限制限はありません。

21.4.7.10.4 条件フラグこの命令はフラグを変更しません。

21.4.7.10.5 例

SVC #0x32 ; Supervisor Call (SVC handler can extract the immediate value; by locating it via the stacked PC)

21.4.7.11 WFE

イベント待機。

注意 : WFE命令は、LPC111x/LPC11C1xLPC111x/LPC11C1xに実装されていません。

21.4.7.11.1 構文WFE

21.4.7.11.2 演算イベントレジスタが 0 の場合、WFE は次のいずれかのイベントが起こるまで、例外を中断します。

• 例外。例外マスクレジスタまたは現在の優先レベルでマスクされている場合を除く。

• システム制御レジスタの SEVONPENDが設定されている場合、例外が保留状態に移行

• デバッグがイネーブルな場合の、デバッグエントリ要求

• マイクロプロセッサシステム内のペリフェラルまたは別のプロセッサにより、SEV命令を使ってシグナリングされるイベント

イベントレジスタが 1である場合、WFEはこれを 0にクリアし、即時終了します。

詳細については Section 21.3.5を参照してください。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 378

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

注意 : WFEは節電専用の命令です。 ソフトウェアは書き込み時に、WFEが NOPとして振る舞うと推定しています。

21.4.7.11.3 制限制限はありません。

21.4.7.11.4 条件フラグこの命令はフラグを変更しません。

21.4.7.11.5 例

WFE ; Wait for event

21.4.7.12 WFI

割り込み待機。

21.4.7.12.1 構文WFI

21.4.7.12.2 演算WFI

次のいずれかのイベントが起こるまで、実行を中断します。

• 例外

• 割り込みが保留中になり、PRIMASKがクリアされた場合にプリエンプトする

• デバッグがイネーブルかディスエーブルかに関係のない、デバッグエントリ要求

注意 : WFI は節電専用の命令です。 ソフトウェアは書き込み時に、WFI が NOP 演算として振る舞うと推定しています。

21.4.7.12.3 制限制限はありません。

21.4.7.12.4 条件フラグこの命令はフラグを変更しません。

21.4.7.12.5 例

WFI ; Wait for interrupt

21.5 ペリフェラル

21.5.1 ARM Cortex-M0についてプライベートペリフェラルバス(PPB)のアドレスマップを、次の表に示します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 379

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

レジスタの説明で、レジスタのタイプは次のように説明されます。

RW — 読み取りと書き込み。

RO — 読み取り専用。

WO — 書き込み専用。

21.5.2 ネストベクタ割り込みコントローラこのセクションでは、ネストベクタ割り込みコントローラ(NVIC)と、NVICで使用されるレジスタについて説明しています。NVICは以下をサポートしています。

• 32の割り込み。

• 各割り込みの、プログラム可能な優先レベル 0~ 3。 値が高くなると優先順位が低くなります。このためレベル 0が最高の割り込み順位になります。

• 割り込み信号のレベルとパルス検出。

• 割り込みテールチェイン。

• 外部マスク不可能な割り込み(NMI)。 NMIは LPC111x/LPC11C1xに実装されていません。

プロセッサは例外エントリが発生すると、自動的に状態をスタックし、例外の終了時にこの状態をアンスタックします。このため命令のオーバーヘッドが発生しません。 これにより、例外処理による遅延が減少します。 NVIC レジスタのハードウェア実装を、次の表に示します。

21.5.2.1 CMSISを使用した Cortex-M0 NVICレジスタへのアクセスCMSIS機能は、異なる Cortex-Mプロファイルプロセッサ間のソフトウェアの移植を有効にします。

Table 308. Core peripheral register regions

Address Core peripheral Description

0xE000E008-0xE000E00F システム制御ブロック Table 317

0xE000E010-0xE000E01F システムタイマ Table 326

0xE000E100-0xE000E4EF ネストベクタ割り込みコントローラ Table 309

0xE000ED00-0xE000ED3F システム制御ブロック Table 317

0xE000EF00-0xE000EF03 ネストベクタ割り込みコントローラ Table 309

Table 309. NVIC register summary

Address Name Type Reset value Description

0xE000E100 ISER RW 0x00000000 Section 21.5.2.2

0xE000E180 ICER RW 0x00000000 Section 21.5.2.3

0xE000E200 ISPR RW 0x00000000 Section 21.5.2.4

0xE000E280 ICPR RW 0x00000000 Section 21.5.2.5

0xE000E400-0xE000E41C

IPR0-7 RW 0x00000000 Section 21.5.2.6

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 380

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

CMSISを使用して NVICレジスタにアクセスするには、次の関数を使用します。

21.5.2.2 Interrupt Set-enableレジスタISER は割り込みをイネーブルにし、どの割り込みがイネーブルになっているかを示します。 レジスタの属性については、Table 309のレジスタの概要を参照してください。

ビットの割り当てを次の表に示します。

保留中の割り込みがイネーブルになると、NVIC はその優先順位に基づいて割り込みをアクティブにします。 割り込みがイネーブルになっていない場合、割り込み信号の推測により割り込み状態が保留中に変わりますが、NVIC は優先順位に関わらず、割り込みをアクティブにしません。

21.5.2.3 Interrupt Clear-enableレジスタICER は割り込みをディスエーブルにし、どの割り込みがディスエーブルになっているかを示します。 レジスタの属性については、Table 309 のレジスタの概要を参照してください。

ビットの割り当てを次の表に示します。

Table 310. CMISIS access NVIC functions

CMSIS function Description

void NVIC_EnableIRQ(IRQn_Type IRQn)[1] 割り込みまたは例外をイネーブルにします。void NVIC_DisableIRQ(IRQn_Type IRQn)[1] 割り込みまたは例外をディスエーブルにします。void NVIC_SetPendingIRQ(IRQn_Type IRQn)[1] 割り込みまたは例外の保留中ステータスを 1に設定します。void NVIC_ClearPendingIRQ(IRQn_Type IRQn)[1] 割り込みまたは例外の保留中ステータスを 0にクリアしま

す。uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)[1] 割り込みまたは例外の保留中ステータスを読み取ります。

この関数は、保留中ステータスが 1に設定されている場合にゼロ以外の値を返します。

void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)[1] 優先レベルが設定可能な割り込みまたは例外の優先順位を 1に設定します。

uint32_t NVIC_GetPriority(IRQn_Type IRQn)[1] 優先レベルが設定可能な割り込みまたは例外の優先順位を読み取ります。 この関数は現在の優先レベルを返します。

[1] 入力バラメータ IRQnは、IRQ番号です。詳細については Table 296を参照してください。

Table 311. ISER bit assignments

Bits Name Function

[31:0] SETENA Interrupt set-enableビット。 書き込み :

0 = 影響なし1 = 割り込みをイネーブルにします。読み取り :

0 = 割り込みはディスエーブルになっています。1 = 割り込みはイネーブルになっています。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 381

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.5.2.4 Interrupt Set-pendingレジスタISPR は割り込み強制的に保留状態に移行させ、どの割り込みが保留中であるかを示します。 レジスタの属性については、Table 309のレジスタの概要を参照してください。

ビットの割り当てを次の表に示します。

注意 : 次の割り込み対応する ISPRビットへの 1の書き込み :

• 保留中の割り込みの場合、影響はありません。

• ディスエーブルになっている割り込みの場合、その割り込みの状態が保留中に設定されます。

21.5.2.5 Interrupt Clear-pendingレジスタICPRは保留中の状態を割り込みから削除し、どの割り込みが保留中であるかを示します。レジスタの属性については、Table 309のレジスタの概要を参照してください。

ビットの割り当てを次の表に示します。

Table 312. ICER bit assignments

Bits Name Function

[31:0] CLRENA Interrupt clear-enableビット。書き込み :

0 = 影響なし1 = 割り込みをディスエーブルにします。読み取り :

0 = 割り込みはディスエーブルになっています。1 = 割り込みはイネーブルになっています。

Table 313. ISPR bit assignments

Bits Name Function

[31:0] SETPEND Interrupt set-pendingビット。書き込み :

0 = 影響なし1 = 割り込みの状態を保留中に変更します。読み取り :

0 = 割り込みは保留中ではありません。1 = 割り込みは保留中です。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 382

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

注意 : ICPRビットへの 1の書き込みは、対応する割り込みのアクティブな状態に影響しません。

21.5.2.6 割り込み優先順位のレジスタIPR0 ~ IPR7 のレジスタは、各割り込みに 2 ビットの優先順位フィールドを提供します。これらのレジスタは、ワードアクセスのみ可能です。 属性については、Table 309 のレジスタの概要を参照してください。 各レジスタは次の示す4つの優先順位フィールドを保持します。

割り込み優先順位をソフトウェアに表示する、割り込み優先順位アレイへのアクセスの詳細については、Section 21.5.2.1を参照してください。

割り込み Mの IPR番号とバイトオフセットは、次の手順で検出します。

• 対応する IPR番号 Nは、N = N DIV 4で求められます。

Table 314. ICPR bit assignments

Bits Name Function

[31:0] CLRPEND Interrupt clear-pendingビット。書き込み :

0 = 影響なし1 = 割り込みから保留中の状態を削除します。読み取り :

0 = 割り込みは保留中ではありません。1 = 割り込みは保留中です。

Fig 73. IPR register

Table 315. IPR bit assignments

Bits Name Function

[31:24] Priority, byte offset 3 各優先順位フィールドには 0~ 3の優先順位の値が格納されます。値が低いほど、対応する割り込みの優先度は高くなります。 プロセッサは各フィールドのビット [7:6]のみ実装し、ビット [5:0]はゼロとして読み取られ、書き込みは無視されます。

[23:16] Priority, byte offset 2

[15:8] Priority, byte offset 1

[7:0] Priority, byte offset 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 383

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• このレジスタの要求される優先順位フィールドのバイトオフセットは、M MOD 4 です。この場合、次のようになります。

– バイトオフセット 0は、レジスタビット [7:0]を示します。– バイトオフセット 1は、レジスタビット [15:8]を示します。– バイトオフセット 2は、レジスタビット [23:16]を示します。– バイトオフセット 3は、レジスタビット [31:24]を示します。

21.5.2.7 レベルセンシティブ割り込みとパルス割り込みCortex-M0 プロセッサは、レベルセンシティブ割り込みとパルス割り込みをいずれもサポートします。 パルス割り込みは、エッジトリガ割り込みと記述される場合もあります。

レベルセンシティブ割り込みは、ペリフェラルが割り込み信号をデアサートするまでアサート状態が保持されます。 通常、このような動作が起こるのは、ISR がペリフェラルにアクセスし、ペリフェラルの割り込み要求をクリアにするためです。 パルス割り込みは、プロセッサクロックの立ち上がりエッジと同時にサンプリングされる割り込み信号です。NVICで確実に割り込みが検出されるには、ペリフェラルが 1クロックサイクル以上割り込み信号をアサートし、この間に NVICがパルスを検出し、割り込みをラッチする必要があります。

プロセッサが ISR に移行すると、移動的に保留状態を割り込みから削除します。Section21.5.2.7.1を参照してください。 レベルセンシティブ割り込みの場合、プロセッサが ISRから復帰する前に信号がデアサートされなければ、割り込みは再度保留状態になり、プロセッサは再度 ISRを実行する必要があります。 これは、サービスが必要とされなくなるまで、ペリフェラルが割り込み信号をアサート状態に維持できることを意味します。

21.5.2.7.1 ハードウェアとソフトウェアの割り込み制御Cortex-M0はすべての割り込みをラッチします。 ペリフェラルの割り込みは、次のいずれかの理由で保留状態になります。

• 割り込み信号がアクティブであり、対応する割り込みが非アクティブであることをNVICが検出する

• NVICが、割り込み信号の立ち上がりエッジを検出する

• 対応する Interrupt Set-Pending レジスタビットに書き込まれる。Section 21.5.2.4 を参照してください。

保留中の割り込みは、次のいずれかが起こるまで保留状態が続きます。

• プロセッサが割り込みの ISR に移行する。 これにより割り込みの状態が保留中からアクティブに変更されます。 この場合、次のようになります。

– レベルセンシティブ割り込みの場合、プロセッサが ISRから復帰すると、NVICが割り込み信号をサンプリングします。 信号がアサートされると、割り込みの状態は保留中に変更され、この変更によりプロセッサが即時 ISRに再移行する場合があります。 それ以外の場合、割り込みの状態は非アクティブに変更されます。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 384

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

– パルス割り込みの場合、MVICは割り込み信号の監視を続け、信号がパルシングされると、割り込みの状態は保留中とアクティブに変更されます。 この場合、プロセッサが ISRから復帰すると、割り込みの状態は保留中に変更され、この変更によりプロセッサが即時 ISRに再移行する場合があります。プロセッサが ISRを進めている間に、割り込み信号がパルシングされない場合、プロセッサが ISRから復帰すると割り込みの状態は非アクティブに変更されます。

• 対応する Interrupt Clear-Pendingレジスタビットに書き込まれる。

レベルセンシティブ割り込みの場合、割り込み信号がアサートされた状態であれば、割り込みの状態は変更されません。 それ以外の場合、割り込みの状態は非アクティブに変更されます。パルス割り込みの場合、割り込みの状態は次のいずれかに変更されます。– 状態が保留中の場合は非アクティブ– 状態がアクティブおよび保留中の場合はアクティブ

21.5.2.8 NVICの使用上のヒント正しくアライメントされたレジスタアクセスが使用されていることを確認してください。プロセッサはアライメントされていない NVICレジスタへのアクセスは、サポートしていません。

割り込みがディスエーブルの場合でも、保留状態に移行する場合があります。 割り込みの無効化は、プロセッサによる割り込みの取り出しを阻止するにすぎません。

21.5.2.8.1 NVICのプログラミング上のヒント割り込みの有効化と無効化には、CPSIE i と命令が使用されます。 これらの命令について、CMSISは次のような固有の機能を備えています。

void __disable_irq(void) // Disable Interrupts

void __enable_irq(void) // Enable Interrupts

また、CMSISは NVIC制御のための複数の関数を提供しており、その一部を次に示します。

入力バラメータ IRQnは、IRQ番号です。詳細については Table 296を参照してください。これらの関数の詳細については、CMSISの文書を参照してください。

Table 316. CMSIS functions for NVIC control

CMSIS interrupt control function Description

void NVIC_EnableIRQ(IRQn_t IRQn) IRQnをイネーブルにします。void NVIC_DisableIRQ(IRQn_t IRQn) IRQnをディスエーブルにします。uint32_t NVIC_GetPendingIRQ (IRQn_t IRQn) IRQnが保留中の場合に True(1)

を返します。void NVIC_SetPendingIRQ (IRQn_t IRQn) IRQnを保留中に設定します。void NVIC_ClearPendingIRQ (IRQn_t IRQn) IRQnの保留中ステータスをクリア

します。void NVIC_SetPriority (IRQn_t IRQn, uint32_t priority) IRQnの優先順位を設定します。uint32_t NVIC_GetPriority (IRQn_t IRQn) IRQnの優先順位を読み取ります。void NVIC_SystemReset (void) システムをリセットします。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 385

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.5.3 システム制御ブロックシステム制御ブロック(SCB)は、システム実装情報を提供し、システムを管理します。ここには、システム例外の設定、制御、レポートが含まれます。 SCBレジスタを次に説明します。

[1] 詳細については、レジスタの説明を参照してください。

21.5.3.1 Cortex-M0 SCBレジスタの CMSISマッピングソフトウェアの効率性を高めるために、CMSIS は SCB レジスタのプレゼンテーションを簡素化しています。 CMSISでは、アレイ SHP[1]はレジスタ SHPR2~ SHPR3に対応します。

21.5.3.2 CPUIDレジスタCPUID レジスタは、プロセッサのバーツ No.、バージョン、実装情報を格納しています。レジスタの属性については、レジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

21.5.3.3 割り込み制御と状態レジスタICSRの特長

• 次の特長があります。– マスク不可能な割り込み(NMI)例外の Set-Pendingビット– PendSVと SysTick例外の Set-Pendingおよび Clear-Pendingビット

Table 317. Summary of the SCB registers

Address Name Type Reset value Description

0xE000ED00 CPUID RO 0x410CC200 Section 21.5.3.2

0xE000ED04 ICSR RW[1] 0x00000000 Section 21.5.3.3

0xE000ED0C AIRCR RW[1] 0xFA050000 Section 21.5.3.4

0xE000ED10 SCR RW 0x00000000 Section 21.5.3.5

0xE000ED14 CCR RO 0x00000204 Section 21.5.3.6

0xE000ED1C SHPR2 RW 0x00000000 Section 21.5.3.7.1

0xE000ED20 SHPR3 RW 0x00000000 Section 21.5.3.7.2

Table 318. CPUID register bit assignments

Bits Name Function

[31:24] Implementer 実装者コード :0x41 = ARM

[23:20] Variant バリアント番号(rnpn製品リビジョン IDの r値):

0x0 = リビジョン 0[19:16] Constant プロセッサのアーキテクチャを定義する定数。以下のように

示されます。0xC = ARMv6-Mアーキテクチャ

[15:4] Partno プロセッサの部品番号。0xC20 = Cortex-M0

[3:0] Revision リビジョン番号(rnpn製品リビジョン IDの p値):

0x0 = パッチ 0

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 386

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• 次の内容を示します。– 処理される例外の例外番号– プリエンプトされるアクティブな例外が存在するかどうか– 保留中の例外で最も優先順位の高い例外の例外番号– 割り込みが保留中かどうか

ICSR 属性については、Table 317 のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

Table 319. ICSR bit assignments

Bits Name Type Function

[31] NMIPENDSET[2] RW NMI set-pendingビット。書き込み :

0 = 影響なし1 = NMI例外の状態を保留中に変更します。読み取り :

0 = NMI例外は保留中ではありません。1 = NMI例外は保留中です。NMIは優先順位が最も高い例外であるため、通常、プロセッサはこのビットに 1が書き込まれたことを検出するとすぐに NMI例外ハンドラに移行します。 ハンドラに移行した後、このビットを 0にクリアします。したがって、プロセッサが NMI例外ハンドラを実行している間に NMI信号が再アサートされた場合にのみ、NMI例外ハンドラによるこのビットの読み取りで 1が返されます。

[30:29] - - 予約済み[28] PENDSVSET RW PendSV set-pendingビット。

書き込み :

0 = 影響なし1 = PendSV例外の状態を保留中に変更します。読み取り :

0 = PendSV例外は保留中ではありません。1 = PendSV例外は保留中です。PendSV例外の状態を保留中に設定する唯一の方法は、このビットに 1を書き込むことです。

[27] PENDSVCLR WO PendSV clear-pendingビット。書き込み :

0 = 影響なし1 = PendSV例外から保留中状態を削除します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 387

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

[1] これは IPSRビット [5:0]と同じです。Table 291を参照してください。[2] NMIは LPC111x/LPC11C1xに実装されていません。

ICSRに書き込む場合、次の場合影響が予測できません。

• PENDSVSETビットに 1を書き込み、PENDSVCLRビットに 1を書き込む場合

• PENDSTSETビットに 1を書き込み、PENDSTCLRビットに 1を書き込む場合

21.5.3.4 アプリケーション割り込みとリセット制御レジスタAIRCRは、データアクセスのエンディアンステータスを指定し、システムのリセットを制御します。 属性については、Table 317と Table 320のレジスタの概要を参照してください。

[26] PENDSTSET RW SysTick exception set-pendingビット。書き込み :

0 = 影響なし1 = SysTick例外の状態を保留中に変更します。読み取り :

0 = SysTick例外は保留中ではありません。1 = SysTick例外は保留中です。

[25] PENDSTCLR WO SysTick exception clear-pendingビット。書き込み :

0 = 影響なし1 = SysTick例外から保留中状態を削除します。このビットはWOです。 レジスタ読み取り時に、このビットの値は Unknownとなります。

[24:23] - - 予約済み[22] ISRPENDING RO 割り込み保留中フラグ(NMIおよび障害は除外):

0 = 割り込みは保留中ではありません。1 = 割り込みは保留中です。

[21:18] - - 予約済み[17:12] VECTPENDING RO 優先順位が最も高い保留中の、イネーブルになってい

る例外の例外番号を示します。 0 = 保留中の例外はありません。ゼロ以外 = 優先順位が最も高い保留中の、イネーブルになっている例外の例外番号

[11:6] - - 予約済み[5:0] VECTACTIVE[1] RO アクティブな例外番号が格納されます。

0 = スレッドモードゼロ以外 = 現在アクティブな例外の例外番号 [1]。注意 : この値から 16を引くと、Clear-Enable、Set-Enable、Clear-Pending、Set-pending、および優先順位レジスタの対応するビットを示す、CMSIS IRQ番号が得られます。Table 291を参照してください。

Table 319. ICSR bit assignments(続き)Bits Name Type Function

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 388

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

このレジスタに書き込むには、0x05FA を VECTKEY フィールドに書き込む必要があり、それ以外の場合はプロセッサは書き込みを無視します。

ビットの割り当てを次の表に示します。

21.5.3.5 システム制御レジスタ

SCRは低電力状態への移行と終了の機能を制御します。 レジスタの属性については、Table317のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

Table 320. AIRCR bit assignments

Bits Name Type Function

[31:16] Read: Reserved

Write: VECTKEY

RW レジスタキー :

読み取りでは Unknownが返されます。書き込み時には、0x05FA を VECTKEYに書き込みます。それ以外の書き込みを行うと、書き込みは無視されます。

[15] ENDIANESS RO 実装されているデータエンディアン :

0 = リトルエンディアン1 = ビッグエンディアン

[14:3] - - 予約済み[2] SYSRESETREQ WO システムリセット要求 :

0 = 影響なし1 = システムレベルのリセットを要求します。 このビットの読み取り値は 0です。

[1] VECTCLRACTIVE WO デバッグ用に予約されています。 このビットの読み取り値は 0です。 レジスタに書き込む場合は、このビットに 0を書き込む必要があります。それ以外の書き込みを行った場合の動作は予測できません。

[0] - - 予約済み

Table 321. SCR bit assignments

Bits Name Function

[31:5] - 予約済み[4] SEVONPEND 保留中イベント送信ビット :

0 = イネーブルになっている割り込みまたはイベントのみがプロセッサをウェイクアップできます。ディスエーブルになっている割り込みは除外されます。1 = イネーブルになっているイベントと、ディスエーブルになっている割り込みも含めてすべての割り込みがプロセッサをウェイクアップできます。イベントまたは割り込みが保留状態に移行すると、イベント信号がWFEからプロセッサをウェイクアップします。 プロセッサがイベントを待機していない場合は、イベントは登録され、次のWFEに影響を与えます。 プロセッサは、SEV命令の実行時にもウェイクアップします。

[3] - 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 389

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.5.3.6 設定および制御レジスタCCRは読み取り専用レジスタであり、Cortex-M0プロセッサの動作の一部を示します。 CCR属性については、Table 317のレジスタの概要を参照してください。

ビットの割り当てを次の表に示します。

21.5.3.7 システムハンドラ優先順位レジスタSHPR2-SHPR3レジスタは、優先順位が設定可能な例外ハンドラの優先レベル 0~ 3を設定します。

SHPR2-SHPR3は、ワードアクセスが可能です。 属性については、Table 317のレジスタの概要を参照してください。

CMSIS を使用してシステム例外優先レベルにアクセスするには、次の CMSIS 関数を使用します。

• uint32_t NVIC_GetPriority(IRQn_Type IRQn)

[2] SLEEPDEEP プロセッサが低電力モードとしてスリープまたはディープスリープのいずれを使用するかを制御します。0 = スリープ1 = ディープスリープ

[1] SLEEPONEXIT ハンドラモードからスレッドモードに戻るときに sleep-on-exit を示します。0 = スレッドモードに戻るときにスリープしません。1 = ISRからスレッドモードに戻るときに、スリープまたはディープスリープに移行します。このビットを 1に設定すると、割り込み駆動型のアプリケーションが空のメインアプリケーションに戻るのを回避できます。

[0] - 予約済み

Table 321. SCR bit assignments(続き)Bits Name Function

Table 322. CCR bit assignments

Bits Name Function

[31:10] - 予約済み[9] STKALIGN 読み取り値は常に 1です。例外エントリ時に 8バイトスタック

アラインドに調整されることを示します。例外エントリ時に、プロセッサはスタックされた PSRのビット[9]を使用して、スタックアライメントを示します。 例外からのリターン時に、このスタックビットを使用して正しいスタックアライメントに戻します。

[8:4] - 予約済み[3] UNALIGN_TRP 読み取り値は常に 1です。これは、すべてのアライメントされ

ていないアクセスによって HardFaultが生成されることを示します。

[2:0] - 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 390

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

• void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)

入力パラメータ IRQn は IRQ番号です。詳細については Table 296を参照してください。

システム障害ハンドラと、各ハンドラの優先順位フィールドとレジスタを次の表に示します。

各 PRI_Nフィールドは 8ビット幅ですが、プロセッサは各フィールドのビット [7:6]のみを実装し、ビット [5:0]はゼロとして読み取られ、書き込みは無視されます。

21.5.3.7.1 システムハンドラ優先順位レジスタ 2

ビットの割り当てを次の表に示します。

21.5.3.7.2 システムハンドラ優先順位レジスタ 3

ビットの割り当てを次の表に示します。

21.5.3.8 SCBの使用上のヒントアライメントされた 32ビットワード幅のトランザクションが、すべての SCBレジスタへのアクセスに使用されていることを確認します。

21.5.4 システムタイマ、SysTick

システムタイマをイネーブルにした場合、タイマは現在の値(SYST_CVR)からゼロまでカウントダウンし、次のクロックエッジで SysTickリロード値レジスタの値(SYST_RVR)にリロード(ラップ)し、この後のクロックでデクリメントします。 カウンタがゼロに移行すると、COUNTFLAG ステータスビットは 1 に設定されます。 COUNTFLAG ビットは、読み取り時にクリアされます。

注意 : SYST_CVR値は、リセット時に UNKNOWNです。 レジスタに書き込まれ、ビットをゼロにクリアにしてから、機能をイネーブルにする必要があります。 このクリア化により、タイマはイネーブルになった後、任意の値ではなく SYST_RVR値からカウントします。

Table 323. System fault handler priority fields

Handler Field Register description

SVCall PRI_11 Section 21.5.3.7.1

PendSV PRI_14 Section 21.5.3.7.2

SysTick PRI_15

Table 324. SHPR2 register bit assignments

Bits Name Function

[31:24] PRI_11 システムハンドラ 11、SVCallの優先順位[23:0] - 予約済み

Table 325. SHPR3 register bit assignments

Bits Name Function

[31:24] PRI_15 システムハンドラ 15、SysTick例外の優先順位[23:16] PRI_14 システムハンドラ 14、PendSVの優先順位[15:0] - 予約済み

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 391

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

注意 : SYST_RVRがゼロである場合、タイマは現在のゼロ値がリロードされた後、この値を維持します。 このメカニズムを使用すると、タイマのイネーブルビットに関係なく、機能をディスエーブルにすることができます。

SYST_CVRへの書き込みにより、レジスタと COUNTFLAGステータスビットがクリアされます。 この書き込みにより、次のタイマクロックで SYST_CVRが SYST_RVRからリロードされますが、SysTick 例外ロジックはトリガされません。 読み取り時の現在の値は、レジスタにアクセスした時点のレジスタの値になります。

注意 : プロセッサがデバッグのために中断される場合、カウンタはデクリメントしません。

システムタイマレジスタの詳細を、次の表に示します。

[1] SysTick校正値。

21.5.4.1 SysTick制御とステータスレジスタSYST_CSRは、SysTick機能をイネーブルにします。 レジスタの属性については、レジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

Table 326. System timer registers summary

Address Name Type Resetvalue

Description

0xE000E010 SYST_CSR RW 0x00000000 Section 21.5.4.1

0xE000E014 SYST_RVR RW Unknown Section 21.5.4.2

0xE000E018 SYST_CVR RW Unknown Section 21.5.4.3

0xE000E01C SYST_CALIB RO 0x00000004 [1] Section 21.5.4.4

Table 327. SYST_CSR bit assignments

Bits Name Function

[31:17] - 予約済み[16] COUNTFLAG このレジスタの前回の読み取り以後にタイマのカウントが 0になっ

た場合は 1を返します。 [15:3] - 予約済み[2] CLKSOURCE SysTickタイマクロックソースを選択します。

0 = 外部参照クロック1 = プロセッサクロック注意 : 外部参照クロックオプションは実装されていません。 このビットの読み取り値は 1で、このビットへの書き込みは無視されます。

[1] TICKINT SysTick例外要求をイネーブルにします。0 = ゼロまでカウントダウンしても、SysTick例外要求はアサートされません。1 = ゼロまでカウントダウンすると、SysTick例外要求がアサートされます。

[0] ENABLE カウンタをイネーブルにします。0 = カウンタはディスエーブルになっています。1 = カウンタはイネーブルになっています。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 392

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.5.4.2 SysTickリロード値レジスタSYST_RVR は、SYST_CVR にロードされる開始値を指定します。 レジスタの属性については、Table 326 のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

21.5.4.2.1 RELOAD値の計算RELOAD値は、0x00000001 ~ 0x00FFFFFF の範囲の任意の値になります。 値 0をプログラムできますが、影響しません。SysTick例外要求と COUNTFLAGは 1から 0にカウントする場合にアクティブになるためです。

プロセッサクロック Nサイクルの期間でマルチショットタイマを生成するには、RELOADの値 N-1 を使用します。 たとえば、SysTick割り込みが 100クロックパルスごとに要求される場合、RELOADを 99に設定します。

21.5.4.3 SysTick現在値レジスタSYST_CVR には、SysTick カウンタの現在値が格納されます。 レジスタの属性については、Table 326のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

21.5.4.4 SysTick校正値レジスタSYST_CALIBレジスタは、SysTick校正プロパティを示します。 レジスタの属性については、Table 326のレジスタの概要を参照してください。 ビットの割り当てを次の表に示します。

校正情報が不明であれば、プロセッサクロックまたは外部クロックの周波数から、要求される校正値を計算します。

Table 328. SYST_RVR bit assignments

Bits Name Function

[31:24] - 予約済み[23:0] RELOAD イネーブルなカウンタのカウントがゼロに達したときに、SYST_CVR

にロードされる値。Section 21.5.4.2.1を参照してください。

Table 329. SYST_CVR bit assignments

Bits Name Function

[31:24] - 予約済み[23:0] CURRENT 読み取りでは、SysTickカウンタの現在の値が返されます。

任意の値を書き込むと、フィールドは 0にクリアされます。また、SYST_CSR.COUNTFLAGビットも 0にクリアされます。

Table 330. SYST_CALIB register bit assignments

Bits Name Function

[31] NOREF 読み取り値は 1です。 これは、個別の参照クロックが供給されないことを示します。

[30] SKEW 読み取り値は 1です。 TENMSが不明であるため、10msの不正確なタイミングの校正値は不明です。 これは、SysTickのソフトウェアリアルタイムクロックとしての適合性に影響することがあります。

[29:24] - 予約済み[23:0] TENMS 読み取り値はゼロです。 これは校正値が不明であることを示します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 393

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

21.5.4.5 SysTickの使用上のヒントこの割り込みコントローラクロックは、SysTick カウンタを更新します。 このクロック信号が低電力モードで停止した場合、SysTickカウンタが停止します。

SysTickレジスタへのアクセスに、ワードアクセスが使用されることを確認します。

SysTickカウンタリロード値と現在値がリセット時に未定義であれば、SysTickカウンタの正しい初期化シーケンスは、次のようになります。

1. リロード値をプログラムします。2. 現在値をクリアします。3. 制御とステータスレジスタをプログラムします。

21.6 Cortex-M0命令のまとめ

Table 331. Cortex M0- instruction summary

Operation Description Assembler Cycles

Move 8ビットイミディエート MOVS Rd, #<imm> 1

下位から下位 MOVS Rd, Rm 1

任意から任意 MOV Rd, Rm 1

任意から PC MOV PC, Rm 3

Add 3ビットイミディエート ADDS Rd, Rn, #<imm> 1

すべてのレジスタの下位 ADDS Rd, Rn, Rm 1

任意から任意 ADD Rd, Rd, Rm 1

任意から PC ADD PC, PC, Rm 3

Add 8ビットイミディエート ADDS Rd, Rd, #<imm> 1

キャリー付き ADCS Rd, Rd, Rm 1

イミディエートから SP ADD SP, SP, #<imm> 1

SPからアドレス生成 ADD Rd, SP, #<imm> 1

PCからアドレス生成 ADR Rd, <label> 1

Subtract 下位と下位 SUBS Rd, Rn, Rm 1

3ビットイミディエート SUBS Rd, Rn, #<imm> 1

8ビットイミディエート SUBS Rd, Rd, #<imm> 1

キャリー付き SBCS Rd, Rd, Rm 1

SPからイミディエート SUB SP, SP, #<imm> 1

否定 RSBS Rd, Rn, #0 1

Multiply 乗算 MULS Rd, Rm, Rd 1 or 32[1]

Compare 比較 CMP Rn, Rm 1

否定 CMN Rn, Rm 1

イミディエート CMP Rn, #<imm> 1

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 394

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

Logical AND ANDS Rd, Rd, Rm 1

排他的 OR EORS Rd, Rd, Rm 1

OR ORRS Rd, Rd, Rm 1

ビットクリア BICS Rd, Rd, Rm 1

Move NOT(補数移動) MVNS Rd, Rm 1

ANDテスト TST Rn, Rm 1

Shift イミディエート値により論理左シフト

LSLS Rd, Rm, #<shift> 1

レジスタ値により論理左シフト LSLS Rd, Rd, Rs 1

イミディエート値により論理右シフト

LSRS Rd, Rm, #<shift> 1

レジスタ値により論理左シフト LSRS Rd, Rd, Rs 1

算術右シフト ASRS Rd, Rm, #<shift> 1

レジスタ値により算術右シフト ASRS Rd, Rd, Rs 1

Rotate レジスタ値により右ローテート RORS Rd, Rd, Rs 1

Load ワード、イミディエートオフセット

LDR Rd, [Rn, #<imm>] 2

ハーフワード、イミディエートオフセット

LDRH Rd, [Rn, #<imm>] 2

バイト、イミディエートオフセット

LDRB Rd, [Rn, #<imm>] 2

ワード、レジスタオフセット LDR Rd, [Rn, Rm] 2

ハーフワード、レジスタオフセット

LDRH Rd, [Rn, Rm] 2

符号付きハーフワード、レジスタオフセット

LDRSH Rd, [Rn, Rm] 2

バイト、レジスタオフセット LDRB Rd, [Rn, Rm] 2

符号付きバイト、レジスタオフセット

LDRSB Rd, [Rn, Rm] 2

PC相対 LDR Rd, <label> 2

SP相対 LDR Rd, [SP, #<imm>] 2

複数、ベースを除く LDM Rn!, {<loreglist>} 1 + N[2]

複数、ベースを含む LDM Rn, {<loreglist>} 1 + N[2]

Store ワード、イミディエートオフセット

STR Rd, [Rn, #<imm>] 2

Table 331. Cortex M0- instruction summary (続き)Operation Description Assembler Cycles

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 395

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

[1] 乗算器の実装に応じます。[2] Nは要素の個数です。

Store ハーフワード、イミディエートオフセット

STRH Rd, [Rn, #<imm>] 2

バイト、イミディエートオフセット

STRB Rd, [Rn, #<imm>] 2

ワード、レジスタオフセット STR Rd, [Rn, Rm] 2

ハーフワード、レジスタオフセット

STRH Rd, [Rn, Rm] 2

バイト、レジスタオフセット STRB Rd, [Rn, Rm] 2

SP相対 STR Rd, [SP, #<imm>] 2

複数 STM Rn!, {<loreglist>} 1 + N[2]

Push プッシュ PUSH {<loreglist>} 1 + N[2]

リンクレジスタ付きプッシュ PUSH {<loreglist>, LR} 1 + N[2]

Pop ポップ POP {<loreglist>} 1 + N[2]

ポップと復帰 POP {<loreglist>, PC} 4 + N[3]

Branch 条件付き B<cc> <label> 1 or 3[4]

無条件 B <label> 3

リンク付き BL <label> 4

交換付き BX Rm 3

リンクおよび交換付き BLX Rm 3

Extend 符号付きハーフワードからワード

SXTH Rd, Rm 1

符号付きバイトからワード SXTB Rd, Rm 1

符号なしハーフワード UXTH Rd, Rm 1

符号なしバイト UXTB Rd, Rm 1

Reverse ワード内のバイト REV Rd, Rm 1

両方のハーフワード内のバイト REV16 Rd, Rm 1

符号付き下位ハーフワード REVSH Rd, Rm 1

State change スーパーバイザコール SVC <imm> -[5]

割り込みディスエーブル CPSID i 1

割り込みイネーブル CPSIE i 1

特殊レジスタ読み取り MRS Rd, <specreg> 4

特殊レジスタ書き込み MSR <specreg>, Rn 4

Hint イベント送信 SEV 1

イベント待機 WFE 2[6]

割り込み待機 WFI 2[6]

Yield YIELD[7] 1

演算なし NOP 1

Barriers 命令同期 ISB 4

データメモリ DMB 4

データ同期 DSB 4

Table 331. Cortex M0- instruction summary (続き)Operation Description Assembler Cycles

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 396

NXP Semiconductors UM10398第 21章:付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

参考資料

[3] Nはスタックポップリストの、PCを含む要素の数です。ロードまたはストアを推測しています。HardFault例外を生成しません。

[4] 取られる場合は 3、取られない場合は 1。[5] サイクルカウントは、コアおよびデバッグ設定に応じます。[6] 割り込みまたはイベントの待機時間を除外します。[7] NOPとして実行します。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 397

参考資料

22.1 略語

22.2 参考文献[1] ARM DUI 0497A — Cortex-M0 Devices Generic User Guide

[2] ARM DDI 0432C — Cortex-M0 Revision r0p0 Technical Reference Manual

UM10398第 22章:LPC111x補足情報Rev. 00.15 — 2010 / 9 / 28 ユーザーマニュアル

Table 332. Abbreviations

Acronym Description

ADC Analog-to-Digital Converter(A/Dコンバータ)AHB Advanced High-performance Bus(アドバンストハイパフォーマンスバス)AMBA Advanced Microcontroller Bus Architecture(アドバンストマイクロコントロー

ラバスアーキテクチャ)APB Advanced Peripheral Bus(アドバンストペリフェラルバス)BOD BrownOut Detection(ブラウンアウト検出)GPIO General Purpose Input/Output(汎用入出力)PLL Phase-Locked Loop(位相ロックループ)SPI Serial Peripheral Interface(シリアルペリフェラルインターフェース)SSI Serial Synchronous Interface(シリアル同期インターフェース)TTL Transistor-Transistor Logic(トランジスタ -トランジスタロジック)UART Universal Asynchronous Receiver/Transmitter(汎用非同期送受信回路)

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 398

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

22.3 法律情報

22.3.1 定義

草案 — 本書は草案書です。 本書内の内容は社内で検討中であり、正式な承認待ちの段階であるため、最終的に修正あるいは追記が行われる可能性があります。 NXP Semiconductorsは、本書内の情報の正確性または完全性に関して何ら表明または保証を行わず、かかる情報を使用した結果に対して責任を負いません。

22.3.2 免責事項

有限保証および有限責任 — 本書内の情報は、正確かつ信頼性あるものと見なされています。 ただし、かかる情報の正確性もしくは完全性に関して、NXP Semiconductors は明示的にも暗示的にも表明もしくは保証を行わず、かかる情報の利用の結果に対して責任を負いません。

NXP Semiconductorsは、 間接的、偶発的、懲罰的、特別、もしくは間接的な各損害に対して(製品の撤去または交換に関連した収益の損失、省力の損失、事業の混乱、費用、もしくは再構成の料金を含むがこれらに限定されない)は、かかる損害が不法行為(過失を含む)、保証、契約またはその他の法的理論の侵害に基づくか否かを問わず、いかなる場合も責任を負いません。

何らかの理由で顧客側に損害が発生する場合でも、本書内で説明する製品に関する NXP Semiconductors から顧客側への債務の総額および累計は、NXP Semiconductors の商業的販売の条件に準じて制限されるものとします。

変更の権利 — NXP Semiconductors は、仕様と製品の詳細を含む(ただしこれらに限定されない)、本書内で公表した情報を予告なく任意の時期に変更する権利を有します。 本書は本書の発行以前に開示されたすべての情報よりも優先され、同情報は本書内の内容に変更されます。

用途の適合性 — NXP Semiconductorsの製品は、生命維持装置、ライフクリティカル装置、またはセーフティクリティカル装置での使用、もしくは NXP Semiconductors 製の製品の故障または不具合により負傷、死亡、財産または環境の深刻な損害を生じることが合理的に予測される用途での使用への適合性が意図、許可、保証されていません。NXP Semiconductorsは、かかる装置または用途への NXPSemiconductors製の製品の統合および /または使用に対して責任を負わず、故に、かかる統合および /または使用はお客様側の責任となります。

用途 — 本書内で説明する当社製製品の用途は、解説用にすぎません。 NXP Semiconductorsは、試験または修正を伴わずにかかる用途が指定された使用に適合するか否かについては、表明も保証も行いません。

NXP Semiconductors 製の製品を使用した、用途および製品の設計および操作は顧客側の責任となり、NXP Semiconductors は用途への支援または顧客側での製品の設計に対して責任を負いません。NXP Semiconductors 製の製品が、顧客側の予定された用途および製品に適合するかどうか、および顧客側の第三者顧客の予定された用途および使用に適合するかどうかの判断は、顧客側の単独の責任において行ってください。 顧客は顧客側の用途および製品に付随するリスクを最小限に抑えるために、適切な設計を行い、稼働時の予防対策を講じる必要があります。

NXP Semiconductors は、顧客側の用途または製品、もしくは顧客の第三者顧客の用途または使用における脆弱性または欠如に基づく不履行、損害、費用、または問題に関連した責任を負いません。顧客側の用途と製品、もしくは顧客の第三者顧客の用途または使用の不履行を回避する目的として、NXP Semiconductors 製の製品を使用した顧客側の用途および製品に対して行われるすべての必要な試験は、顧客側が責任を負います。 NXPはこの件に関しては責任を負いません。

輸出制限 — 本書および本書内で説明する品目は、輸出制限規制の対象になる場合があります。 輸出する場合、事前に国内の機関から許可を受ける必要が生じる場合があります。

22.3.3 商標

注意 : 参照されるブランド、製品名、サービス名、および商標はすべて、各所有者の財産と見なされます。

I2C-bus — ロゴは、NXP B.V.の商標です。

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 399

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

22.4 Tables

Table 1. Ordering information .................................................... 5Table 2. Ordering options ............................................................. 5Table 3. LPC111x/LPC11C1x memory configuration .......... 9Table 4. Pin summary ...................................................................11Table 5. Register overview: system control block (base

address 0x4004 8000) ..................................................13Table 6. System memory remap register (SYSMEMREMAP,

address 0x4004 8000) bit description ...................14Table 7. Peripheral reset control register (PRESETCTRL,

address 0x4004 8004) bit description ...................15Table 8. System PLL control register (SYSPLLCTRL, address

0x4004 8008) bit description ....................................15Table 9. System PLL status register (SYSPLLSTAT, address

0x4004 800C) bit description ....................................16Table 10. System oscillator control register (SYSOSCCTRL,

address 0x4004 8020) bit description ...................16Table 11. Watchdog oscillator control register

(WDTOSCCTRL, address 0x4004 8024) bit description ......................................................................17

Table 12. Internal resonant crystal control register (IRCCTRL, address 0x4004 8028) bit description ...................17

Table 13. System reset status register (SYSRSTSTAT, address 0x4004 8030) bit description ....................................18

Table 14. System PLL clock source select register (SYSPLLCLKSEL, address 0x4004 8040) bit description ......................................................................19

Table 15. System PLL clock source update enable register (SYSPLLUEN, address 0x4004 8044) bit description 19

Table 16. Main clock source select register (MAINCLKSEL, address 0x4004 8070) bit description ...................20

Table 17. Main clock source update enable register (MAINCLKUEN, address 0x4004 8074) bit description ......................................................................20

Table 18. System AHB clock divider register (SYSAHBCLKDIV, address 0x4004 8078) bit description ...................20

Table 19. System AHB clock control register (SYSAHBCLKCTRL, address 0x4004 8080) bit description ......................................................................21

Table 20. SPI0 clock divider register (SSP0CLKDIV, address 0x4004 8094) bit description ....................................23

Table 21. UART clock divider register (UARTCLKDIV, address 0x4004 8098) bit description ....................................23

Table 22. SPI1 clock divider register (SSP1CLKDIV, address 0x4004 809C) bit description ....................................23

Table 23. WDT clock source select register (WDTCLKSEL, address 0x4004 80D0) bit description ...................24

Table 24. WDT clock source update enable register (WDTCLKUEN, address 0x4004 80D4) bit description ......................................................................24

Table 25. WDT clock divider register (WDTCLKDIV, address 0x4004 80D8) bit description ...................................24

Table 26. CLKOUT clock source select register (CLKOUTCLKSEL, address 0x4004 80E0) bit description ......................................................................25

Table 27. CLKOUT clock source update enable register

(CLKOUTUEN, address 0x4004 80E4) bit description ...................................................................... 25

Table 28. CLKOUT clock divider registers (CLKOUTCLKDIV, address 0x4004 80E8) bit description ................... 25

Table 29. POR captured PIO status registers 0 (PIOPORCAP0, address 0x4004 8100) bit description ................... 26

Table 30. POR captured PIO status registers 1 (PIOPORCAP1, address 0x4004 8104) bit description ................... 26

Table 31. BOD control register (BODCTRL, address 0x4004 8150) bit description ................................................... 27

Table 32. System tick timer calibration register (SYSTCKCAL, address 0x4004 8158) bit description ................... 27

Table 33. Start logic edge control register 0 (STARTAPRP0, address 0x4004 8200) bit description ................... 28

Table 34. Start logic signal enable register 0 (STARTERP0, address 0x4004 8204) bit description ................... 28

Table 35. Start logic reset register 0 (STARTRSRP0CLR, address 0x4004 8208) bit description ................... 29

Table 36. Start logic status register 0 (STARTSRP0, address 0x4004 820C) bit description ................................... 29

Table 37. Allowed values for PDSLEEPCFG register ............ 29Table 38. Deep-sleep configuration register (PDSLEEPCFG,

address 0x4004 8230) bit description ................... 30Table 39. Wake-up configuration register (PDAWAKECFG,

address 0x4004 8234) bit description ................... 31Table 40. Power-down configuration register (PDRUNCFG,

address 0x4004 8238) bit description ................... 32Table 41. Device ID register (DEVICE_ID, address 0x4004

83F4) bit description .................................................... 33Table 42. PLL frequency parameters ......................................... 41Table 43. PLL configuration examples ..................................... 42Table 44. Flash configuration register (FLASHCFG, address

0x4003 C010) bit description ................................... 43Table 45. Register overview: PMU (base address 0x4003

8000) .................................................................................. 44Table 46. Power control register (PCON, address 0x4003

8000) bit description ................................................... 44Table 47. General purpose registers 0 to 3 (GPREG0 -

GPREG3, address 0x4003 8004 to 0x4003 8010) bit description ...................................................................... 45

Table 48. General purpose register 4 (GPREG4, address 0x4003 8014) bit description .................................... 46

Table 49. Connection of interrupt sources to the Vectored Interrupt Controller ...................................................... 48

Table 50. Register overview: I/O configuration (base address 0x4004 4000) .................................................................. 52

Table 51. I/O configuration registers ordered by port number ............................................................................. 54

Table 52. IOCON_PIO2_6 register (IOCON_PIO2_6, address 0x4004 4000) bit description .................................... 55

Table 53. IOCON_PIO2_0 register (IOCON_PIO2_0, address 0x4004 4008) bit description ................................................................ 55

Table 54. IOCON_nRESET_PIO0_0 register (IOCON_nRESET_PIO0_0, address 0x4004 400C) bit description ................................................................ 56

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 400

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

Table 55. IOCON_PIO0_1 register (IOCON_PIO0_1, address 0x4004 4010) bit description ....................................57

Table 56. IOCON_PIO1_8 register (IOCON_PIO1_8, address 0x4004 4014) bit description ....................................57

Table 57. IOCON_PIO0_2 register (IOCON_PIO0_2, address 0x4004 401C) bit description ....................................58

Table 58. IOCON_PIO2_7 register (IOCON_PIO2_7, address 0x4004 4020) bit description ....................................58

Table 59. IOCON_PIO2_8 register (IOCON_PIO2_8, address 0x4004 4024) bit description ....................................59

Table 60. IOCON_PIO2_1 register (IOCON_PIO2_1, address 0x4004 4028) bit description ....................................59

Table 61. IOCON_PIO0_3 register (IOCON_PIO0_3 address 0x4004 402C) bit description ....................................60

Table 62. IOCON_PIO0_4 register (IOCON_PIO0_4 address 0x4004 4030) bit description ....................................60

Table 63. IOCON_PIO0_5 register (IOCON_PIO0_5 address 0x4004 4034) bit description ................................................................61

Table 64. IOCON_PIO1_9 register (IOCON_PIO1_9 address 0x4004 4038) bit description ....................................61

Table 65. IOCON_PIO3_4 register (IOCON_PIO3_4, address 0x4004 403C) bit description ....................................62

Table 66. IOCON_PIO2_4 register (IOCON_PIO2_4, address 0x4004 4040) bit description ....................................62

Table 67. IOCON_PIO2_5 register (IOCON_PIO2_5, address 0x4004 4044) bit description ....................................63

Table 68. IOCON_PIO3_5 register (IOCON_PIO3_5, address 0x4004 4048) bit description ....................................63

Table 69. IOCON_PIO0_6 register (IOCON_PIO0_6 address 0x4004 404C) bit description ....................................64

Table 70. IOCON_PIO0_7 register (IOCON_PIO0_7, address 0x4004 4050) bit description ....................................64

Table 71. IOCON_PIO2_9 register (IOCON_PIO2_9, address 0x4004 4054) bit description ....................................65

Table 72. IOCON_PIO2_10 register (IOCON_PIO2_10, address 0x4004 4058) bit description ...................65

Table 73. IOCON_PIO2_2 register (IOCON_PIO2_2, address 0x4004 405C) bit description ....................................66

Table 74. IOCON_PIO0_8 register (IOCON_PIO0_8, address 0x4004 4060) bit description ....................................66

Table 75. IOCON_PIO0_9 register (IOCON_PIO0_9, address 0x4004 4064) bit description ....................................67

Table 76. IOCON_SWCLK_PIO0_10 register (IOCON_SWCLK_PIO0_10, address 0x4004 4068) bit description ................................................................67

Table 77. IOCON_PIO1_10 register (IOCON_PIO1_10, address 0x4004 406C) bit description ...................68

Table 78. IOCON_PIO2_11 register (IOCON_PIO2_11, address 0x4004 4070) bit description ................................................................68

Table 79. IOCON_R_PIO0_11 register (IOCON_R_PIO0_11, address 0x4004 4074) bit description ...................69

Table 80. IOCON_R_PIO1_0 register (IOCON_R_PIO1_0, address 0x4004 4078) bit description ...................70

Table 81. IOCON_R_PIO1_1 register (IOCON_R_PIO1_1, address 0x4004 407C) bit description ...................70

Table 82. IOCON_R_PIO1_2 register (IOCON_R_PIO1_2,

address 0x4004 4080) bit description ................... 71Table 83. IOCON_PIO3_0 register (IOCON_PIO3_0, address

0x4004 4084) bit description .................................... 72Table 84. IOCON_PIO3_1 register (IOCON_PIO3_1, address

0x4004 4088) bit description ................................................................ 72

Table 85. IOCON_PIO2_3 register (IOCON_PIO2_3, address 0x4004 408C) bit description ................................... 73

Table 86. IOCON_SWDIO_PIO1_3 register (IOCON_SWDIO_PIO1_3, address 0x4004 4090) bit description ...................................................................... 73

Table 87. IOCON_PIO1_4 register (IOCON_PIO1_4, address 0x4004 4094) bit description .................................... 74

Table 88. IOCON_PIO1_11 register (IOCON_PIO1_11 address 0x4004 4098) bit description ................... 75

Table 89. IOCON_PIO3_2 register (IOCON_PIO3_2, address 0x4004 409C) bit description ................................................................ 75

Table 90. IOCON_PIO1_5 register (IOCON_PIO1_5, address 0x4004 40A0) bit description ................................... 76

Table 91. IOCON_PIO1_6 register (IOCON_PIO1_6, address 0x4004 40A4) bit description ................................................................ 76

Table 92. IOCON_PIO1_7 register (IOCON_PIO1_7, address 0x4004 40A8) bit description ................................... 77

Table 93. IOCON_PIO3_3 register (IOCON_PIO3_3, address 0x4004 40AC) bit description ................................... 78

Table 94. IOCON SCK location register (IOCON_SCK_LOC, address 0x4004 40B0) bit description ................... 78

Table 95. IOCON DSR location register (IOCON_DSR_LOC, address 0x4004 40B4) bit description ................... 79

Table 96. IOCON DCD location register (IOCON_DCD_LOC, address 0x4004 40B8) bit description ................... 79

Table 97. IOCON RI location register (IOCON_RI_LOC, address 0x4004 40BC) bit description ................... 79

Table 98. LPC111x/LPC11C1x pin configurations ................ 80Table 99. LPC1113/14 and LPC11C12/C14 pin description

table (LQFP48 package) ............................................. 84Table 100. LPC1114 pin description table (PLCC44 package) .

88Table 101. LPC1111/12/13/14 pin description table

(HVQFN33 package) ..................................................... 91Table 102. GPIO configuration ...................................................... 95Table 103. Register overview: GPIO (base address port 0:

0x5000 0000; port 1: 0x5001 0000, port 2: 0x5002 0000; port 3: 0x5003 0000) ........................................ 96

Table 104. GPIOnDATA register (GPIO0DATA, address 0x5000 0000 to 0x5000 3FFC; GPIO1DATA, address 0x5001 0000 to 0x5001 3FFC; GPIO2DATA, address 0x5002 0000 to 0x5002 3FFC; GPIO3DATA, address 0x5003 0000 to 0x5003 3FFC) bit description ................... 96

Table 105. GPIOnDIR register (GPIO0DIR, address 0x5000 8000 to GPIO3DIR, address 0x5003 8000) bit description ...................................................................... 97

Table 106. GPIOnIS register (GPIO0IS, address 0x5000 8004 to GPIO3IS, address 0x5003 8004) bit description . 98

Table 107. GPIOnIBE register (GPIO0IBE, address 0x5000 8008 to GPIO3IBE, address 0x5003 8008) bit description

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 401

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

98Table 108. GPIOnIEV register (GPIO0IEV, address 0x5000 800C

to GPIO3IEV, address 0x5003 800C) bit description 98

Table 109. GPIOnIE register (GPIO0IE, address 0x5000 8010 to GPIO3IE, address 0x5003 8010) bit description .99

Table 110. GPIOnIRS register (GPIO0IRS, address 0x5000 8014 to GPIO3IRS, address 0x5003 8014) bit description 99

Table 111. GPIOnMIS register (GPIO0MIS, address 0x5000 8018 to GPIO3MIS, address 0x5003 8018) bit description ......................................................................99

Table 112. GPIOnIC register (GPIO0IC, address 0x5000 801C to GPIO3IC, address 0x5003 801C) bit description 100

Table 113. UART pin description ................................................ 102Table 114. Register overview: UART (base address: 0x4000

8000) ............................................................................... 103Table 115. UART Receiver Buffer Register (U0RBR - address

0x4000 8000 when DLAB = 0, Read Only) bit description ................................................................... 104

Table 116. UART Transmitter Holding Register (U0THR - address 0x4000 8000 when DLAB = 0, Write Only) bit description ............................................................. 105

Table 117. UART Divisor Latch LSB Register (U0DLL - address 0x4000 8000 when DLAB = 1) bit description . 105

Table 118. UART Divisor Latch MSB Register (U0DLM - address 0x4000 8004 when DLAB = 1) bit description . 105

Table 119. UART Interrupt Enable Register (U0IER - address 0x4000 8004 when DLAB = 0) bit description . 106

Table 120. UART Interrupt Identification Register (U0IIR - address 0x4004 8008, Read Only) bit description ..107

Table 121. UART Interrupt Handling ........................................ 108Table 122. UART FIFO Control Register (U0FCR - address

0x4000 8008, Write Only) bit description .......... 110Table 123. UART Line Control Register (U0LCR - address

0x4000 800C) bit description ............................................................. 110

Table 124. UART0 Modem Control Register (U0MCR - address 0x4000 8010) bit description ............................................................. 111

Table 125. Modem status interrupt generation ................... 113Table 126. UART Line Status Register (U0LSR - address

0x4000 8014, Read Only) bit description .......... 114Table 127. UART Modem Status Register (U0MSR - address

0x4000 8018) bit description ............................................................. 116

Table 128. UART Scratch Pad Register (U0SCR - address 0x4000 8014) bit description ................................. 117

Table 129. Auto-baud Control Register (U0ACR - address 0x4000 8020) bit description ............................................................. 117

Table 130. UART Fractional Divider Register (U0FDR - address 0x4000 8028) bit description ................................. 121

Table 131. Fractional Divider setting look-up table ............ 124Table 132. UART Transmit Enable Register (U0TER - address

0x4000 8030) bit description ................................. 125

Table 133. UART RS485 Control register (U0RS485CTRL - address 0x4000 804C) bit description .................125

Table 134. UART RS-485 Address Match register (U0RS485ADRMATCH - address 0x4000 8050) bit description ....................................................................126

Table 135. UART RS-485 Delay value register (U0RS485DLY - address 0x4000 8054) bit description .................126

Table 136. I2C-bus pin description .............................................133Table 137. Register overview: I2C (base address 0x4000 0000)

133Table 138. I2C Control Set register (I2C0CONSET - address

0x4000 0000) bit description ..................................135Table 139. I2C Status register (I2C0STAT - 0x4000 0004) bit

description ....................................................................136Table 140. I2C Data register (I2C0DAT - 0x4000 0008) bit

description ....................................................................137Table 141. I2C Slave Address register 0 (I2C0ADR0-

0x4000 000C) bit description .................................137Table 142. I2C SCL HIGH Duty Cycle register (I2C0SCLH -

address 0x4000 0010) bit description .................137Table 143. I2C SCL Low duty cycle register (I2C0SCLL -

0x4000 0014) bit description ..................................138Table 144. I2SCLL + I2SCLH values for selected I2C clock

values ..............................................................................138Table 145. I2C Control Clear register (I2C0CONCLR -

0x4000 0018) bit description ..................................139Table 146. I2C Monitor mode control register (I2C0MMCTRL -

0x4000 001C) bit description ..............................................................139

Table 147. I2C Slave Address registers (I2C0ADR[1, 2, 3]- 0x4000 00[20, 24, 28]) bit description .................141

Table 148. I2C Data buffer register (I2C0DATA_BUFFER - 0x4000 002C) bit description .................................142

Table 149. I2C Mask registers (I2C0MASK[0, 1, 2, 3] - 0x4000 00[30, 34, 38, 3C]) bit description ..........142

Table 150. I2C0CONSET and I2C1CONSET used to configure Master mode ................................................................143

Table 151. I2C0CONSET and I2C1CONSET used to configure Slave mode ....................................................................145

Table 152. Abbreviations used to describe an I2C operation ..151

Table 153. I2CONSET used to initialize Master Transmitter mode ...............................................................................152

Table 154. Master Transmitter mode ........................................153Table 155. Master Receiver mode ..............................................155Table 156. I2C0ADR and I2C1ADR usage in Slave Receiver

mode ...............................................................................157Table 157. I2C0CONSET and I2C1CONSET used to initialize

Slave Receiver mode .................................................157Table 158. Slave Receiver mode .................................................157Table 159. Slave Transmitter mode ...........................................161Table 160. Miscellaneous States .................................................164Table 161. SPI pin descriptions ....................................................177Table 162. Register overview: SPI0 (base address 0x4004

0000) ................................................................................178Table 163. Register overview: SPI1 (base address 0x4005

8000) ................................................................................179Table 173. CCAN pin description ................................................193

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 402

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

Table 174. Register overview: CCAN (base address 0x4005 0000) ............................................................................... 194

Table 175. CAN control registers (CANCNTL, address 0x4005 0000) bit description ................................. 196

Table 176. CAN status register (CANSTAT, address 0x4005 0004) bit description ................................. 198

Table 177. CAN error counter (CANEC, address 0x4005 0008) bit description ............................................................. 199

Table 178. CAN bit timing register (CANBT, address 0x4005 000C) bit description ................................. 200

Table 179. CAN interrupt register (CANINT, address 0x4005 0010) bit description ................................. 201

Table 180. CAN test register (CANTEST, address 0x4005 0014) bit description ............................................................. 202

Table 181. CAN baud rate prescaler extension register (CANBRPE, address 0x4005 0018) bit description ..202

Table 182. Message interface registers .................................... 203Table 183. Structure of a message object in the message RAM

204Table 184. CAN message interface command request

registers (CANIF1_CMDREQ, address 0x4005 0020 and CANIF2_CMDREQ, address 0x4005 0080) bit description ................................................................... 204

Table 185. CAN message interface command mask registers (CANIF1_CMDMSK, address 0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - write direction .................................. 205

Table 186. CAN message interface command mask registers (CANIF1_CMDMSK, address 0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - read direction .................................... 206

Table 187. CAN message interface command mask 1 registers (CANIF1_MSK1, address 0x4005 0028 and CANIF2_MASK1, address 0x4005 0088) bit description ................................................................... 207

Table 188. CAN message interface command mask 2 registers (CANIF1_MSK2, address 0x4005 002C and CANIF2_MASK2, address 0x4005 008C) bit description ................................................................... 207

Table 189. CAN message interface command arbitration 1 registers (CANIF1_ARB1, address 0x4005 0030 and CANIF2_ARB1, address 0x4005 0090) bit description ................................................................... 208

Table 190. CAN message interface command arbitration 2 registers (CANIF1_ARB2, address 0x4005 0034 and CANIF2_ARB2, address 0x4005 0094) bit description ................................................................... 208

Table 191. CAN message interface message control registers (CANIF1_MCTRL, address 0x4005 0038 and CANIF2_MCTRL, address 0x4005 0098) bit description ................................................................... 209

Table 192. CAN message interface data A1 registers (CANIF1_DA1, address 0x4005 003C and CANIF2_DA1, address 0x4005 009C) bit description ................................................................... 210

Table 193. CAN message interface data A2 registers (CANIF1_DA2, address 0x4005 0040 and

CANIF2_DA2, address 0x4005 00A0) bit description ....................................................................210

Table 194. CAN message interface data B1 registers (CANIF1_DB1, address 0x4005 0044 and CANIF2_DB1, address 0x4005 00A4) bit description ....................................................................211

Table 195. CAN message interface data B2 registers (CANIF1_DB2, address 0x4005 0048 and CANIF2_DB2, address 0x4005 00A8) bit description ....................................................................211

Table 196. CAN transmission request 1 register (CANTXREQ1, address 0x4005 0100) bit description .................211

Table 197. CAN transmission request 2 register (CANTXREQ2, address 0x4005 0104) bit description .................212

Table 198. CAN new data 1 register (CANND1, address 0x4005 0120) bit description ..................................212

Table 199. CAN new data 2 register (CANND2, address 0x4005 0124) bit description ..................................213

Table 200. CAN interrupt pending 1 register (CANIR1, address 0x4005 0140) bit description ..................................213

Table 201. CAN interrupt pending 2 register (CANIR2, addresses 0x4005 0144) bit description .............214

Table 202. CAN message valid 1 register (CANMSGV1, addresses 0x4005 0160) bit description .............214

Table 203. CAN message valid 2 register (CANMSGV2, address 0x4005 0164) bit description ..................................215

Table 204. CAN clock divider register (CANCLKDIV, address 0x4005 0180) bit description ..................................215

Table 205. Initialization of a transmit object ..........................224Table 206. Initialization of a receive object .............................225Table 207. Parameters of the C_CAN bit time .......................230Table 208. Counter/timer pin description ...............................247Table 209. Register overview: 16-bit counter/timer 0 CT16B0

(base address 0x4000 C000) ...................................248Table 210. Register overview: 16-bit counter/timer 1 CT16B1

(base address 0x4001 0000) ....................................249Table 211. Interrupt Register (TMR16B0IR - address

0x4000 C000 and TMR16B1IR - address 0x4001 0000) bit description ..................................250

Table 212. Timer Control Register (TMR16B0TCR - address 0x4000 C004 and TMR16B1TCR - address 0x4001 0004) bit description ..................................250

Table 213. Match Control Register (TMR16B0MCR - address 0x4000 C014 and TMR16B1MCR - address 0x4001 0014) bit description ..................................251

Table 214. Capture Control Register (TMR16B0CCR - address 0x4000 C028 and TMR16B1CCR - address 0x4001 0028) bit description ..................................252

Table 215. External Match Register (TMR16B0EMR - address 0x4000 C03C and TMR16B1EMR - address 0x4001 003C) bit description .................................253

Table 216. External match control .............................................254Table 217. Count Control Register (TMR16B0CTCR - address

0x4000 C070 and TMR16B1CTCR - address 0x4001 0070) bit description ..................................254

Table 218. PWM Control Register (TMR16B0PWMC - address 0x4000 C074 and TMR16B1PWMC- address 0x4001 0074) bit description ..................................255

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 403

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

Table 219. Counter/timer pin description .............................. 261Table 220. Register overview: 32-bit counter/timer 0 CT32B0

(base address 0x4001 4000) ................................... 262Table 221. Register overview: 32-bit counter/timer 1 CT32B1

(base address 0x4001 8000) ................................... 263Table 227. External match control ............................................ 268Table 230. Register overview: Watchdog timer (base address

0x4000 4000) ............................................................... 276Table 231. Watchdog Mode register (WDMOD - address

0x4000 4000) bit description ................................. 276Table 232. Watchdog operating modes selection .............. 277Table 233. Watchdog Constant register (WDTC - address

0x4000 4004) bit description ................................. 278Table 234. Watchdog Feed register (WDFEED - address

0x4000 4008) bit description ................................. 278Table 235. Watchdog Timer Value register (WDTV - address

0x4000 000C) bit description ................................. 278Table 236. Register overview: SysTick timer (base address

0xE000 E000) ............................................................... 281Table 237. System Timer Reload value register (SYST_RVR -

0xE000 E014) bit description ................................. 282Table 238. System Timer Current value register (SYST_CVR -

0xE000 E018) bit description ................................. 282Table 239. System Timer Calibration value register

(SYST_CALIB - 0xE000 E01C) bit description .... 283Table 240. ADC pin description .................................................. 284Table 241. Register overview: ADC (base address 0x4001

C000) ............................................................................... 285Table 242. A/D Control Register (AD0CR - address

0x4001 C000) bit description ................................. 286Table 243. A/D Global Data Register (AD0GDR - address

0x4001 C004) bit description ................................. 288Table 244. A/D Status Register (AD0STAT - address

0x4001 C030) bit description ................................. 288Table 245. A/D Interrupt Enable Register (AD0INTEN - address

0x4001 C00C) bit description ................................ 289Table 246. A/D Data Registers (AD0DR0 to AD0DR7 -

addresses 0x4001 C010 to 0x4001 C02C) bit description ................................................................... 289

Table 247. LPC111x/LPC11Cx flash configurations ............. 291Table 248. Flash sector configuration ...................................... 295Table 249. Code Read Protection options .............................. 296Table 250. Code Read Protection hardware/software

interaction .................................................................... 297Table 251. ISP commands allowed for different CRP levels .....

298Table 252. UART ISP command summary .............................. 300Table 253. UART ISP Unlock command ................................... 301Table 254. UART ISP Set Baud Rate command ...................... 301Table 255. UART ISP Echo command ....................................... 301Table 256. UART ISP Write to RAM command ....................... 302Table 257. UART ISP Read Memory command ..................... 303Table 258. UART ISP Prepare sector(s) for write operation

command ...................................................................... 304Table 259. UART ISP Copy command ....................................... 304Table 260. UART ISP Go command ............................................ 305Table 261. UART ISP Erase sector command ......................... 305Table 262. UART ISP Blank check sector command ............ 306

Table 263. UART ISP Read Part Identification command ...306Table 264. LPC111x and LPC11C1x part identification

numbers .........................................................................306Table 265. UART ISP Read Boot Code version number

command ......................................................................307Table 266. UART ISP Compare command ................................307Table 267. UART ISP ReadUID command .................................307Table 268. UART ISP Return Codes Summary ........................308Table 269. C_CAN ISP and UART ISP command summary 309Table 270. C_CAN ISP object directory .....................................310Table 271. LPC11C1x part identification numbers ...............312Table 272. C_CAN ISP SDO abort codes ...................................312Table 273. IAP Command Summary ..........................................314Table 274. IAP Prepare sector(s) for write operation

command ......................................................................315Table 275. IAP Copy RAM to flash command .........................316Table 276. IAP Erase Sector(s) command .................................316Table 277. IAP Blank check sector(s) command ....................317Table 278. IAP Read Part Identification command ...............317Table 279. IAP Read Boot Code version number command ....

317Table 280. IAP Compare command ...........................................318Table 281. IAP Reinvoke ISP ..........................................................318Table 282. IAP ReadUID command ............................................318Table 283. IAP Status Codes Summary .....................................319Table 284. Memory mapping in debug mode .......................319Table 285. Flash configuration register (FLASHCFG, address

0x4003 C010) bit description .................................320Table 286. Serial Wire Debug pin description ........................321Table 287. Summary of processor mode and stack use

options ............................................................................326Table 288. Core register set summary ......................................326Table 289. PSR register combinations ......................................328Table 290. APSR bit assignments ................................................328Table 291. IPSR bit assignments .................................................329Table 292. EPSR bit assignments ................................................329Table 293. PRIMASK register bit assignments ........................330Table 294. CONTROL register bit assignments ......................330Table 295. Memory access behavior .........................................335Table 296. Properties of different exception types ..............338Table 297. Exception return behavior .......................................342Table 298. Cortex-M0 instructions .............................................345Table 299. CMSIS intrinsic functions to generate some

Cortex-M0 instructions .............................................347Table 300. insic functions to access the special registers ..348Table 301. Condition code suffixes ............................................353Table 302. Access instructions .....................................................353Table 303. Data processing instructions ..................................360Table 304. ADC, ADD, RSB, SBC and SUB operand restrictions

362Table 305. Branch and control instructions ............................370Table 306. Branch ranges ..............................................................371Table 307. Miscellaneous instructions ......................................371Table 308. Core peripheral register regions ...........................379Table 309. NVIC register summary .............................................379Table 310. CMISIS access NVIC functions .................................380Table 311. ISER bit assignments ..................................................380Table 312. ICER bit assignments .................................................381

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 404

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

Table 313. ISPR bit assignments ................................................. 381Table 314. ICPR bit assignments ................................................ 382Table 315. IPR bit assignments ................................................... 382Table 316. CMSIS functions for NVIC control ......................... 384Table 317. Summary of the SCB registers ............................... 385Table 318. CPUID register bit assignments ............................ 385Table 319. ICSR bit assignments ................................................ 386Table 320. AIRCR bit assignments ............................................. 388Table 321. SCR bit assignments .................................................. 388Table 322. CCR bit assignments ................................................. 389Table 323. System fault handler priority fields ..................... 390Table 324. SHPR2 register bit assignments ............................ 390Table 325. SHPR3 register bit assignments ............................ 390Table 326. System timer registers summary .......................... 391Table 327. SYST_CSR bit assignments ..................................... 391Table 328. SYST_RVR bit assignments ..................................... 392Table 329. SYST_CVR bit assignments ..................................... 392Table 330. SYST_CALIB register bit assignments ................. 392Table 331. Cortex M0- instruction summary ......................... 393Table 332. Abbreviations .............................................................. 397

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 405

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

22.5 Figures

Fig 1. LPC111x/LPC11C1x block diagram................................ 7Fig 2. LPC111x/LPC11C1x memory map ...............................10Fig 3. LPC111x/LPC11C1x CGU block diagram....................12Fig 4. System PLL block diagram..............................................40Fig 5. Standard I/O pin configuration .....................................50Fig 6. Pin configuration LQFP48 package .............................81Fig 7. Pin configuration PLCC44 package .............................82Fig 8. Pin configuration HVQFN 33 package ........................83Fig 9. Pin configuration LQFP48 package .............................84Fig 10. Masked write operation to the GPIODATA register....

101Fig 11. Masked read operation ................................................. 101Fig 12. Auto-RTS Functional Timing ....................................... 113Fig 13. Auto-CTS Functional Timing ....................................... 114Fig 14. Auto-baud a) mode 0 and b) mode 1 waveform . 120Fig 15. Algorithm for setting UART dividers ........................ 123Fig 16. UART block diagram....................................................... 130Fig 17. I2C-bus configuration..................................................... 132Fig 18. Format in the Master Transmitter mode................. 143Fig 19. Format of Master Receiver mode .............................. 144Fig 20. A Master Receiver switches to Master Transmitter

after sending Repeated START................................... 144Fig 21. Format of Slave Receiver mode ................................. 145Fig 22. Format of Slave Transmitter mode ........................... 146Fig 23. I2C serial interface block diagram.............................. 147Fig 24. Arbitration procedure.................................................... 149Fig 25. Serial clock synchronization........................................ 150Fig 26. Format and states in the Master Transmitter mode...

154Fig 27. Format and states in the Master Receiver mode . 156Fig 28. Format and states in the Slave Receiver mode .... 160Fig 29. Format and states in the Slave Transmitter mode ......

163Fig 30. Simultaneous Repeated START conditions from two

masters................................................................................ 165Fig 31. Forced access to a busy I2C-bus................................ 166Fig 32. Recovering from a bus obstruction caused by a LOW

level on SDA ...................................................................... 166Fig 33. Texas Instruments Synchronous Serial Frame

Format: a) Single and b) Continuous/back-to-back Two Frames Transfer ...................................................... 185

Fig 34. SPI frame format with CPOL=0 and CPHA=0 (a) Single and b) Continuous Transfer) .......................... 186

Fig 35. SPI frame format with CPOL=0 and CPHA=1 ........ 187Fig 36. SPI frame format with CPOL = 1 and CPHA = 0 (a)

Single and b) Continuous Transfer) .......................... 188Fig 37. SPI Frame Format with CPOL = 1 and CPHA = 1 .. 189Fig 38. Microwire frame format (single transfer)................ 190Fig 39. Microwire frame format (continuos transfers)...... 190Fig 40. Microwire frame format setup and hold details .. 191Fig 41. C_CAN block diagram.................................................... 193Fig 42. CAN core in Silent mode............................................... 218Fig 43. CAN core in Loop-back mode..................................... 218Fig 44. CAN core in Loop-back mode combined with Silent

mode.................................................................................... 219Fig 45. Block diagram of a message object transfer ......... 221

Fig 46. Reading a message from the FIFO buffer to the message buffer .................................................................228

Fig 47. Bit timing.............................................................................231Fig 48. CAN API pointer structure.............................................233Fig 49. Sample PWM waveforms with a PWM cycle length of

100 (selected by MR3) and MAT3:0 enabled as PWM outputs by the PWCON register. ................................257

Fig 50. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled..............257

Fig 51. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled...............258

Fig 52. 16-bit counter/timer block diagram .........................259Fig 53. Sample PWM waveforms with a PWM cycle length of

100 (selected by MR3) and MAT3:0 enabled as PWM outputs by the PWCON register. ................................271

Fig 54. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled..............271

Fig 55. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled...............272

Fig 56. 32-bit counter/timer block diagram .........................273Fig 57. Watchdog block diagram..............................................279Fig 58. System tick timer block diagram................................281Fig 59. Boot process flowchart ..................................................294Fig 60. IAP parameter passing ...................................................315Fig 61. Cortex-M0 implementation..........................................323Fig 62. Processor core register set............................................326Fig 63. APSR, IPSR, EPSR register bit assignments..............327Fig 64. Generic ARM Cortex-M0 memory map ....................333Fig 65. Memory ordering restrictions......................................334Fig 66. Little-endian format ........................................................336Fig 67. Vector table ........................................................................339Fig 68. Exception entry stack contents...................................341Fig 69. ASR #3 ..................................................................................349Fig 70. LSR #3 ...................................................................................350Fig 71. LSL #3 ...................................................................................350Fig 72. ROR #3..................................................................................351Fig 73. IPR register..........................................................................382

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 406

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

22.6 Contents

第 1章 : LPC111x/LPC11C1xの概要

1.1 はじめに ................................................................. 31.2 特長......................................................................... 31.3 注文情報 ................................................................. 5

1.4 ブロック図 ............................................................. 71.5 ARM Cortex-M0プロセッサ................................. 8

第 2章 : LPC111x/LPC11C1xメモリマッピング

2.1 この章を読む前に .................................................. 9 2.2 メモリマップ.......................................................... 9

第 3章 : LPC111x/LPC11C1xシステム構成

3.1 この章を読む前に ................................................ 113.2 概要....................................................................... 113.3 ピンの説明............................................................ 113.4 クロックと電力の制御......................................... 113.5 レジスタの説明.................................................... 123.5.1 システムメモリリマップレジスタ..........................143.5.2 ペリフェラルリセット制御レジスタ.....................143.5.3 システム PLL制御レジスタ.......................................153.5.4 システム PLLステータスレジスタ .........................153.5.5 システムオシレータ制御レジスタ..........................163.5.6 ウォッチドッグオシレータ制御レジスタ............163.5.7 内部共振クリスタル制御レジスタ..........................173.5.8 システムリセットステータスレジスタ ................183.5.9 システム PLLクロックソース選択レジスタ.......183.5.10 システム PLLクロックソース更新イネーブルレ

ジスタ.................................................................................193.5.11 メインクロックソース選択レジスタ.....................193.5.12 メインクロックソース更新イネーブルレジスタ..

203.5.13 システム AHBクロック分周器レジスタ...............203.5.14 システム AHBクロック制御レジスタ...................213.5.15 SPI0クロック分周器レジスタ..................................223.5.16 UARTクロック分周器レジスタ................................233.5.17 SPI1クロック分周器レジスタ..................................233.5.18 WDTクロックソース選択レジスタ........................233.5.19 WDTクロックソース更新イネーブルレジスタ.243.5.20 WDTクロック分周器レジスタ.................................243.5.21 CLKOUTクロックソース選択レジスタ.................243.5.22 CLKOUTクロックソース更新イネーブルレジス

タ ..........................................................................................253.5.23 CLKOUTクロック分周器レジスタ..........................253.5.24 PORキャプチャの PIOステータスレジスタ 0...253.5.25 PORキャプチャの PIOステータスレジスタ 1...263.5.26 BOD制御レジスタ.........................................................263.5.27 システム tickカウンタ校正レジスタ.....................273.5.28 スタートロジックエッジ制御レジスタ 0.............273.5.29 スタートロジック信号イネーブルレジスタ 0 ...283.5.30 スタートロジックリセットレジスタ 0 .................28

3.5.31 スタートロジックステータスレジスタ 0 ............ 293.5.32 ディープスリープモード設定レジスタ................ 293.5.33 ウェイクアップ設定レジスタ.................................. 303.5.34 パワーダウン設定レジスタ....................................... 323.5.35 デバイス IDレジスタ.................................................. 333.6 リセット............................................................... 333.7 ブラウンアウト検出 ............................................ 343.8 パワーマネージメント......................................... 343.8.1 アクティブモード......................................................... 343.8.1.1 アクティブモードの電力設定.................................. 343.8.2 スリープモード ............................................................. 353.8.2.1 スリープモードの電力設定....................................... 353.8.2.2 スリープモードのプログラミング......................... 353.8.2.3 スリープモードからのウェイクアップ................ 363.8.3 ディープスリープモード........................................... 363.8.3.1 ディープスリープモードの電力設定.................... 363.8.3.2 ディープスリープモードのプログラミング...... 363.8.3.3 ディープスリープモードからのウェイクアップ..

373.8.4 ディープパワーダウンモード.................................. 383.8.4.1 ディープパワーダウンモードの電力設定........... 383.8.4.2 ディープパワーダウンモードのプログラミング..

383.8.4.3 ディープパワーダウンモードからのウェイク

アップ ................................................................................ 383.9 ディープスリープモードの詳細.......................... 383.9.1 IRCオシレータ............................................................... 383.9.2 スタートロジック......................................................... 383.9.3 多目的カウンタ /タイマを使用したセルフウェ

イクアップイベントの生成 ....................................... 393.10 システム PLLの機能説明.................................... 403.10.1 ロック検出器.................................................................. 403.10.2 パワーダウン制御......................................................... 413.10.3 分周比のプログラミング........................................... 413.10.4 周波数の選択.................................................................. 413.10.4.1 通常モード....................................................................... 413.10.4.2 パワーダウンモード.................................................... 423.11 フラッシュメモリへのアクセス.......................... 42

第 4章 : LPC111x/LPC11C1x PMU(パワーマネージメントユニット)

4.1 概要....................................................................... 444.2 レジスタの説明.................................................... 444.2.1 電力制御レジスタ..........................................................44

4.2.2 汎用レジスタ 0~ 3...................................................... 454.2.3 汎用レジスタ 4............................................................... 454.3 機能説明............................................................... 46

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 407

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

4.3.1 ディープパワーダウンモードへの切り替え.......46 4.3.2 ディープパワーダウンモードの終了.................... 46

第 5章 : LPC111x/LPC11C1x割り込みコントローラ

5.1 この章を読む前に ................................................ 475.2 概要....................................................................... 47

5.3 特長 ...................................................................... 475.4 割り込みソース.................................................... 47

第 6章 : LPC111x/LPC11C1x I/O設定

6.1 この章を読む前に ................................................ 496.2 概要....................................................................... 496.3 概説....................................................................... 496.3.1 ピンの機能........................................................................506.3.2 ピンのモード...................................................................506.3.3 ヒステリシス...................................................................51

6.3.4 A/Dモード....................................................................... 516.3.5 I2Cモード......................................................................... 516.4 レジスタの説明.................................................... 526.4.1 I/O設定レジスタ IOCON_PIOn ................................ 556.4.2 IOCON位置レジスタ................................................... 78

第 7章 : LPC111x/LPC11C1xピン構成

7.1 この章を読む前に ................................................ 807.2 LPC111xピン構成............................................... 81

7.3 LPC11C12/C14ピン構成.................................... 847.4 LPC111x/LPC11C1xピンの説明 ....................... 84

第 8章 : LPC111x/LPC11C1x汎用 I/O(GPIO)

8.1 この章を読む前に ................................................ 958.2 概要....................................................................... 958.2.1 特長 .....................................................................................958.3 レジスタの説明.................................................... 968.3.1 GPIOデータレジスタ...................................................968.3.2 GPIOデータ方向レジスタ..........................................978.3.3 GPIO割り込み検知レジスタ.....................................988.3.4 GPIO割り込み両エッジ検知レジスタ...................98

8.3.5 GPIO割り込みイベントレジスタ........................... 988.3.6 GPIO割り込みマスクレジスタ................................ 988.3.7 GPIO原割り込みステータスレジスタ.................. 998.3.8 GPIOマスク割り込みステータスレジスタ......... 998.3.9 GPIO割り込みクリアレジスタ................................ 998.4 機能説明............................................................. 1008.4.1 書き込み /読み取りデータ操作............................100

第 9章 : LPC111x/LPC11Cx汎用非同期送受信回路(UART)

9.1 この章を読む前に .............................................. 1029.2 基本構成 ............................................................. 1029.3 特長..................................................................... 1029.4 ピンの説明.......................................................... 1029.5 クロックと電力の制御....................................... 1039.6 レジスタの説明.................................................. 1039.6.1 UARTレシーババッファレジスタ(U0RBR -

0x4000 8000、DLAB = 0のとき、読み取り専用).104

9.6.2 UARTトランスミッタ保持レジスタ(U0THR - 0x4000 8000、DLAB = 0のとき、書き込み専用).105

9.6.3 UARTディバイザラッチ LSBおよび MSBレジスタ(U0DLL - 0x4000 8000および U0DLM - 0x4000 8004、DLAB = 1のとき).......................... 105

9.6.4 UART割り込みイネーブルレジスタ(U0IER - 0x4000 8004、DLAB = 0のとき).......................... 106

9.6.5 UART割り込み識別レジスタ(U0IIR - 0x4004 8008、読み取り専用)............................... 106

9.6.6 UART FIFO制御レジスタ(U0FCR - 0x4000 8008、書き込み専用).............................................................. 110

9.6.7 UARTライン制御レジスタ(U0LCR - 0x4000 800C)............................................................... 110

9.6.8 UARTモデム制御レジスタ......................................1119.6.8.1 自動フロー制御 ...........................................................1129.6.8.1.1 自動 RTS......................................................................... 112

9.6.8.1.2 自動 CTS ......................................................................... 1139.6.9 UARTラインステータスレジスタ(U0LSR -

0x4000 8014、読み取り専用)................................1149.6.10 UARTモデムステータスレジスタ........................1169.6.11 UARTスクラッチパッドレジスタ(U0SCR -

0x4000 801C)................................................................1179.6.12 UART自動通信速度設定制御レジスタ(U0ACR -

0x4000 8020)................................................................1179.6.13 自動通信速度設定.......................................................1189.6.14 自動通信速度設定モード.........................................1199.6.15 UART分数分周器レジスタ(U0FDR -

0x4000 8028)................................................................1209.6.15.1 ボーレートの計算.......................................................1229.6.15.1.1 例 1: UART_PCLK = 14.7456 MHz、BR = 9600.. 1249.6.15.1.2 例 2: UART_PCLK = 12 MHz、BR = 115200........ 1249.6.16 UART送信イネーブルレジスタ(U0TER -

0x4000 8030)................................................................1249.6.17 UART RS485制御レジスタ(U0RS485CTRL -

0x4000 804C)................................................................1259.6.18 UART RS-485アドレスマッチレジスタ

(U0RS485ADRMATCH - 0x4000 8050).................1269.6.19 UART1 RS-485遅延値レジスタ(U0RS485DLY -

0x4000 8054)................................................................1269.6.20 RS-485/EIA-485の動作モード................................1279.7 アーキテクチャ.................................................. 128

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 408

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

第 10章 : LPC111x/LPC11C1x I2Cバスインターフェース

10.1 この章を読む前に .............................................. 13110.2 基本構成 ............................................................. 13110.3 特長..................................................................... 13110.4 用途..................................................................... 13210.5 概説..................................................................... 13210.5.1 I2C Fastモードプラス................................................13310.6 ピンの説明.......................................................... 13310.7 クロックと電力の制御....................................... 13310.8 レジスタの説明.................................................. 13310.8.1 I2C制御設定レジスタ(I2C0CONSET -

0x4000 0000)................................................................ 13410.8.2 I2Cステータスレジスタ(I2C0STAT -

0x4000 0004)................................................................ 13610.8.3 I2Cデータレジスタ(I2C0DAT - 0x4000 0008)13710.8.4 I2Cスレーブアドレスレジスタ 0(I2C0ADR0-

0x4000 000C)............................................................... 13710.8.5 I2C SCL HIGHおよび LOWデューティサイクルレ

ジスタ(I2C0SCLH - 0x4000 0010およびI2C0SCLL- 0x4000 0014).......................................... 137

10.8.5.1 適切な I2Cデータ速度およびデューティサイクルの選択.............................................................................. 138

10.8.6 I2C制御クリアレジスタ(I2C0CONCLR - 0x4000 0018)................................................................ 138

10.8.7 I2Cモニターモード制御レジスタ(I2C0MMCTRL - 0x4000 001C)............................................................... 139

10.8.7.1 モニターモードでの割り込み................................14010.8.7.2 モニターモードでのアービトレーションロスト..

14110.8.8 I2Cスレーブアドレスレジスタ(I2C0ADR[1, 2, 3] -

0x4000 00[20, 24, 28])............................................... 14110.8.9 I2Cデータバッファレジスタ(I2C0DATA_BUFFER

- 0x4000 002C)............................................................. 14110.8.10 I2Cマスクレジスタ(I2C0MASK[0, 1, 2, 3] -

0x4000 00[30, 34, 38, 3C])........................................ 14210.9 I2Cの動作モード................................................ 14210.9.1 マスタトランスミッタモード................................14310.9.2 マスタレシーバモード..............................................14410.9.3 スレーブレシーバモード.........................................14410.9.4 スレーブトランスミッタモード...........................14510.10 I2Cの実装と動作................................................ 14710.10.1 入力フィルタと出力ステージ................................14810.10.2 アドレスレジスタ、I2ADDR0~ I2ADDR3....... 14810.10.3 アドレスマスクレジスタ、I2MASK0~ I2MASK3 .

14810.10.4 コンパレータ................................................................14810.10.5 シフトレジスタ、I2DAT .......................................... 14810.10.6 アービトレーションと同期化のロジック.........14910.10.7 シリアルクロックジェネレータ...........................15010.10.8 タイミングと制御.......................................................15010.10.9 制御レジスタ、I2CONSETおよび I2CONCLR .. 15010.10.10 ステータスデコーダとステータスレジスタ....15110.11 I2Cの動作モードの詳細..................................... 15110.11.1 マスタトランスミッタモード................................15210.11.2 マスタレシーバモード..............................................15510.11.3 スレーブレシーバモード.........................................15610.11.4 スレーブトランスミッタモード...........................161

10.11.5 その他の状態................................................................16310.11.5.1 I2STAT = 0xF8 ................................................................16310.11.5.2 I2STAT = 0x00................................................................16410.11.6 いくつかの特殊なケース.........................................16410.11.6.1 同時に 2つのマスタからの Repeated START状態

16410.11.6.2 アービトレーションロスト後のデータ転送....16510.11.6.3 I2Cバスへの強制アクセス.......................................16510.11.6.4 SCLまたは SDA上の LOWレベルによって妨害

される I2Cバス .............................................................16610.11.6.5 バスエラー.....................................................................16710.11.7 I2C状態サービスルーチン.......................................16710.11.8 初期化..............................................................................16710.11.9 I2C割り込みサービス................................................16710.11.10 状態サービスルーチン..............................................16710.11.11 状態サービスをアプリケーションに適合させる..

16810.12 ソフトウェア例.................................................. 16810.12.1 初期化ルーチン ...........................................................16810.12.2 マスタ送信機能の開始..............................................16810.12.3 マスタ受信機能の開始..............................................16810.12.4 I2C割り込みルーチン................................................16910.12.5 モード共通の状態.......................................................16910.12.5.1 状態 : 0x00 ......................................................................16910.12.5.2 マスタの状態................................................................16910.12.5.3 状態 : 0x08 ......................................................................16910.12.5.4 状態 : 0x10 ......................................................................16910.12.6 マスタトランスミッタの状態................................17010.12.6.1 状態 : 0x18 ......................................................................17010.12.6.2 状態 : 0x20 ......................................................................17010.12.6.3 状態 : 0x28 ......................................................................17010.12.6.4 状態 : 0x30 ......................................................................17010.12.6.5 状態 : 0x38 ......................................................................17110.12.7 マスタレシーバの状態..............................................17110.12.7.1 状態 : 0x40 ......................................................................17110.12.7.2 状態 : 0x48 ......................................................................17110.12.7.3 状態 : 0x50 ......................................................................17110.12.7.4 状態 : 0x58 ......................................................................17110.12.8 スレーブレシーバの状態.........................................17210.12.8.1 状態 : 0x60 ......................................................................17210.12.8.2 状態 : 0x68 ......................................................................17210.12.8.3 状態 : 0x70 ......................................................................17210.12.8.4 状態 : 0x78 ......................................................................17210.12.8.5 状態 : 0x80 ......................................................................17310.12.8.6 状態 : 0x88 ......................................................................17310.12.8.7 状態 : 0x90 ......................................................................17310.12.8.8 状態 : 0x98 ......................................................................17310.12.8.9 状態 : 0xA0......................................................................17410.12.9 スレーブトランスミッタの状態...........................17410.12.9.1 状態 : 0xA8......................................................................17410.12.9.2 状態 : 0xB0 ......................................................................17410.12.9.3 状態 : 0xB8 ......................................................................17410.12.9.4 状態 : 0xC0......................................................................17510.12.9.5 状態 : 0xC8......................................................................175

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 409

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

第 11章 : LPC111x/LPC11C1x SSP機能搭載 SPI0/1

11.1 この章を読む前に .............................................. 17611.2 基本構成 ............................................................. 17611.3 特長..................................................................... 17611.4 概要..................................................................... 17611.5 ピンの説明.......................................................... 17711.6 クロックと電力の制御....................................... 17811.7 レジスタの説明.................................................. 17811.7.1 SPI/SSP制御レジスタ 0............................................ 17911.7.2 SPI/SSP0制御レジスタ 1 ......................................... 18011.7.3 SPI/SSPデータレジスタ...........................................18111.7.4 SPI/SSPステータスレジスタ..................................18111.7.5 SPI/SSPクロックプリスケールレジスタ...........18211.7.6 SPI/SSP割り込みマスクセット /クリアレジスタ

18211.7.7 SPI/SSP原割り込みステータスレジスタ...........183

11.7.8 SPI/SSPマスク割り込みステータスレジスタ..18411.7.9 SPI/SSP割り込みクリアレジスタ.........................18411.8 機能説明............................................................. 18511.8.1 Texas Instruments同期シリアルフレーム形式18511.8.2 SPIフレーム形式.........................................................18511.8.2.1 クロック極性(CPOL)とクロック位相(CPHA)

の制御 ..............................................................................18611.8.2.2 SPI形式(CPOL=0、CPHA=0の場合)................18611.8.2.3 SPI形式(CPOL=0、CPHA=1の場合)................18711.8.2.4 SPI形式(CPOL = 1、CPHA = 0の場合)............18811.8.2.5 SPI形式(CPOL = 1、CPHA = 1の場合)............18911.8.3 Semiconductor Microwireフレーム形式...........19011.8.3.1 Microwireモードの SKに対する CSのセットアッ

プ /ホールドタイム要件 ..........................................191

第 12章 : LPC11C1x C_CAN

12.1 この章を読む前に .............................................. 19212.2 基本構成 ............................................................. 19212.3 特長..................................................................... 19212.4 概説..................................................................... 19212.5 ピンの説明.......................................................... 19312.6 クロックと電力の制御....................................... 19312.7 リセットと割り込みの設定................................ 19412.8 レジスタの説明.................................................. 19412.8.1 CANプロトコルレジスタ........................................19612.8.1.1 CAN制御レジスタ......................................................19612.8.1.2 CANステータスレジスタ........................................19712.8.1.3 CANエラーカウンタ.................................................19912.8.1.4 CANビットタイミングレジスタ ..........................20012.8.1.5 CAN割り込みレジスタ.............................................20112.8.1.6 CANテストレジスタ.................................................20112.8.1.7 CANボーレートプリスケーラ拡張レジスタ ...20212.8.2 メッセージインターフェースレジスタ .............20312.8.2.1 メッセージオブジェクト.........................................20312.8.2.2 CANメッセージインターフェースコマンド要求

レジスタ ......................................................................... 20412.8.2.3 CANメッセージインターフェースコマンドマス

クレジスタ .................................................................... 20412.8.2.4 IF1および IF2メッセージバッファレジスタ...20712.8.2.4.1 CANメッセージインターフェースコマンドマス

ク 1レジスタ............................................................... 20712.8.2.4.2 CANメッセージインターフェースコマンドマス

ク 2レジスタ............................................................... 20712.8.2.4.3 CANメッセージインターフェースコマンドアー

ビトレーション 1レジスタ ................................... 20812.8.2.4.4 CANメッセージインターフェースコマンドアー

ビトレーション 2レジスタ ................................... 20812.8.2.4.5 CANメッセージインターフェースメッセージ制

御レジスタ ................................................................... 20912.8.2.4.6 CANメッセージインターフェースデータ A1レ

ジスタ............................................................................. 21012.8.2.4.7 CANメッセージインターフェースデータ A2レ

ジスタ............................................................................. 21012.8.2.4.8 CANメッセージインターフェースデータ B1レジ

スタ ................................................................................. 211

12.8.2.4.9 CANメッセージインターフェースデータ B2レジスタ .................................................................................. 211

12.8.3 メッセージハンドラのレジスタ...........................21112.8.3.1 CAN送信要求 1レジスタ........................................21112.8.3.2 CAN送信要求 2レジスタ........................................21212.8.3.3 CAN新規データ 1レジスタ ...................................21212.8.3.4 CAN新規データ 2レジスタ ...................................21312.8.3.5 CAN割り込み保留 1レジスタ...............................21312.8.3.6 CAN割り込み保留 2レジスタ...............................21412.8.3.7 CANメッセージ有効 1レジスタ..........................21412.8.3.8 CANメッセージ有効 2レジスタ..........................21412.8.4 CANタイミングレジスタ........................................21512.8.4.1 CANクロック分周器レジスタ...............................21512.9 機能説明............................................................. 21512.9.1 リセット後の C_CANコントローラの状態......21512.9.2 C_CANの動作モード.................................................21612.9.2.1 ソフトウェアによる初期化.....................................21612.9.2.2 CANメッセージの転送.............................................21612.9.2.3 自動再送信ディスエーブルモード(DAR).......21712.9.2.4 テストモード................................................................21712.9.2.4.1 サイレントモード...................................................... 21712.9.2.4.2 ループバックモード................................................. 21812.9.2.4.3 ループバックモードとサイレントモードとの組

み合せ ............................................................................. 21912.9.2.4.4 ベーシックモード...................................................... 21912.9.2.4.5 CAN_TXピンのソフトウェア制御 ...................... 22012.9.3 CANメッセージハンドラ........................................22012.9.3.1 メッセージオブジェクトの管理...........................22112.9.3.2 IFxレジスタとメッセージ RAM間でのデータ転

送........................................................................................22212.9.3.3 CANコアのシフトレジスタとメッセージバッ

ファ間でのメッセージの送信 ................................22212.9.3.4 受信メッセージの受信フィルタリング..............22212.9.3.4.1 データフレームの受信............................................. 22312.9.3.4.2 リモートフレームの受信........................................ 22312.9.3.5 受信 /送信の優先順位..............................................22412.9.3.6 送信オブジェクトの設定.........................................22412.9.3.7 送信オブジェクトの更新.........................................22412.9.3.8 受信オブジェクトの設定.........................................225

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 410

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

12.9.3.9 受信メッセージの処理..............................................22512.9.3.10 FIFOバッファの設定.................................................22612.9.3.10.1FIFOバッファによるメッセージ受信................ 22612.9.3.10.2FIFOバッファからの読み取り.............................. 227

12.9.4 割り込みの処理 ...........................................................22812.9.5 ビットタイミング.......................................................22912.9.5.1 ビット時間とビットレート.....................................230

第 13章 : LPC11C1x C_CANオンチップドライバ

13.1 この章を読む前に .............................................. 23213.2 特長..................................................................... 23213.3 概要..................................................................... 23213.3.1 完全準拠の CANopenとの相違.............................23213.4 APIの説明.......................................................... 23313.4.1 C_CAN APIの呼び出し..............................................23313.4.2 CAN初期化....................................................................23413.4.3 CAN割り込みハンドラ.............................................23413.4.4 CAN Rxメッセージオブジェクトの設定...........23513.4.5 CAN受信........................................................................23513.4.6 CAN送信........................................................................23613.4.7 CANopen設定..............................................................23613.4.8 CANopenハンドラ.....................................................238

13.4.9 CAN/CANopenコールバック関数........................23813.4.10 CANメッセージ受信コールバック......................23913.4.11 CANメッセージ送信コールバック......................23913.4.12 CANエラーコールバック........................................24013.4.13 CANopen SDO高速読み取りコールバック......24013.4.14 CANopen SDO高速書き込みコールバック......24113.4.15 CANopen SDOセグメント読み取りコールバック

24213.4.16 CANopen SDOセグメント書き込みコールバック

24313.4.17 CANopenフォールバック SDOハンドラコール

バック ..............................................................................244

第 14章 : LPC111x/LPC11C1x 16ビットカウンタ /タイマ(CT16B0/1)

14.1 この章を読む前に .............................................. 24614.2 基本構成 ............................................................. 24614.3 特長..................................................................... 24614.4 用途..................................................................... 24714.5 説明..................................................................... 24714.6 ピンの説明.......................................................... 24714.7 クロックと電力の制御....................................... 24714.8 レジスタの説明.................................................. 24814.8.1 割り込みレジスタ(TMR16B0IRおよび

TMR16B1IR).................................................................. 24914.8.2 タイマ制御レジスタ(TMR16B0TCRおよび

TMR16B1TCR).............................................................. 25014.8.3 タイマカウンタ(TMR16B0TC - アドレス 0x4000

C008、TMR16B1TC -アドレス 0x4001 0008)25014.8.4 プリスケールレジスタ(TMR16B0PR - アドレス

0x4000 C00C、TMR16B1PR -アドレス0x4001 000C)............................................................... 250

14.8.5 プリスケールカウンタレジスタ(TMR16B0PC - アドレス 0x4000 C010、TMR16B1PC - アドレス0x4001 0010)................................................................ 251

14.8.6 マッチ制御レジスタ(TMR16B0MCRおよびTMR16B1MCR)..............................................................251

14.8.7 マッチレジスタ(TMR16B0MR0/1/2/3 - アドレス0x4000 C018/1C/20/24、TMR16B1MR0/1/2/3 - アドレス 0x4001 0018/1C/20/24).............................252

14.8.8 キャプチャ制御レジスタ(TMR16B0CCRおよびTMR16B1CCR)...............................................................252

14.8.9 キャプチャレジスタ(CT16B0CR0 - アドレス 0x4000 C02C、CT16B1CR0 - アドレス 0x4001 002C)................................................................................252

14.8.10 外部マッチレジスタ(TMR16B0EMRおよびTMR16B1EMR)..............................................................253

14.8.11 カウント制御レジスタ(TMR16B0CTCRおよびTMR16B1CTCR)............................................................254

14.8.12 PWM制御レジスタ(TMR16B0PWMCおよびTMR16B1PWMC)..........................................................255

14.8.13 シングルエッジ制御の PWM出力のルール.....25614.9 タイマ動作の例.................................................. 25714.10 アーキテクチャ.................................................. 259

第 15章 : LPC111x/LPC11C1x 32ビットカウンタ /タイマ(CT32B0/1)

15.1 この章を読む前に .............................................. 26015.2 基本構成 ............................................................. 26015.3 特長..................................................................... 26015.4 用途..................................................................... 26115.5 説明..................................................................... 26115.6 ピンの説明.......................................................... 26115.7 クロックと電力の制御....................................... 26115.8 レジスタの説明.................................................. 26215.8.1 割り込みレジスタ(TMR32B0IRおよび

TMR32B1IR).................................................................. 26315.8.2 タイマ制御レジスタ(TMR32B0TCRおよび

TMR32B1TCR).............................................................. 26415.8.3 タイマカウンタ(TMR32B0TC - アドレス

0x4001 4008、TMR32B1TC -アドレス0x4001 8008)................................................................264

15.8.4 プリスケールレジスタ(TMR32B0PR - アドレス0x4001 400C、TMR32B1PR -アドレス0x4001 800C)................................................................264

15.8.5 プリスケールカウンタレジスタ(TMR32B0PC - アドレス 0x4001 4010、TMR32B1PC - アドレス0x4001 8010)................................................................265

15.8.6 マッチ制御レジスタ(TMR32B0MCRおよびTMR32B1MCR)..............................................................265

15.8.7 マッチレジスタ(TMR32B0MR0/1/2/3 - アドレス0x4001 4018/1C/20/24、TMR32B1MR0/1/2/3 アドレス 0x4001 8018/1C/20/24)..................................266

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 411

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

15.8.8 キャプチャ制御レジスタ(TMR32B0CCRおよびTMR32B1CCR).............................................................. 266

15.8.9 キャプチャレジスタ(TMR32B0CR0 - アドレス0x4001 402C、TMR32B1CR0 - アドレス 0x4001 802C)............................................................................... 266

15.8.10 外部マッチレジスタ(TMR32B0EMRおよびTMR32B1EMR)............................................................. 267

15.8.11 カウント制御レジスタ(TMR32B0CTCRおよびTMR32B1CTCR)............................................................268

15.8.12 PWM制御レジスタ(TMR32B0PWMCおよびTMR32B1PWMC)..........................................................269

15.8.13 シングルエッジ制御の PWM出力のルール.....27015.9 タイマ動作の例.................................................. 27115.10 アーキテクチャ.................................................. 273

第 16章 : LPC111x/LPC11C1xウォッチドッグタイマ(WDT)

16.1 この章を読む前に .............................................. 27416.2 基本構成 ............................................................. 27416.3 特長..................................................................... 27416.4 用途..................................................................... 27516.5 説明..................................................................... 27516.6 クロックと電力の制御....................................... 27516.7 レジスタの説明.................................................. 27616.7.1 ウォッチドッグモードレジスタ(WDMOD -

0x4000 0000)................................................................27616.7.2 ウォッチドッグタイマ定数レジスタ(WDTC -

0x4000 4004)................................................................27816.7.3 ウォッチドッグリフレッシュレジスタ(WDFEED

- 0x4000 4008)..............................................................27816.7.4 ウォッチドッグタイマ値レジスタ(WDTV -

0x4000 400C)................................................................27816.8 ブロック図 ......................................................... 279

第 17章 : LPC111x/LPC11C1xシステム tickタイマ

17.1 この章を読む前に .............................................. 28017.2 基本構成 ............................................................. 28017.3 特長..................................................................... 28017.4 説明..................................................................... 28017.5 動作..................................................................... 28117.6 レジスタの説明.................................................. 28117.6.1 システムタイマ制御およびステータスレジスタ..

28217.6.2 システムタイマリロード値レジスタ..................28217.6.3 システムタイマ現在値レジスタ...........................28217.6.4 システムタイマ校正値レジスタ(SYST_CALIB -

0xE000 E01C)................................................................28317.7 タイマ計算の例.................................................. 283

第 18章 : LPC111x/LPC11C1x A/Dコンバータ(ADC)

18.1 この章を読む前に .............................................. 28418.2 基本構成 ............................................................. 28418.3 特長..................................................................... 28418.4 ピンの説明.......................................................... 28418.5 クロックと電力の制御....................................... 28518.6 レジスタの説明.................................................. 28518.6.1 A/D制御レジスタ(AD0CR - 0x4001 C000).....28618.6.2 A/Dグローバルデータレジスタ(AD0GDR -

0x4001 C004)............................................................... 28718.6.3 A/Dステータスレジスタ(AD0STAT -

0x4001 C030)................................................................28818.6.4 A/D割り込みイネーブルレジスタ(AD0INTEN -

0x4001 C00C)................................................................28918.6.5 A/Dデータレジスタ(AD0DR0~ AD0DR7 -

0x4001 C010~ 0x4001 C02C)...............................28918.7 動作 .................................................................... 29018.7.1 ハードウェアトリガによる変換...........................29018.7.2 割り込み.........................................................................29018.7.3 精度とデジタルレシーバ.........................................290

第 19章 : LPC111x/LPC11C1xフラッシュメモリプログラミングファームウェア

19.1 この章を読む前に .............................................. 29119.2 特長..................................................................... 29119.3 概説..................................................................... 29119.3.1 ブートローダ................................................................29119.3.2 リセット後のメモリマップ ....................................29219.3.3 有効なユーザーコードの基準................................29219.3.4 ブートプロセスフローチャート...........................29419.3.5 セクタ番号.....................................................................29519.3.6 フラッシュコンテンツ保護メカニズム .............29519.3.7 Code Read Protection(CRP).................................29619.3.7.1 ISPエントリの保護....................................................29819.4 UART通信プロトコル....................................... 29819.4.1 UART ISPコマンド形式.............................................29819.4.2 UART ISP応答形式......................................................29819.4.3 UART ISPデータ形式.................................................29919.4.4 UART ISPフロー制御.................................................299

19.4.5 UART SPコマンドのアボート................................29919.4.6 UART ISP実行時の割り込み....................................29919.4.7 IAP実行時の割り込み...............................................29919.4.8 ISPコマンドハンドラで使用される RAM..........29919.4.9 IAPコマンドハンドラで使用される RAM .........30019.5 UART ISPコマンド........................................... 30019.5.1 Unlock <アンロックコード >(UART ISP).......30119.5.2 Set Baud Rate <ボーレート > <ストップビット >

(UART ISP).....................................................................30119.5.3 Echo <設定 >(UART ISP)......................................30119.5.4 Write to RAM <開始アドレス > <バイト数 >

(UART ISP).....................................................................30219.5.5 Read Memory <アドレス > <バイト数 >(UART

ISP)....................................................................................30319.5.6 Prepare sector(s) for write operation <開始セクタ

番号 > <終了セクタ番号 >(UART ISP).............304

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 412

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

19.5.7 Copy RAM to flash <フラッシュアドレス > <RAMアドレス > <バイト数 >(UART ISP)................ 304

19.5.8 Go <アドレス > <モード >(UART ISP)..........30519.5.9 Erase sector(s) <開始セクタ番号 > <終了セクタ

番号 >(UART ISP)..................................................... 30519.5.10 Blank check sector(s) <セクタ番号 > <終了セク

タ番号 >(UART ISP)................................................ 30619.5.11 Read Part Identification number(UART ISP)..30619.5.12 Read Boot code version number(UART ISP)..30719.5.13 Compare <アドレス 1> <アドレス 2> <バイト

数 >(UART ISP).......................................................... 30719.5.14 ReadUID(UART ISP).................................................30719.5.15 UART ISPリターンコード........................................30819.6 C_CAN通信プロトコル..................................... 30919.6.1 C_CAN ISP SDOの通信 .............................................30919.6.2 C_CAN ISPオブジェクトディレクトリ..............31019.6.3 Unlock(C_CAN ISP).................................................31119.6.4 Write to RAM(C_CAN ISP).....................................31119.6.5 Read memory(C_CAN ISP)...................................31119.6.6 Prepare sectors for write operation(C_CAN ISP).

31119.6.7 Copy RAM to flash(C_CAN ISP)...........................31119.6.8 Go(C_CAN ISP)..........................................................31119.6.9 Erase sectors(C_CAN ISP)......................................311

19.6.10 Blank check sectors(C_CAN ISP).........................31119.6.11 Read PartID(C_CAN ISP)........................................31219.6.12 Read boot code version(C_CAN ISP)................31219.6.13 Read serial number(C_CAN ISP).........................31219.6.14 Compare(C_CAN ISP).............................................31219.6.15 C_CAN ISP SDOアボートコード...........................31219.6.16 完全準拠の CANopenとの相違.............................31319.7 IAPコマンド...................................................... 31319.7.1 Prepare sector(s) for write operation(IAP)......31519.7.2 Copy RAM to flash(IAP).........................................31619.7.3 Erase Sector(s)(IAP).................................................31619.7.4 Blank check sector(s)(IAP)....................................31719.7.5 Read Part Identification number(IAP)..............31719.7.6 Read Boot code version number(IAP)..............31719.7.7 Compare <アドレス 1> <アドレス 2> <バイト

数 >(IAP)......................................................................31819.7.8 Reinvoke ISP(IAP)....................................................31819.7.9 ReadUID(IAP).............................................................31819.7.10 IAPステータスコード...............................................31919.8 デバッグ上の注意.............................................. 31919.8.1 フラッシュイメージの比較.....................................31919.8.2 シリアルワイヤデバッグ(SWD)フラッシュプ

ログラミングインターフェース............................32019.9 フラッシュメモリへのアクセス........................ 320

第 20章 : LPC111x/LPC11C1x シリアルワイヤデバッグ(SWD)

20.1 この章を読む前に .............................................. 32120.2 特長..................................................................... 32120.3 概要..................................................................... 321

20.4 説明 .................................................................... 32120.5 ピンの説明 ......................................................... 32120.6 デバッグ上の注意.............................................. 322

第 21章 : 付録 LPC111x/LPC11C1x ARM Cortex-M0リファレンス

21.1 概要..................................................................... 32321.2 Cortex-M0プロセッサとコアペリフェラル ..... 32321.2.1 システムレベルインターフェース.......................32421.2.2 設定可能なデバッグ機能の搭載...........................32421.2.3 Cortex-M0プロセッサの特長の概要...................32421.2.4 Cortex-M0コアペリフェラル.................................32521.3 プロセッサ.......................................................... 32521.3.1 プログラマモデル.......................................................32521.3.1.1 プロセッサモード.......................................................32521.3.1.2 スタック.........................................................................32521.3.1.3 コアレジスタ................................................................32621.3.1.3.1 汎用レジスタ............................................................... 32721.3.1.3.2 スタックポインタ...................................................... 32721.3.1.3.3 ...........................................................リンクレジスタ 32721.3.1.3.4 プログラムカウンタ................................................. 32721.3.1.3.5 プログラムステータスレジスタ.......................... 32721.3.1.3.6 例外マスクレジスタ................................................. 33021.3.1.3.7 CONTROLレジスタ................................................... 33021.3.1.4 例外と割り込み ...........................................................33121.3.1.5 データタイプ................................................................33121.3.1.6 Cortexマイクロコントローラソフトウェアイン

ターフェース規格....................................................... 33121.3.2 メモリモデル................................................................33221.3.2.1 メモリ領域、タイプ、属性 ....................................33321.3.2.2 メモリシステムによるメモリアクセスの順序付

け ....................................................................................... 334

21.3.2.3 メモリアクセスの動作..............................................33421.3.2.4 ソフトウェアによるメモリアクセスの順序付け..

33521.3.2.5 メモリエンディアン..................................................33621.3.2.5.1 リトルエンディアン形式........................................ 33621.3.3 例外モデル.....................................................................33721.3.3.1 例外状態.........................................................................33721.3.3.2 例外のタイプ................................................................33721.3.3.3 例外ハンドラ................................................................33821.3.3.4 ベクタテーブル ...........................................................33921.3.3.5 例外の優先順位 ...........................................................33921.3.3.6 例外のエントリとリターン.....................................34021.3.3.6.1 例外のエントリ .......................................................... 34021.3.3.6.2 例外リターン............................................................... 34221.3.4 障害処理.........................................................................34221.3.4.1 ロックアップ................................................................34321.3.5 パワーマネージメント..............................................34321.3.5.1 スリープモードへの移行.........................................34321.3.5.1.1 割り込みの待機 .......................................................... 34421.3.5.1.2 イベント待機............................................................... 34421.3.5.1.3 Sleep-on-exit ................................................................ 34421.3.5.2 スリープモードからのウェイクアップ..............34421.3.5.2.1 WFIまたは sleep-on-exitからのウェイクアップ..

34421.3.5.2.2 WFEからのウェイクアップ................................... 34421.3.5.3 パワーマネージメントプログラミング上のヒン

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 413

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

ト ....................................................................................... 34521.4 命令セット.......................................................... 34521.4.1 命令セットの概要.......................................................34521.4.2 組み込み関数................................................................34721.4.3 命令の説明について..................................................34821.4.3.1 オペランド.....................................................................34821.4.3.2 PCまたは SPの使用時の制限................................34821.4.3.3 シフト演算.....................................................................34921.4.3.3.1 ASR................................................................................... 34921.4.3.3.2 LSR ................................................................................... 34921.4.3.3.3 LSL.................................................................................... 35021.4.3.3.4 ROR.................................................................................. 35121.4.3.4 アドレスアライメント..............................................35121.4.3.5 PC相対式.......................................................................35121.4.3.6 条件付き実行................................................................35221.4.3.6.1 条件フラグ.................................................................... 35221.4.3.6.2 条件コードのサフィックス ................................... 35321.4.4 メモリアクセス命令..................................................35321.4.4.1 ADR................................................................................... 35421.4.4.1.1 構文 ................................................................................. 35421.4.4.1.2 演算 ................................................................................. 35421.4.4.1.3 制限 ................................................................................. 35421.4.4.1.4 条件フラグ.................................................................... 35421.4.4.1.5 例...................................................................................... 35421.4.4.2 LDRと STR、イミディエートオフセット .........35421.4.4.2.1 構文 ................................................................................. 35421.4.4.2.2 演算 ................................................................................. 35521.4.4.2.3 制限 ................................................................................. 35521.4.4.2.4 条件フラグ.................................................................... 35521.4.4.2.5 例...................................................................................... 35521.4.4.3 LDRと STR、レジスタオフセット.......................35521.4.4.3.1 構文 ................................................................................. 35621.4.4.3.2 演算 ................................................................................. 35621.4.4.3.3 制限 ................................................................................. 35621.4.4.3.4 条件フラグ.................................................................... 35621.4.4.3.5 例...................................................................................... 35621.4.4.4 LDR、PC相対...............................................................35721.4.4.4.1 構文 ................................................................................. 35721.4.4.4.2 演算 ................................................................................. 35721.4.4.4.3 制限 ................................................................................. 35721.4.4.4.4 条件フラグ.................................................................... 35721.4.4.4.5 例...................................................................................... 35721.4.4.5 LDMと STM .................................................................. 35721.4.4.5.1 構文 ................................................................................. 35721.4.4.5.2 演算 ................................................................................. 35821.4.4.5.3 制限 ................................................................................. 35821.4.4.5.4 条件フラグ.................................................................... 35821.4.4.5.5 例...................................................................................... 35821.4.4.5.6 間違った例.................................................................... 35821.4.4.6 PUSHと POP................................................................. 35821.4.4.6.1 構文 ................................................................................. 35921.4.4.6.2 演算 ................................................................................. 35921.4.4.6.3 制限 ................................................................................. 35921.4.4.6.4 条件フラグ.................................................................... 35921.4.4.6.5 例...................................................................................... 35921.4.5 一般的なデータ処理命令.........................................35921.4.5.1 ADC、ADD、RSB、SBC、SUB ............................... 36021.4.5.1.1 構文 ................................................................................. 360

21.4.5.1.2 演算 ................................................................................. 36121.4.5.1.3 制限 ................................................................................. 36121.4.5.1.4 例...................................................................................... 36221.4.5.2 AND、ORR、EOR、BIC..............................................36221.4.5.2.1 構文 ................................................................................. 36221.4.5.2.2 演算 ................................................................................. 36321.4.5.2.3 制限 ................................................................................. 36321.4.5.2.4 条件フラグ.................................................................... 36321.4.5.2.5 例...................................................................................... 36321.4.5.3 ASR、LSL、LSR、ROR................................................36321.4.5.3.1 構文 ................................................................................. 36321.4.5.3.2 演算 ................................................................................. 36421.4.5.3.3 制限 ................................................................................. 36421.4.5.3.4 条件フラグ.................................................................... 36421.4.5.3.5 例...................................................................................... 36421.4.5.4 CMPと CMN ..................................................................36421.4.5.4.1 構文 ................................................................................. 36521.4.5.4.2 演算 ................................................................................. 36521.4.5.4.3 制限 ................................................................................. 36521.4.5.4.4 条件フラグ.................................................................... 36521.4.5.4.5 例...................................................................................... 36521.4.5.5 MOVとMVN..................................................................36521.4.5.5.1 構文 ................................................................................. 36521.4.5.5.2 演算 ................................................................................. 36621.4.5.5.3 制限 ................................................................................. 36621.4.5.5.4 条件フラグ.................................................................... 36621.4.5.5.5 例...................................................................................... 36621.4.5.6 MULS.................................................................................36721.4.5.6.1 構文 ................................................................................. 36721.4.5.6.2 演算 ................................................................................. 36721.4.5.6.3 制限 ................................................................................. 36721.4.5.6.4 条件フラグ.................................................................... 36721.4.5.6.5 例...................................................................................... 36721.4.5.7 REV、REV16、REVSH..................................................36721.4.5.7.1 構文 ................................................................................. 36721.4.5.7.2 演算 ................................................................................. 36821.4.5.7.3 制限 ................................................................................. 36821.4.5.7.4 条件フラグ.................................................................... 36821.4.5.7.5 例...................................................................................... 36821.4.5.8 SXTと UXT......................................................................36821.4.5.8.1 構文 ................................................................................. 36821.4.5.8.2 演算 ................................................................................. 36821.4.5.8.3 制限 ................................................................................. 36921.4.5.8.4 条件フラグ.................................................................... 36921.4.5.8.5 例...................................................................................... 36921.4.5.9 TST .....................................................................................36921.4.5.9.1 構文 ................................................................................. 36921.4.5.9.2 演算 ................................................................................. 36921.4.5.9.3 制限 ................................................................................. 36921.4.5.9.4 条件フラグ.................................................................... 36921.4.5.9.5 例...................................................................................... 37021.4.6 分岐と制御命令 ...........................................................37021.4.6.1 B、BL、BX、BLX..........................................................37021.4.6.1.1 構文 ................................................................................. 37021.4.6.1.2 演算 ................................................................................. 37021.4.6.1.3 制限 ................................................................................. 37121.4.6.1.4 条件フラグ.................................................................... 37121.4.6.1.5 例...................................................................................... 371

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

UM10398_0 © NXP B.V. 2010. All rights reserved.

ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 414

NXP Semiconductors UM10398第 22章:LPC111x補足情報

参考資料

21.4.7 その他の命令................................................................37121.4.7.1 BKPT ................................................................................. 37221.4.7.1.1 構文 ................................................................................. 37221.4.7.1.2 演算 ................................................................................. 37221.4.7.1.3 制限 ................................................................................. 37221.4.7.1.4 条件フラグ.................................................................... 37221.4.7.1.5 例...................................................................................... 37221.4.7.2 CPS.................................................................................... 37221.4.7.2.1 構文 ................................................................................. 37221.4.7.2.2 演算 ................................................................................. 37321.4.7.2.3 制限 ................................................................................. 37321.4.7.2.4 条件フラグ.................................................................... 37321.4.7.2.5 例...................................................................................... 37321.4.7.3 DMB.................................................................................. 37321.4.7.3.1 構文 ................................................................................. 37321.4.7.3.2 演算 ................................................................................. 37321.4.7.3.3 制限 ................................................................................. 37321.4.7.3.4 条件フラグ.................................................................... 37321.4.7.3.5 例...................................................................................... 37321.4.7.4 DSB ................................................................................... 37321.4.7.4.1 構文 ................................................................................. 37321.4.7.4.2 演算 ................................................................................. 37421.4.7.4.3 制限 ................................................................................. 37421.4.7.4.4 条件フラグ.................................................................... 37421.4.7.4.5 例...................................................................................... 37421.4.7.5 ISB ..................................................................................... 37421.4.7.5.1 構文 ................................................................................. 37421.4.7.5.2 演算 ................................................................................. 37421.4.7.5.3 制限 ................................................................................. 37421.4.7.5.4 条件フラグ.................................................................... 37421.4.7.5.5 例...................................................................................... 37421.4.7.6 MRS................................................................................... 37421.4.7.6.1 構文 ................................................................................. 37421.4.7.6.2 演算 ................................................................................. 37521.4.7.6.3 制限 ................................................................................. 37521.4.7.6.4 条件フラグ.................................................................... 37521.4.7.6.5 例...................................................................................... 37521.4.7.7 MSR................................................................................... 37521.4.7.7.1 構文 ................................................................................. 37521.4.7.7.2 演算 ................................................................................. 37521.4.7.7.3 制限 ................................................................................. 37521.4.7.7.4 条件フラグ.................................................................... 37521.4.7.7.5 例...................................................................................... 37521.4.7.8 NOP .................................................................................. 37621.4.7.8.1 構文 ................................................................................. 37621.4.7.8.2 演算 ................................................................................. 37621.4.7.8.3 制限 ................................................................................. 37621.4.7.8.4 条件フラグ.................................................................... 37621.4.7.8.5 例...................................................................................... 37621.4.7.9 SEV.................................................................................... 37621.4.7.9.1 構文 ................................................................................. 37621.4.7.9.2 演算 ................................................................................. 37621.4.7.9.3 制限 ................................................................................. 37621.4.7.9.4 条件フラグ.................................................................... 376

21.4.7.9.5 例...................................................................................... 37621.4.7.10 SVC ....................................................................................37621.4.7.10.1構文 ................................................................................. 37721.4.7.10.2演算 ................................................................................. 37721.4.7.10.3制限 ................................................................................. 37721.4.7.10.4条件フラグ.................................................................... 37721.4.7.10.5例...................................................................................... 37721.4.7.11 WFE ...................................................................................37721.4.7.11.1構文 ................................................................................. 37721.4.7.11.2演算 ................................................................................. 37721.4.7.11.3制限 ................................................................................. 37821.4.7.11.4条件フラグ.................................................................... 37821.4.7.11.5例...................................................................................... 37821.4.7.12 WFI.....................................................................................37821.4.7.12.1構文 ................................................................................. 37821.4.7.12.2演算 ................................................................................. 37821.4.7.12.3制限 ................................................................................. 37821.4.7.12.4条件フラグ.................................................................... 37821.4.7.12.5例...................................................................................... 37821.5 ペリフェラル...................................................... 37821.5.1 ARM Cortex-M0について.........................................37821.5.2 ネストベクタ割り込みコントローラ..................37921.5.2.1 CMSISを使用した Cortex-M0 NVICレジスタへの

アクセス ..........................................................................37921.5.2.2 Interrupt Set-enableレジスタ................................38021.5.2.3 Interrupt Clear-enableレジスタ............................38021.5.2.4 Interrupt Set-pendingレジスタ............................38121.5.2.5 Interrupt Clear-pendingレジスタ........................38121.5.2.6 割り込み優先順位のレジスタ................................38221.5.2.7 レベルセンシティブ割り込みとパルス割り込み..

38321.5.2.7.1 ハードウェアとソフトウェアの割り込み制御 38321.5.2.8 NVICの使用上のヒント............................................38421.5.2.8.1 NVICのプログラミング上のヒント.................... 38421.5.3 システム制御ブロック..............................................38521.5.3.1 Cortex-M0 SCBレジスタの CMSISマッピング 38521.5.3.2 CPUIDレジスタ...........................................................38521.5.3.3 割り込み制御と状態レジスタ................................38521.5.3.4 アプリケーション割り込みとリセット制御レジ

スタ ...................................................................................38721.5.3.5 システム制御レジスタ..............................................38821.5.3.6 設定および制御レジスタ.........................................38921.5.3.7 システムハンドラ優先順位レジスタ..................38921.5.3.7.1 システムハンドラ優先順位レジスタ 2.............. 39021.5.3.7.2 システムハンドラ優先順位レジスタ 3.............. 39021.5.3.8 SCBの使用上のヒント..............................................39021.5.4 システムタイマ、SysTick.........................................39021.5.4.1 SysTick制御とステータスレジスタ.....................39121.5.4.2 SysTickリロード値レジスタ...................................39221.5.4.2.1 RELOAD値の計算 ...................................................... 39221.5.4.3 SysTick現在値レジスタ............................................39221.5.4.4 SysTick校正値レジスタ............................................39221.5.4.5 SysTickの使用上のヒント.......................................39321.6 Cortex-M0命令のまとめ................................... 393

第 22章 : LPC111x補足情報

22.1 略語..................................................................... 39722.2 参考文献 ............................................................. 397

22.3 法律情報............................................................. 39822.3.1 定義 ..................................................................................398

DRAFT

DRAFT DRAFT DR

DRAFT DRAFT DRAFT DRAF

DRAFT DRAFT DRAFT DRAFT DRAFT D

DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRA

NXP Semiconductors UM10398第 22章:LPC111x補足情報

Date of release: 2010 / 9 / 28

Document identifier: UM10398_0

417

参考資料

22.3.2 免責事項 ........................................................................ 39822.3.3 商標 ................................................................................. 39822.4 Tables .............................................................. 399

22.5 Figures ............................................................ 40522.6 Contents.......................................................... 406