close

Enter

Log in using OpenID

ユーザマニュアル(日本語版)

embedDownload
R
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
D
D
A
A
A
LPC111x/LPC11C1x ユーザーマニュアル
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
Document information
Info
Content
Keywords
ARM Cortex-M0, LPC1111, LPC1112, LPC1113, LPC1114, LPC11C12,
LPC11C14
Abstract
LPC111x/LPC11C1x User manual
本マニュアルは、参考資料です。英文マニュアルは頻繁に更新されます。
最新情報は英文マニュアルをご参照ください。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
FT
FT
A
A
R
R
A
•
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.
D
C_CAN chapter updated.
FT
•
R
A
LPC111x/LPC11C1x preliminary user manual
Modifications:
0.13
<tbd>
•
Pin configuration for LPC11C12/C14 parts corrected (Table 99 and Figure 9).
•
C_CAN API description updated.
LPC111x/LPC11C1x preliminary user manual
Modifications:
0.12
<tbd>
•
Parts LPC11C12/C14 added.
•
Description of C_CAN controller register interface, C_CAN API, and C_CAN ISP functions
added.
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
<tbd>
F
D
D
Modifications:
0.14
A
LPC111x/LPC11C1x preliminary user manual
FT
<tbd>
FT
0.15
R
A
A
Description
D
R
R
Date
R
A
D
D
Rev
D
R
FT
FT
A
A
R
R
D
D
D
Revision history
FT
FT
FT
FT
LPC111x/LPC11C1x UM
Rev. 00.15 — 2010 / 9 / 28
2
D
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
第 1 章:LPC111x/LPC11C1x の概要
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
1.1 はじめに
R
A
FT
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)。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
3
A
LPC111x/LPC11C1x は、最大 50 MHz の CPU 周波数で動作します。
R
アーキテクチャに比べてコードサイズが小さいことが特長です。
D
LPC111x/LPC11C1x は ARM Cortex-M0 ベースの安価な 32 ビット MCU ファミリであり、
8/16 ビットのマイクロコントローラアプリケーション用に設計され、高性能、低消費電
力、簡易な命令セットとメモリアドレッシングを提供するとともに、既存の 8/16 ビット
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
F
FT
FT
A
A
A
D
FT
FT
A
A
R
R
D
シリアルインターフェース :
D
R
R
•
R
FT
D
D
– 8 ピン間での入力多重化対応の 10 ビット ADC。
D
A
FT
FT
A
A
R
R
R
アナログペリフェラル :
D
D
D
•
FT
FT
FT
FT
第 1 章:LPC111x/LPC11C1x の概要
D
D
– フラクショナル・ボー・レート生成、内部 FIFO、および RS-485 対応の UART。
R
A
FT
•
クロック生成 :
– 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 パッケージと
して提供。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
4
A
– C_CAN コントローラ(LPC11C12/C14 のみ)。オンチップ CAN および CANopen ド
ライバを含みます。
R
– 複数アドレス認識とモニターモードによってデータ速度 1 Mbit/s を達成する、フ
ル I2C バス規格と Fast モードプラスに対応した I2C バスインターフェース。
D
– SSP 機能と FIFO およびマルチプロトコル機能を持つ 2 つの SPI コントローラ(第
2 の SPI は LQFP48 と PLCC44 のパッケージのみ)。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
FT
FT
A
A
R
R
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1112FHN33/101
HVQFN33
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1112FHN33/201
HVQFN33
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1113FHN33/201
HVQFN33
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1113FHN33/301
HVQFN33
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1114FHN33/201
HVQFN33
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1114FHN33/301
HVQFN33
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
LPC1113FBD48/301
LQFP48
ロープロファイルプラスチック製クワッドフラットパッケージ、 sot313-2
リード 48 個、本体 7 x 7 x 1.4 mm
LPC1114FBD48/301
LQFP48
ロープロファイルプラスチック製クワッドフラットパッケージ、 sot313-2
リード 48 個、本体 7 x 7 x 1.4 mm
LPC1114FA44/301
PLCC44
PLCC44: プラスチックリードチップキャリア、リード 44 個
LPC11C12FBD48/301
LQFP48
ロープロファイルプラスチック製クワッドフラットパッケージ、 sot313-2
リード 48 個、本体 7  7  1.4 mm
LPC11C14FBD48/301
LQFP48
ロープロファイルプラスチック製クワッドフラットパッケージ、 sot313-2
リード 48 個、本体 7  7  1.4 mm
A
HVQFN33
R
LPC1111FHN33/201
D
熱強化プラスチック製超薄型クワッドフラットパッケージ、リード n/a
なし、33 端子、本体 7 x 7 x 0.85 mm
FT
Version
A
HVQFN33
sot187-2
Ordering options
Flash
Total
SRAM
UART
RS-485
I2C/ Fm+
SPI
C_CAN ADC
channels
Package
LPC1111FHN33/101
8 kB
2 kB
1
1
1
-
8
HVQFN33
LPC1111FHN33/201
8 kB
4 kB
1
1
1
-
8
HVQFN33
LPC1111
LPC1112
LPC1112FHN33/101
16 kB
2 kB
1
1
1
-
8
HVQFN33
LPC1112FHN33/201
16 kB
4 kB
1
1
1
-
8
HVQFN33
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
32 kB
4 kB
1
1
1
-
8
HVQFN33
LPC1113
LPC1114
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
LPC1111FHN33/101
LPC1114FHN33/201
F
D
D
Description
Type number
A
FT
FT
Package
Name
Table 2.
R
A
A
Type number
D
R
R
Ordering information
R
A
D
D
Table 1.
D
R
FT
FT
A
A
R
R
D
D
D
1.3 注文情報
FT
FT
FT
FT
第 1 章:LPC111x/LPC11C1x の概要
Rev. 00.15 — 2010 / 9 / 28
5
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
D
C_CAN ADC
channels
Package
LPC1114FHN33/301
32 kB
8 kB
1
1
1
-
HVQFN33
F
SPI
FT
I2C/ Fm+
FT
UART
RS-485
A
A
A
Total
SRAM
R
R
R
Flash
D
PLCC44
LPC11C12FBD48/301
16 kB
8 kB
1
1
2
1
8
LQFP48
LPC11C14FBD48/301
32 kB
8 kB
1
1
2
1
8
LQFP48
R
LQFP48
8
D
8
-
D
-
2
FT
2
1
A
1
1
R
1
8 kB
D
8 kB
32 kB
FT
32 kB
LPC1114FA44/301
FT
A
A
R
R
D
LPC1114FBD48/301
A
LPC11C1x
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
FT
D
D
Type number
8
A
FT
FT
A
A
R
R
R
Ordering options(続き)
D
D
D
Table 2.
FT
FT
FT
FT
第 1 章:LPC111x/LPC11C1x の概要
Rev. 00.15 — 2010 / 9 / 28
6
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
1.4 ブロック図
FT
FT
FT
FT
第 1 章:LPC111x/LPC11C1x の概要
D
FT
FT
A
A
R
R
D
D
D
XTALIN
XTALOUT
RESET
R
SWD
A
FT
D
R
A
LPC1111/12/13/14
LPC11C12/C14
IRC
TEST/DEBUG
INTERFACE
CLOCK
GENERATION,
POWER CONTROL,
SYSTEM
FUNCTIONS
POR
ARM
CORTEX-M0
system bus
clocks and
controls
FLASH
8/16/24/32 kB
slave
GPIO ports
PIO0/1/2/3
HIGH-SPEED
GPIO
CLKOUT
SRAM
2/4/8 kB
slave
ROM
slave
slave
AHB-LITE BUS
slave
AHB TO APB
BRIDGE
RXD
TXD
DTR, DSR(1), CTS,
DCD(1), RI(1), RTS
CT32B0_MAT[3:0]
CT32B0_CAP0
CT32B1_MAT[3:0]
CT32B1_CAP0
CT16B0_MAT[2:0]
CT16B0_CAP0
CT16B1_MAT[1:0]
CT16B1_CAP0
UART
10-bit ADC
SPI0
SCK0, SSEL0
MISO0, MOSI0
SPI1(1)
SCK1, SSEL1
MISO1, MOSI1
32-bit COUNTER/TIMER 0
32-bit COUNTER/TIMER 1
I2C-BUS
16-bit COUNTER/TIMER 0
CAN_RXD
SCL
SDA
WDT
16-bit COUNTER/TIMER 1
CAN_TXD
AD[7:0]
IOCONFIG
C_CAN(2)
SYSTEM CONTROL
PMU
(1) LQFP48/PLCC44 packages only.
(2) LPC11C12/C14 only.
Fig 1.
LPC111x/LPC11C1x block diagram
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
7
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
1.5 ARM Cortex-M0 プロセッサ
FT
FT
FT
FT
第 1 章:LPC111x/LPC11C1x の概要
D
FT
FT
A
A
R
R
D
ARM Cortex-M0 プロセッサの詳細については Section 21.2「Cortex-M0 プロセッサとコア
ペリフェラル」を参照してください。LPC111x/LPC11C1x については、ARM Cortex-M0 プ
A
FT
D
システムオプション :
R
– システム tick タイマが含まれます。
シリアルワイヤデバッグが 2 つのウォッチポイントおよび 4 つのブレークポイント
とともに含まれます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
8
A
– ネストベクタ割り込みコントローラ(NVIC)が含まれ、最大 32 の割り込みに対応
します。
•
D
R
•
D
ロセッサコアは次のように構成されます。
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
Rev. 00.15 — 2010 / 9 / 28
R
R
A
A
A
第 2 章:LPC111x/LPC11C1x メモリマッピング
D
D
R
R
R
UM10398
D
D
D
参考資料
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
FT
FT
A
A
R
R
D
D
D
2.1 この章を読む前に
R
A
FT
D
各種の LPC111x/LPC11C1x 部品のメモリ構成は Table 3 のとおりです。
R
A
Table 3.
Part
LPC111x/LPC11C1x memory configuration
Flash
SRAM
/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
Suffix
2.2 メモリマップ
Figure 2 に、LPC111x/LPC11C1x のメモリとペリフェラルのアドレス空間を示します。
AHB ペリフェラルの領域はサイズが 2 MB であり、128 のペリフェラルに対応できるよう
に分かれています。LPC111x/LPC11C1x では、GPIO ポートは AHB ペリフェラルのみです。
APB ペリフェラルの領域はサイズが 512 kB であり、32 のペリフェラルに対応できるよう
に分かれています。いずれのタイプも、各ペリフェラルには 16 kB のスペースが割り当て
られます。それにより、各ペリフェラルのアドレスデコーディングが簡易化されます。
ペリフェラルレジスタアドレスはすべて、そのサイズに関係なく 32 ビットワード境界で
整列されます。これは、ワードとハーフワードのレジスタには一度にアクセスする必要が
あることを意味します。たとえば、ワードレジスタの上位バイトを別途読み書きすること
はできません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
9
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
D
FT
FT
A
A
R
R
D
A
FT
GPIO PIO2
1
GPIO PIO1
0
GPIO PIO0
APB peripherals
reserved
A
0x5000 0000
2
R
0x5020 0000
GPIO PIO3
D
reserved
3
0x5003 0000
0x5002 0000
0x5001 0000
0x5000 0000
0x4008 0000
23 - 31 reserved
0x4005 C000
22
0x4008 0000
APB peripherals
SPI1(1)
0x4005 8000
reserved
0x4000 0000
0x4005 4000
20
C_CAN(2)
reserved
reserved
0x2000 0000
0.5 GB
18
system control
17
IOCONFIG
16
15
SPI0
flash controller
14
PMU
0x1000 2000
2 kB SRAM (LPC1111/12/101)
0x1000 1000
0x1000 0800
0x1000 0000
reserved
0x0000 8000
32 kB on-chip flash (LPC1114; LPC11C14)
24 kB on-chip flash (LPC1113)
16 kB on-chip flash (LPC1112; LPC11C12)
8 kB on-chip flash (LPC1111)
0x0000 6000
0x0000 4000
0x4004 4000
0x4003 C000
0x4002 8000
reserved
4 kB SRAM (LPC1111/12/13/14/201)
0x4004 8000
0x4003 8000
reserved
0x1FFF 0000
8 kB SRAM (LPC1113/14/301; LPC11C1x)
0x4004 C000
10 - 13 reserved
0x1FFF 4000
16 kB boot ROM
0x4005 0000
0x4004 0000
reserved
0x4002 4000
reserved
0x4002 0000
ADC
0x4001 C000
32-bit counter/timer 1
0x4001 8000
32-bit counter/timer 0
0x4001 4000
16-bit counter/timer 1
0x4001 0000
16-bit counter/timer 0
0x4000 C000
UART
0x4000 8000
WDT
0x4000 4000
I2C-bus
0x4000 0000
+ 512 byte
0x0000 2000
active interrupt vectors
0x0000 0200
0x0000 0000
0x0000 0000
(1) LQFP48/PLCC44 packages only.
(2) LPC11C12/14 only.
Fig 2.
LPC111x/LPC11C1x memory map
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
R
0x5004 0000
0xE000 0000
AHB peripherals
D
127- 4 reserved
0xE010 0000
private peripheral bus
0 GB
F
FT
FT
reserved
1 GB
A
A
A
0x5020 0000
0xFFFF FFFF
D
R
R
AHB peripherals
R
A
D
D
LPC1111/12/13/14
LPC11C12/C14
D
R
FT
FT
A
A
R
R
D
D
D
4 GB
FT
FT
FT
FT
第 2 章:LPC111x/LPC11C1x メモリマッピング
10
D
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
R
A
A
A
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
3.1 この章を読む前に
R
A
Table 4 に、システム制御ブロックの機能と関連付けられるピンを示します。
Table 4.
Pin summary
Pin name
Pin direction
Pin description
CLKOUT
O
クロック出力ピン
PIO0_0 to PIO0_11
I
スタートロジックウェイクアップピ
ン・ポート 0
PIO1_0
I
スタートロジックウェイクアップピ
ン・ポート 1
3.4 クロックと電力の制御
LPC111x/LPC11C1x クロック生成ユニット(CGU)の概要については Figure 3 を参照して
ください。
LPC111x/LPC11C1x には 3 つの独立したオシレータがあります。システムオシレータ、内
部 RC オシレータ(IRC)
、そしてウォッチドッグオシレータです。それぞれのオシレータ
は、個々のアプリケーションの必要に応じて複数の目的に使用できます。
リセットすると、LPC111x/LPC11C1x はソフトウェアによって切り替えられるまで内部 RC
オシレータから動作します。それにより、外部クリスタルやブートローダコードがなくて
も、システムは既知の周波数で動作することができます。
SYSAHBCLKCTRL レジスタは、各種ペリフェラルやメモリへのシステムクロックをゲート
制御します。UART、WDT、SPI0/1 には、メインクロックからペリフェラルクロックを求
めるためのクロック分周器が個別に備わっています。
メインクロックと、IRC、システムオシレータ、ウォッチドッグオシレータからのクロッ
ク出力は、CLKOUT ピンで直接確認できます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
11
A
3.3 ピンの説明
R
システム構成ブロックは、LPC111x/LPC11C1x のオシレータ、スタートロジック、および
クロック生成を制御します。またこのブロックには、AHB アクセスの優先順位を設定する
レジスタや、フラッシュ、SRAM、および ROM のメモリ領域をリマップするレジスタも
含まれます。
D
3.2 概要
FT
C_CAN コントローラは部品 LPC11C12/14 のみにあり、対応するクロック制御ビットとリ
セット制御ビット(SYSAHBCLKCTRL レジスタのビット 17 と PRESETCTRL レジスタのビッ
ト 3)は、すべての LPC1111x 部品用に予約されています。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
R
FT
FT
A
A
R
R
A
FT
D
UART PERIPHERAL
CLOCK DIVIDER
UART_PCLK
SPI1 PERIPHERAL
CLOCK DIVIDER
SPI1_PCLK
WDT CLOCK
DIVIDER
WDT_PCLK
CLKOUT PIN CLOCK
DIVIDER
CLKOUT pin
A
SPI0_PCLK
R
SPI0 PERIPHERAL
CLOCK DIVIDER
main clock
MAINCLKSEL
(main clock select)
sys_pllclkout
IRC oscillator
IRC oscillator
system oscillator
sys_pllclkin
SYSTEM PLL
watchdog oscillator
SYSPLLCLKSEL
(system PLL clock select)
WDTUEN
(WDT clock update enable)
IRC oscillator
system oscillator
watchdog oscillator
CLKOUTUEN
(CLKOUT update enable)
Fig 3.
LPC111x/LPC11C1x CGU block diagram
3.5 レジスタの説明
レジスタはすべてそのサイズに関係なくワードアドレス境界上にあります。レジスタの
詳細は、各機能の説明に記載しています。
システムセットアップの一部として再構成できるフラッシュアクセスタイミングレジス
タについては、Section 3.11 を参照してください。このレジスタはシステム構成ブロック
の一部ではありません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
AHBCLKCTRL[1:18]
watchdog oscillator
F
D
D
AHB clocks
1 to 18
(memories
and peripherals)
18
IRC oscillator
A
FT
FT
A
A
R
R
D
D
D
SYSTEM CLOCK
DIVIDER
AHB clock 0
(system)
system clock
R
R
FT
FT
A
A
R
R
D
D
D
電力制御の詳細については Section 3.8 を参照してください。
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
12
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
Access
Address offset Description
Reset
value
SYSMEMREMAP
R/W
0x000
システムメモリリマップ
0x000
Table 6
PRESETCTRL
R/W
0x004
ペリフェラルリセット制御
0x000
Table 7
SYSPLLCTRL
R/W
0x008
システム PLL 制御
0x000
Table 8
A
Name
A
A
R
R
D
D
D
Register overview: system control block (base address 0x4004 8000)
D
D
D
Table 5.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
F
FT
FT
Reference
D
FT
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
Table 15
-
-
0x048 - 0x06C
システム PLL クロックソース更新イネーブ 0x000
ル
予約済み
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
A
SYSOSCCTRL
R
-
D
予約済み
-
-
-
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
Table 29
dependent
PIOPORCAP1
R
0x104
POR キャプチャの PIO ステータス 1
user
Table 30
dependent
-
R
0x108 - 0x14C
予約済み
-
-
BODCTRL
R/W
0x150
BOD 制御
0x000
Table 31
-
-
0x154
予約済み
-
-
SYSTCKCAL
R/W
0x158
システム tick カウンタ校正
0x004
Table 32
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
Table 9
-
FT
0x000
A
システム PLL ステータス
0x010 - 0x01C
R
0x00C
-
D
R
-
ユーザーマニュアル
FT
A
A
R
R
D
SYSPLLSTAT
13
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
Reset
value
A
-
-
0x15C - 0x1FC
予約済み
-
-
A
Address offset Description
A
Access
R
R
R
Name
D
D
D
Register overview: system control block (base address 0x4004 8000) (続き)
D
D
D
Table 5.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
F
FT
FT
Reference
D
FT
FT
A
A
R
R
D
STARTRSRP0CLR
W
0x208
スタートロジックリセットレジスタ 0
n/a
Table 35
STARTSRP0
R
0x20C
スタートロジックステータスレジスタ 0
n/a
Table 36
-
-
0x210 - 0x22C
予約済み
-
PDSLEEPCFG
R/W
0x230
PDAWAKECFG
R/W
0x234
PDRUNCFG
R/W
0x238
ディープスリープモードのパワーダウン状 0x0000
0000
態
ディープパワーダウンモードからのウェイ 0x0000
EDF0
クアップ後のパワーダウン状態
0x0000
パワーダウン設定レジスタ
EDF0
-
-
0x23C - 0x3F0
DEVICE_ID
R
0x3F4
R
Table 34
D
スタートロジック信号イネーブルレジスタ
0
D
Table 33
FT
スタートロジックエッジ制御レジスタ 0
0x204
A
0x200
R/W
R
R/W
D
STARTAPRP0
STARTERP0
A
Table 38
Table 39
Table 40
予約済み
-
デバイス ID
part
Table 41
dependent
-
3.5.1 システムメモリリマップレジスタ
システムメモリリマップレジスタは、ARM 割り込みベクタをブート ROM、フラッシュ、
SRAM のいずれから読み取るかを選択します。
Table 6.
System memory remap register (SYSMEMREMAP, address 0x4004 8000) bit
description
Bit
Symbol
1:0
MAP
31:2
-
Value
Description
Reset
value
システムメモリリマップ
0x00
00
ブートローダモード。割り込みベクタはブート ROM にリマッ
プされます。
01
ユーザー RAM モード。割り込みベクタはスタティック RAM
にリマップされます。
10 or
11
ユーザー Flash モード。割り込みベクタはリマップされず、
Flash 内に存在します。
-
予約済み
0x00
3.5.2 ペリフェラルリセット制御レジスタ
このレジスタにより、ソフトウェアは SPI および I2C のペリフェラルをリセットすること
ができます。SSP0/1_RST_N ビットまたは I2C_RST_N ビットに 0 を書き込むと、SPI0/1 ま
たは I2C のペリフェラルがリセットされます。1 を書き込むと、リセットがデアサートさ
れます。
注意 : SPI や I2C のペリフェラルにアクセスする前に、このレジスタに 1 を書き込んで SPI
および I2C へのリセット信号を確実にデアサートしてください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
14
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
D
R
FT
FT
A
A
R
SSP0_RST_N
Reset
value
D
0
Description
A
FT
FT
Value
R
A
A
Symbol
D
R
R
Bit
R
A
D
D
Peripheral reset control register (PRESETCTRL, address 0x4004 8004) bit
description
D
R
FT
FT
A
A
R
R
D
D
D
Table 7.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
A
I2C_RST_N
0
I2C リセット制御
0
I2C ペリフェラルをリセットします。
1
I2C リセットがデアサートされます。
SSP1_RST_N
0
SPI1 リセット制御
0
SPI1 ペリフェラルをリセットします。
1
SPI1 リセットがデアサートされます。
CAN_RST_N
0
C_CAN リセット制御
-
0
C_CAN ペリフェラルをリセットします。
1
C_CAN リセットがデアサートされます。
-
予約済み
0x00
3.5.3 システム PLL 制御レジスタ
このレジスタはシステム PLL に接続してイネーブルにするとともに、PLL 乗算器および分
周器の値を設定します。PLL は、各種クロックソースから 10 MHz ∼ 25 MHz の入力周波
数を受け入れます。入力周波数は、高周波まで増大させた後、CPU、ペリフェラル、およ
びメモリが使用する実際のクロックになるまで分周します。PLL は、CPU で許容される最
大クロックまで生成できます。
Table 8.
System PLL control register (SYSPLLCTRL, address 0x4004 8008) bit description
Bit
Symbol
4:0
MSEL
Value
Description
Reset
value
帰還分周器の値。分周値 M はプログラムされた MSEL 値 +1 で 0x000
す。
00000 分周比 M = 1
...
11111 分周比 M = 32
6:5
31:7
PSEL
-
0x00
ポスト分周比 P。分周比は 2 × P です。
00
P=1
01
P=2
10
P=4
11
P=8
-
予約済み。予約ビットには 1 を書き込まないでください。
0x0
3.5.4 システム PLL ステータスレジスタ
このレジスタは読み取り専用レジスタであり、PLL ロックステータスを提供します
(Section 3.10.1 を参照)。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
SPI0 リセットがデアサートされます。
FT
31:4
1
A
3
SPI0 ペリフェラルをリセットします。
R
2
0
D
1
0
SPI0 リセット制御
Rev. 00.15 — 2010 / 9 / 28
15
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
D
R
A
0x00
3.5.5 システムオシレータ制御レジスタ
このレジスタは、システムオシレータの周波数範囲を設定します。
Table 10.
System oscillator control register (SYSOSCCTRL, address 0x4004 8020) bit
description
Bit
Symbol
0
BYPASS
1
31:2
Value
-
Description
Reset
value
システムオシレータのバイパス
0x0
0
オシレータはバイパスされません。
1
バイパスはイネーブル。PLL 入力(sys_osc_clk)は、
XTALINピンとXTALOUTピンから直接供給されます。
FREQRANGE
ローパワーオシレータの周波数範囲を決定します。 0x0
0
周波数範囲 1 ∼ 20 MHz
1
周波数範囲 15 ∼ 25 MHz
-
予約済み
0x00
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
レジスタへの書き込みを行うことによってプログラムする必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
予約済み
FT
-
A
PLL はロック状態
R
PLL は非ロック状態
1
D
-
FT
31:1
0x0
PLL ロックステータス
0
FT
A
A
R
R
D
LOCK
Description
FT
0
Value
A
Symbol
R
R
R
Bit
D
D
System PLL status register (SYSPLLSTAT, address 0x4004 800C) bit description
D
Table 9.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
16
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
Reset
value
D
DIVSEL
Description
F
FT
FT
4:0
Value
A
A
A
Symbol
R
R
R
Bit
D
D
Watchdog oscillator control register (WDTOSCCTRL, address 0x4004 8024) bit
description
D
Table 11.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
R
A
FT
D
R
00000 2 × (1 + DIVSEL) = 2
00001 2 × (1 + DIVSEL) = 4
A
00010 2 × (1 + DIVSEL) = 6
...
...
11111 2 × (1 + DIVSEL) = 64
8:5
31:9
ウォッチドッグオシレータのアナログ出力周波数(Fclkana) 0x00
を選択します。
FREQSEL
-
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
-
予約済み
0x00
3.5.7 内部共振クリスタル制御レジスタ
このレジスタは、オンチップ 12 MHz オシレータをトリミングするのに使用します。トリ
ム値は工場で事前設定されており、起動時にブートコードによって書き込まれます。
Table 12.
Internal resonant crystal control register (IRCCTRL, address 0x4004 8028) bit
description
Bit
Symbol
7:0
TRIM
31:9
-
Value
-
Description
Reset value
トリム値
0x1000 0000,
then flash will
reprogram
予約済み
0x00
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
0x00
Fclkana の分周器を選択します。
wdt_osc_clk = Fclkana(2 x (1 + DIVSEL))
17
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
SYSRSTSTAT レジスタは、直近のリセットイベントのソースを表示します。ビットは任意
のビットに 1 を書き込むことによってクリアされます。POR イベントはこのレジスタ内に
ある他のビットをすべてクリアしますが、POR 信号をネゲートした後で他のリセット信
号(たとえば EXTRST)がアサートされたままである場合、そのビットは「検出」に設定
F
FT
FT
A
A
R
R
D
D
D
3.5.8 システムリセットステータスレジスタ
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
D
R
A
FT
D
されます。
R
A
Table 13.
System reset status register (SYSRSTSTAT, address 0x4004 8030) bit description
Bit
Symbol
0
POR
1
Value
4
31:5
0x0
POR 検出されず
POR 検出
外部 RESET ピンのステータス
EXTRST
RESET 検出
0
WDT リセット検出されず
1
WDT リセット検出
BOD
ブラウンアウト検出リセットのステータス
0
BOD リセット検出されず
1
BOD リセット検出
SYSRST
0x0
RESET イベント検出されず
ウォッチドッグリセットのステータス
WDT
-
POR リセットステータス
1
1
3
Reset
value
0
0
2
Description
ソフトウェアシステムリセットのステータス
0
システムリセット検出されず
1
システムリセット検出
-
予約済み
0x0
0x0
0x0
0x00
3.5.9 システム PLL クロックソース選択レジスタ
このレジスタは、システム PLL のクロックソースを選択します。更新を有効にするには、
SYSPLLCLKUEN レジスタ(Section 3.5.10 を参照)を LOW から HIGH に切り替える必要が
あります。
注意 : クロックソースを切り替えるときは、クロックソースを更新する前に両方のクロッ
クを動作させておく必要があります。
注意 : ボーレートが 100 kbit/s を超える C_CAN コントローラを使用する場合は、システ
ムオシレータを選択する必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
18
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
Reset
value
D
SEL
Description
F
FT
FT
1:0
Value
A
A
A
Symbol
R
R
R
Bit
D
D
System PLL clock source select register (SYSPLLCLKSEL, address 0x4004 8040)
bit description
D
Table 14.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
予約済み
11
予約済み
-
予約済み
D
システムオシレータ
10
R
A
0x00
3.5.10 システム PLL クロックソース更新イネーブルレジスタ
このレジスタは、SYSPLLCLKSEL レジスタを書き込んだ後、システム PLL のクロックソー
スを新しい入力クロックで更新します。更新を有効にするには、まず SYSPLLUEN レジス
タに 0 を書き込んでから、SYSPLLUEN に 1 を書き込みます。
クロックソースを正常に変更するには、このレジスタを更新する前に両方のクロックソー
スを動作させておく必要があります。
Table 15.
System PLL clock source update enable register (SYSPLLUEN, address 0x4004
8044) bit description
Bit
Symbol
0
ENA
31:1
-
Value
Description
Reset value
システム PLL クロックソース更新イネーブル
0x0
0
変更なし
1
クロックソース更新
-
予約済み
0x00
3.5.11 メインクロックソース選択レジスタ
このレジスタはメインシステムクロックを、システム PLL への入力、システム PLL から
の出力(sys_pllclkout)、ウォッチドッグオシレータまたは IRC オシレータから直接、の
いずれかから選択します。メインシステムクロックは、コア、ペリフェラル、メモリをク
ロック制御します。
更新を有効にするには、MAINCLKUEN レジスタ(Section 3.5.12 を参照)を LOW から HIGH
に切り替える必要があります。
注意 : クロックソースを切り替えるときは、クロックソースを更新する前に両方のクロッ
クを動作させておく必要があります。
注意 : ボーレートが 100 kbit/s を超える C_CAN コントローラを使用する場合は、システ
ムオシレータを選択する必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
01
FT
IRC オシレータ
A
00
R
-
D
31:2
0x00
システム PLL クロックソース
Rev. 00.15 — 2010 / 9 / 28
19
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
メインクロックのクロックソース
0x00
D
Reset value
D
R
A
予約済み
0x00
3.5.12 メインクロックソース更新イネーブルレジスタ
このレジスタは、MAINCLKSEL レジスタを書き込んだ後に、メインクロックのクロック
ソースを新しい入力クロックで更新します。更新を有効にするには、まず MAINCLKUEN
レジスタに 0 を書き込んでから、MAINCLKUEN に 1 を書き込みます。
クロックソースを正常に変更するには、このレジスタを更新する前に両方のクロックソー
スを動作させておく必要があります。
Table 17.
Main clock source update enable register (MAINCLKUEN, address 0x4004 8074)
bit description
Bit
Symbol
0
ENA
31:1
Value
-
Description
Reset value
メインクロックソース更新イネーブル
0x0
0
変更なし
1
クロックソース更新
-
予約済み
0x00
3.5.13 システム AHB クロック分周器レジスタ
このレジスタはメインクロックを分周して、コア、メモリ、ペリフェラルにシステムク
ロックを提供します。システムクロックは、DIV ビットを 0x0 に設定することで完全に
シャットダウンできます。
Table 18.
System AHB clock divider register (SYSAHBCLKDIV, address 0x4004 8078) bit
description
Bit
Symbol
7:0
DIV
31:8
-
Value
Description
Reset
value
システム AHB クロック分周器の値
0x01
0
システムクロックはディスエーブル
1
to
1 で分周
...
255
255 で分周
-
予約済み
ユーザーマニュアル
0x00
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
システム PLL クロック出力
-
FT
WDT オシレータ
11
A
10
R
システム PLL への入力クロック
D
-
IRC オシレータ
01
FT
31:2
00
FT
A
A
R
R
D
Description
F
FT
FT
Value
R
A
A
SEL
D
R
R
Symbol
1:0
R
A
D
D
Main clock source select register (MAINCLKSEL, address 0x4004 8070) bit
description
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 16.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
20
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
AHBCLKCTRL レジスタは、個別のシステムやペリフェラルブロックに対してクロックを
イネーブルにします。システムクロック(sys_ahb_clk[0]、AHBCLKCTRL レジスタのビッ
ト 0)は、AHB-APB 間ブリッジ、AHB マトリックス、ARM Cortex-M0、Syscon ブロック、
そして PMU にクロックを提供します。このクロックはディスエーブルにできません。
F
FT
FT
A
A
R
R
D
D
D
3.5.14 システム AHB クロック制御レジスタ
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
D
R
A
FT
Symbol
0
SYS
1
2
3
4
5
6
7
8
9
Value
Description
AHB-APB 間ブリッジ、AHB マトリックス、Cortex-M0 1
FCLK および HCLK、Syscon、そして PMU にクロック
をイネーブルにします。このビットは読み取り専用
です。
0
予約済み
1
イネーブル
ROM
1
ROM にクロックをイネーブル
0
ディスエーブル
1
イネーブル
RAM
1
RAM にクロックをイネーブル
0
ディスエーブル
1
イネーブル
FLASHREG
フラッシュレジスタインターフェースのクロックを 1
イネーブル
0
ディスエーブル
1
イネーブル
FLASHARRAY
フラッシュ配列アクセスのクロックをイネーブル
0
ディスエーブル
1
イネーブル
I2C
I2C にクロックをイネーブル
0
ディスエーブル
1
イネーブル
GPIO
GPIO にクロックをイネーブル
0
ディスエーブル
1
イネーブル
CT16B0
1
0
1
16 ビットカウンタ / タイマ 0 にクロックをイネーブル 0
0
ディスエーブル
1
イネーブル
CT16B1
16 ビットカウンタ / タイマ 1 にクロックをイネーブル 0
0
ディスエーブル
1
イネーブル
CT32B0
32 ビットカウンタ / タイマ 0 にクロックをイネーブル 0
0
ディスエーブル
1
イネーブル
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
21
A
Bit
R
System AHB clock control register (SYSAHBCLKCTRL, address 0x4004 8080) bit
description
D
Table 19.
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
D
FT
FT
A
A
R
R
Reset
value
D
CT32B1
Description
FT
10
Value
A
A
A
Symbol
R
R
R
Bit
D
D
System AHB clock control register (SYSAHBCLKCTRL, address 0x4004 8080) bit
description (続き)
D
Table 19.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
R
A
イネーブル
D
ディスエーブル
1
1
UART にクロックをイネーブル。UART ピンは、UART 0
クロックをイネーブルにする前に IOCON ブロック内
で設定しておく必要があります。
UART
0
ディスエーブル
1
イネーブル
ADC
ADC にクロックをイネーブル
0
ディスエーブル
1
イネーブル
0
14
-
予約済み
0
15
WDT
WDT にクロックをイネーブル
0
16
17
18
31:19
0
ディスエーブル
1
イネーブル
IOCON
I/O 設定ブロックにクロックをイネーブル
0
ディスエーブル
1
イネーブル
CAN
C_CAN にクロックをイネーブル
0
ディスエーブル
1
イネーブル
SSP1
-
D
0
FT
SPI0 にクロックをイネーブル
A
13
イネーブル
SSP0
R
12
ディスエーブル
1
D
11
32 ビットカウンタ / タイマ 1 にクロックをイネーブル 0
0
SPI1 にクロックをイネーブル
0
ディスエーブル
1
イネーブル
-
予約済み
0
0
0
0x00
3.5.15 SPI0 クロック分周器レジスタ
このレジスタは、SPI0 ペリフェラルクロックの SPI0_PCLK を設定します。SPI0_PCLK は、
DIV ビットを 0x0 に設定することでシャットダウンできます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
22
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
D
R
A
予約済み
D
255 で分周
-
FT
255
A
to
1 で分周
...
R
SPI0_PCLK をディスエーブル
1
0x00
D
-
0
FT
31:8
SPI0_PCLK クロック分周器の値
FT
A
A
R
R
D
DIV
Description
FT
7:0
Value
A
Symbol
R
R
R
Bit
D
D
SPI0 clock divider register (SSP0CLKDIV, address 0x4004 8094) bit description
D
Table 20.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
0x00
3.5.16 UART クロック分周器レジスタ
このレジスタは、UART ペリフェラルクロックの UART_PCLK を設定します。UART_PCLK
は、DIV ビットを 0x0 に設定することでシャットダウンできます。
注意 : UART ピンは、UART クロックをイネーブルにする前に IOCON ブロック内で設定し
ておく必要があります。
Table 21.
UART clock divider register (UARTCLKDIV, address 0x4004 8098) bit description
Bit
Symbol
7:0
DIV
31:8
-
Value
Description
Reset
value
UART_PCLK クロック分周器の値
0x00
0
UART_PCLK をディスエーブル
1
to
1 で分周
...
255
255 で分周
-
予約済み
0x00
3.5.17 SPI1 クロック分周器レジスタ
このレジスタは、SPI1 ペリフェラルクロックの SPI1_PCLK を設定します。SPI1_PCLK は、
DIV ビットを 0x0 に設定することでシャットダウンできます。
Table 22.
SPI1 clock divider register (SSP1CLKDIV, address 0x4004 809C) bit description
Bit
Symbol
7:0
DIV
31:8
-
Value
Description
Reset
value
SPI1_PCLK クロック分周器の値
0x00
0
SPI1_PCLK をディスエーブル
1
to
1 で分周
...
255
255 で分周
-
予約済み
0x00
3.5.18 WDT クロックソース選択レジスタ
このレジスタは、ウォッチドッグタイマのクロックソースを選択します。更新を有効にす
るには、WDTCLKUEN レジスタ(Section 3.5.19 を参照)を LOW から HIGH に切り替える
必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
23
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
SEL
Description
R
A
A
1:0
Value
D
R
R
Symbol
R
A
D
D
WDT clock source select register (WDTCLKSEL, address 0x4004 80D0) bit
description
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 23.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
ウォッチドッグオシレータ
11
予約済み
-
予約済み
D
メインクロック
10
R
A
0x00
3.5.19 WDT クロックソース更新イネーブルレジスタ
このレジスタは、WDTCLKSEL レジスタを書き込んだ後、ウォッチドッグタイマのクロッ
クソースを新しい入力クロックで更新します。ウォッチドッグタイマの入力時に更新を
有効にするには、まず WDTCLKUEN レジスタに 0 を書き込んでから、WDTCLKUEN に 1 を
書き込みます。
Table 24.
WDT clock source update enable register (WDTCLKUEN, address 0x4004 80D4)
bit description
Bit
Symbol
0
ENA
31:1
Value
-
Description
Reset value
WDT クロックソース更新イネーブル
0x0
0
変更なし
1
クロックソース更新
-
予約済み
0x00
3.5.20 WDT クロック分周器レジスタ
このレジスタは、ウォッチドッグクロックの wdt_clk の分周値を決定します。
Table 25.
WDT clock divider register (WDTCLKDIV, address 0x4004 80D8) bit description
Bit
Symbol
7:0
DIV
Value
31:8
-
Description
Reset
value
WDT クロック分周器の値
0x00
0
ディスエーブル
1
1 で分周
...
to
255
255 で分周
-
予約済み
0x00
3.5.21 CLKOUT クロックソース選択レジスタ
このレジスタは、CLKOUT ピンに出力される clkout_clk 信号を設定します。3 つのオシレー
タすべてとメインクロックは、clkout_clk クロックに対して選択できます。
更新を有効にするには、CLKOUTCLKUEN レジスタ(Section 3.5.22 を参照)を LOW から
HIGH に切り替える必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
01
FT
IRC オシレータ
A
00
R
-
D
31:2
0x00
WDT クロックソース
Rev. 00.15 — 2010 / 9 / 28
24
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
Reset
value
D
SEL
Description
F
FT
FT
1:0
Value
A
A
A
Symbol
R
R
R
Bit
D
D
CLKOUT clock source select register (CLKOUTCLKSEL, address 0x4004 80E0) bit
description
D
Table 26.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
ウォッチドッグオシレータ
11
メインクロック
-
予約済み
D
システムオシレータ
10
R
A
0x00
3.5.22 CLKOUT クロックソース更新イネーブルレジスタ
このレジスタは、CLKOUTCLKSEL レジスタを書き込んだ後、CLKOUT ピンのクロックソー
スを新しいクロックで更新します。CLKOUT ピンの入力時に更新を有効にするには、まず
CLKCLKUEN レジスタに 0 を書き込んでから、CLKCLKUEN に 1 を書き込みます。
Table 27.
CLKOUT clock source update enable register (CLKOUTUEN, address 0x4004
80E4) bit description
Bit
Symbol
0
ENA
31:1
Value
-
Description
Reset value
CLKOUT クロックソース更新イネーブル
0x0
0
変更なし
1
クロックソース更新
-
予約済み
0x00
3.5.23 CLKOUT クロック分周器レジスタ
このレジスタは、CLKOUT ピン上のクロック出力信号の分周値を決定します。
Table 28.
CLKOUT clock divider registers (CLKOUTCLKDIV, address 0x4004 80E8) bit
description
Bit
Symbol
7:0
DIV
31:8
-
Value
Description
Reset
value
クロック分周器の値
0x00
0
ディスエーブル
1
to
1 で分周
...
255
255 で分周
-
予約済み
0x00
3.5.24 POR キャプチャの PIO ステータスレジスタ 0
PIOPORCAP0 レジスタは、パワーオンリセット時にポート 0、1、2(PIO2_0 ∼ PIO2_7 の
ピン)の PIO ピンの状態(HIGH または LOW)をキャプチャします。各ビットは、1 つの
GPIO ピンのリセット状態を表します。このレジスタは、読み取り専用のステータスレジ
スタです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
01
FT
IRC オシレータ
A
00
R
-
D
31:2
0x00
CLKOUT クロックソース
Rev. 00.15 — 2010 / 9 / 28
25
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
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
ユーザー実装に応じて異なる
F
Reset value
D
Description
CAPPIO0_11 to
CAPPIO0_0
FT
FT
A
A
R
R
D
Symbol
11:0
A
FT
Bit
FT
A
A
R
R
D
D
POR captured PIO status registers 0 (PIOPORCAP0, address 0x4004 8100) bit
description
D
Table 29.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
R
A
FT
D
R
A
PIOPORCAP1 レジスタは、パワーオンリセット時にポート 2(PIO2_8 ∼ PIO2_11)およ
びポート 3 の PIO ピンの状態(HIGH または LOW)をキャプチャします。各ビットは、1
つの PIO ピンのリセット状態を表します。このレジスタは、読み取り専用のステータスレ
ジスタです。
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
-
予約済み
-
3.5.26 BOD 制御レジスタ
BOD 制御レジスタは、BOD 割り込みを NVIC へ送り、強制リセットを行うための 4 種類
のしきい値を選択します。Table 31 に示すリセットしきい値および割り込みしきい値が標
準値です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
3.5.25 POR キャプチャの PIO ステータスレジスタ 1
26
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
D
R
A
F
FT
D
11
レベル 3: リセットアサートしきい値電圧は 2.63 V、リセッ
トデアサートしきい値電圧は 2.71 V。
BODINTVAL
-
00
BOD 割り込みレベル
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。
BODRSTENA
BOD リセットイネーブル
0
リセット機能をディスエーブルにします。
1
リセット機能をイネーブルにします。
-
予約済み
A
レベル 2: リセットアサートしきい値電圧は 2.35 V、リセッ
トデアサートしきい値電圧は 2.43 V。
R
10
D
レベル 1: リセットアサートしきい値電圧は 2.06 V、リセッ
トデアサートしきい値電圧は 2.15 V。
D
01
FT
レベル 0: リセットアサートしきい値電圧は 1.46 V、リセッ
トデアサートしきい値電圧は 1.63 V。
A
00
R
31:5
00
BOD リセットレベル
D
4
FT
3:2
FT
A
A
R
R
BODRSTLEV
Reset
value
D
1:0
Value Description
FT
Symbol
A
Bit
A
R
R
D
D
BOD control register (BODCTRL, address 0x4004 8150) bit description
D
R
FT
FT
A
A
R
R
D
D
D
Table 31.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
0
0x00
3.5.27 システム tick カウンタ校正レジスタ
Table 32.
System tick timer calibration register (SYSTCKCAL, address 0x4004 8158) bit
description
Bit
Symbol
25:0
CAL
31:26
-
Value
-
Description
Reset
value
システム tick タイマ校正値
0x04
予約済み
0x00
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 の
割り込みがあります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
27
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
注意 : 対応する PIO ピンを使用してディープスリープモードからチップをウェイクアップ
する場合、スタートロジック入力に接続されている各割り込みを NVIC 内でイネーブルに
する必要があります。
D
R
A
立ち下がりエッジ
1
立ち上がりエッジ
APRPIO1_0
-
D
31:13
Reset
value
スタートロジック入力 PIO0_11 ∼ PIO0_0 のエッジ選 0x0
択
0
スタートロジック入力 PIO1_0 のエッジ選択
0
立ち下がりエッジ
1
立ち上がりエッジ
-
予約済み
0x0
0x0
3.5.29 スタートロジック信号イネーブルレジスタ 0
この STARTERP0 レジスタは、スタートロジック内のスタート信号ビットをイネーブルま
たはディスエーブルにします。ビットの割り当ては Table 33 と同じです。
Table 34.
Start logic signal enable register 0 (STARTERP0, address 0x4004 8204) bit
description
Bit
Symbol
11:0
ERPIO0_11 to
ERPIO0_0
12
Value
Reset
value
スタートロジック入力 PIO0_11 ∼ PIO0_0 のスタート 0x0
信号イネーブル
0
ディスエーブル
1
イネーブル
ERPIO1_0
31:13 -
Description
スタートロジック入力 PIO1_0 のスタート信号イネー 0x0
ブル
0
ディスエーブル
1
イネーブル
予約済み
0x0
3.5.30 スタートロジックリセットレジスタ 0
STARTRSRP0CLR レジスタ内のビットに 1 を書き込むと、スタートロジックの状態がリセッ
トされます。ビットの割り当ては Table 33 と同じです。スタートアップロジックは、入力
信号を使用して、スタート信号を記録するためのクロックエッジを生成します。このク
ロックエッジ(立ち下がりまたは立ち上がり)は、ディープスリープモードからのウェイ
クアップに対して割り込みを設定します。したがって、スタートアップロジックの状態は
使用する前にクリアしておく必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
12
FT
APRPIO0_11
to APRPIO0_0
Description
A
11:0
Value
R
Symbol
D
Bit
FT
Start logic edge control register 0 (STARTAPRP0, address 0x4004 8200) bit
description
FT
A
A
R
R
D
Table 33.
28
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
A
F
D
Reset
value
R
A
FT
FT
A
RSRPIO0_11
to RSRPIO0_0
Description
R
11:0
Value
D
Symbol
R
A
FT
FT
A
A
R
R
D
D
Start logic reset register 0 (STARTRSRP0CLR, address 0x4004 8208) bit
description
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 35.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
FT
D
-
1
書き込み : スタート信号リセット
R
A
-
A
31:13
R
0
RSRPIO1_0
D
12
スタートロジック入力 PIO0_11 ∼ PIO0_0 のスタート n/a
信号リセット
スタートロジック入力 PIO1_0 のスタート信号リセッ n/a
ト
0
-
1
書き込み : スタート信号リセット
-
予約済み
n/a
3.5.31 スタートロジックステータスレジスタ 0
このレジスタは、イネーブルなスタート信号ビットのステータスを反映します。ビットの
割り当ては Table 33 と同じです。各ビット(イネーブルの場合)はスタートロジックの状
態、すなわち、所定のピンがウェイクアップ信号を受信したかどうかを反映します。
Table 36.
Start logic status register 0 (STARTSRP0, address 0x4004 820C) bit description
Bit
Symbol
11:0
SRPIO0_11 to
SRPIO0_0
12
Value
0
スタート信号受信せず
1
スタート信号保留中
SRPIO1_0
-
Reset
value
スタートロジック入力 PIO0_11 ∼ PIO0_0 のスタート n/a
信号ステータス
スタートロジック入力 PIO1_0 のスタート信号ステー n/a
タス
0
31:13
Description
スタート信号受信せず
1
スタート信号保留中
-
予約済み
n/a
3.5.32 ディープスリープモード設定レジスタ
このレジスタは、デバイスがディープスリープモードになったときのウォッチドッグ
(WD)オシレータと BOD 回路の動作を制御します。
このレジスタは、ディープスリープモードになる前に最低 1 回、Table 37 に示す 4 つの値
のいずれかによって初期化する必要があります。
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
注意 : このレジスタの初期化とプログラミングが正しく行われないと、マイクロコント
ローラが未定義の動作をすることになります。PDSLEEPCFG レジスタで許容される値は、
Table 37 に示す値のみです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
29
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
FT
FT
A
A
R
なっている間に発生する低電圧イベントから部品が保護されます。ただし、ディープ
スリープモードでは、BOD 回路からの電流ドレインが増加します。
R
D
D
• BOD: BOD 回路をイネーブルのままにしておくと、部品がディープスリープモードに
F
FT
FT
A
A
R
R
D
D
ディープスリープモードで適切な電力設定を選択する際には、以下を考慮してください。
D
D
R
A
Table 38.
Deep-sleep configuration register (PDSLEEPCFG, address 0x4004 8230) bit
description
Bit
Symbol
Value
Description
2:0
-
111
予約済み。これらのビットには常に111と書き込みま 0
す。
3
BOD_PD
5:4
-
6
WDTOSC_PD
Reset
value
ディープスリープモードでの BOD パワーダウン制 0
御、Table 37 を参照。
0
通常電力状態
1
パワーダウン
11
予約済み。これらのビットには常に 11 と書き込みま 0
す。
ディープスリープモードでのウォッチドッグオシ 0
レータ電力制御、Table 37 を参照。
0
通常電力状態
1
パワーダウン
7
-
1
予約済み。このビットには常に 1 と書き込みます。
10:8
-
000
予約済み。これらのビットには常に 000 と書き込み 0
ます。
12:11
-
11
予約済み。これらのビットには常に 11 と書き込みま 0
す。
31:13
-
0
予約済み
0
0
3.5.33 ウェイクアップ設定レジスタ
このレジスタのビットは、ディープスリープモードからウェイクアップするとチップがど
のような状態になるかを決定します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
30
A
注意 : このレジスタの予約ビットは、必ず指定どおりに書き込む必要があります。このレ
ジスタは、ディープスリープモードに切り替える前に正しく初期化しておかなくてはなり
ません。
R
ディープスリープモードでウォッチドッグオシレータを動作させると、電流ドレイン
増加の原因となります。
D
イマまたは多目的タイマが必要であれば、ウォッチドッグオシレータをディープス
リープモードで動作させておいて、これらのタイマのクロックにすることができます
(詳細は Section 3.9.3 を参照)
。その場合は、ウォッチドッグオシレータのアナログ出
力周波数を最小値に設定し(WDTOSCCTRL 内のビット FREQSEL = 0001、Table 11 を
参照)、ディープスリープモードに切り替える前に、SYSAHBCLKCTRL レジスタ(Table
19 を参照)内でタイマクロック以外のすべてのペリフェラルクロックをディスエー
ブルにする必要があります。
FT
• WD オシレータ : ウェイクアップイベントのタイミングをとるのにウォッチドッグタ
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
注意 : 予約ビットは、必ず指定どおりに書き込む必要があります。
D
FT
FT
A
A
R
R
D
D
デフォルトでは、チップがディープスリープモードからウェイクアップすると、IRC とフ
ラッシュメモリはパワーアップして動作し、BOD 回路はイネーブルになります。
D
D
1
2
3
4
5
6
7
IRC_PD
Reset
value
IRC オシレータ出力ウェイクアップ設定
0
通常電力状態
パワーダウン
IRC オシレータパワーダウンウェイクアップ設定
0
通常電力状態
1
パワーダウン
FLASH_PD
通常電力状態
1
パワーダウン
BOD_PD
0
BOD ウェイクアップ設定
0
通常電力状態
1
パワーダウン
ADC_PD
1
ADC ウェイクアップ設定
0
通常電力状態
1
パワーダウン
SYSOSC_PD
1
システムオシレータウェイクアップ設定
0
通常電力状態
1
パワーダウン
WDTOSC_PD
ウォッチドッグオシレータウェイクアップ設定
0
通常電力状態
1
パワーダウン
SYSPLL_PD
0
通常電力状態
1
パワーダウン
1
1
システム PLL ウェイクアップ設定
8
-
1
予約済み。このビットには常に 1 と書き込みます。
1
9
-
0
予約済み。このビットには常に 0 と書き込みます。
0
10
-
1
予約済み。このビットには常に 1 と書き込みます。
1
11
-
1
予約済み。このビットには常に 1 と書き込みます。
1
0
12
-
0
予約済み。このビットには常に 0 と書き込みます。
15:13
-
111
予約済み。これらのビットには常に 111 と書き込みま 111
す。
31:16
-
-
予約済み
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
フラッシュウェイクアップ設定
0
0
Rev. 00.15 — 2010 / 9 / 28
31
A
0
Description
R
IRCOUT_PD
D
0
Value
FT
Symbol
A
Wake-up configuration register (PDAWAKECFG, address 0x4004 8234) bit
description
Bit
1
R
Table 39.
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
PDRUNCFG レジスタ内のビットは、各種アナログブロックへの電力供給を制御します。こ
のレジスタへの書き込みはチップの動作中いつでも可能であり、IRC へのパワーダウン信
F
FT
FT
A
A
R
R
D
D
D
3.5.34 パワーダウン設定レジスタ
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
D
号を除く書き込みはただちに有効になります。
R
A
Power-down configuration register (PDRUNCFG, address 0x4004 8238) bit
description
Bit
Symbol
0
IRCOUT_PD
1
2
3
4
5
6
7
Value
Description
Reset
value
IRC オシレータ出力パワーダウン
0
0
通常電力状態
1
パワーダウン
IRC_PD
0
通常電力状態
1
パワーダウン
FLASH_PD
0
フラッシュパワーダウン
0
通常電力状態
1
パワーダウン
BOD_PD
0
BOD パワーダウン
0
通常電力状態
1
パワーダウン
ADC_PD
1
ADC パワーダウン
0
通常電力状態
1
パワーダウン
SYSOSC_PD
1
システムオシレータパワーダウン
0
通常電力状態
1
パワーダウン
WDTOSC_PD
1
ウォッチドッグオシレータパワーダウン
0
通常電力状態
1
パワーダウン
SYSPLL_PD
1
システム PLL パワーダウン
0
通常電力状態
1
パワーダウン
8
-
1
予約済み。このビットには常に 1 と書き込みます。
1
9
-
0
予約済み。このビットには常に 0 と書き込みます。
0
10
-
1
予約済み。このビットには常に 1 と書き込みます。
1
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
IRC オシレータパワーダウン
Rev. 00.15 — 2010 / 9 / 28
32
A
Table 40.
R
注意 : 予約ビットは、必ず指定どおりに書き込む必要があります。
D
デフォルトでは、IRC とフラッシュメモリはパワーアップして動作し、BOD 回路はイネー
ブルになります。
FT
IRC をパワーダウンするときのグリッチ発生を避けるため、IRC クロックはクリーンポイ
ントで自動的にオフに切り替わります。したがって、IRC についてはパワーダウン状態が
有効になる前に遅延が発生する可能性があります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
Description
Reset
value
11
-
1
予約済み。このビットには常に 1 と書き込みます。
1
12
-
0
予約済み。このビットには常に 0 と書き込みます。
0
15:13
-
111
予約済み。これらのビットには常に 111 と書き込みま 111
す。
31:16
-
-
予約済み
FT
FT
A
A
R
R
Value
D
Symbol
D
Bit
F
FT
FT
A
A
R
R
D
D
D
Power-down configuration register (PDRUNCFG, address 0x4004 8238) bit
description (続き)
D
R
FT
FT
A
A
R
R
D
D
D
Table 40.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
R
A
FT
D
R
A
3.5.35 デバイス ID レジスタ
デバイス ID レジスタは読み取り専用レジスタであり、LPC111x/LPC11C1x の各部品の部
品 ID が含まれています。このレジスタは、ISP/IAP コマンド(Section 17.8.5)によっても
読み取られます。
Table 41.
Device ID register (DEVICE_ID, address 0x4004 83F4) bit description
Bit
Symbol
31:0
DEVICEID
Value
Description
Reset value
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
3.6 リセット
LPC111x/LPC11C1x にリセットのソースは 4 つあります。RESET ピン、ウォッチドッグリ
セット、パワーオンリセット(POR)、そしてブラウンアウト検出(BOD)です。さらに
ソフトウェアリセットもあります。
RESET ピンはシュミットトリガ入力ピンです。任意のソースで Reset チップをアサートす
ると、動作電圧が使用可能なレベルに達した時点で IRC が起動し、外部 Reset がデアサー
トされるまでリセットはアサートされたままとなり、オシレータは動作し、フラッシュコ
ントローラは自身の初期化を完了します。
Cortex-M0 CPU(POR、BOD リセット、外部リセット、ウォッチドッグリセット)外部の
リセットソースをアサートすると、以下のプロセスが開始します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
-
33
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
FT
FT
A
A
R
R
R
定したクロック出力を提供します。
D
D
IRC が起動します。IRC の起動時間(パワーアップ時で最大 6 s)の後、IRC は安
D
1.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
FT
D
D
ラッシュにジャンプすることもあります。
FT
A
A
R
R
D
2. ROM 内のブートコードが起動します。ブートコードはブートタスクを実行し、フ
R
A
3. フラッシュがパワーアップします。これには 100 s ほどの時間がかかります。次
に、約 250 サイクルのフラッシュ初期化シーケンスが開始します。
FT
D
R
A
内部リセットを解除すると、プロセッサはアドレス 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)。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
34
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
システムクロックのクロックソースは、IRC(デフォルト)、システムオシレータ、ま
たはウォッチドッグオシレータから選択できます(Figure 3 および関連レジスタを参
照)。
•
システムクロック周波数は、SYSPLLCTRL(Table 8)および SYSAHBCLKDIV レジスタ
(Table 18)によって選択できます。
•
選択したペリフェラル(UART、SPI0/1、WDT)は、独自のクロック分周器とともに
個別のペリフェラルクロックを使用します。ペリフェラルクロックは、対応するク
ロック分周器レジスタによってシャットダウンできます(Table 20 ∼ Table 22)
。
A
F
FT
FT
A
A
R
R
D
R
•
D
各種アナログブロック(PLL、オシレータ、ADC、BOD 回路、フラッシュブロック)
への電力は、いつでも PDRUNCFG レジスタを使用して個別に制御できます(Table 40)
。
D
•
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
ペリフェラル機能は、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)命令を使用します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
35
A
スリープモードでは、ARM Cortex-M0 コアへのシステムクロックは停止し、リセットま
たは割り込みのいずれかが発生するまで命令の実行は一時停止されます。
R
3.8.2 スリープモード
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
3.8.2.3 スリープモードからのウェイクアップ
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
FT
FT
A
A
R
した場合、スリープモードは自動的に終了します。割り込みによるウェイクアップ後、マ
イクロコントローラは PDRUNCFG レジスタおよび SYSAHBCLKDIV レジスタの内容によっ
て定義される最初の電力設定に戻ります。リセットが発生した場合、マイクロコントロー
ラはアクティブモードのデフォルト設定に切り替わります。
R
D
D
NVIC によってイネーブルにされた割り込みがプロセッサに到達するか、リセットが発生
D
D
R
A
FT
D
R
A
3.8.3 ディープスリープモード
ディープスリープモードでは、スリープモードと同様にプロセッサへのシステムクロック
がディスエーブルになります。BOD 回路とウォッチドッグオシレータ以外のすべてのア
ナ ロ グ ブ ロ ッ ク が パ ワ ー ダ ウ ン し ま す。こ れ は、デ ィ ー プ ス リ ー プ モ ー ド 時 に
PDSLEEPCFG レジスタ内で選択または選択解除する必要があります。
ディープスリープモードでは、フラッシュおよびアナログペリフェラルが使用するすべて
の電力、そしてプロセッサ自体、メモリシステムと関連のコントローラ、および内部バス
が使用するすべての動的電力がありません。プロセッサの状態およびレジスタ、ペリフェ
ラルレジスタ、および内部 SRAM 値は維持され、ピンのロジックレベルは静的なままに
保たれます。
3.8.3.1 ディープスリープモードの電力設定
ディープスリープモードの消費電力は、PDSLEEPCFG(Table 38)レジスタのディープス
リープ電力設定によって異なります。
•
ディープスリープモードで使用可能なクロックソースは、ウォッチドッグオシレータ
のみです。タイマ制御ウェイクアップ(Section 3.9.3 を参照)のために必要であれば、
ウォッチドッグオシレータをディープスリープモードのままで動作させておくこと
が可能です。他のすべてのクロックソース(IRC およびシステムオシレータ)やシス
テム PLL はシャットダウンされます。ウォッチドッグオシレータのアナログ出力周波
数を、そのアナログクロック出力(WDTOSCCTRL 内のビット FREQSEL = 0001、Table
11 を参照)の最小値に設定する必要があります。
•
アプリケーションが必要としている場合、BOD 回路をディープスリープモードのま
まで動作させておくことが可能です。
•
ウォッチドッグオシレータがディープスリープモードで動作している場合は、ウォッ
チドッグタイマまたは多目的タイマの 1 つだけを SYSAHBCLKCTRL レジスタでイネー
ブルにすることによって、消費電力を最小限に抑える必要があります。
3.8.3.2 ディープスリープモードのプログラミング
ディープスリープモードに切り替えるには、以下の手順を実行する必要があります。
1.
PCON レジスタの DPDEN ビットを 0 に設定します(Table 46)。
2. PDSLEEPCFG(Table 38)レジスタでディープスリープモードの電力設定を選択し
ます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
36
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
a. タイマ制御のウェイクアップが必要な場合は、PDRUNCFG レジスタでウォッチ
ドッグオシレータに電力が供給されることを確認し、MAINCLKSEL レジスタ
(Table 16)でクロックソースを WD オシレータに切り替えてください。
D
FT
FT
A
A
R
R
D
D
D
b. タイマ制御のウェイクアップが不要でウォッチドッグオシレータをシャットダ
ウンする場合は、PDRUNCFG レジスタで IRC に電力が供給されることを確認し、
MAINCLKSEL レジスタ(Table 16)でクロックソースを IRC に切り替えてくださ
R
A
FT
スタートロジック割り込みをイネーブルにします。
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 によるウェイクアップよりもウェ
イクアップ時間が長くなります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
37
A
4. ウェイクアップに外部ピンを使用する場合は、スタートロジックレジスタ(Table
33 ∼ Table 36)でウェイクアップピンをイネーブルにしてからクリアし、NVIC で
R
3. PDAWAKECFG(Table 39)レジスタでウェイクアップ後の電力設定を選択します。
D
い。そのようにすれば、システムクロックがグリッチなしでシャットダウンされ
ます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
ディープパワーダウンモードでは、WAKEUP ピンを除くチップ全体への電力とクロック
が遮断されます。
F
FT
FT
A
A
R
R
D
D
D
3.8.4 ディープパワーダウンモード
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
D
R
ディープパワーダウンモードの間、SRAM とレジスタの内容は、PMU ブロックの汎用レ
ジスタに格納できる少量のデータ以外は保持されません。
A
FT
D
R
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 がスタートロジックに接続され、ウェ
イクアップピンとして機能します。ユーザーは、各入力に対してスタートロジックレジス
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
38
A
ディープパワーダウンモードでは、WAKEUP ピンを除くすべての機能ピンがトライステー
ト状態になります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
タをプログラムし、対応するウェイクアップイベントに適切なエッジ極性を設定する必要
があります。さらに、各入力に対応する割り込みを NVIC 内でイネーブルにする必要があ
ります。NVIC 内の割り込み 0 ∼ 12 は、13 の PIO ピンに対応します(Section 3.5.28 を参照)
。
D
FT
FT
A
A
R
R
D
D
D
スタートロジックは、イネーブルにするとイネーブルなピンの入力信号を使用してクロッ
クエッジを生成するので、クロックを動作させる必要がありません。したがって、スター
トロジック信号は使用前にクリア(Table 35)しておく必要があります。
R
A
FT
カウンタ / タイマを設定して、タイミング制御したディープスリープセルフウェイクアッ
プイベントを生成するには、以下の手順を実行します。
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 命令を使用して、ディープスリープモードに切り替えます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
39
A
カウンタ / タイマは、SYSAHBCLKCFG レジスタを使用してディープスリープモードでイ
ネーブルにすると、ウォッチドッグオシレータのクロックサイクルをカウントし、そのサ
イクル数が事前設定したマッチ値に等しければマッチイベントを生成します。マッチイ
ベントにより、対応するマッチ出力ピンは HIGH または LOW に切り替わるか、トグルし
ます。また、マッチ出力ピンの状態はスタートロジックによって監視され、そのピンが
NVIC でイネーブルになるとウェイクアップ割り込みをトリガし、それに応じてスタート
ロジックトリガがスタートロジックエッジ制御レジスタ(Table 33 を参照)内で設定され
ます。
R
3.9.3 多目的カウンタ / タイマを使用したセルフウェイクアップイベントの生成
D
またスタートロジックは、LPC111x/LPC11C1x の入力ピンを使用してベクタ割り込みを行
うために、アクティブモードで使用することも可能です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
3.10 システム PLL の機能説明
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
FT
FT
A
A
R
R
D
LPC111x/LPC11C1x は、システム PLL を使用してコアおよびペリフェラルのクロックを生
D
D
成します。
R
A
FT
D
R
A
irc_osc_clk
FCLKIN
sys_osc_clk
pd
FCCO
PSEL<1:0>
PFD
2
SYSPLLCLKSEL
pd
LOCK
DETECT
LOCK
cd
/2P
FCLKOUT
analog section
pd
cd
/M
5
MSEL<4:0>
Fig 4.
System PLL block diagram
この 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 回連続して一定の数値未満であることを要求
するのは、入力クロックと帰還クロックの位相と周波数の両方がほぼ一致するまでロック
検出器がロックを示さないようにするためです。それによって偽のロック表示を効果的
に防止でき、グリッチのないロック信号が可能になります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
40
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
PLL クロックが不要な場合に消費電力を抑える目的で、パワーダウンモードが組み込まれ
ています。このモードは、パワーダウン設定レジスタ(Table 40)で SYSPLL_PD ビットを
1 に設定することによってイネーブルになります。このモードのときは、内部電流基準が
オフになり、オシレータおよび位相 / 周波数検出器は停止し、分周器はリセット状態にな
ります。一方でパワーダウンモードでは、ロック出力が LOW になり、PLL がロック状態
にないことを示します。SYSPLL_PD ビットを 0 に設定することでパワーダウンモードが終
了すると、PLL は通常の動作を再開し、入力クロック上でロックを回復した時点でロック
信号を HIGH に切り替えます。
F
FT
FT
A
A
R
R
D
D
D
3.10.2 パワーダウン制御
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
D
R
A
FT
帰還分周器
帰還分周器の分周比は MSEL ビットによって制御されます。PLL の出力クロックと入力ク
ロック間の分周比は、Table 8 に示すように MSEL ビットの 10 進値に 1 を加えた値です。
分周値の変更
PLL の動作中に分周比を変更することはお勧めしません。変更した MSEL 値や PSEL 値を分
周器と同期させる方法はないので、カウンタが未定義の値を読み取って、出力クロックの
周波数で無用なスパイクやドロップが発生する危険性があります。分周器の設定を変更
するときは、まず PLL をパワーダウンし、分周器の設定を調整した後に、再度 PLL を起
動するという方法をお勧めします。
3.10.4 周波数の選択
PLL の周波数方程式では、以下のパラメータを使用します(Figure 3 も参照してください)。
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
を参照)。
3.10.4.1 通常モード
通常モードではポスト分周器がイネーブルになり、50% のデューティサイクルで、周波
数の関係は次のようになります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
41
A
ポスト分周器の分周比は PSEL ビットによって制御されます。分周比は、Table 8 に示すよ
うに、PSEL ビットによって選択された P 値を 2 倍した値です。これにより、デューティ
サイクルが 50% の出力クロックが保証されます。
R
ポスト分周器
D
3.10.3 分周比のプログラミング
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
FT
FT
A
A
R
R
R
(1)
D
D
D
D
FT
FT
A
A
R
R
D
Fclkout = M  Fclkin =  FCCO    2  P 
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
D
D
R
A
M と P に適した値を選択するには、以下の手順をお勧めします。
FT
D
R
入力クロック周波数 Fclkin を指定します。
A
1.
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 を参照)、メインクロックはシステムクロックと同等です。
Table 43.
PLL configuration examples
PLL input
clock
sys_pllclkin
(Fclkin)
Main clock
(Fclkout)
MSEL bits M divider PSEL bits
Table 8
value
Table 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
3.10.4.2 パワーダウンモード
このモードのときは、内部電流基準がオフになり、オシレータおよび位相 / 周波数検出器
は停止し、分周器はリセット状態になります。一方でパワーダウンモードでは、ロック出
力が LOW になり、PLL がロック状態にないことを示します。パワーダウン設定レジスタ
(Table 40)で SYSPLL_PD ビットを 0 に設定することによってパワーダウンモードが終了
すると、PLL は通常の動作を再開し、入力クロック上でロックを回復した時点でロック信
号を HIGH に切り替えます。
3.11 フラッシュメモリへのアクセス
システムクロック周波数に応じて、フラッシュメモリへのアクセスはさまざまなアクセス
時間で設定できます。設定は、FLASHCFG レジスタのアドレス 0x4003 C010 に書き込み
ます。このレジスタはフラッシュ設定ブロックの一部です(Figure 2 を参照)。
注意 : このレジスタを正しく設定しないと、LPC111x/LPC11C1x のフラッシュメモリが正
常に動作しないことがあります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
42
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
F
FT
A
A
R
R
Reset
value
D
FT
FT
D
01
2 システムクロックのフラッシュアクセス時間(最大 40 MHz
のシステムクロック周波数)
10
3 システムクロックのフラッシュアクセス時間(最大 50 MHz
のシステムクロック周波数)
11
予約済み。
-
予約済み。ユーザーソフトウェアがこれらのビットの値を変 <tbd>
更してはなりません。ビット 31:2 は読み取ったとおりに書き
戻す必要があります。
R
1 システムクロックのフラッシュアクセス時間(最大 20 MHz
のシステムクロック周波数)
A
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
D
A
00
UM10398_0
ユーザーマニュアル
R
フラッシュメモリへのアクセス時間。FLASHTIM +1 は、フラッ 10
シュアクセスに使用されるシステムクロック数に等しくなり
ます。
D
31:2 -
FT
A
A
R
R
D
FLASHTIM
FT
1:0
Value Description
A
Symbol
R
Bit
D
Flash configuration register (FLASHCFG, address 0x4003 C010) bit description
D
Table 44.
FT
FT
FT
FT
第 3 章:LPC111x/LPC11C1x システム構成
43
D
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
R
R
D
D
D
Rev. 00.15 — 2010 / 9 / 28
R
A
A
A
第 4 章:LPC111x/LPC11C1x PMU
(パワーマネージメントユニット)
D
R
R
R
UM10398
D
D
D
参考資料
A
F
FT
FT
A
A
ユーザーマニュアル
D
FT
FT
A
A
R
R
D
D
D
R
A
4.1 概要
FT
D
R
4.2 レジスタの説明
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
4.2.1 電力制御レジスタ
電力制御レジスタは、ARM Cortex-M0 制御のパワーダウンモード(スリープモードまた
はディープスリープモード)の 1 つか、ディープパワーダウンモードのいずれかに切り
替えるように選択し、スリープモードまたはディープスリープモード、およびディープパ
ワーダウンモードのフラグをそれぞれ提供します。パワーダウンモードに切り替える方
法の詳細については、Section 3.7 を参照してください。
Table 46.
Power control register (PCON, address 0x4003 8000) bit description
Bit
Symbol
Value
Description
0
-
-
予約済み。このビットには 1 を書き込まないでください。 0x0
1
DPDEN
7:2
-
0
ディープパワーダウンモードイネーブル
0
ARM WFI がスリープモードまたはディープスリープモー
ドになります(ARM Cortex-M0 コアへのクロックがオフ
に切り替えられます)
。
1
ARM WFI がディープパワーダウンモードになります
(ARM Cortex-M0 コアがパワーダウンします)。
-
予約済み。このビットには 1 を書き込まないでください。 0x0
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
44
A
PMU はディープパワーダウンモードを制御します。ディープパワーダウンモードの間は、
PMU 内の 4 つの汎用レジスタを使用してデータを保持することができます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
D
R
R
A
FT
D
0
読み取り : パワーダウンモードには切り替わっていませ
ん。LPC111x/LPC11C1x はアクティブモードです。
書き込み : 影響なし。
1
読み取り : スリープモード / ディープスリープモードまた
はディープパワーダウンモードに切り替わっています。
書き込み : 1 を書き込むと SLEEPFLAG ビットが 0 にクリア
されます。
-
予約済み。このビットには 1 を書き込まないでください。 0x0
R
A
FT
D
R
A
-
D
DPDFLAG
0
スリープモードフラグ
FT
11
A
-
F
D
R
10:9
A
FT
Reset
value
D
SLEEPFLAG
Description
FT
8
Value
A
Symbol
A
R
R
D
D
Power control register (PCON, address 0x4003 8000) bit description (続き)
Bit
31:12
R
R
FT
FT
A
A
R
R
D
D
D
Table 46.
0x0
ディープパワーダウンフラグ
0
読み取り: ディープパワーダウンモードには切り替わって 0x0
いません。
書き込み : 影響なし。
1
読み取り: ディープパワーダウンモードに切り替わりまし 0x0
た。
書き込み : ディープパワーダウンフラグをクリアします。
-
予約済み。このビットには 1 を書き込まないでください。 0x0
4.2.2 汎用レジスタ 0 ∼ 3
汎用レジスタは、VDD ピンには依然として電力が供給されているが、チップがディープパ
ワーダウンモードに切り替わっているときに、ディープパワーダウンモードを使用して
データを保持します。チップからすべての電力が完全に除去されたときの「コールド」
ブートによってのみ、汎用レジスタがリセットされます。
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
4.2.3 汎用レジスタ 4
汎用レジスタ 4 は、VDD ピンには依然として電力が供給されているが、チップがディープ
パワーダウンモードに切り替わっているときに、ディープパワーダウンモードを使用して
データを保持します。チップからすべての電力が完全に除去されたときの「コールド」
ブートによってのみ、汎用レジスタがリセットされます。
注意 : ピン VDD への外部印加電圧が <tbd> V 未満まで低下した場合、チップをディープ
パワーダウンモードからウェイクアップさせるには、WAKEUP 入力ピンのヒステリシス
をディスエーブルにする必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 4 章:LPC111x/LPC11C1x PMU (パワーマネージメントユニット)
45
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
D
R
Value
Description
Reset
value
9:0
-
-
予約済み。このビットには1を書き込まないでくださ 0x0
い。
10
WAKEUPHYS
F
FT
Symbol
FT
Bit
A
A
A
R
R
D
D
General purpose register 4 (GPREG4, address 0x4003 8014) bit description
R
R
FT
FT
A
A
R
R
D
D
D
Table 48.
D
FT
R
A
FT
0x0
D
WAKEUP ピンのヒステリシスイネーブル
0
WAKEUP ピンのヒステリシスはディスエーブル。
ディープパワーダウンモード中にデータを保持
A
WAKEUP ピンのヒステリシスはイネーブル。
R
1
0x0
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 をセットアップします(Section
4.3.1 を参照)。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
GPDATA
FT
A
A
R
R
D
31:11
FT
FT
FT
FT
第 4 章:LPC111x/LPC11C1x PMU (パワーマネージメントユニット)
46
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 5 章:LPC111x/LPC11C1x 割り込みコントローラ
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
5.1 この章を読む前に
R
A
FT
D
C_CAN コントローラは部品 LPC11C12/14 のみにあります。
R
A
5.2 概要
ネストベクタ割り込みコントローラ(NVIC)は、Cortex-M0 にとって不可欠な要素です。
CPU との密な連結は、低割り込みレイテンシや割り込みの遅い到達の効率的処理を考慮
に入れています。
5.3 特長
• ARM Cortex-M0 の不可欠な要素であるネストベクタ割り込みコントローラ
•
密に連結した割り込みコントローラにより低割り込みレイテンシが可能
•
システム例外とペリフェラル割り込みを制御
• NVIC は 32 のベクタ割り込みに対応
•
ハードウェア優先レベルをマスクした状態での、プログラマブルな 4 つの割り込み優
先レベル
•
再配置可能なベクタテーブル
•
ソフトウェアの割り込み生成
5.4 割り込みソース
Table 49 に、各ペリフェラル機能の割り込みソースを示します。各ペリフェラルデバイス
には、ベクタ割り込みコントローラに対して 1 つ以上の割り込みラインがあります。各ラ
インは、2 つ以上の割り込みソースを表すことがあります。どのラインがどこに接続され
るかについての重要度や優先度は、ARM による一定の基準を除き、決まっていません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
47
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
D
R
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 半分空
F
FT
FT
Function
A
A
A
R
R
D
D
Connection of interrupt sources to the Vectored Interrupt Controller
D
FT
FT
A
A
R
R
D
Vector
Offset
A
FT
FT
A
A
R
R
R
Exception
Number
D
D
D
Table 49.
FT
FT
FT
FT
第 5 章:LPC111x/LPC11C1x 割り込みコントローラ
R
A
16
CT16B0
マッチ 0 - 2
17
CT16B1
キャプチャ 0
マッチ 0 - 1
キャプチャ 0
CT32B0
19
CT32B1
マッチ 0 - 3
キャプチャ 0
マッチ 0 - 3
キャプチャ 0
20
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 割り込みステータス
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
48
A
SI(状態変化)
R
I2C
D
Rx オーバーラン
15
FT
Rx タイムアウト
18
D
D
Rx FIFO 半分満杯
D
D
R
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
A
A
A
第 6 章:LPC111x/LPC11C1x I/O 設定
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
6.1 この章を読む前に
R
A
とおりです。
•
ピンの機能
•
内部プルアップ / プルダウン抵抗またはバスキーパー機能
•
ヒステリシス
• ADC 入力をホストするパッドのアナログ入力モードまたはデジタルモード
• I2C バス機能をホストするパッドの I2C モード
6.3 概説
IOCON レジスタは、すべての PIOn_m ピンの機能(GPIO またはペリフェラル機能)、入
力モード、およびヒステリシスを制御します。さらに、I2C バスピンをさまざまな I2C バス
モードに合わせて設定できます。ピンを ADC の入力ピンとして使用する場合は、アナロ
グ入力モードを選択できます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
49
A
I/O 設定レジスタは、パッドの電気的特性を制御します。プログラマブルな機能は以下の
R
6.2 概要
D
LPC11C1x では、PIO3_4 と PIO3_5 の機能は使用できません。その代わりに、プルアップ
抵抗またはプルダウン抵抗なしで C_CAN を送受信できる機能(Table 51 を参照)専用の
2 つのピンがあります。C_CAN ピンには、プログラマブルなピン設定がありません。
FT
I/O 設定レジスタの実装は、各種の LPC111x/LPC11C1x 部品およびパッケージによって異
なります。Table 51 に、各パッケージで使用される IOCON レジスタを示します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
VDD
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
D
FT
FT
A
A
R
R
D
output enable
ESD
D
D
R
PIN
FT
output
A
pin configured
as digital output
driver
D
R
VDD
A
ESD
VSS
weak
pull-up
pull-up enable
pin configured
as digital input
weak
pull-down
repeater mode
enable
pull-down enable
data input
select analog input
pin configured
as analog input
Fig 5.
analog input
002aaf304
Standard I/O pin configuration
6.3.1 ピンの機能
IOCON レジスタの FUNC ビットは、GPIO(FUNC = 000)またはペリフェラル機能に設定
できます。ピンが GPIO ピンである場合、ピンが入力と出力のどちらとして設定されるの
かは GPIOnDIR レジスタによって決められます(Section 8.3.2 を参照)。どのようなペリ
フェラル機能でも、ピンの機能に応じてピンの方向が自動的に制御されます。GPIOnDIR
レジスタはペリフェラル機能にまったく影響しません。
6.3.2 ピンのモード
IOCON レジスタの MODE ビットにより、各ピンに対してオンチップのプルアップ抵抗ま
たはプルダウン抵抗を選択するか、リピータモードを選択することができます。
オンチップ抵抗で可能な設定は、プルアップのイネーブル、プルダウンのイネーブル、ま
たはプルアップ / プルダウンなしのいずれかです。デフォルト値はプルアップのイネーブ
ルです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
50
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
リピータモードでは、ピンがロジック HIGH の場合にプルアップ抵抗をイネーブルにし
て、ピンがロジック LOW の場合はプルダウン抵抗をイネーブルにします。これにより、
ピンが入力として設定されていて外部駆動されていない場合、ピンは既知の最後の状態を
保持します。ただし、状態の保持はディープパワーダウンモードには適用されません。リ
ピータモードは一般に、ピンが一時的に駆動されていない場合に、ピンがフロートする
(そして不確定な状態までフロートしている場合はかなりの電力を消費する可能性があ
る)のを防ぐために使用します。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
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 機能を選択する必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
51
A
外部パッド電源電圧 VDD が 2.5 V ∼ 3.6 V の場合、ヒステリシスバッファはイネーブルに
もディスエーブルにもできます。VDD が 2.5 V 未満の場合、ピンを入力モードで使用する
にはヒステリシスバッファをディスエーブルにする必要があります。
R
デジタル機能用入力バッファは、IOCON レジスタを介してヒシテリシスまたはプレイン
バッファとして設定できます(詳細は LPC111x および LPC11Cx のデータシートを参照)。
D
6.3.3 ヒステリシス
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
6.4 レジスタの説明
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
D
FT
FT
A
A
R
R
D
I/O 設定レジスタは、PIO ポートピン、すべてのペリフェラルおよび機能ブロックの入出
力、I2C バスピン、および ADC 入力ピンを制御します。
D
D
R
A
FT
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 の 0xD0
I/O 設定
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
Table 57
IOCON_PIO2_7
R/W
0x020
ピン PIO0_2/SSEL0/CT16B0_CAP0 の I/O 0xD0
設定
0xD0
ピン PIO2_7 の I/O 設定
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
ピン PIO2_10 の I/O 設定
0xD0
Table 72
ピン PIO2_2/DCD/MISO1 の I/O 設定
0xD0
Table 73
IOCON_PIO2_10
R/W
0x058
IOCON_PIO2_2
R/W
0x05C
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Table 58
Rev. 00.15 — 2010 / 9 / 28
52
A
注意 : IOCON レジスタは、Table 50 においてメモリ位置の順番で並べられています。この
順番は LQFP48 パッケージ内の物理ピン番号の順序と一致しており、左上角のピン 1
(PIO2_6)から始まっています。ポート番号順に並べた IOCON レジスタの一覧は Table 51
を参照してください。
R
一部の入力機能(SCK0、DSR0、DCD0、RI0)は、複数の物理ピンに多重化されます。
IOCON_LOC レジスタは、これらの各機能のピン位置を選択します。
D
各ポートピン PIOn_m には、ピンの機能や電気的特性を制御するために割り当てられた
IOCON レジスタが 1 つあります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
Reference
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 の 0xD0
I/O 設定
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 0xD0
の I/O 設定
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
D
FT
FT
A
A
R
R
D
D
D
IOCON_PIO0_8
F
Description
A
Address
offset
FT
Access
FT
Name
R
A
A
R
R
D
D
D
Reset
value
A
FT
FT
A
A
R
R
R
Register overview: I/O configuration (base address 0x4004 4000)(続き)
D
D
D
Table 50.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
R
A
FT
D
R
A
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
53
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
F
A
FT
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
A
yes
R
IOCON_PIO0_1
D
PIO0_1
D
Table 54
FT
yes
A
yes
R
yes
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
A
R
yes
D
IOCON_RESET_PIO0_0
UM10398_0
R
D
FT
PIO0_0
ユーザーマニュアル
FT
A
LQFP48
A
LQFP48
R
PLCC44
D
HVQFN33
Reference
FT
LPC11C12/
C14
A
LPC1113/14
R
R
R
LPC1114
D
D
D
LPC1111/
12/13/14
FT
FT
FT
Register name
A
A
A
Port pin
R
R
R
I/O configuration registers ordered by port number
D
D
D
Table 51.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
54
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
yes
yes
yes
yes
Table 68
-
IOCON_SCK_LOC
yes (SCKLOC = yes
01 reserved)
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
A
IOCON_PIO3_5
R
PIO3_5
D
Table 65
6.4.1 I/O 設定レジスタ IOCON_PIOn
I/O 構成設定の詳細については、Section 6.3 を参照してください。
IOCON_PIO2_6 register (IOCON_PIO2_6, address 0x4004 4000) bit description
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO2_6 を選択します。
001 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO2_0 を選択します。
001
機能 DTR を選択します。
010
機能 SSEL1 を選択します。
011 to 予約済み。
111
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
Table 93
yes
FT
yes
yes
A
yes
yes
R
no
yes
D
no
IOCON_PIO3_4
Symbol
F
D
FT
IOCON_PIO3_3
PIO3_4
Bit
A
FT
A
PIO3_3
Table 52.
R
A
LQFP48
R
LQFP48
D
PLCC44
Reference
FT
HVQFN33
A
LPC11C12/
C14
R
R
R
LPC1113/14
D
D
D
LPC1114
FT
FT
FT
LPC1111/
12/13/14
A
A
A
Register name
R
R
R
I/O configuration registers ordered by port number(続き)
Port pin
D
D
D
Table 51.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
55
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
D
D
R
MODE
Description
D
4:3
Value
FT
Symbol
A
A
A
Bit
R
R
R
IOCON_PIO2_0 register (IOCON_PIO2_0, address 0x4004 4008)
bit description(続き)
D
D
D
Table 53.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
0
ヒステリシス
0
ディスエーブル
1
イネーブル
A
リピータモード
R
11
HYS
D
プルアップ抵抗がイネーブル。
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 54.
IOCON_nRESET_PIO0_0 register (IOCON_nRESET_PIO0_0, address 0x4004
400C) bit description
Bit
Symbol
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 RESET を選択します。
001
機能 PIO0_0 を選択します。
010 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
プルダウン抵抗がイネーブル。
10
FT
01
A
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
R
00
D
5
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
56
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
FT
D
R
010
5
MODE
A
機能 CT32B0_MAT2 を選択します。
011 to 予約済み。
111
4:3
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO1_8 を選択します。
001
機能 CT16B1_CAP0 を選択します。
010 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
A
機能 CLKOUT を選択します。
R
機能 PIO0_1 を選択します。
001
D
000
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO0_1 register (IOCON_PIO0_1, address 0x4004 4010) bit description
D
Table 55.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
57
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
FT
D
R
010
5
MODE
A
機能 CT16B0_CAP0 を選択します。
011 to 予約済み。
111
4:3
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO2_7 を選択します。
001 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
A
機能 SSEL0 を選択します。
R
機能 PIO0_2 を選択します。
001
D
000
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO0_2 register (IOCON_PIO0_2, address 0x4004 401C) bit description
D
Table 57.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
58
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
A
FT
D
R
A
5
R
機能 PIO2_8 を選択します。
001 to 予約済み。
111
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO2_1 を選択します。
001
機能 DSR を選択します。
010
機能 SCK1 を選択します。
011 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
000
4:3
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO2_8 register (IOCON_PIO2_8, address 0x4004 4024) bit description
D
Table 59.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
59
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
A
FT
D
R
A
5
R
機能 PIO0_3 を選択します。
001 to 予約済み。
111
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO0_4(オープンドレインピン)を選択します。
001
I2C 機能 SCL(オープンドレインピン)を選択します。
010 to 予約済み。
111
7:3
-
9:8
I2CMODE
31:10
[1]
-
予約済み。
10000
I2C モードを選択します(Section 6.3.5 を参照)。
00
00[1]
標準モード /Fast モード I2C
01[1]
標準 I/O 機能
10
Fast モードプラス I2C
11
予約済み。
-
予約済み。
ユーザーマニュアル
-
ピンが GPIO(FUNC = 000)である場合は、標準モード(I2CMODE = 00、デフォルト)または標準 I/O 機
能(I2CMODE = 01)を選択してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
000
4:3
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO0_3 register (IOCON_PIO0_3 address 0x4004 402C) bit description
D
Table 61.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
60
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
A
Description
D
D
R
FUNC
D
2:0
Value
FT
FT
FT
Symbol
A
A
A
Bit
R
R
R
IOCON_PIO0_5 register (IOCON_PIO0_5 address 0x4004 4034)
bit description
D
D
D
Table 63.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
D
D
R
000
ピン機能を選択します。
A
FT
000
機能 PIO0_5(オープンドレインピン)を選択します。
D
001
-
9:8
I2CMODE
31:10
[1]
-
A
7:3
R
I2C 機能 SDA(オープンドレインピン)を選択します。
010 to 予約済み。
111
予約済み。
10000
I2C モードを選択します(Section 6.3.5 を参照)。
00
00[1]
標準モード /Fast モード I2C
01[1]
標準 I/O 機能
10
Fast モードプラス I2C
11
予約済み。
-
予約済み。
-
ピンが GPIO(FUNC = 000)である場合は、標準モード(I2CMODE = 00、デフォルト)または標準 I/O 機
能(I2CMODE = 01)を選択してください。
Table 64.
IOCON_PIO1_9 register (IOCON_PIO1_9 address 0x4004 4038) bit description
Bit
Symbol
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO1_9 を選択します。
001
機能 CT16B1_MAT0 を選択します。
010 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
Rev. 00.15 — 2010 / 9 / 28
61
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
A
FT
D
R
A
5
R
機能 PIO3_4 を選択します。
001 to 予約済み。
111
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO2_4 を選択します。
001 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
000
4:3
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO3_4 register (IOCON_PIO3_4, address 0x4004 403C) bit description
D
Table 65.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
62
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
A
FT
D
R
A
5
R
機能 PIO2_5 を選択します。
001 to 予約済み。
111
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO3_5 を選択します。
001 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
000
4:3
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO2_5 register (IOCON_PIO2_5, address 0x4004 4044) bit description
D
Table 67.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
63
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO0_6 register (IOCON_PIO0_6 address 0x4004 404C) bit description
D
Table 69.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
000
ピン機能を選択します。
予約済み。
010
機能 SCK0 を選択します(ピン PIO0_6/SCK0 が Table 94 で選
択されている場合のみ)。
R
機能 PIO0_6 を選択します。
001
A
FT
D
R
A
011 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO0_7 を選択します。
001
機能 CTS を選択します。
010 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
000
64
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
A
FT
D
R
A
5
R
機能 PIO2_9 を選択します。
001 to 予約済み。
111
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO2_10 を選択します。
001 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
000
4:3
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO2_9 register (IOCON_PIO2_9, address 0x4004 4054) bit description
D
Table 71.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
65
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
FT
D
R
010
5
MODE
A
機能 MISO1 を選択します。
011 to 予約済み。
111
4:3
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO0_8 を選択します。
001
機能 MISO0 を選択します。
010
機能 CT16B0_MAT0 を選択します。
011
予約済み。
100 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
ユーザーマニュアル
0
1
イネーブル
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
A
機能 DCD を選択します。
R
機能 PIO2_2 を選択します。
001
D
000
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO2_2 register (IOCON_PIO2_2, address 0x4004 405C) bit description
D
Table 73.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
66
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
FT
D
R
010
5
MODE
A
機能 CT16B0_MAT1 を選択します。
011 to 予約済み。
111
4:3
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
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
リピータモード
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
A
機能 MOSI0 を選択します。
R
機能 PIO0_9 を選択します。
001
D
000
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO0_9 register (IOCON_PIO0_9, address 0x4004 4064) bit description
D
Table 75.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
67
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
D
R
A
F
D
R
A
ヒステリシス
FT
FT
A
HYS
R
5
Reset
value
D
Description
FT
Symbol Value
FT
A
A
R
R
D
D
IOCON_SWCLK_PIO0_10 register (IOCON_SWCLK_PIO0_10, address 0x4004
4068) bit description(続き)
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 76.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
FT
D
-
予約済み。
11
31:8 -
-
予約済み。
0
R
イネーブル
-
A
Table 77.
IOCON_PIO1_10 register (IOCON_PIO1_10, address 0x4004 406C) bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO1_10 を選択します。
001
機能 AD6 を選択します。
010
機能 CT16B1_MAT1 を選択します。
011 to 予約済み。
111
4:3
5
MODE
6
-
7
ADMODE
31:8
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
ヒステリシス
HYS
-
Table 78.
0
0
ディスエーブル
1
イネーブル
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
0
アナログ入力モード
1
デジタル機能モード
-
予約済み。
-
IOCON_PIO2_11 register (IOCON_PIO2_11, address 0x4004 4070)
bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO2_11 を選択します。
001
機能 SCK0 を選択します(ピン PIO2_11/SCK0 が Table 94 で
選択されている場合のみ)。
010 to 予約済み。
111
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
A
ディスエーブル
1
7:6
R
0
D
0
68
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
D
D
R
MODE
Description
D
4:3
Value
FT
FT
FT
Symbol
A
A
A
Bit
R
R
R
IOCON_PIO2_11 register (IOCON_PIO2_11, address 0x4004 4070)
bit description(続き)
D
D
D
Table 78.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
0
ヒステリシス
0
ディスエーブル
1
イネーブル
A
リピータモード
R
11
HYS
D
プルアップ抵抗がイネーブル。
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 79.
IOCON_R_PIO0_11 register (IOCON_R_PIO0_11, address 0x4004 4074) bit
description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 R を選択します。この機能は予約済みです。次の代替機
能から 1 つを選択してください。
001
機能 PIO0_11 を選択します。
010
機能 AD0 を選択します。
011
機能 CT32B0_MAT3 を選択します。
100 to 予約済み。
111
4:3
5
MODE
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
6
-
7
ADMODE
31:8
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
-
ヒステリシス
ディスエーブル
1
イネーブル
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
アナログ入力モード
1
デジタル機能モード
-
予約済み。
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
0
0
Rev. 00.15 — 2010 / 9 / 28
D
プルダウン抵抗がイネーブル。
10
FT
01
A
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
R
00
D
5
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
69
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
A
F
R
Reset
value
D
A
FUNC
Description
FT
FT
A
2:0
Value
R
Symbol
D
Bit
R
A
FT
FT
A
A
R
R
D
D
IOCON_R_PIO1_0 register (IOCON_R_PIO1_0, address 0x4004 4078) bit
description
D
R
FT
FT
A
A
R
R
D
D
D
Table 80.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
D
D
R
000
ピン機能を選択します。
A
機能 AD1 を選択します。
A
機能 PIO1_0 を選択します。
010
R
001
D
機能 R を選択します。この機能は予約済みです。次の機能か
ら 1 つを選択してください。
FT
000
011
機能 CT32B1_CAP0 を選択します。
100 to 予約済み。
111
4:3
5
MODE
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
6
-
7
ADMODE
31:8
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
-
Table 81.
0
ヒステリシス
0
ディスエーブル
1
Enable.
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
0
アナログ入力モード
1
デジタル機能モード
-
予約済み。
-
IOCON_R_PIO1_1 register (IOCON_R_PIO1_1, address 0x4004 407C) bit
description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 R を選択します。この機能は予約済みです。次の機能か
ら 1 つを選択してください。
001
機能 PIO1_1 を選択します。
010
機能 AD2 を選択します。
011
機能 CT32B1_MAT0 を選択します。
100 to 予約済み。
111
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
70
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
MODE
Description
R
A
A
4:3
Value
D
R
R
Symbol
R
A
D
D
Bit
D
R
FT
IOCON_R_PIO1_1 register (IOCON_R_PIO1_1, address 0x4004 407C) bit
description(続き)
FT
A
A
R
R
D
D
D
Table 81.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
ADMODE
-
Table 82.
A
6
R
リピータモード
D
11
0
ヒステリシス
0
ディスエーブル
1
イネーブル
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
0
アナログ入力モード
1
デジタル機能モード
-
予約済み。
-
IOCON_R_PIO1_2 register (IOCON_R_PIO1_2, address 0x4004 4080) bit
description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 R を選択します。この機能は予約済みです。次の機能か
ら 1 つを選択してください。
001
機能 PIO1_2 を選択します。
010
機能 AD3 を選択します。
011
機能 CT32B1_MAT1 を選択します。
100 to 予約済み。
111
4:3
5
6
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
ヒステリシス
HYS
-
0
ディスエーブル
1
イネーブル
-
予約済み。
ユーザーマニュアル
0
1
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
プルアップ抵抗がイネーブル。
FT
プルダウン抵抗がイネーブル。
10
A
01
R
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
HYS
7
31:8
00
D
5
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
71
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
ADMODE
Description
R
A
A
7
Value
D
R
R
Symbol
R
A
D
D
Bit
D
R
FT
IOCON_R_PIO1_2 register (IOCON_R_PIO1_2, address 0x4004 4080) bit
description (続き)
FT
A
A
R
R
D
D
D
Table 82.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
D
R
A
-
IOCON_PIO3_0 register (IOCON_PIO3_0, address 0x4004 4084) bit description
Bit
Symbol
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO3_0 を選択します。
001
機能 DTR を選択します。
001 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
ヒステリシス
HYS
0
ディスエーブル
1
イネーブル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 84.
IOCON_PIO3_1 register (IOCON_PIO3_1, address 0x4004 4088)
bit description
Bit
Symbol
2:0
FUNC
Value
000
Description
Reset
value
ピン機能を選択します。
000
機能 PIO3_1 を選択します。
001
機能 DSR を選択します。
010 to 予約済み。
111
4:3
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
FT
予約済み。
A
Table 83.
デジタル機能モード
-
R
-
アナログ入力モード
1
D
31:8
1
アナログ / デジタルモードを選択します。
0
72
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
D
D
R
HYS
Description
D
5
Value
FT
Symbol
A
A
A
Bit
R
R
R
IOCON_PIO3_1 register (IOCON_PIO3_1, address 0x4004 4088)
bit description(続き)
D
D
D
Table 84.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
FT
D
R
A
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 85.
IOCON_PIO2_3 register (IOCON_PIO2_3, address 0x4004 408C) bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO2_3 を選択します。
001
機能 RI を選択します。
010
機能 MOSI1 を選択します。
011 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
ヒステリシス
HYS
0
ディスエーブル
1
イネーブル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 86.
IOCON_SWDIO_PIO1_3 register (IOCON_SWDIO_PIO1_3, address 0x4004 4090)
bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 SWDIO を選択します。
001
機能 PIO1_3 を選択します。
010
機能 AD4 を選択します。
011
機能 CT32B1_MAT2 を選択します。
100 to 予約済み。
111
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
A
イネーブル
R
ディスエーブル
1
D
0
ヒステリシス
0
73
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
D
R
A
F
D
R
Reset
value
FT
FT
A
A
R
MODE
Description
D
4:3
Value
FT
Symbol
FT
A
A
R
R
D
D
IOCON_SWDIO_PIO1_3 register (IOCON_SWDIO_PIO1_3, address 0x4004 4090)
bit description (続き)
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 86.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
ADMODE
-
Table 87.
A
6
R
リピータモード
D
11
0
ヒステリシス
0
ディスエーブル
1
イネーブル
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
0
アナログ入力モード
1
デジタル機能モード
-
予約済み。
-
IOCON_PIO1_4 register (IOCON_PIO1_4, address 0x4004 4094) bit description
Bit
Symbol
2:0
FUNC[1]
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO1_4 を選択します。
001
機能 AD5 を選択します。
機能 CT32B1_MAT3 を選択します。
100 to 予約済み。
011
010
4:3
5
MODE
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
6
-
7
ADMODE
31:8
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
-
ヒステリシス
ディスエーブル
1
イネーブル
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
アナログ入力モード
1
デジタル機能モード
-
予約済み。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
0
0
Rev. 00.15 — 2010 / 9 / 28
D
プルアップ抵抗がイネーブル。
FT
プルダウン抵抗がイネーブル。
10
A
01
R
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
HYS
7
31:8
00
D
5
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
74
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
FT
FT
A
A
R
R
R
D
R
R
D
A
IOCON_PIO1_11 register (IOCON_PIO1_11 address 0x4004 4098) bit description
Reset
value
ピン機能を選択します。
000
D
FUNC
Description
R
2:0
Value
D
Symbol
FT
Bit
FT
A
Table 88.
D
D
LPC111x/LPC11C1x がディープパワーダウンモードである場合、FUNC の値に関係なく、このピンは WAKEUP
ピンとして機能します。
D
[1]
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
A
FT
D
R
機能 PIO1_11 を選択します。
001
機能 AD7 を選択します。
A
000
010 to 予約済み。
111
4:3
5
MODE
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
6
-
7
ADMODE
31:8
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
-
Table 89.
0
ヒステリシス
0
ディスエーブル
1
イネーブル
-
予約済み。
1
アナログ / デジタルモードを選択します。
1
0
アナログ入力モード
1
デジタル機能モード
-
予約済み。
-
IOCON_PIO3_2 register (IOCON_PIO3_2, address 0x4004 409C)
bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO3_2 を選択します。
001
機能 DCD を選択します。
010 to 予約済み。
111
4:3
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
75
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
D
D
R
HYS
Description
D
5
Value
FT
Symbol
A
A
A
Bit
R
R
R
IOCON_PIO3_2 register (IOCON_PIO3_2, address 0x4004 409C)
bit description(続き)
D
D
D
Table 89.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
FT
D
R
A
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 90.
IOCON_PIO1_5 register (IOCON_PIO1_5, address 0x4004 40A0) bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO1_5 を選択します。
001
機能 RTS を選択します。
010
機能 CT32B0_CAP0 を選択します。
011 to 予約済み。
111
4:3
5
MODE
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
ヒステリシス
HYS
0
ディスエーブル
1
イネーブル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 91.
IOCON_PIO1_6 register (IOCON_PIO1_6, address 0x4004 40A4)
bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO1_6 を選択します。
001
機能 RXD を選択します。
010
機能 CT32B0_MAT0 を選択します。
011 to 予約済み。
111
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
A
イネーブル
R
ディスエーブル
1
D
0
ヒステリシス
0
76
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
FT
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
D
D
R
MODE
Description
D
4:3
Value
FT
Symbol
A
A
A
Bit
R
R
R
IOCON_PIO1_6 register (IOCON_PIO1_6, address 0x4004 40A4)
bit description(続き)
D
D
D
Table 91.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
0
ヒステリシス
0
ディスエーブル
1
イネーブル
A
リピータモード
R
11
HYS
D
プルアップ抵抗がイネーブル。
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
Table 92.
IOCON_PIO1_7 register (IOCON_PIO1_7, address 0x4004 40A8) bit description
Bit
Symbol
2:0
FUNC
Value
Description
Reset
value
ピン機能を選択します。
000
000
機能 PIO1_7 を選択します。
001
機能 TXD を選択します。
機能 CT32B0_MAT1 を選択します。
011 to 予約済み。
111
010
4:3
5
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
MODE
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
ヒステリシス
0
ディスエーブル
1
イネーブル
ユーザーマニュアル
0
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
プルダウン抵抗がイネーブル。
10
FT
01
A
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
R
00
D
5
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
77
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
FT
A
A
Reset
value
D
FT
000
ピン機能を選択します。
D
A
FT
D
機能 RI を選択します。
R
機能 PIO3_3 を選択します。
001
D
000
FT
A
A
R
R
D
FUNC
Description
FT
2:0
Value
A
Symbol
R
R
R
Bit
D
D
IOCON_PIO3_3 register (IOCON_PIO3_3, address 0x4004 40AC) bit description
D
Table 93.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
R
4:3
5
MODE
A
010 to 予約済み。
111
機能モード(オンチップのプルアップ / プルダウン抵抗の制 10
御)を選択します。
00
非アクティブ(プルダウン / プルアップ抵抗がイネーブルで
ありません)
01
プルダウン抵抗がイネーブル。
10
プルアップ抵抗がイネーブル。
11
リピータモード
HYS
0
ヒステリシス
0
ディスエーブル
1
イネーブル
7:6
-
-
予約済み。
11
31:8
-
-
予約済み。
0
6.4.2 IOCON 位置レジスタ
IOCON 位置レジスタは、多重化された機能の物理ピンを選択するのに使用されます。
注意 : いったんピン位置を選択したら、そのピン上で機能を使用できるようにするため、
対応する IOCON レジスタで機能を設定する必要があります。
Table 94.
IOCON SCK location register (IOCON_SCK_LOC, address 0x4004 40B0) bit
description
Bit
Symbol
1:0
SCKLOC
31:2
-
Value
Description
Reset
value
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
予約済み。
-
予約済み。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
-
Rev. 00.15 — 2010 / 9 / 28
78
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
A
F
D
R
Reset
value
A
FT
FT
A
DSRLOC
Description
R
1:0
Value
D
Symbol
R
A
FT
FT
A
A
R
R
D
D
IOCON DSR location register (IOCON_DSR_LOC, address 0x4004 40B4) bit
description
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 95.
FT
FT
FT
FT
第 6 章:LPC111x/LPC11C1x I/O 設定
ピン位置 PIO3_1/DSR で機能 DSR を選択します。
10
予約済み。
11
予約済み。
-
予約済み。
A
Value
-
Description
Reset
value
DCD ピンのピン位置を選択します。
00
00
ピン位置 PIO2_2/DCD/MISO1 で機能 DCD を選択します。
01
ピン位置 PIO3_2/DCD で機能 DCD を選択します。
10
予約済み。
11
予約済み。
-
予約済み。
-
IOCON RI location register (IOCON_RI_LOC, address 0x4004 40BC) bit
description
Bit
Symbol
1:0
RILOC
Value
Description
Reset
value
RI ピンのピン位置を選択します。
00
00
ピン位置 PIO2_3/RI/MOSI1 で機能 RI を選択します。
01
ピン位置 PIO3_3/RI で機能 RI を選択します。
10
予約済み。
11
予約済み。
-
予約済み。
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
-
-
01
D
DCDLOC
D
1:0
31:2
ピン位置 PIO2_1/DSR/SCK1 で機能 DSR を選択します。
FT
Symbol
Table 97.
00
IOCON DCD location register (IOCON_DCD_LOC, address 0x4004 40B8) bit
description
Bit
31:2
A
Table 96.
R
-
D
31:2
00
DSR0 ピンのピン位置を選択します。
Rev. 00.15 — 2010 / 9 / 28
79
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
Rev. 00.15 — 2010 / 9 / 28
D
R
A
A
A
第 7 章:LPC111x/LPC11C1x ピン構成
D
R
R
R
UM10398
D
D
D
参考資料
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
FT
FT
A
A
R
R
D
D
D
7.1 この章を読む前に
R
A
FT
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
-
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
80
A
Table 98.
R
LPC11C12 および LPC11C14 部品は LQFP48 パッケージで入手可能です。
D
LPC111x は、LQFP48(LPC1113、LPC1114)、PLCC44(LPC1114)、HVQFN33(LPC1111、
LPC1112、LPC1113、LPC1114)の 3 つのパッケージで入手可能です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
7.2 LPC111x ピン構成
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
D
37 PIO3_1/DSR
38 PIO2_3/RI/MOSI1
39 SWDIO/PIO1_3/AD4/CT32B1_MAT2
40 PIO1_4/AD5/CT32B1_MAT3/WAKEUP
41 VSS
42 PIO1_11/AD7
A
43 PIO3_2/DCD
R
44 VDD
D
45 PIO1_5/RTS/CT32B0_CAP0
FT
46 PIO1_6/RXD/CT32B0_MAT0
A
47 PIO1_7/TXD/CT32B0_MAT1
R
1
36 PIO3_0/DTR
2
35 R/PIO1_2/AD3/CT32B1_MAT1
RESET/PIO0_0
3
34 R/PIO1_1/AD2/CT32B1_MAT0
PIO0_1/CLKOUT/CT32B0_MAT2
4
33 R/PIO1_0/AD1/CT32B1_CAP0
VSS
5
XTALIN
6
XTALOUT
7
VDD
8
29 SWCLK/PIO0_10/SCK0/CT16B0_MAT2
PIO1_8/CT16B1_CAP0
9
28 PIO0_9/MOSI0/CT16B0_MAT1
PIO0_2/SSEL0/CT16B0_CAP0 10
27 PIO0_8/MISO0/CT16B0_MAT0
32 R/PIO0_11/AD0/CT32B0_MAT3
31 PIO2_11/SCK0
LPC1113FBD48/301
LPC1114FBD48/301
30 PIO1_10/AD6/CT16B1_MAT1
PIO2_9 24
PIO0_7/CTS 23
PIO0_6/SCK0 22
PIO3_5 21
PIO2_5 20
PIO2_4 19
PIO3_4 18
PIO1_9/CT16B1_MAT0 17
PIO0_5/SDA 16
PIO0_4/SCL 15
25 PIO2_10
PIO0_3 14
26 PIO2_2/DCD/MISO1
PIO2_8 12
PIO2_1/DSR/SCK1 13
PIO2_7 11
002aae697
Pin configuration LQFP48 package
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
48 PIO3_3/RI
FT
Fig 6.
FT
A
A
R
R
D
PIO2_6
PIO2_0/DTR/SSEL1
Rev. 00.15 — 2010 / 9 / 28
81
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
40 PIO2_3/RI/MOSI1
41 SWDIO/PIO1_3/AD4/CT32B1_MAT2
42 PIO1_4/AD5/CT32B1_MAT3/WAKEUP
43 VSS
VDD
1
44 PIO1_11/AD7
A
PIO1_6/RXD/CT32B0_MAT0
R
PIO1_5/RTS/CT32B0_CAP0
D
2
FT
PIO1_7/TXD/CT32B0_MAT1
A
3
R
37 R/PIO1_0/AD1/CT32B1_CAP0
36 R/PIO0_11/AD0/CT32B0_MAT3
XTALOUT 11
35 PIO2_11/SCK0
LPC1114FA44/301
34 PIO1_10/AD6/CT16B1_MAT1
PIO1_8/CT16B1_CAP0 13
33 SWCLK/PIO0_10/SCK0/CT16B0_MAT2
PIO0_2/SSEL0/CT16B0_CAP0 14
32 PIO0_9/MOSI0/CT16B0_MAT1
PIO2_7 15
31 PIO0_8/MISO0/CT16B0_MAT0
PIO2_8 16
30 PIO2_2/DCD/MISO1
PIO2_1/DSR/SCK1 17
PIO2_9 28
PIO0_7/CTS 27
PIO3_5 25
PIO0_6/SCK0 26
PIO2_5 24
PIO2_4 23
PIO3_4 22
PIO1_9/CT16B1_MAT0 21
29 PIO2_10
PIO0_5/SDA 20
D
D
PIO2_6
FT
FT
4
A
A
9
PIO0_3 18
F
R
R
38 R/PIO1_1/AD2/CT32B1_MAT0
VSS
PIO0_4/SCL 19
A
D
D
PIO2_0/DTR/SSEL1
R
FT
FT
5
D
A
A
6
FT
R
R
39 R/PIO1_2/AD3/CT32B1_MAT1
8
002aaf020
Pin configuration PLCC44 package
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
A
D
D
7
XTALIN 10
Fig 7.
D
R
FT
FT
A
A
R
R
D
D
D
RESET/PIO0_0
PIO0_1/CLKOUT/CT32B0_MAT2
VDD 12
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
Rev. 00.15 — 2010 / 9 / 28
82
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
VDD
PIO3_2
PIO1_11/AD7
PIO1_4/AD5/CT32B1_MAT3/WAKEUP
SWDIO/PIO1_3/AD4/CT32B1_MAT2
27
26
25
A
28
R
PIO1_5/RTS/CT32B0_CAP0
D
29
FT
PIO1_6/RXD/CT32B0_MAT0
A
30
R
PIO1_7/TXD/CT32B0_MAT1
R/PIO1_0/AD1/CT32B1_CAP0
XTALIN
4
21
R/PIO0_11/AD0/CT32B0_MAT3
XTALOUT
5
20
PIO1_10/AD6/CT16B1_MAT1
VDD
6
19
SWCLK/PIO0_10/SCK0/CT16B0_MAT2
PIO1_8/CT16B1_CAP0
7
18
PIO0_9/MOSI0/CT16B0_MAT1
PIO0_2/SSEL0/CT16B0_CAP0
8
17
PIO0_8/MISO0/CT16B0_MAT0
11
12
13
14
15
16
PIO0_5/SDA
PIO1_9/CT16B1_MAT0
PIO3_4
PIO3_5
PIO0_6/SCK0
PIO0_7/CTS
D
D
31
FT
FT
22
PIO0_4/SCL
A
A
3
9
F
R
R
R/PIO1_1/AD2/CT32B1_MAT0
PIO0_1/CLKOUT/CT32B0_MAT2
002aae698
Pin configuration HVQFN 33 package
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
A
D
D
R/PIO1_2/AD3/CT32B1_MAT1
23
10
R
FT
FT
24
2
PIO0_3
D
A
A
32
FT
R
R
1
Transparent top view
Fig 8.
R
A
D
D
PIO2_0/DTR
RESET/PIO0_0
33 VSS
D
R
FT
FT
A
A
R
R
D
D
D
terminal 1
index area
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
Rev. 00.15 — 2010 / 9 / 28
83
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
7.3 LPC11C12/C14 ピン構成
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
D
37 PIO3_1/DSR
38 PIO2_3/RI/MOSI1
39 SWDIO/PIO1_3/AD4/CT32B1_MAT2
40 PIO1_4/AD5/CT32B1_MAT3/WAKEUP
41 VSS
42 PIO1_11/AD7
A
43 PIO3_2/DCD
R
44 VDD
D
45 PIO1_5/RTS/CT32B0_CAP0
FT
46 PIO1_6/RXD/CT32B0_MAT0
A
47 PIO1_7/TXD/CT32B0_MAT1
R
36 PIO3_0/DTR
2
35 R/PIO1_2/AD3/CT32B1_MAT1
RESET/PIO0_0
3
34 R/PIO1_1/AD2/CT32B1_MAT0
PIO0_1/CLKOUT/CT32B0_MAT2
4
33 R/PIO1_0/AD1/CT32B1_CAP0
VSS
5
XTALIN
6
XTALOUT
7
VDD
8
29 SWCLK/PIO0_10/SCK0/CT16B0_MAT2
PIO1_8/CT16B1_CAP0
9
28 PIO0_9/MOSI0/CT16B0_MAT1
PIO0_2/SSEL0/CT16B0_CAP0 10
27 PIO0_8/MISO0/CT16B0_MAT0
32 R/PIO0_11/AD0/CT32B0_MAT3
31 PIO2_11/SCK0
LPC11C12FBD48/301
LPC11C14FBD48/301
30 PIO1_10/AD6/CT16B1_MAT1
PIO2_9 24
PIO0_7/CTS 23
PIO0_6/SCK0 22
PIO2_5 21
CAN_TXD 20
CAN_RXD 19
PIO2_4 18
PIO1_9/CT16B1_MAT0 17
PIO0_5/SDA 16
PIO0_4/SCL 15
25 PIO2_10
PIO0_3 14
26 PIO2_2/DCD/MISO1
PIO2_8 12
PIO2_1/DSR/SCK1 13
PIO2_7 11
002aaf266
Pin configuration LQFP48 package
7.4 LPC111x/LPC11C1x ピンの説明
Table 99.
LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)
Symbol
Pin
PIO0_0 to PIO0_11
RESET/PIO0_0
3[1][2]
Type
Description
I/O
ポート 0 — ポート 0 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 0 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。
I
RESET — 外部リセット入力 : このピンが LOW であればデバイスはリセッ
トされ、I/O ポートおよびペリフェラルはそれぞれのデフォルト状態とな
り、プロセッサの実行はアドレス 0 で開始されます。
I/O
PIO0_0 — 汎用デジタル I/O ピン。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
48 PIO3_3/RI
FT
1
Fig 9.
FT
A
A
R
R
D
PIO2_6
PIO2_0/DTR/SSEL1
Rev. 00.15 — 2010 / 9 / 28
84
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
PIO0_1/CLKOUT/
CT32B0_MAT2
4[3][2]
I/O
PIO0_1 — 汎用デジタル I/O ピン。リセット時にこのピンが LOW レベルで
あれば、ISP コマンドハンドラが起動します。
O
CLKOUT — クロック出力ピン。
O
CT32B0_MAT2 — 32 ビットタイマ 0 のマッチ出力 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 設定レジスタで I2C
Fast モードプラスを選択している場合にのみ高電流シンク。
I/O
PIO0_5 — 汎用デジタル I/O ピン(オープンドレイン)。
I/O
SDA — I2C バス、オープンドレインデータ I/O。I/O 設定レジスタで I2C Fast
モードプラスを選択している場合にのみ高電流シンク。
I/O
PIO0_6 — 汎用デジタル I/O ピン。
I/O
SCK0 — SPI0 のシリアルクロック。
I/O
PIO0_7 — 汎用デジタル I/O ピン(高電流出力ドライバ)。
I
CTS — UART の CTS(Clear To Send)入力。
I/O
PIO0_8 — 汎用デジタル I/O ピン。
I/O
MISO0 — SPI0 のマスタインスレーブアウト。
O
CT16B0_MAT0 — 16 ビットタイマ 0 のマッチ出力 0。
I/O
PIO0_9 — 汎用デジタル I/O ピン。
I/O
MOSI0 — SPI0 のマスタアウトスレーブイン。
O
CT16B0_MAT1 — 16 ビットタイマ 0 のマッチ出力 1。
I
SWCLK — シリアルワイヤクロック。
I/O
PIO0_10 — 汎用デジタル I/O ピン。
I/O
SCK0 — SPI0 のシリアルクロック。
O
CT16B0_MAT2 — 16 ビットタイマ 0 のマッチ出力 2。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO0_11 — 汎用デジタル I/O ピン。
I
AD0 — A/D コンバータ、入力 0。
O
CT32B0_MAT3 — 32 ビットタイマ 0 のマッチ出力 3。
I/O
ポート 1— ポート 1 は 12 ビットの I/O ポートであり、各ビットに個別の方
向制御と機能制御があります。ポート 1 のピンの動作は、IOCONFIG レジス
タブロックを介して選択される機能に依存します。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_0 — 汎用デジタル I/O ピン。
I
AD1 — A/D コンバータ、入力 1。
I
CT32B1_CAP0 — 32 ビットタイマ 1 のキャプチャ入力 0。
F
R
A
FT
FT
D
R
A
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
FT
33[5][2]
A
32[5][2]
R
29[3][2]
D
28[3][2]
PIO1_0 to PIO1_11
ユーザーマニュアル
D
A
27[3][2]
R/PIO1_0/
AD1/CT32B1_CAP0
R
22[3][2]
PIO0_8/MISO0/
CT16B0_MAT0
R/PIO0_11/
AD0/CT32B0_MAT3
D
16[4][2]
23[3][2]
SWCLK/PIO0_10/
SCK0/CT16B0_MAT2
FT
10[3][2]
PIO0_7/CTS
PIO0_9/MOSI0/
CT16B0_MAT1
FT
Description
A
A
A
Type
PIO0_6/SCK0
R
R
R
Pin
PIO0_5/SDA
R
FT
D
D
Symbol
PIO0_2/SSEL0/
CT16B0_CAP0
D
A
FT
FT
A
A
R
R
R
LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)
D
D
D
Table 99.
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
85
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
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。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_2 — 汎用デジタル I/O ピン。
I
AD3 — A/D コンバータ、入力 3。
O
CT32B1_MAT1 — 32 ビットタイマ 1 のマッチ出力 1。
I/O
SWDIO — シリアルワイヤデバッグ I/O。
I/O
PIO1_3 — 汎用デジタル I/O ピン。
I
AD4 — A/D コンバータ、入力 4。
O
CT32B1_MAT2 — 32 ビットタイマ 1 のマッチ出力 2。
I/O
PIO1_4 — 汎用デジタル I/O ピン。
I
AD5 — A/D コンバータ、入力 5。
O
CT32B1_MAT3 — 32 ビットタイマ 1 のマッチ出力 3。
I
WAKEUP — ディープパワーダウンモードのウェイクアップピン。ディー
プパワーダウンモードに切り替えるにはこのピンを外部から HIGH にプル
し、ディープパワーダウンモードを終了するにはこのピンを LOW にプルし
ます。
I/O
PIO1_5 — 汎用デジタル I/O ピン。
O
RTS — UART の RTS(Request To Send)出力。
I
CT32B0_CAP0 — 32 ビットタイマ 0 のキャプチャ入力 0。
I/O
PIO1_6 — 汎用デジタル I/O ピン。
I
RXD — UART のレシーバ入力。
O
CT32B0_MAT0 — 32 ビットタイマ 0 のマッチ出力 0。
I/O
PIO1_7 — 汎用デジタル I/O ピン。
O
TXD — UART のトランスミッタ出力。
O
CT32B0_MAT1 — 32 ビットタイマ 0 のマッチ出力 1。
I/O
PIO1_8 — 汎用デジタル I/O ピン。
I
CT16B1_CAP0 — 16 ビットタイマ 1 のキャプチャ入力 0。
I/O
PIO1_9 — 汎用デジタル I/O ピン。
O
CT16B1_MAT0 — 16 ビットタイマ 1 のマッチ出力 0。
I/O
PIO1_10 — 汎用デジタル I/O ピン。
I
AD6 — A/D コンバータ、入力 6。
O
CT16B1_MAT1 — 16 ビットタイマ 1 のマッチ出力 1。
I/O
PIO1_11 — 汎用デジタル I/O ピン。
I
AD7 — A/D コンバータ、入力 7。
I/O
ポート 2 — ポート 2 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 2 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。
D
R
A
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
© NXP B.V. 2010. All rights reserved.
UM10398_0
F
PIO2_0 to PIO2_11
42[5]
FT
PIO1_11/AD7
30[5]
FT
PIO1_10/AD6/
CT16B1_MAT1
A
17[3]
A
PIO1_9/CT16B1_MAT0
R
9[3]
R
PIO1_8/CT16B1_CAP0
D
PIO1_7/TXD/
CT32B0_MAT1
47[3]
D
46[3]
FT
PIO1_6/RXD/
CT32B0_MAT0
A
45[3]
R
PIO1_5/RTS/
CT32B0_CAP0
D
40[5]
FT
PIO1_4/AD5/
CT32B1_MAT3/WAKEUP
39[5]
FT
Description
A
A
A
Type
SWDIO/PIO1_3/AD4/
CT32B1_MAT2
R
R
R
Pin
35[5]
R
FT
D
D
Symbol
R/PIO1_2/
AD3/CT32B1_MAT1
D
A
FT
FT
A
A
R
R
R
LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)
D
D
D
Table 99.
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
86
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
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 のシリアルクロック。
I/O
ポート 3 — ポート 3 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 3 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。ピン PIO3_6 ∼
PIO3_11 は使用できません。
I/O
PIO3_0 — 汎用デジタル I/O ピン。
O
DTR — UART の DTR(Data Terminal Ready)出力。
I/O
PIO3_1 — 汎用デジタル I/O ピン。
I
DSR — UART の DSR(Data Set Ready)入力。
I/O
PIO3_2 — 汎用デジタル I/O ピン。
I
DCD — UART の DCD(Data Carrier Detect)入力。
I/O
PIO3_3 — 汎用デジタル I/O ピン。
I
RI — UART の RI(Ring Indicator)入力。
PIO3_2/DCD
PIO3_3/RI
43[3]
48[3]
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 基準電圧と
しても使用できます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
18[3]
PIO3_1/DSR
F
PIO2_4 — 汎用デジタル I/O ピン。(LPC1113/14 のみ)
PIO2_4
37[3]
A
I/O
36[3]
R
FT
19[3]
PIO3_0/DTR
D
FT
PIO2_4
PIO3_0 to PIO3_5
R
A
MOSI1 — SPI1 のマスタアウトスレーブイン。
A
RI — UART の RI(Ring Indicator)入力。
I/O
D
I
R
PIO2_3 — 汎用デジタル I/O ピン。
38[3]
R
MISO1 — SPI1 のマスタインスレーブアウト。
I/O
PIO2_3/RI/MOSI1
D
DCD — UART の DCD(Data Carrier Detect)入力。
I/O
D
PIO2_2 — 汎用デジタル I/O ピン。
I
FT
I/O
PIO2_2/DCD/MISO1
FT
SCK1 — SPI1 のシリアルクロック。
26[3]
A
DSR — UART の DSR(Data Set Ready)入力。
I/O
A
PIO2_1 — 汎用デジタル I/O ピン。
I
R
SSEL1 — SPI1 のスレーブ選択。
I/O
13[3]
R
O
PIO2_1/DSR/SCK1
D
DTR — UART の DTR(Data Terminal Ready)出力。
D
PIO2_0 — 汎用デジタル I/O ピン。
O
FT
I/O
A
2[3]
R
PIO2_0/DTR/SSEL1
D
Description
FT
FT
FT
Type
A
A
A
Pin
R
R
R
LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)
Symbol
D
D
D
Table 99.
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
87
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
Pin
Type
Description
XTALIN
6[7]
I
オシレータ回路および内部クロックジェネレータ回路への入力。入力電圧
は 1.8 V を超えないこと。
XTALOUT
7[7]
O
オシレータアンプからの出力。
VSS
5; 41
I
Ground.
F
FT
FT
Symbol
A
A
A
R
R
D
D
D
LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package)(続き)
D
D
D
Table 99.
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
D
FT
FT
A
A
R
R
D
D
Pin
PIO0_0 to PIO0_11
RESET/PIO0_0
7[1][2]
PIO0_1/CLKOUT/
CT32B0_MAT2
8[3][2]
PIO0_2/SSEL0/
CT16B0_CAP0
14[3][2]
Type
Description
I/O
ポート 0 — ポート 0 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 0 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。
I
RESET — 外部リセット入力 : このピンが LOW であればデバイスはリセッ
トされ、I/O ポートおよびペリフェラルはそれぞれのデフォルト状態とな
り、プロセッサの実行はアドレス 0 で開始されます。
I/O
PIO0_0 — 汎用デジタル I/O ピン。
I/O
PIO0_1 — 汎用デジタル I/O ピン。リセット時にこのピンが LOW レベルで
あれば、ISP コマンドハンドラが起動します。
O
CLKOUT — クロック出力ピン。
O
CT32B0_MAT2 — 32 ビットタイマ 0 のマッチ出力 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 設定レジスタで I2C
Fast モードプラスを選択している場合にのみ高電流シンク。
I/O
PIO0_5 — 汎用デジタル I/O ピン(オープンドレイン)。
I/O
SDA — I2C バス、オープンドレインデータ I/O。I/O 設定レジスタで I2C Fast
モードプラスを選択している場合にのみ高電流シンク。
I/O
PIO0_6 — 汎用デジタル I/O ピン。
I/O
SCK0 — SPI0 のシリアルクロック。
I/O
PIO0_7 — 汎用デジタル I/O ピン(高電流出力ドライバ)。
I
CTS — UART の CTS(Clear To Send)入力。
I/O
PIO0_8 — 汎用デジタル I/O ピン。
I/O
MISO0 — SPI0 のマスタインスレーブアウト。
O
CT16B0_MAT0 — 16 ビットタイマ 0 のマッチ出力 0。
PIO0_5/SDA
20[4][2]
PIO0_6/SCK0
26[3][2]
PIO0_7/CTS
27[3][2]
PIO0_8/MISO0/
CT16B0_MAT0
31[3][2]
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
88
A
Table 100. LPC1114 pin description table (PLCC44 package)
R
RESET 機能はディープパワーダウンモードでは使用できません。 チップをリセットしてディープパワーダウンモードからウェイク
アップさせるには、WAKEUP ピンを使用してください。
選 択 し た ピ ン 機 能 に 関 係 な く、ス タ ー ト ロ ジ ッ ク に 対 す る デ ィ ー プ ス リ ー プ ウ ェ イ ク ア ッ プ 入 力 ピ ン と し て 機 能 し ま す
(LPC111x/11C1x ユーザーマニュアルを参照)。
プルアップ / プルダウン抵抗およびヒステリシスが設定可能な、デジタル I/O 機能を提供する 5 V トレラントパッド。
I2C 標準モードおよび I2C Fast モードプラスの I2C バス規格に準拠した I2C バスパッド。
プルアップ / プルダウン抵抗およびヒステリシスが設定可能で、アナログ入力にも対応可の、デジタル I/O 機能を提供する 5 V トレ
ラントパッド。ADC 入力として設定した場合、パッドのデジタル部分はディスエーブルとなり、ピンは 5 V トレラントではなくなり
ます。
プルアップ / プルダウン抵抗を持たない、5 V トレラントのデジタル I/O パッド。
システムオシレータを使用しない場合、XTALIN と XTALOUT を次のように接続します。XTALIN はフロート状態のままにしておくこと
も、接地することもできます(ノイズ感受性を低減するには、接地することをお勧めします)。XTALOUT はフロート状態のままにし
ておく必要があります。
Symbol
D
FT
[6]
[7]
A
[3]
[4]
[5]
R
[2]
D
[1]
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
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。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO0_11 — 汎用デジタル I/O ピン。
I
AD0 — A/D コンバータ、入力 0。
O
CT32B0_MAT3 — 32 ビットタイマ 0 のマッチ出力 3。
I/O
ポート 1 — ポート 1 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 1 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_0 — 汎用デジタル I/O ピン。
I
AD1 — A/D コンバータ、入力 1。
I
CT32B1_CAP0 — 32 ビットタイマ 1 のキャプチャ入力 0。
O
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_1 — 汎用デジタル I/O ピン。
I
AD2 — A/D コンバータ、入力 2。
O
CT32B1_MAT0 — 32 ビットタイマ 1 のマッチ出力 0。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_2 — 汎用デジタル I/O ピン。
I
AD3 — A/D コンバータ、入力 3。
O
CT32B1_MAT1 — 32 ビットタイマ 1 のマッチ出力 1。
I/O
SWDIO — シリアルワイヤデバッグ I/O。
I/O
PIO1_3 — 汎用デジタル I/O ピン。
I
AD4 — A/D コンバータ、入力 4。
CT32B1_MAT2
R
A
FT
R
A
FT
D
R
A
PIO1_5/RTS/
CT32B0_CAP0
42[5]
2[3]
I/O
PIO1_4 — 汎用デジタル I/O ピン。
I
AD5 — A/D コンバータ、入力 5。
O
CT32B1_MAT3 — 32 ビットタイマ 1 のマッチ出力 3。
I
WAKEUP — ディープパワーダウンモードのウェイクアップピン。ディー
プパワーダウンモードに切り替えるにはこのピンを外部から HIGH にプル
し、ディープパワーダウンモードを終了するにはこのピンを LOW にプルし
ます。
I/O
PIO1_5 — 汎用デジタル I/O ピン。
O
RTS — UART の RTS(Request To Send)出力。
I
CT32B0_CAP0 — 32 ビットタイマ 0 のキャプチャ入力 0。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
32 ビットタイマ 1 のマッチ出力 2。
PIO1_4/AD5/
CT32B1_MAT3/WAKEUP
F
D
O
FT
41[5]
A
SWDIO/PIO1_3/AD4/
CT32B1_MAT2
39[5]
R
R/PIO1_2/
AD3/CT32B1_MAT1
38[5]
D
R/PIO1_1/
AD2/CT32B1_MAT0
37[5][2]
FT
R/PIO1_0/
AD1/CT32B1_CAP0
FT
Description
A
A
A
Type
PIO1_0 to PIO1_11
R
R
R
Pin
36[5][2]
R
A
D
D
Symbol
R/PIO0_11/
AD0/CT32B0_MAT3
D
R
FT
FT
A
A
R
R
D
D
D
Table 100. LPC1114 pin description table (PLCC44 package)(続き)
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
89
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
CT16B1_MAT0 — 16 ビットタイマ 1 のマッチ出力 0。
I/O
PIO1_10 — 汎用デジタル I/O ピン。
I
AD6 — A/D コンバータ、入力 6。
O
CT16B1_MAT1 — 16 ビットタイマ 1 のマッチ出力 1。
I/O
PIO1_11 — 汎用デジタル I/O ピン。
I
AD7 — A/D コンバータ、入力 7。
I/O
ポート 2 — ポート 2 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 2 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。
I/O
PIO2_0 — 汎用デジタル I/O ピン。
O
DTR — UART の DTR(Data Terminal Ready)出力。
O
SSEL1 — SPI1 のスレーブ選択。
I/O
PIO2_1 — 汎用デジタル I/O ピン。
I
DSR — UART の DSR(Data Set Ready)入力。
I/O
SCK1 — SPI1 のシリアルクロック。
I/O
PIO2_2 — 汎用デジタル I/O ピン。
I
DCD — UART の DCD(Data Carrier Detect)入力。
I/O
MISO1 — SPI1 のマスタインスレーブアウト。
I/O
PIO2_3 — 汎用デジタル I/O ピン。
I
RI — UART の RI(Ring Indicator)入力。
I/O
MOSI1 — SPI1 のマスタアウトスレーブイン。
PIO2_4 — 汎用デジタル I/O ピン。
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 ピン。
SCK0
I/O
SPI0 のシリアルクロック。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
PIO1_9 — 汎用デジタル I/O ピン。
O
PIO2_5
F
CT16B1_CAP0 — 16 ビットタイマ 1 のキャプチャ入力 0。
I/O
I/O
A
PIO1_8 — 汎用デジタル I/O ピン。
23[3]
R
I/O
I
PIO2_4
D
40[3]
FT
PIO2_3/RI/MOSI1
30[3]
FT
PIO2_2/DCD/MISO1
17[3]
R
PIO2_1/DSR/SCK1
6[3]
A
PIO2_0/DTR/SSEL1
A
PIO2_0 to PIO2_11
D
44[5]
R
PIO1_11/AD7
34[5]
R
PIO1_10/AD6/
CT16B1_MAT1
21[3]
D
PIO1_9/CT16B1_MAT0
D
PIO1_8/CT16B1_CAP0
FT
CT32B0_MAT1 — 32 ビットタイマ 0 のマッチ出力 1。
13[3]
FT
TXD — UART のトランスミッタ出力。
O
A
PIO1_7 — 汎用デジタル I/O ピン。
O
A
I/O
R
CT32B0_MAT0 — 32 ビットタイマ 0 のマッチ出力 0。
4[3]
R
O
PIO1_7/TXD/
CT32B0_MAT1
D
RXD — UART のレシーバ入力。
D
PIO1_6 — 汎用デジタル I/O ピン。
I
FT
I/O
A
3[3]
R
PIO1_6/RXD/
CT32B0_MAT0
D
Description
FT
FT
FT
Type
A
A
A
Pin
R
R
R
Symbol
D
D
D
Table 100. LPC1114 pin description table (PLCC44 package)(続き)
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
90
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
FT
FT
R
Description
I/O
ポート 3 — ポート 3 は 12 ビットの I/O ポートであり、各ビットに個別の
方向制御と機能制御があります。ポート 3 のピンの動作は、IOCONFIG レジ
スタブロックを介して選択される機能に依存します。ピン PIO3_0 ∼ PIO3_3
および PIO3_6 ∼ PIO3_11 は使用できません。
F
FT
FT
Type
A
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
PIO3_0 to PIO3_5
A
A
A
Pin
R
R
R
Symbol
D
D
D
Table 100. LPC1114 pin description table (PLCC44 package)(続き)
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
D
D
R
D
PIO3_4 — 汎用デジタル I/O ピン。
PIO3_5
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
[6]
A
[3]
[4]
[5]
R
I/O
25[3]
[2]
RESET 機能はディープパワーダウンモードでは使用できません。 チップをリセットしてディープパワーダウンモードからウェイク
アップさせるには、WAKEUP ピンを使用してください。
選 択 し た ピ ン 機 能 に 関 係 な く、ス タ ー ト ロ ジ ッ ク に 対 す る デ ィ ー プ ス リ ー プ ウ ェ イ ク ア ッ プ 入 力 ピ ン と し て 機 能 し ま す
(LPC111x/11C1xÉÜÅ[ÉUÅ[É}ÉjÉÖÉAÉã を参照)。
プルアップ / プルダウン抵抗およびヒステリシスが設定可能な、デジタル I/O 機能を提供する 5 V トレラントパッド。
I2C 標準モードおよび I2C Fast モードプラスの I2C バス規格に準拠した I2C バスパッド。
プルアップ / プルダウン抵抗およびヒステリシスが設定可能で、アナログ入力にも対応可の、デジタル I/O 機能を提供する 5 V トレ
ラントパッド。ADC 入力として設定した場合、パッドのデジタル部分はディスエーブルとなり、ピンは 5 V トレラントではなくなり
ます。
システムオシレータを使用しない場合、XTALIN と XTALOUT を次のように接続します。XTALIN はフロート状態のままにしておくこと
も、接地することもできます(ノイズ感受性を低減するには、接地することをお勧めします)。XTALOUT はフロート状態のままにし
ておく必要があります。
Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package)
Symbol
Pin
Type
Description
I/O
ポート 0 — ポート 0 は 12 ビットの I/O ポートであり、各ビットに個別の方
向制御と機能制御があります。ポート 0 のピンの動作は、IOCONFIG レジス
タブロックを介して選択される機能に依存します。
I
RESET — 外部リセット入力 : このピンが LOW であればデバイスはリセッ
トされ、I/O ポートおよびペリフェラルはそれぞれのデフォルト状態とな
り、プロセッサの実行はアドレス 0 で開始されます。
I/O
PIO0_0 — 汎用デジタル I/O ピン。
I/O
PIO0_1 — 汎用デジタル I/O ピン。リセット時にこのピンが LOW レベルで
あれば、ISP コマンドハンドラが起動します。
O
CLKOUT — クロック出力ピン。
O
CT32B0_MAT2 — 32 ビットタイマ 0 のマッチ出力 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 設定レジスタで I2C
Fast モードプラスを選択している場合にのみ高電流シンク。
I/O
PIO0_5 — 汎用デジタル I/O ピン(オープンドレイン)。
I/O
SDA — I2C バス、オープンドレインデータ I/O。I/O 設定レジスタで I2C Fast
モードプラスを選択している場合にのみ高電流シンク。
PIO0_0 to PIO0_11
RESET/PIO0_0
2[1][2]
PIO0_1/CLKOUT/
CT32B0_MAT2
3[3][2]
PIO0_2/SSEL0/
CT16B0_CAP0
PIO0_5/SDA
8[3][2]
11[4][2]
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
22[3]
[1]
A
PIO3_4
91
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
Type
Description
PIO0_6/SCK0
15[3][2]
I/O
PIO0_6 — 汎用デジタル I/O ピン。
I/O
SCK0 — SPI0 のシリアルクロック。
I/O
PIO0_7 — 汎用デジタル I/O ピン(高電流出力ドライバ)。
I
CTS — UART の CTS(Clear To Send)入力。
I/O
PIO0_8 — 汎用デジタル I/O ピン。
I/O
MISO0 — SPI0 のマスタインスレーブアウト。
O
CT16B0_MAT0 — 16 ビットタイマ 0 のマッチ出力 0。
I/O
PIO0_9 — 汎用デジタル I/O ピン。
I/O
MOSI0 — SPI0 のマスタアウトスレーブイン。
O
CT16B0_MAT1 — 16 ビットタイマ 0 のマッチ出力 1。
I
SWCLK — シリアルワイヤクロック。
I/O
PIO0_10 — 汎用デジタル I/O ピン。
I/O
SCK0 — SPI0 のシリアルクロック。
O
CT16B0_MAT2 — 16 ビットタイマ 0 のマッチ出力 2。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO0_11 — 汎用デジタル I/O ピン。
I
AD0 — A/D コンバータ、入力 0。
O
CT32B0_MAT3 — 32 ビットタイマ 0 のマッチ出力 3。
I/O
ポート 1 — ポート 1 は 12 ビットの I/O ポートであり、各ビットに個別の方
向制御と機能制御があります。ポート 1 のピンの動作は、IOCONFIG レジス
タブロックを介して選択される機能に依存します。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_0 — 汎用デジタル I/O ピン。
I
AD1 — A/D コンバータ、入力 1。
I
CT32B1_CAP0 — 32 ビットタイマ 1 のキャプチャ入力 0。
O
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_1 — 汎用デジタル I/O ピン。
I
AD2 — A/D コンバータ、入力 2。
O
CT32B1_MAT0 — 32 ビットタイマ 1 のマッチ出力 0。
I
R — 予約済み。IOCONFIG ブロックで代替機能に設定します。
I/O
PIO1_2 — 汎用デジタル I/O ピン。
I
AD3 — A/D コンバータ、入力 3。
O
CT32B1_MAT1 — 32 ビットタイマ 1 のマッチ出力 1。
I/O
SWDIO — シリアルワイヤデバッグ I/O。
I/O
PIO1_3 — 汎用デジタル I/O ピン。
I
AD4 — A/D コンバータ、入力 4。
O
CT32B1_MAT2 — 32 ビットタイマ 1 のマッチ出力 2。
D
D
R
A
Rev. 00.15 — 2010 / 9 / 28
F
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
FT
25[5]
FT
SWDIO/PIO1_3/AD4/
CT32B1_MAT2
24[5]
A
R/PIO1_2/AD3/
CT32B1_MAT1
23[5]
A
R/PIO1_1/AD2/
CT32B1_MAT0
22[5][2]
R
R/PIO1_0/AD1/
CT32B1_CAP0
R
PIO1_0 to PIO1_11
D
R/PIO0_11/AD0/
CT32B0_MAT3
21[5][2]
D
SWCLK/PIO0_10/SCK0/
CT16B0_MAT2
19[3][2]
FT
18[3][2]
A
PIO0_9/MOSI0/
CT16B0_MAT1
R
17[3][2]
D
PIO0_8/MISO0/
CT16B0_MAT0
FT
PIO0_7/CTS
FT
Pin
A
A
A
R
R
D
D
D
Symbol
16[3][2]
R
R
FT
FT
A
A
R
R
D
D
D
Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) (続き)
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
92
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
Type
Description
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 にプルし
ます。
CT32B0_CAP0 — 32 ビットタイマ 0 のキャプチャ入力 0。
I/O
PIO1_6 — 汎用デジタル I/O ピン。
I
RXD — UART のレシーバ入力。
O
CT32B0_MAT0 — 32 ビットタイマ 0 のマッチ出力 0。
I/O
PIO1_7 — 汎用デジタル I/O ピン。
O
TXD — UART のトランスミッタ出力。
O
CT32B0_MAT1 — 32 ビットタイマ 0 のマッチ出力 1。
I/O
PIO1_8 — 汎用デジタル I/O ピン。
I
CT16B1_CAP0 — 16 ビットタイマ 1 のキャプチャ入力 0。
I/O
PIO1_9 — 汎用デジタル I/O ピン。
O
CT16B1_MAT0 — 16 ビットタイマ 1 のマッチ出力 0。
I/O
PIO1_10 — 汎用デジタル I/O ピン。
I
AD6 — A/D コンバータ、入力 6。
O
CT16B1_MAT1 — 16 ビットタイマ 1 のマッチ出力 1。
I/O
PIO1_11 — 汎用デジタル I/O ピン。
I
AD7 — A/D コンバータ、入力 7。
I/O
ポート 2 — ポート 2 は 12 ビットの I/O ポートであり、各ビットに個別の方
向制御と機能制御があります。ポート 2 のピンの動作は、IOCONFIG レジス
タブロックを介して選択される機能に依存します。Pins PIO2_1 ∼ PIO2_11
は使用できません。
I/O
PIO2_0 — 汎用デジタル I/O ピン。
O
DTR — UART の DTR(Data Terminal Ready)出力。
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 を超えないこと。
© NXP B.V. 2010. All rights reserved.
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
93
A
I
R
RTS — UART の RTS(Request To Send)出力。
D
PIO1_5 — 汎用デジタル I/O ピン。
O
UM10398_0
D
PIO3_0 to PIO3_5
F
1[3]
I/O
FT
PIO2_0/DTR
FT
PIO2_0
A
27[5]
A
PIO1_11/AD7
20[5]
R
PIO1_10/AD6/
CT16B1_MAT1
R
12[3]
D
PIO1_9/CT16B1_MAT0
D
7[3]
FT
PIO1_8/CT16B1_CAP0
A
PIO1_7/TXD/
CT32B0_MAT1
32[3]
R
31[3]
D
PIO1_6/RXD/
CT32B0_MAT0
FT
30[3]
FT
Pin
A
A
A
R
R
D
D
D
Symbol
PIO1_5/RTS/
CT32B0_CAP0
R
R
FT
FT
A
A
R
R
D
D
D
Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) (続き)
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
F
R
A
FT
D
D
R
A
RESET 機能はディープパワーダウンモードでは使用できません。 チップをリセットしてディープパワーダウンモードからウェイク
アップさせるには、WAKEUP ピンを使用してください。
選 択 し た ピ ン 機 能 に 関 係 な く、ス タ ー ト ロ ジ ッ ク に 対 す る デ ィ ー プ ス リ ー プ ウ ェ イ ク ア ッ プ 入 力 ピ ン と し て 機 能 し ま す
(LPC111x/11C1x ユーザーマニュアルを参照)。
プルアップ / プルダウン抵抗およびヒステリシスが設定可能な、デジタル I/O 機能を提供する 5 V トレラントパッド。
I2C 標準モードおよび I2C Fast モードプラスの I2C バス規格に準拠した I2C バスパッド。
プルアップ / プルダウン抵抗およびヒステリシスが設定可能で、アナログ入力にも対応可の、デジタル I/O 機能を提供する 5 V トレ
ラントパッド。ADC 入力として設定した場合、パッドのデジタル部分はディスエーブルとなり、ピンは 5 V トレラントではなくなり
ます。
システムオシレータを使用しない場合、XTALIN と XTALOUT を次のように接続します。XTALIN はフロート状態のままにしておくこと
も、接地することもできます(ノイズ感受性を低減するには、接地することをお勧めします)。XTALOUT はフロート状態のままにし
ておく必要があります。
R
A
94
D
Rev. 00.15 — 2010 / 9 / 28
FT
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
D
D
FT
[6]
FT
[3]
[4]
[5]
A
[2]
A
[1]
R
サーマルパッド。GND に接続します。
R
-
D
33
D
オシレータアンプからの出力。
VSS
FT
O
A
5[6]
R
XTALOUT
D
Description
FT
FT
FT
Type
A
A
A
Pin
R
R
R
Symbol
D
D
D
Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) (続き)
FT
FT
FT
FT
第 7 章:LPC111x/LPC11C1x ピン構成
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
Rev. 00.15 — 2010 / 9 / 28
R
R
A
A
A
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
D
D
R
R
R
UM10398
D
D
D
参考資料
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
FT
FT
A
A
R
R
D
D
D
8.1 この章を読む前に
R
A
FT
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
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
LPC1114
使用できない PIOn_m ピンに対応するレジスタビットは予約済みです。
8.2 概要
8.2.1 特長
• GPIO ピンは、ソフトウェアによって入力または出力として設定できます。
•
個別のポートピンは、エッジセンシティブまたはレベルセンシティブな割り込み要求
として機能することができます。
•
割り込みは、単独の立ち下がりエッジか立ち上がりエッジ、あるいは両方のエッジで
設定されます。
•
レベルセンシティブな割り込みピンは、HIGH アクティブまたは LOW アクティブです。
•
すべての GPIO ピンは、デフォルトでは入力です。
•
データレジスタの読み書きは、アドレスビット 13:2 によってマスクされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
95
A
Part
R
Table 102. GPIO configuration
D
各ポートで使用可能な GPIO ピンの数は、LPC111x/LPC11C1x 部品とパッケージによって
異なります。使用可能な GPIO ピンについては Table 102 を参照してください。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
8.3 レジスタの説明
FT
FT
FT
FT
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
D
FT
FT
A
A
R
R
D
各 GPIO レジスタは最大幅 12 ビットであり、ワードアドレスでワード演算またはハーフ
ワード演算を使用して読み書きすることができます。
D
D
R
A
Description
GPIOnDATA
R/W
0x0000 to 0x3FF8
ピン PIOn_0 ∼ PIOn_11 のポート n データア n/a
ドレスマスキングレジスタの位置(Section
8.4.1 を参照)。
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
スタ
A
Address offset
R
Access
D
Name
FT
Table 103. Register overview: GPIO (base address port 0: 0x5000 0000; port 1: 0x5001 0000, port 2: 0x5002 0000;
port 3: 0x5003 0000)
Reset
value
GPIOnIC
W
0x801C
ポート n の割り込みクリアレジスタ
0x00
-
-
0x8020 - 0x8FFF
予約済み
0x00
8.3.1 GPIO データレジスタ
GPIOnDATA レジスタは、ピンが GPIO 入力または出力、あるいは別のデジタル機能とし
て設定されているかに関係なく、ピンの現在のロジック状態(HIGH または LOW)を保持
します。ピンが GPIO 出力として設定されている場合、GPIOnDATA レジスタの現在の値が
ピンに対して駆動されます。
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 Access
value
11:0
DATA
ピン PIOn_0 ∼ PIOn_11 のロジックレベル。HIGH = 1、LOW n/a
= 0。
31:12
-
予約済み
-
R/W
-
GPIOnDATA レジスタを読み取ると、ピンの設定に関係なく、常にピンの現在のロジック
レベル(状態)が返されます。出力ドライバの値とピン入力の状態の両方に対してデータ
レジスタが 1 つだけなので、ピンの設定に応じて書き込み操作の影響が異なります。
•
ピンが GPIO 入力として設定されている場合、GPIOnDATA レジスタへの書き込みは
ピンのレベルに影響を与えません。読み取りはピンの現在の状態を返します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
96
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
ピンが GPIO 出力として設定されている場合、GPIOnDATA レジスタの現在の値がピ
ンに対して駆動されます。この値は、GPIOnDATA レジスタへの書き込みの結果である
か、ピンが GPIO 入力または別のデジタル機能から GPIO 出力に切り替えられた場合
に、以前のピンの状態を反映することがあります。読み取りはピンの現在の状態を返
します。
•
ピンが別のデジタル機能(入力または出力)として設定されている場合、GPIOnDATA
レジスタへの書き込みはピンのレベルに影響を与えません。読み取りは、たとえピン
が出力として設定されている場合でも、ピンの現在の状態を返します。これは、
GPIOnDATA レジスタを読み取ることにより、そのピン上で GPIO 以外の機能のデジタ
ル出力または入力の値を確認できるという意味です。
D
R
A
F
FT
FT
A
A
R
R
D
D
•
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
– ピンを出力に変更し、ピンは HIGH レベルを駆動する。
•
ピンは LOW レベルが適用される入力として設定されている場合
– ピンを出力に変更し、ピンは LOW レベルを駆動する。
このルールは、ピンが現在のロジックレベルを反映することを示しています。したがっ
て、
フロート状態のピンは入力から出力に切り替わると予測できないレベルを駆動する可
能性があります。
8.3.2 GPIO データ方向レジスタ
Table 105. GPIOnDIR register (GPIO0DIR, address 0x5000 8000 to GPIO3DIR, address
0x5003 8000) bit description
Bit
Symbol
11:0
IO
31:12
-
Value
Description
ピン x を入力または出力として選択します(x = 0 ∼ 0x00
11)。
0
ピン PIOn_x は入力として設定されます。
1
ピン PIOn_x は出力として設定されます。
-
予約済み
-
R/W
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset Access
value
Rev. 00.15 — 2010 / 9 / 28
97
A
ピンが HIGH レベルが適用される入力として設定されている場合
R
•
D
ピンが入力から出力に切り替わるときに、以下のルールが適用されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
D
Reset Access
value
D
ISENSE
Description
R
11:0
Value
D
Symbol
FT
Bit
FT
A
A
R
R
D
Table 106. GPIOnIS register (GPIO0IS, address 0x5000 8004 to GPIO3IS, address 0x5003
8004) bit description
FT
A
A
R
R
D
D
D
8.3.3 GPIO 割り込み検知レジスタ
FT
FT
FT
FT
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
-
予約済み
A
ピン PIOn_x への割り込みはレベルセンシティブと
して設定されます。
R
1
D
ピン PIOn_x への割り込みはエッジセンシティブと
して設定されます。
R/W
-
-
8.3.4 GPIO 割り込み両エッジ検知レジスタ
Table 107. GPIOnIBE register (GPIO0IBE, address 0x5000 8008 to GPIO3IBE, address 0x5003
8008) bit description
Bit
Symbol Value
Description
11:0
IBE
ピン x への割り込みが両エッジでトリガされるよう 0x00
に選択します(x = 0 ∼ 11)。
31:12
-
Reset Access
value
0
ピンPIOn_xへの割り込みはレジスタGPIOnIEVによっ
て制御されます。
1
ピン PIOn_x 上の両エッジが割り込みをトリガしま
す。
-
予約済み
R/W
-
-
8.3.5 GPIO 割り込みイベントレジスタ
Table 108. GPIOnIEV register (GPIO0IEV, address 0x5000 800C to GPIO3IEV, address 0x5003
800C) bit description
Bit
Symbol
11:0
IEV
31:12
-
Value
Description
Reset Access
value
ピン x への割り込みが、立ち上がりエッジまたは 0x00
立ち下がりエッジでトリガされるように選択し
ます(x = 0 ∼ 11)。
0
レジスタ GPIOnIS での設定に応じて(Table 106 を
参照)、ピン PIOn_x の立ち下がりエッジまたは
LOW レベルによって割り込みがトリガされます。
1
レジスタ GPIOnIS での設定に応じて(Table 106 を
参照)、ピン PIOn_x の立ち上がりエッジまたは
HIGH レベルによって割り込みがトリガされます。
-
予約済み
-
R/W
-
8.3.6 GPIO 割り込みマスクレジスタ
GPIOnIE レジスタ内のビットが HIGH に設定されると、対応するピンが個別の割り込みと
結合 GPIOnINTR ラインをトリガすることができます。ビットをクリアすると、そのピン
での割り込みトリガがディスエーブルになります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
-
0
A
31:12
ピン x への割り込みをレベルセンシティブまたは 0x00
エッジセンシティブとして選択します(x = 0 ∼ 11)。
98
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
D
FT
FT
A
A
R
R
D
Reset Access
value
F
FT
FT
A
A
A
MASK
D
R
R
11:0
R
A
D
D
Symbol Value Description
D
R
FT
FT
A
A
R
R
D
D
D
Table 109. GPIOnIE register (GPIO0IE, address 0x5000 8010 to GPIO3IE, address 0x5003
8010) bit description
Bit
FT
FT
FT
FT
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
D
R
A
予約済み
D
ピン PIOn_x への割り込みはマスクされません。
FT
1
-
A
ピン PIOn_x への割り込みがマスクされます。
R
-
0
R/W
D
31:12
ピン x への割り込みがマスクされるように選択しま 0x00
す(x = 0 ∼ 11)。
-
-
8.3.7 GPIO 原割り込みステータスレジスタ
GPIOnIRS レジスタ内で HIGH に設定されているビットは、対応するピンの原(マスク前
の)割り込みステータスを反映しており、GPIOIE をトリガする前にすべての要件が満た
されていることを示しています。ビットの読み取りが 0 であれば、対応する入力ピンが割
り込みを開始していないことを示します。このレジスタは読み取り専用です。
Table 110. GPIOnIRS register (GPIO0IRS, address 0x5000 8014 to GPIO3IRS, address 0x5003
8014) bit description
Bit
Symbol
11:0
RAWST
31:12
-
Value
Description
Reset Access
value
原割り込みステータス(x = 0 ∼ 11)。
0x00
R
-
-
0
ピン PIOn_x への割り込みはありません。
1
PIOn_x では割り込み要件が満たされています。
-
予約済み
8.3.8 GPIO マスク割り込みステータスレジスタ
GPIOnMIS レジスタでビットの読み取りが HIGH であれば、割り込みをトリガする入力ラ
インのステータスを反映しています。ビットの読み取りが LOW であれば、対応する入力
ピンで割り込みが生成されていないか、割り込みがマスクされていることを示します。
GPIOMIS はマスク後の割り込みの状態です。このレジスタは読み取り専用です。
Table 111. GPIOnMIS register (GPIO0MIS, address 0x5000 8018 to GPIO3MIS, address
0x5003 8018) bit description
Bit
Symbol Value Description
11:0
MASK
ピン x への割り込みがマスクされるように選択します 0x00
(x = 0 ∼ 11)。
0
31:12
-
Reset Access
value
R
ピン PIOn_x で割り込みまたは割り込みのマスクはあ
りません。
1
PIOn_x への割り込み。
-
予約済み
-
-
8.3.9 GPIO 割り込みクリアレジスタ
このレジスタにより、ソフトウェアは、割り込み検知レジスタ内でエッジセンシティブと
特定されたポートビットのエッジ検出をクリアすることができます。このレジスタは、レ
ベルセンシティブと特定されたポートビットには影響を与えません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
99
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
D
FT
FT
A
A
R
R
D
Reset Access
value
F
FT
FT
A
A
A
CLR
Description
D
R
R
11:0
Value
R
A
D
D
Symbol
D
R
FT
FT
A
A
R
R
D
D
D
Table 112. GPIOnIC register (GPIO0IC, address 0x5000 801C to GPIO3IC, address 0x5003
801C) bit description
Bit
FT
FT
FT
FT
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
D
R
W
D
A
FT
D
R
ピン x への割り込みがクリアされるように選択し 0x00
ます(x = 0 ∼ 11)。割り込みエッジ検出ロジックを
クリアします。このレジスタは書き込み専用です。
A
注意 : GPIO ブロックと NVIC ブロック間のシンク
ロナイザによって、2 クロック分の遅延が発生しま
す。割り込みサービスルーチンを終了する前に、割
り込みエッジ検出ロジックをクリアしてから 2 つ
の NOP を追加することをお勧めします。
31:12
-
0
影響なし。
1
ピン PIOn_x のエッジ検出ロジックをクリアしま
す。
-
予約済み
-
-
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 は変更されずそのままです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
100
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
2
address 0x098
0
0
0
0
0
0
1
0
0
1
1
0
data 0xFE4
1
1
1
1
1
1
1
0
0
1
0
0
GPIODATA register
at address + 0x098
u
u
u
u
u
u
1
u
u
1
0
u
F
3
A
4
R
5
D
6
FT
7
0
FT
0
FT
A
A
R
8
D
9
FT
10
R
A
A
11
D
R
R
12
R
A
D
D
13
D
R
FT
FT
A
A
R
R
D
D
D
ADDRESS[13:2]
FT
FT
FT
FT
第 8 章:LPC111x/LPC11C1x 汎用 I/O(GPIO)
D
D
R
A
FT
D
R
A
u = unchanged
Fig 10. Masked write operation to the GPIODATA register
読み取り操作
GPIO データビットと関連付けられるアドレスビットが HIGH の場合、値は読み取られま
す。アドレスビットが LOW の場合、GPIO データビットは 0 として読み取られます。ポー
ト DATA レジスタを読み取ると、ポートピン 11:0 の状態がアドレスビット 13:2 と AND 操
作されます。
ADDRESS[13:2]
13
12
11
10
9
8
7
6
5
4
3
2
address 0x0C4
0
0
0
0
0
0
1
1
0
0
0
1
port pin settings
1
1
1
1
1
1
1
0
0
1
0
0
data read
0
0
0
0
0
0
1
0
0
0
0
0
0
0
Fig 11. Masked read operation
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
101
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
9.1 この章を読む前に
R
A
FT
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 ピンの説明
Table 113. UART pin description
Pin
Type
Description
RXD
Input
シリアル入力。シリアル受信データ。
TXD
Output シリアル出力。シリアル送信データ。
Output Request To Send(送信要求)。RS-485 方向制御ピン。
RTS
DSR[1]
Output Data Terminal Ready(データ端末レディ)。
Input
Data Set Ready(データセットレディ)。
CTS
Input
Clear To Send(送信可)。
DCD[1]
Input
Data Carrier Detect(データキャリア検出)。
RI[1]
Input
Ring Indicator(被呼表示)。
DTR
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
102
A
UART は以下のレジスタを使用して設定します。
R
9.2 基本構成
D
UART ブロックは、LPC111x と LPC11C1x のすべての部品で同一です。DSR、DCD、RI の
モデム信号は、LQFP48 および PLCC44 パッケージでのみピンアウトされています。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
FT
FT
A
A
R
R
D
D
DSR、DCD、RI のモデム入力は、2 つの異なるピン位置に多重化されます。IOCON_LOC レ
ジスタ(Section 6.4.2 を参照)を使用して、IOCON レジスタで機能を選択するのに加え
て、LQFP48 ピンパッケージで各機能の物理的位置を選択します。
F
FT
FT
A
A
R
R
D
D
D
LQFP48 パッケージのみ。
D
D
D
[1]
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
D
R
A
消費電力を抑えるために、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 Description
offset
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
-
U0LCR
R/W
0x00C
FIFO 制御レジスタ。UART FIFO の使用とモードを制御します。 0x00
ライン制御レジスタ。フレームフォーマットとブレーク生成を 0x00
制御します。
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
Notes
Value[1]
Rev. 00.15 — 2010 / 9 / 28
103
A
UART ブロックは、AHBCLKCTRL レジスタ(Table 19 を参照)によってゲート制御されま
す。
UART ボーレートジェネレータが使用するペリフェラル UART クロックは、UARTCLKDIV
レジスタ(Table 21 を参照)によって制御されます。
R
9.5 クロックと電力の制御
D
ることによって簡単に選択できます。
FT
DTR 出力も、2 つのピン位置で可能です。DTR ピンの出力値は両方の位置で同じく駆動さ
れ、任意の位置での DTR 機能は、そのピン位置について IOCON レジスタで機能を選択す
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
0x00
-
U0LSR
RO
0x014
ラインステータスレジスタ。ラインエラーを含む送受信ステー 0x60
タスのフラグが含まれます。
-
U0MSR
RO
0x018
モデムステータスレジスタ
0x00
-
U0SCR
R/W
0x01C
スクラッチパッドレジスタ。ソフトウェア用 8 ビット一時スト 0x00
レージ。
-
U0ACR
R/W
0x020
自動通信速度設定制御レジスタ。自動通信速度設定機能の制御 0x00
が含まれます。
-
0x034 0x048
予約済み
U0RS485CTRL
R/W
0x04C
U0ADRMATCH
R/W
0x050
U0RS485DLY
R/W
0x054
RS-485/EIA-485 制御。RS-485/EIA-485 モードのさまざまな側面 0x00
を設定する制御が含まれます。
RS-485/EIA-485 アドレスマッチ。RS-485/EIA-485 モードのアド 0x00
レスマッチ値が含まれます。
0x00
RS-485/EIA-485 方向制御遅延。
-
A
-
R
-
D
送信イネーブルレジスタ。ソフトウェアのフロー制御で使用す 0x80
るため、UART トランスミッタをオフにします。
-
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
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 からのバイトを読み取るというやり方です。
Table 115. UART Receiver Buffer Register (U0RBR - address 0x4000 8000 when DLAB = 0,
Read Only) bit description
Bit
Symbol
Description
7:0
RBR
UART レシーババッファレジスタには、UART RX FIFO 内で最も古 undefined
い受信バイトが含まれます。
予約済み
31:8 -
ユーザーマニュアル
Reset Value
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
0x030
FT
R/W
FT
U0TER
A
0x02C
R
-
-
D
-
分数分周器レジスタ。ボーレート分周器のクロック入力を生成 0x10
します。
予約済み
FT
予約済み
0x028
A
0x024
R/W
A
R
R
D
-
U0FDR
F
モデム制御レジスタ
A
0x010
R
R/W
D
U0MCR
FT
Reset
Notes
Value[1]
FT
A
Access Address Description
offset
A
R
R
D
D
D
Name
-
R
R
FT
FT
A
A
R
R
D
D
D
Table 114. Register overview: UART (base address: 0x4000 8000)(続き)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
104
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
9.6.2 UART トランスミッタ保持レジスタ(U0THR - 0x4000 8000、DLAB = 0
のとき、書き込み専用)
D
FT
FT
A
A
R
R
D
U0THR は UART TX FIFO の最上位バイトです。最上位バイトは TX FIFO 内で最も新しい文
字であり、バスインターフェースを介して書き込みができます。LSB は、送信する最初の
D
D
R
A
ビットを表します。
FT
Symbol
Description
7:0
THR
UART 送信保持レジスタに書き込みを行うと、データが UART 送 NA
信 FIFO に格納されます。バイトは、FIFO の一番下に達してトラ
ンスミッタが使用できる状態にあれば送信されます。
予約済み
31:8 -
Reset Value
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 117. UART Divisor Latch LSB Register (U0DLL - address 0x4000 8000 when DLAB = 1)
bit description
Bit
Symbol
Description
7:0
DLLSB
UART ディバイザラッチ LSB レジスタは、U0DLM レジスタとと 0x01
もに UART のボーレートを決定します。
予約済み
31:8 -
Reset value
Table 118. UART Divisor Latch MSB Register (U0DLM - address 0x4000 8004 when
DLAB = 1) bit description
Bit
Symbol
Description
7:0
DLMSB
UART ディバイザラッチ MSB レジスタは、U0DLL レジスタとと 0x00
もに UART のボーレートを決定します。
予約済み
31:8 -
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset value
Rev. 00.15 — 2010 / 9 / 28
105
A
Bit
R
Table 116. UART Transmitter Holding Register (U0THR - address 0x4000 8000 when
DLAB = 0, Write Only) bit description
D
U0THR にアクセスするには、U0LCR 内のディバイザラッチアクセスビット(DLAB)が 0
でなくてはなりません。U0THR は常に書き込み専用です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
F
D
FT
FT
A
A
R
R
D
U0IER は、4 つの UART 割り込みソースをイネーブルにするのに使用されます。
A
FT
FT
A
A
R
R
D
D
9.6.4 UART 割り込みイネーブルレジスタ(U0IER - 0x4000 8004、DLAB = 0
のとき)
D
D
R
Table 119. UART Interrupt Enable Register (U0IER - address 0x4000 8004 when DLAB = 0) bit
description
A
UART の受信データ使用可能割り込みをイネーブルにしま 0
す。これは文字受信タイムアウト割り込みも制御します。
0
1
1
2
THRE
Interrupt
Enable
-
6:4
-
7
-
8
ABEOIntEn
0
THRE 割り込みをディスエーブルにします。
THRE 割り込みをイネーブルにします。
UART RX ラインステータス割り込みをイネーブルにしま 0
す。この割り込みのステータスは U0LSR[4:1] から読み取る
ことができます。
0
RX ラインステータス割り込みをディスエーブルにします。
1
RX ラインステータス割り込みをイネーブルにします。
-
予約済み
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った値
は未定義です。
-
0
予約済み
自動通信速度設定割り込みの終了をイネーブルにします。 0
1
ABTOIntEn
31:10 -
RDA 割り込みをイネーブルにします。
1
0
9
RDA 割り込みをディスエーブルにします。
UART の THRE 割り込みをイネーブルにします。この割り込 0
みのステータスは U0LSR[5] から読み取ることができます。
RX Line
Interrupt
Enable
3
Reset
value
自動通信速度設定割り込みの終了をディスエーブルにし
ます。
自動通信速度設定割り込みの終了をイネーブルにします。
自動通信速度設定タイムアウト割り込みをイネーブルに 0
します。
0
自動通信速度設定タイムアウト割り込みをディスエーブ
ルにします。
1
自動通信速度設定タイムアウト割り込みをイネーブルに
します。
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った値
は未定義です。
9.6.5 UART 割り込み識別レジスタ(U0IIR - 0x4004 8008、読み取り専用)
U0IIR は、保留中の割り込みの優先度とソースを示すステータスコードを提供します。
U0IIR アクセスの間、割り込みは凍結されます。U0IIR アクセス中に割り込みが発生した場
合、その割り込みは次の U0IIR アクセスで記録されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
106
A
RBR
Interrupt
Enable
Description
R
0
Value
D
Symbol
FT
Bit
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
R
A
FT
FT
A
IntStatus
Reset
value
R
0
Value Description
D
Symbol
D
FT
FT
A
A
R
R
D
D
Table 120. UART Interrupt Identification Register (U0IIR - address 0x4004 8008, Read Only)
bit description
Bit
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
D
R
A
割り込みは保留されていません。
FT
1
IntId
A
少なくとも 1 つの割り込みが保留されています。
R
0
D
3:1
割り込みステータス。U0IIR[0] はアクティブ LOW です。保留 1
される割り込みは、U0IIR[3:1] を評価することで特定できま
す。
割り込みの識別。U0IER[3:1] は UART Rx FIFO に対応する割り 0
込みを識別します。以下に列挙していない U0IER[3:1] の他の
組み合せは、すべて予約済みです(100、101、111)。
011
1 - 受信ラインステータス(RLS)
010
2a - 受信データ使用可能(RDA)
110
2b - 文字タイムアウトインジケータ(CTI)
001
3 - THRE 割り込み
000
4 - モデム割り込み
5:4
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った値
は未定義です。
7:6
FIFO Enable
これらのビットは U0FCR[0] と同等です。
8
ABEOInt
自動通信速度設定割り込みの終了。自動通信速度設定が正 0
常に完了し、割り込みがイネーブルな場合に true です。
9
ABTOInt
自動通信速度設定タイムアウト割り込み。自動通信速度設 0
定がタイムアウトし、割り込みがイネーブルな場合に true
です。
31:10
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った値
は未定義です。
0
ビット 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 を読み取った時点でクリアされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
107
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
UART RDA 割り込み(U0IIR[3:1] = 010)は、CTI 割り込み(U0IIR[3:1] = 110)との間で 2
番目の優先度を共有します。RDA は、UART Rx FIFO が U0FCR7:6 で定義されたトリガレベ
ルに達するとアクティブになり、UART Rx FIFO の深度がトリガレベルより下がるとリセッ
トされます。RDA 割り込みがアクティブになると、CPU はトリガレベルによって定義され
D
FT
FT
A
A
R
R
D
D
D
R
たデータのブロックを読み取ることができます。
A
FT
Interrupt source
Interrupt
reset
0001
-
なし
-
0110
Highest RX Line
Status /
Error
OE[2] または PE[2] または FE[2] または BI[2]
U0LSR 読み
取り [2]
0100
Second RX Data
Available
Rx データ使用可能または FIFO 内でトリガレベルに U0RBR 読み
到達(U0FCR0=1)
取り [3] また
は
UART
FIFO がトリ
ガレベル未
満に低下
1100
Second Character RX FIFO 内に少なくとも 1 文字があり、一定時間内 U0RBR 読み
Time-out に文字の入力や削除が行われていないこと。この 取り [3]
indication 時間は、FIFO 内にいくつの文字があり、トリガレ
ベルがいくつに設定されているか(3.5 ∼ 4.5 文字
回数)によって異なります。
None
正確な時間は次式のとおりです。
0010
[1]
[2]
[3]
[4]
Third
THRE
[( ワード長 ) × 7 - 2] × 8 + [( トリガレベル - 文字数
) × 8 + 1] RCLK
THRE[2]
U0IIR 読み取
り [4](割り
込みソース
の 場 合)ま
たは THR 書
き込み
値「0000」、
「0011」、
「0101」
、
「0111」、
「1000」
、
「1001」、
「1010」
、
「1011」、
「1101」
、
「1110」、
「1111」は
予約済みです。
詳細は Section 9.6.9「UART ラインステータスレジスタ(U0LSR - 0x4000 8014、読み取り専用)
」を参照。
詳細は Section 9.6.1「UART レシーババッファレジスタ(U0RBR - 0x4000 8000、DLAB = 0 のとき、読み取
り専用)」を参照。
詳細は Section 9.6.5「UART 割り込み識別レジスタ(U0IIR - 0x4004 8008、読み取り専用)」および Section
9.6.2「UART トランスミッタ保持レジスタ(U0THR - 0x4000 8000、DLAB = 0 のとき、書き込み専用)」を参照。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
108
A
U0IIR[3:0] Priority Interrupt
value[1]
type
R
Table 121. UART Interrupt Handling
D
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 文字が転送されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
F
FT
FT
が空で、一定の初期化条件を満たしている場合にアクティブになります。これらの初期化
条件は、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)
である場合にリセットされます。
A
A
A
R
R
D
D
UART THRE 割り込み(U0IIR[3:1] = 001)は第 3 レベルの割り込みであり、UART THR FIFO
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
A
109
R
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
© NXP B.V. 2010. All rights reserved.
UM10398_0
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
9.6.6 UART FIFO 制御レジスタ(U0FCR - 0x4000 8008、書き込み専用)
D
FT
1
UART Rx および TX FIFO の両方、そして U0FCR[7:1] アクセスでア
クティブ HIGH イネーブル。このビットは、UART の正常な動作の
ために設定する必要があります。このビット上の遷移は UART
FIFO を自動的にクリアします。
2
RX FIFO
Reset
0
いずれの UART FIFO にも影響しません。
1
U0FCR[1] にロジック 1 を書き込むと、UART Rx FIFO 内の全バイト
がクリアされ、ポインタロジックがリセットされます。このビッ
トは自動クリアされます。
0
TX FIFO
Reset
0
いずれの UART FIFO にも影響しません。
1
U0FCR[2] にロジック 1 を書き込むと、UART TX FIFO 内の全バイ
トがクリアされ、ポインタロジックがリセットされます。この
ビットは自動クリアされます。
0
-
予約済み
3
-
5:4
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き NA
込まないでください。予約ビットから読み取った値は未定義で
す。
7:6
RX
Trigger
Level
これら 2 つのビットは、割り込みがアクティブ化される前にレ 0
シーバ UART FIFO 文字をいくつ書き込む必要があるかを決定しま
す。
31:8 -
00
トリガレベル 0(1 文字または 0x01)。
01
トリガレベル 1(4 文字または 0x04)。
10
トリガレベル 2(8 文字または 0x08)。
11
トリガレベル 3(14 文字または 0x0E)。
-
予約済み
A
UART FIFO はディスエーブルになります。アプリケーションで使 0
用してはなりません。
0
-
9.6.7 UART ライン制御レジスタ(U0LCR - 0x4000 800C)
U0LCR は、送信または受信されるデータ文字のフォーマットを決定します。
Table 123. UART Line Control Register (U0LCR - address 0x4000 800C)
bit description
Bit
Symbol Value Description
Reset
Value
1:0
Word
Length
Select
0
2
Stop Bit
Select
00
5 ビットの文字長。
01
6 ビットの文字長。
10
7 ビットの文字長。
11
8 ビットの文字長。
0
1 ストップビット。
1
2 ストップビット(U0LCR[1:0]=00 の場合は 1.5)。
ユーザーマニュアル
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
R
0
D
FIFO
Enable
D
0
1
Reset
value
FT
Value Description
A
Symbol
R
Bit
D
Table 122. UART FIFO Control Register (U0FCR - address 0x4000 8008, Write Only) bit
description
FT
A
A
R
R
D
U0FCR は UART RX および TX FIFO の動作を制御します。
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
110
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
FT
R
A
D
FT
FT
A
A
R
R
D
Reset
Value
F
FT
FT
A
A
R
R
D
D
D
Parity
Enable
FT
3
A
A
A
Symbol Value Description
R
R
R
Bit
D
D
D
Table 123. UART Line Control Register (U0LCR - address 0x4000 800C)
bit description (続き)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
01
偶数パリティ。送信される文字内の 1 の数であり、付加されるパリ
ティビットは偶数になります。
10
強制 "1" スティックパリティ。
11
強制 "0" スティックパリティ。
0
ブレーク送信をディスエーブルにします。
1
ブレーク送信をイネーブルにします。U0LCR[6] がアクティブ HIGH
のとき、出力ピン UART TXD は強制的にロジック 0 になります。
D
D
R
A
31:8 -
奇数パリティ。送信される文字内の 1 の数であり、付加されるパリ 0
ティビットは奇数になります。
FT
Divisor
Latch
Access
Bit
(DLAB)
パリティの生成とチェックをイネーブルにします。
00
A
7
Break
Control
0
R
6
Parity
Select
パリティの生成とチェックをディスエーブルにします。
D
5:4
0
1
0
0
ディバイザラッチへのアクセスをディスエーブルにします。
1
ディバイザラッチへのアクセスをイネーブルにします。
-
予約済み
0
-
9.6.8 UART モデム制御レジスタ
U0MCR はモデムループバックモードをイネーブルにして、モデム出力信号を制御します。
Table 124. UART0 Modem Control Register (U0MCR - address 0x4000 8010)
bit description
Bit
Symbol
Value Description
0
DTR
Control
モデム出力ピン DTR のソース。モデムループバックモードがアク 0
ティブのとき、このビットは 0 と読み取られます。
1
RTS
Control
モデム出力ピン RTS のソース。モデムループバックモードがアク 0
ティブのとき、このビットは 0 と読み取られます。
3:2
-
NA
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き 0
込まないでください。予約ビットから読み取った値は未定義で
す。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
111
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
D
D
D
Loopback
Mode
Select
FT
FT
FT
4
Value Description
A
A
A
Symbol
R
R
R
Bit
D
D
D
Table 124. UART0 Modem Control Register (U0MCR - address 0x4000 8010)
bit description(続き)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
RTSen
0
自動 RTS フロー制御をディスエーブルにします。
1
自動 RTS フロー制御をイネーブルにします。
0
自動 CTS フロー制御をディスエーブルにします。
1
自動 CTS フロー制御をイネーブルにします。
-
予約済み
7
CTSen
31:8 -
A
6
R
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き 0
込まないでください。予約ビットから読み取った値は未定義で
す。
D
NA
D
-
FT
モデムループバックモードをイネーブルにします。
5
A
モデムループバックモードをディスエーブルにします。
1
R
0
D
モデムループバックモードは、診断ループバックテストを実行す 0
るメカニズムを提供します。トランスミッタからのシリアルデー
タは、レシーバのシリアル入力に内部接続されています。入力ピ
ン RXD はループバックにまったく影響せず、出力ピン TXD はマー
キング状態に保たれます。4 つのモデム入力(CTS、DSR、RI、
DCD)は外部で切断されます。外部では、モデム出力(RTS、DTR)
は非アクティブに設定されます。内部では、4 つのモデム出力が
4 つのモデム入力に接続されます。これらの接続の結果、U0MSR
の上位 4 ビットは、通常モードの 4 つのモデム入力ではなく、
U0MCR の下位 4 ビットによって駆動されます。これにより、モデ
ムステータス割り込みは、U0MCR の下位 4 ビットを書き込むこ
とによってループバックモードで生成されます。
0
0
-
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 に対してデータ送信を続行するよ
うに信号を出します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
112
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
自動 RTS モードがディスエーブルの場合、RTSen ビットが UART の RTS 出力を制御しま
す。自動 RTS モードがイネーブルの場合、ハードウェアが RTS 出力を制御し、RTS の実際
値は UART の RTS 制御ビットにコピーされます。自動 RTS がイネーブルである限り、RTS
制御ビットの値はソフトウェアにとって読み取り専用となります。
D
FT
FT
A
A
R
R
D
D
D
R
A
~
~
start
bits0..7
stop
N-1
N-2
start
bits0..7
stop
~
~
stop
RTS1 pin
~
~~
~
UART1 Rx
FIFO read
UART1 Rx
FIFO level
N
N-1
N-2
M+2
M+1
M
M-1
~
~
N-1
Fig 12. Auto-RTS Functional Timing
9.6.8.1.2
自動 CTS
自動 CTS 機能は、CTSen ビットを設定することによってイネーブルになります。自動 CTS
がイネーブルの場合、U0TSR モジュール内のトランスミッタ回路は、次のデータバイト
を送信する前に CTS 入力をチェックします。CTS がアクティブ(LOW)のとき、トランス
ミッタは次のバイトを送信します。後続のバイトの送信をトランスミッタが停止するに
は、現在送信されている最後のストップビットの中間より前に CTS を解放する必要があ
ります。自動 CTS モードでは、CTS 割り込みイネーブルビットが設定されていない限り、
CTS 信号の変化によってモデムステータス割り込みがトリガされることはありません(た
だし、U0MSR 内のデルタ CTS ビットは設定されます)。モデムステータス割り込みを生
成するための条件を Table 125 に示します。
Table 125. Modem status interrupt generation
Enable
modem
status
interrupt
(U0ER[3])
CTSen
CTS
(U0MCR[7]) interrupt
enable
(U0IER[7])
Delta CTS Delta DCD or trailing edge
(U0MSR[0]) 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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
113
A
byte N
R
start
D
UART1 Rx
FT
例 : タイプ ’550 モードで動作する UART の、U0FCR でのトリガレベルが 0x2 に設定されて
いるとすれば、自動 RTS がイネーブルの場合、UART は受信 FIFO に 8 バイトが含まれる
とただちに RTS 出力をデアサートします(110 ページの Table 122)。RTS 出力は、受信
FIFO が以前のトリガレベルである 4 バイトに達すると、ただちに再アサートされます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
Delta CTS Delta DCD or trailing edge
(U0MSR[0]) RI or
Delta DSR (U0MSR[3] or
U0MSR[2] or U0MSR[1])
Modem
status
interrupt
1
1
1
0
0
No
1
1
1
1
x
Yes
1
1
1
x
1
Yes
D
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
~
~
~
~
start
bits0..7
stop
start
bits0..7
stop
~
~
stop
~
~
CTS1 pin
Fig 13. Auto-CTS Functional Timing
最初の文字の送信開始時に CTS 信号がアサートされます。送信は、保留中の送信が完了す
るとただちに停止します。UART は、CTS がデアサート(HIGH)されている限り、1 ビッ
トの送信を続行します。CTS がデアサートされるとただちに送信は再開され、スタート
ビットが送信されるのに続いて、次の文字のデータビットが送信されます。
9.6.9 UART ラインステータスレジスタ(U0LSR - 0x4000 8014、読み取り専
用)
U0LSR は、UART TX ブロックおよび RX ブロックに関するステータス情報を提供する読み
取り専用のレジスタです。
Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit
description
Bit Symbol
0
Value Description
Receiver
Data Ready
(RDR)
Reset
Value
Receiver Data Ready: U0LSR[0] は、U0RBR が未読の文字を保持 0
しているときに設定され、UART RBR FIFO が空のときにクリア
されます。
0
U0RBR は空です。
1
U0RBR には有効なデータが含まれています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
UART1 TX
bits0..7
F
FT
FT
CTSen
CTS
(U0MCR[7]) interrupt
enable
(U0IER[7])
A
A
A
R
R
D
D
D
Enable
modem
status
interrupt
(U0ER[3])
自動 CTS 機能は、ホストシステムへの割り込みを減らします。フロー制御がイネーブルの
ときは、デバイスが自身のトランスミッタを自動制御するので、CTS の状態変化がホスト
割り込みをトリガすることはありません。自動 CTS がなければ、トランスミッタは送信
FIFO 内にあるデータをすべて送信するので、レシーバのオーバーランエラーが発生する
ことがあります。Figure 13 に、自動 CTS の機能タイミング例を示します。
start
R
R
FT
FT
A
A
R
R
D
D
D
Table 125. Modem status interrupt generation(続き)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
Rev. 00.15 — 2010 / 9 / 28
114
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
Reset
Value
R
A
F
FT
FT
A
A
R
R
D
Bit Symbol
D
D
FT
FT
A
A
R
R
D
D
D
Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit
description (続き)
D
FT
FT
A
A
R
R
D
Value Description
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
A
オーバーランエラーステータスがアクティブです。
Parity Error
(PE)
受信した文字のパリティビットが不正な状態のとき、パリティ 0
エラーが発生します。U0LSR の読み取りによって U0LSR[2] はク
リアされます。パリティエラー検出の時間は U0FCR[0] に依存し
ます。
注記 : パリティエラーは、UART RBR FIFO の最上位にある文字
と関連付けられます。
3
0
パリティエラーステータスが非アクティブです。
1
パリティエラーステータスがアクティブです。
Framing
Error
(FE)
受信した文字のストップビットがロジック 0 のとき、フレーミ 0
ングエラーが発生します。U0LSR の読み取りによって U0LSR[3]
はクリアされます。フレーミングエラー検出の時間は U0FCR0
に依存します。フレーミングエラーを検出すると、RX はデータ
との再同期を試み、不正なストップビットが実際には早期のス
タートビットであるとみなします。しかし、たとえフレーミン
グエラーがなかったとしても、次に受信するバイトが正しいと
仮定することはできません。
注記 : フレーミングエラーは、UART RBR FIFO の最上位にある
文字と関連付けられます。
0
1
4
フレーミングエラーステータスが非アクティブです。
フレーミングエラーステータスがアクティブです。
RXD1 が 1 つの完全な文字送信(スタート、データ、パリティ、 0
ストップ)に関してスペーシング状態(すべて 0)に保持され
ている場合、ブレーク割り込みが発生します。ブレーク状態が
検出されると、RXD1 がマーキング状態(すべて 1)になるま
で、レシーバはアイドル状態となります。U0LSR の読み取りに
よってこのステータスビットはクリアされます。ブレーク検出
の時間は U0FCR[0] に依存します。
Break
Interrupt
(BI)
注記 : ブレーク割り込みは、UART RBR FIFO の最上位にある文
字と関連付けられます。
0
1
5
Transmitter
Holding
Register
Empty
(THRE)
ブレーク割り込みステータスが非アクティブです。
ブレーク割り込みステータスがアクティブです。
THRE は、空の UART THR が検出されるとただちに設定され、 1
U0THR の書き込みによってクリアされます。
0
U0THR には有効なデータが含まれています。
1
U0THR は空です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
オーバーランエラーステータスが非アクティブです。
1
FT
0
A
オーバーランエラー状態は、発生するとただちに設定されます。 0
U0LSR の読み取りによって U0LSR[1] はクリアされます。UART
RSR に新たに組み立てられた文字があり、UART RBR FIFO が満
杯の場合に U0LSR[1] が設定されます。この場合、UART RBR FIFO
は上書きされず、UART RSR 内の文字が失われます。
R
2
Overrun
Error
(OE)
D
1
115
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
Reset
Value
R
A
F
FT
FT
A
A
R
R
D
Bit Symbol
D
D
FT
FT
A
A
R
R
D
D
D
Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit
description (続き)
D
FT
FT
A
A
R
R
D
Value Description
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
A
31: 8
R
U0THR と U0TSR は空です。
Error in RX
FIFO
(RXFE)
D
1
フレーミングエラー、パリティエラー、ブレーク割り込みなど 0
の RX エラーのある文字が U0RBR にロードされると、U0LSR[7]
が設定されます。U0LSR レジスタが読み取られ、その後 UART
FIFO にエラーがなければ、このビットはクリアされます。
0
U0RBR に UART RX エラーが含まれていないか、U0FCR[0]=0 です。
1
UART RBR に 1 つ以上の UART RX エラーが含まれています。
-
予約済み
-
9.6.10 UART モデムステータスレジスタ
U0MSR は、モデム入力信号に関するステータス情報を提供する読み取り専用のレジスタ
です。U0MSR[3:0] は、U0MSR を読み取った時点でクリアされます。モデム信号は、UART
の動作に直接は影響しません。これらは、モデム信号動作のソフトウェア実装を容易に行
うためのものです。
Table 127. UART Modem Status Register (U0MSR - address 0x4000 8018)
bit description
Bit Symbol Value Description
0
Delta
CTS
0
Reset
Value
入力 CTS に状態変化があった時点で設定されます。U0MSR を読み 0
取った時点でクリアされます。
モデム入力 CTS に変化が検出されていません。
1
Delta
DSR
1
モデム入力 CTS に状態変化が検出されました。
0
入力 DSR に状態変化があった時点で設定されます。U0MSR を読み 0
取った時点でクリアされます。
モデム入力 DSR に変化が検出されていません。
2
Trailing
Edge RI
1
モデム入力 DSR に状態変化が検出されました。
0
入力 RI が LOW から HIGH へ遷移した時点で設定されます。U0MSR 0
を読み取った時点でクリアされます。
モデム入力 RI に変化が検出されていません。
3
Delta
DCD
1
RI で LOW から HIGH への遷移が検出されました。
0
入力 DCD に状態変化があった時点で設定されます。U0MSR を読み 0
取った時点でクリアされます。
モデム入力 DCD に変化が検出されていません。
1
4
CTS
モデム入力 DCD に状態変化が検出されました。
Clear To Send 状態。入力信号 CTS の補数。このビットは、モデムルー 0
プバックモードで U0MCR[1] に接続されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
U0THR または U0TSR、あるいはその両方に有効なデータが含ま
れています。
FT
0
A
TEMT は、U0THR と U0TSR の両方が空のときに設定されます。 1
また TEMT は、U0TSR または U0THR のいずれかに有効なデータ
が含まれているときクリアされます。
R
7
Transmitter
Empty
(TEMT)
D
6
116
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
FT
FT
A
A
R
R
D
D
Reset
Value
F
FT
FT
A
A
R
R
R
Bit Symbol Value Description
D
D
D
Table 127. UART Modem Status Register (U0MSR - address 0x4000 8018)
bit description(続き)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
A
-
R
31: 8
D
DCD
9.6.11 UART スクラッチパッドレジスタ(U0SCR - 0x4000 801C)
U0SCR は、UART の動作にまったく影響しません。このレジスタは、ユーザーの裁量に
よって読み書きすることができます。割り込みインターフェースには、U0SCR の読み取り
または書き込みが発生したことをホストに示す規定がありません。
Table 128. UART Scratch Pad Register (U0SCR - address 0x4000 8014) bit description
Bit Symbol Description
Reset Value
7:0 Pad
読み取りおよび書き込みが可能なバイト。
0x00
31: 8
予約済み
-
9.6.12 UART 自動通信速度設定制御レジスタ(U0ACR - 0x4000 8020)
UART 自動通信速度設定制御レジスタ(U0ACR)は、着信するクロック / データ速度を
ボーレート生成のために測定するプロセスを制御します。読み書きはユーザーの裁量で行
えます。
Table 129. Auto-baud Control Register (U0ACR - address 0x4000 8020)
bit description
Bit
Symbol
0
Start
1
2
Value Description
このビットは自動通信速度設定の完了後、自動的にク 0
リアされます。
自動通信速度設定が停止(自動通信速度設定が実行さ
れません)。
1
自動通信速度設定が開始(自動通信速度設定が実行さ
れます)。自動通信速度設定実行ビット。このビットは
自動通信速度設定の完了後、自動的にクリアされます。
Mode
自動通信速度設定モード選択ビット。
0
モード 0。
1
モード 1。
AutoRestart 0
1
リスタートせず
0
0
タイムアウトの場合はリスタート(次の UART Rx 立ち 0
下がりエッジでカウンタがリスタートします)
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset value
0
Rev. 00.15 — 2010 / 9 / 28
D
7
FT
RI
A
6
Data Set Ready 状態。入力信号 DSR の補数。このビットは、モデム 0
ループバックモードで U0MCR[0] に接続されます。
Ring Indicator 状態。入力 RI の補数。このビットは、モデムループ 0
バックモードで U0MCR[2] に接続されます。
Data Carrier Detect 状態。入力 DCD の補数。このビットは、モデム 0
ループバックモードで U0MCR[3] に接続されます。
予約済み
R
DSR
D
5
117
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
FT
D
F
FT
D
R
FT
FT
A
A
R
D
D
R
A
FT
予約済み。ユーザーソフトウェアによって予約ビット 0
に 1 を書き込まないでください。予約ビットから読み
取った値は未定義です。
A
A
R
R
D
Reset value
D
0 を書き込んでも影響はありません。
1
1 を書き込むと、U0IIR 内の対応する割り込みがクリア
されます。
A
0
R
自動通信速度設定割り込み終了クリアビット(書き込 0
み専用でアクセス可能)。
ABTOIntClr
31:10 -
D
9
FT
ABEOIntClr
FT
8
A
NA
R
-
D
7:3
FT
Value Description
A
A
A
Symbol
R
R
R
Bit
D
D
D
Table 129. Auto-baud Control Register (U0ACR - address 0x4000 8020)
bit description(続き)
自動通信速度設定タイムアウト割り込みクリアビット 0
(書き込み専用でアクセス可能)。
0
0 を書き込んでも影響はありません。
1
1 を書き込むと、U0IIR 内の対応する割り込みがクリア
されます。
NA
予約済み。ユーザーソフトウェアによって予約ビット 0
に 1 を書き込まないでください。予約ビットから読み
取った値は未定義です。
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 が設
定され、自動通信速度設定の速度測定カウンタがオーバーフローしたとき)に設定さ
れます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
118
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
• U0IIR ABEOInt
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
A
F
FT
FT
A
A
R
R
D
D
割り込みは、その割り込みがイネーブルの場合(U0IER ABEOIntEn が
設定され、自動通信速度設定が正常に完了したとき)に設定されます。
D
A
R
R
D
FT
FT
A
自動通信速度設定割り込みは、対応する U0ACR の ABTOIntClr ビットおよび ABEOIntEn
ビットを設定することによってクリアする必要があります。
D
D
R
A
FT
16  2 15
16   2 + databits + paritybits + stopbits 
9.6.14 自動通信速度設定モード
ソフトウェアが "AT" コマンドを要求している場合、そのソフトウェアは UART を要求す
る文字フォーマットで構成し、U0ACR スタートビットを設定します。ディバイザラッチ
U0DLM 内の初期値と U0DLM は何でもかまいません。"A" または "a" の ASCII コード
("A" = 0x41、"a" = 0x61)では、UART Rx ピンが検知したスタートビットと、要求される
文字の LSB は、2 つの立ち下がりエッジによって区切られます。U0ACR スタートビットを
設定すると、自動通信速度設定プロトコルは以下のフェーズを実行します。
1.
U0ACR スタートビットの設定では、ボーレート測定カウンタがリセットされ、UART
U0RSR もリセットされます。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 を設定後、自動通信速度設定割り込みの終了 U0IIR
ABEOInt がイネーブルであれば設定されます。U0RSR は "A/a" 文字の残りのビット
の受信を続行します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
119
A
2  P CLK
PCLK
ratemin = -------------------------  UART baudrate  ------------------------------------------------------------------------------------------------------------ = ratemax
R
(2)
D
自動通信速度設定中は、フラクショナルボーレートジェネレータをディスエーブルにする
必要があります(DIVADDVAL = 0)。また、自動通信速度設定を使用する場合、U0DLM お
よび U0DLL レジスタへの書き込みは U0ACR レジスタの書き込みより前に行わなくてはな
りません。UART がサポートする最小 / 最大ボーレートは、UART_PCLK の機能とデータ
ビット、ストップビット、パリティビットの数によって決まります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
bit2
bit3
bit4
bit5
bit6
bit7
parity stop
D
bit1
D
bit0
FT
start
FT
A
A
R
R
D
D
'A' (0x41) or 'a' (0x61)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
R
A
FT
LSB of 'A' or 'a'
R
A
start bit
D
UARTn RX
U0ACR start
rate counter
16xbaud_rate
16 cycles
16 cycles
a. Mode 0 (start bit and LSB are used for auto-baud)
'A' (0x41) or 'a' (0x61)
start
bit0
bit1
bit2
bit3
bit4
bit5
bit6
bit7
parity stop
UARTn RX
start bit
LSB of 'A' or 'a'
U1ACR start
rate counter
16xbaud_rate
16 cycles
b. Mode 1 (only start bit is used for auto-baud)
Fig 14. Auto-baud a) mode 0 and b) mode 1 waveform
9.6.15 UART 分数分周器レジスタ(U0FDR - 0x4000 8028)
UART 分数分周器レジスタ(U0FDR)はボーレート生成のためのクロックプリスケーラを
制御します。読み書きはユーザーの裁量で行えます。このプリスケーラは APB クロックを
使用し、指定された分数要件に従って出力クロックを生成します。
重要 : 分数分周器がアクティブ(DIVADDVAL > 0)で DLM = 0 の場合、DLL レジスタの値
は 3 以上となります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
120
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
Function
Value Description
Reset
value
3:0
DIVADDVAL
0
ボーレート生成プリスケーラディバイザの値。このフィー 0
ルドが 0 の場合、フラクショナルボーレートジェネレータ
は UART ボーレートに影響を与えません。
7:4
MULVAL
1
ボーレートプリスケーラ乗算器の値。UART が正常に動作 1
するには、フラクショナルボーレートジェネレータが使用
されているかどうかに関係なく、このフィールドが 1 以上
である必要があります。
31:8
-
NA
予約済み。ユーザーソフトウェアによって予約ビットに 1 0
を書き込まないでください。予約ビットから読み取った値
は未定義です。
F
FT
FT
Bit
A
A
A
R
R
D
D
Table 130. UART Fractional Divider Register (U0FDR - address 0x4000 8028) bit description
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
このレジスタは、ボーレート生成のためのクロックプリスケーラを制御します。レジスタ
のリセット値が UART の分数機能をディスエーブルに保つことで、UART はこの機能の備
わっていない UART ともソフトウェアおよびハードウェアの完全な互換性を確保します。
UART のボーレートは次式により計算することができます。
(3)
PCLK
UART baudrate = ---------------------------------------------------------------------------------------------------------------------------------DivAddVal
16   256  U0DLM + U0DLL    1 + -----------------------------

MulVal 
ここで、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 のとき、分数分周器はディスエーブルになり、クロックは
分周されません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
121
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
UART は、分数分周器の使用の有無にかかわらず動作します。実際のアプリケーションで
は、数種類の分数分周器設定を使用して望ましいボーレートを達成するのが一般的です。
DLM、DLL、MULVAL、DIVADDVAL の各値を特定する方法の一例を、以下のアルゴリズム
に示します。ここに示す一連のパラメータは、望ましい値からの相対誤差が 1.1% 未満で
ボーレートを算出します。
F
FT
FT
A
A
R
R
D
D
D
9.6.15.1 ボーレートの計算
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
D
R
A
FT
D
R
A
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
122
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
Calculating UART
baudrate (BR)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
D
R
A
FT
PCLK,
BR
D
R
A
DL est = PCLK/(16 x BR)
DL est is an
integer?
True
False
DIVADDVAL = 0
MULVAL = 1
FR est = 1.5
Pick another FR est from
the range [1.1, 1.9]
DL est = Int(PCLK/(16 x BR x FR est))
FR est = PCLK/(16 x BR x DL est)
False
1.1 < FR est < 1.9?
True
DIVADDVAL = table(FR est )
MULVAL = table(FR est )
DLM = DL est [15:8]
DLL = DLest [7:0]
End
Fig 15. Algorithm for setting UART dividers
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
123
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
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
F
FT
FT
FR
A
A
A
R
R
D
D
D
Table 131. Fractional Divider setting look-up table
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
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 送信はた
だちに停止します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
124
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
Table 132 は TxEn ビットを使用してハードウェアフロー制御を達成する方法を説明してい
ますが、これに配慮した自動フロー制御機能を UART ハードウェアが実装し、TxEn の適
D
FT
FT
A
A
R
R
D
用範囲はソフトウェアフロー制御に限定することを強くお勧めします。
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
D
Table 132 で、TxEn ビットを使用してソフトウェアフロー制御を達成する方法を説明して
R
A
FT
います。
D
Symbol
Description
6:0
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書 NA
き込まないでください。予約ビットから読み取った値は未定義
です。
7
TXEN
このビットが 1 のときは、リセット後と同様、THR に書き込ま 1
れたデータがそれ以前の全データが送信された後で TXD ピンに
出力されます。文字の送信中にこのビットが 0 にクリアされた
場合、その文字の送信は完了しますが、このビットを再度設定
するまでそれ以降の文字は送信されません。つまり、このビッ
トが 0 であれば、THR または TX FIFO から送信シフトレジスタ
への文字の転送がブロックされます。ソフトウェアがこのビッ
トをクリアできるのは、ハードウェアがハンドシェークする TX
許可信号(CTS)が false になったことをソフトウェアが検出し
たときか、ソフトウェアのハンドシェークで XOFF 文字(DC3)
を受信したときです。ソフトウェアは、TX 許可信号が true に
なったことをソフトウェアが検出するか、XON(DC1)文字を
受信すると、このビットを再度設定することができます。
31:8 -
Reset Value
-
予約済み
9.6.17 UART RS485 制御レジスタ(U0RS485CTRL - 0x4000 804C)
U0RS485CTRL レジスタは、RS-485/EIA-485 モードの UART の設定を制御します。
Table 133. UART RS485 Control register (U0RS485CTRL - address 0x4000 804C) bit
description
Bit
Symbol
Value
Description
0
NMMEN
0
RS-485/EIA-485 通常マルチドロップモード(NMM) 0
がディスエーブルになります。
1
RS-485/EIA-485 通常マルチドロップモード(NMM)
がイネーブルになります。このモードでは、受信し
たバイトが原因で UART がパリティエラーを設定し
割り込みを生成したときにアドレスが検出されま
す。
0
レシーバはイネーブルです。
1
レシーバはディスエーブルです。
0
自動アドレス検出(AAD)がディスエーブルです。 0
1
自動アドレス検出(AAD)がイネーブルです。
0
方向制御がイネーブル(ビット DCTRL = 1)の場 0
合、ピン RTS が方向制御に使用されます。
1
方向制御がイネーブル(ビット DCTRL = 1)の場
合、ピン DTR が方向制御に使用されます。
1
2
3
RXDIS
AADEN
SEL
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
125
A
Bit
R
Table 132. UART Transmit Enable Register (U0TER - address 0x4000 8030) bit description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
0
自動方向制御をディスエーブルにします。
0
1
自動方向制御をイネーブルにします。
F
Reset
value
D
Description
R
A
FT
D
送信するデータがトランスミッタにあるとき、方
向制御ピンがロジック ’0’ に駆動されます。データ
の最後のビットが送信された後、このピンはロ
ジック ’1’ に駆動されます。
1
送信するデータがトランスミッタにあるとき、方
向制御ピンがロジック ’1’ に駆動されます。データ
の最後のビットが送信された後、このピンはロ
ジック ’0’ に駆動されます。
-
予約済み。ユーザーソフトウェアによって予約 NA
ビットに 1 を書き込まないでください。予約ビッ
トから読み取った値は未定義です。
A
0
R
このビットは、RTS(または DTR)ピン上の方向 0
制御信号の極性を反転させます。
31:6 -
9.6.18 UART RS-485 アドレスマッチレジスタ(U0RS485ADRMATCH - 0x4000
8050)
U0RS485ADRMATCH レジスタには、RS-485/EIA-485 モードのアドレスマッチ値が含まれ
ます。
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
-
予約済み
-
9.6.19 UART1 RS-485 遅延値レジスタ(U0RS485DLY - 0x4000 8054)
ユーザーは 8 ビットの RS485DLY レジスタを、TXFIFO から出る最後のストップビットか
ら RTS(または DTR)のデアサートまでの間に遅延を付けてプログラムすることができま
す。この遅延時間はボークロックの時間内です。遅延時間は 0 ∼ 255 ビット時間の範囲で
プログラムできます。
Table 135. UART RS-485 Delay value register (U0RS485DLY - address 0x4000 8054) bit
description
Bit
Symbol
Description
7:0
DLY
方向制御(RTS または DTR)遅延値が含まれています。このレジ 0x00
スタは 8 ビットカウンタとともに動作します。
31:8
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き NA
込まないでください。予約ビットから読み取った値は未定義で
す。
ユーザーマニュアル
Reset value
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
OINV
FT
5
FT
A
A
R
R
D
Value
A
FT
FT
DCTRL
R
A
A
4
D
R
R
Symbol
R
A
D
D
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 133. UART RS485 Control register (U0RS485CTRL - address 0x4000 804C) bit
description (続き)
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
126
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
RS-485/EIA-485 機能により、UART をアドレス指定可能なスレーブとして設定することが
できます。アドレス指定可能なスレーブは、1 つのマスタによって制御される複数のス
レーブのうちの 1 つです。
F
FT
FT
A
A
R
R
D
D
D
9.6.20 RS-485/EIA-485 の動作モード
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
D
R
A
FT
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 データレディ割り込みを生成し
ます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
127
A
RS-485/EIA-485 通常マルチドロップモード(NMM)
R
各 UART スレーブレシーバには、固有のアドレスを割り当てることができます。スレーブ
は、
自身のものでないアドレスに続くデータを手動または自動で拒否するようにプログラ
ムできます。
D
UART マスタトランスミッタは、パリティ(9 番目の)ビットを ’1’ に設定することによっ
てアドレス文字を識別します。データ文字については、パリティビットは ’0’ に設定されま
す。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
レシーバがイネーブルの間(RS485CTRL ビット 1 = ’0’)、受信したバイトは受け入れられ、
RS485ADRMATCH 値にマッチしないアドレスバイトを受信するまで RXFIFO に格納されま
す。この状態が起きると、レシーバは自動的にハードウェア内でディスエーブルとなり
(RS485CTRL ビット 1 が設定されます)、受信したマッチしないアドレス文字は RXFIFO に
格納されません。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
RS-485/EIA-485 自動方向制御
R
A
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 またはホストが汎用ホストインターフェースを介してアクセスしてくる
のを待ちます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
128
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
UART トランスミッタブロック U0TX は、CPU またはホストによって書き込まれたデータ
を受け入れ、UART TX 保持レジスタ FIFO(U0THR)にそのデータをバッファリングしま
す。UART TX シフトレジスタ(U0TSR)は、U0THR に格納されたデータを読み取り、シリ
アル出力ピン TXD1 を介して送信するためにデータを組み立てます。
D
FT
FT
A
A
R
R
D
D
D
R
A
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
129
A
© NXP B.V. 2010. All rights reserved.
UM10398_0
R
U0TX および U0RX からのステータス情報は U0LSR に格納されます。U0TX および U0RX の
制御情報は U0LCR に格納されます。
D
割り込みインターフェースには、レジスタ U0IER および U0IIR が含まれています。割り込
みインターフェースは、U0TX および U0RX ブロックから 1 クロック幅のイネーブルをい
くつか受信します。
FT
UART ボーレートジェネレータブロック U0BRG は、UART TX ブロックが使用するタイミ
ングイネーブルを生成します。U0BRG のクロック入力ソースは UART_PCLK です。メイン
クロックは、U0DLL および U0DLM レジスタで指定されたディバイザによって分周されま
す。この分周されたクロックは、16 倍オーバーサンプルクロックの NBAUDOUT です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
F
D
TXD
D
D
U0TSR
FT
U0THR
FT
A
A
R
R
D
NTXRDY
A
FT
FT
A
A
R
R
D
D
D
U0TX
FT
FT
FT
FT
第 9 章:LPC111x/LPC11Cx 汎用非同期送受信回路(UART)
R
A
FT
D
R
A
U0BRG
U0DLL
NBAUDOUT
U0DLM
RCLK
U0RX
NRXRDY
INTERRUPT
U0RBR
U0INTR
U0RSR
RXD
U0IER
U0IIR
U0FCR
U0LSR
U0SCR
U0LCR
PA[2:0]
PSEL
PSTB
PWRITE
APB
INTERFACE
PD[7:0]
DDIS
AR
MR
PCLK
Fig 16. UART block diagram
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
130
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
10.1 この章を読む前に
R
A
FT
D
I2C バスブロックは、LPC111x と LPC11C1x のすべての部品で同一です。
R
A
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 つのピンで構成されています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
131
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
10.4 用途
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
FT
FT
A
A
R
R
D
シリアル RAM、LCD、トーンジェネレータ、他のマイクロコントローラなど、外部 I2C 標
準部品とのインターフェース。
D
D
R
A
FT
D
10.5 概説
R
A
一般的な 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 への電源をオフにすることができます。
pull-up
resistor
pull-up
resistor
SDA
I 2C bus
SCL
SDA
SCL
LPC???
OTHER DEVICE WITH
I 2C INTERFACE
OTHER DEVICE WITH
I 2C INTERFACE
Fig 17. I2C-bus configuration
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
132
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
Fast モードプラスは、NXP Semiconductors が現在提供している I2C バス製品と通信する
ための転送速度 1 Mbit/sec を実現します。
F
FT
FT
A
A
R
R
D
D
D
10.5.1 I2C Fast モードプラス
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
10.6 ピンの説明
FT
D
R
A
Table 136. I2C-bus pin description
Pin
Type
Description
SDA
Input/Output
I2C シリアルデータ
SCL
Input/Output
I2C シリアルクロック
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 137. Register overview: I2C (base address 0x4000 0000)
Name
Access Address
offset
Description
I2C0CONSET
R/W
0x000
I2C 制御設定レジスタ。このレジスタのビットに 1 を書き込むと、I2C 制 0x00
御レジスタ内の対応するビットが設定されます。0 を書き込んだ場合は、
I2C 制御レジスタ内の対応するビットに何も影響を与えません。
I2C0STAT
RO
0x004
I2C ステータスレジスタ。I2C の動作中、このレジスタは、次に必要なア 0xF8
クションをソフトウェアが判断するための詳細ステータスコードを提供
します。
I2C0DAT
R/W
0x008
I2C データレジスタ。マスタまたはスレーブ送信モードの間、送信される 0x00
データはこのレジスタに書き込まれます。マスタまたはスレーブ受信
モードの間、受信したデータはこのレジスタから読み取ることができま
す。
I2C0ADR0
R/W
0x00C
I2C スレーブアドレスレジスタ 0。I2C インターフェースがスレーブモー 0x00
ドで動作するための 7 ビットスレーブアドレスが含まれます。これはマ
スタモードでは使用されません。最下位ビットは、スレーブがゼネラル
コールアドレスに応答するかどうかを決定します。
I2C0SCLH
R/W
0x010
SCH デューティサイクルレジスタ HIGH ハーフワード。I2C クロックの 0x04
HIGH 時間を決定します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value[1]
Rev. 00.15 — 2010 / 9 / 28
133
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
Description
Reset
value[1]
I2C0SCLL
R/W
0x014
SCL デューティサイクルレジスタ LOW ハーフワード。I2C クロックの 0x04
LOW 時間を決定します。I2nSCLL と I2nSCLH はともに、I2C マスタが生成
するクロック周波数と、スレーブモードで使用される特定の時間を決定
します。
I2C0CONCLR
WO
0x018
I2C 制御クリアレジスタ。このレジスタのビットに 1 を書き込むと、I2C NA
制御レジスタ内の対応するビットがクリアされます。0 を書き込んだ場合
は、I2C 制御レジスタ内の対応するビットに何も影響を与えません。
I2C0MMCTRL
R/W
0x01C
モニターモード制御レジスタ。
I2C0ADR1
R/W
0x020
I2C スレーブアドレスレジスタ 1。I2C インターフェースがスレーブモー 0x00
ドで動作するための 7 ビットスレーブアドレスが含まれます。これはマ
スタモードでは使用されません。最下位ビットは、スレーブがゼネラル
コールアドレスに応答するかどうかを決定します。
I2C0ADR2
R/W
0x024
I2C スレーブアドレスレジスタ 2。I2C インターフェースがスレーブモー 0x00
ドで動作するための 7 ビットスレーブアドレスが含まれます。これはマ
スタモードでは使用されません。最下位ビットは、スレーブがゼネラル
コールアドレスに応答するかどうかを決定します。
I2C0ADR3
R/W
0x028
I2C スレーブアドレスレジスタ 3。I2C インターフェースがスレーブモー 0x00
ドで動作するための 7 ビットスレーブアドレスが含まれます。これはマ
スタモードでは使用されません。最下位ビットは、スレーブがゼネラル
コールアドレスに応答するかどうかを決定します。
I2C0DATA_
BUFFER
RO
0x02C
データバッファレジスタ。バスが 9 ビット(8 ビットのデータと ACK ま 0x00
たは NACK)を受信するたびに、I2DAT シフトレジスタ内の 8 MSB の内容
が DATA_BUFFER へ自動転送されます。
I2C0MASK0
R/W
0x030
I2C スレーブアドレスマスクレジスタ 0。このマスクレジスタは I2ADR0 0x00
と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ
ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。
I2C0MASK1
R/W
0x034
I2C スレーブアドレスマスクレジスタ 1。このマスクレジスタは I2ADR0 0x00
と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ
ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。
I2C0MASK2
R/W
0x038
I2C スレーブアドレスマスクレジスタ 2。このマスクレジスタは I2ADR0 0x00
と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ
ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。
I2C0MASK3
R/W
0x03C
I2C スレーブアドレスマスクレジスタ 3。このマスクレジスタは I2ADR0 0x00
と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ
ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。
F
FT
FT
Access Address
offset
A
A
A
R
R
D
D
D
Name
D
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
10.8.1 I2C 制御設定レジスタ(I2C0CONSET - 0x4000 0000)
I2CONSET レジスタは、I2C インターフェースの動作を制御する I2CON レジスタ内のビッ
トの設定を制御します。このレジスタのビットに 1 を書き込むと、I2C 制御レジスタ内の
対応するビットが設定されます。0 を書き込んでも影響はありません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
0x00
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
ユーザーマニュアル
R
R
FT
FT
A
A
R
R
D
D
D
Table 137. Register overview: I2C (base address 0x4000 0000) (続き)
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
134
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込 NA
まないでください。予約ビットから読み取った値は未定義です。
2
AA
アサート ACK フラグ。
3
SI
I2C 割り込みフラグ。
4
STO
STOP フラグ。
0
5
STA
START フラグ。
0
6
I2EN
I2C 割り込みイネーブル。
0
31:7
-
予約済み。予約ビットから読み取った値は未定義です。
-
F
-
A
1:0
R
Reset
value
FT
FT
A
A
R
R
D
D
Description
FT
Symbol
FT
A
Bit
A
R
R
D
D
Table 138. I2C Control Set register (I2C0CONSET - address 0x4000 0000) bit description
D
D
R
A
FT
D
R
A
0
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 状態を送信します。すでにマスタモードになっている場合は、Repeated
START 状態を送信します。
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 は自動的にクリアされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
135
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
スレーブモードでは、このビットを設定するとエラー状態から回復することができます。
この場合、STOP 状態はバスに送信されません。ハードウェアは STOP 状態を受信したか
のように動作し、「アドレス指定されていない」スレーブレシーバモードに切り替わりま
す。STO フラグは、ハードウェアによって自動的にクリアされます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
SI は I2C 割り込みフラグです。このビットは、I2C の状態が変化したときに設定されます。
ただし、状態 F8 に切り替わっても SI は設定されません。その場合は、割り込みサービス
ルーチンに行うべきことがないからです。
2. I2ADR 内のゼネラルコールビット(GC)が設定されている間に、ゼネラルコール
アドレスを受信した。
3. I2C がマスタレシーバモードのときに、データバイトを受信した。
4. I2C がアドレス指定されたスレーブレシーバモードのときに、データバイトを受信
した。
I2CONCLR レジスタ内の AAC ビットに 1 を書き込むことにより、AA ビットをクリアでき
ます。AA が 0 であれば、以下の状況のとき、SCL ラインの ACK クロックパルスの間に
NOT ACK(SDA に対して HIGH レベル)が返されます。
I2C がマスタレシーバモードのときに、データバイトを受信した。
1.
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 -
予約済み。予約ビットから読み取った値は未定義です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
-
Rev. 00.15 — 2010 / 9 / 28
136
A
スレーブアドレスレジスタ内のアドレスを受信した。
1.
R
AA はアサート ACK フラグです。1 に設定すると、以下の状況のとき、SCL ラインの ACK
クロックパルスの間に肯定応答(SDA に対して LOW レベル)が返されます。
D
SI の設定中は、SCL ライン上のシリアルクロックの LOW 時間が延び、シリアル転送が一
時停止されます。SCL が HIGH のときは、SI フラグの状態による影響を受けません。SI は
ソフトウェアによってリセットする必要があります。I2CONCLR レジスタ内の SIC ビット
に 1 を書き込んでください。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
下位 3 ビットは常に 0 です。1 バイトとして考えると、ステータスレジスタの内容はス
テータスコードを表します。可能なステータスコードは 26 あります。ステータスコード
が 0xF8 のとき、利用できる関連情報はなく、SI ビットは設定されません。他の 25 のス
テータスコードはすべて、I2C の定義済み状態に対応します。これらの状態のいずれかに
なると、SI が設定されます。全ステータスコードの一覧は、Table 154 から Table 159 まで
の表を参照してください。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
10.8.3 I2C データレジスタ(I2C0DAT - 0x4000 0008)
このレジスタには、これから送信されるデータや受信したばかりのデータが含まれていま
す。SI ビットが設定されているとき、CPU はバイトのシフトプロセス中でないときに限
り、このレジスタに読み書きできます。I2DAT 内のデータは、SI ビットが設定されている
限り安定状態に保たれます。I2DAT 内のデータは、常に右から左へとシフトします。最初
に送信されるビットは MSB(ビット 7)であり、1 バイトを受信した後、受信データの最
初のビットが I2DAT の MSB に配置されます。
Table 140. I2C Data register (I2C0DAT - 0x4000 0008) bit description
Bit
Symbol Description
7:0
Data
31:8 -
Reset value
このレジスタには、受信したデータ値やこれから送信されるデー 0
タ値が保持されています。
予約済み。予約ビットから読み取った値は未定義です。
-
10.8.4 I2C スレーブアドレスレジスタ 0(I2C0ADR0- 0x4000 000C)
このレジスタは読み書きが可能で、I2C インターフェースがスレーブモードに設定されて
いるときに限り使用できます。マスタモードでは、このレジスタは影響を及ぼしません。
I2ADR の LSB はゼネラルコールビットです。このビットを設定すると、ゼネラルコールア
ドレス(0x00)が認識されます。
これらのレジスタのうちのビット 00x を含むものはディスエーブルとなり、バス上のど
のアドレスともマッチしません。リセットするとスレーブアドレスレジスタはこのディス
エーブル状態にクリアされます。Table 147 も参照してください。
Table 141. I2C Slave Address register 0 (I2C0ADR0- 0x4000 000C) bit description
Bit
Symbol Description
0
GC
ゼネラルコールイネーブルビット。
0
7:1
Address
スレーブモードの
0x00
31:8 -
Reset value
I2C
デバイスアドレス。
予約済み。予約ビットから読み取った値は未定義です。
-
10.8.5 I2C SCL HIGH および LOW デューティサイクルレジスタ(I2C0SCLH 0x4000 0010 および I2C0SCLL- 0x4000 0014)
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
-
予約済み。予約ビットから読み取った値は未定義です。
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
137
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
Symbol
Description
Reset value
15:0
SCLL
SCL LOW 時間選択のカウント。
0x0004
31:16
-
予約済み。予約ビットから読み取った値は未定義です。
-
F
FT
FT
Bit
A
A
A
R
R
D
D
Table 143. I2C SCL Low duty cycle register (I2C0SCLL - 0x4000 0014) bit description
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
10.8.5.1 適切な I2C データ速度およびデューティサイクルの選択
I2CPCLK
I 2 C bitfrequency = -------------------------------------------------------I2CSCLH + I2CSCLL
I2SCLL および I2SCLH の値については、データ速度が適切な I2C データ速度範囲内である
かを確認する必要があります。各レジスタ値は 4 以上でなければなりません。I2C_PCLK
周波数と I2SCLL 値および I2SCLH 値に基づく I2C バス速度のいくつかの例を Table 144 に
示します。
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
120
160
200
300
400
500
I2SCLH + I2SCLL
Standard mode
100 kHz
60
80
100
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
I2SCLL と I2SCLH の値は、必ずしも同じでなくてもかまいません。ソフトウェアは、これ
ら 2 つのレジスタを設定することにより、異なるデューティサイクルを SCL に設定でき
ます。たとえば、I2C バス規格は、Fast モードおよび Fast モードプラス I2C の異なる値に
ついて、SCL LOW 時間と HIGH 時間を定義できます。
10.8.6 I2C 制御クリアレジスタ(I2C0CONCLR - 0x4000 0018)
I2CONCLR レジスタは、I2C インターフェースの動作を制御する I2CON レジスタ内のビッ
トのクリアを制御します。このレジスタのビットに 1 を書き込むと、I2C 制御レジスタ内
の対応するビットがクリアされます。0 を書き込んでも影響はありません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
138
A
(4)
R
ソフトウェアは、適切なデータ速度とデューティサイクルを選択するために、レジスタ
I2SCLH および I2SCLL の値を設定する必要があります。I2SCLH は SCL HIGH 時間の I2C_PCLK
サイクル数を定義し、I2SCLL は SCL LOW 時間の I2C_PCLK サイクル数を定義します。周波
数は次式により定義されます(I2C_PCLK はペリフェラル I2C クロックの周波数です)。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
1:0
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込ま NA
ないでください。予約ビットから読み取った値は未定義です。
2
AAC
アサート ACK クリアビット。
3
SIC
I2C 割り込みクリアビット。
4
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込ま NA
ないでください。予約ビットから読み取った値は未定義です。
5
STAC
START フラグクリアビット。
0
6
I2ENC
I2C 割り込みディスエーブルビット。
0
7
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込ま NA
ないでください。予約ビットから読み取った値は未定義です。
F
Reset
value
A
Description
FT
R
A
FT
D
R
A
0
-
予約済み。予約ビットから読み取った値は未定義です。
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 146. I2C Monitor mode control register (I2C0MMCTRL - 0x4000 001C)
bit description
Bit
Symbol
0
MM_ENA
Value Description
Reset
value
0
モニターモードイネーブル。
0
モニターモードがディスエーブルです。
1
I2C モジュールはモニターモードになります。このモードで
は、SDA 出力が強制的に HIGH になります。これにより、I2C
モジュールが ACK を含むあらゆる種類のデータを I2C デー
タバスに出力することが妨げられます。
ENA_SCL ビットの状態に応じて、出力を強制的に HIGH に
すれば、モジュールが I2C クロックラインを制御することが
妨げられます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
31:8 -
FT
A
A
R
R
D
D
Symbol
FT
Bit
FT
A
A
R
R
D
D
Table 145. I2C Control Clear register (I2C0CONCLR - 0x4000 0018) bit description
139
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
D
FT
FT
A
A
R
R
D
Reset
value
F
FT
FT
A
A
R
R
R
Value Description
D
D
D
ENA_SCL
FT
FT
FT
1
A
A
A
Symbol
R
R
R
Bit
D
D
D
Table 146. I2C Monitor mode control register (I2C0MMCTRL - 0x4000 001C)
bit description(続き)
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
FT
D
R
A
-
A
このビットを設定すると、I2C モジュールは通常動作で行っ
たであろう制御と同じ制御をクロックライン上で行うこと
ができます。つまり、I2C モジュールは、スレーブペリフェ
ラルとして動作しながら、I2C 割り込みに応答する時間がで
きるまで、クロックライン(LOW に保持)を「延ばす」こ
とができます。[1]
R
1
MATCH_ALL
31:3
[1]
このビットが「0」にクリアされると、モジュールがモニ
ターモードのときに SCL 出力が強制的に HIGH になります。
前述したように、これによってモジュールが I2C クロックラ
インを制御することが妨げられます。
D
2
0
SCL 出力イネーブル。
0
0
割り込みレジスタマッチの選択。
0
このビットをクリアすると、前述した最大 4 つのアドレス
レジスタの 1 つにマッチが発生したときに限り、割り込み
が生成されます。 つまり、アドレス認識に関する限り、モ
ジュールは通常のスレーブとして応答します。
1
このビットが「1」に設定され、I2C がモニターモードのと
き、受信したどのアドレスでも割り込みが生成されます。こ
れにより、バス上のすべてのトラフィックを監視する部品
がイネーブルになります。
-
予約済み。予約ビットから読み取った値は未定義です。
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 つにマッチするアドレス)発生します。
アドレスマッチ検出に続き、スレーブ書き込み転送のために各データバイトを受信した
後、またはスレーブ読み取り転送のために各バイトを送信したとモジュールが「思った」
後で、割り込みが生成されます。後者の場合、実際はマスタによってアドレス指定された
バス上の他のスレーブによって送信されたデータが、実際のデータレジスタに入っていま
す。
このようなすべての割り込みの後で、プロセッサはデータレジスタを読み取り、バス上で
実際に送信されたものが何であるかを確認することができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
140
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
モニターモードでは、I2C モジュールはバスマスタによる情報の要求に応答したり、ACK
を発行することができません。代わりに、バス上の他のスレーブのいくつかが応答しま
す。当社のモジュールに関する限り、これによってほとんどの場合、アービトレーション
ロスト状態が発生します。
F
FT
FT
A
A
R
R
D
D
D
10.8.7.2 モニターモードでのアービトレーションロスト
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
これらのレジスタのうちのビット 00x を含むものはディスエーブルとなり、バス上のど
のアドレスとも一致しません。リセットすると 4 つのレジスタすべてがこのディスエー
ブル状態にクリアされます。
Table 147. I2C Slave Address registers (I2C0ADR[1, 2, 3]- 0x4000 00[20, 24, 28]) bit
description
Bit
Symbol
Description
Reset value
0
GC
ゼネラルコールイネーブルビット。
7:1
Address
スレーブモードの
31:8
-
予約済み。予約ビットから読み取った値は未定義です。
I2C
デバイスアドレス。
0
0x00
0
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 の動作が変
わることはいっさいありません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
141
A
これらのレジスタは読み書きが可能で、I2C インターフェースがスレーブモードに設定さ
れているときに限り使用できます。マスタモードでは、このレジスタは影響を及ぼしませ
ん。I2ADR の LSB はゼネラルコールビットです。このビットを設定すると、ゼネラルコー
ルアドレス(0x00)が認識されます。
R
10.8.8 I2C スレーブアドレスレジスタ(I2C0ADR[1, 2, 3] - 0x4000 00[20, 24,
28])
D
ソフトウェアは、モジュールがモニターモードであることを認識する必要があり、検出さ
れたアービトレーションロスト状態に対応してはなりません。さらに、このような状態に
よって、必要な割り込みが発生するのが妨げられたり、不要な割り込みが発生してしまう
場合、一部またはすべてのアービトレーションロスト状態が発生するのを阻止するため
に、ハードウェアをモジュールに組み込んで設計することができます。このようなハード
ウェアを追加するかどうかを決める必要もあります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
FT
D
Reset value
D
R
A
FT
D
R
A
31:8 -
FT
このレジスタには、I2DAT シフトレジスタの 8 MSB の内容が入っ 0
ています。
A
Description
Data
F
R
R
Symbol
7:0
A
D
D
Table 148. I2C Data buffer register (I2C0DATA_BUFFER - 0x4000 002C) bit description
R
FT
FT
目的としていますが、いつでも、そしてどの動作モードでも読み取りは可能です。
Bit
D
A
A
R
R
D
D
DATA_BUFFER レジスタは、ENA_SCL ビット = ‘0’ のモニターモードで使用することを主な
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)を読み
取って、実際にマッチが発生した受信アドレスがどれであるかを特定します。
Table 149. I2C Mask registers (I2C0MASK[0, 1, 2, 3] - 0x4000 00[30, 34, 38, 3C]) bit
description
Bit
Symbol
Description
0
-
Reset value
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書 0
き込まないでください。このビットは、常に 0 として読み取ら
れます。
7:1
MASK
マスクビット。
0x00
31:8
-
予約済み。予約ビットから読み取った値は未定義です。
0
10.9 I2C の動作モード
特定のアプリケーションで、I2C ブロックは、マスタ、スレーブ、またはその両方として
動作することが可能です。スレーブモードで、I2C ハードウェアは 4 つのスレーブアドレ
スおよびゼネラルコールアドレスのうちのいずれか 1 つを探します。これらのアドレスの
うちの 1 つが検出されると、割り込みが要求されます。プロセッサがバスマスタになろう
とした場合、ハードウェアはバスが解放されるまで待ってから、マスタモードに切り替え
ます。それにより、可能なスレーブ動作は割り込まれません。マスタモードでバスアービ
トレーションロストが発生すると、I2C ブロックはすぐにスレーブモードに切り替わり、
同じシリアル転送の中で自身のスレーブアドレスを検出することができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
142
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
このモードでは、データがマスタからスレーブへと送信されます。マスタトランスミッタ
モードに切り替える前に、I2CONSET レジスタを Table 150 に示すように初期化する必要
があります。I2EN を 1 に設定して、I2C 機能をイネーブルにします。AA ビットが 0 の場
合、I2C インターフェースは別のデバイスがバスのマスタであれば、どのアドレスでも肯
定応答しないので、スレーブモードに切り替わることができません。STA、STO、および
SI ビットは 0 である必要があります。SI ビットは、I2CONCLR レジスタ内の SIC ビットに
1 を書き込むことによってクリアされます。STA ビットは、スレーブアドレスに書き込ん
だ後、クリアする必要があります。
F
FT
FT
A
A
R
R
D
D
D
10.9.1 マスタトランスミッタモード
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
5
4
3
2
1
0
Symbol
-
I2EN
STA
STO
SI
AA
-
-
Value
-
1
0
0
0
0
-
-
送信される最初のバイトには、受信デバイスのスレーブアドレス(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 となり
ます。これらのステータスコードそれぞれに対して取るべき適切なアクションを Table
154 ∼ Table 159 に示します。
S
SLAVE ADDRESS
RW=0
A
DATA
A
A/A
DATA
P
n bytes data transmitted
A = Acknowledge (SDA low)
from Master to Slave
A = Not acknowledge (SDA high)
from Slave to Master
S = START condition
P = STOP condition
Fig 18. Format in the Master Transmitter mode
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
143
A
6
R
7
D
Bit
FT
Table 150. I2C0CONSET and I2C1CONSET used to configure Master mode
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
マスタレシーバモードでは、データをスレーブトランスミッタから受信します。転送は、
マスタトランスミッタモードと同じ方法で開始されます。START 状態が送信されると、割
り込みサービスルーチンがスレーブアドレスとデータ方向ビットを I2C データレジスタ
(I2DAT)にロードしてから、SI ビットをクリアする必要があります。この場合、データ方
向ビット(R/W)は 1、すなわち読み取りです。
F
FT
FT
A
A
R
R
D
D
D
10.9.2 マスタレシーバモード
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
D
R
A
スレーブアドレスとデータ方向ビットが送信済みで、ACK ビットを受信すると、SI ビッ
トが設定され、ステータスレジスタがステータスコードを表示します。マスタモードで可
能なステータスコードは、0x40、0x48、または 0x38 です。スレーブモードで可能なス
テータスコードは、0x68、0x78、または 0xB0 です。詳細については、Table 155 を参照し
てください。
S
SLAVE ADDRESS
RW=1
A
DATA
A
A
DATA
P
n bytes data received
A = Acknowledge (SDA low)
from Master to Slave
A = Not acknowledge (SDA high)
from Slave to Master
S = START condition
P = STOP condition
Fig 19. Format of Master Receiver mode
Repeated START 状態の後、I2C はマスタトランスミッタモードに切り替わることがありま
す。
S
SLA
R
A
DATA
A
DATA
A
Sr
SLA
W
A
DATA
A
P
n bytes data transmitted
A = Acknowledge (SDA low)
A = Not acknowledge (SDA high)
From master to slave
S = START condition
From slave to master
P = STOP condition
SLA = Slave Address
Sr = Repeated START condition
Fig 20. A Master Receiver switches to Master Transmitter after sending Repeated START
10.9.3 スレーブレシーバモード
スレーブレシーバモードでは、データバイトをマスタトランスミッタから受信します。ス
レ ー ブ レ シ ー バ モ ー ド を 初 期 化 す る に は、い ず れ か の ス レ ー ブ ア ド レ ス レ ジ ス タ
(I2ADR0-3)を書き込み、I2C 制御設定レジスタ(I2CONSET)を Table 151 に示すように
書き込みます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
144
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
F
-
D
-
FT
-
R
-
1
A
AA
0
D
SI
0
R
STO
0
D
STA
1
D
I2EN
-
FT
-
Value
A
Symbol
0
FT
1
A
2
R
3
D
4
FT
5
A
6
FT
R
R
7
A
D
D
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 151. I2C0CONSET and I2C1CONSET used to configure Slave mode
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
R
A
FT
I2EN を 1 に設定して、I2C 機能をイネーブルにします。自身のスレーブアドレスまたはゼ
ネラルコールアドレスに肯定応答するには、AA ビットを 1 に設定する必要があります。
STA、STO、および SI ビットは 0 に設定されます。
SLAVE ADDRESS
RW=0
A
DATA
A
A/A
DATA
P/Sr
n bytes data received
A = Acknowledge (SDA low)
from Master to Slave
from Slave to Master
A = Not acknowledge (SDA high)
S = START condition
P = STOP condition
Sr = Repeated START condition
Fig 21. Format of Slave Receiver mode
10.9.4 スレーブトランスミッタモード
最初のバイトは、スレーブレシーバモードの場合と同様に受信して処理されます。ただし
このモードでは、方向ビットが読み取り動作を示す 1 になります。シリアルデータは SDA
を介して送信され、シリアルクロックは SCL を介して入力されます。START 状態と STOP
状態は、シリアル転送の開始と終了として認識されます。特定のアプリケーションでは、
I2C がマスタおよびスレーブとして動作することがあります。スレーブモードのとき、I2C
ハードウェアは自身のスレーブアドレスおよびゼネラルコールアドレスを探します。こ
れらのアドレスのうちの 1 つが検出されると、割り込みが要求されます。マイクロコント
ローラがバスマスタになろうとした場合、ハードウェアはバスが解放されるまで待ってか
らマスタモードに切り替わります。それにより、可能なスレーブアクションは割り込まれ
ません。マスタモードでバスアービトレーションロストが発生すると、I2C インターフェー
スはすぐにスレーブモードに切り替わり、同じシリアル転送の中で自身のスレーブアドレ
スを検出することができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
145
A
S
R
トが続く自身のアドレスまたは一般アドレスによってアドレス指定されるまで待機しま
す。方向ビットが 0(W)の場合は、スレーブレシーバモードに切り替わります。方向ビッ
トが 1(R)の場合は、スレーブトランスミッタモードに切り替わります。アドレスと方
向ビットが受信済みで、SI ビットが設定されると、有効なステータスコードをステータ
スレジスタ(I2STAT)から読み取ることができます。ステータスコードとアクションにつ
いては、Table 158 を参照してください。
D
I2ADR および I2CONSET が初期化された後、I2C インターフェースは、後にデータ方向ビッ
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
R
FT
FT
A
A
R
P
D
A
DATA
D
A
A
FT
FT
DATA
R
A
A
A
D
R
R
RW=1
R
A
D
D
SLAVE ADDRESS
D
R
FT
FT
A
A
R
R
D
D
D
S
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
n bytes data transmitted
D
R
A
A = Acknowledge (SDA low)
from Master to Slave
A = Not acknowledge (SDA high)
from Slave to Master
S = START condition
P = STOP condition
Fig 22. Format of Slave Transmitter mode
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
146
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
10.10 I2C の実装と動作
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
FT
FT
A
A
R
R
D
Figure 23 にオンチップ I2C バスインターフェースの実装方法を示し、個別のブロックに
D
D
ついては以下で説明します。
R
A
FT
D
R
A
8
ADDRESS REGISTERS
I2CnADDR0 to I2CnADDR3
MATCHALL
I2CnMMCTRL[3]
MASK and COMPARE
MASK REGISTERS
I2CnMASK0 to I2CnMASK3
INPUT
FILTER
I2CnDATABUFFER
SDA
OUTPUT
STAGE
SHIFT REGISTER
I2CnDAT
ACK
8
INPUT
FILTER
APB BUS
MONITOR MODE
REGISTER
I2CnMMCTRL
BIT COUNTER/
ARBITRATION and
SYNC LOGIC
PCLK
TIMING and
CONTROL
LOGIC
SCL
OUTPUT
STAGE
SERIAL CLOCK
GENERATOR
interrupt
CONTROL REGISTER and
SCL DUTY CYLE REGISTERS
I2CnCONSET, I2CnCONCLR, I2CnSCLH, I2CnSCLL
16
status
bus
STATUS
DECODER
STATUS REGISTER
I2CnSTAT
8
Fig 23. I2C serial interface block diagram
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
147
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
入力信号は内部クロックと同期し、3 クロックよりも短いスパイクはフィルタアウトされ
ます。
F
FT
FT
A
A
R
R
D
D
D
10.10.1 入力フィルタと出力ステージ
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
I2C の出力は、I2C 規格に準拠するように設計された特殊パッドです。
FT
D
R
A
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 内の正確なデータによって行わ
れます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
148
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
マスタトランスミッタモードでは、送信された各ロジック 1 が実際に I2C バス上のロジッ
ク 1 として現れることをアービトレーションロジックが確認します。バス上の別のデバ
イスがロジック 1 を拒否して SDA ラインを LOW にプルした場合、I2C ブロックはアービ
トレーションを失い、ただちにマスタトランスミッタからスレーブレシーバに変わりま
す。I2C ブロックは、現在のシリアルバイトの送信が完了するまで(SCL 上で)クロック
パルスを出力し続けます。
F
FT
FT
A
A
R
R
D
D
D
10.10.6 アービトレーションと同期化のロジック
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
1
2
3
(3)
SCL line
4
8
9
ACK
(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
同期化ロジックは、シリアルクロックジェネレータを、別のデバイスからの SCL ライン
上のクロックパルスと同期させます。2 つ以上のマスタデバイスがクロックパルスを生成
している場合、「マーク」の持続時間は最短の「マーク」を生成するデバイスによって決
定され、「スペース」の持続時間は最長の「スペース」を生成するデバイスによって決定
されます。Figure 25 に同期化の手順を示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
149
A
(2)
R
(1)
D
(1)
SDA line
FT
また、マスタレシーバモードでもアービトレーションが失われることがあります。この
モードでのアービトレーション喪失は、I2C ブロックが「NOT ACK」
(ロジック 1)をバス
に返している間にのみ発生します。アービトレーションは、バス上の別のデバイスがこの
信号を LOW にプルしているときに失われます。これはシリアルバイトの最後でのみ発生
するため、I2C ブロックはそれ以降にクロックパルスを生成しません。Figure 24 にアービ
トレーションの手順を示します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
D
(3)
FT
(1)
FT
A
A
R
R
D
SDA line
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
(1)
D
D
R
A
FT
SCL line
D
R
A
(2)
high
period
low
period
(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
スレーブはスペースの持続時間を延ばして、バスマスタの速度を落とします。スペース持
続時間を延ばすのは、ハンドシェークのためでもあります。これは、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 ブロックの機能を制御するのに使用される
ビットが含まれています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
150
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
I2C 制御レジスタの内容は、I2CONSET として読み取られることがあります。I2CONSET へ
の書き込みにより、書き込まれた値に含まれているビットに対応する I2C 制御レジスタ内
のビットが設定されます。それに対し、I2CONCLR へ書き込むと、書き込まれた値に含ま
れているビットに対応する I2C 制御レジスタ内のビットがクリアされます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
10.10.10 ステータスデコーダとステータスレジスタ
R
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 状態
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
151
A
ステータスデコーダは、内部ステータスビットをすべて取り込み、5 ビットコードに圧縮
します。このコードは、各 I2C バスステータスで固有のものです。5 ビットコードは、各種
サービスルーチンを高速処理するためのベクタアドレスを生成するのに使用されること
があります。各サービスルーチンは、特定のバスステータスを処理します。I2C ブロックの
4 つのモードすべてが使用されている場合、可能なバスステータスは 26 あります。5 ビッ
トステータスコードは、シリアル割り込みフラグが(ハードウェアによって)設定されて
いるときはステータスレジスタの上位 5 ビットにラッチされ、割り込みフラグがソフト
ウェアによってクリアされるまで、安定を保ちます。ステータスレジスタの下位 3 ビット
は常に 0 です。ステータスコードがサービスルーチンへのベクタとして使用されている場
合、ルーチンは 8 つのアドレス位置によって置き換えが行われます。8 バイトのコードは
ほとんどのサービスルーチンにとって十分です(このセクションのソフトウェア例を参照
してください)。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
Figure 26 ∼ Figure 30 では、シリアル割り込みフラグが設定されているときは円で囲み表
示しています。円の中の数字は、I2STAT レジスタ内に保持されているステータスコードを
D
FT
FT
A
A
R
R
D
示します。これらのポイントで、サービスルーチンを実行してシリアル転送を続行あるい
は完了する必要があります。これらのサービスルーチンは、シリアル割り込みフラグがソ
フトウェアによってクリアされるまでシリアル転送が一時停止されるので重大ではあり
ません。
D
D
R
A
FT
D
R
10.11.1 マスタトランスミッタモード
マスタトランスミッタモードでは、多数のデータバイトがスレーブレシーバに送信されま
す(Figure 26 を参照)。マスタトランスミッタモードに切り替える前に、I2CON を以下の
ように初期化する必要があります。
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
-
-
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 とともにロードすることにより、マ
スタレシーバモードに切り替えることができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
152
A
シリアル割り込みルーチンに切り替わると、I2STAT 内のステータスコードを使用して適
切なサービスルーチンに分岐します。各ステータスコードについて、必要なソフトウェア
動作とそれに続くシリアル転送の詳細を Table 154 ∼ Table 160 の表に示します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
A
D
D
R
X
同上。
0
0
X
SLA+W を送信する。I2C ブロックが
MST/REC モードに切り替わる。
R
0
D
0
FT
SLA+W を送信する。ACK ビットを受信す
る。
A
X
A
SLA+W を 送 信 済 み。 Load data byte or 0
ACK を受信済み。
No I2DAT action or 1
0
0
X
データバイトを送信する。ACK ビットを
受信する。
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 フラグをリセットする。
SLA+W を 送 信 済 み。 Load data byte or 0
NOT ACK を受信済み。
No I2DAT action or 1
0
0
X
データバイトを送信する。ACK ビットを
受信する。
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 フラグをリセットする。
I2DAT 内のデータバイ Load data byte or 0
トを送信済み。ACK を
受信済み。
No I2DAT action or 1
0
0
X
データバイトを送信する。ACK ビットを
受信する。
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 フラグをリセットする。
I2DAT 内のデータバイ Load data byte or 0
ト を 送 信 済 み。NOT
ACK を受信済み。
No I2DAT action or 1
0
0
X
データバイトを送信する。ACK ビットを
受信する。
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 フラグをリセットする。
SLA+R/W またはデー No I2DAT action or 0
タバイトでアービト
レーションを失った。 No I2DAT action
1
0
0
X
I2C バスを解放する。アドレス指定されて
いないスレーブに切り替わる。
0
0
X
バスが解放されたときに START 状態を送
信する。
ユーザーマニュアル
F
R
R
0
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
A
D
D
0
UM10398_0
R
D
FT
FT
0x38
Next action taken by I2C hardware
A
A
0x30
R
R
0x28
D
D
0x20
FT
FT
FT
0x08
START 状 態 を 送 信 済 Load SLA+W; clear X
STA
み。
X
Repeated START 状 態 Load SLA+W or
を送信済み。
Load SLA+R; Clear X
STA
A
A
A
AA
0x18
R
R
R
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
0x10
D
D
D
Table 154. Master Transmitter mode
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
153
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
FT
FT
A
A
R
R
D
D
MT
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
successful
transmission
to a Slave
Receiver
W
A
DATA
A
P
A
SLA
R
S
FT
D
R
A
18H
08H
28H
next transfer
started with a
Repeated Start
condition
S
SLA
W
10H
Not
Acknowledge
received after
the Slave
address
A
P
R
20H
Not
Acknowledge
received after a
Data byte
A
P
to Master
receive
mode,
entry
= MR
30H
arbitration lost
in Slave
address or
Data byte
A OR A
other Master
continues
A OR A
38H
arbitration lost
and
addressed as
Slave
A
other Master
continues
38H
other Master
continues
68H 78H B0H
to corresponding
states in Slave mode
from Master to Slave
from Slave to Master
DATA
n
any number of data bytes and their associated Acknowledge bits
this number (contained in I2STA) corresponds to a defined state of the
I2C bus
Fig 26. Format and states in the Master Transmitter mode
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
154
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
マスタレシーバモードでは、多数のデータバイトをスレーブトランスミッタから受信しま
す(Figure 27 を参照)。転送は、マスタトランスミッタモードと同様に初期化されます。
START 状態が送信されると、割り込みサービスルーチンは、7 ビットのスレーブアドレス
およびデータ方向ビット(SLA+R)とともに I2DAT をロードする必要があります。このと
き I2CON 内の SI ビットをクリアしなければ、シリアル転送は続行できません。
F
FT
FT
A
A
R
R
D
D
D
10.11.2 マスタレシーバモード
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
D
R
A
スレーブアドレスとデータ方向ビットが送信済みで、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
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
AA
0x08
0x10
0x38
0x40
0x48
START 状 態 を 送 信 済 Load SLA+R
み。
Repeated START 状 態 Load SLA+R or
を送信済み。
Load SLA+W
X
0
0
X
SLA+R を送信する。ACK ビットを受信す
る。
X
0
0
X
同上。
X
0
0
X
SLA+W を送信する。I2C ブロックが
MST/TRX モードに切り替わる。
NOT ACKビットでアー No I2DAT action or 0
ビトレーションを
失った。
No I2DAT action
1
0
0
X
I2C バスを解放する。I2C ブロックがスレー
ブモードに切り替わる。
0
0
X
バスが空き状態になったときに START 状
態を送信する。
SLA+R を 送 信 済 み。 No I2DAT action or 0
ACK を受信済み。
No I2DAT action
0
0
0
0
データバイトを受信する。NOT ACK ビッ
トを返す。
0
0
1
データバイトを受信する。ACK ビットを
返す。
SLA+R を 送 信 済 み。 No I2DAT action or 1
NOT ACK を受信済み。 No I2DAT action or 0
0
0
X
Repeated START 状態を送信する。
1
0
X
STOP 状態を送信する。STO フラグをリ
セットする。
1
1
0
X
後に START 状態が続く STOP 状態を送信
する。STO フラグをリセットする。
0
0
0
0
データバイトを受信する。NOT ACK ビッ
トを返す。
0
0
0
1
データバイトを受信する。ACK ビットを
返す。
1
0
0
X
Repeated START 状態を送信する。
0
1
0
X
STOP 状態を送信する。STO フラグをリ
セットする。
1
1
0
X
後に START 状態が続く STOP 状態を送信
する。STO フラグをリセットする。
No I2DAT action
0x50
デ ー タ バ イ ト を 受 信 Read data byte or
済み。ACK を返送済み。
Read data byte
0x58
Next action taken by I2C hardware
デ ー タ バ イ ト を 受 信 Read data byte or
済み。NOT ACK を返送 Read data byte or
済み。
Read data byte
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
155
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
MR
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
FT
FT
A
A
R
R
D
D
D
successful
transmission to
a Slave
transmitter
R
A
DATA
A
DATA
A
P
A
SLA
R
S
FT
D
R
40H
50H
A
08H
58H
next transfer
started with a
Repeated Start
condition
S
SLA
R
10H
Not Acknowledge
received after the
Slave address
A
P
W
48H
to Master
transmit
mode, entry
= MT
arbitration lost in
Slave address or
Acknowledge bit
other Master
continues
A OR A
A
38H
arbitration lost
and addressed
as Slave
A
other Master
continues
38H
other Master
continues
68H 78H B0H
to corresponding
states in Slave
mode
from Master to Slave
from Slave to Master
DATA
n
A
any number of data bytes and their associated
Acknowledge bits
this number (contained in I2STA) corresponds to a defined state of
the I2C bus
Fig 27. Format and states in the Master Receiver mode
10.11.3 スレーブレシーバモード
スレーブレシーバモードでは、多数のデータバイトをマスタトランスミッタから受信しま
す(Figure 28 を参照)。スレーブレシーバモードを開始するには、以下のように I2ADR と
I2CON をロードする必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
156
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
F
FT
0
A
A
R
R
D
D
1
FT
2
A
D
R
D
GC
FT
FT
A
A
R
own slave 7-bit address
3
R
Symbol
4
D
5
FT
FT
FT
6
A
A
A
7
R
R
R
Bit
D
D
D
Table 156. I2C0ADR and I2C1ADR usage in Slave Receiver mode
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
上位 7 ビットは、マスタによってアドレス指定されたときに I2C ブロックが応答する先の
アドレスです。LSB(GC)を設定している場合、I2C ブロックはゼネラルコールアドレス
(0x00)に応答します。それ以外の場合、ゼネラルコールアドレスは無視されます。
R
A
FT
6
5
4
3
2
1
0
Symbol
-
I2EN
STA
STO
SI
AA
-
-
Value
-
1
0
0
0
1
-
-
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 158. Slave Receiver mode
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
AA
0x60
0x68
Next action taken by I2C hardware
自身の SLA+W を受信 No I2DAT action or X
済み。ACK を返送済み。 No I2DAT action
X
0
0
0
データバイトを受信し、NOT ACK を返す。
0
0
1
データバイトを受信し、ACK を返す。
マ ス タ の と き に No I2DAT action or X
SLA+R/W でアービト No I2DAT action
X
レーションを失った。
自身の SLA+W を受信
済み、ACK を返送済み。
0
0
0
データバイトを受信し、NOT ACK を返す。
0
0
1
データバイトを受信し、ACK を返す。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
157
A
7
R
Bit
D
Table 157. I2C0CONSET and I2C1CONSET used to initialize Slave Receiver mode
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
F
R
FT
FT
A
A
R
D
D
R
0
0
データバイトを受信し、NOT ACK を返す。
0
0
1
データバイトを受信し、ACK を返す。
マ ス タ の と き に No I2DAT action or X
SLA+R/W でアービト No I2DAT action
X
レーションを失った。
ゼネラルコールアド
レスを受信済み、ACK
を返送済み。
0
0
0
データバイトを受信し、NOT ACK を返す。
0
0
1
データバイトを受信し、ACK を返す。
以前は自身の SLV アド Read data byte or
レ ス で ア ド レ ス 指 定 Read data byte
されていた。DATA を
受信済み。ACK を返送
済み。
X
0
0
0
データバイトを受信し、NOT ACK を返す。
X
0
0
1
データバイトを受信し、ACK を返す。
以前は自身の SLA でア Read data byte or
ドレス指定されてい
た。DATA バイトを受
信済み。NOT ACK を返 Read data byte or
送済み。
0
0
0
0
アドレス指定されていない SLV モードに
切り替わる。自身の SLA またはゼネラル
コールアドレスを認識しない。
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 状態を送信する。
X
0
0
0
データバイトを受信し、NOT ACK を返す。
X
0
0
1
データバイトを受信し、ACK を返す。
A
0
FT
D
R
A
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
A
D
D
ゼ ネ ラ ル コ ー ル ア ド No I2DAT action or X
レス(0x00)を受信済 No I2DAT action
X
み。ACK を返送済み。
以 前 は ゼ ネ ラ ル コ ー Read data byte or
ル で ア ド レ ス 指 定 さ Read data byte
れていた。DATA バイ
トを受信済み。ACK を
返送済み。
R
R
FT
FT
A
Next action taken by I2C hardware
A
R
R
D
D
D
0x90
FT
FT
FT
0x70
0x88
A
A
A
AA
0x80
R
R
R
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
0x78
D
D
D
Table 158. Slave Receiver mode (続き)
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
Rev. 00.15 — 2010 / 9 / 28
158
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
D
FT
FT
A
A
R
R
D
R
0
0
アドレス指定されていない SLV モードに
切り替わる。自身の SLA またはゼネラル
コールアドレスを認識しない。
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 状態を送信する。
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 状態を送信する。
R
A
159
D
© NXP B.V. 2010. All rights reserved.
FT
ユーザーマニュアル
A
0
Rev. 00.15 — 2010 / 9 / 28
D
D
0
UM10398_0
F
FT
FT
以 前 は ゼ ネ ラ ル コ ー Read data byte or
ルでアドレス指定さ
れていた。DATA バイ
ト を 受 信 済 み。NOT Read data byte or
ACK を返送済み。
まだ SLV/REC または
SLV/TRX としてアドレ
ス指定されている間
に、STOP 状態または
Repeated START 状 態
を受信した。
A
A
A
Next action taken by I2C hardware
R
R
R
0x98
R
FT
D
D
AA
D
A
FT
FT
A
A
R
R
R
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
0xA0
D
D
D
Table 158. Slave Receiver mode (続き)
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
P OR S
FT
A0H
A
80H
R
P OR S
FT
A
A
DATA
R
A
F
D
D
DATA
A
FT
FT
A
R
A
A
W
D
R
R
SLA
R
A
D
D
S
D
R
FT
FT
A
A
R
R
D
D
D
D
D
reception of the own
Slave address and one
or more Data bytes all
are acknowledged
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
R
FT
80H
A
60H
D
R
A
last data byte
received is Not
acknowledged
88H
arbitration lost as
Master and addressed
as Slave
A
68H
reception of the
General Call address
and one or more Data
bytes
GENERAL CALL
A
DATA
70h
A
DATA
90h
last data byte is Not
acknowledged
A
P OR S
90h
A0H
A
P OR S
98h
arbitration lost as
Master and addressed
as Slave by General
Call
A
78h
from Master to Slave
from Slave to Master
DATA
n
A
any number of data bytes and their associated Acknowledge bits
this number (contained in I2STA) corresponds to a defined state of the 2I C
bus
Fig 28. Format and states in the Slave Receiver mode
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
160
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
スレーブトランスミッタモードでは、多数のデータバイトがマスタレシーバに送信されま
す(Figure 29 を参照)。データ転送は、スレーブレシーバモードと同様に初期化されます。
I2ADR と I2CON が初期化済みの場合、I2C ブロックがスレーブトランスミッタモードで動
作するために、I2C ブロックは自身のスレーブアドレスとその後に続くデータ方向ビット
「1」
(R)によってアドレス指定されるまで待機します。自身のスレーブアドレスと R ビッ
トを受信すると、シリアル割り込みフラグ(SI)が設定され、有効なステータスコードを
I2STAT から読み取ることができます。このステータスコードは、状態サービスルーチンへ
のベクタ化に使用されます。これらのステータスコードそれぞれに対して取るべき適切な
アクションの詳細を Table 159 に示します。I2C ブロックがマスタモードの間にアービト
レーションを失った場合にも、スレーブトランスミッタモードに切り替わることがありま
す(状態 0xB0 を参照)。
F
FT
FT
A
A
R
R
D
D
D
10.11.4 スレーブトランスミッタモード
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
AA
0xA8
自身の SLA+R を受信済 Load data byte or
み。ACK を返送済み。
X
0
0
0
最後のデータバイトを送信し、ACK ビッ
トを受信する。
X
0
0
1
データバイトを送信する。ACK を受信す
る。
マ ス タ の と き に Load data byte or
SLA+R/W でアービト
レーションを失った。 Load data byte
自身の SLA+R を受信済
み、ACK を返送済み。
X
0
0
0
最後のデータバイトを送信し、ACK ビッ
トを受信する。
X
0
0
1
データバイトを送信する。ACK ビットを
受信する。
I2DAT 内のデータバイ Load data byte or
トを送信済み。ACK を
受信済み。
Load data byte
X
0
0
0
最後のデータバイトを送信し、ACK ビッ
トを受信する。
X
0
0
1
データバイトを送信する。ACK ビットを
受信する。
Load data byte
0xB0
0xB8
Next action taken by I2C hardware
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
161
A
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
R
Table 159. Slave Transmitter mode
D
転送中に AA ビットがリセットされた場合、I2C ブロックは最後の転送バイトを送信し、
状態 0xC0 または 0xC8 に切り替わります。I2C ブロックはアドレス指定されていないス
レーブモードに切り替わり、転送を続行する場合はマスタレシーバを無視します。した
がって、マスタレシーバはシリアルデータとしてすべて 1 を受信します。AA のリセット
中、
I2C ブロックは自身のスレーブアドレスやゼネラルコールアドレスには応答しません。
ただし、I2C バスの監視は継続しており、アドレス認識は AA を設定することによってい
つでも再開できます。これは、AA ビットを使用して、I2C ブロックを一時的に I2C バスか
ら隔離できることを意味します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
D
FT
FT
A
A
R
R
D
R
0
アドレス指定されていない SLV モードに
切り替わる。自身の SLA またはゼネラル
コールアドレスを認識しない。
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 状態を送信する。
I2DAT 内の最後のデー No I2DAT action or 0
タバイトを送信済み
(AA = 0)。ACK を受信
済み。
No I2DAT action or 0
0
0
0
アドレス指定されていない SLV モードに
切り替わる。自身の SLA またはゼネラル
コールアドレスを認識しない。
0
0
1
アドレス指定されていない SLV モードに
切り替わる。自身の SLA を認識する。
I2ADR[0] = ロジック 1 の場合、ゼネラル
コールアドレスを認識する。
No I2DAT action or 1
0
0
0
アドレス指定されていない SLV モードに
切り替わる。自身の SLA またはゼネラル
コールアドレスを認識しない。バスが解
放されたときに START 状態を送信する。
No I2DAT action
0
0
01
アドレス指定されていない SLV モードに
切り替わる。自身の SLA を認識する。
I2ADR.0 = ロジック 1 の場合、ゼネラル
コールアドレスを認識する。バスが解放
されたときに START 状態を送信する。
R
A
162
D
© NXP B.V. 2010. All rights reserved.
FT
ユーザーマニュアル
A
0
Rev. 00.15 — 2010 / 9 / 28
D
D
0
UM10398_0
F
FT
FT
I2DAT 内のデータバイ No I2DAT action or 0
ト を 送 信 済 み。NOT
ACK を受信済み。
No I2DAT action or 0
1
A
A
A
Next action taken by I2C hardware
R
R
R
0xC0
R
FT
D
D
AA
D
A
FT
FT
A
A
R
R
R
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
0xC8
D
D
D
Table 159. Slave Transmitter mode
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
A
FT
R
R
DATA
A
P OR S
FT
A
FT
DATA
A
A
A
R
R
F
D
D
SLA
A
FT
FT
A
A
R
R
D
D
D
S
R
R
FT
FT
A
A
R
R
D
D
D
D
D
reception of the own
Slave address and
one or more Data
bytes all are
acknowledged
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
R
A
B8H
FT
A8H
C0H
D
R
A
arbitration lost as
Master and
addressed as Slave
A
B0H
last data byte
transmitted. Switched
to Not Addressed
Slave (AA bit in
I2CON = “0”)
A
ALL ONES
P OR S
C8H
from Master to Slave
from Slave to Master
DATA
n
A
any number of data bytes and their associated
Acknowledge bits
this number (contained in I2STA) corresponds to a defined state of
the I2C bus
Fig 29. Format and states in the Slave Transmitter mode
10.11.5 その他の状態
定義済みの I2C ハードウェア状態に対応しない I2STAT コードが 2 つあります(Table 160
を参照)。次にこれらについて説明します。
10.11.5.1 I2STAT = 0xF8
このステータスコードは、シリアル割り込みフラグ SI がまだ設定されていないため、利
用できる関連情報がないことを示します。これは他の状態の間で、I2C ブロックがシリア
ル転送に関わっていないときに発生します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
163
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
このステータスコードは、I2C シリアル転送中にバスエラーが発生したことを示します。
バスエラーは、START 状態または STOP 状態がフォーマットフレーム内の不正な位置で発
生したときに起こります。不正な位置の例としては、アドレスバイト、データバイト、ACK
ビットのシリアル転送中が挙げられます。バスエラーは、外部干渉が内部 I2C ブロック信
号を妨害しているときにも起こることがあります。バスエラーが発生するとSIが設定され
ます。バスエラーから回復するには、STO フラグを設定し、SI をクリアする必要がありま
す。これにより、I2C ブロックは「アドレス指定されていない」スレーブモード(定義済み
の状態)に切り替わり、STO フラグをクリアします(I2CON 内の他のビットはいっさい
影響を受けません)。SDAおよびSCLラインは解放されます(STOP状態は送信されません)。
F
FT
FT
A
A
R
R
D
D
D
10.11.5.2 I2STAT = 0x00
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
関 連 す る 状 態 情 報 が No I2DAT action
ない。SI = 0。
No I2CON action
0x00
不正な START 状態また No I2DAT action
は STOP 状態による、
MST または選択したス
レーブモード中のバ
ス エ ラ ー。状 態 0x00
は、干渉によって I2C
ブロックが未定義の
状態になったときに
も発生することがあ
ります。
0
1
0
AA
待機するか、現在の転送を続行する。
X
MST またはアドレス指定された SLV モー
ドのときは、内部ハードウェアのみが影
響を受けます。すべてのケースで、バスは
解放され、I2C ブロックはアドレス指定さ
れていない SLV モードに切り替わります。
STO はリセットされます。
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 を参照)。このような状況が発生するまでは、どちらのマ
スタも同じデータを送信していたので、いずれかのマスタによってアービトレーションが
失われることはありません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
164
A
0xF8
Next action taken by I2C hardware
R
Status
Status of the I2C-bus Application software response
Code
and hardware
To/From I2DAT
To I2CON
(I2CSTAT)
STA STO SI
D
Table 160. Miscellaneous States
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
I2C ハードウェアは、自身が Repeated START 状態を生成する前に I2C バス上で Repeated
START 状態を検出すると、バスを解放するため、割り込み要求は生成されません。もう 1
つのマスタが STOP 状態を生成することによってバスを解放した場合、I2C ブロックは通
常の START 状態(状態 0x08)を送信し、全シリアルデータ転送の再試行を開始すること
D
FT
FT
A
A
R
R
D
D
D
R
ができます。
A
FT
D
R
A
S
08H
SLA
W
A
DATA
18H
A
S
OTHER MASTER
CONTINUES
28H
other Master sends
repeated START earlier
P
S
SLA
08H
retry
Fig 30. Simultaneous Repeated START conditions from two masters
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 を参
照)
。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
165
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
FT
FT
A
A
R
R
D
D
time limit
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
STA flag
D
D
R
A
FT
D
STO flag
R
A
SDA line
SCL line
start
condition
Fig 31. Forced access to a busy I2C-bus
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 ペリフェラルを確実に同期させる必要があります。
STA flag
(2)
(1)
SDA line
(3)
(1)
SCL line
start
condition
(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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
166
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
バスエラーは、START 状態または STOP 状態がフォーマットフレーム内の不正な位置で検
出されたときに起こります。不正な位置の例としては、アドレスバイト、データビット、
ACK ビットのシリアル転送中が挙げられます。
F
FT
FT
A
A
R
R
D
D
D
10.11.6.5 バスエラー
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
• リセット後の 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 つを処理し
ます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
167
A
このセクションでは、各種の I2C 状態サービスルーチンによって実行される動作の例を示
します。具体的には以下が挙げられます。
R
10.11.7 I2C 状態サービスルーチン
D
ル転送に関わっているときに限り、バスエラーに対処します。バスエラーが検出される
と、I2C ブロックはアドレス指定されていないスレーブモードにただちに切り替わり、SDA
ラインと SCL ラインを解放し、割り込みフラグを設定して、0x00 のステータスレジスタ
をロードします。このステータスコードを使用すれば、アボートされたシリアル転送を再
試行するか、Table 160 に示すように単純にエラー状態から回復するかのいずれかを行う
状態サービスルーチンにベクタ化できます。
FT
I2C ハードウェアは、マスタまたはアドレス指定されたスレーブのいずれかとしてシリア
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
状態サービスの例は、26 の I2C 状態コードに対して実行すべき一般的なアクションを示
しています。4 つの I2C 動作モードのうちの 1 つ以上を使用しない場合、関連する状態サー
ビスについては、それらの状態が絶対発生しないように注意するのであれば省略してもか
まいません。
F
FT
FT
A
A
R
R
D
D
D
10.11.11 状態サービスをアプリケーションに適合させる
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
A
FT
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. 受信するメッセージの長さに合わせてマスタデータカウンタを初期化します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
168
A
10.12.1 初期化ルーチン
R
10.12 ソフトウェア例
D
アプリケーションでは、動作不能なバスや失われたサービスルーチンをトラップするため
に、I2C の動作中にある種のタイムアウトを実装することが望まれます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
A
F
FT
FT
A
A
R
R
R
D
FT
FT
A
A
R
R
D
D
D
R
I2C の状態とそれを処理するためにどの状態ルーチンを使用するかを判定します。
A
I2STA から I2C ステータスを読み取ります。
FT
D
1.
R
A
D
D
10.12.4 I2C 割り込みルーチン
D
R
FT
FT
A
A
R
R
D
D
D
6. 終了します。
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
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. マスタ受信モードデータバッファを設定します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
169
A
10.12.5 モード共通の状態
R
2. ステータス値を使用して、26 の可能な状態ルーチンのうちの 1 つに分岐します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
7. 終了します。
D
R
FT
FT
A
A
R
R
D
D
D
6. マスタデータカウンタを初期化します。
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
10.12.6 マスタトランスミッタの状態
R
A
FT
D
10.12.6.1 状態 : 0x18
R
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. 終了します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
170
A
前の状態は状態 8 または状態 10、スレーブアドレス + 書き込み送信済み、ACK 受信済み。
最初のデータバイトを送信し、ACK ビットを受信します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
スレーブアドレス + 書き込みまたはデータの間にアービトレーションを失いました。バス
を解放し、アドレス指定されていないスレーブモードに切り替わります。バスが再び空き
状態になったときに、新たに START 状態を送信します。
F
FT
FT
A
A
R
R
D
D
D
10.12.6.5 状態 : 0x38
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
FT
I2CONSET に 0x24 を書き込んで、STA ビットと AA ビットを設定します。
A
1.
D
R
2. I2CONCLR に 0x08 を書き込んで、SI フラグをクリアします。
A
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 状態を
送信します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
171
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
FT
FT
A
A
R
R
D
D
2. I2CONSET に 0x14 を書き込んで、STO ビットと AA ビットを設定します。
3. I2CONCLR に 0x08 を書き込んで、SI フラグをクリアします。
D
A
FT
FT
A
A
R
R
R
I2DAT からマスタ受信バッファへデータバイトを読み込みます。
D
D
D
1.
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
4. 終了します。
A
FT
D
R
10.12.8 スレーブレシーバの状態
A
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 ビットを設定します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
172
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
A
F
FT
FT
A
A
R
R
R
D
FT
FT
A
A
R
R
D
4. スレーブデータカウンタを初期化します。
R
A
D
D
3. スレーブ受信モードデータバッファを設定します。
D
R
FT
FT
A
A
R
R
D
D
D
2. I2CONCLR に 0x08 を書き込んで、SI フラグをクリアします。
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
R
5. 終了します。
A
FT
D
10.12.8.5 状態 : 0x80
R
A
以前は自身のスレーブアドレスでアドレス指定されていました。データを受信済み、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
以前は自身のスレーブアドレスでアドレス指定されていました。データを受信済み、NOT
ACK を返送済み。受信したデータは保存しません。アドレス指定されていないスレーブ
モードに切り替わります。
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 フラグをクリアします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
173
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
10.12.8.9 状態 : 0xA0
D
R
FT
FT
A
A
R
R
D
D
D
3. 終了します。
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
依然としてスレーブとしてアドレス指定されている間に、STOP 状態または Repeated
START 状態を受信しました。データは保存されません。アドレス指定されていないスレー
R
A
FT
D
ブモードに切り替わります。
R
A
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. スレーブ送信バッファのポインタをインクリメントします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
174
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
10.12.9.4 状態 : 0xC0
D
R
FT
FT
A
A
R
R
D
D
D
5. 終了します。
FT
FT
FT
FT
第 10 章:LPC111x/LPC11C1x I2C バスインターフェース
D
D
データを送信済み、NOT ACK を受信済み。アドレス指定されていないスレーブモードに切
り替わります。
R
A
FT
I2CONSET に 0x04 を書き込んで、AA ビットを設定します。
D
R
1.
A
2. I2CONCLR に 0x08 を書き込んで、SI フラグをクリアします。
3. 終了します。
10.12.9.5 状態 : 0xC8
最後のデータバイトを送信済み、ACK を受信済み。アドレス指定されていないスレーブ
モードに切り替わります。
1.
I2CONSET に 0x04 を書き込んで、AA ビットを設定します。
2. I2CONCLR に 0x08 を書き込んで、SI フラグをクリアします。
3. 終了します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
175
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
R
R
A
A
A
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
11.1 この章を読む前に
R
A
FT
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 つの流れだけが意味のある重要データを伝送してい
ることがよくあります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
176
A
11.2 基本構成
R
注意 : どちらの SPI ブロックも SSP のフル機能セットを備えており、すべてのレジスタ名
に SSP という接頭辞が付いています。
D
SPI ブロックは、LPC111x と LPC11C1x のすべての部品で同一です。第 2 の SPI ブロック
(SPI1)は LQFP48 および PLCC44 パッケージで提供されます。SPI1 は HVQFN33 パッケー
ジでは提供されません。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
F
D
FT
FT
A
A
R
R
D
11.5 ピンの説明
A
FT
FT
A
A
R
R
D
D
LPC111x/LPC11C1x は 2 つの SPI/ 同期シリアルポートコントローラを備えています。
D
D
R
Pin description
D
R
Type Interface pin
name/function
FT
A
Pin
name
A
Table 161. SPI pin descriptions
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)
MOSI0/1 I/O
MOSI
DX(M) SO(M)
DR(S) SI(S)
マスタインスレーブアウト。MISO 信号はスレーブ
か ら マ ス タ に シ リ ア ル デ ー タ を 転 送 し ま す。
SPI/SSP がスレーブの場合は、この信号によりシリ
アルデータを出力します。SPI/SSP がマスタの場合
は、クロックで同期をとりながら、この信号から転
送されるシリアルデータを取り入れます。SPI/SSP
がスレーブで、FS/SSEL によって選択されていない
場合、SPI/SSP はこの信号を駆動しません(信号を
ハイインピーダンス状態のままにします)。
マスタアウトスレーブイン。MOSI 信号はマスタか
ら ス レ ー ブ に シ リ ア ル デ ー タ を 転 送 し ま す。
SPI/SSP がマスタの場合は、この信号によりシリア
ルデータを出力します。SPI/SSP がスレーブの場合
は、クロックで同期をとりながら、この信号から転
送されるシリアルデータを取り入れます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
177
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
注意 : SCK0 機能は、3 つの異なるピン位置(HVQFN パッケージでは 2 つのピン位置)に
多重に割り当てられています。IOCON レジスタで SCK0 機能を選択すると同時に、
IOCON_LOC レジスタ(Section 6.4.2 を参照)を使用して、SCK0 機能に対する物理的なピ
ン位置を選択してください。SCK1 ピンは多重化されていません。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
11.6 クロックと電力の制御
R
A
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
ステータスレジスタ
0x0000
0003
SSP0CPSR
R/W
0x010
クロックプリスケールレジスタ
0
SSP0IMSC
R/W
0x014
割り込みマスクセット / クリアレジスタ
0
SSP0RIS
RO
0x018
原割り込みステータスレジスタ
0x0000
0008
SSP0MIS
RO
0x01C
マスク割り込みステータスレジスタ
0
SSP0ICR
WO
0x020
SSPICR 割り込みクリアレジスタ
NA
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
178
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
A
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
ステータスレジスタ
0x0000
0003
SSP1CPSR
R/W
0x010
クロックプリスケールレジスタ
0
SSP1IMSC
R/W
0x014
割り込みマスクセット / クリアレジスタ
0
SSP1RIS
RO
0x018
原割り込みステータスレジスタ
0x0000
0008
SSP1MIS
RO
0x01C
マスク割り込みステータスレジスタ
0
SSP1ICR
WO
0x020
SSPICR 割り込みクリアレジスタ
NA
FT
FT
A
A
R
R
D
D
Access
F
FT
FT
A
A
R
R
D
D
D
Name
R
A
FT
D
R
A
11.7.1 SPI/SSP 制御レジスタ 0
このレジスタは、SPI/SSP コントローラの基本動作を制御します
Table 164: SPI/SSP Control Register 0 (SSP0CR0 - address 0x4004 0000, SSP1CR0 - address
0x4005 8000) bit description
Bit
Symbol
3:0
DSS
Value
Description
Reset
Value
データサイズ選択。このフィールドは各フレームの転送ビッ 0000
ト数を制御します。値 0000-0010 は未サポートのため、使用
しないでください。
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 ビット転送
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
ユーザーマニュアル
R
R
FT
FT
A
A
R
R
D
D
D
Table 163. Register overview: SPI1 (base address 0x4005 8000)
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
179
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
R
Reset
Value
D
A
FRF
Description
FT
FT
A
5:4
Value
R
Symbol
D
Bit
D
FT
FT
A
A
R
R
D
D
Table 164: SPI/SSP Control Register 0 (SSP0CR0 - address 0x4004 0000, SSP1CR0 - address
0x4005 8000) bit description
10
Microwire
11
この組み合せは未サポートのため、使用しないでください。
D
R
A
クロック出力極性。このビットは SPI モードでのみ使用されま 0
す。
0
SPI コントローラはフレーム間のバスクロックをローに維持
します。
1
SPI コントローラはフレーム間のバスクロックをハイに維持
します。
クロック出力位相。このビットは SPI モードでのみ使用されま 0
す。
0
SPI コントローラはフレームの最初のクロック遷移でシリア
ルデータをキャプチャします(クロックラインのフレーム間
状態からの遷移)
1
SPI コントローラはフレームの 2 番目のクロック遷移でシリア
ルデータをキャプチャします(クロックラインのフレーム間
状態への遷移)
SCR
シリアルクロックレート。バス上のビット当たりのプリス 0x00
ケーラ出力クロック数から 1 を引いた値。CPSDVSR をプリス
ケール分周器、APB クロック(PCLK)をプリスケーラにクロッ
クを供給するクロックと仮定した場合、ビット周波数は式
PCLK / (CPSDVSR × [SCR+1]) で算出されます。
-
-
予約済み
11.7.2 SPI/SSP0 制御レジスタ 1
このレジスタは、SPI/SSP コントローラの特定の動作を制御します。
Table 165: SPI/SSP Control Register 1 (SSP0CR1 - address 0x4004 0004, SSP1CR1 - address
0x4005 8004) bit description
Bit
Symbol
0
LBM
1
Value
Description
Reset
Value
ループバックモード
0
0
通常動作時
1
シリアル入力は、シリアル入力ピン(MISO または MOSI)
からではなく、シリアル出力(MOSI または MISO)から取
得されます。
SSE
ユーザーマニュアル
0
SPI イネーブル
0
SPI コントローラはディスエーブル。
1
SPI コントローラはシリアルバス上で他のデバイスと通信
します。ソフトウェアでは、このビットを設定する前に、
他の SPI/SSP レジスタおよび割り込みコントローラレジス
タに適切な制御情報を書き込む必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
TI
FT
SPI
01
CPHA
31:16 -
A
15:8
R
7
00
CPOL
D
6
00
フレーム形式
180
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
Reset
Value
D
R
A
MS
Description
FT
FT
A
2
Value
R
Symbol
D
Bit
D
FT
FT
A
A
R
R
D
D
Table 165: SPI/SSP Control Register 1 (SSP0CR1 - address 0x4004 0004, SSP1CR1 - address
0x4005 8004) bit description
31:4
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った値
は未定義です。
A
スレーブ出力ディスエーブル。このビットはスレーブモー 0
ド(MS = 1)の場合にのみ関係します。1 の場合は、SPI コ
ントローラによる送信データライン(MISO)の駆動がブ
ロックされます。
R
SOD
D
3
11.7.3 SPI/SSP データレジスタ
ソフトウェアを使用して、このレジスタに送信するデータを書き込んだり、受信済みの
データを読み取ることができます。
Table 166: SPI/SSP Data Register (SSP0DR - address 0x4004 0008, SSP1DR - address
0x4005 8008) bit description
Bit
Symbol
Description
15:0
DATA
書き込み : ステータスレジスタの TNF ビットが 1 の場合(Tx FIFO 0x0000
が満杯ではない場合)は、ソフトウェアによって随時、以降の
フレームで送信するデータをこのレジスタに書き込むことがで
きます。Tx FIFO がすでに空で、SPI コントローラがバス上でビ
ジーではない場合は、ただちにデータ送信が開始されます。それ
以外の場合は、以前からのデータがすべて送信(および受信)さ
れるとただちに、このレジスタに書き込んだデータが送信され
ます。データ長が 16 ビット未満の場合は、このレジスタに右詰
めでデータを書き込む必要があります。
Reset Value
読み取り : ステータスレジスタの RNE ビットが 1 の場合(Rx FIFO
が空ではない場合)は、ソフトウェアによって随時、このレジ
スタからデータを読み取ることができます。ソフトウェアに
よってこのレジスタが読み取られると、SPI コントローラは Rx
FIFO 内の最も古いフレームのデータを返します。データ長が 16
ビット未満の場合、このフィールドのデータは右詰めになり、上
位ビットには 0 が書き込まれます。
31:16 -
予約済み
-
11.7.4 SPI/SSP ステータスレジスタ
この読み取り専用レジスタは、SPI コントローラの現在のステータスを示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
SPI コントローラはバス上でスレーブとして動作して、
MISO ラインを駆動し、SCLK、MOSI、SSEL の各ラインを受
信します。
FT
1
A
SPI コントローラはバス上でマスタとして動作して、SCLK、
MOSI、SSEL の各ラインを駆動し、MISO ラインを受信しま
す。
R
0
D
マスタ / スレーブモード。このビットは SSE ビットが 0 の 0
場合にのみ書き込むことができます。
181
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
TNF
送信 FIFO が満杯ではない。Tx FIFO が満杯の場合、このビット 1
は 0(満杯でない場合は 1)。
2
RNE
受信 FIFO が空ではない。受信 FIFO が空の場合、このビットは 0 0
(空でない場合は 1)。
3
RFF
受信 FIFO が満杯。受信 FIFO が満杯の場合、このビットは 1(満 0
杯でない場合は 0)。
4
BSY
ビジー。SPI コントローラがアイドル状態の場合、このビットは 0
0。フレームを送信 / 受信中か、Tx FIFO が空でない場合は 1。
31:5
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書 NA
き込まないでください。予約ビットから読み取った値は未定義
です。
R
1
FT
FT
A
A
R
送信 FIFO が空。送信 FIFO が空の場合、このビットは 1(空でな 1
い場合は 0)。
D
D
Reset Value
F
FT
FT
Description
TFE
A
A
A
Symbol
0
R
R
R
Bit
D
D
D
Table 167: SPI/SSP Status Register (SSP0SR - address 0x4004 000C, SSP1SR - address
0x4005 800C) bit description
D
D
R
A
FT
D
R
A
11.7.5 SPI/SSP クロックプリスケールレジスタ
このレジスタは、プリスケーラがプリスケーラクロックを得るために SPI ペリフェラルク
ロック SPI_PCLK を分周する際の係数を制御します。このプリスケーラクロックは、ビッ
トクロックを決定するために、さらに SSPCR0 レジスタの SCR 係数によって分周されます。
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
31:8
-
2 ∼ 254 の偶数値。この値によって SPI_PCLK を分周して、プ 0
リスケーラ出力クロックを得ます。ビット 0 は常に 0 と読み取
られます。
予約済み
重要 : SSPnCPSR 値は適切に初期化してください。初期化が不適切な場合、SPI コントロー
ラは正確にデータを伝送できません。
スレーブモードの場合、マスタが供給する SPI クロックレートは Section 3.4.15 で選択さ
れた SPI ペリフェラルクロックの 1/12 以下でなければなりません。SSPnCPSR レジスタの
値は関係しません。
マスタモードの場合、CPSDVSRmin = 2 以上(偶数のみ)。
11.7.6 SPI/SSP 割り込みマスクセット / クリアレジスタ
このレジスタは、SPI コントローラの 4 つの割り込み条件それぞれについてイネーブルに
するかどうかを制御します。留意点として、ARM の場合、
「マスクされている」という用
語は従来のコンピュータ用語とは逆の意味で使用されています(従来のコンピュータ用語
では、「マスクされている」とは「ディスエーブルであること」を意味します)。ARM で
は、「イネーブルであること」を示す場合に「マスクされている」と表現します。混乱を
避けるために、ここでは「マスクされている」という用語を使用しないことにします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
182
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
0
RORIM
受信オーバーランが発生した場合(Rx FIFO が満杯でさらにフレーム 0
を完全に受信した場合)に割り込みをイネーブルにするには、ソフト
ウェアによってこのビットを設定する必要があります。ARM の仕様
では、これが発生した場合、前回のフレームデータが新しいフレーム
データによって上書きされます。
1
RTIM
受信タイムアウト条件が発生した場合に割り込みをイネーブルにす 0
るには、ソフトウェアによってこのビットを設定する必要がありま
す。受信タイムアウトは Rx FIFO が空ではなく、「タイムアウト時間」
中に読み取りがなかった場合に発生します。タイムアウト時間はマ
スタモードとスレーブモードで同一で、SSP ビットレートによって決
定されます。PCLK / (CPSDVSR × [SCR+1]) のとき、32 ビットです。
2
RXIM
Rx FIFO が半分以上満杯になった場合に割り込みをイネーブルにする 0
には、ソフトウェアによってこのビットを設定する必要があります。
3
TXIM
Tx FIFO が半分以上空になった場合に割り込みをイネーブルにするに 0
は、ソフトウェアによってこのビットを設定する必要があります。
31:4
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込ま NA
ないでください。予約ビットから読み取った値は未定義です。
F
Reset
Value
R
Description
FT
FT
A
A
R
Symbol
D
D
Bit
A
FT
FT
A
A
R
R
D
D
D
Table 169: SPI/SSP Interrupt Mask Set/Clear register (SSP0IMSC - address 0x4004 0014,
SSP1IMSC - address 0x4005 8014) bit description
R
A
FT
D
R
A
この読み取り専用レジスタでは、SSPIMSC レジスタでイネーブルになっているか否かに
かかわらず、アサートされた割り込み条件に対して 1 が設定されます。
Table 170: SPI/SSP Raw Interrupt Status register (SSP0RIS - address 0x4004 0018, SSP1RIS
- address 0x4005 8018) bit description
Bit
Symbol
Description
0
RORRIS
1
RTRIS
2
RXRIS
3
TXRIS
Rx FIFO が満杯時にさらにフレームを完全に受信した場合、こ 0
のビットは 1 に設定されます。ARM の仕様では、これが発生
した場合、前回のフレームデータが新しいフレームデータに
よって上書きされます。
Rx FIFO が空ではなく、
「タイムアウト時間」中に読み取りがな 0
かった場合、このビットは 1 に設定されます。タイムアウト時
間はマスタモードとスレーブモードで同一で、SSP ビットレー
トによって決定されます。PCLK / (CPSDVSR × [SCR+1]) のとき、
32 ビットです。
Rx FIFO が半分以上満杯の場合、このビットは 1 に設定されま 0
す。
Tx FIFO が半分以上空の場合、このビットは 1 に設定されます。 1
31:4
-
ユーザーマニュアル
Reset Value
予約済み。ユーザーソフトウェアによって予約ビットに 1 を NA
書き込まないでください。予約ビットから読み取った値は未
定義です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
11.7.7 SPI/SSP 原割り込みステータスレジスタ
183
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
この読み取り専用レジスタでは、SSPIMSC レジスタでイネーブルになっている、アサー
トされた割り込み条件に対して 1 が設定されます。SPI 割り込みが発生すると、割り込み
サービスルーチンによってこのレジスタが読み取られ、割り込みの原因が特定されます。
F
FT
FT
A
A
R
R
D
D
D
11.7.8 SPI/SSP マスク割り込みステータスレジスタ
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
D
R
A
FT
Description
1
RTMIS
2
RXMIS
3
TXMIS
31:4
-
Rx FIFO が満杯時にさらにフレームを完全に受信した場合、こ 0
のビットは 1 に設定され、割り込みがイネーブルになります。
Rx FIFO が空ではなく、
「タイムアウト時間」中に読み取りがな 0
かった場合、このビットは 1 に設定され、割り込みがイネー
ブルになります。タイムアウト時間はマスタモードとスレー
ブモードで同一で、SSP ビットレートによって決定されます。
PCLK / (CPSDVSR × [SCR+1]) のとき、32 ビットです。
Rx FIFO が半分以上満杯の場合、このビットは 1 に設定され、 0
割り込みがイネーブルになります。
Tx FIFO が半分以上空の場合、このビットは 1 に設定され、割 0
り込みがイネーブルになります。
予約済み。ユーザーソフトウェアによって予約ビットに 1 を NA
書き込まないでください。予約ビットから読み取った値は未
定義です。
A
Symbol
RORMIS
R
Bit
0
D
Table 171: SPI/SSP Masked Interrupt Status register (SSP0MIS - address 0x4004 001C,
SSP1MIS - address 0x4005 801C) bit description
Reset Value
11.7.9 SPI/SSP 割り込みクリアレジスタ
ソフトウェアによってこの書き込み専用レジスタに 1 を(1 つまたは複数)書き込むこと
により、SPI コントローラの対応する割り込み条件をクリアできます。留意点として、他
の 2 つの割り込み条件は、適切な FIFO を書き込むか読み取ることによりクリアすること
も、SSPIMSC レジスタの対応ビットをクリアしてディスエーブルにすることもできます。
Table 172: SPI/SSP interrupt Clear Register (SSP0ICR - address 0x4004 0020, SSP1ICR address 0x4005 8020) bit description
Bit
Symbol
Description
0
RORIC
このビットに 1 を書き込むと、
「RxFIFO が満杯時にフレームを NA
受信した」ことによる割り込みをクリアできます。
1
RTIC
このビットに 1 を書き込むと、「Rx FIFO が空ではなく、タイ NA
ムアウト時間中に読み取りがなかった」ことによる割り込みを
クリアできます。タイムアウト時間はマスタモードとスレー
ブモードで同一で、SSP ビットレートによって決定されます。
PCLK / (CPSDVSR × [SCR+1]) のとき、32 ビットです。
31:2
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を NA
書き込まないでください。予約ビットから読み取った値は未
定義です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset Value
Rev. 00.15 — 2010 / 9 / 28
184
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
11.8.1 Texas Instruments 同期シリアルフレーム形式
R
R
FT
FT
A
A
R
R
D
D
D
11.8 機能説明
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
D
R
Figure 33 は、SPI モジュールがサポートしている、4 線式 Texas Instruments 同期シリア
A
FT
ルフレーム形式を示しています。
D
R
A
CLK
FS
DX/DR
MSB
LSB
4 to 16 bits
a. Single frame transfer
CLK
FS
DX/DR
MSB
LSB
MSB
4 to 16 bits
LSB
4 to 16 bits
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 は強制的に 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 信号の非アクティブ状態および位相をプログラムできることです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
185
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
CPOL クロック極性制御ビットが LOW の場合は、SCK ピンの値が LOW(定常状態)にな
ります。CPOL クロック極性制御ビットが HIGH の場合は、データ転送時を除き、CLK ピ
ンの値が HIGH(定常状態)に設定されます。
F
FT
FT
A
A
R
R
D
D
D
11.8.2.1 クロック極性(CPOL)とクロック位相(CPHA)の制御
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
D
R
A
SCK
SSEL
MOSI
MISO
MSB
LSB
MSB
LSB
Q
4 to 16 bits
a. Single transfer with CPOL=0 and CPHA=0
SCK
SSEL
MOSI
MISO
MSB
LSB
MSB
LSB
MSB
Q
LSB
MSB
LSB
Q
4 to 16 bits
4 to 16 bits
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)
この構成では、アイドル周期中は以下のようになります。
• CLK 信号が強制的に LOW に設定されます。
• SSEL が強制的に HIGH に設定されます。
• MOSI/MISO 送信パッドがハイインピーダンス状態になります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
186
A
Figure 34 は、CPOL = 0、CPHA = 0 とした場合の SPI 形式について、シングル転送および
連続転送の信号シーケンスを示しています。
R
11.8.2.2 SPI 形式(CPOL=0、CPHA=0 の場合)
D
を変更させます。この変更は、先頭ビット(最初のデータキャプチャエッジの前のクロッ
ク遷移を許可した場合に送信される先頭ビット、または許可しない場合に送信される先頭
ビット)に最も大きく影響します。CPHA 位相制御ビットが LOW の場合は、最初のクロッ
クエッジ遷移でデータがキャプチャされます。CPHA クロック位相制御ビットが HIGH の
場合は、2 番目のクロックエッジ遷移でデータがキャプチャされます。
FT
CPHA 制御ビットは、データをキャプチャするクロックエッジを選択して、その定常状態
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
イネーブルになります。
D
FT
FT
A
A
R
R
D
D
SPI/SSP がイネーブルになっており、送信 FIFO 内に有効なデータが存在している場合は、
SSEL マスタ信号を LOW にすることによって送信の開始が通知されます。これにより、マ
スタの MISO 入力ライン上でスレーブデータがイネーブルになります。マスタの MOSI も
D
D
R
A
FT
ただし、連続転送の場合は、各データワード転送の合間に、SSEL 信号を HIGH にパルス
する必要があります。その理由は、スレーブ選択ピンがそのシリアルペリフェラルレジス
タにデータをフリーズして、CPHA ビットが論理 0 の場合には変更を認めないからです。
したがって、シリアルペリフェラルデータの書き込みをイネーブルにするために、マスタ
デバイスは、各データ転送の合間にスレーブデバイスの SSEL ピンを HIGH にする必要が
あります。連続転送が完了すると、最終ビットがキャプチャされてから 1SCK 周期後に、
SSEL ピンはアイドル状態に戻ります。
11.8.2.3 SPI 形式(CPOL=0、CPHA=1 の場合)
Figure 35 は、CPOL = 0、CPHA = 1 とした場合の SPI 形式について、転送信号シーケンス
を示しています。この図は、シングル転送と連続転送の両方に該当します。
SCK
SSEL
MOSI
MISO
Q
MSB
LSB
MSB
LSB
Q
4 to 16 bits
Fig 35. SPI frame format with CPOL=0 and CPHA=1
この構成では、アイドル周期中は以下のようになります。
• CLK 信号が強制的に LOW に設定されます。
• SSEL が強制的に HIGH に設定されます。
• MOSI/MISO 送信パッドがハイインピーダンス状態になります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
187
A
シングルワード転送の場合、データワードの全ビットの転送が完了し、最終ビットがキャ
プチャされてから 1SCK 周期後に、SSEL ラインが HIGH(アイドル状態)に戻ります。
R
データは SCK 信号の立ち上がりエッジでキャプチャされ、立ち下がりエッジで伝搬され
ます。
D
1/2SCK 周期後、有効なマスタデータが MOSI ピンに転送されます。以上でマスタデータと
スレーブデータの両方が設定され、さらに 1/2SCK 周期後、SCK マスタクロックピンが
HIGH になります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
SPI/SSP がイネーブルになっており、送信 FIFO 内に有効なデータが存在している場合は、
SSEL マスタ信号を LOW にすることによって送信の開始が通知されます。マスタの MOSI
ピンもイネーブルになります。さらに 1/2SCK 周期後、妥当なマスタデータとスレーブデー
D
FT
FT
A
A
R
R
D
タがそれぞれの転送ラインでイネーブルになります。同時に、立ち上がりエッジの遷移に
伴い SCK がイネーブルになります。
D
D
R
A
FT
11.8.2.4 SPI 形式(CPOL = 1、CPHA = 0 の場合)
Figure 36 は、CPOL=1、CPHA=0 とした場合の SPI 形式について、シングル転送および連
続転送の信号シーケンスを示しています。
SCK
SSEL
MOSI
MISO
MSB
LSB
MSB
LSB
Q
4 to 16 bits
a. Single transfer with CPOL=1 and CPHA=0
SCK
SSEL
MOSI
MISO
MSB
LSB
MSB
LSB
MSB
Q
LSB
MSB
LSB
Q
4 to 16 bits
4 to 16 bits
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)
この構成では、アイドル周期中は以下のようになります。
• CLK 信号が強制的に HIGH に設定されます。
• SSEL が強制的に HIGH に設定されます。
• MOSI/MISO 送信パッドがハイインピーダンス状態になります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
188
A
連続転送の場合は、連続するデータワード転送の合間に SSEL ピンが LOW にホールドさ
れ、シングルワード転送と同様に終了します。
R
シングルワード転送の場合、全ビットの転送が完了し、最終ビットがキャプチャされてか
ら 1SCK 周期後に、SSEL ラインが HIGH(アイドル状態)に戻ります。
D
データは SCK 信号の立ち下がりエッジでキャプチャされ、立ち上がりエッジで伝搬され
ます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
ネーブルになります。
D
FT
FT
A
A
R
R
D
D
SPI/SSP がイネーブルになっており、送信 FIFO 内に有効なデータが存在している場合は、
SSEL マスタ信号を LOW にすることによって送信の開始が通知されます。これにより、ス
レーブデータがただちにマスタの MISO ラインに転送されます。マスタの MOSI ピンもイ
D
D
R
A
FT
ただし、連続転送の場合は、各データワード転送の合間に、SSEL 信号を HIGH にパルス
する必要があります。その理由は、スレーブ選択ピンがそのシリアルペリフェラルレジス
タにデータをフリーズして、CPHA ビットが論理 0 の場合には変更を認めないからです。
したがって、シリアルペリフェラルデータの書き込みをイネーブルにするために、マスタ
デバイスは、各データ転送の合間にスレーブデバイスの SSEL ピンを HIGH にする必要が
あります。連続転送が完了すると、最終ビットがキャプチャされてから 1SCK 周期後に、
SSEL ピンはアイドル状態に戻ります。
11.8.2.5 SPI 形式(CPOL = 1、CPHA = 1 の場合)
Figure 37 は、CPOL = 1、CPHA = 1 とした場合の SPI 形式について、転送信号シーケンス
を示しています。この図は、シングル転送と連続転送の両方に該当します。
SCK
SSEL
MOSI
MISO
Q
MSB
LSB
MSB
LSB
Q
4 to 16 bits
Fig 37. SPI Frame Format with CPOL = 1 and CPHA = 1
この構成では、アイドル周期中は以下のようになります。
• CLK 信号が強制的に HIGH に設定されます。
• SSEL が強制的に HIGH に設定されます。
• MOSI/MISO 送信パッドがハイインピーダンス状態になります。
SPI/SSP がイネーブルになっており、送信 FIFO 内に有効なデータが存在している場合は、
SSEL マスタ信号を LOW にすることによって送信の開始が通知されます。マスタの MOSI
もイネーブルになります。さらに 1/2SCK 周期後、マスタデータとスレーブデータがそれ
ぞれの転送ラインでイネーブルになります。同時に、立ち下がりエッジの遷移に伴い SCK
がイネーブルになります。データは SCK 信号の立ち上がりエッジでキャプチャされ、立ち
下がりエッジで伝搬されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
189
A
シングルワード転送の場合、データワードの全ビットの転送が完了し、最終ビットがキャ
プチャされてから 1SCK 周期後に、SSEL ラインが HIGH(アイドル状態)に戻ります。
R
ち上がりエッジで伝搬されます。
D
1/2 周期後、有効なマスタデータが MOSI ラインに転送されます。以上でマスタデータと
スレーブデータの両方が設定され、さらに 1/2SCK 周期後、SCK マスタクロックピンが
LOW になります。つまり、データは SCK 信号の立ち下がりエッジでキャプチャされ、立
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
シングルワード転送の場合、全ビットの転送が完了し、最終ビットがキャプチャされてか
ら 1SCK 周期後に、SSEL ラインが HIGH(アイドル状態)に戻ります。連続転送の場合、
SSEL ピンは、最後のワードの最終ビットがキャプチャされるまで LOW(アクティブ状態)
に留まり、その後、前述のアイドル状態に戻ります。通常、連続転送の場合は、連続する
データワード転送の合間に SSEL ピンが LOW にホールドされ、シングルワード転送と同
様に終了します。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
11.8.3 Semiconductor Microwire フレーム形式
Figure 38 はシングルフレームに対する Microwire フレーム形式を示し、Figure 39 は連続
フレーム転送時の Microwire フレーム形式を示しています。
SK
CS
SO
MSB
LSB
8-bit control
SI
0 MSB
LSB
4 to 16 bits
of output data
Fig 38. Microwire frame format (single transfer)
SK
CS
SO
LSB
MSB
LSB
8-bit control
SI
0 MSB
LSB
4 to 16 bits
of output data
MSB
LSB
4 to 16 bits
of output data
Fig 39. Microwire frame format (continuos transfers)
Microwire 形式は SPI 形式に非常に似ていますが、マスタスレーブメッセージ伝搬方式を
使用して、全二重ではなく半二重で伝送します。各シリアル伝送は、SPI/SSP からオフチッ
プスレーブデバイスに送信される 8 ビットの制御ワードから始まります。この送信中、
SPI/SSP は入力データを受信しません。8 ビット制御メッセージが送信されると、オフチッ
プスレーブはそれをデコードし、メッセージの最終ビットが送信された後に 1 シリアル
クロック待機し、要求されたデータを返します。返されるデータは 4 ∼ 16 ビット長で、
フレーム全体の長さは 13 ∼ 25 ビットになります。
この構成では、アイドル周期中は以下のようになります。
• SK 信号が強制的に LOW に設定されます。
• CS が強制的に HIGH に設定されます。
• 送信データライン SO が恣意的に LOW に設定されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
190
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 11 章:LPC111x/LPC11C1x SSP 機能搭載 SPI0/1
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
伝送は送信 FIFO に制御バイトを書き込むことによってトリガされます。CS の立ち下がり
エッジによって、送信 FIFO の最下位エントリに格納されている値が送信ロジックのシリ
アルシフトレジスタに転送され、8 ビット制御フレームの MSB が SO ピンにシフトアウト
されます。フレームの伝送中、CS は LOW に留まります。また、この伝送中、SI ピンはト
ライステートに留まります。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
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 周期を確保する必要があります。
t HOLD= tSK
tSETUP=2*tSK
SK
CS
SI
Fig 40. Microwire frame format setup and hold details
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
191
A
連続転送の場合、データ伝送の開始と終了はシングル転送と同様に行われます。ただし、
CS ラインは継続的にアサート(LOW にホールド)され、データの伝送が連続的に発生し
ます。現行フレームから受信したデータの LSB の直後に、次のフレームの制御バイトが続
きます。受信された各値は、そのフレームの LSB が SPI/SPP にラッチされた後、SK の立ち
下がりエッジで受信シフタから転送されます。
R
注記 : オフチップスレーブデバイスは、受信シフタによって LSB がラッチされた後に SK
の立ち下がりエッジで、または CS ピンが HIGH になったときに、受信ラインをトライス
テートにすることができます。
D
オフチップシリアルスレーブデバイスは、各 SK の立ち上がりエッジでシリアルシフタに
各制御ビットをラッチします。スレーブデバイスは最終ビットをラッチした後、制御バイ
トを 1 クロック待機状態の間にデコードし、データを返送することによって SPI/SSP に応
答します。各ビットは、SK の立ち下がりエッジで SI ラインに押し出されます。一方、
SPI/lSSP は SK の立ち上がりエッジで各ビットをラッチします。シングル転送の場合は、フ
レームの最後で最終ビットが受信シリアルシフタにラッチされてから 1 クロック周期後
に、CS 信号が HIGH になります。これによってデータが受信 FIFO に転送されます。
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
R
A
A
A
第 12 章:LPC11C1x C_CAN
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
12.1 この章を読む前に
R
A
FT
D
C_CAN ブロックは、LPC11C12 および LPC11C14 部品のみで利用可能です。
R
A
12.2 基本構成
C_CAN は以下のレジスタを使用して設定します。
1.
電力 : SYSAHBCLKCTRL レジスタで、ビット 17(Table 19)を設定します。
2. クロック : C_CAN ブロックへのペリフェラルクロックを正確に保つために、シス
テムオシレータをメインクロック(Table 16)として、またはシステム PLL(Table
14)への入力として選択します。100 kbit/s を超える C_CAN ボーレートが必要な
場合は、IRC を選択しないでください。
3. リセット : C_CAN ブロックにアクセスする前に、必ず PRESETCTRL レジスタ(Table
7)の 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 インターフェースで構成されています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
192
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
CAN ネットワークで通信するために、個別のメッセージオブジェクトが設定されます。
メッセージオブジェクトおよび受信メッセージの受信フィルタリング用 IDマスクは、メッ
セージ RAM に格納されます。
D
FT
FT
A
A
R
R
D
D
D
メッセージ処理に関連する全機能がメッセージハンドラに実装されています。それらの
機能として、受信フィルタリング、CAN コアとメッセージ RAM 間のメッセージ転送、送
信要求の処理、モジュール割り込みの生成などが挙げられます。
R
A
FT
D
R
A
CAN コントローラのレジスタセットには、APB バスを介して外部 CPU から直接アクセス
できます。それらのレジスタを使用して、CAN コアおよびメッセージハンドラの制御 / 設
定や、メッセージ RAM へのアクセスを行います。
CAN_TXD CAN_RXD
C_CAN
CAN CORE
APB
bus
MESSAGE RAM
MESSAGE
HANDLER
APB
INTERFACE
REGISTER
INTERFACE
Fig 41. C_CAN block diagram
12.5 ピンの説明
Table 173. CCAN pin description
Pin
Type
Description
CAN_TXD
O
C_CAN 送信出力
CAN_RXD
I
C_CAN 受信入力
12.6 クロックと電力の制御
C_CAN(C_CAN システムクロック)およびプログラマブル C_CAN クロック分周器(Table
204 を参照)へのペリフェラルクロックは、システムクロック(Table 19 を参照)によっ
て供給されます。このクロックは、節電のために、SYSAHBCLKCTRL レジスタのビット 17
によってディスエーブルにすることができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
193
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
注意 : 100 kbit/s を超える C_CAN ボーレートが必要な場合は、システムクロックのクロッ
クソースとしてシステムオシレータを選択する必要があります。それよりも低いボー
レートの場合は、クロックソースとして IRC を使用することもできます。
D
FT
FT
A
A
R
R
D
D
D
R
12.7 リセットと割り込みの設定
A
FT
D
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 アービト 0x0000
レーション 1
CANIF1_ARB2
R/W
0x034
メッセージインターフェース1 アービト 0x0000
レーション 2
CANIF1_MCTRL
R/W
0x038
メッセージインターフェース1 メッセー 0x0000
ジ制御
CANIF1_DA1
R/W
0x03C
メッセージインターフェース 1 データ 0x0000
A1
CANIF1_DA2
R/W
0x040
メッセージインターフェース 1 データ 0x0000
A2
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
194
A
C_CAN 割り込みは、例外番号 13 を使用して NVIC に接続されます。
R
C_CAN コントローラは、システム制御ブロックの PRESETCTRL レジスタ(アドレス 0x4004
8004)のビット 3 によってリセットできます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Reset
value
CANIF1_DB1
R/W
0x044
メッセージインターフェース 1 データ 0x0000
B1
CANIF1_DB2
R/W
0x048
メッセージインターフェース 1 データ 0x0000
B2
-
-
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 アービト 0x0000
レーション 1
CANIF2_ARB2
R/W
0x094
メッセージインターフェース2 アービト 0x0000
レーション 2
CANIF2_MCTRL
R/W
0x098
メッセージインターフェース2 メッセー 0x0000
ジ制御
CANIF2_DA1
R/W
0x09C
メッセージインターフェース 2 データ 0x0000
A1
CANIF2_DA2
R/W
0x0A0
メッセージインターフェース 2 データ 0x0000
A2
CANIF2_DB1
R/W
0x0A4
メッセージインターフェース 2 データ 0x0000
B1
CANIF2_DB2
R/W
0x0A8
メッセージインターフェース 2 データ 0x0000
B2
-
-
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
予約済み
-
F
Description
A
Address
offset
FT
FT
A
A
R
R
D
D
Access
FT
Name
FT
A
A
R
R
D
D
D
Table 174. Register overview: CCAN (base address 0x4005 0000)(続き)
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
D
R
A
CANIR1
RO
0x140
割り込み保留 1
0x0000
CANIR2
RO
0x144
割り込み保留 2
0x0000
-
-
0x148 0x15C
予約済み
-
CANMSGV1
RO
0x160
メッセージ有効 1
0x0000
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
-
Rev. 00.15 — 2010 / 9 / 28
195
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
CANMSGV2
RO
0x164
メッセージ有効 2
0x0000
-
-
0x168 0x17C
予約済み
-
CANCLKDIV
R/W
0x180
CAN クロック分周器レジスタ
0x0001
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
12.8.1.1 CAN 制御レジスタ
CANCTRL レジスタのリセット値 0x0001 は、ソフトウェアによる初期化をイネーブルに
します(INIT = 1)。CPU が INIT ビットを 0 にリセットするまで、C_CAN は CAN バスに影
響を与えません。
Table 175. CAN control registers (CANCNTL, address 0x4005 0000) bit description
Bit
Symbol Value
Description
Reset
value
Access
0
INIT
初期化
1
R/W
0
R/W
0
R/W
0
R/W
0
-
2
3
4
0
通常動作
1
初期化を開始します。リセットした場合は、ソ
フトウェアによって CAN コントローラを初期
化する必要があります。
モジュール割り込みイネーブル
0
CAN 割り込みをディスエーブルにします。割り
込みラインは常に HIGH です。
1
CAN 割り込みをイネーブルにします。割り込み
ラインは LOW に設定され、保留中のすべての
割り込みがクリアされるまで LOW のままにな
ります。
SIE
ステータス変化割り込みイネーブル
0
ステータス変化割り込みをディスエーブルに
します。ステータス変化割り込みは生成されま
せん。
1
ステータス変化割り込みをイネーブルにしま
す。メッセージ転送が正常に完了した場合や
CAN バスエラーが検出された場合に、ステータ
ス変化割り込みが生成されます。
EIE
-
エラー割り込みイネーブル
0
エラー割り込みをディスエーブルにします。エ
ラーステータス割り込みは生成されません。
1
エ ラ ー 割 り 込 み を イ ネ ー ブ ル に し ま す。
CANSTAT レジスタのビット BOFF またはビット
EWARN が変化すると、割り込みが生成されま
す。
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
12.8.1 CAN プロトコルレジスタ
IE
F
Reset
value
A
Description
D
Address
offset
FT
Access
FT
A
A
R
R
D
D
D
Name
1
R
R
FT
FT
A
A
R
R
D
D
D
Table 174. Register overview: CCAN (base address 0x4005 0000)(続き)
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
Rev. 00.15 — 2010 / 9 / 28
196
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
Reset
value
5
DAR
自動再送信ディスエーブル
0
R/W
0
R/W
0
R/W
-
-
F
D
D
R
A
予約済み
FT
-
FT
テストモード
A
通常動作
1
A
0
R
テストモードイネーブル
R
TEST
D
INIT ビットが 1 の場合に、CPU は CANBT レジ
スタに書き込みアクセスすることができます。
D
1
FT
CPU はビットタイミングレジスタに書き込み
アクセスすることができません。
A
0
R
31:8
設定変更イネーブル
D
7
自動再送信がディスエーブルになります。
CCE
Access
FT
6
1
A
Description
問題が生じたメッセージの自動再送信がイ
ネーブルになります。
R
Symbol Value
FT
Bit
0
D
A
A
R
R
D
D
Table 175. CAN control registers (CANCNTL, address 0x4005 0000) bit description (続き)
注 意 : 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)は
クリアされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
197
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
Reset
value
Access
最後のエラーコード
000
R/W
0
R/W
F
FT
FT
Description
A
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
LEC
FT
FT
FT
2:0
Value
A
A
A
Symbol
R
R
R
Bit
D
D
D
Table 176. CAN status register (CANSTAT, address 0x4005 0004) bit description
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
R
A
FT
D
R
A
エラーが発生せずにメッセージが転送(受信または送信)されると、こ
のフィールドは「0」にクリアされます。更新をチェックするために、
CPU によって未使用コード「111」が書き込まれることがあります。
3
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 によって書き
込まれます)。
TXOK
メッセージ正常送信
このビットは CPU によってリセットされます。CAN コントローラによっ
てリセットされることはありません。
0
このビットが CPU によってリセットされてから、正常に送信されたメッ
セージがありません。
1
このビットが CPU によってリセットされてから、1 つのメッセージが正
常に送信されました(エラーが発生せず、少なくとも 1 つの他のノード
から肯定応答が返されました)。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
CAN バス上で最後に発生したエラーのタイプ。LEC フィールドには CAN
バス上で最後に発生したエラーのタイプを示すコードが書き込まれま
す。
198
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R/W
0
RO
0
RO
0
RO
BOFF
-
バスオフステータス
0
CAN モジュールはバスオフ状態ではありません。
1
CAN コントローラはバスオフ状態です。
-
予約済み
A
EML の少なくとも 1 つのエラーカウンタがエラー警告リミットの 96 に
達しています。
R
1
D
両方のエラーカウンタがエラー警告リミットである 96 を下回っていま
す。
FT
0
A
警告ステータス
R
EWARN
12.8.1.3 CAN エラーカウンタ
Table 177. CAN error counter (CANEC, address 0x4005 0008) bit description
Bit
Symbol
7:0
TEC[7:0]
14:8
REC[14:8]
15
RP
Value Description
送信エラーカウンタ
Reset
value
Access
0
RO
-
RO
-
RO
-
-
送信エラーカウンタの現在の値(最大値は 255)
受信エラーカウンタ
受信エラーカウンタの現在の値(最大値は 127)
31:16 -
受信エラーパッシブ
0
受信カウンタはエラーパッシブレベル以下です。
1
受信カウンタは、CAN édól2.0 で定義されている
エラーパッシブレベルに達しています。
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
CAN コントローラは、CANédól2.0 で定義されているエラーパッシブ状
態です。
FT
FT
CAN コントローラはエラーアクティブ状態です。
A
A
31:8
0
1
R
R
7
エラーパッシブ
D
D
6
EPASS
F
FT
このビットは CPU によってリセットされます。CAN コントローラによっ
てリセットされることはありません。
5
A
0
このビットが CPU によって前回リセットされてから、1 つのメッセージ
を正常に受信しました(受信フィルタリングの結果には関係しません)。
R
Access
FT
メッセージ正常受信
1
D
A
A
Reset
value
このビットが CPU によって前回リセットされてから、正常に受信した
メッセージがありません。
R
R
R
Description
0
D
D
D
RXOK
FT
FT
FT
4
Value
A
A
A
Symbol
R
R
R
Bit
D
D
D
Table 176. CAN status register (CANSTAT, address 0x4005 0004) bit description (続き)
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
199
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
FT
FT
A
A
R
R
R
D
Symbol
Value
Description
Reset
value
Access
5:0
BRP
0x01 0x3F[1]
ボーレートプリスケーラ
000001
R/W
00
R/W
0011
R/W
010
R/W
-
-
FT
FT
A
Bit
A
R
R
D
Table 178. CAN bit timing register (CANBT, address 0x4005 000C) bit description
D
D
D
12.8.1.4 CAN ビットタイミングレジスタ
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
0x0 - 0x3[1] (再)同期ジャンプ幅
11:8
TSEG1
0x01 0x0F[1]
サンプルポイントの前の時間セグメント
14:12
TSEG2
0x0 - 0x7[1]
サンプルポイントの後の時間セグメント
31:15
-
-
A
SJW
R
7:6
D
ビット基本単位時間を導き出すために、オシ
レータの周波数を分周する値。ビット時間は
この基本単位時間の倍数から成り立っていま
す。ボーレートプリスケーラの有効値は 0 ∼
63 です。
有効な設定値は 0 ∼ 3 です。
有効値は 1 ∼ 15 です。
有効値は 0 ∼ 7 です。
[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)
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
200
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
異なるバスコントローラのクロックオシレータ間の位相シフトを補正するために、すべて
のバスコントローラは、現在転送中の関連する信号エッジすべてで再同期する必要があり
ます。同期ジャンプ幅 tSJW は、最大クロックサイクル数を定義します。再同期によって特
定のビット周期が短縮または延長される場合があります。
F
FT
FT
A
A
R
R
D
D
D
同期ジャンプ幅
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
D
R
tSJW = tq × (SJW + 1)
A
12.8.1.5 CAN 割り込みレジスタ
Table 179. CAN interrupt register (CANINT, address 0x4005 0010) bit description
Bit
Symbol
15:0
INTID[15:0]
Value
0x0000
Description
Reset
value
Access
0
R
-
-
割り込みは保留されていません。
0x0001 - 割 り 込 み を 発 生 さ せ た メ ッ セ ー ジ オ ブ
0x0020 ジェクトの番号
0x0021 - 未使用
0x7FFF
0x8000
ステータス割り込み
0x8001 - 未使用
0xFFFF
31:16
-
予約済み
-
複数の割り込みが保留中の場合、CAN 割り込みレジスタは、発生順序とは関係なく、最
も優先順位の高い保留中の割り込みを指します。割り込みは、CPU によってクリアされる
まで、保留状態となります。INTID の値が 0x0000 ではなく、IE が設定されている場合に、
CPU への割り込みラインはアクティブになります。INTID の値が 0x0000 に戻る(割り込
みの原因がリセットされる)か IE がリセットされるまで、割り込みラインはアクティブ
のままです。
ステータス割り込みは最優先の割り込みです。メッセージ割り込みでは、メッセージオブ
ジェクトの割り込み優先順位はメッセージ番号が大きいほど低くなります。
メッセージ割り込みは、メッセージオブジェクトの INTPND ビットをクリアすることによ
りクリアできます。ステータス割り込みは、ステータスレジスタを読み取ることによりク
リアできます。
12.8.1.6 CAN テストレジスタ
テストレジスタへの書き込みアクセスは、CAN 制御レジスタの TEST ビットを設定するこ
とによりイネーブルになります。
他のテスト機能を組み合せることもできますが、TX[1:0] = ’00’ を選択すると、メッセージ
転送に問題が生じます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
201
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
R
FT
D
R
A
A
F
FT
D
R
A
LBACK
ループバックモード
0
1
6:5
7
31:8
TX[1:0]
-
R/W
00
R/W
0
R
ループバックモードはディスエーブルです。
ループバックモードはイネーブルです。
CAN_TXD ピンの制御
00
CAN_TXD ピンのレベルを CAN コントローラ
によって制御します。これはリセット時の値
です。
01
サンプルポイントを CAN_TXD ピンで監視す
ることができます。
10
CAN_TXD ピンを LOW/ ドミナントに駆動しま
す。
11
CAN_TXD ピンを HIGH/ リセッシブに駆動し
ます。
RX
0
A
モジュールはサイレントモードです。
R
通常動作
1
R/W
D
0
0
CAN_RXD ピンの実際値を監視します。
0
CAN バスはリセッシブです(CAN_RXD = ’1’)。
1
CAN バスはドミナントです(CAN_RXD = ’0’)。
R/W
-
12.8.1.7 CAN ボーレートプリスケーラ拡張レジスタ
Table 181. CAN baud rate prescaler extension register (CANBRPE, address 0x4005 0018) bit
description
Bit
Symbol
Value
Description
Reset
value
3:0
BRPE
0x00 - 0x0F
ボーレートプリスケーラ拡張
0x0000 R/W
Access
BRPE をプログラミングして、ボー
レートプリスケーラの値を最大
1023 まで拡張できます。ハードウェ
アはこの値を、BRPE(MSB)と BRP
(LSB)の値に 1 を足した値として解
釈します。
31:4
-
-
予約済み
ユーザーマニュアル
-
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
サイレントモード
FT
IF1 レジスタを Tx バッファとして使用し、IF2
レジスタを Rx バッファとして使用します。
A
1
R/W
R
ベーシックモードはディスエーブルです。
0
D
4
0
SILENT
FT
3
ベーシックモード
FT
A
BASIC
R
2
R
-
Access
D
-
Reset
value
FT
1:0
Description
A
Value
R
Symbol
A
D
D
Bit
R
FT
FT
A
A
R
R
D
D
D
Table 180. CAN test register (CANTEST, address 0x4005 0014) bit description
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
202
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
メッセージ RAM への CPU アクセスを制御するために、2 セットのインターフェースレジ
スタが用意されています。インターフェースレジスタは転送するデータをバッファリン
グすることによって、メッセージ RAM への CPU アクセスと CAN メッセージの送受信が
競合するのを回避します。メッセージ RAM と IFx メッセージバッファレジスタとの間で
は、メッセージオブジェクト全体(Section 12.8.2.1)またはその一部を 1 回で転送するこ
とができます。
F
FT
FT
A
A
R
R
D
D
D
12.8.2 メッセージインターフェースレジスタ
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
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
メッセージ RAM 内には 32 のメッセージオブジェクトがあります。メッセージ RAM への
CPU アクセスと CAN メッセージの送受信が競合するのを回避するため、CPU はメッセー
ジオブジェクトに直接アクセスすることはできません。メッセージオブジェクトへのア
クセスは IFx インターフェースレジスタを介して行われます。
メッセージ処理の詳細については、Section 12.9.3 を参照してください。
12.8.2.1 メッセージオブジェクト
メッセージオブジェクトには、メッセージインターフェースレジスタのさまざまなビット
からの情報が格納されています。下記の Table 183 は、メッセージオブジェクトの構造の
概略です。メッセージオブジェクトのビットと、それらのビットが設定 / クリアされるイ
ンターフェースレジスタを示しています。ビットの機能については、該当するインター
フェースレジスタを参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
203
A
各インターフェースレジスタセットは、それぞれに固有のコマンドレジスタによって制御
されるメッセージバッファレジスタで構成されています。コマンドマスクレジスタは、
データ転送の方向とメッセージオブジェクトの転送部分を指定します。コマンド要求レ
ジスタは、メッセージ RAM 内のメッセージオブジェクトを転送のターゲットまたはソー
スとして選択して、コマンドマスクレジスタで指定されたアクションを開始するために使
用します。
R
く)。両方のプロセスが相互に割り込みを行うことができるようにして、一方のレジスタ
セットをメッセージ RAM へのデータ転送に使用し、もう一方のレジスタセットをメッ
セージ RAM からのデータ転送に使用することができます。
D
2 つのインターフェースレジスタセットの機能は同じです(ベーシックテストモードは除
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
A
FT
DATA7
D
R
A
IF1/2_DB1
DATA6
IF1/2_DB2
Table 184. CAN message interface command request registers (CANIF1_CMDREQ, address
0x4005 0020 and CANIF2_CMDREQ, address 0x4005 0080) bit description
5:0
Message
Number
Value
Description
Reset
Value
Access
メッセージ番号
0x00
R/W
0x01 0x20
有効なメッセージ番号
0x00
有効なメッセージ番号でありません。こ
の値は 0x20 と解釈されます。[1]
0x21 0x3F
有効なメッセージ番号でありません。こ
の値は 0x01 - 0x1F と解釈されます。[1]
メッセージ RAM 内のメッセージオブジェ
クトをデータ転送用に選択します。
14:6
-
予約済み
-
-
15
BUSY
ビジーフラグ
0
RO
-
-
31:16
[1]
-
0
このコマンド要求レジスタに対する読み
取り / 書き込みアクションが完了すると、
ハードウェアにより 0 に設定されます。
1
このコマンド要求レジスタへの書き込み
時に、ハードウェアにより 1 にセットさ
れます。
-
予約済み
有効ではないメッセージ番号がコマンド要求レジスタに書き込まれた場合、そのメッセージ番号は有効な
値に変換され、該当するメッセージオブジェクトが転送されます。
12.8.2.3 CAN メッセージインターフェースコマンドマスクレジスタ
IFx コマンドマスクレジスタの制御ビットによって、転送方向を指定し、データ転送のソー
スまたはターゲットとして使用する IFx メッセージバッファレジスタを選択します。レジ
スタビットの機能は、コマンドマスクレジスタの WR/RD ビット(ビット 7)で選択され
た転送方向(読み取り / 書き込み)に応じて異なります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
R
DATA5
FT
DLC0
CPU によってコマンド要求レジスタにメッセージ番号が書き込まれると、メッセージの
転送がただちに開始されます。この書き込み操作が行われると、転送中であることを CPU
に通知するために、BUSY ビットが自動的に「1」に設定され、信号 CAN_WAIT_B が LOW
になります。CAN_CLK の 3 ∼ 6 周期後、インターフェースレジスタとメッセージ RAM 間
の転送が完了します。BUSY ビットが 0 に戻り、信号 CAN_WAIT_B も元に戻ります。
Symbol
F
A
DLC1
12.8.2.2 CAN メッセージインターフェースコマンド要求レジスタ
Bit
A
R
DLC2
D
DLC3
FT
IF1/2_DA2
R
D
A
DATA4
D
FT
R
DIR
IF1/2_MCTRL
DATA3
R
A
INTPND
D
XTD
R
TXIE
D
D
DATA2
IF1/2_DA1
RXIE
IF1/2_MCTRL
ID[28:0]
IF1/2_ARB1/2
DATA1
MSGLST
FT
NEWDAT
A
MSGVAL
R
IF1/2_MSK1/2
TXRQST
IF1/2_MCTRL
DATA0
EOB
D
RMTEN
MDIR
FT
FT
FT
IF1/2_MCTRL
MXTD
A
A
A
MSK[28:0]
R
R
R
UMASK
D
D
D
Table 183. Structure of a message object in the message RAM
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
204
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
1: 書き込み転送方向(メッセージ RAM に書き込み)
D
R
FT
FT
A
A
R
R
D
D
D
WR/RD の選択
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
0: 読み取り転送方向(メッセージ RAM から読み取り)
R
1
2
Reset
value
Access
データバイト 4 ∼ 7 へのアクセス
0
R/W
0
R/W
0
R/W
1
送信を要求。IF1/2_MCTRL の TXRQST ビット
を設定します。
-
書き込み方向ではこのビットは無視されま 0
す。
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
-
0
データバイト 4 ∼ 7 は変化しません。
1
データバイト 4 ∼ 7 をメッセージオブジェク
トに転送します。
DATA_A
データバイト 0 ∼ 3 へのアクセス
0
データバイト 0 ∼ 3 は変化しません。
1
データバイト 0 ∼ 3 をメッセージオブジェク
トに転送します。
TXRQST
送信要求ビットへのアクセス
0
送信要求なし。IF1/2_MCTRL の TXRQSRT ビッ
トは変化しません。
注意 : このビットを設定して送信を要求した
場合、
CANIFn_MCTRL レジスタの TXRQST ビッ
トは無視されます。
3
CLRINTPND
4
CTRL
5
6
7
制御ビットへのアクセス
0
制御ビットは変化しません。
1
制御ビットをメッセージオブジェクトに転送
します。
ARB
アービトレーションビットへのアクセス
0
アービトレーションビットは変化しません。
1
ID、DIR ビット、XTD ビット、MSGVAL ビッ
トをメッセージオブジェクトに転送します。
MASK
WR/RD
マスクビットへのアクセス
0
マスクビットは変化しません。
1
ID MASK、MDIR、MXTD をメッセージオブジェ
クトに転送します。
1
書き込み転送
選択されたメッセージバッファレジスタか
ら、コマンド要求レジスタ CANIFn_CMDREQ
で指定されたメッセージオブジェクトにデー
タを転送します。
31:8
-
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
205
A
DATA_B
Description
R
0
Value
D
Symbol
FT
Bit
A
Table 185. CAN message interface command mask registers (CANIF1_CMDMSK, address
0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - write
direction
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
A
FT
R
R
Access
データバイト 4 ∼ 7 へのアクセス
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
-
A
FT
D
R
データバイト 4 ∼ 7 を IFx メッセージバッファ
レジスタに転送します。
A
データバイト 0 ∼ 3 へのアクセス
0
データバイト 0 ∼ 3 は変化しません。
1
データバイト 0 ∼ 3 を IFx メッセージバッファ
に転送します。
新規データビットへのアクセス
NEWDAT ビットは変化しません。
注意 : メッセージオブジェクトへの読み取り
アクセスを、IF1/2_MCTRL の制御ビット
INTPND および NEWDAT のリセットと組み合
せることができます。IFx メッセージ制御レジ
スタに転送されたこれらのビットの値は、常
にビットがリセットされる前のステータスを
反映します。
1
3
4
5
6
7
CLRINTPND
0
INTPND ビットは変化しません。
1
メッセージオブジェクトの INTPND ビットを
クリアします。
制御ビットへのアクセス
0
制御ビットは変化しません。
1
制御ビットを IFx メッセージバッファに転送
します。
ARB
アービトレーションビットへのアクセス
0
アービトレーションビットは変化しません。
1
ID、DIR ビット、XTD ビット、MSGVAL ビッ
トを IFx メッセージバッファレジスタに転送
します。
MASK
WR/RD
メッセージオブジェクトの NEWDAT ビットを
クリアします。
割り込み保留ビットのクリア
CTRL
マスクビットへのアクセス
0
マスクビットは変化しません。
1
ID MASK、MDIR、MXTD を IFx メッセージバッ
ファレジスタに転送します。
0
読み取り転送
コマンド要求レジスタ CANIFn_CMDREQ で指
定されたメッセージオブジェクトから、選択
されたメッセージバッファレジスタにデータ
を転送します。
31:8
-
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
R
データバイト 4 ∼ 7 は変化しません。
0
D
0
NEWDAT
FT
Reset
value
FT
2
Description
1
DATA_A
A
1
A
R
DATA_B
F
D
D
0
Value
A
FT
FT
A
A
R
R
D
D
D
Symbol
R
R
FT
FT
A
A
R
R
D
D
D
Table 186. CAN message interface command mask registers (CANIF1_CMDMSK, address
0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - read
direction
Bit
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
206
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
メッセージバッファレジスタのビットは、メッセージ RAM 内のメッセージオブジェクト
を反映します。
F
FT
FT
A
A
R
R
D
D
D
12.8.2.4 IF1 および IF2 メッセージバッファレジスタ
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
R
CAN メッセージインターフェースコマンドマスク 1 レジスタ
A
FT
MSK[15:0]
31:16
12.8.2.4.2
-
A
15:0
Value
R
Symbol
D
Table 187. CAN message interface command mask 1 registers (CANIF1_MSK1, address
0x4005 0028 and CANIF2_MASK1, address 0x4005 0088) bit description
Bit
Description
Reset
value
Access
ID マスク
0xFFFF
R/W
0
-
0
メッセージ ID 内の対応ビットによって受信
フィルタリングでの一致を抑制することはで
きません。
1
対応する ID ビットを受信フィルタリングに使
用します。
-
予約済み
CAN メッセージインターフェースコマンドマスク 2 レジスタ
Table 188. CAN message interface command mask 2 registers (CANIF1_MSK2, address
0x4005 002C and CANIF2_MASK2, address 0x4005 008C) bit description
Bit
Symbol
12:0
MSK[28:16]
Value Description
ID マスク
0
メッセージ ID 内の対応ビットによって受信フィ
ルタリングでの一致を抑制することはできませ
ん。
1
対応する ID ビットを受信フィルタリングに使用
します。
Access
0xFFF
R/W
-
予約済み
1
-
14
MDIR
メッセージ方向のマスク
1
R/W
1
R/W
0
-
31:16
0
メッセージ方向ビット(DIR)は受信フィルタリ
ングに影響を与えません。
1
メッセージ方向ビット(DIR)を受信フィルタリ
ングに使用します。
MXTD
-
拡張 ID のマスク
0
拡張 ID ビット(XTD)は受信フィルタリングに
影響を与えません。
1
拡張 ID ビット(XRD)を受信フィルタリングに
使用します。
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
13
15
Rev. 00.15 — 2010 / 9 / 28
D
D
12.8.2.4.1
207
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
D
R
A
Access
メッセージ ID
0x00
R/W
0
-
FT
D
R
A
29 ビット ID(「拡張フレーム」)
11 ビット ID(「標準フレーム」)
31:16
12.8.2.4.4
-
-
予約済み
CAN メッセージインターフェースコマンドアービトレーション 2 レジスタ
Table 190. CAN message interface command arbitration 2 registers (CANIF1_ARB2, address 0x4005 0034 and
CANIF2_ARB2, address 0x4005 0094) bit description
Bit
Symbol
12:0
ID[28:16]
Value Description
メッセージ ID
Reset
value
Access
0x00
R/W
0x00
R/W
0x00
R/W
0
R/W
0
-
29 ビット ID(「拡張フレーム」)
11 ビット ID(「標準フレーム」)
13
DIR
メッセージ方向
0
方向 = 受信
TXRQST に対して、このメッセージオブジェクトの ID を持つリモートフ
レームが送信されます。一致する ID を持つデータフレームを受信すると、
そのメッセージがこのメッセージオブジェクトに格納されます。
1
方向 = 送信
TXRQST に対して、各メッセージオブジェクトがデータフレームとして送
信されます。一致する ID を持つリモートフレームを受信すると、このメッ
セージオブジェクトの TXRQST ビットが設定されます(RMTEN = 1 の場合)。
14
15
XTD
拡張 ID
0
このメッセージオブジェクトに対して 11 ビットの標準 ID が使用されます。
1
このメッセージオブジェクトに対して 29 ビットの拡張 ID が使用されます。
MSGVAL
メッセージ有効
注意 : CPU は、初期化時に CAN 制御レジスタの INIT ビットをリセットす
る前に、すべての未使用メッセージオブジェクトの MSGVAL をリセットす
る必要があります。また、ID(ID28 ∼ 0)、制御ビット(XTD、DIR)、デー
タ長コード(DLC3 ∼ 0)を変更する前、あるいはメッセージオブジェクト
が不要になった場合にも、このビットをリセットする必要があります。
31:16
-
0
メッセージオブジェクトはメッセージハンドラによって無視されます。
1
メッセージオブジェクトはメッセージハンドラにより設定されて処理さ
れます。
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
Reset
value
A
ID[15:0]
Description
R
15:0
Value
D
Symbol
FT
Bit
FT
A
A
R
R
D
D
Table 189. CAN message interface command arbitration 1 registers (CANIF1_ARB1, address
0x4005 0030 and CANIF2_ARB1, address 0x4005 0090) bit description
F
FT
FT
A
A
R
R
D
D
CAN メッセージインターフェースコマンドアービトレーション 1 レジスタ
R
R
FT
FT
A
A
R
R
D
D
D
12.8.2.4.3
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
208
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
R
FT
FT
A
A
R
データ長コード
0000
R/W
予約済み
-
-
バッファの最後
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
R
A
FT
D
R
6:4
-
7
EOB
8
9
10
11
12
データフレームは 8 データバイトです。
0
メッセージオブジェクトは FIFO バッファに属していますが、その FIFO
バッファの最後のメッセージオブジェクトではありません。
1
単一のメッセージオブジェクトまたは FIFO バッファの最後のメッセージ
オブジェクト
TXRQST
A
注意 : メッセージオブジェクトのデータ長コードは、他ノードにある同じ
ID を持つ対応オブジェクトすべてのデータ長コードと同一になるように
定義する必要があります。メッセージハンドラはデータフレームを格納す
るときに、受信メッセージから与えられた値に DLC を書き込みます。
0101 1111
送信要求
0
このメッセージオブジェクトは送信待ちではありません。
1
このメッセージオブジェクトの送信を要求されていますが、まだ送信は行
われていません。
RMTEN
リモートイネーブル
0
リモートフレームの受信時に、TXRQST は変化しません。
1
リモートフレームの受信時に、TXRQST が設定されます。
RXIE
受信割り込みイネーブル
0
フレームを正常に受信した後、INTPND は変化しません。
1
フレームを正常に受信した後、INTPND が設定されます。
TXIE
送信割り込みイネーブル
0
フレームを正常に送信した後、INTPND ビットは変化しません。
1
フレームを正常に送信した後、INTPND が設定されます。
UMASK
受信マスクの使用
注意 : UMASK が 1 に設定されている場合は、メッセージオブジェクトの
初期化時に MAGVAL を 1 に設定する前に、メッセージオブジェクトのマ
スクビットを設定する必要があります。
13
0
マスクは無視されます。
1
受信フィルタリングに対してマスク(MSK28 ∼ 0、MXTD、および MDIR)
を使用します。
INTPND
割り込み保留
0
このメッセージオブジェクトは割り込みソースではありません。
1
このメッセージオブジェクトは割り込みソースです。優先順位がより高い
他の割り込みソースがない場合、割り込みレジスタの割り込み ID はこの
メッセージオブジェクトを指します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
Access
D
Reset
value
データフレームは 0 ∼ 8 データバイトです。
F
D
D
Description
0000 0100
A
FT
FT
DLC[3:0]
R
A
A
3:0
Value
D
R
R
Symbol
R
FT
D
D
Table 191. CAN message interface message control registers (CANIF1_MCTRL, address 0x4005 0038 and
CANIF2_MCTRL, address 0x4005 0098) bit description
Bit
D
A
FT
FT
A
A
R
R
R
CAN メッセージインターフェースメッセージ制御レジスタ
D
D
D
12.8.2.4.5
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
209
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R/W
0
-
FT
FT
D
R
A
CAN メッセージインターフェースデータ A1 レジスタ
CAN データフレーム内では、DATA0 が最初に送受信されるバイト、DATA7(CAN_IF1B2
と CAN_IF2B2)が最後に送受信されるバイトとなります。CAN のシリアルビットストリー
ムでは、各バイトの MSB が最初に送信されます。
注意 : 受信中は、バイト DATA0 が最初に CAN コアのシフトレジスタにシフトされ、バイ
ト DATA7 が最後にシフトされます。メッセージハンドラはデータフレームを格納すると
きに、8 データバイトすべてをメッセージオブジェクトに書き込みます。データ長コード
が 8 未満の場合、メッセージオブジェクトの残りのバイトは不定値によって上書きされ
ます。
Table 192. CAN message interface data A1 registers (CANIF1_DA1, address 0x4005 003C
and CANIF2_DA1, address 0x4005 009C) bit description
12.8.2.4.7
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
-
-
CAN メッセージインターフェースデータ A2 レジスタ
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
-
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
A
予約済み
A
-
R
メッセージハンドラまたは CPU によって、このメッセージオブジェクト
のデータ部分に新規データが書き込まれています。
D
1
FT
前回このフラグが CPU によってクリアされてから、このメッセージオブ
ジェクトのデータ部分にはメッセージハンドラによって書き込まれた新
規データはありません。
A
0
R
新規データ
F
0
NEWDAT がまだ設定されていたときにメッセージハンドラが新しいメッ
セージをこのオブジェクトに格納し、CPU がメッセージをロストしまし
た。
A
R/W
R
0
1
Access
D
メッセージロスト(受信方向のメッセージオブジェクトにのみ有効)
前回このビットが CPU によってリセットされてから、メッセージロスト
は発生していません。
12.8.2.4.6
FT
Reset
value
0
NEWDAT
31:16 -
Description
D
15
FT
MSGLST
R
A
A
14
Value
D
R
R
Symbol
R
A
D
D
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 191. CAN message interface message control registers (CANIF1_MCTRL, address 0x4005 0038 and
CANIF2_MCTRL, address 0x4005 0098) bit description (続き)
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
210
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
F
FT
D
FT
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
-
-
D
Bit
D
R
A
FT
D
R
A
12.8.2.4.9
FT
A
A
R
R
D
Table 194. CAN message interface data B1 registers (CANIF1_DB1, address 0x4005 0044
and CANIF2_DB1, address 0x4005 00A4) bit description
FT
A
A
R
R
D
D
D
CAN メッセージインターフェースデータ B1 レジスタ
D
D
D
12.8.2.4.8
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
CAN メッセージインターフェースデータ B2 レジスタ
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
15:8
DATA7
Data byte 7
0x00
R/W
31:16
-
Reserved
-
-
R/W
12.8.3 メッセージハンドラのレジスタ
メッセージハンドラのレジスタはすべて読み取り専用です。レジスタの内容(各メッセー
ジオブジェクトの TXRQST ビット、NEWDAT ビット、INTPND ビット、および MSGVAL
ビットと、割り込み ID)
は、メッセージハンドラ FSM から提供されるステータス情報です。
12.8.3.1 CAN 送信要求 1 レジスタ
このレジスタには、メッセージオブジェクト 1 ∼ 16 の TXRQST ビットが格納されます。
CPU は、TXRQST ビットを読み出すことによって、送信要求が保留中のメッセージオブ
ジェクトを確認できます。CPU から IFx メッセージインターフェースレジスタを介して、
あるいは、リモートフレームの受信後または送信の成功後にメッセージハンドラによっ
て、特定のメッセージオブジェクトの TXRQST ビットを設定またはリセットすることがで
きます。
Table 196. CAN transmission request 1 register (CANTXREQ1, address 0x4005 0100) bit
description
Bit
Symbol
15:0
TXRQST[16:1]
31:16 -
Value
Description
メッセージオブジェクト 16 ∼ 1 の送信要 0x00
求ビット
0
このメッセージオブジェクトは送信待ち
ではありません。
1
このメッセージオブジェクトの送信を要
求されていますが、まだ送信は行われて
いません。
-
予約済み
-
Access
R
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
211
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
このレジスタには、メッセージオブジェクト 32 ∼ 17 の TXRQST ビットが格納されます。
CPU は、TXRQST ビットを読み出すことによって、送信要求が保留中のメッセージオブ
ジェクトを確認できます。CPU から IFx メッセージインターフェースレジスタを介して、
あるいは、リモートフレームの受信後または送信の成功後にメッセージハンドラによっ
て、特定のメッセージオブジェクトの TXRQST ビットを設定またはリセットすることがで
きます。
F
FT
FT
A
A
R
R
D
D
D
12.8.3.2 CAN 送信要求 2 レジスタ
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
15:0
TXRQST[32:17]
Value
Description
Reset
value
Access
メッセージオブジェクト 32 ∼ 17 の送信 0x00
要求ビット
31:16 -
0
このメッセージオブジェクトは送信待ち
ではありません。
1
このメッセージオブジェクトの送信を要
求されていますが、まだ送信は行われて
いません。
-
予約済み
R
-
-
12.8.3.3 CAN 新規データ 1 レジスタ
このレジスタには、メッセージオブジェクト 16 ∼ 1 の NEWDAT ビットが格納されます。
CPU は、NEWDAT ビットを読み出すことによって、データ部分が更新されたメッセージ
オブジェクトを確認できます。CPU から IFx メッセージインターフェースレジスタを介し
て、あるいは、データフレームの受信後または送信の成功後にメッセージハンドラによっ
て、特定のメッセージオブジェクトの NEWDAT ビットを設定またはリセットすることが
できます。
Table 198. CAN new data 1 register (CANND1, address 0x4005 0120) bit description
Bit
Symbol
15:0
NEWDAT[16:1]
31:16
-
Value
Description
メッセージオブジェクト 16 ∼ 1 の新規デー 0x00
タビット
0
前回このフラグが CPU によってクリアされ
てから、このメッセージオブジェクトの
データ部分にはメッセージハンドラに
よって書き込まれた新規データはありま
せん。
1
メッセージハンドラまたは CPU によって、
このメッセージオブジェクトのデータ部
分に新規データが書き込まれています。
-
予約済み
-
Access
R
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
212
A
Symbol
R
Bit
D
Table 197. CAN transmission request 2 register (CANTXREQ2, address 0x4005 0104) bit
description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
このレジスタには、メッセージオブジェクト 32 ∼ 17 の NEWDAT ビットが格納されます。
CPU は、NEWDAT ビットを読み出すことによって、データ部分が更新されたメッセージ
オブジェクトを確認できます。CPU から IFx メッセージインターフェースレジスタを介し
て、あるいは、データフレームの受信後または送信の成功後にメッセージハンドラによっ
て、特定のメッセージオブジェクトの NEWDAT ビットを設定またはリセットすることが
できます。
F
FT
FT
A
A
R
R
D
D
D
12.8.3.4 CAN 新規データ 2 レジスタ
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
15:0
NEWDAT[32:17]
31:16
Value Description
Reset
value
Access
メッセージオブジェクト 32 ∼ 17 の新規 0x00
データビット
-
0
前回このフラグが CPU によってクリアされ
てから、このメッセージオブジェクトの
データ部分にはメッセージハンドラに
よって書き込まれた新規データはありま
せん。
1
メッセージハンドラまたは CPU によって、
このメッセージオブジェクトのデータ部
分に新規データが書き込まれています。
-
予約済み
R
-
-
12.8.3.5 CAN 割り込み保留 1 レジスタ
このレジスタには、メッセージオブジェクト 16 ∼ 1 の INTPND ビットが格納されます。
CPU は、INTPND ビットを読み出すことによって、割り込みが保留中のメッセージオブ
ジェクトを確認できます。CPU から IFx メッセージインターフェースレジスタを介して、
あるいは、フレームの受信後または送信の成功後にメッセージハンドラによって、特定の
メッセージオブジェクトの INTPND ビットを設定またはリセットすることができます。こ
れは割り込みレジスタの INTPND の値にも影響します。
Table 200. CAN interrupt pending 1 register (CANIR1, address 0x4005 0140) bit description
Bit
Symbol
15:0
INTPND[16:1]
31:16 -
Value Description
メッセージオブジェクト 16 ∼ 1 の割り込み保 0x00
留ビット
0
このメッセージオブジェクトはメッセージハ
ンドラによって無視されます。
1
このメッセージオブジェクトは割り込みソー
スです。
-
予約済み
-
Access
R
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
213
A
Symbol
R
Bit
D
Table 199. CAN new data 2 register (CANND2, address 0x4005 0124) bit description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
このレジスタには、メッセージオブジェクト 32 ∼ 17 の INTPND ビットが格納されます。
CPU は、INTPND ビットを読み出すことによって、割り込みが保留中のメッセージオブ
ジェクトを確認できます。CPU から IFx メッセージインターフェースレジスタを介して、
あるいは、フレームの受信後または送信の成功後にメッセージハンドラによって、特定の
メッセージオブジェクトの INTPND ビットを設定またはリセットすることができます。こ
れは割り込みレジスタの INTPND の値にも影響します。
F
FT
FT
A
A
R
R
D
D
D
12.8.3.6 CAN 割り込み保留 2 レジスタ
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
15:0
INTPND[32:17]
31:16 -
Value Description
Reset
value
メッセージオブジェクト 32 ∼ 17 の割り込み 0x00
保留ビット
0
このメッセージオブジェクトはメッセージハ
ンドラによって無視されます。
1
このメッセージオブジェクトは割り込みソー
スです。
-
予約済み
-
Access
R
-
12.8.3.7 CAN メッセージ有効 1 レジスタ
このレジスタには、メッセージオブジェクト 16 ∼ 1 の MSGVAL ビットが格納されます。
CPU は、MSGVAL ビットを読み出すことによって、有効なメッセージオブジェクトを確
認できます。CPU から IFx メッセージインターフェースレジスタを介して、特定のメッ
セージオブジェクトの MSGVAL ビットを設定またはリセットすることができます。
Table 202. CAN message valid 1 register (CANMSGV1, addresses 0x4005 0160) bit
description
Bit
Symbol
15:0
MSGVAL[16:1]
31:16
-
Value Description
Reset
value
メッセージオブジェクト 16 ∼ 1 のメッセー 0x00
ジ有効ビット
0
このメッセージオブジェクトはメッセージハ
ンドラによって無視されます。
1
このメッセージオブジェクトはメッセージハ
ンドラにより設定されて処理されます。
-
予約済み
-
Access
R
-
12.8.3.8 CAN メッセージ有効 2 レジスタ
このレジスタには、メッセージオブジェクト 32 ∼ 17 の MSGVAL ビットが格納されます。
CPU は、MSGVAL ビットを読み出すことによって、有効なメッセージオブジェクトを確
認できます。CPU から IFx メッセージインターフェースレジスタを介して、特定のメッ
セージオブジェクトの MSGVAL ビットを設定またはリセットすることができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
214
A
Symbol
R
Bit
D
Table 201. CAN interrupt pending 2 register (CANIR2, addresses 0x4005 0144) bit
description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
D
MSGVAL[32:17]
Reset
value
D
R
A
予約済み
D
-
FT
このメッセージオブジェクトはメッセージ
ハンドラにより設定されて処理されます。
A
1
R
このメッセージオブジェクトはメッセージ
ハンドラによって無視されます。
0x00
D
0
FT
31:16 -
メッセージオブジェクト 32 ∼ 17 のメッセー R
ジ有効ビット
FT
A
A
R
R
D
15:0
Access
FT
Value Description
FT
Symbol
A
Bit
A
R
R
D
D
Table 203. CAN message valid 2 register (CANMSGV2, address 0x4005 0164) bit description
-
-
12.8.4 CAN タイミングレジスタ
12.8.4.1 CAN クロック分周器レジスタ
このレジスタは CAN クロック信号を決定します。CAN_CLK は、ペリフェラルクロック
PCLK をこのレジスタの値で分周して導き出されます。
Table 204. CAN clock divider register (CANCLKDIV, address 0x4005 0180) bit description
Bit
Symbol
2:0
CLKDIVVAL
31:3
-
Value
Description
Reset
value
Access
クロック分周値
001
R/W
-
-
000
CAN_CLK = 1 分周した PCLK
001
CAN_CLK = 2 分周した PCLK
010
CAN_CLK = 4 分周した PCLK
011
CAN_CLK = 8 分周した PCLK
100
CAN_CLK = 16 分周した PCLK
101
CAN_CLK = 32 分周した PCLK
110
無効(デフォルトとして 2 分周)
111
無効(デフォルトして 2 分周)
-
予約済み
12.9 機能説明
12.9.1 リセット後の C_CAN コントローラの状態
ハードウェアリセット後、レジスタには Table 174 に記載されている値が保持されます。
また、バスオフ状態がリセットされ、CAN_TXD 出力がリセッシブ(HIGH)に設定されま
す。CAN 制御レジスタの値 0x0001(INIT = ’1’)によって、ソフトウェアによる初期化が
イネーブルになります。CAN コントローラは、CPU によって INIT が「0」にリセットされ
るまで、CAN バスとは通信しません。
メッセージ RAM に格納されているデータは、ハードウェアリセットの影響を受けません。
電源投入後、メッセージ RAM の内容は不定です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
215
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
12.9.2.1 ソフトウェアによる初期化
D
R
FT
FT
A
A
R
R
D
D
D
12.9.2 C_CAN の動作モード
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
ソフトウェア / ハードウェアリセットによって、またはバスオフ状態にすることによって
CAN 制御レジスタの INIT ビットを設定すると、ソフトウェアによる初期化が開始されま
す。
R
A
FT
D
R
A
ソフトウェアによる初期化中(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 は、インターフェースレジスタを介して随時、各メッセージの読み取り / 書き込みを
行うことができます。同時アクセスの場合、データの一貫性はメッセージハンドラによっ
て保証されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
216
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
送信するメッセージは CPU によって更新されます。送信メッセージに対して永久メッ
セージオブジェクト(設定時にアービトレーションビットと制御ビットが設定されてい
る)が存在する場合は、データバイトのみが更新され、TXRQST ビットと NEWDAT ビッ
トが設定されて送信が開始されます。複数の送信メッセージが同一のメッセージオブ
ジェクトに割り当てられている場合(メッセージオブジェクトの数が不足している場合)
は、
そのメッセージの送信を要求する前にメッセージオブジェクト全体を設定する必要が
あります。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
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 コアをサイレントモードにする
ことができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
217
A
12.9.2.3 自動再送信ディスエーブルモード(DAR)
R
メッセージオブジェクトの設定によっては、ID が一致するリモートフレームを受信する
ことにより自発的にメッセージの送信を要求することができます。
D
同時に複数のメッセージオブジェクトの送信を要求された場合、メッセージオブジェクト
は内部優先順位に基づいて順次送信されます。要求された送信が保留中の場合でも、随時
メッセージを更新したり無効に設定することができます。保留中のメッセージオブジェ
クトの送信が開始される前にメッセージが更新された場合は、旧データは破棄されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
サイレントモードでは、CAN コントローラは有効なデータフレームや有効なリモートフ
レームを受信できますが、CAN バスにはリセッシブビットのみを送信し、送信を開始す
ることはできません。ドミナントビット(ACK ビット、オーバーロードフラグ、アクティ
ブエラーフラグ)の送信に CAN コアが必要な場合には、CAN コアが監視できるように内
部的にそのドミナントビットの経路が変更されます。ただし、CAN バスはリセッシブ状
態のままです。ドミナントビット(肯定応答ビット、エラーフレーム)を送信することに
より、CAN バスに影響を及ぼすことなく、サイレントモードを使用して CAN バス上のト
ラフィックを分析できます。
D
FT
FT
A
A
R
R
D
D
D
R
A
Tx
CAN CORE
Fig 42. CAN core in Silent mode
12.9.2.4.2
ループバックモード
テストレジスタの LBACK ビットを 1 に設定すると、CAN コアをループバックモードにす
ることができます。ループバックモードでは、CAN コアは自ら送信したメッセージを受信
したメッセージと見なして、受信バッファに格納します(受信フィルタリングを通過した
場合)。
このモードはセルフテスト機能用のモードです。ループバックモードでは、外部シミュ
レーションとは関係なく、CAN コアは肯定応答エラー(データ / リモートフレームの肯
定応答スロットでサンプリングされたリセッシブビット)を無視します。またこのモード
では、CAN コアは CAN_TXD 出力から CAN_RXD 入力への内部帰還を実行します。CAN_RXD
入力ピンの実際値は CAN コアによって無視されます。送信メッセージは CAN_TXD ピンで
監視することができます。
CAN_TXD CAN_RXD
C_CAN
Rx
Tx
CAN CORE
Fig 43. CAN core in Loop-back mode
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
218
A
Rx
R
=1
D
C_CAN
FT
CAN_TXD CAN_RXD
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
F
FT
FT
A
A
R
R
D
D
D
ループバックモードとサイレントモードとの組み合せ
D
D
D
12.9.2.4.3
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
FT
FT
A
A
R
サイレントモードを組み合せることも可能です。このモードを使用して「ホットセルフテ
スト」を実行することができます。つまり、CAN_TXD ピンと CAN_RXD ピンに接続され
ている実行中の CAN システムに影響を及ぼすことなく、C_CAN をテストすることができ
ます。このモードでは、CAN_RXD ピンは CAN コアから切り離され、CAN_TXD ピンはリ
セッシブ状態にホールドされます。
R
D
D
LBACK ビットと SILENT ビットを同時に 1 に設定することにより、ループバックモードと
D
D
R
A
FT
Rx
Tx
CAN CORE
Fig 44. CAN core in Loop-back mode combined with Silent mode
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 レジスタに格納されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
219
A
=1
R
C_CAN
D
CAN_TXD CAN_RXD
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ベーシックモードでは、メッセージオブジェクトに関連するすべての制御ビットとステー
タスビットの評価、および IFx コマンドマスクレジスタの制御ビットの評価は行われませ
ん。コマンド要求レジスタのメッセージ番号も評価されません。IF2 メッセージ制御レジ
スタの NEWDAT ビットと MSGLST ビットの機能は維持され、DLC3 ∼ 0 は受信した DLC
を示しますが、他の制御ビットの読み取りに対しては「0」が返されます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
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 フラグの処理
• 割り込みの処理
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
220
A
CAN_TX ピンのソフトウェア制御
R
12.9.2.4.5
D
ベーシックモードでは、待機出力 CAN_WAIT_B はディスエーブルになります(常に「1」)
。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
transfer a
CAN frame
F
FT
FT
A
A
R
R
D
D
D
transfer a
message object
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
INTERFACE
COMMAND REGISTERS
R
A
FT
IF1 COMMAND REQUEST
IF1 COMMAND MASK
D
MESSAGE RAM
R
A
IF2 COMMAND REQUEST
IF2 COMMAND MASK
MESSAGE BUFFER
REGISTERS
read transfer
write transfer
IF1 MASK1, 2
IF1 ARBITRATION 1/2
IF1 MESSAGE CTRL
IF1 DATA A1/2
IF1 DATA B1/2
MESSAGE OBJECT 1
MESSAGE OBJECT 2
.
.
.
MESSAGE OBJECT 32
IF2 MASK1, 2
IF2 ARBITRATION 1/2
IF2 MESSAGE CTRL
IF2 DATA A1/2
IF2 DATA B1/2
APB
bus
MESSAGE HANDLER
receive
CAN CORE/
SHIFT REGISTERS
transmit
CAN
bus
TRANSMISSION REQUEST 1/2
NEW DATA 1/2
INTERRUPT PENDING1/2
MESSAGE VALID1/2
Fig 45. Block diagram of a message object transfer
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 への割り込みが発生します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
221
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
CPU によって IFx レジスタとメッセージ RAM 間でデータ転送が開始されると、メッセー
ジハンドラは各コマンドレジスタの BUSY ビットを「1」に設定します。転送が完了する
と、BUSY ビットは「0」に戻されます。
F
FT
FT
A
A
R
R
D
D
D
12.9.3.2 IFx レジスタとメッセージ RAM 間でのデータ転送
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
– メッセージオブジェクトの部分的読み取り後、コマンドマスクレジスタで選択
されていないメッセージバッファレジスタは未変更のままになります。
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 のスキャンを開始して、一致する有効なメッセージオブジェクトを検索
します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
222
A
コマンドマスクレジスタを使用して、メッセージオブジェクトの変更されない部
分をメッセージ RAM から読み取ります。
R
1.
D
コマンドマスクレジスタは、メッセージオブジェクトの転送部分(メッセージオブジェク
ト全体または一部)について指定します。メッセージ RAM の構造上、1 つのメッセージ
オブジェクトのシングルビット / バイトだけを書き込むことはできません。ソフトウェア
では、常にメッセージオブジェクト全体をメッセージ RAM に書き込む必要があります。
そのため、IFx レジスタからメッセージ RAM へのデータ転送では RMW(リードモディ
ファイライト)サイクルが必要になります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
メッセージRAMをスキャンして一致するメッセージオブジェクトを検索するために、CAN
コアのシフトレジスタから受信フィルタリングユニットにアービトレーションビットが
ロードされます。次に、メッセージオブジェクト 1 のアービトレーションおよびマスク
フィールド(MSGVAL、UMASK、NEWDAT、EOB など)が受信フィルタリングユニットに
ロードされ、シフトレジスタのアービトレーションフィールドと比較されます。一致する
メッセージオブジェクトが検出されるか、メッセージ RAM の最後に達するまで、各メッ
セージオブジェクト対してこの操作が繰り返されます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
メッセージハンドラ状態マシンは、メッセージ 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 ビット
が設定されます。メッセージオブジェクトのデータフィールドは変更されず、リモートフレームは受
信されたデータフレームと同じように処理されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
223
A
データフレームの受信
R
12.9.3.4.1
D
一致するメッセージオブジェクトが検出された場合、スキャンは停止され、メッセージハ
ンドラ状態マシンは受信したフレームの種類(データフレームまたはリモートフレーム)
に合わせて作業を続行します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
メッセージオブジェクトの受信 / 送信の優先順位はメッセージ番号によって評価されま
す。メッセージオブジェクト 1 の優先順位が最も高く、メッセージオブジェクト 32 の優
先順位が最も低くなります。複数の送信要求が保留中の場合は、対応するメッセージオブ
ジェクトの優先順位に従って処理されます。
F
FT
FT
A
A
R
R
D
D
D
12.9.3.5 受信 / 送信の優先順位
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
D
R
A
12.9.3.6 送信オブジェクトの設定
Table 205 は、ソフトウェアによって送信オブジェクトを初期化する方法を示しています
(Table 183 も参照してください)。
Table 205. Initialization of a transmit object
MSGVAL
Arbitration
bits
1
Data bits
Mask bits
DIR
NEWDAT
アプ リケー アプリケー アプリケー 1
ション依存 ション依存 ション依存
1
0
MSGLST
RXIE
TXIE
TXRQST
0
0
アプリケー 0
ション依存
INTPND
EOB
RMTEN
アプリケー 0
ション依存
アービトレーションレジスタ(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 データレジスタに転送する必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
224
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
データバイト(8 バイト)のみを更新する場合は、最初にコマンドマスクレジスタに
0x0087 を書き込みます。次に、コマンド要求レジスタにメッセージオブジェクトの番号
を書き込み、データバイトの更新と TXRQST の設定を同時に行います。
D
FT
FT
A
A
R
R
D
D
D
データを更新する際は、すでに実行中の送信の終了時に TXRQST がリセットされるのを防
ぐために、TXRQST とともに NEWDAT を設定する必要があります。詳細については、Section
12.9.3.3 を参照してください。
R
A
FT
Table 206 は、ソフトウェアによって受信オブジェクトを初期化する方法を示しています
(Table 183 も参照してください)。
Table 206. Initialization of a receive object
MSGVAL
Arbitration
bits
1
Data bits
DIR
NEWDAT
アプリケー アプリケー アプリケー 1
ション依存 ション依存 ション依存
0
0
MSGLST
RXIE
0
アプリケー 0
ション依存
TXIE
Mask bits
EOB
INTPND
RMTEN
TXRQST
0
0
0
アービトレーションレジスタ(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 インターフェースレジスタを介して随時、受信したメッセージを読み取るこ
とができます。データの一貫性はメッセージハンドラ状態マシンによって保証されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
225
A
12.9.3.8 受信オブジェクトの設定
R
ちにリセットされます。
D
TXRQST とともに NEWDAT を設定した場合、NEWDAT は新たな送信が開始されるとただ
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
メッセージ RAM からメッセージバッファに受信メッセージ全体を転送するには、ソフト
ウェアによって、まずコマンドマスクレジスタに 0x007F を書き込み、次に、コマンド要
求レジスタにメッセージオブジェクトの番号を書き込む必要があります。また、
(メッ
セージバッファではなく)メッセージ RAM 内の NEWDAT ビットと INTPND ビットがクリ
アされます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
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 に戻すまで、メッセージオブジェクトへ
の書き込みアクセスはメッセージハンドラによってロックされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
226
A
CPU はリモートフレームを使用して、他の CAN ノードに受信オブジェクト用の新しい
データの送信を要求できます。受信オブジェクトの TXRQST ビットを設定すると、その受
信オブジェクトの ID を持つリモートフレームが送信されます。このリモートフレームが
トリガとなり、他の CAN ノードが一致するデータフレームの送信を開始します。リモー
トフレームの送信が可能になる前に一致するデータフレームを受信した場合は、TXRQST
ビットが自動的にリセットされます。
R
NEWDAT の実際の値は、最後にこのメッセージオブジェクトが読み取られてから新たな
メッセージを受信したかどうかを示しています。MSGLST の実際の値は、最後にこのメッ
セージオブジェクトが読み取られてから複数のメッセージを受信したかどうかを示して
います。MSGLST は自動的にはリセットされません。
D
メッセージオブジェクトが受信フィルタリング用のマスクを使用している場合、アービト
レーションビットは、一致したメッセージの中からどのメッセージを受信したかを示しま
す。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
FIFO バッファの最後のメッセージオブジェクトに達するまで、メッセージは FIFO バッ
ファに格納されます。NEWDAT ビットに 0 を書き込んでも先行するメッセージオブジェク
トのロックが解除されない場合、その FIFO バッファへの新しいメッセージはすべて、FIFO
D
FT
FT
A
A
R
R
D
バッファの最後のメッセージオブジェクトに書き込まれます。そのため、以前からのメッ
セージは上書きされてしまいます。
D
D
R
A
FT
D
FIFO バッファからの読み取り
R
A
12.9.3.10.2
CPU がメッセージオブジェクトの番号を IFx コマンド要求レジスタに書き込み、それに
よってメッセージオブジェクトの内容が IFx メッセージバッファレジスタに転送される場
合は、対応するコマンドマスクレジスタの NEWDAT ビットと INTPND ビットを 0 にリセッ
トする必要があります(TXRQST/NEWDAT = ’1’ および ClrINTPND = ’1’)。メッセージ制御レ
ジスタのこれらのビットの値は、常にビットがリセットされる前のステータスを反映しま
す。
FIFO バッファを適切に機能させるために、CPU はメッセージ番号が最も小さい FIFO オブ
ジェクトから順にメッセージオブジェクトを読み出す必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
227
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
START
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
D
R
A
FT
read CANIR
D
R
A
INTID = 0x8000 ?
INTID = 0x0001
to 0x0020 ?
yes
INTID = 0x0000 ?
yes
yes
END
status change
interrupt handling
MessageNum = INTID
write MessageNum to CANIFx_CMDREQ
read message to message buffer
reset NEWDAT = 0
reset INTPND = 0
read CANIFx_MCTRL
no
NEWDAT = 1
yes
read data from CANIFx_DA/B
yes
EOB = 1
no
MessageNum = MessageNum +1
Fig 46. Reading a message from the FIFO buffer to the message buffer
12.9.4 割り込みの処理
複数の割り込みが保留中の場合、CAN 割り込みレジスタは、発生順序とは関係なく、最
も優先順位の高い保留中の割り込みを指します。割り込みは、CPU によってクリアされる
まで、保留状態となります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
228
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ステータス割り込みは最優先の割り込みです。メッセージ割り込みでは、メッセージオブ
ジェクトの割り込み優先順位はメッセージ番号が大きいほど低くなります。
D
FT
FT
A
A
R
R
D
メッセージ割り込みは、メッセージオブジェクトの INTPND ビットをクリアすることによ
りクリアできます。ステータス割り込みは、ステータスレジスタを読み取ることによりク
リアできます。
D
D
R
A
FT
D
他のすべての値はメッセージオブジェクトの 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 ノードの相互作用についての詳細な知識が必要です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
229
A
値 0x8000 は、CAN コアによってステータスレジスタ(エラー割り込みまたはステータス
割り込み)が更新(必ずしも変更ではない)されたために、割り込みが保留されているこ
とを示しています。この割り込みは最優先の割り込みです。CPU はステータスビット
RXOK、TXOK、および LEC を更新(リセット)することができますが、CPU によるステー
タスレジスタへの書き込みアクセスによって割り込みを生成したりリセットしたりする
ことはできません。
R
割り込みレジスタの割り込み ID「INTID」は、割り込みの原因を示します。保留中の割り
込みがない場合、レジスタの値は 0 となります。割り込みレジスタの値が 0 ではない場合
は、保留中の割り込みが存在しており、IE が設定されると、CPU への割り込みライン
(RQ_B)がアクティブになります。割り込みレジスタの値が 0 に戻る(割り込みの原因が
リセットされる)か IE がリセットされるまで、割り込みラインはアクティブなままです。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
12.9.5.1 ビット時間とビットレート
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
FT
FT
A
A
R
ネットワークの各メンバは固有のクロックジェネレータ(通常は水晶オシレータ)を備え
ています。ビット時間(ビットレートの逆数)のタイミングパラメータを CAN ノードご
とに設定することにより、CAN ノードの発振周期(fosc)が異なる場合でも共通のビット
レートを生成することができます。
R
D
D
CAN は、1kBit/s 未満から最大 1000kBit/s までのビットレートをサポートしています。CAN
D
D
R
A
FT
D
R
A
これらのオシレータの周波数は不変ではなく、温度や電圧の変化あるいはコンポーネント
の劣化などによってわずかに変動します。変動幅がオシレータの一定の許容誤差(df)内
である限り、CAN ノードはビットストリームとの再同期によってビットレートの変動を
補正することができます。
CAN の仕様では、ビット時間は 4 つのセグメントに分かれています(Figure 47)。同期セ
グメント、伝搬時間セグメント、位相バッファセグメント 1、位相バッファセグメント 2。
各セグメントはプログラマブルな特定の基本単位時間で構成されています(Table 207 を
参照)。ビット時間の基本単位である基本単位時間の長さ(tq)は、CAN コントローラの
システムクロック f とボーレートプリスケーラ(BRP)によって、tq = BRP / fsys と定義さ
れます。CAN のシステムクロック fsys は LPC11Cx システムクロックの周波数です(Section
12.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 temporarily
by synchronization.
SJW
(1...4) × tq
(再)同期ジャンプ幅。どちらの位相バッファセグメント
よりも長くすることはできません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
230
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 12 章:LPC11C1x C_CAN
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
Fig 47. Bit timing
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
231
R
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
R
A
A
A
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
13.1 この章を読む前に
R
A
FT
D
C_CAN ブロックは、LPC11C12 および LPC11C14 部品のみで利用可能です。
R
A
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 応答は、CiA
301 規格で示されている全 8 データバイトではなく、1 データバイトに短縮されてい
ます。これによって通信が高速化されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
232
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
エントリ [1018h,1] のベンダー ID は、CiA が公式に割り当てた固有のベンダー ID で
はなく、
「0x0000 0000」となります。その理由は、特に、このチップがデバイス全体
のベンダーとなるカスタマの設計に組み込まれることが予測されるからです。そし
て、ホストは CAN ISP デバイスの識別に他の方式を使用せざるをえないと推測されま
す。
D
•
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
13.4 API の説明
13.4.1 C_CAN API の呼び出し
ROM の固定領域には、ROM ドライバテーブルへのポインタが格納されています(0x1FFF
1FF8)。この領域はすべての LPC11C1x 部品で同一です。ROM ドライバテーブルには、CAN
API テーブルへのポインタが格納されています。この CAN API テーブルには、各種の CAN
API 関数へのポインタが格納されています。CAN API 関数は、C 構造体を使用して呼び出
すことができます。
Figure 48 は、オンチップ CAN API へのアクセスに使用されるポインタのメカニズムを示
しています。オンチップ RAM のアドレス 0x1000 0050 ∼ 0x1000 00B8 は、CAN API によっ
て使用されます。このアドレス範囲はアプリケーションでは使用できません。アプリケー
ションでオンチップ CAN API を使用する場合は、この領域がアプリケーションの変数ス
トレージに使用されないように、リンカ制御ファイルを適切に変更する必要があります。
C_CAN API
0x1FFF 1FF8
init_clk
Ptr to ROM Driver table
init_can
config_rxmsgobj
config_canopen
ROM Driver Table
Device 2
Ptr to C_CAN API Table 1
Ptr to Function 1
Ptr to Device Table 2
Ptr to Function 2
Ptr to Device Table 3
Ptr to Function 3
Ptr to Function n
Ptr to Device Table n
Fig 48. CAN API pointer structure
C 言語では、API 関数の呼び出しで参照される関数リストの構造体は以下のように記述さ
れます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
233
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
R
FT
FT
A
A
R
D
D
R
A
FT
D
R
A
ポインタを介して渡されるレジスタ値の配列に基づいて、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();
ユーザーマニュアル
F
D
D
13.4.2 CAN 初期化
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
A
FT
FT
A
A
R
R
D
D
D
(uint32_t * can_cfg);
(void);
(CAN_MSG_OBJ * msg_obj);
(CAN_MSG_OBJ * msg_obj);
(CAN_MSG_OBJ * msg_obj);
(CAN_CANOPENCFG * canopen_cfg);
(void);
(CAN_CALLBACKS * callback_cfg);
UM10398_0
R
R
FT
FT
A
A
R
R
D
D
D
typedef struct _CAND {
void
(*init_can)
void
(*isr)
void
(*config_rxmsgobj)
uint8_t (*can_receive)
void
(*can_transmit)
void
(*config_canopen)
void
(*canopen_handler)
void
(*config_calb)
} CAND;
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
234
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ポーリング済みの通信に対し、必要に応じて手動で割り込みハンドラを呼び出すことがで
きます。受信、送信、およびエラーに対するコールバック関数は、割り込みハンドラが呼
び出されたレベルと同レベルで、説明のとおりに実行されます。
D
FT
FT
A
A
R
R
D
R
A
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 メッセージオブジェクトが受信したメッセージを読み
取ることができます。メッセージオブジェクト構造体へのポインタはこの受信関数に渡
されます。関数を呼び出す前に、読み取るメッセージオブジェクトの番号をメッセージオ
ブジェクト構造体に設定しておく必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
235
A
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;
R
CAN 2.0a 11-bit ID
CAN 2.0b 29-bit ID
data frame
rtr frame
D
送信メッセージオブジェクトは使用時に自動的に設定されます。
FT
CAN API は 32 のメッセージオブジェクトを持つ完全な CAN モデルをサポートし、それを
使用しています。任意のメッセージオブジェクトを使用して、11 ビットまたは 29 ビット
の CAN メッセージを受信 / 送信することができます。また、RTR ビットが設定された(リ
モート送信)CAN メッセージもサポートされています。受信オブジェクトの場合は、メッ
セージ ID のマスクパターンによって一連のメッセージを受信できます(最大で、単一の
メッセージオブジェクトにバス上のすべての CAN メッセージを受信できます)。Section
12.9.3.4 も参照してください。
// control bits for CAN_MSG_OBJ.mode_id
#define CAN_MSGOBJ_STD 0x00000000UL
//
#define CAN_MSGOBJ_EXT 0x20000000UL
//
#define CAN_MSGOBJ_DAT 0x00000000UL
//
#define CAN_MSGOBJ_RTR 0x40000000UL
//
D
D
13.4.4 CAN Rx メッセージオブジェクトの設定
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
呼び出し例 :
D
R
FT
FT
A
A
R
R
D
D
D
void config_rxmsgobj (CAN_MSG_OBJ * msg_obj)
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
D
// Read out received message
msg_obj.msgobj = 5;
(*rom)->pCAND->can_receive(&msg_obj);
R
A
FT
D
R
A
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
236
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
A
F
FT
FT
A
A
R
R
R
D
FT
FT
A
A
R
R
D
0x40 // Object Dictionary entry segmented,
D
D
R
0x50 // Object Dictionary entry segmented,
A
FT
D
0x60 // Object Dictionary entry segmented,
R
A
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 bytes
const 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 care
const 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 },
};
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
A
D
D
0x30 // Object Dictionary entry expedited,
D
R
FT
FT
A
A
R
R
D
D
D
#define OD_EXP_RW
read-write
#define OD_SEG_RO
read-only
#define OD_SEG_WO
write-only
#define OD_SEG_RW
read-write
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
Rev. 00.15 — 2010 / 9 / 28
237
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
R
FT
FT
A
A
R
D
D
R
A
FT
D
R
A
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);
ユーザーマニュアル
F
D
D
// Initialize CANopen handler
(*rom)->pCAND->config_canopen((CAN_CANOPENCFG *)&myCANopen);
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
A
FT
FT
A
A
R
R
D
D
D
呼び出し例 :
UM10398_0
R
R
FT
FT
A
A
R
R
D
D
D
// CANopen configuration structure
const 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
};
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
238
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
uint8_t (*CANOPEN_sdo_req)(
uint8_t length_req, uint8_t *req_ptr, uint8_t *length_resp,
uint8_t *resp_ptr);
} CAN_CALLBACKS;
D
FT
FT
A
A
R
R
D
D
D
R
A
コールバックテーブル定義の例 :
FT
D
R
// List of callback function pointers
const 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,
};
A
呼び出し例 :
// Publish callbacks
(*rom)->pCAND->config_calb((CAN_CALLBACKS *)&callbacks);
13.4.10 CAN メッセージ受信コールバック
CAN メッセージ受信コールバック関数は、CAN 割り込みハンドラによって割り込みレベ
ルで呼び出されます。
呼び出し例 :
// CAN receive handler
void 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 割り込みハンドラによって
割り込みレベルで呼び出されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
239
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
R
FT
FT
A
A
R
D
D
R
A
FT
D
R
A
注意 : ユーザーの 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 handler
void 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 応答が生成される前に呼び出され、データの修正
または更新を可能にします。
ユーザーマニュアル
F
D
D
return;
}
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
A
FT
FT
A
A
R
R
D
D
D
// CAN transmit handler
void 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;
UM10398_0
R
R
FT
FT
A
A
R
R
D
D
D
呼び出し例 :
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
240
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
D
FT
FT
A
A
R
R
D
// CANopen callback for expedited read accesses
uint32_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++;
FT
A
A
R
R
D
D
D
呼び出し例 :
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
R
A
FT
D
R
A
注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコール
バック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで
実行されます。
13.4.14 CANopen SDO 高速書き込みコールバック
CANopen SDO 高速書き込みコールバック関数は、CANopen ハンドラによって呼び出さ
れます。このコールバックは新しいデータを渡します。新しいデータが書き込まれる前に
呼び出され、そのデータを拒否または調整できるようにします。
呼び出し例 :
// CANopen callback for expedited write accesses
uint32_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 割り込みハンドラによって呼び出されるため、割り込みレベルで
実行されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
return 0;
}
241
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
13.4.15 CANopen SDO セグメント読み取りコールバック
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
R
R
D
D
CANopen SDO セグメント読み取りコールバック関数は、CANopen ハンドラによって呼
FT
FT
A
A
び出されます。このコールバック関数によって、以下のアクションを実行できます。
すべてのデータが読み取られたときにチャネルをクローズする。
•
随時、送信をアボートする。
D
•
FT
最大 7 バイトのデータセグメントを読み取りホストに提供する。
A
•
R
読み取りチャネルのオープンを通知する。
D
•
D
R
A
// 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 accesses
uint32_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:
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
242
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
A
F
R
FT
FT
A
A
R
}
D
D
}
return 0;
R
A
FT
D
}
else
{
return SDO_ABORT_NOT_EXISTS;
}
R
A
}
注意 : 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 accesses
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)
{
static uint16_t write_ofs;
uint16_t i;
if ((index == 0x2200) && (subindex==0))
{
if (openclose == CAN_SDOSEG_OPEN)
{
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
D
D
*last = TRUE;
D
FT
FT
A
A
R
R
D
// this is last segment
{
Rev. 00.15 — 2010 / 9 / 28
243
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
D
D
R
A
注意 : CANopen の初期化時にフラグ isr_handled を TRUE に設定した場合、このコール
バック関数は CAN API 割り込みハンドラによって呼び出されるため、割り込みレベルで
実行されます。
13.4.17 CANopen フォールバック SDO ハンドラコールバック
CANopen SDO フォールバック SDO ハンドラコールバック関数は、CANopen ハンドラに
よって呼び出されます。この関数は、SDO 要求を処理できない場合や SDO 要求に SDO ア
ボート応答を返す場合に、常に呼び出されます。この関数は SDO 要求のデータバッファ
が満杯になると呼び出され、どのような種類の SDO 応答でも生成できるようにします。
また、この関数を使用してカスタム SDO ハンドラを実装することもできます(SDO ブ
ロック転送方式の実装など)。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
244
A
}
R
}
else
{
return SDO_ABORT_NOT_EXISTS;
}
D
}
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;
FT
// Initialize the write buffer
for (i=0; i<sizeof(write_buffer); i++)
{
write_buffer[i] = 0;
}
write_ofs = 0;
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 13 章:LPC11C1x C_CAN オンチップドライバ
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
// 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
D
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
// CANopen callback for custom SDO request handler
uint8_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 割り込みハンドラによって呼び出されるため、割り込みレベルで
実行されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
呼び出し例(カスタム処理を実装しない場合):
245
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ
(CT16B0/1)
R
R
R
D
D
D
F
FT
FT
A
A
ユーザーマニュアル
A
Rev. 00.15 — 2010 / 9 / 28
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
R
A
14.1 この章を読む前に
FT
D
R
A
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 出力として使用できま
す。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
246
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
F
FT
FT
A
A
A
D
FT
FT
A
A
R
R
D
D
D
キャプチャ入力を使用したパルス幅復調器
D
R
R
内部イベントカウント用のインターバルタイマ
R
A
D
D
R
A
フリーランニングタイマ
FT
D
マッチ出力を使用したパルス幅変調器
R
A
•
•
•
•
D
R
FT
FT
A
A
R
R
D
D
D
14.4 用途
14.5 説明
カウンタ / タイマは、ペリフェラルクロック(PCLK)または外部供給クロックのサイク
ルをカウントするように設計されています。4 つのマッチレジスタに基づく特定のタイマ
値によって、任意に割り込みを生成したりその他のアクションを実行することができま
す。各カウンタ / タイマは入力信号の遷移時にタイマ値をトラップする 1 つのキャプチャ
入力機能も備えており、任意に割り込みを生成できます。
PWM モードでは、3 つのマッチレジスタ(CT16B0)または 2 つのマッチレジスタ(CT16B1)
を使用して、シングルエッジ制御の PWM 出力をマッチ出力ピンに供給できます。PWM
サイクル長の制御には、ピンアウトされていないマッチレジスタを使用することをお勧め
ます。
注意 : 16 ビットカウンタ / タイマ 0(CT16B0)と 16 ビットカウンタ / タイマ 1(CT16B1)
は、ペリフェラルのベースアドレスを除き、機能的に同一です。
14.6 ピンの説明
Table 208 に各カウンタ / タイマに関連するピンの要約を示します。
Table 208. Counter/timer pin description
Pin
Type
Description
CT16B0_CAP0
CT16B1_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)によって制御します。
14.7 クロックと電力の制御
16 ビットタイマへのペリフェラルクロック(PCLK)はシステムクロックによって供給さ
れます(Figure 3 を参照)。これらのクロックは、節電のために、AHBCLKCTRL レジスタ
(Table 19)のビット 7 とビット 8 によってディスエーブルにすることができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
Rev. 00.15 — 2010 / 9 / 28
247
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
14.8 レジスタの説明
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
FT
FT
A
A
R
R
D
16 ビットカウンタ / タイマ 0 のレジスタは Table 209 に、16 ビットカウンタ / タイマ 1 の
レジスタは Table 210 に示されています。詳細は以下を参照してください。
D
D
R
A
FT
Table 209. Register overview: 16-bit counter/timer 0 CT16B0 (base address 0x4000 C000)
Reset
value[1]
TMR16B0IR
R/W
0x000
割り込みレジスタ(IR)。IR に書き込むことにより割り込みをクリアでき 0
ます。また、IR を読み取り、5 つの割り込みソースの中から保留中の割
り込みソースを特定することができます。
TMR16B0TCR
R/W
0x004
タイマ制御レジスタ(TCR)。TCR はタイマカウンタ機能の制御に使用し 0
ます。TCR によってタイマカウンタをディスエーブルにしたり、リセッ
トすることができます。
TMR16B0TC
R/W
0x008
タイマカウンタ(TC)。16 ビット TC は、PCLK の PR+1 サイクルごとに 0
インクリメントされます。TC は TCR によって制御されます。
TMR16B0PR
R/W
0x00C
プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値 0
と等しい場合、次のクロックによって TC がインクリメントされ、PC は
クリアされます。
TMR16B0PC
R/W
0x010
プリスケールカウンタ(PC)。16 ビット PC は、PR に格納されている値 0
に達するまでインクリメントされるカウンタです。PR の値に達すると、
TC がインクリメントされ、PC はクリアされます。PC はバスインター
フェースを介して監視および制御できます。
TMR16B0MCR
R/W
0x014
マッチ制御レジスタ(MCR)。MCR を使用し、一致した場合の割り込み 0
の生成および TC のリセットについて制御します。
TMR16B0MR0
R/W
0x018
マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、 0
MR0 が TC と一致するたびに、TC のリセット、TC と PC の停止、および
割り込みの生成を行うことができます。
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 入力でイベントが発生する 0
と、CR0 に TC の値がロードされます。
TMR16B0EMR
R/W
0x03C
外 部 マ ッ チ レ ジ ス タ(EMR)。マ ッ チ 機 能 お よ び 外 部 マ ッ チ ピ ン 0
CT16B0_MAT[2:0] を制御します。
-
-
0x040 0x06C
予約済み
TMR16B0CTCR
R/W
0x070
カウント制御レジスタ(CTCR)。CTCR を使用してタイマモードまたはカ 0
ウンタモードを選択します。カウンタモードでは、カウント用の信号と
エッジを選択できます。
TMR16B0PWMC
R/W
0x074
PWM 制御レジスタ(PWMCON)。外部マッチピン CT16B0_MAT[2:0] の 0
PWM モードをイネーブルにします。
-
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
248
A
Address Description
offset
R
Access
D
Name
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Access
Address Description
offset
Reset
value[1]
TMR16B1IR
R/W
0x000
割り込みレジスタ(IR)。IR に書き込むことにより割り込みをクリアでき 0
ます。また、IR を読み取り、5 つの割り込みソースの中から保留中の割
り込みソースを特定することができます。
TMR16B1TCR
R/W
0x004
タイマ制御レジスタ(TCR)。TCR はタイマカウンタ機能の制御に使用し 0
ます。TCR によってタイマカウンタをディスエーブルにしたり、リセッ
トすることができます。
TMR16B1TC
R/W
0x008
タイマカウンタ(TC)。16 ビット TC は、PCLK の PR+1 サイクルごとに 0
インクリメントされます。TC は TCR によって制御されます。
TMR16B1PR
R/W
0x00C
プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値 0
と等しい場合、次のクロックによって TC がインクリメントされ、PC は
クリアされます。
TMR16B1PC
R/W
0x010
プリスケールカウンタ(PC)。16 ビット PC は、PR に格納されている値 0
に達するまでインクリメントされるカウンタです。PR の値に達すると、
TC がインクリメントされ、PC はクリアされます。PC はバスインター
フェースを介して監視および制御できます。
TMR16B1MCR
R/W
0x014
マッチ制御レジスタ(MCR)。MCR を使用し、一致した場合の割り込み 0
の生成および TC のリセットについて制御します。
TMR16B1MR0
R/W
0x018
マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、 0
MR0 が TC と一致するたびに、TC のリセット、TC と PC の停止、および
割り込みの生成を行うことができます。
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 入力でイベントが発生す 0
ると、CR0 に TC の値がロードされます。
TMR16B1EMR
R/W
0x03C
外 部 マ ッ チ レ ジ ス タ(EMR)。マ ッ チ 機 能 お よ び 外 部 マ ッ チ ピ ン 0
CT16B1_MAT[1:0] を制御します。
-
-
0x040 0x06C
予約済み
TMR16B1CTCR
R/W
0x070
カウント制御レジスタ(CTCR)。CTCR を使用してタイマモードまたはカ 0
ウンタモードを選択します。カウンタモードでは、カウント用の信号と
エッジを選択できます。
TMR16B1PWMC
R/W
0x074
PWM 制御レジスタ(PWMCON)。外部マッチピン CT16B1_MAT[1:0] の 0
PWM モードをイネーブルにします。
F
FT
FT
Name
A
A
A
R
R
D
D
D
Table 210. Register overview: 16-bit counter/timer 1 CT16B1 (base address 0x4001 0000)
D
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
14.8.1 割り込みレジスタ(TMR16B0IR および TMR16B1IR)
割り込みレジスタ(IR)は、マッチ割り込み用の 4 ビットとキャプチャ割り込み用の 1
ビットで構成されています。割り込みが発生すると、IR の対応するビットが HIGH になり
ます。それ以外の場合、対応ビットは LOW になります。対応する IR ビットにロジック 1
を書き込むと、割り込みはリセットされます。0 を書き込んでも影響はありません。
© NXP B.V. 2010. All rights reserved.
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
-
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
UM10398_0
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
249
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
Description
Reset value
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
-
予約済み
-
D
Symbol
0
FT
FT
A
A
R
R
D
Bit
F
FT
FT
A
A
R
R
D
D
D
Table 211. Interrupt Register (TMR16B0IR - address 0x4000 C000 and TMR16B1IR - address 0x4001 0000) bit
description
R
A
FT
D
R
A
タイマ制御レジスタ(TCR)は、カウンタ / タイマの動作の制御に使用します。
Table 212. Timer Control Register (TMR16B0TCR - address 0x4000 C004 and TMR16B1TCR address 0x4001 0004) bit description
Bit
Symbol
0
Counter Enable 値が 1 の場合は、タイマカウンタとプリスケールカウン 0
タのカウント動作がイネーブルになります。値が 0 の場
合は、カウンタはディスエーブルになります。
Counter Reset 値が 1 の場合は、PCLK の次のポジティブエッジで、タ 0
イマカウンタとプリスケールカウンタが同時にリセッ
トされます。TCR[1] が 0 に戻るまで、カウンタはリセッ
トされた状態になります。
予約済み。ユーザーソフトウェアによって予約ビットに NA
1 を書き込まないでください。予約ビットから読み取っ
た値は未定義です。
1
31:2
Reset value
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 ビットプリスケールレジスタは、プリスケールカウンタの最大値を指定します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
14.8.2 タイマ制御レジスタ(TMR16B0TCR および TMR16B1TCR)
Description
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
250
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
14.8.5 プリスケールカウンタレジスタ(TMR16B0PC - アドレス 0x4000 C010、
TMR16B1PC - アドレス 0x4001 0010)
D
FT
FT
A
A
R
R
D
16 ビットプリスケールカウンタは、タイマカウンタに分周クロックが供給される前段階
で、一定値による PCLK の分周を制御します。これによって、タイマの分解能と、タイマ
D
D
R
A
がオーバーフローするまでの最大時間の関係を制御できます。プリスケールカウンタは
1PCLK ごとにインクリメントされます。このカウンタがプリスケールレジスタに格納さ
れている値に達すると、タイマカウンタがインクリメントされ、プリスケールカウンタは
次の PCLK でリセットされます。これによって TC は、PR = 0 の場合は 1PCLK ごとに、
PR = 1 の場合は 2PCLK ごとに、以下同様にインクリメントされていきます。
FT
Bit
Symbol
Value Description
Reset
value
0
MR0I
1
MR0 による割り込み : MR0 が TC の値と一致した場合に、割り込みを生成します。
0
0
この割り込みはディスエーブルです。
1
MR0 によるリセット : MR0 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
MR0 による停止: MR0がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
1
MR1 による割り込み : MR1 が TC の値と一致した場合に、割り込みを生成します。
0
この割り込みはディスエーブルです。
1
MR1 によるリセット : MR1 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
MR1 による停止: MR1がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
1
MR2 による割り込み : MR2 が TC の値と一致した場合に、割り込みを生成します。
0
この割り込みはディスエーブルです。
1
MR2 によるリセット : MR2 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
MR2 による停止: MR2がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
1
MR3 による割り込み : MR3 が TC の値と一致した場合に、割り込みを生成します。
0
この割り込みはディスエーブルです。
1
MR3 によるリセット : MR3 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
2
3
4
5
6
7
8
9
10
MR0R
MR0S
MR1I
MR1R
MR1S
MR2I
MR2R
MR2S
MR3I
MR3R
0
0
0
0
0
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
Rev. 00.15 — 2010 / 9 / 28
251
A
Table 213. Match Control Register (TMR16B0MCR - address 0x4000 C014 and TMR16B1MCR - address 0x4001 0014)
bit description
R
マッチ制御レジスタを使用して、マッチレジスタの 1 つがタイマカウンタと一致したと
きに実行する動作を制御します。各ビットの機能については、Table 213 を参照してくだ
さい。
D
14.8.6 マッチ制御レジスタ(TMR16B0MCR および TMR16B1MCR)
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
Reset
value
11
MR3S
1
MR3 による停止: MR3がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
FT
FT
A
A
R
R
Value Description
D
Symbol
D
Bit
F
FT
FT
A
A
R
R
D
D
Table 213. Match Control Register (TMR16B0MCR - address 0x4000 C014 and TMR16B1MCR - address 0x4001 0014)
bit description (続き)
D
R
A
FT
D
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 NA
予約ビットから読み取った値は未定義です。
R
A
-
D
31:12
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)を示しています。
Table 214. Capture Control Register (TMR16B0CCR - address 0x4000 C028 and TMR16B1CCR - address
0x4001 0028) bit description
Bit
Symbol
Value Description
0
CAP0RE
1
CT16Bn_CAP0 立ち上がりエッジでキャプチャ: CT16Bn_CAP0 における 0 から 1 への変 0
化によって、CR0 に TC の値がロードされます。
0
この機能はディスエーブルです。
1
CT16Bn_CAP0 立ち下がりエッジでキャプチャ: CT16Bn_CAP0 における 1 から 0 への変 0
化によって、CR0 に TC の値がロードされます。
0
この機能はディスエーブルです。
1
CT16Bn_CAP0 イベントによる割り込み : CT16Bn_CAP0 イベントに起因する CR0 への 0
ロードによって割り込みが発生します。
0
この機能はディスエーブルです。
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 NA
予約ビットから読み取った値は未定義です。
1
2
31:3
CAP0FE
CAP0I
-
Reset
value
14.8.9 キャプチャレジスタ(CT16B0CR0 - アドレス 0x4000 C02C、
CT16B1CR0 - アドレス 0x4001 002C)
各キャプチャレジスタはデバイスピンに対応しており、指定されたイベントがピンで発生
したときにカウンタ / タイマの値がロードされます。キャプチャ機能をイネーブルにする
か否か、およびキャプチャイベントが発生するエッジ(関連するピンの立ち上がりエッ
ジ、立ち下がりエッジ、または両エッジ)はキャプチャ制御レジスタの設定により決定さ
れます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
252
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
外部マッチレジスタは、外部マッチチャネルと外部マッチピン(CT16B0_MAT[2:0] および
CT16B1_MAT[1:0])のステータスを示し、それらを制御できるようにします。
F
FT
FT
A
A
R
R
D
D
D
14.8.10 外部マッチレジスタ(TMR16B0EMR および TMR16B1EMR)
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
D
R
マッチ出力が PWMCON レジスタ(Section 14.8.12)で PWM 出力として設定されている
場合、外部マッチレジスタの機能は PWM ルールにより決定されます(256 ページの 14.8.13
「シングルエッジ制御の PWM 出力のルール」)。
A
Reset
value
0
EM0
外部マッチ 0。このビットは出力 CT16B0_MAT0/CT16B1_MAT0 の状態を反映します(出力 0
がそのピンに接続しているか否かは問いません)。TC と MR0 が一致した場合、このビッ
トはトグル出力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能は
ビット EMR[5:4] によって制御されます。IOCON レジスタでマッチ機能が選択されている
場合(0 = LOW、1 = HIGH)、このビットは CT16B0_MAT0/CT16B1_MAT0 ピンに駆動され
ます。
1
EM1
外部マッチ 1。このビットは出力 CT16B0_MAT1/CT16B1_MAT1 の状態を反映します(出力 0
がそのピンに接続しているか否かは問いません)。TC と MR1 が一致した場合、このビッ
トはトグル出力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能は
ビット EMR[7:6] によって制御されます。IOCON レジスタでマッチ機能が選択されている
場合(0 = LOW、1 = HIGH)、このビットは CT16B0_MAT1/CT16B1_MAT1 ピンに駆動され
ます。
2
EM2
外部マッチ 2。このビットはマッチチャネル 2 の出力の状態を反映します(出力がそのピ 0
ンに接続しているか否かは問いません)TC と MR2 が一致した場合、このビットはトグル
出力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能はビット
EMR[9:8] によって制御されます。カウンタ / タイマ 0 ではこのマッチチャネルはピンアウ
トされないので注意してください。IOCON レジスタでマッチ機能が選択されている場合
(0 = LOW、1 = HIGH)、このビットは CT16B1_MAT2 ピンに駆動されます。
3
EM3
外部マッチ 3。このビットはマッチチャネル 3 の出力の状態を反映します。TC と MR3 が一 0
致した場合、このビットはトグル出力、LOW 出力、HIGH 出力、または変化なしとなりま
す。この出力の機能はビット EMR[11:10] によって制御されます。どちらの 16 ビットタイ
マにもこのチャネル用の出力ピンはありません。
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
約ビットから読み取った値は未定義です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
253
A
Description
R
Symbol
D
Bit
FT
Table 215. External Match Register (TMR16B0EMR - address 0x4000 C03C and TMR16B1EMR - address
0x4001 003C) bit description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
Function
D
A
FT
FT
A
A
R
R
R
D
A
A
R
R
D
EMR[11:10], EMR[9:8],
EMR[7:6], or EMR[5:4]
D
D
D
Table 216. External match control
変化なし。
01
対 応 す る 外 部 マ ッチビット / 出力を 0 にクリアします(ピンアウトされた場合、
CT16Bn_MATm ピンは LOW)。
10
対 応 す る 外 部 マ ッ チビット / 出力を 1 に設定します(ピンアウトされた場合、
CT16Bn_MATm ピンは HIGH)。
11
対応する外部マッチビット / 出力をトグル出力します。
FT
FT
00
D
D
R
A
FT
カウンタへの外部供給クロックを有効に処理するために、いくつかの制限があります。選
択された CAP 入力の 1 つのエッジを識別するのに、PCLK クロックの 2 つの連続する立ち
上がりエッジが使用されるため、CAP 入力の周波数は PCLK クロックの 1/2 以下でなけれ
ばなりません。したがってその場合、同じ CAP 入力の HIGH/LOW レベルの継続時間を 1/
(2 × PCLK)よりも短くすることはできません。
Table 217. Count Control Register (TMR16B0CTCR - address 0x4000 C070 and
TMR16B1CTCR - address 0x4001 0070) bit description
Bit
Symbol
1:0
Counter/
Timer
Mode
Value
Description
Reset
value
このフィールドでは、タイマのプリスケールカウンタ(PC) 00
のインクリメント、または PC のクリアとタイマカウンタ
(TC)のインクリメントを行う PCLK の立ち上がりエッジを
選択します。
00
タイマモード : PCLK のすべての立ち上がりエッジ
01
カウンタモード : ビット 3 ∼ 2 で選択された CAP 入力の立ち
上がりエッジで TC をインクリメントします。
10
カウンタモード : ビット 3 ∼ 2 で選択された CAP 入力の立ち
下がりエッジで TC をインクリメントします。
11
カウンタモード : ビット 3 ∼ 2 で選択された CAP 入力の両方
のエッジで、TC をインクリメントします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
254
A
動作モードとしてカウンタモードを選択した場合、(CTCR ビット 3 ∼ 2 で選択された)
CAP 入力が PCLK クロックの立ち上がりエッジごとにサンプリングされます。CAP 入力の
2 つの連続するサンプルを比較した後、4 つのイベント(選択された CAP 入力のレベルの
立ち上がりエッジ、立ち下がりエッジ、両方のエッジ、変化なし)のいずれかとして認識
されます。その識別されたイベントが発生し、それが CTCR レジスタのビット 1 ∼ 0 で選
択されたイベントと一致した場合にのみ、タイマカウンタレジスタがインクリメントされ
ます。
R
カウント制御レジスタ(CTCR)を使用して、タイマモードまたはカウンタモードを選択
します。カウンタモードでは、カウント用のピンとエッジを選択できます。
D
14.8.11 カウント制御レジスタ(TMR16B0CTCR および TMR16B1CTCR)
ユーザーマニュアル
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
D
R
F
FT
A
A
D
Reset
value
FT
FT
A
A
R
R
D
Description
FT
Count
Input
Select
A
3:2
Value
FT
R
R
Symbol
A
D
D
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 217. Count Control Register (TMR16B0CTCR - address 0x4000 C070 and
TMR16B1CTCR - address 0x4001 0070) bit description(続き)
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
R
A
予約済み
注記 :CTCR レジスタでカウンタモードを選択した場合は、
キャプチャ制御レジスタ(CCR)のビット 2 ∼ 0 を 000 に設
定する必要があります。
31:4
-
11
予約済み
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を NA
書き込まないでください。予約ビットから読み取った値は未
定義です。
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 マッチ出力がすべてクリアされます。
Table 218. PWM Control Register (TMR16B0PWMC - address 0x4000 C074 and
TMR16B1PWMC- address 0x4001 0074) bit description
Bit
Symbol
Description
0
PWM enable
値が 1 の場合は、CT16Bn_MAT0 に対して PWM モードがイ 0
ネーブルになります。値が 0 の場合は、CT16Bn_MAT0 は
EM0 により制御されます。
1
PWM enable
値が 1 の場合は、CT16Bn_MAT1 に対して PWM モードがイ 0
ネーブルになります。値が 0 の場合は、CT16Bn_MAT1 は
EM1 により制御されます。
ユーザーマニュアル
Reset value
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
予約済み
10
FT
01
A
CT16Bn_CAP0
R
00
D
カウンタモード(このレジスタのビット 1 ∼ 0 が 00 ではな 00
い場合)では、これらのビットによって、クロッキング用に
サンプリングする CAP ピンを選択します。
255
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
FT
FT
A
A
R
D
D
値が 1 の場合は、マッチチャネル 3 に対して PWM モー 0
ドがイネーブルになります(マッチチャネル 3)。値が 0
の場合は、マッチチャネル 3 は EM3 によって制御され
ます(マッチチャネル 3)。
A
PWM enable
R
3
D
値が 1 の場合は、マッチチャネル 2 またはピン 0
CT16Bn_MAT2 に対して PWM モードがイネーブルにな
ります。値が 0 の場合は、マッチチャネル 2 またはピン
CT16Bn_MAT2 は EM2 により制御されます。タイマ 1 で
はマッチチャネル 2 はピンアウトされません。
FT
Reset value
D
PWM enable
FT
2
R
A
A
Description
D
R
R
Symbol
R
A
D
D
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 218. PWM Control Register (TMR16B0PWMC - address 0x4000 C074 and
TMR16B1PWMC- address 0x4001 0074) bit description(続き)
R
A
FT
D
R
A
注記 : マッチチャネル 3 はピンアウトされていないため、
マッチチャネル 3 を使用して PWM サイクルを設定する
ことをお勧めします。
31:4
-
予約済み。ユーザーソフトウェアによって予約ビットに NA
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 に設定すると、タイマ値が対応するマッチレジスタの値と
一致したときにタイマリセットがイネーブルになります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
256
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
D
FT
FT
A
A
R
R
D
MR0 = 65
A
FT
FT
PWM0/MAT0
R
A
A
MR1 = 41
D
R
R
PWM1/MAT1
R
A
D
D
MR2 = 100
D
R
FT
FT
A
A
R
R
D
D
D
PWM2/MAT2
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
D
R
A
FT
D
R
A
0
41
65
100
(counter is reset)
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.
14.9 タイマ動作の例
Figure 50 に示すタイマは、一致した場合にカウントをリセットして割り込みを生成する
ように設定されています。プリスケーラは 2 に設定され、マッチレジスタは 6 に設定され
ています。一致が生じるタイマサイクルの終了時に、タイマカウントがリセットされま
す。これによって、マッチ値にサイクルの全長が設定されます。タイマがマッチ値に達し
た後の次のクロックで、一致が生じたことを示す割り込みが生成されます。
Figure 51 に示すタイマは、一致した場合に停止して割り込みを生成するように設定され
ています。プリスケーラは再び 2 に設定され、マッチレジスタは 6 に設定されています。
タイマがマッチ値に達した後の次のクロックで、TCR のタイマイネーブルビットがクリア
され、一致が生じたことを示す割り込みが生成されます。
PCLK
prescale
counter
2
timer
counter
4
0
1
5
2
0
1
2
6
0
1
0
2
0
1
1
timer counter
reset
interrupt
Fig 50. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
257
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
R
FT
0
FT
2
A
1
A
R
FT
D
0
R
A
1
6
A
5
R
4
interrupt
Fig 51. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
TCR[0]
(counter enable)
0
F
D
D
timer counter
2
A
FT
FT
A
A
R
R
D
D
D
prescale counter
R
R
FT
FT
A
A
R
R
D
D
D
PCLK
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
Rev. 00.15 — 2010 / 9 / 28
258
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
D
FT
FT
A
A
R
R
D
Figure 52 に、カウンタ / タイマ 0 およびカウンタ / タイマ 1 のブロック図を示します。
F
FT
FT
A
A
R
R
D
D
D
14.10 アーキテクチャ
FT
FT
FT
FT
第 14 章:LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1)
D
D
R
A
FT
MATCH REGISTER 0
D
R
A
MATCH REGISTER 1
MATCH REGISTER 2
MATCH REGISTER 3
MATCH CONTROL REGISTER
EXTERNAL MATCH REGISTER
INTERRUPT REGISTER
CONTROL
=
MATn[2:0]
INTERRUPT
=
CAP0
=
STOP ON MATCH
RESET ON MATCH
LOAD[3:0]
=
CAPTURE CONTROL REGISTER
CSN
TIMER COUNTER
CE
CAPTURE REGISTER 0
TCI
PCLK
PRESCALE COUNTER
reset
enable
TIMER CONTROL REGISTER
MAXVAL
PRESCALE REGISTER
Fig 52. 16-bit counter/timer block diagram
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
259
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ
(CT32B0/1)
R
R
R
D
D
D
F
FT
FT
A
A
ユーザーマニュアル
A
Rev. 00.15 — 2010 / 9 / 28
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
R
A
15.1 この章を読む前に
FT
D
R
A
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 出力として使用できま
す。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
260
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
F
FT
FT
A
A
A
D
FT
FT
A
A
R
R
D
D
D
キャプチャ入力を使用したパルス幅復調器
D
R
R
内部イベントカウント用のインターバルタイマ
R
A
D
D
R
A
フリーランニングタイマ
FT
D
マッチ出力を使用したパルス幅変調器
R
A
•
•
•
•
D
R
FT
FT
A
A
R
R
D
D
D
15.4 用途
15.5 説明
カウンタ / タイマは、ペリフェラルクロック(PCLK)または外部供給クロックのサイク
ルをカウントするように設計されています。4 つのマッチレジスタに基づく特定のタイマ
値によって、任意に割り込みを生成したりその他のアクションを実行することができま
す。各カウンタ / タイマは入力信号の遷移時にタイマ値をトラップする 1 つのキャプチャ
入力機能も備えており、任意に割り込みを生成できます。
PWM モードでは、3 つのマッチレジスタを使用して、シングルエッジ制御の PWM 出力
をマッチ出力ピンに供給できます。PWM サイクルの長さは 1 つのマッチレジスタによっ
て制御されます。
注意 : 32 ビットカウンタ / タイマ 0(CT32B0)と 32 ビットカウンタ / タイマ 1(CT32B1)
は、ペリフェラルのベースアドレスを除き、機能的に同一です。
15.6 ピンの説明
Table 219 に各カウンタ / タイマに関連するピンの要約を示します。
Table 219. Counter/timer pin description
Pin
Type
Description
CT32B0_CAP0
CT32B1_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)によって制御します。
15.7 クロックと電力の制御
32 ビットタイマへのペリフェラルクロック(PCLK)はシステムクロックによって供給さ
れます(Figure 3 を参照)。これらのクロックは、節電のために、AHBCLKCTRL レジスタ
(Table 19)のビット 9 とビット 10 によってディスエーブルにすることができます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
Rev. 00.15 — 2010 / 9 / 28
261
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
15.8 レジスタの説明
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
FT
FT
A
A
R
R
D
32 ビットカウンタ / タイマ 0 のレジスタは Table 220 に、32 ビットカウンタ / タイマ 1 の
レジスタは Table 221 に示されています。詳細は以下を参照してください。
D
D
R
A
FT
Table 220. Register overview: 32-bit counter/timer 0 CT32B0 (base address 0x4001 4000)
Reset
value[1]
TMR32B0IR
R/W
0x000
割り込みレジスタ(IR)。IR に書き込むことにより割り込みをクリアで 0
きます。また、IR を読み取り、5 つの割り込みソースの中から保留中の
割り込みソースを特定することができます。
TMR32B0TCR
R/W
0x004
タイマ制御レジスタ(TCR)。TCR はタイマカウンタ機能の制御に使用し 0
ます。TCR によってタイマカウンタをディスエーブルにしたり、リセッ
トすることができます。
TMR32B0TC
R/W
0x008
タイマカウンタ(TC)。32 ビット TC は、PCLK の PR+1 サイクルごとに 0
インクリメントされます。TC は TCR によって制御されます。
TMR32B0PR
R/W
0x00C
プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値 0
と等しい場合、次のクロックによって TC がインクリメントされ、PC は
クリアされます。
TMR32B0PC
R/W
0x010
プリスケールカウンタ(PC)。32 ビット PC は、PR に格納されている値 0
に達するまでインクリメントされるカウンタです。PR の値に達すると、
TC がインクリメントされ、PC はクリアされます。PC はバスインター
フェースを介して監視および制御できます。
TMR32B0MCR
R/W
0x014
マッチ制御レジスタ(MCR)。MCR を使用し、一致した場合の割り込み 0
の生成および TC のリセットについて制御します。
TMR32B0MR0
R/W
0x018
マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、 0
MR0 が TC と一致するたびに、TC のリセット、TC と PC の停止、および
割り込みの生成を行うことができます。
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 入力でイベントが発生す 0
ると、CR0 に TC の値がロードされます。
TMR32B0EMR
R/W
0x03C
外 部 マ ッ チ レ ジ ス タ(EMR)。マ ッ チ 機 能 お よ び 外 部 マ ッ チ ピ ン 0
CT32B0_MAT[3:0] を制御します。
-
-
0x040 0x06C
予約済み
TMR32B0CTCR
R/W
0x070
カウント制御レジスタ(CTCR)。CTCR を使用してタイマモードまたは 0
カウンタモードを選択します。カウンタモードでは、カウント用の信号
とエッジを選択できます。
TMR32B0PWMC
R/W
0x074
PWM 制御レジスタ(PWMCON)。外部マッチピン CT32B0_MAT[3:0] の 0
PWM モードをイネーブルにします。
-
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
262
A
Address Description
offset
R
Access
D
Name
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Access
Address Description
offset
Reset
value[1]
TMR32B1IR
R/W
0x000
割り込みレジスタ(IR)。IR に書き込むことにより割り込みをクリアで 0
きます。また、IR を読み取り、5 つの割り込みソースの中から保留中の
割り込みソースを特定することができます。
TMR32B1TCR
R/W
0x004
タイマ制御レジスタ(TCR)。TCR はタイマカウンタ機能の制御に使用し 0
ます。TCR によってタイマカウンタをディスエーブルにしたり、リセッ
トすることができます。
TMR32B1TC
R/W
0x008
タイマカウンタ(TC)。32 ビット TC は、PCLK の PR+1 サイクルごとに 0
インクリメントされます。TC は TCR によって制御されます。
TMR32B1PR
R/W
0x00C
プリスケールレジスタ(PR)。プリスケールカウンタ(下記)がこの値 0
と等しい場合、次のクロックによって TC がインクリメントされ、PC は
クリアされます。
TMR32B1PC
R/W
0x010
プリスケールカウンタ(PC)。32 ビット PC は、PR に格納されている値 0
に達するまでインクリメントされるカウンタです。PR の値に達すると、
TC がインクリメントされ、PC はクリアされます。PC はバスインター
フェースを介して監視および制御できます。
TMR32B1MCR
R/W
0x014
マッチ制御レジスタ(MCR)。MCR を使用し、一致した場合の割り込み 0
の生成および TC のリセットについて制御します。
TMR32B1MR0
R/W
0x018
マッチレジスタ 0(MR0)。MCR を介して MR0 をイネーブルにすると、 0
MR0 が TC と一致するたびに、TC のリセット、TC と PC の停止、および
割り込みの生成を行うことができます。
F
FT
FT
Name
A
A
A
R
R
D
D
D
Table 221. Register overview: 32-bit counter/timer 1 CT32B1 (base address 0x4001 8000)
D
マッチレジスタ 3(MR3)。MR0 の説明を参照してください。
0
TMR32B1CCR
R/W
0x028
キャプチャ制御レジスタ(CCR)。キャプチャイベントの発生時に、キャ 0
プチャレジスタへのロードに使用するキャプチャ入力のエッジを指定
し、割り込みを生成するか否かを制御します。
TMR32B1CR0
RO
0x02C
キャプチャレジスタ 0(CR0)。CT32B1_CAP0 入力でイベントが発生す 0
ると、CR0 に TC の値がロードされます。
TMR32B1EMR
R/W
0x03C
外 部 マ ッ チ レ ジ ス タ(EMR)。マ ッ チ 機 能 お よ び 外 部 マ ッ チ ピ ン 0
CT32B1_MAT[3:0] を制御します。
-
-
0x040 0x06C
予約済み
TMR32B1CTCR
R/W
0x070
カウント制御レジスタ(CTCR)。CTCR を使用してタイマモードまたは 0
カウンタモードを選択します。カウンタモードでは、カウント用の信号
とエッジを選択できます。
TMR32B1PWMC
R/W
0x074
PWM 制御レジスタ(PWMCON)。外部マッチピン CT32B1_MAT[3:0] の 0
PWM モードをイネーブルにします。
A
0x024
R
R/W
D
TMR32B1MR3
D
0
FT
マッチレジスタ 2(MR2)。MR0 の説明を参照してください。
A
0
R
マッチレジスタ 1(MR1)。MR0 の説明を参照してください。
D
0x01C
0x020
FT
R/W
R/W
FT
A
A
R
R
D
TMR32B1MR1
TMR32B1MR2
-
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
15.8.1 割り込みレジスタ(TMR32B0IR および TMR32B1IR)
割り込みレジスタは、マッチ割り込み用の 4 ビットとキャプチャ割り込み用の 1 ビット
で構成されています。割り込みが発生すると、IR の対応するビットが HIGH になります。
それ以外の場合、対応ビットは LOW になります。対応する IR ビットにロジック 1 を書き
込むと、割り込みはリセットされます。0 を書き込んでも影響はありません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
263
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
Description
Reset value
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
-
予約済み
-
D
Symbol
0
FT
FT
A
A
R
R
D
Bit
F
FT
FT
A
A
R
R
D
D
D
Table 222: Interrupt Register (TMR32B0IR - address 0x4001 4000 and TMR32B1IR - address 0x4001 8000) bit
description
D
D
R
A
FT
D
R
A
15.8.2 タイマ制御レジスタ(TMR32B0TCR および TMR32B1TCR)
タイマ制御レジスタ(TCR)は、カウンタ / タイマの動作の制御に使用します。
Table 223: Timer Control Register (TMR32B0TCR - address 0x4001 4004 and TMR32B1TCR address 0x4001 8004) bit description
Bit
Symbol
0
Counter Enable 値が 1 の場合は、タイマカウンタとプリスケールカウン 0
タのカウント動作がイネーブルになります。値が 0 の場
合は、カウンタはディスエーブルになります。
Counter Reset 値が 1 の場合は、PCLK の次のポジティブエッジで、タ 0
イマカウンタとプリスケールカウンタが同時にリセッ
トされます。TCR[1] が 0 に戻るまで、カウンタはリセッ
トされた状態になります。
予約済み。ユーザーソフトウェアによって予約ビットに NA
1 を書き込まないでください。予約ビットから読み取っ
た値は未定義です。
1
31:2
Description
Reset value
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 ビットプリスケールレジスタは、プリスケールカウンタの最大値を指定します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
264
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
15.8.5 プリスケールカウンタレジスタ(TMR32B0PC - アドレス 0x4001 4010、
TMR32B1PC - アドレス 0x4001 8010)
D
FT
FT
A
A
R
R
D
32 ビットプリスケールカウンタは、タイマカウンタに分周クロックが供給される前段階
で、一定値による PCLK の分周を制御します。これによって、タイマの分解能と、タイマ
D
D
R
A
がオーバーフローするまでの最大時間の関係を制御できます。プリスケールカウンタは
1PCLK ごとにインクリメントされます。このカウンタがプリスケールレジスタに格納さ
れている値に達すると、タイマカウンタがインクリメントされ、プリスケールカウンタは
次の PCLK でリセットされます。これによって TC は、PR = 0 の場合は 1PCLK ごとに、
PR = 1 の場合は 2PCLK ごとに、以下同様にインクリメントされていきます。
FT
Bit
Symbol
Value Description
Reset
value
0
MR0I
1
MR0 による割り込み : MR0 が TC の値と一致した場合に、割り込みを生成します。
0
0
この割り込みはディスエーブルです。
1
MR0 によるリセット : MR0 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
MR0 による停止: MR0がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
1
MR1 による割り込み : MR1 が TC の値と一致した場合に、割り込みを生成します。
0
この割り込みはディスエーブルです。
1
MR1 によるリセット : MR1 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
MR1 による停止: MR1がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
1
MR2 による割り込み : MR2 が TC の値と一致した場合に、割り込みを生成します。
0
この割り込みはディスエーブルです。
1
MR2 によるリセット : MR2 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
MR2 による停止: MR2がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
1
MR3 による割り込み : MR3 が TC の値と一致した場合に、割り込みを生成します。
0
この割り込みはディスエーブルです。
1
MR3 によるリセット : MR3 が TC と一致した場合に、TC をリセットします。
0
機能はディスエーブルです。
1
2
3
4
5
6
7
8
9
10
MR0R
MR0S
MR1I
MR1R
MR1S
MR2I
MR2R
MR2S
MR3I
MR3R
0
0
0
0
0
0
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
0
Rev. 00.15 — 2010 / 9 / 28
265
A
Table 224: Match Control Register (TMR32B0MCR - address 0x4001 4014 and TMR32B1MCR - address 0x4001 8014)
bit description
R
マッチ制御レジスタを使用して、マッチレジスタの 1 つがタイマカウンタと一致したと
きに実行する動作を制御します。各ビットの機能については、Table 224 を参照してくだ
さい。
D
15.8.6 マッチ制御レジスタ(TMR32B0MCR および TMR32B1MCR)
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
Reset
value
11
MR3S
1
MR3 による停止: MR3がTC と一致した場合に、TCとPC を停止し、TCR[0]を 0に設定します。 0
0
機能はディスエーブルです。
FT
FT
A
A
R
R
Value Description
D
Symbol
D
Bit
F
FT
FT
A
A
R
R
D
D
Table 224: Match Control Register (TMR32B0MCR - address 0x4001 4014 and TMR32B1MCR - address 0x4001 8014)
bit descriptionÅië±Ç´Åj
D
R
A
FT
D
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 NA
予約ビットから読み取った値は未定義です。
R
A
-
D
31:12
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)を示しています。
Table 225: Capture Control Register (TMR32B0CCR - address 0x4001 4028 and TMR32B1CCR - address
0x4001 8028) bit description
Bit
Symbol
Value Description
0
CAP0RE
1
CT32Bn_CAP0 立ち上がりエッジでキャプチャ: CT32Bn_CAP0 における 0 から 1 への変 0
化によって、CR0 に TC の値がロードされます。
0
この機能はディスエーブルです。
1
CT32Bn_CAP0 立ち下がりエッジでキャプチャ: CT32Bn_CAP0 における 1 から 0 への変 0
化によって、CR0 に TC の値がロードされます。
0
この機能はディスエーブルです。
1
CT32Bn_CAP0 イベントによる割り込み : CT32Bn_CAP0 イベントに起因する CR0 への 0
ロードによって割り込みが発生します。
0
この機能はディスエーブルです。
1
2
31:3
CAP0FE
CAP0I
-
Reset
value
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 NA
予約ビットから読み取った値は未定義です。
15.8.9 キャプチャレジスタ(TMR32B0CR0 - アドレス 0x4001 402C、
TMR32B1CR0 - アドレス 0x4001 802C)
各キャプチャレジスタはデバイスピンに対応しており、指定されたイベントがピンで発生
したときにタイマカウンタの値がロードされます。キャプチャ機能をイネーブルにするか
否か、およびキャプチャイベントが発生するエッジ(関連するピンの立ち上がりエッジ、
立ち下がりエッジ、または両エッジ)はキャプチャ制御レジスタの設定により決定されま
す。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
266
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
外部マッチレジスタは、外部マッチピン CAP32Bn_MAT[3:0] のステータスを示し、それら
を制御できるようにします。
F
FT
FT
A
A
R
R
D
D
D
15.8.10 外部マッチレジスタ(TMR32B0EMR および TMR32B1EMR)
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
D
R
マッチ出力が PWM 出力として設定されている場合、外部マッチレジスタの機能は PWM
ルールにより決定されます(270 ページの 15.8.13 「シングルエッジ制御の PWM 出力の
ルール」)。
A
Reset
value
0
EM0
外部マッチ 0。このビットは出力 CT32Bn_MAT0 の状態を反映します(出力がそのピンに 0
接続しているか否かは問いません)。TC と MR0 が一致した場合、このビットはトグル出
力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能はビット EMR[5:4]
によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、
1 = HIGH)、このビットは CT32B0_MAT0/CT32B1_MAT0 ピンに駆動されます。
1
EM1
外部マッチ 1。このビットは出力 CT32Bn_MAT1 の状態を反映します(出力がそのピンに 0
接続しているか否かは問いません)。TC と MR1 が一致した場合、このビットはトグル出
力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能はビット EMR[7:6]
によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、
1 = HIGH)、このビットは CT32B0_MAT1/CT32B1_MAT1 ピンに駆動されます。
2
EM2
外部マッチ 2。このビットは出力 CT32Bn_MAT2 の状態を反映します(出力がそのピンに 0
接続しているか否かは問いません)。TC と MR2 が一致した場合、このビットはトグル出
力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能はビット EMR[9:8]
によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、
1 = HIGH)、このビットは CT32B0_MAT2/CT32B1_MAT2 ピンに駆動されます。
3
EM3
外部マッチ 3。このビットは出力 CT32Bn_MAT3 の状態を反映します(出力がそのピンに 0
接続しているか否かは問いません)。TC と MR3 が一致した場合、このビットはトグル出
力、LOW 出力、HIGH 出力、または変化なしとなります。この出力の機能はビット EMR[11:10]
によって制御されます。IOCON レジスタでマッチ機能が選択されている場合(0 = LOW、
1 = HIGH)、このビットは CT32B0_MAT3/CT32B1_MAT3 ピンに駆動されます。
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
約ビットから読み取った値は未定義です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
267
A
Description
R
Symbol
D
Bit
FT
Table 226: External Match Register (TMR32B0EMR - address 0x4001 403C and TMR32B1EMR - address0x4001 803C)
bit description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
Function
D
A
FT
FT
A
A
R
R
R
D
A
A
R
R
D
EMR[11:10], EMR[9:8],
EMR[7:6], or EMR[5:4]
D
D
D
Table 227. External match control
変化なし。
01
対 応 す る 外 部 マ ッチビット / 出力を 0 にクリアします(ピンアウトされた場合、
CT32Bn_MATm ピンは LOW)。
10
対 応 す る 外 部 マ ッ チビット / 出力を 1 に設定します(ピンアウトされた場合、
CT32Bn_MATm ピンは HIGH)。
11
対応する外部マッチビット / 出力をトグル出力します。
FT
FT
00
D
D
R
A
FT
カウンタへの外部供給クロックを有効に処理するために、いくつかの制限があります。選
択された CAP 入力の 1 つのエッジを識別するのに、PCLK クロックの 2 つの連続する立ち
上がりエッジが使用されるため、CAP 入力の周波数は PCLK クロックの 1/2 以下でなけれ
ばなりません。したがってその場合、同じ CAP 入力の HIGH/LOW レベルの継続時間を 1/
(2 × PCLK)よりも短くすることはできません。
Table 228: Count Control Register (TMR32B0CTCR - address 0x4001 4070 and TMR32B1TCR
- address 0x4001 8070) bit description
Bit
Symbol
1:0
Counter/
Timer
Mode
Value
Description
Reset
value
このフィールドでは、タイマのプリスケールカウンタ(PC) 00
のインクリメント、または PC のクリアとタイマカウンタ
(TC)のインクリメントを行う PCLK の立ち上がりエッジを
選択します。
00
タイマモード : PCLK のすべての立ち上がりエッジ
01
カウンタモード : ビット 3 ∼ 2 で選択された CAP 入力の立ち
上がりエッジで TC をインクリメントします。
10
カウンタモード : ビット 3 ∼ 2 で選択された CAP 入力の立ち
下がりエッジで TC をインクリメントします。
11
カウンタモード : ビット 3 ∼ 2 で選択された CAP 入力の両方
のエッジで、TC をインクリメントします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
268
A
動作モードとしてカウンタモードを選択した場合、(CTCR ビット 3 ∼ 2 で選択された)
CAP 入力が PCLK クロックの立ち上がりエッジごとにサンプリングされます。CAP 入力の
2 つの連続するサンプルを比較した後、4 つのイベント(選択された CAP 入力のレベルの
立ち上がりエッジ、立ち下がりエッジ、両方のエッジ、変化なし)のいずれかとして認識
されます。その識別されたイベントが発生し、それが CTCR レジスタのビット 1 ∼ 0 で選
択されたイベントと一致した場合にのみ、タイマカウンタレジスタがインクリメントされ
ます。
R
カウント制御レジスタ(CTCR)を使用して、タイマモードまたはカウンタモードを選択
します。カウンタモードでは、カウント用のピンとエッジを選択できます。
D
15.8.11 カウント制御レジスタ(TMR32B0CTCR および TMR32B1CTCR)
ユーザーマニュアル
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
D
Reset
value
R
FT
FT
A
A
R
Count
Input
Select
Description
D
3:2
Value
FT
Symbol
FT
A
A
R
R
D
D
Table 228: Count Control Register (TMR32B0CTCR - address 0x4001 4070 and TMR32B1TCR
- address 0x4001 8070) bit description Åië±Ç´Åj
Bit
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
R
A
FT
D
R
A
CT32Bn_
00
CAP0
01
予約済み
10
予約済み
11
予約済み
注記 :TnCTCR でカウンタモードを選択した場合は、キャプ
チャ制御レジスタ(TnCCR)の入力用の 3 つのビットを「000」
に設定する必要があります。
31:4
-
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を NA
書き込まないでください。予約ビットから読み取った値は未
定義です。
15.8.12 PWM 制御レジスタ(TMR32B0PWMC および TMR32B1PWMC)
PWM 制御レジスタを使用して、マッチ出力を PWM 出力として設定します。各マッチ出
力は、PWM 出力としてまたは外部マッチレジスタ(EMR)により機能が制御されるマッ
チ出力として、個々に設定することができます。
各タイマでは、MATn[2:0] 出力に対してシングルエッジ制御の PWM 出力を最大 3 つまで
選択できます。PWM サイクルの長さは別のマッチレジスタによって決定されます。他の
マッチレジスタのいずれかで一致が生じた場合、PWM 出力は HIGH に設定されます。タ
イマのリセットは、PWM サイクル長の設定用として設定されているマッチレジスタによ
り行われます。タイマが 0 にリセットされると、現在 PWM 出力として設定されている
HIGH マッチ出力がすべてクリアされます。
Table 229: PWM Control Register (TMR32B0PWMC - 0x4001 4074 and TMR32B1PWMC 0x4001 8074) bit description
Bit
Symbol
Description
0
PWM enable
値が 1 の場合は、CT32Bn_MAT0 に対して PWM モード 0
がイネーブルになります。値が
0
の場合は、
CT32Bn_MAT0 は EM0 により制御されます。
1
PWM enable
値が 1 の場合は、CT32Bn_MAT1 対して PWM モードが 0
イネーブルになります。値が 0 の場合は、CT32Bn_MAT1
は EM1 により制御されます。
ユーザーマニュアル
Reset value
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
D
D
このレジスタのビット 1 ∼ 0 が「00」ではない場合は、これ 00
らのビットによって、クロッキング用にサンプリングする
CAP ピンを選択します。
269
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
FT
FT
A
A
R
D
D
値が 1 の場合は、CT32Bn_MAT3 に対して PWM モード 0
がイネーブルになります。値が
0
の場合は、
CT32Bn_MAT3 は EM3 により制御されます。
A
PWM enable
R
3
D
Reset value
D
値が 1 の場合は、CT32Bn_MAT2 に対して PWM モード 0
がイネーブルになります。値が
0
の場合は、
CT32Bn_MAT2 は EM2 により制御されます。
FT
FT
PWM enable
R
A
A
2
D
R
R
Description
R
A
D
D
Symbol
D
R
FT
FT
A
A
R
R
D
D
D
Table 229: PWM Control Register (TMR32B0PWMC - 0x4001 4074 and TMR32B1PWMC 0x4001 8074) bit description
Bit
R
A
FT
D
R
A
注記 : マッチチャネル 3 を使用して PWM サイクルをセッ
トすることをお勧めします。
31:4
-
予約済み。ユーザーソフトウェアによって予約ビットに NA
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 に設定すると、タイマ値が対応するマッチレジスタの値と
一致したときにタイマリセットがイネーブルになります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
270
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
D
FT
FT
A
A
R
R
D
MR0 = 65
A
FT
FT
PWM0/MAT0
R
A
A
MR1 = 41
D
R
R
PWM1/MAT1
R
A
D
D
MR2 = 100
D
R
FT
FT
A
A
R
R
D
D
D
PWM2/MAT2
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
D
R
A
FT
D
R
A
0
41
65
100
(counter is reset)
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.
15.9 タイマ動作の例
Figure 54 に示すタイマは、一致した場合にカウントをリセットして割り込みを生成する
ように設定されています。プリスケーラは 2 に設定され、マッチレジスタは 6 に設定され
ています。一致が生じるタイマサイクルの終了時に、タイマカウントがリセットされま
す。これによって、マッチ値にサイクルの全長が設定されます。タイマがマッチ値に達し
た後の次のクロックで、一致が生じたことを示す割り込みが生成されます。
Figure 55 に示すタイマは、一致した場合に停止して割り込みを生成するように設定され
ています。プリスケーラは再び 2 に設定され、マッチレジスタは 6 に設定されています。
タイマがマッチ値に達した後の次のクロックで、TCR のタイマイネーブルビットがクリア
され、一致が生じたことを示す割り込みが生成されます。
PCLK
prescale
counter
2
timer
counter
4
0
1
5
2
0
1
2
6
0
1
0
2
0
1
1
timer counter
reset
interrupt
Fig 54. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
271
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
R
FT
0
FT
2
A
1
A
R
FT
D
0
R
A
1
6
A
5
R
4
interrupt
Fig 55. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
TCR[0]
(counter enable)
0
F
D
D
timer counter
2
A
FT
FT
A
A
R
R
D
D
D
prescale counter
R
R
FT
FT
A
A
R
R
D
D
D
PCLK
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
Rev. 00.15 — 2010 / 9 / 28
272
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
15.10 アーキテクチャ
FT
FT
FT
FT
第 15 章:LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1)
D
FT
FT
A
A
R
R
D
Figure 56 に、32 ビットカウンタ / タイマ 0 および 32 ビットカウンタ / タイマ 1 のブロッ
D
D
ク図を示します。
R
A
FT
D
R
A
MATCH REGISTER 0
MATCH REGISTER 1
MATCH REGISTER 2
MATCH REGISTER 3
MATCH CONTROL REGISTER
EXTERNAL MATCH REGISTER
INTERRUPT REGISTER
CONTROL
=
MAT[3:0]
INTERRUPT
=
CAP0
=
STOP ON MATCH
RESET ON MATCH
LOAD[3:0]
=
CAPTURE CONTROL REGISTER
CSN
TIMER COUNTER
CE
CAPTURE REGISTER 0
TCI
PCLK
PRESCALE COUNTER
reset
enable
TIMER CONTROL REGISTER
MAXVAL
PRESCALE REGISTER
Fig 56. 32-bit counter/timer block diagram
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
273
D
D
R
R
R
R
R
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 16 章:LPC111x/LPC11C1x ウォッチドッグタイマ(WDT)
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
A
A
A
A
A
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
16.1 この章を読む前に
R
A
FT
D
WDT ブロックは、LPC111x と LPC11C1x のすべての部品で同一です。
R
A
16.2 基本構成
WDT は以下のレジスタを使用して設定します。
1.
ピン : WDT は外部ピンを使用しません。
2. 電力 : SYSAHBCLKCTRL レジスタで、ビット 15(Table 19)を設定します。
3. ペリフェラルクロック : ウォッチドッグクロックソース(Table 23)を選択し、
WDTCLKDIV レジスタ(Table 25)に書き込むことにより WDT ペリフェラルクロッ
クをイネーブルにします。
注意 : ウォッチドッグオシレータの周波数は、リセット後は未定義となります。WDT に対
してウォッチドッグオシレータを使用する前に、WDTOSCCTRL レジスタ(Table 11)に書
き込み、ウォッチドッグオシレータの周波数を設定する必要があります。
16.3 特長
•
•
•
周期的にリロードされない場合に、内部リセットを実行します。
•
イネーブルにすると、不正な / 不完全なリフレッシュが行われた場合にリセット / 割
り込みを発生します。
•
•
•
ウォッチドッグリセットを示すフラグ。
•
デバッグモード。
ソフトウェアによりイネーブルになりますが、ハードウェアリセットまたはウォッチ
ドッグリセット / 割り込みをディスエーブルにする必要があります。
プログラマブルな 32 ビットタイマと内部プリスケーラ
時間周期として、T WDCLK × 4 の倍数(T WDCLK × 256 × 4)∼(T WDCLK × 232 × 4)
を選択可能です。
ウォッチドッグクロック(WDCLK)ソースとして、内部 RC オシレータ(IRC)
、メイ
ンクロック、またはウォッチドッグオシレータを syscon ブロックで選択できます
(Table 23 を参照)。これにより、さまざまな電力低減状態におけるウォッチドッグ動
作のタイミングを幅広く選択することができます。また、信頼性を高めるために、外
部クリスタルと、その関連コンポーネントおよび配線に依存せず、完全に内部ソース
だけでウォッチドッグタイマを実行する機能を備えています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
274
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
16.4 用途
FT
FT
FT
FT
第 16 章:LPC111x/LPC11C1x ウォッチドッグタイマ(WDT)
D
FT
FT
A
A
R
R
D
ウォッチドッグの目的は、マイクロコントローラがエラー状態に陥ったときに適切な時間
内にそれをリセットすることです。ウォッチドッグをイネーブルにすると、事前設定され
た時間内にユーザープログラムがウォッチドッグをリフレッシュ(リロード)できなかっ
た場合に、システムリセットが発生します。
D
D
R
A
FT
D
R
A
16.5 説明
ウォッチドッグは、4 分周に固定されたプリスケーラと 32 ビットカウンタで構成されて
います。クロックはプリスケーラを介してタイマに供給されます。タイマはクロック入力
によりデクリメントされます。カウンタがデクリメントする最小値は 0xFF です。0xFF よ
り小さい値を設定すると、0xFF がカウンタにロードされます。したがって、ウォッチドッ
グ間隔は(T WDCLK × 4)の倍数となり、最小間隔は(T WDCLK × 256 × 4)、最大間隔は
(T WDCLK × 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 と同期させます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
275
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 16 章:LPC111x/LPC11C1x ウォッチドッグタイマ(WDT)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ウォッチドッグオシレータが不要な場合は、PDRUNCFG レジスタ(Section 3.4.34)でそ
れをパワーダウンできます。ウォッチドッグレジスタブロックへのクロック(PCLK)は、
節電のために、AHBCLKCTRL レジスタ(Table 19)でディスエーブルにすることができます。
D
FT
FT
A
A
R
R
D
D
D
注意 : ウォッチドッグオシレータの周波数は、リセット後は未定義となります。WDT に対
してウォッチドッグオシレータを使用する前に、WDTOSCCTRL レジスタ(Table 11)に書
き込み、ウォッチドッグオシレータの周波数を設定する必要があります。
R
A
FT
D
R
A
16.7 レジスタの説明
ウォッチドッグには、以下の Table 230 に示す 4 種類のレジスタがあります。
Table 230. Register overview: Watchdog timer (base address 0x4000 4000)
Name
Access Address Description
offset
Reset
Value[1]
WDMOD
R/W
0x000
ウォッチドッグモードレジスタ。このレジスタには、 0
ウォッチドッグタイマのベーシックモードとステー
タスが含まれています。
WDTC
R/W
0x004
ウォッチドッグタイマ定数レジスタ。このレジスタ 0xFF
はタイムアウト値を決定します。
WDFEED
WO
0x008
ウォッチドッグリフレッシュレジスタ。このレジス NA
タに 0xAA に続けて 0x55 を書き込むと、ウォッチ
ドッグタイマに WDTC の値がリロードされます。
WDTV
RO
0x00C
ウォッチドッグタイマ値レジスタ。このレジスタは、 0xFF
ウォッチドッグタイマの現在の値を読み出します。
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれてい
ません。
16.7.1 ウォッチドッグモードレジスタ(WDMOD - 0x4000 0000)
WDMOD レジスタは、WDEN ビットと WDRESET ビットを組み合せてウォッチドッグの動
作を制御します。ただし、WDMOD レジスタに対する変更を有効にするには、ウォッチ
ドッグのリフレッシュを行う必要があります。
Table 231. Watchdog Mode register (WDMOD - address 0x4000 4000) bit description
Bit
Symbol
Description
0
WDEN
1
WDRESET
2
WDTOF
WDEN ウォッチドッグイネーブルビット(設定のみ)。値が 0
1 の場合、ウォッチドッグタイマは実行中です。
WDRESET ウォッチドッグリセットイネーブルビット(設定 0
のみ)。値が 1 の場合、ウォッチドッグタイムアウトにより
チップリセットが発生します。
WDTOF ウォッチドッグタイムアウトフラグ。ウォッチドッ 0 (Only after POR
グタイマがタイムアウトすると設定され、ソフトウェアに and BOD reset)
よってクリアされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset Value
Rev. 00.15 — 2010 / 9 / 28
276
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
FT
FT
A
D
R
A
ウォッチドッグが稼働中で、そのクロックソースが動作している場合は、いつでもウォッ
チドッグリセット / 割り込みが発生します。すべてのクロックソースはスリープモードで
も機能します。スリープモードでウォッチドッグ割り込みが発生すると、デバイスはス
リープ状態から復帰します。
Table 232. Watchdog operating modes selection
WDEN
WDRESET
Mode of Operation
0
X (0 or 1)
ウォッチドッグを実行せずにデバッグ / 操作します。
1
0
ウォッチドッグ割り込みモード : ウォッチドッグ割り込みによるデ
バッグ、ただし WDRESET はディスエーブル。
このモードを選択すると、ウォッチドッグカウンタがアンダーフロー
したときに WDINT フラグが設定され、ウォッチドッグ割り込み要求
が生成されます。
ウォッチドッグリセットモード : ウォッチドッグ割り込みによる操
作、WDRESET はイネーブル。
このモードを選択すると、ウォッチドッグカウンタがアンダーフロー
したときにマイクロコントローラがリセットされます。この場合は
ウォッチドッグ割り込みもイネーブルですが(WDEN = 1)、ウォッチ
ドッグリセットによって WDINT フラグがクリアされるため、割り込
みは認識されません。
© NXP B.V. 2010. All rights reserved.
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
FT
WDINT ウォッチドッグ割り込みフラグは、ウォッチドッグがタイムアウトすると設定さ
れます。このフラグはいずれかのリセットが発生したときにクリアされます。ウォッチ
ドッグ割り込みが有効になったら、NVIC でそれをディスエーブルにできます。ディスエー
ブルにしないと、ウォッチドッグ割り込み要求は無限に生成されます。ウォッチドッグ割
り込みの目的は、ウォッチドッグがオーバーフローしたときに、デバイスをリセットする
ことなくウォッチドッグのアクティビティをデバッグできるようにすることです。
UM10398_0
F
R
WDTOF ウォッチドッグタイムアウトフラグは、ウォッチドッグがタイムアウトすると設
定されます。このフラグはソフトウェアによって、またはパワーオンリセット(POR)/
ブラウンアウト検出(BOD)リセットによってクリアされます。
1
A
D
D
WDEN ビットまたは WDRESET ビット、あるいはその両方を一度設定すると、ソフト
ウェアによってそれをクリアすることはできません。どちらのフラグもリセットまたは
ウォッチドッグタイマのアンダーフローによってクリアされます。
1
R
-
A
31:8
A
-
R
7:4
WDINT ウォッチドッグ割り込みフラグ(読み取り専用、ソ 0
フトウェアによるクリアは不可)。
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った値
は未定義です。
予約済み
R
WDINT
D
3
D
Reset Value
FT
Description
FT
A
Symbol
A
R
R
D
D
Table 231. Watchdog Mode register (WDMOD - address 0x4000 4000) bit description(続き)
Bit
FT
FT
FT
FT
第 16 章:LPC111x/LPC11C1x ウォッチドッグタイマ(WDT)
277
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
WDTC レジスタはタイムアウト値を決定します。リフレッシュが発生するたびに、WDTC
の内容がウォッチドッグタイマにリロードされます。この 32 ビットレジスタの下位 8 ビッ
トはリセット時に 1 に設定されます。0xFF 未満の値を書き込むと、0x0000 00FF が WDTC
にロードされます。最小タイムアウト間隔は、T WDCLK × 256 × 4 です。
F
FT
FT
A
A
R
R
D
D
D
16.7.2 ウォッチドッグタイマ定数レジスタ(WDTC - 0x4000 4004)
FT
FT
FT
FT
第 16 章:LPC111x/LPC11C1x ウォッチドッグタイマ(WDT)
D
D
R
A
D
Description
Reset Value
31:0
Count
ウォッチドッグタイムアウト間隔
0x0000 00FF
A
Symbol
R
Bit
16.7.3 ウォッチドッグリフレッシュレジスタ(WDFEED - 0x4000 4008)
このレジスタに 0xAA に続けて 0x55 を書き込むと、ウォッチドッグタイマに WDTC の値
がリロードされます。WDMOD レジスタを介してウォッチドッグがイネーブルになって
いる場合は、この操作によってウォッチドッグが起動します。ウォッチドッグをイネーブ
ルにするには、WDMOD レジスタの WDEN ビットを設定するだけでは不十分です。ウォッ
チドッグがリセットを生成できるように、WDEN の設定後に有効なリフレッシュ手順を
完了させる必要があります。完了するまで、ウォッチドッグはリフレッシュエラーを無視
します。ウォッチドッグがイネーブルになっている場合、WDFEED に 0xAA を書き込んだ
後に、ウォッチドッグレジスタへのアクセス(WDFEED への 0x55 の書き込み以外)が生
じると、ただちにリセット / 割り込みが発生します。このリセットは、リフレッシュ中の
ウォッチドッグレジスタへの不正アクセスが生じた後、次の PCLK 時に生成されます。
リフレッシュ中は割り込みをディスエーブルにしてください。リフレッシュ中に割り込
みが生じると、アボート状態になります。
Table 234. Watchdog Feed register (WDFEED - address 0x4000 4008) bit description
Bit
Symbol
Description
7:0
Feed
リフレッシュ値は 0xAA の後に 0x55 を続ける必要があ NA
ります。
31:8
-
予約済み
Reset Value
-
16.7.4 ウォッチドッグタイマ値レジスタ(WDTV - 0x4000 400C)
WDTV は、ウォッチドッグタイマの現在の値を読み取るために使用します。
32 ビットタイマの値を読み取る際は、ロックおよび同期手続きに最大 6WDCLK サイクル
+6 PCLK サイクルを要します。そのため、CPU によって読み取られる時点で、WDTV の値
はタイマの実際の値よりも古くなります。
Table 235. Watchdog Timer Value register (WDTV - address 0x4000 000C) bit description
Bit
Symbol
Description
Reset Value
31:0
Count
カウンタタイマ値
0x0000 00FF
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
Table 233. Watchdog Constant register (WDTC - address 0x4000 4004) bit description
278
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
16.8 ブロック図
FT
FT
FT
FT
第 16 章:LPC111x/LPC11C1x ウォッチドッグタイマ(WDT)
D
FT
FT
A
A
R
R
D
以下の Figure 57 は、ウォッチドッグのブロック図です。このブロック図には同期ロジッ
ク(PCLK/WDCLK)は示されていません。
D
D
R
A
FT
D
R
A
feed sequence
WDTC
feed ok
WDFEED
feed error
4
wdt_clk
32 BIT DOWN COUNTER
underflow
enable
count
SHADOW BIT
WMOD register
WDINT
WDTOF WDRESET
WDEN
reset
interrupt
Fig 57. Watchdog block diagram
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
279
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
R
R
A
A
A
第 17 章:LPC111x/LPC11C1x システム tick タイマ
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
17.1 この章を読む前に
R
A
ピン : システム 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 ルーチンを呼び出す、RTOS
tick タイマ。
•
•
コアクロックを使用する高速アラームタイマ
•
シンプルなカウンタ。ソフトウェアでこのタイマを使用して、完了までの時間や消費
時間を測定できます。
不一致(ミッシング)/ 一致期間に基づく、内部クロックソースの制御。動的なクロッ
ク管理制御ループの一部として、制御レジスタとステータスレジスタの COUNTFLAG
ビットフィールドを使用し、設定時間内にアクションが完了したかどうかを判断でき
ます。
詳細については、『Cortex-M0 User Guide』を参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
280
A
1.
R
システム tick タイマは以下のレジスタを使用して設定します。
D
17.2 基本構成
FT
システム tick タイマ(SysTick タイマ)は ARM Cortex-M0 コアの一部であり、すべての
LPC111x および LPC11C1x 部品で同一です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
17.5 動作
FT
FT
FT
FT
第 17 章:LPC111x/LPC11C1x システム tick タイマ
D
FT
FT
A
A
R
R
D
SysTick タイマは、0 へカウントダウンして割り込みを生成する 24 ビットタイマです。そ
の目的は、割り込み間に一定の時間間隔(10ms)を設定することです。SysTick タイマ
は CPU クロックからクロック供給されます。特定の間隔で繰り返される割り込みを生成
するには、必要とする間隔に適した値で SYST_RVR レジスタを初期化する必要がありま
す。デフォルト値(<tbd>)が SYST_CALIB レジスタに用意されており、これはソフトウェ
アによって変更することもできます。CPU クロックを <tbd> に設定すると、デフォルト
値が適用され、割り込みレートは 10ms となります。
D
D
R
A
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] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
281
A
SysTick タイマのレジスタは ARM Cortex-M0 プライベートペリフェラルバス上にあり
(Figure 64)、ARM Cortex-M0 コアペリフェラルの一部です。詳細については、Section
21.5.4 を参照してください。
R
17.6 レジスタの説明
D
Fig 58. System tick timer block diagram
FT
以下の Figure 58 は、SysTick タイマのブロック図です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
SYST_CSR は SysTick タイマの制御情報を格納するレジスタで、ステータスフラグも備え
ています。このレジスタは、ARM Cortex-M0 コアシステムタイマレジスタブロックの一部
です。このレジスタのビットの詳細については、Section 21.5.4「システムタイマ、SysTick」
を参照してください。
F
FT
FT
A
A
R
R
D
D
D
17.6.1 システムタイマ制御およびステータスレジスタ
FT
FT
FT
FT
第 17 章:LPC111x/LPC11C1x システム tick タイマ
D
D
R
A
FT
D
R
A
17.6.2 システムタイマリロード値レジスタ
SYST_RVR レジスタに設定された値は、SysTick タイマが 0 までカウントダウンするたび
に SysTick タイマにロードされます。このレジスタは、タイマの初期化の一環としてソフ
トウェアによってロードされます。CPU が SYST_CALIB 値で使用される周波数で動作して
いる場合には、SYST_CALIB レジスタを読み取って SYST_RVR レジスタの値として使用す
ることができます。
Table 237. System Timer Reload value register (SYST_RVR - 0xE000 E014) bit description
Bit
Symbol
Description
Reset
value
23:0
RELOAD
この値は、System Tick カウンタが 0 までカウントダウンしたとき 0
に System Tick カウンタにロードされます。
31:24
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き NA
込まないでください。予約ビットから読み取った値は未定義です。
17.6.3 システムタイマ現在値レジスタ
SYST_CVR レジスタは、ソフトウェアによって読み取られたときに System Tick カウンタ
の現在のカウントを返します。
Table 238. System Timer Current value register (SYST_CVR - 0xE000 E018) bit description
Bit
Symbol
Description
23:0
CURRENT
このレジスタを読み取ると、System Tick カウンタの現在の値が返 0
されます。任意の値を書き込むと、System Tick カウンタと STCTRL
の COUNTFLAG ビットがクリアされます。
31:24
-
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込 NA
まないでください。予約ビットから読み取った値は未定義です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
282
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
FT
FT
A
30
SKEW
<tbd>
0
31
NOREF
<tbd>
0
A
予約済み。ユーザーソフトウェアによって予約ビットに 1 NA
を書き込まないでください。予約ビットから読み取った
値は未定義です。
R
-
D
0x4
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 = 2500001
= 249999 = 0x0003D08F
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
<tbd>
FT
TENMS
A
Reset
value
R
Description
D
29:24
A
R
23:0
Value
F
D
D
Symbol
A
FT
FT
A
A
R
R
R
Table 239. System Timer Calibration value register (SYST_CALIB - 0xE000 E01C) bit
description
Bit
R
A
D
D
<tbd>
D
R
FT
FT
A
A
R
R
D
D
D
17.6.4 システムタイマ校正値レジスタ(SYST_CALIB - 0xE000 E01C)
FT
FT
FT
FT
第 17 章:LPC111x/LPC11C1x システム tick タイマ
283
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
D
D
R
R
R
UM10398
D
D
D
参考資料
D
FT
FT
A
A
R
R
D
D
D
18.1 この章を読む前に
R
A
FT
D
ADC ブロックは、LPC111x と LPC11C1x のすべての部品で同一です。
R
A
18.2 基本構成
ADC は以下のレジスタを使用して設定します。
1.
ピン : ADC ピン機能は、IOCONFIG レジスタブロック(Section 6.4.1)で設定します。
2. 電力とペリフェラルクロック : SYSAHBCLKCTRL レジスタで、ビット 13(Table 19)
を設定します。ランタイム時の ADC への電力供給は PDRUNCFG レジスタ(Table
39)を介して制御されます。
18.3 特長
• 10 ビット逐次比較型 A/D コンバータ(ADC)
• 8 ピン多重入力
• パワーダウンモード
• 測定範囲 0 ∼ 3.6 V。電圧レベルが VDD を超えないようにしてください。
• 10 ビット変換時間≧ 2.44 s
• 単一入力または複数入力のためのバースト変換モード
• 入力ピンまたはタイママッチ信号における遷移による任意の変換
• 各 A/D チャネル用の個別結果レジスタにより、割り込みオーバーヘッドを削減
18.4 ピンの説明
Table 240 に ADC 関連ピンの要約を示します。
Table 240. ADC pin description
Pin
Type
Description
AD[7:0]
Input
アナログ入力。A/D コンバータセルはどのような入力信号の電圧も測定
できます。
注意 : デジタルモードではピンは 5V トレラントですが、ピンがアナロ
グ入力用として設定されている場合には、最大入力電圧は VDD 以下でな
ければなりません。
VDD
Input
VREF、基準電圧
監視しているピンの電圧を正確に測定するには、IOCON レジスタを介して ADC 機能を選
択する必要があります。ADC 入力用のピンに対してデジタル機能を選択し、なおかつ有効
な ADC 測定を行うことはできません。ADC ハードウェアに対応しているピンに対してデ
ジタル機能を選択すると、内部回路は ADC ハードウェアをそのピンから切り離します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
284
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
18.5 クロックと電力の制御
FT
FT
FT
FT
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
D
FT
FT
FT
A
A
ディスエーブルにすることができます。
R
R
D
ADC(PCLK)およびプログラマブル ADC クロック分周器(Section 18.6.1 を参照)へのペ
リフェラルクロックは、システムクロック(Figure 3 を参照)によって供給されます。こ
のクロックは、節電のために、AHBCLKCTRL レジスタ(Table 19)のビット 13 によって
D
D
R
A
D
R
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 Description
offset
Reset
Value[1]
AD0CR
R/W
0x000
AD0GDR
R/W
0x004
A/D 制御レジスタ。A/D 変換を実行可能にするには、AD0CR レジスタに書 0x0000 0000
き込んで動作モードを選択する必要があります。
NA
A/D グローバルデータレジスタ。最新の A/D 変換の結果を格納します。
-
-
0x008
予約済み。
AD0INTEN
R/W
0x00C
AD0DR0
R/W
0x010
AD0DR1
R/W
0x014
AD0DR2
R/W
0x018
AD0DR3
R/W
0x01C
AD0DR4
R/W
0x020
AD0DR5
R/W
0x024
AD0DR6
R/W
0x028
A/D 割り込みイネーブルレジスタ。このレジスタのイネーブルビットによ 0x0000 0100
り、A/D 割り込みの生成に対して各 A/D チャネルの DONE フラグを有効ま
たは無効にすることができます。
A/D チャネル 0 データレジスタ。このレジスタにはチャネル 0 で完了した NA
最新の A/D 変換の結果を格納します。
A/D チャネル 1 データレジスタ。このレジスタにはチャネル 1 で完了した NA
最新の A/D 変換の結果を格納します。
A/D チャネル 2 データレジスタ。このレジスタにはチャネル 2 で完了した NA
最新の A/D 変換の結果を格納します。
A/D チャネル 3 データレジスタ。このレジスタにはチャネル 3 で完了した NA
最新の A/D 変換の結果を格納します。
A/D チャネル 4 データレジスタ。このレジスタにはチャネル 4 で完了した NA
最新の A/D 変換の結果を格納します。
A/D チャネル 5 データレジスタ。このレジスタにはチャネル 5 で完了した NA
最新の A/D 変換の結果を格納します。
A/D チャネル 6 データレジスタ。このレジスタにはチャネル 6 で完了した NA
最新の A/D 変換の結果を格納します。
-
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
285
A
PDRUNCFG レジスタ(Section 3.4.34)を使用して、実行時に ADC をパワーダウンするこ
とができます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
AD0STAT
RO
0x030
A/D ステータスレジスタ。このレジスタには、すべての A/D チャネルの 0
DONE フラグと OVERRUN フラグに加え、A/D 割り込みフラグが格納され
ます。
D
FT
FT
A
A
R
R
D
D
R
A
FT
D
R
A
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
18.6.1 A/D 制御レジスタ(AD0CR - 0x4001 C000)
A/D 制御レジスタには、変換する A/D チャネル、A/D タイミング、A/D モード、および
A/D 起動トリガを選択するためのビットが含まれています。
Table 242. A/D Control Register (AD0CR - address 0x4001 C000) bit description
Symbol
7:0
SEL
15:8
CLKDIV
16
BURST
Value Description
Reset
Value
ピン AD7 ∼ 0 からサンプリングや変換に使用するピンを選択します。ビット 0 はピン 0x00
AD0、ビット 1 はピン AD1、(中略)、そしてビット 7 はピン AD7 に対応しています。
ソフトウェア制御モード(BURST = 0)では、1 つのチャネルのみ選択可能です(これら
のビットのうちの 1 つだけが 1 に設定されます)。
ハードウェアスキャンモード(BURST = 1)では、任意の数のチャネルを選択可能です
(任意のビットまたはすべてのビットを 1 に設定することができます)。すべてのビットを
0 に設定すると、チャネル 0 が自動的に選択されます(SEL = 0x01)。
0
1
APB クロック(PCLK)を CLKDIV +1 で分周して ADC 用のクロックを生成します。このク 0
ロックは 4.5 MHz 以下でなければなりません。通常、このフィールドには、4.5 MHz また
はそれよりやや小さいクロックを生成するための最小値をソフトウェアによって設定し
ます。ただし、場合によっては(ハイインピーダンスのアナログソースなど)、より遅い
クロックが望ましいこともあります。
ソフトウェア制御モード。変換はソフトウェアにより制御され、11 クロックが必要です。 0
ハードウェアスキャンモード。A/D コンバータは、CLKS フィールドで選択されたレート
で変換を繰り返し、必要に応じて、SEL フィールドで選択された(1 が設定されている)
ピンを介してスキャンします。開始後の最初の変換は、SEL フィールドで 1 が設定されて
いる最下位ビットに対応しています。さらに該当する場合は、最下位ビットより上位の
1 が設定されているビット(ピン)がスキャンされます。このビットをクリアすると変換
の繰り返しを停止できますが、ビットをクリアした時点で進行中の変換は完遂されます。
重要: BURST = 1または変換が開始されていない場合、
STARTビットは000になっています。
19:17 CLKS
このフィールドでは、バーストモードでの各変換に使用するクロック数、および ADDR 000
の LS ビット内の結果の精度(ビット数)を選択します(11 クロック(10 ビット)∼ 4
クロック(3 ビット))。
000
11 クロック /10 ビット
001
10 クロック /9 ビット
010
9 クロック /8 ビット
011
8 クロック /7 ビット
100
7 クロック /6 ビット
101
6 クロック /5 ビット
110
5 クロック /4 ビット
111
4 クロック /3 ビット
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
A/D チャネル 7 データレジスタ。このレジスタにはチャネル 7 で完了した NA
最新の A/D 変換の結果を格納します。
F
0x02C
FT
R/W
FT
Reset
Value[1]
A
A
A
AD0DR7
R
R
R
Access Address Description
offset
D
D
D
Name
Bit
R
R
FT
FT
A
A
R
R
D
D
D
Table 241. Register overview: ADC (base address 0x4001 C000)(続き)
FT
FT
FT
FT
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
286
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
F
FT
D
A
A
R
R
D
FT
FT
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。 NA
R
A
FT
ただちに変換を開始します。
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]
A
開始しません(この値は PDN を 0 にクリアする場合に使用します)。
001
R
000
D
バーストビットが 0 の場合は、これらのビットによって、AD 変換開始の可否とタイミン 0
グが制御されます。
EDGE
D
D
予約ビットから読み取った値は未定義です。
26:24 START
このビットは、START フィールドが 010 ∼ 111 の場合にのみ有効です。有効な場合の値 0
は以下のとおりです。
31:28 [1]
A
Reset
Value
FT
A
A
R
R
D
D
D
23:20 -
27
R
FT
FT
FT
Value Description
A
A
A
Symbol
R
R
R
Bit
D
D
D
Table 242. A/D Control Register (AD0CR - address 0x4001 C000) bit description(続き)
FT
FT
FT
FT
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
1
選択された CAP/MAT 信号の立ち下がりエッジで変換を開始します。
0
選択された CAP/MAT 信号の立ち上がりエッジで変換を開始します。
予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。予 NA
約ビットから読み取った値は未定義です。
この場合、デバイスピンでタイママッチ機能を実行する必要はありません。
18.6.2 A/D グローバルデータレジスタ(AD0GDR - 0x4001 C004)
A/D グローバルデータレジスタは、最新の A/D 変換の結果を格納します。この結果には、
データ、DONE フラグ、オーバーランフラグ、およびデータに関連している A/D チャネ
ルの番号が含まれています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
287
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Symbol
Description
Reset
Value
5:0
Unused
これらのビットは常に 0 を示します。これらは、将来さらに高い分解能 0
を持つ A/D コンバータと互換性を保つために拡張用として確保されて
います。
15:6
V_VREF
DONE が 1 の場合、このフィールドには、SEL フィールドで選択された X
ADn ピンの電圧を示すバイナリ分数(VDD ピンの電圧で割った値)が格
納されます。フィールドの値が 0 の場合は、ADn ピンの電圧が VSS の電
圧以下(未満、同等、近似)であったことを示しています。一方、
「0x3FF」
の場合は、ADn の電圧が VREF の電圧以上(近似、同等、より大きい)
であったことを示しています。
これらのビットは常に 0 を示します。これらのビットによって、AND マ 0
スクせずに連続する A/D 値を累積することができます(CHN フィール
ドへのオーバーフローなしに最少でも 256 の値を累積できます)。
これらのビットには、結果を示すビット V_VREF が変換されたチャネル X
が格納されます。
これらのビットは常に 0 を示します。これらは、将来さらに多くのチャ 0
ネルを変換できる A/D コンバータと互換性を保つために、CHN フィー
ルドの拡張用として確保されています。
バーストモードにおいて、V_VREF ビットに反映される前に 1 つまたは 0
複数の変換の結果が失われたり上書きされた場合、このビットは 1 にな
ります。
A/D 変換が完了すると、このビットは 1 に設定されます。このレジスタ 0
が読み取られたときや ADCR が書き込まれたときに、このビットはクリ
アされます。変換の進行中に ADCR が書き込まれると、このビットが設
定され、新たな変換が開始されます。
F
FT
FT
Bit
A
A
A
R
R
D
D
D
Table 243. A/D Global Data Register (AD0GDR - address 0x4001 C004) bit description
D
D
D
R
A
DONE
FT
31
A
OVERRU
N
R
30
D
29:27 Unused
FT
26:24 CHN
FT
A
A
R
R
D
23:16 Unused
18.6.3 A/D ステータスレジスタ(AD0STAT - 0x4001 C030)
A/D ステータスレジスタによって、すべての A/D チャネルの状態を同時にチェックでき
ます。各 A/D チャネル用の ADDRn レジスタにある DONE フラグと OVERRUN フラグは、
ADSTAT に反映されます。割り込みフラグ(すべての DONE フラグの論理和)も ADSTAT
に反映されます。
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 0
ステータスフラグを反映しています。ADSTAT を読み取ることにより、
すべての A/D チャネルの状態を同時にチェックできます。
16
ADINT
このビットは A/D 割り込みフラグです。個々の A/D チャネルの DONE 0
フラグのいずれかが ADINTEN レジスタを介してアサートされ、A/D 割
り込みの生成に対してイネーブルになっている場合、このビットは 1
になります。
31:17 Unused
0
未使用、常に 0。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
FT
FT
FT
FT
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
Rev. 00.15 — 2010 / 9 / 28
288
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
FT
FT
A
A
R
R
D
D
このレジスタによって、変換の完了時にどの A/D チャネルによって割り込みを生成する
かを制御できます。たとえば、複数の A/D チャネルを使用し、それらで継続的に変換を
行ってセンサを監視することが必要な場合もあります。最新の結果は、必要に応じて随
時、アプリケーションプログラムによって読み取られます。そのような場合、複数の A/D
チャネルの個々の変換が終了するたびに割り込みが生じるのは望ましいことではありま
せん。
F
FT
FT
A
A
R
R
D
D
18.6.4 A/D 割り込みイネーブルレジスタ(AD0INTEN - 0x4001 C00C)
D
D
R
A
7:0
ADINTEN 7:0
これらのビットによって、変換の完了時に割り込みを生成する A/D 0x00
チャネルを制御することができます。ビット 0 が 1 の場合は、A/D
チャネル 0 での変換が完了すると割り込みが発生し、ビット 1 が 1
の場合は、A/D チャネル 1 での変換が完了すると割り込みが発生し、
以下同様に割り込みが発生します。
8
ADGINTEN
値が 1 の場合は、割り込みの生成に対して ADDR のグローバル DONE 1
フラグがイネーブルになります。値が 0 の場合は、ADINTEN 7 ∼ 0
によりイネーブルになっている A/D チャネルのみが割り込みを生成
します。
31:9 Unused
Reset
Value
0
未使用、常に 0。
18.6.5 A/D データレジスタ(AD0DR0 ∼ AD0DR7 - 0x4001 C010 ∼
0x4001 C02C)
A/D データレジスタは A/D 変換の完了時にその結果を保持し、さらに変換の完了と変換
オーバーランの発生を示すフラグも備えています。
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
これらのビットは常に 0 を示します。これらは、将来さらに高い分解
能を持つ ADC と互換性を保つために拡張用として確保されています。
15:6
V_VREF
DONE が 1 の場合、このフィールドには、ADn ピンの電圧を示すバイ NA
ナリ分数(VREF ピンの電圧で割った値)が格納されます。フィールド
の値が 0 の場合は、ADn ピンの電圧が VREF の電圧以下(未満、同等、
近似)であったことを示しています。一方、
「0x3FF」の場合は、AD
入力の電圧が VREF の電圧以上(近似、同等、より大きい)であったこ
とを示しています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
289
A
Description
R
Symbol
D
Bit
FT
Table 245. A/D Interrupt Enable Register (AD0INTEN - address 0x4001 C00C) bit description
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
R
D
FT
FT
A
A
R
R
D
Reset
Value
F
FT
FT
A
A
A
Description
D
R
R
Symbol
R
A
D
D
Bit
D
R
FT
FT
A
A
R
R
D
D
D
Table 246. A/D Data Registers (AD0DR0 to AD0DR7 - addresses 0x4001 C010 to
0x4001 C02C) bit description
FT
FT
FT
FT
第 18 章:LPC111x/LPC11C1x A/D コンバータ(ADC)
A
A/D 変換が完了すると、このビットは 1 に設定されます。DONE ビッ 0
トはこのレジスタが読み取られるとクリアされます。
R
DONE
D
31
D
バーストモードにおいて、V_VREF ビットに反映される前に 1 つまた 0
は複数の変換の結果が失われたり上書きされた場合、このビットは 1
になります。OVERRUN ビットはこのレジスタが読み取られるとリ
セットされます。
FT
OVERRUN
A
30
R
これらのビットは常に 0 を示します。これらのビットによって、AND 0
マスクせずに連続する A/D 値を累積することができます(CHN フィー
ルドへのオーバーフローなしに最少でも 256 の値を累積できます)。
D
29:16 Unused
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 を参照)
。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
290
D
D
R
R
R
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
UM10398
D
D
D
参考資料
D
R
R
A
FT
R
R
R
D
D
D
Rev. 00.15 — 2010 / 9 / 28
D
FT
FT
A
A
R
R
D
D
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミング
ファームウェア
A
F
FT
FT
A
A
ユーザーマニュアル
D
FT
FT
A
A
R
R
D
D
D
R
A
19.1 この章を読む前に
FT
D
R
A
各フラッシュ設定については、Table 247 を参照してください。
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
注意 : ISP コマンドと IAP コマンド以外に、フラッシュコントローラブロック内で、フラッ
シュメモリへのアクセス時間を設定するためのレジスタにアクセスできます。Section
19.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 を介
してフラッシュメモリのプログラミングを達成する手段も提供します。これは、ブランク
デバイスの初回プログラミング、以前にプログラミングされたデバイスの消去と再プログ
ラミング、または実行中のシステムのアプリケーションプログラムによるフラッシュメモ
リのプログラミングのいずれかになります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
291
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
ブートローダのコードは、部品に電源が投入されるかリセットされると毎回実行されま
す。ローダは、ISP コマンドハンドラまたはユーザーアプリケーションコードを実行でき
ます。PIO0_1 ピンでのリセット後の LOW レベルは、UART または C_CAN(存在する場
合)のいずれかを介して ISP コマンドハンドラを起動するための、外部ハードウェア要求
と見なされます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
ISP コマンドハンドラを呼び出します。
• 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 の場合、実行制御はユーザーコードに転送されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
292
A
• PIO0_3 が LOW の場合、ブートローダは C_CAN インターフェースを構成し、C_CAN
R
呼び出されるかが決定されます。
D
C_CAN インターフェースが存在する場合(LPC11Cx 部品)、リセット時のピン PIO0_3 の
状態とピン PIO0_1 の LOW レベルにより、UART ISP と C_CAN ISP のどちらのルーチンが
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
署名が有効でない場合、自動通信速度設定ルーチンはシリアルポート 0 を介してホスト
と同期します。ホストは同期文字として「?」
(0x3F)を送信し、応答を待機します。ホス
ト側のシリアルポートの設定は、8 データビット、1 ストップビット、パリティなしとし
ます。自動通信速度設定ルーチンでは、受信した同期文字のビット時間を独自の周波数で
測定し、シリアルポートのボーレートジェネレータをプログラミングします。また、ASCII
文字列(「Synchronized<CR><LF>」)をホストに送信します。ホストはこれに応答して、
同じ文字列(「Synchronized<CR><LF>」)を送信します。自動通信速度設定ルーチンは、
受信した文字を調べ、同期を検証します。同期が確認された場合、「OK<CR><LF>」文字
列がホストに送信されます。ホストは、部品が稼働する水晶周波数(kHz)を送信して応
答 し ま す。た と え ば、部 品 が 10MH z で 稼 働 し て い る 場 合、ホ ス ト か ら の 応 答 は
「10000<CR><LF>」になります。水晶周波数の受信後、「OK<CR><LF>」文字列がホスト
に送信されます。同期が確認されない場合、自動通信速度設定ルーチンは再び同期文字を
待機します。ユーザーが ISP を呼び出している場合に、自動通信速度設定が正しく動作す
るためには、CCLK 周波数を 10 MHz と同じか、それを上回る数値に設定する必要があり
ます。
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
293
A
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
R
© NXP B.V. 2010. All rights reserved.
UM10398_0
D
水晶周波数が受信された後、部品は初期化され、ISP コマンドハンドラが呼び出されます。
安全上の理由により、結果的にフラッシュの消去 / 書き込み操作を行うコマンドおよび
「Go」コマンドを実行する前に、「Unlock」コマンドが必要になります。残りのコマンド
は、
「Unlock」コマンドを使用せずに実行できます。
「Unlock」コマンドは、ISP セッショ
ンごとに一度実行する必要があります。「Unlock」コマンドについては、300 ページの
Section 19.5「UART ISP コマンド」で説明しています。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
19.3.4 ブートプロセスフローチャート
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
FT
FT
A
A
R
R
D
D
D
RESET
R
A
FT
D
INITIALIZE
R
A
CRP1/2/3
ENABLED?
no
ENABLE DEBUG
yes
WATCHDOG
FLAG SET?
A
yes
no
USER CODE
VALID?
CRP3/NO_ISP
ENABLED?
yes
no
no
yes
ENTER ISP
MODE?
(PIO0_1 = LOW)
no
EXECUTE INTERNAL
USER CODE
yes
C_CAN BOOT?
(PIO0_3 = LOW)
USER CODE
VALID?
no
no
yes
boot from
UART
RUN AUTO-BAUD
boot from
C_CAN
INITIALIZE C_CAN
yes
RUN C_CAN ISP COMMAND HANDLER
A
no
AUTO-BAUD
SUCCESSFUL?
yes
RECEIVE CRYSTAL FREQUENCY
RUN UART ISP COMMAND HANDLER
(1) For details on handling the crystal frequency, see Section 19.7.8「Reinvoke ISP(IAP)」on page 318
Fig 59. Boot process flowchart
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
294
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
D
R
Table 248. Flash sector configuration
A
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
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 の倍数)単位でフラッシュメ
モリに書き込まれる必要があります。
© NXP B.V. 2010. All rights reserved.
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
295
A
LPC1112/
LPC1113 LPC1114/
LPC11C12 24 kB
LPC11C14
16 kB flash flash
32 kB
flash
R
LPC1111
8 kB
flash
D
Sector Address range
size
FT
Sector
number
UM10398_0
FT
A
A
R
R
D
D
IAP と ISP のコマンドの一部はセクタ上で動作し、セクタ番号を指定します。次の表に、
LPC111x/LPC11C1 デバイスのセクタ番号とメモリアドレスの対応を示します。
F
FT
FT
A
A
R
R
D
D
D
19.3.5 セクタ番号
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
19.3.7 Code Read Protection(CRP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
FT
FT
A
A
R
なるレベルのセキュリティをイネーブルにし、オンチップフラッシュへのアクセスおよび
ISP の使用を制限するためのメカニズムです。CRP は必要に応じて、フラッシュ位置 0x0000
02FC に特定のパターンをプログラミングすることで呼び出すことができます。IAP コマ
ンドは、CRP による影響を受けません。
R
D
D
Code Read Protection(CRP: プログラム読み取り禁止)は、ユーザー側でシステム内で異
D
D
R
A
FT
D
R
A
重要 :CRP の変更は、デバイスを再起動した後でなければ有効になりません。
Table 249. Code Read Protection options
Name
Pattern
Description
programmed in
0x0000 02FC
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」コマンドは部分更新の際にディスエーブルにな
るため、セカンダリローダがチェックサムメカニズムを実装し、フ
ラッシュの完全性を検証する必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
296
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
D
SWD ピンを介したチップへのアクセスをディスエーブルにします。
次の ISP コマンドがディスエーブルになります。
D
0x87654321
FT
FT
FT
CRP2
A
A
A
Pattern
Description
programmed in
0x0000 02FC
R
R
R
Name
D
D
D
Table 249. Code Read Protection options(続き)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
R
A
D
•
Write to RAM
•
Go
•
Copy RAM to flash
•
Compare
R
Read Memory
A
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 SWD enabled LPC111x/
reset
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
•
297
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
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
F
FT
FT
ISP command
A
A
A
R
R
D
D
D
Table 251. ISP commands allowed for different CRP levels
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
A
n/a
D
yes
D
yes
FT
ReadUID
A
n/a
R
n/a
no
D
yes
no
FT
yes
Compare
FT
A
A
R
R
D
Read Boot code version
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 応答形式
"Return_Code<CR><LF>Response_0<CR><LF>Response_1<CR><LF>
...Response_n<CR><LF>" "Data" (データは「Read」コマンド専用)
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
298
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
データストリームは、UU エンコード形式です。UU エンコードアルゴリズムは、3 バイ
トのバイナリデータを、出力可能な 4 バイトの ASCII 文字セットに変換します。これは、
1 バイトのバイナリデータを 2 バイトの ASCII 16 進数に変換する、16 進形式よりも効率
的です。センダは 20 UU エンコード行を送信した後、チェックサムを送信する必要があ
ります。UU エンコード行の長さは、61 文字(バイト)を超えられません。すなわち 45
データバイトまで保持できます。レシーバは、受信した行を受信したバイトのチェックサ
ムと比較します。チェックサムが一致すれば、レシーバは「OK<CR><LF>」で応答して以
降の伝送を継続します。チェックサムが一致しない場合、レシーバは「RESEND<CR><LF>」
で応答します。これに対して、センダはバイトを再送信する必要があります。
F
FT
FT
A
A
R
R
D
D
D
19.4.3 UART ISP データ形式
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
A
FT
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 バイトから減少します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
299
A
ソフトウェアの XON/XOFF フロー制御方式は、バッファのオーバーランによるデータ損
失を防ぐために使用されます。データが短時間で到着する場合、ASCII 制御文字 DC3(停
止)が送信されて、データのフローが停止します。ASCII 制御文字 DC1(開始)の送信に
より、データフローが再開します。ホストも同じフロー制御方式に対応している必要があ
ります。
R
19.4.4 UART ISP フロー制御
D
UU エンコードの説明は、Wotsit のウェブページに記載されています。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
フラッシュのプログラミングコマンドは、オンチップ RAM の上位 32 バイトを使用しま
す。ユーザーが割り当てたスタック空間のスタック利用量は、最大値の 128 バイトから
減少します。
F
FT
FT
A
A
R
R
D
D
D
19.4.9 IAP コマンドハンドラで使用される RAM
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
A
FT
D
19.5 UART ISP コマンド
R
A
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
300
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
FT
R
R
Return Code
CMD_SUCCESS |
FT
FT
A
アンロックコード : 2313010
A
R
Input
R
A
FT
D
R
A
PARAM_ERROR
Example
このコマンドは、「Flash Write」、「Erase」、「Go」の各コマンドのアンロックに使
用されます
「U 23130<CR><LF>」は、
「Flash Write」/「Erase」および「Go」コマンドをアン
ロックします。
19.5.2 Set Baud Rate < ボーレート > < ストップビット >(UART ISP)
Table 254. UART ISP Set Baud Rate command
Command
B
Input
ボーレート : 9600 | 19200 | 38400 | 57600 | 115200 | 230400
Return Code
ストップビット : 1 | 2
CMD_SUCCESS |
INVALID_BAUD_RATE |
INVALID_STOP_BIT |
PARAM_ERROR
Description
Example
このコマンドは、ボーレートの変更に使用されます。新しいボーレートは、コマ
ンドハンドラが CMD_SUCCESS リターンコードを送信した後で有効になります。
「B 57600 1<CR><LF>」は、シリアルポートにボーレート 57600 bps、およびス
トップビット 1 を設定します。
19.5.3 Echo < 設定 >(UART ISP)
Table 255. UART ISP Echo command
Command
A
Input
設定 : ON = 1 | OFF = 0
CMD_SUCCESS |
Return Code
PARAM_ERROR
Description
Example
エコーコマンドのデフォルト設定は ON です。ON の場合、ISP コマンドハンドラ
は受信したシリアルデータをホストに戻します。
「A 0<CR><LF>」はエコーを無効にします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
INVALID_CODE |
Description
F
D
D
U
A
FT
FT
A
A
R
R
D
D
D
Command
R
A
FT
FT
A
A
R
R
R
Table 253. UART ISP Unlock command
D
D
D
19.5.1 Unlock < アンロックコード >(UART ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
301
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
ホストは、CMD_SUCCESS リターンコードを受信した後でなければ、データを送信できま
せん。ホストは、20 の UU エンコード行を送信した後で、チェックサムを送信する必要
があります。チェックサムは、ローデータ(UU エンコーディング前)バイトの追加によ
り生成され、20 の UU エンコード行を送信した後でリセットされます。UU エンコード行
の長さは、61 文字(バイト)を超えられません。すなわち 45 データバイトまで保持でき
ます。データが 20 未満の UU エンコード行に収まる場合は、チェックサムは実際に送信
されたバイト数と一致します。ISP コマンドハンドラは、実際に送信されたバイト数を、
受信されたバイトのチェックサムと比較します。チェックサムが一致した場合、ISP コマ
ンドハンドラは「OK<CR><LF>」で応答して、送信を継続します。チェックサムが一致し
ない場合、ISP コマンドハンドラは「RESEND<CR><LF>」で応答します。これに対して、
ホストはバイトを再送信する必要があります。
F
FT
FT
A
A
R
R
D
D
D
19.5.4 Write to RAM < 開始アドレス > < バイト数 >(UART ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
A
FT
Input
開始アドレス : データバイトが書き込まれる RAM アドレス。このアドレスはワー
ド境界になります。
Return Code
バイト数 : 書き込まれるバイト数。4 の倍数の数になります。
CMD_SUCCESS |
ADDR_ERROR(アドレスがワード境界ではない)|
ADDR_NOT_MAPPED |
COUNT_ERROR(バイトカウントが 4 の倍数ではない)|
PARAM_ERROR |
CODE_READ_PROTECTION_ENABLED
Description
Example
このコマンドは、データを RAM にダウンロードする場合に使用されます。デー
タは UU エンコード形式になります。このコマンドは、CRP がイネーブルになっ
ている場合はブロックされます。
「W 268436224 4<CR><LF>」は、4 バイトのデータをアドレス 0x1000 0300 に書
き込みます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
302
A
W
R
Command
D
Table 256. UART ISP Write to RAM command
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
データストリームの後に、コマンド成功リターンコードが送信されます。20 の UU エン
コード行の送信後、チェックサムが送信されます。チェックサムは、ローデータ(UU エ
ンコーディング前)バイトの追加により生成され、20 の UU エンコード行を送信した後
でリセットされます。UU エンコード行の長さは、61 文字(バイト)を超えられません。
すなわち 45 データバイトまで保持できます。データが 20 未満の UU エンコード行に収
まる場合は、チェックサムは実際に送信されたバイト数と一致します。ホストは、実際に
送信されたバイト数を受信されたバイトのチェックサムと比較します。チェックサムが一
致した場合、ホストは「OK<CR><LF>」で応答して、送信を継続します。チェックサムが
一致しない場合、ホストは「RESEND<CR><LF>」で応答します。これに応答して、ISP コ
マンドハンドラは再度データを送信します。
F
FT
FT
A
A
R
R
D
D
D
19.5.5 Read Memory < アドレス > < バイト数 >(UART ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
A
FT
Input
開始アドレス : データバイトが読み取られるアドレス。このアドレスはワード境
界になります。
バイト数 : 読み取られるバイト数。4 の倍数の数になります。
Return Code
CMD_SUCCESS の後に < 実際のデータ(UU エンコード)> |
ADDR_ERROR(アドレスがワード境界ではない)|
ADDR_NOT_MAPPED |
COUNT_ERROR(バイトカウントが 4 の倍数ではない)|
PARAM_ERROR |
CODE_READ_PROTECTION_ENABLED
Description
Example
このコマンドは、RAM またはフラッシュメモリからデータを読み取る場合に使用
されます。このコマンドは、CRP がイネーブルになっている場合はブロックされ
ます。
「R 268435456 4<CR><LF>」は、4 バイトのデータをアドレス 0x1000 0000 から読
み取ります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
303
A
R
R
Command
D
Table 257. UART ISP Read Memory command
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
19.5.6 Prepare sector(s) for write operation < 開始セクタ番号 > < 終了セクタ
番号 >(UART ISP)
D
R
R
D
FT
FT
A
A
このコマンドは、フラッシュの書き込み / 消去操作を 2 段階のプロセスに分割します。
R
A
FT
P
Input
開始セクタ番号
D
Command
R
A
終了セクタ番号 : 開始セクタ番号と同じか、それを上回る番号になります。
Return Code
CMD_SUCCESS |
BUSY |
INVALID_SECTOR |
PARAM_ERROR
Description
Example
このコマンドは、
「Copy RAM to flash」または「Erase Sector(s)」コマンドを実行
する前に、実行する必要があります。
「Copy RAM to flash」または「Erase Sector(s)」
コマンドの実行に成功すると、関連するセクタが再度保護されます。ブートブ
ロックは、このコマンドで準備できません。シングルセクタを準備するには、
「開
始」セクタと「終了」セクタに同じ番号を使用します。
「P 0 0<CR><LF>」は、フラッシュセクタ 0 を準備します。
19.5.7 Copy RAM to flash < フラッシュアドレス > <RAM アドレス > < バイト
数 >(UART ISP)
Table 259. UART ISP Copy command
Command
C
Input
フラッシュアドレス(DST): データバイトが書き込まれるデスティネーションフ
ラッシュアドレス。デスティネーションアドレスは、256 バイト境界になります。
RAM アドレス(SRC): データバイトが読み取られるソース RAM アドレス。
Return Code
バイト数 : 書き込まれるバイト数。256 | 512 | 1024 | 4096 のいずれかになります。
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
Example
このコマンドは、フラッシュメモリのプログラミングに使用されます。
「Prepare
Sector(s) for Write Operation」コマンドが、このコマンドに先行する必要がありま
す。
「Copy」コマンドが正常に実行されると、影響を受けるセクタが再度自動的に
保護されます。ブートブロックは、このコマンドで書き込めません。このコマンド
は、CRP がイネーブルになっている場合はブロックされます。
「C 0 268467504 512<CR><LF>」は、RAM アドレス 0x1000 0800 の 512 バイトをフ
ラッシュアドレス 0 にコピーします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
Table 258. UART ISP Prepare sector(s) for write operation command
Rev. 00.15 — 2010 / 9 / 28
304
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
R
アドレス : コード実行を開始するフラッシュまたは RAM アドレス。このアドレス
はワード境界にあります。
FT
FT
A
A
Input
R
A
CODE_READ_PROTECTION_ENABLED
このコマンドは、RAM またはフラッシュメモリに常駐するプログラムの実行に使
用されます。このコマンドが正常に実行された後、ISP コマンドハンドラに戻るこ
とができない場合があります。このコマンドは、CRP がイネーブルになっている場
合はブロックされます。
「G 0 A<CR><LF>」は、ARM モードでアドレス 0x0000 0000 に分岐します。
19.5.9 Erase sector(s) < 開始セクタ番号 > < 終了セクタ番号 >(UART ISP)
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
Example
このコマンドは、オンチップフラッシュメモリの 1 つまたは複数のセクタの消去に
使用されます。ブートブロックは、このコマンドで消去できません。このコマンド
では、CRP がイネーブルになっている場合に、全ユーザーセクタの消去のみが可能
です。
「E 2 3<CR><LF>」は、フラッシュセクタ 2 および 3 を消去します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
305
A
PARAM_ERROR |
R
CMD_LOCKED |
D
ADDR_NOT_MAPPED |
FT
CMD_SUCCESS |
ADDR_ERROR |
Description
D
D
モード : T(Thumb モードでプログラムを実行)| A(ARM モードでプログラムを
実行)。
Example
F
D
D
G
Description
A
FT
FT
A
A
R
R
R
Command
Return Code
R
A
D
D
Table 260. UART ISP Go command
D
R
FT
FT
A
A
R
R
D
D
D
19.5.8 Go < アドレス > < モード >(UART ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
Return Code
終了セクタ番号 : 開始セクタ番号と同じか、それを上回る番号になります。
CMD_SUCCESS |
FT
FT
R
A
FT
D
R
A
PARAM_ERROR |
このコマンドは、オンチップフラッシュメモリの 1 つまたは複数のセクタのブラン
クチェックに使用されます。
セクタ 0 のブランクチェックは、先頭 64 バイトがフラッシュブートブロックにリ
マップされているため、常に失敗します。
「I 2 3<CR><LF>」は、フラッシュセクタ 2 および 3 をブランクチェックします。
19.5.11 Read Part Identification number(UART ISP)
Table 263. UART ISP Read Part Identification 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
LPC11C12FBD48/301
337711147
0x1421 102B
LPC11C14FBD48/301
339742763
0x1440 102B
LPC11C1x
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
SECTOR_NOT_BLANK(< 最初のブランクではないワード位置のオフセット > < ブ
ランクではないワード位置のコンテンツ > が続く)|
INVALID_SECTOR |
Command
F
開始セクタ番号 :
A
Input
A
I
Example
A
R
R
Command
Description
R
D
D
Table 262. UART ISP Blank check sector command
D
FT
FT
A
A
R
R
D
D
19.5.10 Blank check sector(s) < セクタ番号 > < 終了セクタ番号 >(UART ISP)
306
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
R
なし
Return Code
CMD_SUCCESS の後、ASCII 形式の 2 バイトのブートコードバージョン番号。
<byte1(Major)>.<byte0(Minor)> と解釈されます。
Description
このコマンドは、ブートコードバージョン番号の読み取りに使用されます。
FT
FT
A
A
Input
R
A
アドレス 1(DST): 比較されるデータバイトのフラッシュまたは RAM の開始アド
レス。このアドレスはワード境界になります。
アドレス 2(SRC): 比較されるデータバイトのフラッシュまたは RAM の開始アド
レス。このアドレスはワード境界になります。
バイト数 : 比較されるバイト数。4 の倍数になります。
CMD_SUCCESS |(ソースとデスティネーションのデータが同じ)
COMPARE_ERROR |(最初のミスマッチのオフセットが続く)
COUNT_ERROR(バイトカウントが 4 の倍数ではない)|
ADDR_ERROR |
ADDR_NOT_MAPPED |
PARAM_ERROR |
このコマンドは、2 箇所のメモリコンテンツを比較する場合に使用されます。
ソースまたはデスティネーションアドレスに、アドレス 0 から始まる先頭の 512 バ
イトのいずれかが含まれている場合、正しい比較の結果が得られない場合がありま
す。ROM のブート時に、先頭の 512 バイトがリマップされます。
「M 8192 268468224 4<CR><LF>」は、RAM アドレス 0x1000 8000 の 4 バイトを、
フラッシュアドレス 0x2000 の 4 バイトと比較します。
19.5.14 ReadUID(UART ISP)
Table 267. UART ISP ReadUID command
N
Input
なし
Return Code
CMD_SUCCESS の後に、E ソートテスト情報の 4 つの 32 ビットワードが ASCII 形式
で続きます。最も低いアドレスのワードが最初に送信されます。
Description
このコマンドは、固有の ID の読み取りに使用されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
307
A
Input
R
M
D
Command
FT
Table 266. UART ISP Compare command
Command
D
D
19.5.13 Compare < アドレス 1> < アドレス 2> < バイト数 >(UART ISP)
Example
F
D
D
K
Description
A
FT
FT
A
A
R
R
R
Command
Return Code
R
A
D
D
Table 265. UART ISP Read Boot Code version number command
D
R
FT
FT
A
A
R
R
D
D
D
19.5.12 Read Boot code version number(UART ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
R
R
D
Table 268. UART ISP Return Codes Summary
D
R
FT
FT
A
A
R
R
D
D
D
19.5.15 UART ISP リターンコード
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
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_
ENABLED
CRP がイネーブルです。
FT
FT
A
A
Return Mnemonic
Code
D
D
R
A
R
A
308
D
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
FT
© NXP B.V. 2010. All rights reserved.
UM10398_0
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
FT
FT
A
A
R
R
R
D
FT
FT
A
A
R
R
D
注意 : C_CAN インターフェースは、LPC11C1x 部品でのみにあります。
D
D
D
19.6 C_CAN 通信プロトコル
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
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 ビットサブインデッ
R
A
FT
またはチップがリセットされるまで「永遠に」受信、処理、応答が行われます。
C_ISP ハンドラは、固定 CANopen ノード ID 125(0x7D)を占有します。
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
19.6.1 C_CAN ISP SDO の通信
CAN ISP ノードは、0x600 にノード ID 0x7D を加えた 0x67D に等しい識別子の CAN 2.0A
(11 ビット)メッセージを待機します。ノードは、0x580 にノード ID を加えた 0x5FD に
等しい識別子の SDO 応答を送信します。SDO 通信では、
「優先」および「セグメント」プ
ロトコルがサポートされます。これは、通信が常に確認されることを意味します。各要求
の CAN メッセージの後に、ISP ノードから応答メッセージが送信されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
309
A
SDO コマンドは、特定の実行アドレスにジャンプするコマンド(「Go」)を受信するまで、
R
C_CAN ISP コマンドハンドラを使用すると、UART ISP コマンドで実行可能なすべての機
能を実行できます。Table 269 を参照してください。
D
クスを経由してアドレス指定されるエントリが格納されます。コマンドインターフェース
は、この OD の一部になります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
SDO プロトコルの詳細については、CiA 301 規格を参照してください。
D
R
FT
FT
A
A
R
R
D
D
D
SDO ブロック転送モードはサポートされません。
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
R
A
FT
D
Table 270. C_CAN ISP object directory
Data type
Access
Description
0x1000
00
UNSIGNED32
RO
デバイスタイプ(ASCII “LPC1”)
RO
エラーレジスタ(未使用、0x00)
A
Subindex
0x1001
00
-
0x1018
00
-
01
UNSIGNED32
RO
ベンダー ID(未使用、0x0000 0000)
02
UNSIGNED32
RO
部品識別番号
RO
ブートコードバージョン番号
ID オブジェクト
03
UNSIGNED32
00
-
01
DOMAIN
0x1F51
00
-
01
UNSIGNED8
RW
プログラム制御
0x5000
00
UNSIGNED16
WO
アンロックコード
0x5010
00
UNSIGNED32
RW
メモリ読み取りアドレス
0x5011
00
UNSIGNED32
RW
メモリ読み取り長
プログラムデータ
RW
プログラム領域
プログラム制御
0x5015
00
UNSIGNED32
RW
RAM 書き込みアドレス
0x5020
00
UNSIGNED16
WO
セクタ書き込み準備
0x5030
00
UNSIGNED16
WO
セクタ消去
0x5040
00
-
01
UNSIGNED16
WO
セクタチェック
02
UNSIGNED32
RO
最初の非ブランク位置のオフセット
00
-
01
UNSIGNED32
RW
フラッシュアドレス(DST)
02
UNSIGNED32
RW
RAM アドレス(SRC)
03
UNSIGNED16
RW
バイト数
00
-
01
UNSIGNED32
RW
アドレス 1
02
UNSIGNED32
RW
アドレス 2
03
UNSIGNED16
RW
バイト数
04
UNSIGNED32
RO
最初のミスマッチのオフセット
00
-
0x5050
0x5060
0x5070
0x5100
セクタブランクチェック
RAM のフラッシュへのコピー
メモリ比較
実行アドレス
01
UNSIGNED32
RW
実行アドレス
02
UNSIGNED8
RO
モード(「T」または「A」)、
「T」のみサポート
00
-
01
UNSIGNED32
RO
シリアル番号 1
02
UNSIGNED32
RO
シリアル番号 2
03
UNSIGNED32
RO
シリアル番号 3
04
UNSIGNED32
RO
シリアル番号 4
シリアル番号
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
R
Index
0x1F50
D
D
19.6.2 C_CAN ISP オブジェクトディレクトリ
Rev. 00.15 — 2010 / 9 / 28
310
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
< アンロックコード > を [0x5000, 0] に書き込みます。無効なアンロックコードを書き込
んだ場合、専用のアボートコードが返されます。
F
FT
FT
A
A
R
R
D
D
D
19.6.3 Unlock(C_CAN ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
A
19.6.4 Write to RAM(C_CAN ISP)
FT
[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] に最初の非ブ
ランク位置のオフセットが格納されています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
311
A
19.6.5 Read memory(C_CAN ISP)
R
込みアドレスは自動的にインクリメントされるため、値の大きな領域の書き込みは、
[0x1F50, 1] への複数の連続的な書き込みサイクルで実行される場合があります。
D
[0x5015, 0] への書き込みにより、RAM 書き込みアドレスを設定します。この後、バイナ
リデータを [0x1F50, 1] に書き込みます。これは DOMAIN エントリであるため、データを
連続的に書き込むことができます。ホストが書き込みを終了します。[0x5015, 0] の書き
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
FT
FT
A
A
R
D
R
A
0x1440 102B
D
<tbd>
339742763
FT
<tbd>
LPC11C14FBD48/301
A
LPC11C12FBD48/301
R
Hex coding
D
ASCII/dec coding
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 272. C_CAN ISP SDO abort codes
ユーザーマニュアル
F
D
D
Device
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
INVALID_COMMAND
SDOABORT_INVALID_COMMAND
0x0F00 0001
INVALID_SECTOR
SDOABORT_INVALID_SECTOR
0x0F00 0007
0x0F00 0010
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
A
FT
FT
A
A
R
R
R
Table 271. LPC11C1x part identification numbers
UM10398_0
R
A
D
D
[0x1018, 2] を読み取ります。Table 271 を参照してください。
D
R
FT
FT
A
A
R
R
D
D
D
19.6.11 Read PartID(C_CAN ISP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
312
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
UART ISP Error Code
SDO Abort Code
Value
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
R
A
F
FT
FT
A
A
R
R
D
D
Table 272. C_CAN ISP SDO abort codes(続き)
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
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 to
FLASH」コマンドに渡される、パラメータの最大数は 5 です。「ReadUID」コマンドで返
される、結果の最大数は 4 です。コマンドハンドラは、未定義コマンドが受信されると
ステータスコード INVALID_COMMAND を送信します。IAP ルーチンは 0x1FFF 1FF0 の場
所に常駐する Thumb コードです。
IAP 関数は、C を使用した次の方法で呼び出されます。
IAP の位置のエントリポイントを定義します。IAP の位置の 0 番目のビットが設定されて
いるため、プログラムカウンタがこのアドレスに分岐するときに Thumb 命令セットが変
更されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
313
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
F
FT
FT
A
A
R
R
D
D
IAP コマンドテーブルと結果テーブルを IAP 関数に渡す、データ構造またはポインタを定
義します。
A
FT
FT
A
A
R
R
D
D
D
#define IAP_LOCATION 0x1fff1ff1
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
A
unsigned long command[5];
unsigned long result[4];
FT
D
R
A
または
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
314
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
F
D
D
R
A
FT
D
Table 282
FT
5810
FT
Read UID
A
Table 281
A
5710
R
Reinvoke ISP
R
Table 280
D
5610
FT
Compare
FT
Described in
A
A
A
Command Code
R
R
R
IAP Command
D
D
D
Table 273. IAP Command Summary(続き)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
A
COMMAND CODE
PARAMETER 1
command
parameter table
PARAMETER 2
ARM REGISTER r0
PARAMETER n
ARM REGISTER r1
STATUS CODE
RESULT 1
command
result table
RESULT 2
RESULT n
Fig 60. IAP parameter passing
19.7.1 Prepare sector(s) for write operation(IAP)
このコマンドは、フラッシュの書き込み / 消去操作を 2 段階のプロセスに分割します。
Table 274. IAP Prepare sector(s) for write operation command
Command
Prepare sector(s) for write operation
Input
コマンドコード : 5010
Param0: 開始セクタ番号
Return Code
。
Param1: 終了セクタ番号(開始セクタ番号と同じか、それを上回る番号)
CMD_SUCCESS |
BUSY |
INVALID_SECTOR
Result
なし
Description
このコマンドは、
「Copy RAM to flash」または「Erase Sector(s)」コマンドを実行
する前に、実行する必要があります。
「Copy RAM to flash」または「Erase Sector(s)」
コマンドの実行に成功すると、関連するセクタが再度保護されます。ブートセク
タは、このコマンドで準備できません。シングルセクタを準備するには、
「開始」
セクタと「終了」セクタに同じ番号を使用します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
315
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
FT
A
R
A
DST_ADDR_NOT_MAPPED |
COUNT_ERROR(バイトカウントが 256 | 512 | 1024 | 4096 のいずれでもない)|
SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION |
BUSY |
なし
このコマンドは、フラッシュメモリのプログラミングに使用されます。最初に
「Preapre Sector for Write Operation」コマンドを呼び出して、影響を受けるセク
タを準備します。
「Copy」コマンドが正常に実行されると、影響を受けるセクタ
が再度自動的に保護されます。ブートセクタは、このコマンドで書き込むことが
できません。
19.7.3 Erase Sector(s)(IAP)
Table 276. IAP Erase Sector(s) 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 セクタまたは複数セクタの消
去に使用されます。ブートセクタは、このコマンドで消去できません。シングル
セクタを消去するには、
「開始」セクタと「終了」セクタに同じ番号を使用します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
316
A
DST_ADDR_ERROR(アドレスが正しい境界ではない)|
SRC_ADDR_NOT_MAPPED |
R
SRC_ADDR_ERROR(アドレスがワード境界ではない)|
D
CMD_SUCCESS |
FT
Param3: システムクロック周波数(CCLK)(単位 =kHz)。
Command
D
D
Param2: 書き込まれるバイト数。256 | 512 | 1024 | 4096 のいずれかになります。
Description
F
R
R
Param1(SRC): データバイトが読み取られるソース RAM アドレス。このアド
レスはワード境界になります。
Result
A
D
D
Param0(DST): データバイトが書き込まれるデスティネーションフラッシュア
ドレス。このアドレスは 256 バイト境界になります。
Return Code
R
FT
FT
A
A
R
R
D
D
R
コマンドコード : 5110
D
Input
FT
FT
FT
Copy RAM to flash
A
A
A
Command
R
R
R
Table 275. IAP Copy RAM to flash command
D
D
D
19.7.2 Copy RAM to flash(IAP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
FT
FT
R
A
FT
D
R
A
Result0: ステータスコードが SECTOR_NOT_BLANK であれば、最初の非ブランク
ワード位置のオフセット。
Result1: 非ブランクワード位置のコンテンツ。
このコマンドは、オンチップフラッシュメモリの 1 セクタまたは複数セクタのブ
ランクチェックに使用されます。シングルセクタをブランクチェックするには、
「開始」セクタと「終了」セクタに同じ番号を使用します。
19.7.5 Read Part Identification number(IAP)
Table 278. IAP Read Part Identification command
Read part identification number
Input
コマンドコード : 5410
Return Code
パラメータ : なし
CMD_SUCCESS |
Result
Result0: 部品識別番号
Description
このコマンドは、部品識別番号の読み取りに使用されます。
19.7.6 Read Boot code version number(IAP)
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
このコマンドは、ブートコードバージョン番号の読み取りに使用されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
INVALID_SECTOR
Command
F
A
A
SECTOR_NOT_BLANK |
Description
A
R
R
。
Param1: 終了セクタ番号(開始セクタ番号と同じか、それを上回る番号)
CMD_SUCCESS |
BUSY |
Result
R
D
D
Param0: 開始セクタ番号
Return Code
R
FT
FT
A
A
R
R
D
D
D
コマンドコード : 5310
FT
FT
FT
Input
A
A
A
Blank check sector(s)
R
R
R
Table 277. IAP Blank check sector(s) command
Command
D
D
D
19.7.4 Blank check sector(s)(IAP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
317
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
D
R
A
F
FT
FT
A
A
R
R
D
D
R
D
FT
FT
A
A
R
R
D
D
D
R
コマンドコード : 5610
D
Input
FT
FT
FT
Compare
A
A
A
Command
R
R
R
Table 280. IAP Compare command
D
D
D
19.7.7 Compare < アドレス 1> < アドレス 2> < バイト数 >(IAP)
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
A
FT
D
R
Param0(DST): 比較されるデータバイトのフラッシュまたは RAM の開始アド
レス。このアドレスはワード境界になります。
A
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 にリマップできます。
19.7.8 Reinvoke ISP(IAP)
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 ピンにアクセスできな
い場合に使用できます。
19.7.9 ReadUID(IAP)
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 の読み取りに使用されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
318
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
R
R
D
Table 283. IAP Status Codes Summary
D
R
FT
FT
A
A
R
R
D
D
D
19.7.10 IAP ステータスコード
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
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
フラッシュプログラミングハードウェアインター
フェースがビジー状態です。
FT
FT
A
A
Status Mnemonic
Code
D
D
R
A
FT
D
R
A
19.8 デバッグ上の注意
19.8.1 フラッシュイメージの比較
使用されるデバッガと IDE デバッグの設定に応じて、デバッガの接続時に確認されるメモ
リはブート ROM、内部 SRAM、フラッシュのいずれかになります。現在のデバッグ環境に
どのメモリが使用されているかを簡単に判断する場合、フラッシュアドレス 0x0000 0004
に格納された値をチェックします。このアドレスには、ARM Cortex-M0 ベクタテーブルの
コードのエントリポイント、すなわちブート ROM、内部 SRAM、またはフラッシュメモ
リの下部が格納されます。
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
319
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 19 章:LPC111x/LPC11C1x フラッシュメモリプログラミングファーム
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
19.8.2 シリアルワイヤデバッグ(SWD)フラッシュプログラミングインター
フェース
D
FT
FT
A
A
R
R
D
デバッグツールは、フラッシュイメージの一部を RAM に書き込み、IAP 呼び出し「Copy
RAM to flash」を正しいオフセットで反復的に実行できます。
D
D
R
A
FT
D
19.9 フラッシュメモリへのアクセス
R
A
システムクロック周波数に応じて、フラッシュメモリへのアクセスはさまざまなアクセス
時間で設定できます。設定は、FLASHCFG レジスタのアドレス 0x4003 C010 に書き込み
ます。
注意 : このレジスタを正しく設定しないと、LPC111x/LPC11C1x のフラッシュメモリが正
常に動作しないことがあります。
Table 285. Flash configuration register (FLASHCFG, address 0x4003 C010) bit description
Bit
Symbol
1:0
FLASHTIM
31:2 -
Value Description
フラッシュメモリへのアクセス時間。FLASHTIM +1 は、フラッ 10
シュアクセスに使用されるシステムクロック数に等しくなり
ます。
00
1 システムクロックのフラッシュアクセス時間(最大 20 MHz
のシステムクロック周波数)
01
2 システムクロックのフラッシュアクセス時間(最大 40 MHz
のシステムクロック周波数)
10
3 システムクロックのフラッシュアクセス時間(最大 50 MHz
のシステムクロック周波数)
11
予約済み。
-
予約済み。ユーザーソフトウェアがこれらのビットの値を変 <tbd>
更してはなりません。ビット 31:2 は読み取ったとおりに書き
戻す必要があります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Reset
value
Rev. 00.15 — 2010 / 9 / 28
320
D
D
R
R
R
R
R
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
UM10398
D
D
D
参考資料
D
D
R
R
A
FT
FT
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
Rev. 00.15 — 2010 / 9 / 28
FT
A
A
R
R
D
D
第 20 章:LPC111x/LPC11C1x シリアルワイヤデバッグ(SWD)
D
FT
FT
A
A
R
R
D
D
D
20.1 この章を読む前に
R
A
FT
D
デバッグ機能は、LPC111x と LPC11C1x のすべての部品で同一です。
R
A
20.2 特長
• ARM シリアルワイヤデバッグモードをサポートします。
•
すべてのメモリ、レジスタ、ペリフェラルへのデバッグアクセスを管理します。
•
デバッグセッションに、ターゲットリソースは不要です。
• 4
つのブレークポイント。コードパッチの際に、命令アドレスのリマップにも使用で
きる 4 つの命令ブレークポイント。パッチのアドレスをリテラル値にリマップする場
合に使用できる、2 つのデータコンパレータ。
•
トリガとしても使用できる、2 つのデータウォッチポイント。
20.3 概要
デバッグ機能は、ARM Cortex-M0 に統合されています。シリアルワイヤデバッグ機能がサ
ポートされています。ARM Cortex-M0 は、最大で 4 つのブレークポイントと 2 つのウォッ
チポイントに対応するよう構成されています。
20.4 説明
LPC111x/LPC11C1x によるデバッグは、シリアルワイヤデバッグモードを使用します。
20.5 ピンの説明
下記の表に、デバッグに関連した各種のピンの機能を説明しています。これらの機能の一
部は、他の機能とピンを共有しているため、同時に使用できない場合があります。
Table 286. Serial Wire Debug pin description
Pin Name
Type
Description
SWCLK
Input
シリアルワイヤクロック。このピンは、シリアルワイヤデバッグモー
ド時のデバッグロジック用のクロックです(SWDCLK)。
SWDIO
Input / シリアルワイヤデバッグのデータ入力 / 出力。SWDIO ピンは、
Output LPC111x/LPC11C1x との通信および制御用に、外部デバッグツール
で使用されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
321
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
D
20.6 デバッグ上の注意
FT
FT
FT
FT
第 20 章:LPC111x/LPC11C1x シリアルワイヤデバッグ(SWD)
D
D
FT
FT
A
A
R
R
重要 : デバッグの間、特定の制限に注意する必要があります。最も重要な注意点として、
ARM Cortex-M0 統合の制約により、LPC111x/LPC11C1x がディープスリープモードから通
常の方法でウェイクアップできないことが挙げられます。したがって、このモードはデ
バッグ中に使用しないようにしてください。
D
D
R
A
FT
D
R
デバッグセッションの間、CPU の停止により自動的にシステム tick タイマが停止します。
他のペリフェラルには影響しません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
322
A
またデバッグモードによる、ARM Cortex-M0 CPU 内部での電力低減モードの動作の変化、
これのシステム全体への波及も問題となります。このような変動が発生するため、デバッ
グの間は電力測定を実施すべきではありません。通常のアプリケーションの使用時よりも
測定結果が高くなるためです。
D
D
A
A
A
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
FT
FT
FT
FT
A
A
R
R
D
D
D
D
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
Rev. 00.15 — 2010 / 9 / 28
R
R
R
R
R
UM10398
D
D
D
参考資料
D
R
A
F
FT
FT
A
A
R
R
D
D
ユーザーマニュアル
D
FT
FT
A
A
R
R
D
D
D
21.1 概要
R
A
•
学習とプログラムが容易なシンプルなアーキテクチャ
•
超低電力、エネルギー効率に優れた動作
•
卓越したコード密度
•
高性能な決定性割り込み処理
• Cortex-M プロセッサファミリとの上位互換
&RUWH[0FRPSRQHQWV
&RUWH[0SURFHVVRU
1HVWHG
9HFWRUHG
,QWHUUXSW
&RQWUROOHU
19,&
,QWHUUXSWV
'HEXJ
&RUWH[0
SURFHVVRU
FRUH
%UHDNSRLQW
DQG
ZDWFKSRLQW
XQLW
%XVPDWUL[
'HEXJJHU
LQWHUIDFH
$+%/LWHLQWHUIDFHWRV\VWHP
'HEXJ
$FFHVV3RUW
'$3
6HULDO:LUHGHEXJSRUW
Fig 61. Cortex-M0 implementation
Cortex-M0 プロセッサは、ノイマン型 3 段パイプラインアーキテクチャを採用し、面積と
電力を高度に最適化した 32 ビットプロセッサコア上に構築されています。同プロセッサ
は、コンパクトで強力な命令セットと広範囲に最適化されたデザインを通じて、エネル
ギー効率を桁外れに高め、シングルサイクル乗算器を含むハイエンドプロセッシングハー
ドウェアを搭載しています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
323
A
Cortex-M0 プロセッサは、幅広い組み込みアプリケーション向けに設計されたエントリレ
ベルの 32 ビット ARM Cortex プロセッサです。開発者には次のような重要な効果がもたら
されます。
R
21.2 Cortex-M0 プロセッサとコアペリフェラル
D
ARM Cortex-M0 の文書は、Ref 1 と Ref 2 でも参照できます。
FT
次の資料は、ARM の『Cortex-M0 User Guide』から引用しています。LPC111x/ LPC11C1x
向け Cortex-M0 の固有の実装については、マイナーな変更が行われています。
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
Cortex-M0 プロセッサは、16 ビット Thumb 命令セットをベースにし、Thumb-2 テクノ
ロジを採用した ARMv6-M アーキテクチャを実装しています。新しい 32 ビットアーキテ
クチャに期待される抜群のパフォーマンスを示し、8 ビットおよび 16 ビットのマイクロ
D
FT
FT
A
A
R
R
D
コントローラを上回るコード密度を実現しています。
D
D
R
A
FT
マスク不可能な割り込み(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 プロセッサファミリとの上位互換
•
超低電力スリープモードの搭載
•
効率的なコード実行によるプロセッサクロック遅延の許容、またはスリープモード時
間の長期化
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
324
A
•
R
とおりです。
D
Cortex-M0 プロセッサは、設定可能なネストベクタ割り込みコントローラ(NVIC)に緊密
に統合され、割り込み性能を業界のトップレベルまで高めています。NVIC の特長は次の
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
F
FT
FT
A
A
R
R
D
D
R
D
D
FT
FT
A
A
R
R
広範なデバッグ機能
D
•
FT
FT
FT
ゼロジッタ割り込み処理
A
A
A
•
R
R
R
シングルサイクル 32 ビットハードウェア乗算器
D
D
D
•
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
D
21.2.4 Cortex-M0 コアペリフェラル
R
A
コアペリフェラルは次のとおりです。
NVIC — NVIC は低遅延割り込み処理をサポートする、組み込み割り込みコントローラで
す。
システム制御ブロック — システム制御ブロック(SCB)は、プロセッサ間のプログラマ
モデルインターフェースです。システム実装情報を提供し、設定、制御、システム例外の
報告などのシステム制御を実行します。
システムタイマ — システムタイマ SysTick は、24 ビットカウントダウンタイマです。Real
Time 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 を参照してください。ハン
ドラモードの場合、プロセッサは常にメインスタックを使用します。プロセッサ動作のオ
プションを次に説明します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
325
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
F
例外ハンドラ
A
Handler
FT
アプリケーション メインスタックまたはプロセススタック。
FT
Thread
R
A
A
Stack used
D
R
R
Used to
execute
R
A
D
D
Processor
mode
D
R
FT
FT
A
A
R
R
D
D
D
Table 287. Summary of processor mode and stack use options
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
D
D
R
Section 21.3.1.3.7 を参照してください。
A
FT
D
メインスタック
R
A
21.3.1.3 コアレジスタ
プロセッサのコアレジスタを次に説明します。
/RZUHJLVWHUV
+LJKUHJLVWHUV
6WDFN3RLQWHU
/LQN5HJLVWHU
3URJUDP&RXQWHU
5
5
5
5
5
5
5
5
5
5
5
5
5
635
/55
3&5
365
35,0$6.
&21752/
*HQHUDOSXUSRVHUHJLVWHUV
363
3URJUDP6WDWXV5HJLVWHU
,QWHUUXSWPDVNUHJLVWHU
&RQWURO5HJLVWHU
063
6SHFLDOUHJLVWHUV
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
[1]
[2]
スレッドモードとハンドラモードでのプログラム実行中のアクセスタイプを説明しています。 デバッグア
クセスは異なる場合があります。
ビット [24] は T ビットであり、リセットベクタのビット [0] からロードされます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
326
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
F
FT
FT
A
A
R
R
R
D
FT
スタックポインタ
FT
A
A
R
R
D
21.3.1.3.2
R
FT
D
D
R0-R12 は、データ処理用の 32 ビット汎用レジスタです。
D
A
FT
FT
A
A
R
R
R
汎用レジスタ
D
D
D
21.3.1.3.1
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
スタックポインタ(SP)はレジスタ R13 です。スレッドモードでは、CONTROL レジスタ
のビット [1] は、スタックポインタに対して次の使用を指示します。
A
FT
D
R
A
• 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 ビット
の割り当てを次の図に示します。
$365 1 = & 9
5HVHUYHG
,365
(365
5HVHUYHG
5HVHUYHG
7
([FHSWLRQQXPEHU
5HVHUYHG
Fig 63. APSR, IPSR, EPSR register bit assignments
上記のレジスタには、MSR または MRS 命令の引数としてレジスタ名を使用して、個別に、
または 2 つか 3 つを組み合わせてアクセスします。以下に例を示します。
•
すべてのレジスタを読み取る場合は、MRS 命令に PSR を使用
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
327
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
APSR and IPSR
EAPSR
RW[2]
APSR and EPSR
[1]
[2]
A
RW[1]
R
IAPSR
D
EPSR and IPSR
D
APSR, EPSR, and IPSR
RO
FT
PSR
IEPSR
A
Combination
RW[1][2]
R
Type
D
Register
FT
Table 289. PSR register combinations
FT
A
A
R
R
D
PSR の組み合わせと属性を次の表にまとめています。
D
R
FT
FT
A
A
R
R
D
D
D
• APSR に書き込む場合は、MSR 命令に APSR を使用
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
プロセッサは IPSR ビットへの書き込みを無視します。
EPSR ビットの読み取りによりゼロが返され、プロセッサはこれらのビットへの書き込みを無視します。
プログラムステータスレジスタへのアクセス方法の詳細については、命令の説明の
Section 21.4.7.6 と Section 21.4.7.7 を参照してください。
アプリケーションプログラムステータスレジスタ : APSR は、前回の命令の実行以降の、
条件フラグの現在の状態を格納します。レジスタの属性については、Table 288 のレジス
タの概要を参照してください。ビットの割り当てを次の表に示します。
Table 290. APSR bit assignments
Bits
Name
Function
[31]
N
ネガティブフラグ
[30]
Z
ゼロフラグ
[29]
C
キャリーまたはボローフラグ
[28]
V
オーバーフローフラグ
[27:0]
-
予約済み
APSR のネガティブ、ゼロ、キャリーまたはボロー、およびオーバーフローの各フラグに
ついての詳細は、Section 21.4.4.1.4 を参照してください。
割り込みプログラムステータスレジスタ : IPSR は、現在の割り込みサービスルーチン
(ISR)の例外番号を格納します。レジスタの属性については、Table 288 のレジスタの概要
を参照してください。ビットの割り当てを次の表に示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
328
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
A
F
FT
FT
D
D
FT
FT
A
A
R
R
D
D
予約済み
Exception number これは現在の例外の番号です。
R
A
A
[31:6]
D
R
R
Function
R
FT
D
D
Name
D
A
FT
FT
A
A
R
R
R
Bits
[5:0]
D
D
D
Table 291. IPSR bit assignments
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
R
A
0 = スレッドモード
FT
D
1 = 予約済み
2 = NMI
R
A
3 = HardFault
4 ∼ 10 = 予約済み
11 = SVCall
12、13 = 予約済み
14 = PendSV
15 = SysTick
16 = IRQ0
.
.
.
47 = IRQ31
48 ∼ 63 = 予約済み。
詳細については、Section 21.3.3.2 を参照してください。
実行プログラムステータスレジスタ : EPSR は、Thumb 状態ビットを格納します。
EPSR 属性については、Table 288 のレジスタの概要を参照してください。ビットの割り当
てを次の表に示します。
Table 292. EPSR bit assignments
Bits
Name
Function
[31:25]
-
予約済み
[24]
T
Thumb 状態ビット
[23:0]
-
予約済み
アプリケーションソフトウェアによる MRS 命令を使った直接の EPSR の読み取りの試みで
は、常にゼロが返されます。MSR 命令を使った EPSR の書き込みの試みは、無視されます。
障害ハンドラは、スタック PSR 内の EPSR 値を検証して障害の原因を判断します。Section
21.3.3.6 を参照してください。次の場合、T ビットは 0 にクリアされます。
•
命令 BLX、BX、POP{PC}
•
例外リターン時のスタックされた xPSR 値からの復元
•
例外エントリ時のベクタ値のビット [0]
T ビットが 0 のときに命令の実行を試みると、HardFault またはロックアップが発生しま
す。詳細については、Section 21.3.4.1 を参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
329
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
Interruptible-restartable(割り込み可能 / 再起動可能)命令 : 割り込み可能 / 再起動可能
命令は、LDM と STM です。上記の命令のいずれかの実行中に割り込みが発生すると、プロ
セッサは命令の実行を中断します。
D
FT
FT
A
A
R
R
D
D
D
R
割り込みの実行後、プロセッサは命令の実行を最初からやり直します。
A
FT
例外マスクレジスタ
D
R
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 のレジスタの概要を
参照してください。ビットの割り当てを次の表に示します。
Table 293. PRIMASK register bit assignments
Bits
Name
Function
[31:1]
-
予約済み
[0]
PRIMASK
0 = 影響なし
1 = 優先順位の設定が可能なすべての例外のアクティブ化
を防止します。
21.3.1.3.7
CONTROL レジスタ
CONTROL レジスタは、プロセッサがスレッドモードのときに使用されるスタックを制御
します。レジスタの属性については、Table 288 のレジスタの概要を参照してください。
ビットの割り当てを次の表に示します。
Table 294. CONTROL register bit assignments
Bits
Name
Function
[31:2]
-
予約済み
[1]
Active stack
pointer
現在のスタックを定義します。
0 = MSP が現在のスタックポインタです。
1 = PSP が現在のスタックポインタです。
ハンドラモードでは、このビットはゼロとして読み取ら
れ、このビットへの書き込みは無視されます。
[0]
-
予約済み
ハンドラモードは常に MSP を使用するため、ハンドラモードの場合、プロセッサは
CONTROL レジスタのアクティブなスタックポインタビットへの明示的な書き込みを無視
します。例外のエントリとリターンのメカニズムにより、CONTROL レジスタが更新され
ます。
OS 環境では、スレッドモード時に実行されるスレッドはプロセススタックを使用し、カー
ネルハンドラと例外ハンドラはメインスタックを使用することが推奨されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
330
A
例外マスクレジスタは、プロセッサによる例外の処理をディスエーブルにします。タイミ
ングが重要なタスク、またはアトミシティを要求するコードシーケンスへの影響が予測さ
れる例外をディスエーブルにします。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
デフォルトでは、スレッドモードは MSP を使用します。スレッドモードで使用されるス
タックポインタを PSP に切り替えるには、MSR 命令を使用して、アクティブスタックポイ
ンタビットを 1 に設定します。Section 21.4.7.6 を参照してください。
D
FT
FT
A
A
R
R
D
D
D
注意 : スタックポインタを変更する場合、ソフトウェアでは MSR 命令の直後に ISB 命令を
使用する必要があります。これにより、ISB 後の命令は確実に新しいスタックポインタを
使用して実行されます。Section 21.4.7.5 を参照してください。
R
A
FT
てください。
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 カーネルのデバイス独立型インターフェース
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
331
A
NVIC レジスタは、割り込み処理を制御します。詳細については、Section 21.5.2 を参照し
R
Cortex-M0 プロセッサは、割り込みとシステム例外をサポートしています。同プロセッサ
とネストベクタ割り込みコントローラ(NVIC)は、すべての例外に優先順位を付けて処
理します。割り込みまたは例外により、ソフトウェア制御の通常のフローが変化します。
プロセッサはハンドラモードを使用して、リセットを除くすべての例外を処理します。詳
細については、Section 21.3.3.6.1 と Section 21.3.3.6.2 を参照してください。
D
21.3.1.4 例外と割り込み
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
アコンポーネント向けの、オプショナルインターフェースも扱っています。
D
FT
FT
A
A
R
R
D
D
CMSIS では、Cortex-M0 プロセッサのコアペリフェラルのアドレス定義とデータ構造も規
定されています。また、TCP/IP スタックとフラッシュファイルシステムを含むミドルウェ
D
D
CMSIS により、テンプレートコードの再利用が可能になり、またさまざまなミドルウェア
ベンダーの CMSIS 準拠ソフトウェアコンポーネントを組み合わせられるため、ソフトウェ
ア開発が容易になります。ソフトウェアベンダーは、CMSIS を拡大して、自社のペリフェ
R
A
• 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 のアドレス指定可能なメモリを示した固定メモ
リマップを使用しています。以下にメモリマップの図を示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
332
A
CMSIS についての詳細は、次のセクションでも扱っています。
R
注意 : 本書では、CMSIS で定義されているレジスタの短縮名を使用しています。他の文書
で使用されるアーキテクチャ上の短縮名と異なる場合もあります。
D
本書では、CMSIS で定義されるレジスタ名を使用し、プロセッサコアおよびコアペリフェ
ラルに対応する CMSIS 機能について簡単に説明しています。
FT
ラルの定義と、それらのペリフェラルのアクセス機能を盛り込むことも可能です。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
D
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
*%
*%
[
[)))))))
3HULSKHUDO
*%
[
[)))))))
65$0
*%
[
[)))))))
&RGH
*%
[
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
プロセッサは、プライベートペリフェラルバス(PPB)アドレス範囲の領域を、コアペリ
フェラルレジスタ用に予約しています。Section 21.2 を参照してください。
21.3.2.1 メモリ領域、タイプ、属性
メモリマップは、領域に分割されます。各領域にメモリタイプが定義され、メモリ属性が
追加される領域もあります。メモリのタイプと属性により、領域へのアクセス動作が決定
します。
次のメモリタイプがあります。
通常 — プロセッサは効率性を目的として、または投機的な読み取りを実行するために、ト
ランザクションを再順序付けできます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
[(
[()))))
[(
[')))))))
[$
[)))))))
([WHUQDO5$0
F
FT
FT
([WHUQDOGHYLFH
A
A
A
3ULYDWHSHULSKHUDOEXV 0%
R
R
R
0%
R
A
D
D
'HYLFH
D
R
FT
FT
A
A
R
R
D
D
D
[))))))))
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
333
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
デバイス—プロセッサは、デバイスメモリまたは強い順序付けメモリとの他のトランザク
ションを基準に、トランザクション順序を維持します。
D
FT
FT
A
A
R
R
D
強い順序付け—プロセッサは、他のすべてのトランザクションを基準にトランザクション
順序を維持します。
D
D
R
A
明示的なメモリアクセス命令によるメモリアクセスのほとんどは、再順序付けが命令シー
ケンスの動作に影響しなければ、アクセスの実行順序とプログラムの命令順序の一致がメ
モリシステムにより保証されません。通常、2 つのメモリアクセスがプログラムの順序で
実行されるかどうかにより、プログラムの正しい実行が左右される場合、メモリアクセス
命令の間へのメモリバリア命令の挿入が要求されます。Section 21.3.2.4 を参照してくだ
さい。
ただし、メモリシステムではデバイスメモリおよび強い順序付けメモリへのアクセスの順
序は、保証されない場合があります。2 つのメモリアクセス命令 A1 と A2 について、A1
がプログラム順序で A2 の前に実行される場合、2 つの命令によるメモリアクセスの順序
は次のようになります。
1RUPDO
DFFHVV
1RQVKDUHDEOH
6KDUHDEOH
6WURQJO\
RUGHUHG
DFFHVV
1RUPDODFFHVV
'HYLFHDFFHVVQRQVKDUHDEOH
'HYLFHDFFHVVVKDUHDEOH
6WURQJO\RUGHUHGDFFHVV
$
$
'HYLFHDFFHVV
Fig 65. Memory ordering restrictions
上記の図の説明 :
- — メモリシステムでアクセスの順序が保証されないことを意味します。
< — アクセスはプログラムの順序で実行される、すなわち A1 が常に A2 より先に実行さ
れることを意味します。
21.3.2.3 メモリアクセスの動作
メモリマップの各領域へのアクセスの動作を次の表に示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
334
A
21.3.2.2 メモリシステムによるメモリアクセスの順序付け
R
実行不可(XN: Execute Never)— プロセッサが命令アクセスを阻止することを意味しま
す。メモリの XN 領域からフェッチされた命令を実行した場合、HardFault 例外が生成さ
れます。
D
その他に次のメモリ属性が使用されます。
FT
デバイスメモリと強い順序付けメモリの異なる順序付けが必要になるのは、メモリシステ
ムはデバイスメモリへの書き込みをバッファリングできますが、強い順序付けメモリへの
書き込みはバッファリングできないためです。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Memory
region
Memory
type [1]
XN [1] Description
0x00000000 0x1FFFFFFF
Code
Normal
-
プログラムコードの実行可能領域。
ここにデータを配置することもで
きます。
0x20000000 0x3FFFFFFF
SRAM
Normal
-
データの実行可能領域。ここに
コードを配置することもできます。
0x40000000 0x5FFFFFFF
Peripheral
Device
XN
外部デバイスメモリ
0x60000000 0x9FFFFFFF
External
RAM
Normal
-
データの実行可能領域。
0xA0000000 0xDFFFFFFF
External
device
Device
XN
外部デバイスメモリ
0xE0000000 0xE00FFFFF
Private Peripheral
Bus
Strongly-ordered
XN
この領域には、NVIC、システムタ
イマ、およびシステム制御ブロッ
クが含まれます。この領域では
ワードアクセスのみを使用できま
す。
0xE0100000 0xFFFFFFFF
Device
Device
XN
ベンダー固有
F
FT
FT
Address
range
A
A
A
R
R
D
D
D
Table 295. Memory access behavior
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
D
D
R
A
命令シーケンスの動作に影響しなければ、プロセッサが効率性の改善のために、一部
のメモリアクセスの順序を再度設定する可能性がある。
•
メモリマップ内のデバイスのメモリは、待機状態が異なる可能性がある。
•
バッファリングされるメモリアクセスや投機的なメモリアクセスなど、メモリアクセ
スが統一されていない。
Section 21.3.2.2 に、メモリシステムによりメモリアクセスの順序が保証される事例を説
明しています。上記の場合以外では、メモリアクセスの順序が重要になる場合、メモリバ
リア命令をインクルードして当初の順序付けが強制的に実行されるようにする必要があ
ります。Cortex-M0 プロセッサでは、次のメモリバリア命令を指定できます。
DMB — データメモリバリア(DMB)命令は、未処理のメモリトランザクションが後続の
メモリトランザクションの前に完了することを保証します。Section 21.4.7.3 を参照して
ください。
DSB — データ同期バリア(DSB)命令は、未処理のメモリトランザクションが後続の命
令実行の前に完了することを保証します。Section 21.4.7.4 を参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
Rev. 00.15 — 2010 / 9 / 28
335
A
•
R
プログラムフローの中での命令の順序は、必ずしも対応するメモリトランザクションの順
序を保証するものではありません。これは、次のような理由によります。
D
21.3.2.4 ソフトウェアによるメモリアクセスの順序付け
FT
詳細については、Section 21.3.2.1 を参照してください。
コード、SRAM、外部 RAM 領域はプログラムを保持できます。
ユーザーマニュアル
FT
A
A
R
R
D
[1]
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
メモリバリア命令の使用例を次に示します。
D
FT
FT
A
A
R
R
D
D
ISB — 命令同期バリア(ISB)は、完了したすべてのメモリトランザクションの影響が、
後続の命令により認識されることを保証します。Section 21.4.7.5 を参照してください。
D
D
R
A
ベクタテーブル—プログラムによってベクタテーブル内のエントリが変更され、対応する
例外がイネーブルになった場合、動作の間に DMB 命令を使用します。これにより、例外が
イネーブルになった直後に取り込まれると、プロセッサは確実に新しい例外ベクタを使用
します。
FT
プロセッサは、他のすべてのトランザクションを基準にトランザクション順序を維持しま
す。
21.3.2.5 メモリエンディアン
Cortex-M0 プロセッサは、ゼロから昇順の番号を割り振ったバイトの線形コレクションと
してメモリを表示します。たとえば、バイト 0 ∼ 3 は最初に格納されたワードを保持し、
バイト 4 ∼ 7 は 2 番目に格納されたワードを保持します。データワードのメモリへの格
納方式については、Section 21.3.2.5.1 で説明します。
21.3.2.5.1
リトルエンディアン形式
リトルエンディアン形式では、プロセッサはワードの最下位バイト(lsbyte)を最も低い
番号のバイトに格納し、ワードの最上位バイト(msbyte)を最も高い番号のバイトに格
納します。以下に例を示します。
5HJLVWHU
0HPRU\
$GGUHVV
$
%
$
%
$
%
$
%
OVE\WH
%
%
%
%
PVE\WH
Fig 66. Little-endian format
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
336
A
システム制御ブロックなどの強い順序付けのメモリへのメモリアクセスには、DMB 命令の
使用が要求されません。
R
メモリマップ切り替え — システムにメモリマップ切り替えメカニズムが含まれている場
合、メモリマップの切り替え後に DSB 命令を使用します。これにより、後続の命令例外で
更新後のメモリマップが確実に使用されます。
D
自己修正コード—プログラムに自己修正コードが含まれる場合、プログラムのコード修正
直後に ISB 命令を使用します。これにより、後続の命令例外で更新後のプログラムが確実
に使用されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
このセクションでは、例外モデルについて説明します。
D
R
FT
FT
A
A
R
R
D
D
D
21.3.3 例外モデル
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
21.3.3.1 例外状態
R
A
各例外は次のいずれかの状態にあります。
FT
D
R
A
非アクティブ — 例外は非アクティブで、保留中でありません。
保留中 — 例外はプロセッサによるサービスを待機しています。
ペリフェラルまたはソフトウェアからの割り込み要求により、対応する割り込みの状態が
保留中に変わる可能性があります。
アクティブ — プロセッサによりサービスされているが、まだ完了していない例外。
例外ハンドラにより、別の例外ハンドラの実行の割り込みが発生する可能性があります。
この場合、両方の例外がアクティブな状態です。
アクティブおよび保留—例外はプロセッサからサービスされ、同じサービス元の保留中の
例外が存在します。
21.3.3.2 例外のタイプ
次の例外のタイプがあります。
注意 : NMI は LPC111x/LPC11C1x に実装されていません。
リセット — リセットは、電源投入またはウォームリセットで呼び出されます。例外モデル
では、リセットを特別な形態の例外として処理します。リセットがアサートされると、プ
ロセッサの動作は命令の任意の箇所で停止します。リセットがデアサートされると、ベク
タテーブルのリセットエントリで指定されるアドレスから実行が再開します。実行はス
レッドモードで再開します。
NMI — マスク不可能な割り込み(NMI: NonMaskable Interrupt)は、ペリフェラルからシ
グナリングされるか、またはソフトウェアからトリガされます。これはリセットを除い
て、優先順位の最も高い例外です。永久にイネーブルであり、優先順位は 2 に固定され
ています。NMI は次の操作が不可能です。
•
他の例外によるマスク、または他の例外によるアクティブ化の回避
•
リセット以外の例外によるプリエンプト
通常処理または例外処理中のエラーにより発生する例外です。
HardFault — HardFault は、
HardFault の優先順位は -1 に固定されています。すなわち優先順位が設定可能な例外より
も高い優先順位が割り当てられます。
SVCall — スーパーバイザコール(SVC)は、SVC 命令によりトリガされる例外です。OS 環
境では、アプリケーションは SVC 命令を使用して OS カーネル関数とデバイスドライバに
アクセスできます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
337
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
PendSV — PendSV は、システムレベルのサービスに対する、割り込み駆動型の要求で
す。OS 環境では、PendSV は他にアクティブな例外がない場合に、コンテキストの切り替
えに使用します。
D
FT
FT
A
A
R
R
D
D
D
SysTick — SysTick 例外は、システムタイマがゼロに達したときに生成する例外です。ソ
フトウェアも SysTick 例外を生成します。OS 環境では、プロセッサはこの例外をシステム
tick として使用します。
R
A
FT
IRQ
number [1]
Exception
type
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
-
0x00000038
14
-2
PendSV
Configurable [3]
15
-1
SysTick
Configurable [3]
0x0000003C
16 and above
0 and above
Interrupt (IRQ)
Configurable [3]
0x00000040 and
above [4]
[1]
[2]
[3]
[4]
ソフトウェア層を簡素化するために、CMSIS は IRQ 番号のみを使用します。したがって割り込み以外の例
外では、負の値を使用します。IPSR は例外番号を返します。Table 291 を参照してください。
詳細については、Section 21.3.3.4 を参照してください。
Section 21.5.2.6 を参照してください。
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 はすべて、システムハンド
ラで処理されるシステム例外です。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
338
A
Exception
number [1]
R
Table 296. Properties of different exception types
D
割り込み(IRQ)— 割り込み、すなわち IRQ はペリフェラルによりシグナリングされる、
またはソフトウェア要求により生成される例外です。すべての割り込みは、命令実行と非
同期です。システムでは、ペリフェラルは割り込みを使用してプロセッサと対話します。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
ベクタテーブルには、スタックポインタのリセット値、およびすべての例外ハンドラの開
始アドレス(例外ベクタ)が格納されています。Figure 68 に、ベクタテーブルの例外ベ
クタの順序を示しています。各ベクタの最下位ビットは必ず 1 になります。すなわち例外
ハンドラは Thumb コードで書き込まれます。
F
FT
FT
A
A
R
R
D
D
D
21.3.3.4 ベクタテーブル
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
D
R
A
([FHSWLRQQXPEHU ,54QXPEHU
9HFWRU
,54
,54
,54
,54
6\V7LFN
3HQG69
[%&
[
[
[
[&
[
5HVHUYHG
2IIVHW
69&DOO
[&
5HVHUYHG
+DUG)DXOW
10,
5HVHW
,QLWLDO63YDOXH
[
[&
[
[
[
Fig 67. Vector table
ベクタテーブルは、アドレス 0x00000000 に固定されます。
21.3.3.5 例外の優先順位
Table 296 に示すように、すべての例外に次のような関連性のある優先順位が割り当てら
れています。
•
優先順位の値が低いほど優先順位が高い
•
リセット、HardFault、NMI を除くすべての例外に対して、設定可能な優先順位
ソフトウェアで優先順位が設定されない場合、優先順位の設定が可能なすべての例外は、
優先順位が 0 になります。例外の優先順位の設定の詳細は、次のセクションを参照して
ください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
339
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
D
D
D
IRQ[0] に高い優先順位の値を、IRQ[1] に低い優先順位の値を割り当てると、IRQ[1] の優先
順位が IRQ[0] よりも高くなります。IRQ[1] と IRQ[0] の両方がアサートされた場合、IRQ[1]
が IRQ[0] の前に処理されます。
FT
注意 : 設定可能な優先順位の値の範囲は、0 ∼ 3 です。リセット、HardFault、NMI 例外
は、優先順位が負の値で固定されており、常に他の例外よりも優先順位が高くなります。
FT
A
A
R
R
D
• Section 21.5.2.6.
D
R
FT
FT
A
A
R
R
D
D
D
• Section 21.5.3.7
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
R
A
FT
21.3.3.6 例外のエントリとリターン
例外処理の説明では、次の用語を使用します。
プリエンプションン—プロセッサが例外ハンドラを実行している場合、処理されている例
外よりも優先順位が高ければ、例外は例外ハンドラをプリエンプトできます。
ある例外が別の例外をプリエンプトした場合、これらの例外はネスト例外と呼ばれます。
詳細については、Section 21.3.3.6.1 を参照してください。
リターン — リターンが起こるのは、例外ハンドラが完了し、かつ次のような場合です。
•
サービス対象となる適切な優先順位の保留中の例外がない
•
完了した例外ハンドラが後着例外を処理していない
プロセッサはスタックをポップし、プロセッサの状態を割り込みが発生する前の状態に戻
します。詳細については、Section 21.3.3.6.2 を参照してください。
テールチェイン — このメカニズムは、例外サービスを高速化します。例外ハンドラの終了
後、例外エントリの要件に適合する保留中の例外があれば、スタックのポップはスキップ
され、制御は新しい例外ハンドラに転送されます。
後着 — このメカニズムは、プリエンプションを高速化します。先行する例外の状態保存を
行っている間に、優先順位の高い例外が発生した場合、プロセッサは高い優先順位の例外
の処理に切り替え、その例外のベクタフェッチを開始します。保存される状態は両方の例
外で同じであるため、状態保存は後着による影響は受けません。後着例外の例外ハンドラ
からリターンするときに、通常のテールチェインのルールが適用されます。
21.3.3.6.1
例外のエントリ
例外のエントリは、優先順位の適切な保留中の例外が存在し、かつ次のいずれかの状態で
ある場合に起こります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
340
A
プロセッサが例外ハンドラを実行している場合、優先順位の高い例外が発生すると、例外
ハンドラがプリエンプトされます。処理中の例外と優先順位が同じ例外が発生した場合、
ハンドラは例外番号にかかわりなくプリエンプトされます。ただし、新しい割り込みのス
テータスは保留中になります。
R
保留中の複数の例外の優先順位が同じである場合、例外番号が最も低い保留中の例外が優
先されます。たとえば、IRQ[0] と IRQ[1] がいずれも保留中であり、優先順位が同じである
場合、IRQ[0] が IRQ[1] の前に処理されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
プロセッサがスレッドモードである。
•
新しい例外の優先順位が処理中の例外よりも高い。この場合、新しい例外により処理
中の例外がプリエンプトされます。
D
R
A
F
FT
FT
A
A
R
R
D
D
•
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
ある例外が別の例外をプリエンプトした場合、これらの例外はネスト化されています。
SUHYLRXV!
[365
3&
/5
5
5
5
5
5
63SRLQWVKHUHEHIRUHLQWHUUXSW
63SRLQWVKHUHDIWHULQWHUUXSW
Fig 68. Exception entry stack contents
スタッキングの直後、スタックポインタはスタックフレームの最下位アドレスを示しま
す。スタックフレームは、ダブルワードアドレスにアライメントされます。
スタックフレームには、リターンアドレスが含まれます。これは割り込みされるプログラ
ムの次の命令のアドレスです。この値は、割り込まれたプログラムが再開できるように、
例外リターン時に PC に復元されます。
プロセッサは、例外ハンドラの開始アドレスをベクタテーブルから読み取るベクタフェッ
チを実行します。スタッキングが完了すると、プロセッサは例外ハンドラの実行を開始し
ます。同時に、プロセッサは EXC_RETURN 値を LR に書き込みます。この値により、スタッ
クフレームに対応するスタックポインタが示され、またエントリが起こる前のプロセッサ
の動作モードが示されます。
例外のエントリの間に、優先順位の高い例外が発生しなければ、プロセッサは例外ハンド
ラの実行を開始し、対応する保留中の割り込みのステータスを自動的にアクティブに変更
します。
例外のエントリの間に、優先順位の高い別の例外が発生した場合、プロセッサはこの例外
の例外ハンドラの実行を開始し、先行する例外の保留中のステータスを変更しません。こ
れは後着のケースです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
341
A
'HFUHDVLQJ
PHPRU\
DGGUHVV
63[&
63[
63[
63[
63[&
63[
63[
63[
R
プロセッサが例外を処理する場合、その例外がテールチェイン例外または後着例外である
場合を除き、プロセッサは現在のスタックに情報をプッシュします。この動作はスタッキ
ングと呼ばれ、8 データワードの構造はスタックフレームと呼ばれます。スタックフレー
ムには、次の情報が格納されます。
D
適切な優先順位とは、例外の優先順位がマスクレジスタで設定される制限よりも高いこと
を意味します。Section 21.3.1.3.6 を参照してください。この制限よりも優先順位が低い例
外は、保留中になりますが、プロセッサにより処理されません。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
FT
FT
A
A
R
R
D
D
例外リターンは、プロセッサがハンドラモードの状態で、次の命令のいずれかの実行によ
り PC への EXC_RETURN 値の設定が試みられた場合に起こります。
F
FT
FT
A
A
R
R
D
D
D
例外リターン
D
D
D
21.3.3.6.2
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
A
FT
レジスタを使用する BX 命令
D
R
•
D
• PC をロードする POP 命令
A
プロセッサは、例外のエントリの際に、EXC_RETURN 値を LR に保存します。実行のメカ
ニズムはこの値に基づいて、プロセッサがいつ例外ハンドラを完了したかを検出します。
EXC_RETURN 値のビット [31:4] は、0xFFFFFFF です。プロセッサがこのパターンを PC に
マッチングする値をロードすると、プロセッサはこの動作が通常の分岐処理ではなく、例
外が完了したことを検出します。したがって、プロセッサは例外リターンシーケンスを開
始します。EXC_RETURN 値のビット [3:0] は、Table 297 に示すように、要求されるリター
ンスタックとプロセッサモードを示します。
Table 297. Exception return behavior
EXC_RETURN
Description
0xFFFFFFF1
ハンドラモードに戻ります。
例外リターンはメインスタックから状態を取得します。
実行はリターン後に MSP を使用します。
0xFFFFFFF9
スレッドモードに戻ります。
例外リターンは MSP から状態を取得します。
実行はリターン後に MSP を使用します。
0xFFFFFFFD
スレッドモードに戻ります。
例外リターンは PSP から状態を取得します。
実行はリターン後に PSP を使用します。
All other values
予約済み
21.3.4 障害処理
障害は例外のサブセットです。Section 21.3.3 を参照してください。障害により HardFault
例外が取り上げられます。また NMI または HardFault ハンドラで起こる場合は、ロック
アップが生じます。障害は次のような内容です。
• SVCall に等しいまたは高い優先順位での SVC 命令の実行
•
デバッガをアタッチしない状態での BKPT 命令の実行
•
ロードまたはストア時のシステム生成のバスエラー
• XN メモリアドレスからの命令の実行
•
システムでバス障害が生成される場所からの命令の実行
•
ベクタフェッチ時のシステム生成のバスエラー
•
未定義の命令の実行
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
342
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
それまでに T ビットが 0 にクリアされた結果としての、Thum 状態ではない場合の命
令の実行
•
アライメント前のアドレスへのロードまたはストアの試み
D
R
A
F
FT
FT
A
A
R
R
D
D
•
D
FT
FT
A
A
R
R
D
D
D
R
A
注意 : リセットと NMI のみ、優先順位が固定された HardFault ハンドラをプリエンプト
できます。HardFault は、リセット、NMI、または別のハード障害以外の例外をプリエン
プトできます。
FT
•
リセットされる。
•
デバッガにより中断される。
• NMI が発生し、続行中のロックアップが HardFault ハンドラの対象になる。
注意 : ロックアップ状態が NMI ハンドラで起こる場合、プロセッサのロックアップ状態
は後続の NMI によっても終了しません。
21.3.5 パワーマネージメント
Cortex-M0 プロセッサは、スリープモードで電力消費量が低減します。
•
スリープモードで、プロセッサのクロックが停止
•
ディープスリープモード(Section 3.7.3 を参照)
どのスリープモードが使用されるかは、SCR の SLEEPDEEP ビットにより選択されます。
Section 21.5.3.5 を参照してください。
このセクションでは、スリープモードに移行するメカニズムと、スリープモードからウェ
イクアップするための条件について説明します。
21.3.5.1 スリープモードへの移行
このセクションでは、プロセッサをスリープモードに移行させるために使用されるメカニ
ズムについて説明します。
デバッグ動作によるプロセッサのウェイクアップなど、疑似ウェイクアップイベントがシ
ステムで生成されます。このようなイベントの後、プロセッサをスリープモードに戻すこ
とができなければなりません。プロセッサをスリープモードに戻す場合、プログラムのア
イドルループが使用できます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
343
A
バスエラーが生成される場合に、ロックアップ状態に移行します。プロセッサがロック
アップ状態になると、命令を実行できません。次のいずれかが起こるまで、プロセッサの
ロックアップ状態が続きます。
R
Cortex-M0 プロセッサは、NMI または HardFault ハンドラの実行時に障害が発生する場合、
または例外リターン時に MSP を使用して PSR をアンスタッキングする際に、システムで
D
21.3.4.1 ロックアップ
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
F
FT
FT
A
A
R
R
D
D
D
割り込みの待機
D
D
D
21.3.5.1.1
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
FT
FT
A
A
R
す。プロセッサが WFI 命令を実行すると、命令の実行を停止し、スリープモードに移行し
ます。詳細については、Section 21.4.7.12 を参照してください。
R
D
D
Wait For Interrupt(割り込み待機)命令 WFI は、スリープモードへの即時移行に使用しま
D
D
R
A
FT
イベント待機
D
21.3.5.1.2
R
A
注意 : 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 からのウェイクアップ
プロセッサは次の場合にウェイクアップします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
344
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
例外エントリが起こる適切な優先順位の例外を検出する
•
マルチプロセッサシステムの場合、システムの別のプロセッサが SEV 命令を実行する
D
R
A
F
FT
FT
A
A
R
R
D
D
•
D
FT
FT
A
A
R
R
D
D
D
また、SCR の SEVONPEND ビットが 1 に設定されている場合、割り込みがディスエーブル
な場合でも、また割り込みの優先順位が例外エントリを起こす十分な値である場合でも、
保留中の新しい割り込みによりイベントがトリガされ、プロセッサがウェイクアップしま
す。SCR の詳細については、Section 21.5.3.5 を参照してください。
R
A
FT
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
345
A
void __WFE(void) // Wait for Event
R
ISO/IEC C では、直接 WFI、WFE、SEV の各命令を生成できません。これらの命令について、
CMSIS は次のような固有の関数を備えています。
D
21.3.5.3 パワーマネージメントプログラミング上のヒント
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
FT
R
否定比較
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
D
A
A
R
R
D
FT
D
R
A
FT
D
R
A
© NXP B.V. 2010. All rights reserved.
Rev. 00.15 — 2010 / 9 / 28
D
Rn, Rm
F
CMN
A
Reference
FT
Flags
FT
Brief description
FT
A
A
R
R
D
D
D
Operands
UM10398_0
R
A
FT
FT
A
A
R
R
R
Mnemonic
ユーザーマニュアル
D
D
D
Table 298. Cortex-M0 instructions(続き)
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
346
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Operands
Brief description
Flags
Reference
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
F
FT
FT
Mnemonic
A
A
A
R
R
D
D
D
Table 298. Cortex-M0 instructions(続き)
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
21.4.2 組み込み関数
ISO/IEC C コードは、一部の Cortex-M0 命令に直接アクセスできません。このセクション
では、このような命令を生成する、CMSIS の組み込み関数と、C コンパイラにより供給さ
れる組み込み関数について説明します。C コンパイラが適切な組み込み関数をサポートし
ない場合、インラインアセンブラを使用して当該の命令にアクセスする必要があります。
CMSIS は、ISO/IEC コードから直接アクセスできない命令を生成する、次の組み込み関数
を提供します。
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)
また CMSIS は、MRS と MSR 命令を使用して特別なレジスタにアクセスするための複数の
関数も提供します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
347
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
D
R
A
F
FT
D
R
A
FT
FT
A
D
D
R
A
FT
D
R
A
PSP
A
MSP
R
void __set_CONTROL (uint32_t value)
R
Write
D
uint32_t __get_CONTROL (void)
D
Read
CONTROL
FT
void __set_PRIMASK (uint32_t value)
A
uint32_t __get_PRIMASK (void)
Write
R
Read
D
PRIMASK
FT
FT
FT
CMSIS function
A
A
A
Access
R
R
R
Special register
D
D
D
Table 300. insic functions to access the special registers
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
Read
uint32_t __get_MSP (void)
Write
void __set_MSP (uint32_t TopOfMainStack)
Read
uint32_t __get_PSP (void)
Write
void __set_PSP (uint32_t TopOfProcStack)
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 が
割り当てられます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
348
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
レジスタのシフト演算では、指定されたビット数、すなわちシフト長だけ、レジスタの
ビットを左または右に移動します。レジスタのシフトは、命令 ASR、LSR、LSL、ROR によ
り直接実行され、結果はデスティネーションレジスタに書き込まれます。許容シフト長は
シフトのタイプと命令により決定します。個々の命令の説明を参照してください。シフト
長が 0 の場合、シフトが起こりません。レジスタのシフト演算では、指定されたシフト長
が 0 の場合を除き、キャリーフラグが更新されます。次の項では、さまざまなシフト演算
と、各演算がキャリーフラグにどのように影響するかについて説明します。次の説明内
で、Rm はシフトされる値を含むレジスタを、n はシフト長を表します。
F
FT
FT
A
A
R
R
D
D
D
21.4.3.3 シフト演算
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
ASR 演算は、レジスタ Rm の符号付きの値を 2n で除算し、結果を負の無限大に端数処理
します。
命令が ASRS の場合、キャリーフラグはレジスタ Rm の最後にシフトアウトされたビッ
ト、ビット [n-1] に更新されます。
注意 :
•
n が 32 以上であれば、結果のすべてのビットは Rm のビット [31] の値に設定されます。
•
n が 32 以上で、キャリーフラグが更新される場合、キャリーフラグは Rm のビット
[31] の値に更新されます。
&DUU\
)ODJ
Fig 69. ASR #3
21.4.3.3.2
LSR
n ビットの論理右シフトは、レジスタ Rm の左側 32 -n ビットを n 桁右に移動し、結果の
右側 32 -n ビットに配置します。結果の左側 n ビットを 0 に設定します。Figure 70 を参照
してください。
値が符号なし整数と見なされる場合、LSR 演算を使用してレジスタ Rm の値を 2n で除算
します。
命令が LSRS の場合、キャリーフラグはレジスタ Rm の最後にシフトアウトされたビット、
ビット [n-1] に更新されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
349
A
n ビットの算術右シフトは、レジスタ Rm の左側 32 -n ビットを n 桁右に移動し、結果の
右側 32 -n ビットに配置します。レジスタの元のビット [31] を、結果の左側 n ビットに
コピーします。Figure 69 を参照してください。
R
ASR
D
21.4.3.3.1
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
n が 32 以上であれば、結果のすべてのビットは 0 にクリアされます。
•
n が 33 以上で、キャリーフラグが更新される場合、キャリーフラグは 0 に更新され
ます。
FT
FT
A
A
R
R
D
D
•
F
FT
FT
A
A
R
R
D
D
D
注意 :
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
D
R
A
&DUU\
)ODJ
Fig 70. LSR #3
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 に更新され
ます。
&DUU\
)ODJ
Fig 71. LSL #3
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
350
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
FT
FT
A
A
R
R
D
D
n ビットの右ロテートは、レジスタ Rm の左側 32 -n ビットを n 桁右に移動し、結果の右
側 32 -n ビットに配置します。レジスタの右側の n ビットを結果の左側 n ビットに移動し
ます。Figure 72 を参照してください。
F
FT
FT
A
A
R
R
D
D
D
ROR
D
D
D
21.4.3.3.4
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
n が 32 の場合、結果の値は Rm の値と同じになり、キャリーフラグが更新される場
合、Rm のビット [31] に更新されます。
• ROR
シフト長 n が 32 より大きい場合は、同じ
ROR
シフト長 n-32
&DUU\
)ODJ
Fig 72. ROR #3
21.4.3.4 アドレスアライメント
アライメントされたアクセスとは、単一ワードまたは複数ワードアクセスにワードアライ
メントされたアドレスが使用される、またはハーフワードアクセスにハーフワードアライ
メントされたアドレスが使用される動作です。バイトアクセスは常にアライメントされ
ます。
Cortex-M0 プロセッサでは、非アライメントアクセスはサポートされません。非アライメ
ントメモリアクセス動作を試みると、HardFault 例外が発生します。
21.4.3.5 PC 相対式
PC 相対式またはラベルは、命令またはリテラルデータのアドレスを表すシンボルです。
命令内で、PC 値マイナス / プラス数値オフセットとして表されます。アセンブラはラベ
ルと現在の命令のアドレスから、要求されるオフセットを計算します。オフセットが大き
すぎる場合、アセンブラはエラーを生成します。
注意 :
•
ほとんどの命令では、PC の値は現在の命令のアドレス + 4 バイトになります。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
351
A
•
R
注意 :
D
命令が RORS の場合、キャリーフラグはレジスタ Rm の最後の美と回転、ビット [n-1] に
更新されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
アセンブラは、ラベル +/- 数値や [PC, #imm] 形式の式など、他の構文の PC 相対式を
許容する場合があります。
D
•
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
21.4.3.6 条件付き実行
D
D
R
ほとんどのデータ処理命令は、動作の結果に従って、アプリケーションプログラムステー
タスレジスタ(APSR)で条件フラグを更新します。Section を参照してください。命令に
よりすべてのフラグを更新する場合もあれば、サブセットのみの更新の場合もあります。
フラグが更新されない場合、元の値が維持されます。影響を受けるフラグについては、命
令の説明を参照してください。
A
FT
•
フラグを更新していない任意の数の介在命令の後
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 つの負の値の加算の結果が正の値の場合
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
352
A
フラグを更新した命令の直後
R
•
D
次のいずれかの場合、別の命令で設定された条件フラグに基づいて、条件付き分岐命令を
実行できます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
F
FT
FT
D
FT
FT
A
A
R
R
D
正の値からの負の値の減算により負の値が生成される場合
R
A
A
•
D
R
R
負の値からの正の値の減算により正の値が生成される場合
R
A
D
D
•
D
R
FT
FT
A
A
R
R
D
D
D
• 2 つの正の値の加算の結果が負の値の場合
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
また Table 301 に、条件コードサフィックスと N、Z、C、V の各フラグとの関係を示します。
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
常時。これはサフィックスが指定されていない場合のデ
フォルト値です。
21.4.4 メモリアクセス命令
Table 302 に、メモリアクセス命令を示します。
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
353
A
条件分岐は、構文の説明では B{cond} のように表されます。条件コードを含む分岐命令
は、APSR の条件コードフラグが指定された条件を満たす場合にのみ処理され、それ以外
の場合、分岐命令は無視されます。Table 301 に、使用する条件コードを示します。
R
条件コードのサフィックス
D
21.4.3.6.2
FT
比較演算は CMP では減算と、CMN では加算と同じ結果になりますが、比較演算では結果
が破棄されます。詳細については、命令の説明を参照してください。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
A
FT
R
See
STM
複数レジスタストア
Section 21.4.4.5
STR{type}
イミディエートオフセットを使用したレジスタストア
Section 21.4.4.2
STR{type}
レジスタオフセットを使用したレジスタストア
Section 21.4.4.3
D
FT
FT
A
A
R
R
D
R
A
FT
D
R
A
構文
ADR Rd, label
上記の構文の説明 :
Rd はデスティネーションレジスタです。
label は PC 相対式です。Section 21.4.3.5 を参照してください。
演算
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}]
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
PC 相対アドレスを生成します。
21.4.4.1.2
F
FT
FT
Brief description
A
A
A
R
R
D
D
D
Mnemonic
21.4.4.1 ADR
21.4.4.1.1
R
R
FT
FT
A
A
R
R
D
D
D
Table 302. Access instructions(続き)
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
Rev. 00.15 — 2010 / 9 / 28
354
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
STR<B|H> Rt, [Rn {,#imm}]
D
R
FT
FT
A
A
R
R
D
D
D
STR Rt, [<Rn | SP>, {,#imm}]
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
上記の構文の説明 :
R
A
FT
D
Rt はロードまたはストアするレジスタです。
R
A
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 の範囲
•
21.4.4.2.4
計算されたアドレスは、トランザクションのバイト数で割り切れなければなりませ
ん。Section 21.4.3.4 を参照してください。
条件フラグ
上記の命令では、フラグが変更されません。
21.4.4.2.5
例
LDR
STR
R4, [R7
; Loads R4 from the address in R7.
R2, [R0,#const-struc] ; const-struc is an expression evaluating
; to a constant in the range 0-1020.
21.4.4.3 LDR と STR、レジスタオフセット
レジスタオフセットによるロードとストア。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
355
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
LDR Rt, [Rn, Rm]
D
A
FT
FT
A
A
R
R
R
構文
D
D
D
21.4.4.3.1
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
LDR<B|H> Rt, [Rn, Rm]
D
D
R
A
LDR<SB|SH> Rt, [Rn, Rm]
FT
D
R
A
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
制限
上記の命令で、
21.4.4.3.4
•
Rt、Rn、Rm は R0 ∼ R7 のみ指定します。
•
計算されたメモリアドレスは、ロードまたはストアのバイト数で割り切れなければな
りません。Section 21.4.3.4 を参照してください。
条件フラグ
上記の命令では、フラグが変更されません。
21.4.4.3.5
例
STR
R0, [R5, R1]
LDRSH R1, [R2, R3]
; Store value of R0 into an address equal to
; sum of R5 and R1
; Load a halfword from the memory address
; specified by (R2 + R3), sign extend to 32-bits
; and write to R1.
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
356
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
FT
FT
A
A
R
R
A
FT
D
R
A
Rt はロードするレジスタです。
label は PC 相対式です。Section 21.4.3.5 を参照してください。
演算
Rt で指定されるレジスタを、label で指定されるメモリ内のワードからロードします。
制限
上記の命令では、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 は、フル下降スタックからデータをポップする
用途を表します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
上記の構文の説明 :
21.4.4.4.3
F
D
D
構文
LDR Rt, label
21.4.4.4.2
A
FT
FT
A
A
R
R
R
21.4.4.4.1
R
A
D
D
レジスタ(リテラル)をメモリからロードします。
D
R
FT
FT
A
A
R
R
D
D
D
21.4.4.4 LDR、PC 相対
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
Rev. 00.15 — 2010 / 9 / 28
357
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
表します。
D
FT
FT
A
A
R
R
D
D
STMIA と STMEA は STM の同義語です。STMIA は、各アクセス後にインクリメントされる
ベースレジスタを表します。STMEA は空の昇順スタックにデータをプッシュする用途を
D
演算
D
R
21.4.4.5.2
A
FT
R
ドします。
A
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
21.4.4.5.6
R0,{R0,R3,R4}
; LDMIA is a synonym for LDM
STMIA R1!,{R2-R4,R6}
間違った例
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
レジスタをフル下降スタックにプッシュし、レジスタをポップします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
LDM 命令は reglist のレジスタに、Rn をベースとしたメモリアクセスのワード値をロー
Rev. 00.15 — 2010 / 9 / 28
358
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
PUSH reglist
D
A
FT
FT
A
A
R
R
R
構文
D
D
D
21.4.4.6.1
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
POP reglist
D
D
R
A
上記の構文の説明 :
FT
D
演算
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
制限
上記の命令で、
21.4.4.6.4
•
reglist は R0 ∼ R7 のみを使用する必要があります。
•
例外は PUSH では LR、POP では PC になります。
条件フラグ
上記の命令では、フラグが変更されません。
21.4.4.6.5
例
PUSH
{R0,R4-R7}
; Push R0,R4,R5,R6,R7 onto the stack
PUSH
{R2,LR}
; Push R2 and the link-register onto the stack
POP
{R0,R6,PC}
; Pop r0,r6 and PC from the stack, then branch to
; the new PC.
21.4.5 一般的なデータ処理命令
Table 303 に、データ処理命令を示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
359
A
21.4.4.6.2
R
reglist は、レジスタのノンエンプティリストで、中括弧で囲まれます。レジスタの
範囲を格納できます。複数のレジスタまたはレジスタ範囲を格納する場合は、コン
マで区切ります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
論理右シフト
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
A
Section 21.4.5.3
R
論理左シフト
LSRS
D
LSLS
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>
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
Section 21.4.5.2
F
排他的 OR
A
EORS
R
Section 21.4.5.4
FT
比較
FT
CMP
R
Section 21.4.5.4
A
否定比較
A
Section 21.4.5.2
D
ビットクリア
CMN
R
BICS
R
Section 21.4.5.3
D
算術右シフト
D
ASRS
FT
Section 21.4.5.2
FT
論理 AND
A
ANDS
A
Section 21.4.5.1
R
Section 21.4.5.1
Add
D
キャリー付き加算
ADD{S}
FT
ADCS
A
See
FT
R
R
Brief description
A
D
D
Mnemonic
D
R
FT
FT
A
A
R
R
D
D
D
Table 303. Data processing instructions
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
360
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
S は ADD または SUB 命令によるフラグ更新を起動させます。
D
R
FT
FT
A
A
R
R
D
D
D
上記の構文の説明 :
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
Rd は結果レジスタを指定します。
R
A
FT
D
Rn は、最初のソースレジスタを指定します。
R
A
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 に、レジスタ指示子の正規の組み合わせと、各命令で使用できるイミディエー
ト値を一覧にしています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
361
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R0-R7
SP or PC
-
0-1020
イミディエート値は 4 の倍数にする必要があります。
SP
SP
-
0-508
R0-R7
R0-R7
-
0-7
イミディエート値は 4 の倍数にする必要があります。
-
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
Rd と Rn で同じレジスタを指定する必要があります。
-
R
A
FT
D
R
A
21.4.5.1.4
D
D
0-255
-
FT
FT
R0-R7
A
A
Rn と Rm には PC を指定できません。
R0-R7
F
Rd と Rn で同じレジスタを指定する必要があります。
R0-R7
A
Rd と Rn で同じレジスタを指定する必要があります。
-
R
-
R0-PC
R
R0-R7
R0-R15
D
D
R0-R7
R0-R15
R0-R7
R
FT
FT
R0-R7
ADD
R0-R7
D
A
A
ADCS
ADDS
R
R
R
Restrictions
D
D
D
imm
FT
FT
FT
Rm
A
A
A
Rn
R
R
R
Instruction Rd
D
D
D
Table 304. ADC, ADD, RSB, SBC and SUB operand restrictions
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
例
次に示す 2 つの命令は、R0 と R1 内の 64 ビット整数を R2 と R3 内の別の 64 ビット整数
に付加し、結果を R0 と R1 に配置しています。
64 ビットの加算 :
ADDS
R0, R0, R2
; add the least significant words
ADCS
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 words
SBCS
R5, R5, R2
; subtract the middle words with carry
SBCS
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
362
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
D
D
Rd はデスティネーションレジスタです。
FT
A
A
R
R
D
上記の構文の説明 :
D
R
FT
FT
A
A
R
R
D
D
D
BICS {Rd,} Rn, Rm
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
R
A
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, R1
ORRS
R2, R2,
ANDS
R5, R5,
EORS
R7, R7,
BICS
R0, R0,
R5
R8
R6
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
363
A
演算
R
21.4.5.2.2
D
Rm は、セカンドレジスタ。
FT
Rn は、最初のオペランドを保持するレジスタ。デスティネーションレジスタと同
じです。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
RORS {Rd,} Rm, Rs
D
R
FT
FT
A
A
R
R
D
D
D
LSRS {Rd,} Rm, #imm
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
上記の構文の説明 :
R
A
FT
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 bits
LSLS
R1, R2, #3 ; Logical shift left by 3 bits with flag update
LSRS
R4, R5, #6 ; Logical shift right by 6 bits
RORS
R4, R4, R6 ; Rotate right by the value in the bottom byte of R6.
21.4.5.4 CMP と CMN
比較と否定比較。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
364
A
Rs は、Rm の値に適用されるシフト長を保持するレジスタです。
R
Rm は、シフトされる値を保持したレジスタです。
D
Rd はデスティネーションレジスタです。Rd が省略された場合、Rm と同じ値を取
ると推測されます。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
CMN Rn, Rm
D
A
FT
FT
A
A
R
R
R
構文
D
D
D
21.4.5.4.1
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
CMP Rn, #imm
D
D
R
A
CMP Rn, Rm
FT
D
R
A
上記の構文の説明 :
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, R9
CMN
R0, R2
21.4.5.5 MOV と MVN
Move と Move NOT。
21.4.5.5.1
構文
MOV{S} Rd, Rm
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
365
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
FT
A
A
R
R
D
MVNS Rd, Rm
D
R
FT
FT
A
A
R
R
D
D
D
MOVS Rd, #imm
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
上記の構文の説明 :
R
A
FT
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,
MOVS
MOV
MOVS
MOV
MVNS
#0x000B
R1, #0x0
R10, R12
R3, #23
R8, SP
R2, R0
; Write value of 0x000B to R0, flags get updated
; Write value of zero to R1, flags are updated
; Write value in R12 to R10, flags are not updated
; Write value of 23 to R3
; Write value of stack pointer to R8
; Write inverse of R0 to the R2 and update flags
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
366
A
Rm はレジスタ。
R
Rd はデスティネーションレジスタです。
D
S はオプションサフィックスです。S が指定される場合、条件コードフラグは演算
の結果に基づいて更新されます。Section 21.4.3.6 を参照してください。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
FT
FT
A
A
R
R
A
FT
D
R
A
Rd はデスティネーションレジスタです。
Rn、Rm は、乗算される値を保持するレジスタです。
演算
MUL 命令は、Rn と Rm で指定されるレジスタの値を乗算し、結果の最上位 32 ビットを
Rd に配置します。演算の結果について、条件コードフラグが更新されます。Section
21.4.3.6 を参照してください。
この命令の結果は、オペランドが符号付きか符号なしかに依存しません。
制限
上記の命令で、
21.4.5.6.4
•
Rd、Rn、Rm は R0 ∼ R7 のみ指定します。
•
Rd は Rm に準ずるものとします。
条件フラグ
上記の命令は
•
結果に従って、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 はデスティネーションレジスタです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
D
上記の構文の説明 :
21.4.5.6.3
F
D
D
構文
MULS Rd, Rn, Rm
21.4.5.6.2
A
FT
FT
A
A
R
R
R
21.4.5.6.1
R
A
D
D
32 ビットオペランドを使って乗算し、32 ビットの結果を生成します。
D
R
FT
FT
A
A
R
R
D
D
D
21.4.5.6 MULS
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
Rev. 00.15 — 2010 / 9 / 28
367
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
F
D
FT
FT
A
A
R
R
D
これらの命令は、データのエンディアンを変更する場合に使用します。
A
FT
FT
A
A
R
R
R
演算
R
A
D
D
21.4.5.7.2
D
R
FT
FT
A
A
R
R
D
D
D
Rn はソースレジスタです。
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
D
R
REV — 32 ビットビッグエンディアンをリトルエンディアンに、または 32 ビットリトル
エンディアンをビッグエンディアンのデータに変換します。
A
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 R3
REV16 R0, R0 ; Reverse byte order of each 16-bit halfword in R0
REVSH 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 ビットに符号拡張します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
368
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
A
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
D
FT
D
D
• UXTH はビット [15:0] を抽出して、32 ビットにゼロ拡張します。
FT
A
A
R
R
D
• SXTH はビット [15:0] を抽出して、32 ビットに符号拡張します。
D
R
FT
FT
A
A
R
R
D
D
D
• UXTB はビット [7:0] を抽出して、32 ビットにゼロ拡張します。
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
R
A
FT
制限
D
21.4.5.8.3
R
21.4.5.8.4
A
上記の命令で、Rd と Rm は R0 ∼ R7 のみ指定します。
条件フラグ
上記の命令はフラグに影響しません。
21.4.5.8.5
例
SXTH R4, R6
UXTB R3, R1
; Obtain the lower halfword of the
; value in R6 and then sign extend to
; 32 bits and write the result to R4.
; 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 フラグには影響しません。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
369
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
D
FT
FT
A
A
R
R
D
R0, R1 ; Perform bitwise AND of R0 value and R1 value,
; condition code flags are updated but result is discarded
F
FT
FT
A
A
R
R
D
D
D
TST
D
A
FT
FT
A
A
R
R
R
例
D
D
D
21.4.5.9.5
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
21.4.6 分岐と制御命令
FT
D
R
Table 305 に、分岐命令と制御命令を示します。
A
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
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 に、さまざまな分岐命令の範囲を示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
370
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
BLX Rm
レジスタ内の任意の値
F
レジスタ内の任意の値
A
16 MB から +16 MB まで
BX Rm
FT
256 バイトから +254 バイトまで
BL label
FT
2 KB から +2 KB まで
Bcond label
R
A
A
B label
D
R
R
Branch range
R
FT
D
D
Instruction
D
A
FT
FT
A
A
R
R
R
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
21.4.6.1.3
D
D
D
Table 306. Branch ranges
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
制限
上記の命令で、
• 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 loopA
BL
funC ; Branch with link (Call) to function funC, return address
; stored in LR
BX
LR
; Return from function call
BLX
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 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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
371
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Brief description
See
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
F
FT
FT
Mnemonic
A
A
A
R
R
D
D
D
Table 307. Miscellaneous instructions
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
D
D
R
A
FT
D
R
A
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
372
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
FT
FT
A
A
R
R
D
D
CPS は、PRIMASK 特別なレジスタ値を変更します。CPSID は PRIMASK を設定し、割り込
みがディスエーブルになります。CPSIE は PRIMASK をクリアし、割り込みがイネーブルに
なります。これらのレジスタの詳細については、Section 21.3.1.3.6 を参照してください。
F
FT
FT
A
A
R
R
D
D
D
演算
D
D
D
21.4.7.2.2
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
制限
D
21.4.7.2.3
R
21.4.7.2.4
A
制限はありません。
条件フラグ
この命令は条件フラグを変更しません。
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
373
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
FT
D
D
すべてのメモリアクセスが終了した後に終了します。
FT
A
A
R
R
D
D
DSB は、特別なデータ同期メモリバリアとして機能します。プログラム順序で、DSB の後
に現れる命令は、DSB 命令が終了するまで実行されません。DSB 命令は、この命令の前の
F
FT
FT
A
A
R
R
D
D
D
演算
D
D
D
21.4.7.4.2
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
R
A
FT
制限
D
21.4.7.4.3
R
21.4.7.4.4
A
制限はありません。
条件フラグ
この命令はフラグを変更しません。
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 は汎用デスティネーションレジスタです。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
374
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
R
FT
FT
A
A
R
演算
R
D
D
21.4.7.6.2
D
FT
FT
A
A
R
R
D
D
spec_reg は、特殊用途レジスタ APSR、IPSR、EPSR、IEPSR、IAPSR、EAPSR、PSR、
MSP、PSP、PRIMASK、CONTROL のいずれかです。
D
D
R
MRS は、特殊用途レジスタのコンテンツを汎用レジスタに格納します。MRS 命令を MR 命
令と結合して、PSR の特定のフラグの修正に適した read-modify-write シーケンスを生成
A
FT
R
A
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
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
D
できます。
Rev. 00.15 — 2010 / 9 / 28
375
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
A
F
FT
FT
A
A
R
R
R
D
FT
構文
FT
A
A
R
R
D
D
D
21.4.7.8.1
R
A
D
D
演算なし。
D
R
FT
FT
A
A
R
R
D
D
D
21.4.7.8 NOP
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
R
FT
D
演算
R
A
21.4.7.8.2
A
NOP
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
スーパーバイザコール。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
376
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
A
F
FT
FT
A
A
R
R
D
D
D
SVC #imm
D
A
FT
FT
A
A
R
R
R
構文
D
D
D
21.4.7.10.1
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
上記の構文の説明 :
D
D
R
A
imm は、0 ∼ 255 の範囲の整数。
FT
D
R
演算
A
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 を参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
377
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
制限
FT
A
A
R
R
D
21.4.7.11.3
D
FT
FT
A
A
R
R
D
D
注意 : WFE は節電専用の命令です。ソフトウェアは書き込み時に、WFE が NOP として振
る舞うと推定しています。
D
D
R
制限はありません。
A
FT
D
条件フラグ
R
A
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)のアドレスマップを、次の表に示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
378
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
Table 317
0xE000EF00 -0xE000EF03
ネストベクタ割り込みコントローラ
Table 309
R
FT
FT
A
A
R
R
A
FT
D
R
A
RW — 読み取りと書き込み。
RO — 読み取り専用。
WO — 書き込み専用。
21.5.2 ネストベクタ割り込みコントローラ
このセクションでは、ネストベクタ割り込みコントローラ(NVIC)と、NVIC で使用され
るレジスタについて説明しています。NVIC は以下をサポートしています。
• 32 の割り込み。
•
各割り込みの、プログラム可能な優先レベル 0 ∼ 3。値が高くなると優先順位が低く
なります。このためレベル 0 が最高の割り込み順位になります。
•
割り込み信号のレベルとパルス検出。
•
割り込みテールチェイン。
•
外部マスク不可能な割り込み(NMI)。NMI は LPC111x/LPC11C1x に実装されていませ
ん。
プロセッサは例外エントリが発生すると、自動的に状態をスタックし、例外の終了時にこ
の状態をアンスタックします。このため命令のオーバーヘッドが発生しません。これによ
り、例外処理による遅延が減少します。NVIC レジスタのハードウェア実装を、次の表に
示します。
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
RW
0x00000000
Section 21.5.2.6
21.5.2.1 CMSIS を使用した Cortex-M0 NVIC レジスタへのアクセス
CMSIS 機能は、異なる Cortex-M プロファイルプロセッサ間のソフトウェアの移植を有効
にします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
D
D
レジスタの説明で、レジスタのタイプは次のように説明されます。
0xE000E400 -0x IPR0-7
E000E41C
F
システム制御ブロック
A
0xE000ED00 -0xE000ED3F
R
Table 309
R
ネストベクタ割り込みコントローラ
D
0xE000E100 -0xE000E4EF
D
Table 326
FT
システムタイマ
A
Table 317
D
システム制御ブロック
0xE000E010 -0xE000E01F
FT
0xE000E008 -0xE000E00F
A
Description
FT
R
R
Core peripheral
A
D
D
Address
D
R
FT
FT
A
A
R
R
D
D
D
Table 308. Core peripheral register regions
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
379
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
D
R
R
割り込みまたは例外をディスエーブルにします。
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]
優先レベルが設定可能な割り込みまたは例外の優先順位を読
み取ります。この関数は現在の優先レベルを返します。
FT
FT
A
A
割り込みまたは例外をイネーブルにします。
void NVIC_DisableIRQ(IRQn_Type IRQn)[1]
R
A
FT
Table 311. ISER bit assignments
Name
Function
Interrupt set-enable ビット。
書き込み :
0 = 影響なし
1 = 割り込みをイネーブルにします。
読み取り :
0 = 割り込みはディスエーブルになっています。
1 = 割り込みはイネーブルになっています。
保留中の割り込みがイネーブルになると、NVIC はその優先順位に基づいて割り込みをア
クティブにします。割り込みがイネーブルになっていない場合、割り込み信号の推測によ
り割り込み状態が保留中に変わりますが、NVIC は優先順位に関わらず、割り込みをアク
ティブにしません。
21.5.2.3 Interrupt Clear-enable レジスタ
ICER は割り込みをディスエーブルにし、どの割り込みがディスエーブルになっているか
を示します。レジスタの属性については、Table 309 のレジスタの概要を参照してくださ
い。
ビットの割り当てを次の表に示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
380
A
ビットの割り当てを次の表に示します。
R
ISER は割り込みをイネーブルにし、どの割り込みがイネーブルになっているかを示しま
す。レジスタの属性については、Table 309 のレジスタの概要を参照してください。
D
21.5.2.2 Interrupt Set-enable レジスタ
SETENA
D
D
入力バラメータ IRQn は、IRQ 番号です。詳細については Table 296 を参照してください。
[31:0]
F
D
D
Description
void NVIC_EnableIRQ(IRQn_Type IRQn)[1]
Bits
A
FT
FT
A
A
R
R
R
CMSIS function
[1]
R
A
D
D
Table 310. CMISIS access NVIC functions
D
R
FT
FT
A
A
R
R
D
D
D
CMSIS を使用して NVIC レジスタにアクセスするには、次の関数を使用します。
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
D
R
F
FT
A
A
D
R
FT
FT
A
A
R
Interrupt clear-enable ビット。
D
CLRENA
FT
[31:0]
A
Function
FT
R
R
Name
A
D
D
Bits
D
R
FT
FT
A
A
R
R
D
D
D
Table 312. ICER bit assignments
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
書き込み :
R
A
0 = 影響なし
FT
D
1 = 割り込みをディスエーブルにします。
R
A
読み取り :
0 = 割り込みはディスエーブルになっています。
1 = 割り込みはイネーブルになっています。
21.5.2.4 Interrupt Set-pending レジスタ
ISPR は割り込み強制的に保留状態に移行させ、どの割り込みが保留中であるかを示しま
す。レジスタの属性については、Table 309 のレジスタの概要を参照してください。
ビットの割り当てを次の表に示します。
Table 313. ISPR bit assignments
Bits
Name
[31:0]
SETPEND
Function
Interrupt set-pending ビット。
書き込み :
0 = 影響なし
1 = 割り込みの状態を保留中に変更します。
読み取り :
0 = 割り込みは保留中ではありません。
1 = 割り込みは保留中です。
注意 : 次の割り込み対応する ISPR ビットへの 1 の書き込み :
•
保留中の割り込みの場合、影響はありません。
•
ディスエーブルになっている割り込みの場合、その割り込みの状態が保留中に設定さ
れます。
21.5.2.5 Interrupt Clear-pending レジスタ
ICPR は保留中の状態を割り込みから削除し、どの割り込みが保留中であるかを示します。
レジスタの属性については、Table 309 のレジスタの概要を参照してください。
ビットの割り当てを次の表に示します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
381
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
F
D
D
FT
FT
A
A
R
R
Interrupt clear-pending ビット。
FT
CLRPEND
FT
[31:0]
R
A
A
Function
D
R
R
Name
R
A
D
D
Bits
D
R
FT
FT
A
A
R
R
D
D
D
Table 314. ICPR bit assignments
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
書き込み :
R
A
0 = 影響なし
FT
D
1 = 割り込みから保留中の状態を削除します。
R
A
読み取り :
0 = 割り込みは保留中ではありません。
1 = 割り込みは保留中です。
注意 : ICPR ビットへの 1 の書き込みは、対応する割り込みのアクティブな状態に影響し
ません。
21.5.2.6 割り込み優先順位のレジスタ
IPR0 ∼ IPR7 のレジスタは、各割り込みに 2 ビットの優先順位フィールドを提供します。
これらのレジスタは、ワードアクセスのみ可能です。属性については、Table 309 のレジ
スタの概要を参照してください。各レジスタは次の示す 4 つの優先順位フィールドを保持
します。
,35
35,BQ
35,BQ
35,B
35,B
35,B
35,B
35,BQ
35,BQ
35,B
35,B
,35Q
35,B
35,B
,35
Fig 73. IPR register
Table 315. IPR bit assignments
Bits
Name
Function
[31:24]
Priority, byte offset 3
[23:16]
Priority, byte offset 2
[15:8]
Priority, byte offset 1
[7:0]
Priority, byte offset 0
各優先順位フィールドには 0 ∼ 3 の優先順位の値が格納さ
れます。値が低いほど、対応する割り込みの優先度は高く
なります。プロセッサは各フィールドのビット [7:6] のみ実
装し、ビット [5:0] はゼロとして読み取られ、書き込みは無
視されます。
割り込み優先順位をソフトウェアに表示する、割り込み優先順位アレイへのアクセスの詳
細については、Section 21.5.2.1 を参照してください。
割り込み M の IPR 番号とバイトオフセットは、次の手順で検出します。
•
対応する IPR 番号 N は、N = N DIV 4 で求められます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
382
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
A
F
FT
FT
A
A
R
R
R
D
FT
FT
A
A
R
R
D
– バイトオフセット 0 は、レジスタビット [7:0] を示します。
D
D
このレジスタの要求される優先順位フィールドのバイトオフセットは、M MOD 4 で
す。この場合、次のようになります。
D
•
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
– バイトオフセット 1 は、レジスタビット [15:8] を示します。
R
A
FT
– バイトオフセット 2 は、レジスタビット [23:16] を示します。
D
R
– バイトオフセット 3 は、レジスタビット [31:24] を示します。
A
21.5.2.7 レベルセンシティブ割り込みとパルス割り込み
Cortex-M0 プロセッサは、レベルセンシティブ割り込みとパルス割り込みをいずれもサ
ポートします。パルス割り込みは、エッジトリガ割り込みと記述される場合もあります。
レベルセンシティブ割り込みは、ペリフェラルが割り込み信号をデアサートするまでア
サート状態が保持されます。通常、このような動作が起こるのは、ISR がペリフェラルに
アクセスし、ペリフェラルの割り込み要求をクリアにするためです。パルス割り込みは、
プロセッサクロックの立ち上がりエッジと同時にサンプリングされる割り込み信号です。
NVIC で確実に割り込みが検出されるには、ペリフェラルが 1 クロックサイクル以上割り
込み信号をアサートし、この間に NVIC がパルスを検出し、割り込みをラッチする必要が
あります。
プロセッサが ISR に移行すると、移動的に保留状態を割り込みから削除します。Section
21.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 に再移行する場合が
あります。それ以外の場合、割り込みの状態は非アクティブに変更されます。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
383
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
– パルス割り込みの場合、MVIC は割り込み信号の監視を続け、信号がパルシング
されると、割り込みの状態は保留中とアクティブに変更されます。この場合、プ
ロセッサが ISR から復帰すると、割り込みの状態は保留中に変更され、この変更
によりプロセッサが即時 ISR に再移行する場合があります。
D
FT
FT
A
A
R
R
D
D
D
R
プロセッサが ISR を進めている間に、割り込み信号がパルシングされない場合、
プロセッサが ISR から復帰すると割り込みの状態は非アクティブに変更されます。
A
FT
D
R
対応する Interrupt Clear-Pending レジスタビットに書き込まれる。
A
•
レベルセンシティブ割り込みの場合、割り込み信号がアサートされた状態であれば、
割り込みの状態は変更されません。それ以外の場合、割り込みの状態は非アクティ
ブに変更されます。
パルス割り込みの場合、割り込みの状態は次のいずれかに変更されます。
– 状態が保留中の場合は非アクティブ
– 状態がアクティブおよび保留中の場合はアクティブ
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 制御のための複数の関数を提供しており、その一部を次に示します。
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)
システムをリセットします。
入力バラメータ IRQn は、IRQ 番号です。詳細については Table 296 を参照してください。
これらの関数の詳細については、CMSIS の文書を参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
384
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
システム制御ブロック(SCB)は、システム実装情報を提供し、システムを管理します。
ここには、システム例外の設定、制御、レポートが含まれます。SCB レジスタを次に説明
します。
F
FT
FT
A
A
R
R
D
D
D
21.5.3 システム制御ブロック
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
FT
Table 317. Summary of the SCB registers
Reset value
Description
0xE000ED00
0xE000ED04
CPUID
RO
0x410CC200
Section 21.5.3.2
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
[1]
A
Type
R
Name
D
Address
詳細については、レジスタの説明を参照してください。
21.5.3.1 Cortex-M0 SCB レジスタの CMSIS マッピング
ソフトウェアの効率性を高めるために、CMSIS は SCB レジスタのプレゼンテーションを
簡素化しています。CMSIS では、
アレイ SHP[1] はレジスタ SHPR2 ∼ SHPR3 に対応します。
21.5.3.2 CPUID レジスタ
CPUID レジスタは、プロセッサのバーツ No.、バージョン、実装情報を格納しています。
レジスタの属性については、レジスタの概要を参照してください。ビットの割り当てを次
の表に示します。
Table 318. CPUID register bit assignments
Bits
Name
Function
[31:24]
Implementer
実装者コード :
0x41 = ARM
[23:20]
バリアント番号(rnpn 製品リビジョン ID の r 値):
Variant
0x0 = リビジョン 0
[19:16]
Constant
[15:4]
Partno
プロセッサのアーキテクチャを定義する定数。以下のように
示されます。
0xC = ARMv6-M アーキテクチャ
プロセッサの部品番号。
0xC20 = Cortex-M0
[3:0]
Revision
リビジョン番号(rnpn 製品リビジョン ID の p 値):
0x0 = パッチ 0
21.5.3.3 割り込み制御と状態レジスタ
ICSR の特長
•
次の特長があります。
– マスク不可能な割り込み(NMI)例外の Set-Pending ビット
– PendSV と SysTick 例外の Set-Pending および Clear-Pending ビット
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
385
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
R
FT
R
F
D
FT
FT
A
A
R
R
D
– プリエンプトされるアクティブな例外が存在するかどうか
A
FT
FT
A
A
R
R
D
D
D
– 処理される例外の例外番号
D
A
FT
FT
A
A
R
R
R
次の内容を示します。
D
D
D
•
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
– 保留中の例外で最も優先順位の高い例外の例外番号
R
A
FT
– 割り込みが保留中かどうか
D
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 例外から保留中状態を削除します。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
386
A
てを次の表に示します。
R
ICSR 属性については、Table 317 のレジスタの概要を参照してください。ビットの割り当
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
A
F
SysTick exception set-pending ビット。
D
D
R
FT
FT
A
A
RW
R
PENDSTSET
FT
[26]
FT
Function
R
A
A
Type
D
R
R
Name
R
A
D
D
Bits
D
R
FT
FT
A
A
R
R
D
D
D
Table 319. ICSR bit assignments(続き)
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
書き込み :
R
A
0 = 影響なし
FT
D
1 = SysTick 例外の状態を保留中に変更します。
R
A
読み取り :
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 を参照してください。
[1]
[2]
これは IPSR ビット [5:0] と同じです。Table 291 を参照してください。
NMI は LPC111x/LPC11C1x に実装されていません。
ICSR に書き込む場合、次の場合影響が予測できません。
• PENDSVSET ビットに 1 を書き込み、PENDSVCLR ビットに 1 を書き込む場合
• PENDSTSET ビットに 1 を書き込み、PENDSTCLR ビットに 1 を書き込む場合
21.5.3.4 アプリケーション割り込みとリセット制御レジスタ
AIRCR は、データアクセスのエンディアンステータスを指定し、システムのリセットを制
御します。属性については、Table 317 と Table 320 のレジスタの概要を参照してください。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
387
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
F
D
FT
FT
A
A
R
R
D
ビットの割り当てを次の表に示します。
D
FT
FT
A
A
R
R
D
D
このレジスタに書き込むには、0x05FA を VECTKEY フィールドに書き込む必要があり、そ
れ以外の場合はプロセッサは書き込みを無視します。
D
D
R
A
Table 320. AIRCR bit assignments
Function
[31:16]
Read: Reserved
RW
レジスタキー :
R
Type
D
Name
FT
Bits
A
Write: VECTKEY
読み取りでは Unknown が返されます。
書き込み時には、0x05FA を VECTKEY に書き込みま
す。それ以外の書き込みを行うと、書き込みは無視
されます。
[15]
ENDIANESS
RO
実装されているデータエンディアン :
0 = リトルエンディアン
1 = ビッグエンディアン
[14:3]
-
-
予約済み
[2]
SYSRESETREQ
WO
システムリセット要求 :
0 = 影響なし
1 = システムレベルのリセットを要求します。
このビットの読み取り値は 0 です。
[1]
VECTCLRACTIVE
WO
デバッグ用に予約されています。このビットの読み取
り値は 0 です。レジスタに書き込む場合は、この
ビットに 0 を書き込む必要があります。それ以外の
書き込みを行った場合の動作は予測できません。
[0]
-
-
予約済み
21.5.3.5 システム制御レジスタ
SCR は低電力状態への移行と終了の機能を制御します。レジスタの属性については、Table
317 のレジスタの概要を参照してください。ビットの割り当てを次の表に示します。
Table 321. SCR bit assignments
Bits
Name
Function
[31:5]
-
予約済み
[4]
SEVONPEND
保留中イベント送信ビット :
0 = イネーブルになっている割り込みまたはイベントのみがプロ
セッサをウェイクアップできます。ディスエーブルになっている割
り込みは除外されます。
1 = イネーブルになっているイベントと、ディスエーブルになって
いる割り込みも含めてすべての割り込みがプロセッサをウェイク
アップできます。
イベントまたは割り込みが保留状態に移行すると、イベント信号が
WFE からプロセッサをウェイクアップします。プロセッサがイベン
トを待機していない場合は、イベントは登録され、次の WFE に影
響を与えます。
プロセッサは、SEV 命令の実行時にもウェイクアップします。
[3]
-
予約済み
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
388
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
Name
Function
[2]
SLEEPDEEP
プロセッサが低電力モードとしてスリープまたはディープスリープ
のいずれを使用するかを制御します。
F
FT
FT
Bits
A
A
A
R
R
D
D
D
Table 321. SCR bit assignments(続き)
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
FT
FT
A
A
R
R
D
R
A
FT
0 = スレッドモードに戻るときにスリープしません。
1 = ISR からスレッドモードに戻るときに、スリープまたはディー
プスリープに移行します。
このビットを 1 に設定すると、割り込み駆動型のアプリケーション
が空のメインアプリケーションに戻るのを回避できます。
[0]
予約済み
-
21.5.3.6 設定および制御レジスタ
CCR は読み取り専用レジスタであり、Cortex-M0 プロセッサの動作の一部を示します。CCR
属性については、Table 317 のレジスタの概要を参照してください。
ビットの割り当てを次の表に示します。
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]
-
予約済み
21.5.3.7 システムハンドラ優先順位レジスタ
SHPR2-SHPR3 レジスタは、優先順位が設定可能な例外ハンドラの優先レベル 0 ∼ 3 を設
定します。
SHPR2-SHPR3 は、ワードアクセスが可能です。属性については、Table 317 のレジスタの
概要を参照してください。
CMSIS を使用してシステム例外優先レベルにアクセスするには、次の CMSIS 関数を使用
します。
•
uint32_t NVIC_GetPriority(IRQn_Type IRQn)
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
389
A
ハンドラモードからスレッドモードに戻るときに sleep-on-exit を
示します。
R
SLEEPONEXIT
D
1 = ディープスリープ
[1]
D
D
0 = スリープ
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
A
FT
FT
FT
A
A
R
R
R
R
A
D
FT
FT
A
A
R
R
D
入力パラメータ IRQn は IRQ 番号です。詳細については Table 296 を参照してください。
F
FT
FT
A
A
R
R
D
D
D
void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
D
D
D
•
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
システム障害ハンドラと、各ハンドラの優先順位フィールドとレジスタを次の表に示しま
す。
R
A
FT
D
Field
Register description
SVCall
PRI_11
Section 21.5.3.7.1
PendSV
PRI_14
Section 21.5.3.7.2
SysTick
PRI_15
A
Handler
R
Table 323. System fault handler priority fields
各 PRI_N フィールドは 8 ビット幅ですが、プロセッサは各フィールドのビット [7:6] のみ
を実装し、ビット [5:0] はゼロとして読み取られ、書き込みは無視されます。
21.5.3.7.1
システムハンドラ優先順位レジスタ 2
ビットの割り当てを次の表に示します。
Table 324. SHPR2 register bit assignments
21.5.3.7.2
Bits
Name
Function
[31:24]
PRI_11
システムハンドラ 11、SVCall の優先順位
[23:0]
-
予約済み
システムハンドラ優先順位レジスタ 3
ビットの割り当てを次の表に示します。
Table 325. SHPR3 register bit assignments
Bits
Name
Function
[31:24]
PRI_15
システムハンドラ 15、SysTick 例外の優先順位
[23:16]
PRI_14
システムハンドラ 14、PendSV の優先順位
[15:0]
-
予約済み
21.5.3.8 SCB の使用上のヒント
アライメントされた 32 ビットワード幅のトランザクションが、すべての SCB レジスタへ
のアクセスに使用されていることを確認します。
21.5.4 システムタイマ、SysTick
システムタイマをイネーブルにした場合、タイマは現在の値(SYST_CVR)からゼロまで
カウントダウンし、次のクロックエッジで SysTick リロード値レジスタの値(SYST_RVR)
にリロード(ラップ)し、この後のクロックでデクリメントします。カウンタがゼロに移
行すると、COUNTFLAG ステータスビットは 1 に設定されます。COUNTFLAG ビットは、
読み取り時にクリアされます。
注意 : SYST_CVR 値は、リセット時に UNKNOWN です。レジスタに書き込まれ、ビットを
ゼロにクリアにしてから、機能をイネーブルにする必要があります。このクリア化によ
り、タイマはイネーブルになった後、任意の値ではなく SYST_RVR 値からカウントします。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
390
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
D
R
A
F
FT
FT
A
A
R
R
D
D
注意 : SYST_RVR がゼロである場合、タイマは現在のゼロ値がリロードされた後、この値
を維持します。このメカニズムを使用すると、タイマのイネーブルビットに関係なく、機
能をディスエーブルにすることができます。
D
FT
FT
A
A
R
R
D
D
D
SYST_CVR への書き込みにより、レジスタと COUNTFLAG ステータスビットがクリアされ
ます。この書き込みにより、次のタイマクロックで SYST_CVR が SYST_RVR からリロード
されますが、SysTick 例外ロジックはトリガされません。読み取り時の現在の値は、レジ
R
A
Address
Name
Type
Reset
value
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
[1]
SysTick 校正値。
21.5.4.1 SysTick 制御とステータスレジスタ
SYST_CSR は、SysTick 機能をイネーブルにします。レジスタの属性については、レジスタ
の概要を参照してください。ビットの割り当てを次の表に示します。
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 = カウンタはイネーブルになっています。
© NXP B.V. 2010. All rights reserved.
UM10398_0
ユーザーマニュアル
Rev. 00.15 — 2010 / 9 / 28
391
A
Table 326. System timer registers summary
R
システムタイマレジスタの詳細を、次の表に示します。
D
注意 : プロセッサがデバッグのために中断される場合、カウンタはデクリメントしませ
ん。
FT
スタにアクセスした時点のレジスタの値になります。
D
D
R
R
R
R
R
A
A
A
UM10398
A
A
FT
FT
FT
FT
FT
D
R
R
A
A
A
A
R
R
D
D
D
NXP Semiconductors
D
D
D
参考資料
D
R
R
A
FT
FT
FT
A
A
R
R
D
D
D
R
A
FT
FT
A
A
R
R
D
D
SYST_RVR は、SYST_CVR にロードされる開始値を指定します。レジスタの属性について
は、Table 326 のレジスタの概要を参照してください。ビットの割り当てを次の表に示し
ます。
F
FT
FT
A
A
R
R
D
D
D
21.5.4.2 SysTick リロード値レジスタ
FT
FT
FT
FT
第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス
D
D
R
A
D
Bits
Name
Function
[31:24]
-
予約済み
[23:0]
RELOAD
イネーブルなカウンタのカウントがゼロに達したときに、SYST_CVR
にロードされる値。Section 21.5.4.2.1 を参照してください。
R
A
21.5.4.2.1
FT
Table 328. SYST_RVR bit assignments
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 のレジスタの概要を参照してください。ビットの割り当てを次の表に示します。
Table 329. SYST_CVR bit assignments
Bits
Name
Function
[31:24]
-
予約済み
[23:0]
CURRENT
読み取りでは、SysTick カウンタの現在の値が返されます。
任意の値を書き込むと、フィールドは 0 にクリアされます。ま
た、SYST_CSR.COUNTFLAG ビットも 0 にクリアされます。
21.5.4.4 SysTick 校正値レジスタ
SYST_CALIB レジスタは、SysTick 校正プロパティを示します。レジスタの属性については、
Table 326 のレジスタの概要を参照してください。ビットの割り当てを次の表に示します。
Table 330. SYST_CALIB register bit assignments
Bits
Name
Function
[31]
NOREF
読み取り値は 1 です。これは、個別の参照クロックが供給されないこと
を示します。
[30]
SKEW
読み取り値は 1 です。TENMS が不明であるため、10ms の不正確なタイ
ミングの校正値は不明です。これは、SysTick のソフトウェアリアルタイ
ムクロックとしての適合性に影響することがあります。
[29:24]
-
予約済み
[23:0]
TENMS
読み取り値はゼロです。これは校正値が不明であることを示します。
校正情報が不明であれば、プロセッサクロックまたは外部クロックの周波数から、要求さ
れる校正値を計算します。
© NXP B.V. 2010. All rights reserved.
UM10398