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 *)¶m }, { 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 = 2500001 = 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_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 392 D D R R R R R A A A UM10398 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 この割り込みコントローラクロックは、SysTick カウンタを更新します。このクロック信 号が低電力モードで停止した場合、SysTick カウンタが停止します。 F FT FT A A R R D D D 21.5.4.5 SysTick の使用上のヒント FT FT FT FT 第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス D D R A SysTick レジスタへのアクセスに、ワードアクセスが使用されることを確認します。 FT A 1. リロード値をプログラムします。 2. 現在値をクリアします。 3. 制御とステータスレジスタをプログラムします。 21.6 Cortex-M0 命令のまとめ Table 331. Cortex M0- instruction summary Operation Description Assembler Cycles Move 8 ビットイミディエート MOVS Rd, #<imm> 1 下位から下位 MOVS Rd, Rm 1 任意から任意 MOV Rd, Rm 1 任意から PC MOV PC, Rm 3 3 ビットイミディエート ADDS Rd, Rn, #<imm> 1 すべてのレジスタの下位 ADDS Rd, Rn, Rm 1 任意から任意 ADD Rd, Rd, Rm 1 任意から PC ADD PC, PC, Rm 3 8 ビットイミディエート ADDS Rd, Rd, #<imm> 1 キャリー付き ADCS Rd, Rd, Rm 1 イミディエートから SP ADD SP, SP, #<imm> 1 SP からアドレス生成 ADD Rd, SP, #<imm> 1 PC からアドレス生成 ADR Rd, <label> 1 下位と下位 SUBS Rd, Rn, Rm 1 3 ビットイミディエート SUBS Rd, Rn, #<imm> 1 8 ビットイミディエート SUBS Rd, Rd, #<imm> 1 キャリー付き SBCS Rd, Rd, Rm 1 SP からイミディエート SUB SP, SP, #<imm> 1 1 Add Subtract 否定 RSBS Rd, Rn, #0 Multiply 乗算 MULS Rd, Rm, Rd 1 or 32[1] Compare 比較 CMP Rn, Rm 1 否定 CMN Rn, Rm 1 イミディエート CMP Rn, #<imm> 1 © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 R 正しい初期化シーケンスは、次のようになります。 Add D SysTick カウンタリロード値と現在値がリセット時に未定義であれば、SysTick カウンタの 393 D D R R R R R A A A UM10398 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 Cycles ANDS Rd, Rd, Rm 1 排他的 OR EORS Rd, Rd, Rm 1 D LSLS Rd, Rm, #<shift> 1 レジスタ値により論理左シフト LSLS Rd, Rd, Rs 1 イミディエート値により論理右 シフト LSRS Rd, Rm, #<shift> 1 レジスタ値により論理左シフト LSRS Rd, Rd, Rs 1 算術右シフト ASRS Rd, Rm, #<shift> 1 1 R イミディエート値により論理左 シフト D 1 FT TST Rn, Rm A AND テスト A 1 R MVNS Rd, Rm D Move NOT(補数移動) FT ビットクリア A 1 1 R ORRS Rd, Rd, Rm BICS Rd, Rd, Rm R D OR D AND F Logical A Assembler FT Description FT Operation FT A A R R D D D Table 331. Cortex M0- instruction summary (続き) FT FT FT FT 第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス レジスタ値により算術右シフト ASRS Rd, Rd, Rs Rotate レジスタ値により右ローテート RORS Rd, Rd, Rs 1 Load ワード、イミディエートオフ セット LDR Rd, [Rn, #<imm>] 2 ハーフワード、イミディエート オフセット LDRH Rd, [Rn, #<imm>] 2 バイト、イミディエートオフ セット LDRB Rd, [Rn, #<imm>] 2 ワード、レジスタオフセット LDR Rd, [Rn, Rm] 2 ハーフワード、レジスタオフ セット LDRH Rd, [Rn, Rm] 2 符号付きハーフワード、レジス タオフセット LDRSH Rd, [Rn, Rm] 2 バイト、レジスタオフセット LDRB Rd, [Rn, Rm] 2 符号付きバイト、レジスタオフ セット LDRSB Rd, [Rn, Rm] 2 PC 相対 LDR Rd, <label> 2 SP 相対 LDR Rd, [SP, #<imm>] 2 複数、ベースを除く LDM Rn!, {<loreglist>} 1 + N[2] 複数、ベースを含む LDM Rn, {<loreglist>} 1 + N[2] ワード、イミディエートオフ セット STR Rd, [Rn, #<imm>] 2 Store © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル A Shift Rev. 00.15 — 2010 / 9 / 28 394 D D R R R R R A A A UM10398 A A FT FT FT FT FT D R R A A A A R R D D D NXP Semiconductors D D D 参考資料 2 バイト、イミディエートオフ セット STRB Rd, [Rn, #<imm>] 2 ワード、レジスタオフセット STR Rd, [Rn, Rm] 2 ハーフワード、レジスタオフ セット STRH Rd, [Rn, Rm] 2 バイト、レジスタオフセット STRB Rd, [Rn, Rm] 2 SP 相対 STR Rd, [SP, #<imm>] 2 複数 STM Rn!, {<loreglist>} 1 + N[2] プッシュ PUSH {<loreglist>} 1 + N[2] リンクレジスタ付きプッシュ PUSH {<loreglist>, LR} 1 + N[2] ポップ POP {<loreglist>} 1 + N[2] ポップと復帰 POP {<loreglist>, PC} 4 + N[3] 条件付き B<cc> <label> 1 or 3[4] 無条件 B <label> 3 リンク付き BL <label> 4 交換付き BX Rm 3 リンクおよび交換付き BLX Rm 3 符号付きハーフワードからワー ド SXTH Rd, Rm 1 符号付きバイトからワード SXTB Rd, Rm 1 符号なしハーフワード UXTH Rd, Rm 1 符号なしバイト UXTB Rd, Rm 1 ワード内のバイト REV Rd, Rm 1 両方のハーフワード内のバイト REV16 Rd, Rm 1 符号付き下位ハーフワード REVSH Rd, Rm 1 スーパーバイザコール SVC <imm> -[5] 割り込みディスエーブル CPSID i 1 割り込みイネーブル CPSIE i 1 特殊レジスタ読み取り MRS Rd, <specreg> 4 特殊レジスタ書き込み MSR <specreg>, Rn 4 イベント送信 SEV 1 イベント待機 WFE 2[6] 割り込み待機 WFI 2[6] Yield YIELD[7] 1 演算なし NOP 1 命令同期 ISB 4 データメモリ DMB 4 データ同期 DSB 4 R A FT FT A R A FT D R A © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 D D 乗算器の実装に応じます。 N は要素の個数です。 UM10398_0 F D R [1] [2] D Barriers FT Hint A STRH Rd, [Rn, #<imm>] State change Cycles FT ハーフワード、イミディエート オフセット Reverse R A A Store Extend D R R Assembler Branch R FT D D Description Pop D A FT FT A A R R R Operation Push ユーザーマニュアル D D D Table 331. Cortex M0- instruction summary (続き) FT FT FT FT 第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス 395 D D R R R R R A A A UM10398 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 N はスタックポップリストの、PC を含む要素の数です。ロードまたはストアを推測しています。HardFault 例外を生成しません。 取られる場合は 3、取られない場合は 1。 サイクルカウントは、コアおよびデバッグ設定に応じます。 割り込みまたはイベントの待機時間を除外します。 NOP として実行します。 D D FT FT A A R R D D D [4] [5] [6] [7] D R FT FT A A R R D D D [3] FT FT FT FT 第 21 章:付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス R A FT D R A © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 396 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 第 22 章:LPC111x 補足情報 D R R R UM10398 D D D 参考資料 D FT FT A A R R D D D 22.1 略語 R A FT D Table 332. Abbreviations R A Acronym Description ADC Analog-to-Digital Converter(A/D コンバータ) AHB Advanced High-performance Bus(アドバンストハイパフォーマンスバス) AMBA Advanced Microcontroller Bus Architecture(アドバンストマイクロコントロー ラバスアーキテクチャ) APB Advanced Peripheral Bus(アドバンストペリフェラルバス) BOD BrownOut Detection(ブラウンアウト検出) GPIO General Purpose Input/Output(汎用入出力) PLL Phase-Locked Loop(位相ロックループ) SPI Serial Peripheral Interface(シリアルペリフェラルインターフェース) SSI Serial Synchronous Interface(シリアル同期インターフェース) TTL Transistor-Transistor Logic(トランジスタ - トランジスタロジック) UART Universal Asynchronous Receiver/Transmitter(汎用非同期送受信回路) 22.2 参考文献 [1] ARM DUI 0497A — Cortex-M0 Devices Generic User Guide [2] ARM DDI 0432C — Cortex-M0 Revision r0p0 Technical Reference Manual © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 397 D D R R R R R A A A UM10398 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 F D FT FT A A R 用途 — 本書内で説明する当社製製品の用途は、解説用にすぎませ ん。NXP Semiconductors は、試験または修正を伴わずにかかる用途 が指定された使用に適合するか否かについては、表明も保証も行い ません。 R D D NXP Semiconductors は、顧客側の用途または製品、もしくは顧客 の第三者顧客の用途または使用における脆弱性または欠如に基づ く不履行、損害、費用、または問題に関連した責任を負いません。 顧客側の用途と製品、もしくは顧客の第三者顧客の用途または使用 の不履行を回避する目的として、NXP Semiconductors 製の製品を 使用した顧客側の用途および製品に対して行われるすべての必要 な試験は、顧客側が責任を負います。NXP はこの件に関しては責任 を負いません。 輸出制限 — 本書および本書内で説明する品目は、輸出制限規制の 対象になる場合があります。輸出する場合、事前に国内の機関から 許可を受ける必要が生じる場合があります。 22.3.3 商標 注意 : 参照されるブランド、製品名、サービス名、および商標はす べて、各所有者の財産と見なされます。 I2C-bus — ロゴは、NXP B.V. の商標です。 用途の適合性 — NXP Semiconductors の製品は、生命維持装置、ラ イフクリティカル装置、またはセーフティクリティカル装置での使 用、もしくは NXP Semiconductors 製の製品の故障または不具合に より負傷、死亡、財産または環境の深刻な損害を生じることが合理 的に予測される用途での使用への適合性が意図、許可、保証されて いません。NXP Semiconductors は、かかる装置または用途への NXP Semiconductors 製の製品の統合および / または使用に対して責任を 負わず、故に、かかる統合および / または使用はお客様側の責任と なります。 © NXP B.V. 2010. All rights reserved. UM10398_0 Rev. 00.15 — 2010 / 9 / 28 398 A NXP Semiconductors 製の製品を使用した、用途および製品の設計 および操作は顧客側の責任となり、NXP Semiconductors は用途へ の支援または顧客側での製品の設計に対して責任を負いません。 NXP Semiconductors 製の製品が、顧客側の予定された用途および 製品に適合するかどうか、および顧客側の第三者顧客の予定された 用途および使用に適合するかどうかの判断は、顧客側の単独の責任 において行ってください。顧客は顧客側の用途および製品に付随す るリスクを最小限に抑えるために、適切な設計を行い、稼働時の予 防対策を講じる必要があります。 R 変更の権利 — NXP Semiconductors は、仕様と製品の詳細を含む (ただしこれらに限定されない)、本書内で公表した情報を予告なく 任意の時期に変更する権利を有します。本書は本書の発行以前に開 示されたすべての情報よりも優先され、同情報は本書内の内容に変 更されます。 D 何らかの理由で顧客側に損害が発生する場合でも、本書内で説明す る製品に関する NXP Semiconductors から顧客側への債務の総額お よび累計は、NXP Semiconductors の商業的販売の条件に準じて制 限されるものとします。 FT NXP Semiconductors は、間接的、偶発的、懲罰的、特別、もしくは 間接的な各損害に対して(製品の撤去または交換に関連した収益の 損失、省力の損失、事業の混乱、費用、もしくは再構成の料金を含 むがこれらに限定されない)は、かかる損害が不法行為(過失を含 む)、保証、契約またはその他の法的理論の侵害に基づくか否かを 問わず、いかなる場合も責任を負いません。 A 有限保証および有限責任 — 本書内の情報は、正確かつ信頼性ある ものと見なされています。ただし、かかる情報の正確性もしくは完 全性に関して、NXP Semiconductors は明示的にも暗示的にも表明 もしくは保証を行わず、かかる情報の利用の結果に対して責任を負 いません。 R 22.3.2 免責事項 D 草案 — 本書は草案書です。本書内の内容は社内で検討中であり、正 式な承認待ちの段階であるため、最終的に修正あるいは追記が行わ れる可能性があります。NXP Semiconductors は、本書内の情報の正 確性または完全性に関して何ら表明または保証を行わず、かかる情 報を使用した結果に対して責任を負いません。 ユーザーマニュアル A FT FT A A R R D D D 22.3.1 定義 R R FT FT A A R R D D D 22.3 法律情報 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 Table 26. Table 27. Table 32. Table 33. Table 34. Table 35. Table 36. Table 37. Table 38. Table 39. Table 40. Table 41. Table 42. Table 43. Table 44. Table 45. Table 46. Table 47. Table 48. Table 49. Table 50. Table 51. Table 52. Table 53. Table 54. © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 399 A Table 25. Table 31. R Table 24. Table 30. D Table 23. D Table 22. F Table 21. Table 29. FT Table 20. FT Table 19. A Table 18. A Table 17. R Table 16. R Table 15. D Table 14. D Table 13. Table 28. FT Table 12. A Table 11. (CLKOUTUEN, address 0x4004 80E4) bit description ...................................................................... 25 CLKOUT clock divider registers (CLKOUTCLKDIV, address 0x4004 80E8) bit description ................... 25 POR captured PIO status registers 0 (PIOPORCAP0, address 0x4004 8100) bit description ................... 26 POR captured PIO status registers 1 (PIOPORCAP1, address 0x4004 8104) bit description ................... 26 BOD control register (BODCTRL, address 0x4004 8150) bit description ................................................... 27 System tick timer calibration register (SYSTCKCAL, address 0x4004 8158) bit description ................... 27 Start logic edge control register 0 (STARTAPRP0, address 0x4004 8200) bit description ................... 28 Start logic signal enable register 0 (STARTERP0, address 0x4004 8204) bit description ................... 28 Start logic reset register 0 (STARTRSRP0CLR, address 0x4004 8208) bit description ................... 29 Start logic status register 0 (STARTSRP0, address 0x4004 820C) bit description ................................... 29 Allowed values for PDSLEEPCFG register ............ 29 Deep-sleep configuration register (PDSLEEPCFG, address 0x4004 8230) bit description ................... 30 Wake-up configuration register (PDAWAKECFG, address 0x4004 8234) bit description ................... 31 Power-down configuration register (PDRUNCFG, address 0x4004 8238) bit description ................... 32 Device ID register (DEVICE_ID, address 0x4004 83F4) bit description .................................................... 33 PLL frequency parameters ......................................... 41 PLL configuration examples ..................................... 42 Flash configuration register (FLASHCFG, address 0x4003 C010) bit description ................................... 43 Register overview: PMU (base address 0x4003 8000) .................................................................................. 44 Power control register (PCON, address 0x4003 8000) bit description ................................................... 44 General purpose registers 0 to 3 (GPREG0 GPREG3, address 0x4003 8004 to 0x4003 8010) bit description ...................................................................... 45 General purpose register 4 (GPREG4, address 0x4003 8014) bit description .................................... 46 Connection of interrupt sources to the Vectored Interrupt Controller ...................................................... 48 Register overview: I/O configuration (base address 0x4004 4000) .................................................................. 52 I/O configuration registers ordered by port number ............................................................................. 54 IOCON_PIO2_6 register (IOCON_PIO2_6, address 0x4004 4000) bit description .................................... 55 IOCON_PIO2_0 register (IOCON_PIO2_0, address 0x4004 4008) bit description ................................................................ 55 IOCON_nRESET_PIO0_0 register (IOCON_nRESET_PIO0_0, address 0x4004 400C) bit description ................................................................ 56 R Table 10. D Table 9. A FT FT Table 8. R A A Table 7. D R R Table 6. Ordering information .................................................... 5 Ordering options ............................................................. 5 LPC111x/LPC11C1x memory configuration .......... 9 Pin summary ...................................................................11 Register overview: system control block (base address 0x4004 8000) ..................................................13 System memory remap register (SYSMEMREMAP, address 0x4004 8000) bit description ...................14 Peripheral reset control register (PRESETCTRL, address 0x4004 8004) bit description ...................15 System PLL control register (SYSPLLCTRL, address 0x4004 8008) bit description ....................................15 System PLL status register (SYSPLLSTAT, address 0x4004 800C) bit description ....................................16 System oscillator control register (SYSOSCCTRL, address 0x4004 8020) bit description ...................16 Watchdog oscillator control register (WDTOSCCTRL, address 0x4004 8024) bit description ......................................................................17 Internal resonant crystal control register (IRCCTRL, address 0x4004 8028) bit description ...................17 System reset status register (SYSRSTSTAT, address 0x4004 8030) bit description ....................................18 System PLL clock source select register (SYSPLLCLKSEL, address 0x4004 8040) bit description ......................................................................19 System PLL clock source update enable register (SYSPLLUEN, address 0x4004 8044) bit description 19 Main clock source select register (MAINCLKSEL, address 0x4004 8070) bit description ...................20 Main clock source update enable register (MAINCLKUEN, address 0x4004 8074) bit description ......................................................................20 System AHB clock divider register (SYSAHBCLKDIV, address 0x4004 8078) bit description ...................20 System AHB clock control register (SYSAHBCLKCTRL, address 0x4004 8080) bit description ......................................................................21 SPI0 clock divider register (SSP0CLKDIV, address 0x4004 8094) bit description ....................................23 UART clock divider register (UARTCLKDIV, address 0x4004 8098) bit description ....................................23 SPI1 clock divider register (SSP1CLKDIV, address 0x4004 809C) bit description ....................................23 WDT clock source select register (WDTCLKSEL, address 0x4004 80D0) bit description ...................24 WDT clock source update enable register (WDTCLKUEN, address 0x4004 80D4) bit description ......................................................................24 WDT clock divider register (WDTCLKDIV, address 0x4004 80D8) bit description ...................................24 CLKOUT clock source select register (CLKOUTCLKSEL, address 0x4004 80E0) bit description ......................................................................25 CLKOUT clock source update enable register R A D D Table 1. Table 2. Table 3. Table 4. Table 5. D R FT FT A A R R D D D 22.4 Tables FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 A F FT FT A A R R D D D D FT FT A A R R D D D R A D R A 400 FT © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 R A FT FT A A R R R address 0x4004 4080) bit description ................... 71 Table 83. IOCON_PIO3_0 register (IOCON_PIO3_0, address 0x4004 4084) bit description .................................... 72 Table 84. IOCON_PIO3_1 register (IOCON_PIO3_1, address 0x4004 4088) bit description ................................................................ 72 Table 85. IOCON_PIO2_3 register (IOCON_PIO2_3, address 0x4004 408C) bit description ................................... 73 Table 86. IOCON_SWDIO_PIO1_3 register (IOCON_SWDIO_PIO1_3, address 0x4004 4090) bit description ...................................................................... 73 Table 87. IOCON_PIO1_4 register (IOCON_PIO1_4, address 0x4004 4094) bit description .................................... 74 Table 88. IOCON_PIO1_11 register (IOCON_PIO1_11 address 0x4004 4098) bit description ................... 75 Table 89. IOCON_PIO3_2 register (IOCON_PIO3_2, address 0x4004 409C) bit description ................................................................ 75 Table 90. IOCON_PIO1_5 register (IOCON_PIO1_5, address 0x4004 40A0) bit description ................................... 76 Table 91. IOCON_PIO1_6 register (IOCON_PIO1_6, address 0x4004 40A4) bit description ................................................................ 76 Table 92. IOCON_PIO1_7 register (IOCON_PIO1_7, address 0x4004 40A8) bit description ................................... 77 Table 93. IOCON_PIO3_3 register (IOCON_PIO3_3, address 0x4004 40AC) bit description ................................... 78 Table 94. IOCON SCK location register (IOCON_SCK_LOC, address 0x4004 40B0) bit description ................... 78 Table 95. IOCON DSR location register (IOCON_DSR_LOC, address 0x4004 40B4) bit description ................... 79 Table 96. IOCON DCD location register (IOCON_DCD_LOC, address 0x4004 40B8) bit description ................... 79 Table 97. IOCON RI location register (IOCON_RI_LOC, address 0x4004 40BC) bit description ................... 79 Table 98. LPC111x/LPC11C1x pin configurations ................ 80 Table 99. LPC1113/14 and LPC11C12/C14 pin description table (LQFP48 package) ............................................. 84 Table 100. LPC1114 pin description table (PLCC44 package) . 88 Table 101. LPC1111/12/13/14 pin description table (HVQFN33 package) ..................................................... 91 Table 102. GPIO configuration ...................................................... 95 Table 103. Register overview: GPIO (base address port 0: 0x5000 0000; port 1: 0x5001 0000, port 2: 0x5002 0000; port 3: 0x5003 0000) ........................................ 96 Table 104. GPIOnDATA register (GPIO0DATA, address 0x5000 0000 to 0x5000 3FFC; GPIO1DATA, address 0x5001 0000 to 0x5001 3FFC; GPIO2DATA, address 0x5002 0000 to 0x5002 3FFC; GPIO3DATA, address 0x5003 0000 to 0x5003 3FFC) bit description ................... 96 Table 105. GPIOnDIR register (GPIO0DIR, address 0x5000 8000 to GPIO3DIR, address 0x5003 8000) bit description ...................................................................... 97 Table 106. GPIOnIS register (GPIO0IS, address 0x5000 8004 to GPIO3IS, address 0x5003 8004) bit description . 98 Table 107. GPIOnIBE register (GPIO0IBE, address 0x5000 8008 to GPIO3IBE, address 0x5003 8008) bit description UM10398_0 ユーザーマニュアル D D D Table 55. IOCON_PIO0_1 register (IOCON_PIO0_1, address 0x4004 4010) bit description ....................................57 Table 56. IOCON_PIO1_8 register (IOCON_PIO1_8, address 0x4004 4014) bit description ....................................57 Table 57. IOCON_PIO0_2 register (IOCON_PIO0_2, address 0x4004 401C) bit description ....................................58 Table 58. IOCON_PIO2_7 register (IOCON_PIO2_7, address 0x4004 4020) bit description ....................................58 Table 59. IOCON_PIO2_8 register (IOCON_PIO2_8, address 0x4004 4024) bit description ....................................59 Table 60. IOCON_PIO2_1 register (IOCON_PIO2_1, address 0x4004 4028) bit description ....................................59 Table 61. IOCON_PIO0_3 register (IOCON_PIO0_3 address 0x4004 402C) bit description ....................................60 Table 62. IOCON_PIO0_4 register (IOCON_PIO0_4 address 0x4004 4030) bit description ....................................60 Table 63. IOCON_PIO0_5 register (IOCON_PIO0_5 address 0x4004 4034) bit description ................................................................61 Table 64. IOCON_PIO1_9 register (IOCON_PIO1_9 address 0x4004 4038) bit description ....................................61 Table 65. IOCON_PIO3_4 register (IOCON_PIO3_4, address 0x4004 403C) bit description ....................................62 Table 66. IOCON_PIO2_4 register (IOCON_PIO2_4, address 0x4004 4040) bit description ....................................62 Table 67. IOCON_PIO2_5 register (IOCON_PIO2_5, address 0x4004 4044) bit description ....................................63 Table 68. IOCON_PIO3_5 register (IOCON_PIO3_5, address 0x4004 4048) bit description ....................................63 Table 69. IOCON_PIO0_6 register (IOCON_PIO0_6 address 0x4004 404C) bit description ....................................64 Table 70. IOCON_PIO0_7 register (IOCON_PIO0_7, address 0x4004 4050) bit description ....................................64 Table 71. IOCON_PIO2_9 register (IOCON_PIO2_9, address 0x4004 4054) bit description ....................................65 Table 72. IOCON_PIO2_10 register (IOCON_PIO2_10, address 0x4004 4058) bit description ...................65 Table 73. IOCON_PIO2_2 register (IOCON_PIO2_2, address 0x4004 405C) bit description ....................................66 Table 74. IOCON_PIO0_8 register (IOCON_PIO0_8, address 0x4004 4060) bit description ....................................66 Table 75. IOCON_PIO0_9 register (IOCON_PIO0_9, address 0x4004 4064) bit description ....................................67 Table 76. IOCON_SWCLK_PIO0_10 register (IOCON_SWCLK_PIO0_10, address 0x4004 4068) bit description ................................................................67 Table 77. IOCON_PIO1_10 register (IOCON_PIO1_10, address 0x4004 406C) bit description ...................68 Table 78. IOCON_PIO2_11 register (IOCON_PIO2_11, address 0x4004 4070) bit description ................................................................68 Table 79. IOCON_R_PIO0_11 register (IOCON_R_PIO0_11, address 0x4004 4074) bit description ...................69 Table 80. IOCON_R_PIO1_0 register (IOCON_R_PIO1_0, address 0x4004 4078) bit description ...................70 Table 81. IOCON_R_PIO1_1 register (IOCON_R_PIO1_1, address 0x4004 407C) bit description ...................70 Table 82. IOCON_R_PIO1_2 register (IOCON_R_PIO1_2, FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 A F FT FT A A R R D D D D FT FT A A R R D D D R A D R A 401 FT © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 R A FT FT A A R R R Table 133. UART RS485 Control register (U0RS485CTRL address 0x4000 804C) bit description .................125 Table 134. UART RS-485 Address Match register (U0RS485ADRMATCH - address 0x4000 8050) bit description ....................................................................126 Table 135. UART RS-485 Delay value register (U0RS485DLY address 0x4000 8054) bit description .................126 Table 136. I2C-bus pin description .............................................133 Table 137. Register overview: I2C (base address 0x4000 0000) 133 Table 138. I2C Control Set register (I2C0CONSET - address 0x4000 0000) bit description ..................................135 Table 139. I2C Status register (I2C0STAT - 0x4000 0004) bit description ....................................................................136 Table 140. I2C Data register (I2C0DAT - 0x4000 0008) bit description ....................................................................137 Table 141. I2C Slave Address register 0 (I2C0ADR00x4000 000C) bit description .................................137 Table 142. I2C SCL HIGH Duty Cycle register (I2C0SCLH address 0x4000 0010) bit description .................137 Table 143. I2C SCL Low duty cycle register (I2C0SCLL 0x4000 0014) bit description ..................................138 Table 144. I2SCLL + I2SCLH values for selected I2C clock values ..............................................................................138 Table 145. I2C Control Clear register (I2C0CONCLR 0x4000 0018) bit description ..................................139 Table 146. I2C Monitor mode control register (I2C0MMCTRL 0x4000 001C) bit description ..............................................................139 Table 147. I2C Slave Address registers (I2C0ADR[1, 2, 3]0x4000 00[20, 24, 28]) bit description .................141 Table 148. I2C Data buffer register (I2C0DATA_BUFFER 0x4000 002C) bit description .................................142 Table 149. I2C Mask registers (I2C0MASK[0, 1, 2, 3] 0x4000 00[30, 34, 38, 3C]) bit description ..........142 Table 150. I2C0CONSET and I2C1CONSET used to configure Master mode ................................................................143 Table 151. I2C0CONSET and I2C1CONSET used to configure Slave mode ....................................................................145 Table 152. Abbreviations used to describe an I2C operation .. 151 Table 153. I2CONSET used to initialize Master Transmitter mode ...............................................................................152 Table 154. Master Transmitter mode ........................................153 Table 155. Master Receiver mode ..............................................155 Table 156. I2C0ADR and I2C1ADR usage in Slave Receiver mode ...............................................................................157 Table 157. I2C0CONSET and I2C1CONSET used to initialize Slave Receiver mode .................................................157 Table 158. Slave Receiver mode .................................................157 Table 159. Slave Transmitter mode ...........................................161 Table 160. Miscellaneous States .................................................164 Table 161. SPI pin descriptions ....................................................177 Table 162. Register overview: SPI0 (base address 0x4004 0000) ................................................................................178 Table 163. Register overview: SPI1 (base address 0x4005 8000) ................................................................................179 Table 173. CCAN pin description ................................................193 UM10398_0 ユーザーマニュアル D D D 98 Table 108. GPIOnIEV register (GPIO0IEV, address 0x5000 800C to GPIO3IEV, address 0x5003 800C) bit description 98 Table 109. GPIOnIE register (GPIO0IE, address 0x5000 8010 to GPIO3IE, address 0x5003 8010) bit description .99 Table 110. GPIOnIRS register (GPIO0IRS, address 0x5000 8014 to GPIO3IRS, address 0x5003 8014) bit description 99 Table 111. GPIOnMIS register (GPIO0MIS, address 0x5000 8018 to GPIO3MIS, address 0x5003 8018) bit description ......................................................................99 Table 112. GPIOnIC register (GPIO0IC, address 0x5000 801C to GPIO3IC, address 0x5003 801C) bit description 100 Table 113. UART pin description ................................................ 102 Table 114. Register overview: UART (base address: 0x4000 8000) ............................................................................... 103 Table 115. UART Receiver Buffer Register (U0RBR - address 0x4000 8000 when DLAB = 0, Read Only) bit description ................................................................... 104 Table 116. UART Transmitter Holding Register (U0THR address 0x4000 8000 when DLAB = 0, Write Only) bit description ............................................................. 105 Table 117. UART Divisor Latch LSB Register (U0DLL - address 0x4000 8000 when DLAB = 1) bit description . 105 Table 118. UART Divisor Latch MSB Register (U0DLM - address 0x4000 8004 when DLAB = 1) bit description . 105 Table 119. UART Interrupt Enable Register (U0IER - address 0x4000 8004 when DLAB = 0) bit description . 106 Table 120. UART Interrupt Identification Register (U0IIR address 0x4004 8008, Read Only) bit description .. 107 Table 121. UART Interrupt Handling ........................................ 108 Table 122. UART FIFO Control Register (U0FCR - address 0x4000 8008, Write Only) bit description .......... 110 Table 123. UART Line Control Register (U0LCR - address 0x4000 800C) bit description ............................................................. 110 Table 124. UART0 Modem Control Register (U0MCR - address 0x4000 8010) bit description ............................................................. 111 Table 125. Modem status interrupt generation ................... 113 Table 126. UART Line Status Register (U0LSR - address 0x4000 8014, Read Only) bit description .......... 114 Table 127. UART Modem Status Register (U0MSR - address 0x4000 8018) bit description ............................................................. 116 Table 128. UART Scratch Pad Register (U0SCR - address 0x4000 8014) bit description ................................. 117 Table 129. Auto-baud Control Register (U0ACR - address 0x4000 8020) bit description ............................................................. 117 Table 130. UART Fractional Divider Register (U0FDR - address 0x4000 8028) bit description ................................. 121 Table 131. Fractional Divider setting look-up table ............ 124 Table 132. UART Transmit Enable Register (U0TER - address 0x4000 8030) bit description ................................. 125 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 A F FT FT A A R R D D D D FT FT A A R R D D D R A D R A 402 FT © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 R A FT FT A A R R R CANIF2_DA2, address 0x4005 00A0) bit description ....................................................................210 Table 194. CAN message interface data B1 registers (CANIF1_DB1, address 0x4005 0044 and CANIF2_DB1, address 0x4005 00A4) bit description ....................................................................211 Table 195. CAN message interface data B2 registers (CANIF1_DB2, address 0x4005 0048 and CANIF2_DB2, address 0x4005 00A8) bit description ....................................................................211 Table 196. CAN transmission request 1 register (CANTXREQ1, address 0x4005 0100) bit description .................211 Table 197. CAN transmission request 2 register (CANTXREQ2, address 0x4005 0104) bit description .................212 Table 198. CAN new data 1 register (CANND1, address 0x4005 0120) bit description ..................................212 Table 199. CAN new data 2 register (CANND2, address 0x4005 0124) bit description ..................................213 Table 200. CAN interrupt pending 1 register (CANIR1, address 0x4005 0140) bit description ..................................213 Table 201. CAN interrupt pending 2 register (CANIR2, addresses 0x4005 0144) bit description .............214 Table 202. CAN message valid 1 register (CANMSGV1, addresses 0x4005 0160) bit description .............214 Table 203. CAN message valid 2 register (CANMSGV2, address 0x4005 0164) bit description ..................................215 Table 204. CAN clock divider register (CANCLKDIV, address 0x4005 0180) bit description ..................................215 Table 205. Initialization of a transmit object ..........................224 Table 206. Initialization of a receive object .............................225 Table 207. Parameters of the C_CAN bit time .......................230 Table 208. Counter/timer pin description ...............................247 Table 209. Register overview: 16-bit counter/timer 0 CT16B0 (base address 0x4000 C000) ...................................248 Table 210. Register overview: 16-bit counter/timer 1 CT16B1 (base address 0x4001 0000) ....................................249 Table 211. Interrupt Register (TMR16B0IR - address 0x4000 C000 and TMR16B1IR - address 0x4001 0000) bit description ..................................250 Table 212. Timer Control Register (TMR16B0TCR - address 0x4000 C004 and TMR16B1TCR - address 0x4001 0004) bit description ..................................250 Table 213. Match Control Register (TMR16B0MCR - address 0x4000 C014 and TMR16B1MCR - address 0x4001 0014) bit description ..................................251 Table 214. Capture Control Register (TMR16B0CCR - address 0x4000 C028 and TMR16B1CCR - address 0x4001 0028) bit description ..................................252 Table 215. External Match Register (TMR16B0EMR - address 0x4000 C03C and TMR16B1EMR - address 0x4001 003C) bit description .................................253 Table 216. External match control .............................................254 Table 217. Count Control Register (TMR16B0CTCR - address 0x4000 C070 and TMR16B1CTCR - address 0x4001 0070) bit description ..................................254 Table 218. PWM Control Register (TMR16B0PWMC - address 0x4000 C074 and TMR16B1PWMC- address 0x4001 0074) bit description ..................................255 UM10398_0 ユーザーマニュアル D D D Table 174. Register overview: CCAN (base address 0x4005 0000) ............................................................................... 194 Table 175. CAN control registers (CANCNTL, address 0x4005 0000) bit description ................................. 196 Table 176. CAN status register (CANSTAT, address 0x4005 0004) bit description ................................. 198 Table 177. CAN error counter (CANEC, address 0x4005 0008) bit description ............................................................. 199 Table 178. CAN bit timing register (CANBT, address 0x4005 000C) bit description ................................. 200 Table 179. CAN interrupt register (CANINT, address 0x4005 0010) bit description ................................. 201 Table 180. CAN test register (CANTEST, address 0x4005 0014) bit description ............................................................. 202 Table 181. CAN baud rate prescaler extension register (CANBRPE, address 0x4005 0018) bit description .. 202 Table 182. Message interface registers .................................... 203 Table 183. Structure of a message object in the message RAM 204 Table 184. CAN message interface command request registers (CANIF1_CMDREQ, address 0x4005 0020 and CANIF2_CMDREQ, address 0x4005 0080) bit description ................................................................... 204 Table 185. CAN message interface command mask registers (CANIF1_CMDMSK, address 0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - write direction .................................. 205 Table 186. CAN message interface command mask registers (CANIF1_CMDMSK, address 0x4005 0024 and CANIF2_CMDMSK, address 0x4005 0084) bit description - read direction .................................... 206 Table 187. CAN message interface command mask 1 registers (CANIF1_MSK1, address 0x4005 0028 and CANIF2_MASK1, address 0x4005 0088) bit description ................................................................... 207 Table 188. CAN message interface command mask 2 registers (CANIF1_MSK2, address 0x4005 002C and CANIF2_MASK2, address 0x4005 008C) bit description ................................................................... 207 Table 189. CAN message interface command arbitration 1 registers (CANIF1_ARB1, address 0x4005 0030 and CANIF2_ARB1, address 0x4005 0090) bit description ................................................................... 208 Table 190. CAN message interface command arbitration 2 registers (CANIF1_ARB2, address 0x4005 0034 and CANIF2_ARB2, address 0x4005 0094) bit description ................................................................... 208 Table 191. CAN message interface message control registers (CANIF1_MCTRL, address 0x4005 0038 and CANIF2_MCTRL, address 0x4005 0098) bit description ................................................................... 209 Table 192. CAN message interface data A1 registers (CANIF1_DA1, address 0x4005 003C and CANIF2_DA1, address 0x4005 009C) bit description ................................................................... 210 Table 193. CAN message interface data A2 registers (CANIF1_DA2, address 0x4005 0040 and FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 A F FT FT A A R R D D D D FT FT A A R R D D D R A D R A 403 FT © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 R A FT FT A A R R R Table 263. UART ISP Read Part Identification command ...306 Table 264. LPC111x and LPC11C1x part identification numbers .........................................................................306 Table 265. UART ISP Read Boot Code version number command ......................................................................307 Table 266. UART ISP Compare command ................................307 Table 267. UART ISP ReadUID command .................................307 Table 268. UART ISP Return Codes Summary ........................308 Table 269. C_CAN ISP and UART ISP command summary 309 Table 270. C_CAN ISP object directory .....................................310 Table 271. LPC11C1x part identification numbers ...............312 Table 272. C_CAN ISP SDO abort codes ...................................312 Table 273. IAP Command Summary ..........................................314 Table 274. IAP Prepare sector(s) for write operation command ......................................................................315 Table 275. IAP Copy RAM to flash command .........................316 Table 276. IAP Erase Sector(s) command .................................316 Table 277. IAP Blank check sector(s) command ....................317 Table 278. IAP Read Part Identification command ...............317 Table 279. IAP Read Boot Code version number command .... 317 Table 280. IAP Compare command ...........................................318 Table 281. IAP Reinvoke ISP ..........................................................318 Table 282. IAP ReadUID command ............................................318 Table 283. IAP Status Codes Summary .....................................319 Table 284. Memory mapping in debug mode .......................319 Table 285. Flash configuration register (FLASHCFG, address 0x4003 C010) bit description .................................320 Table 286. Serial Wire Debug pin description ........................321 Table 287. Summary of processor mode and stack use options ............................................................................326 Table 288. Core register set summary ......................................326 Table 289. PSR register combinations ......................................328 Table 290. APSR bit assignments ................................................328 Table 291. IPSR bit assignments .................................................329 Table 292. EPSR bit assignments ................................................329 Table 293. PRIMASK register bit assignments ........................330 Table 294. CONTROL register bit assignments ......................330 Table 295. Memory access behavior .........................................335 Table 296. Properties of different exception types ..............338 Table 297. Exception return behavior .......................................342 Table 298. Cortex-M0 instructions .............................................345 Table 299. CMSIS intrinsic functions to generate some Cortex-M0 instructions .............................................347 Table 300. insic functions to access the special registers ..348 Table 301. Condition code suffixes ............................................353 Table 302. Access instructions .....................................................353 Table 303. Data processing instructions ..................................360 Table 304. ADC, ADD, RSB, SBC and SUB operand restrictions 362 Table 305. Branch and control instructions ............................370 Table 306. Branch ranges ..............................................................371 Table 307. Miscellaneous instructions ......................................371 Table 308. Core peripheral register regions ...........................379 Table 309. NVIC register summary .............................................379 Table 310. CMISIS access NVIC functions .................................380 Table 311. ISER bit assignments ..................................................380 Table 312. ICER bit assignments .................................................381 UM10398_0 ユーザーマニュアル D D D Table 219. Counter/timer pin description .............................. 261 Table 220. Register overview: 32-bit counter/timer 0 CT32B0 (base address 0x4001 4000) ................................... 262 Table 221. Register overview: 32-bit counter/timer 1 CT32B1 (base address 0x4001 8000) ................................... 263 Table 227. External match control ............................................ 268 Table 230. Register overview: Watchdog timer (base address 0x4000 4000) ............................................................... 276 Table 231. Watchdog Mode register (WDMOD - address 0x4000 4000) bit description ................................. 276 Table 232. Watchdog operating modes selection .............. 277 Table 233. Watchdog Constant register (WDTC - address 0x4000 4004) bit description ................................. 278 Table 234. Watchdog Feed register (WDFEED - address 0x4000 4008) bit description ................................. 278 Table 235. Watchdog Timer Value register (WDTV - address 0x4000 000C) bit description ................................. 278 Table 236. Register overview: SysTick timer (base address 0xE000 E000) ............................................................... 281 Table 237. System Timer Reload value register (SYST_RVR 0xE000 E014) bit description ................................. 282 Table 238. System Timer Current value register (SYST_CVR 0xE000 E018) bit description ................................. 282 Table 239. System Timer Calibration value register (SYST_CALIB - 0xE000 E01C) bit description .... 283 Table 240. ADC pin description .................................................. 284 Table 241. Register overview: ADC (base address 0x4001 C000) ............................................................................... 285 Table 242. A/D Control Register (AD0CR - address 0x4001 C000) bit description ................................. 286 Table 243. A/D Global Data Register (AD0GDR - address 0x4001 C004) bit description ................................. 288 Table 244. A/D Status Register (AD0STAT - address 0x4001 C030) bit description ................................. 288 Table 245. A/D Interrupt Enable Register (AD0INTEN - address 0x4001 C00C) bit description ................................ 289 Table 246. A/D Data Registers (AD0DR0 to AD0DR7 addresses 0x4001 C010 to 0x4001 C02C) bit description ................................................................... 289 Table 247. LPC111x/LPC11Cx flash configurations ............. 291 Table 248. Flash sector configuration ...................................... 295 Table 249. Code Read Protection options .............................. 296 Table 250. Code Read Protection hardware/software interaction .................................................................... 297 Table 251. ISP commands allowed for different CRP levels ..... 298 Table 252. UART ISP command summary .............................. 300 Table 253. UART ISP Unlock command ................................... 301 Table 254. UART ISP Set Baud Rate command ...................... 301 Table 255. UART ISP Echo command ....................................... 301 Table 256. UART ISP Write to RAM command ....................... 302 Table 257. UART ISP Read Memory command ..................... 303 Table 258. UART ISP Prepare sector(s) for write operation command ...................................................................... 304 Table 259. UART ISP Copy command ....................................... 304 Table 260. UART ISP Go command ............................................ 305 Table 261. UART ISP Erase sector command ......................... 305 Table 262. UART ISP Blank check sector command ............ 306 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 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 Rev. 00.15 — 2010 / 9 / 28 R A FT FT A A R R R © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル D D D Table 313. ISPR bit assignments ................................................. 381 Table 314. ICPR bit assignments ................................................ 382 Table 315. IPR bit assignments ................................................... 382 Table 316. CMSIS functions for NVIC control ......................... 384 Table 317. Summary of the SCB registers ............................... 385 Table 318. CPUID register bit assignments ............................ 385 Table 319. ICSR bit assignments ................................................ 386 Table 320. AIRCR bit assignments ............................................. 388 Table 321. SCR bit assignments .................................................. 388 Table 322. CCR bit assignments ................................................. 389 Table 323. System fault handler priority fields ..................... 390 Table 324. SHPR2 register bit assignments ............................ 390 Table 325. SHPR3 register bit assignments ............................ 390 Table 326. System timer registers summary .......................... 391 Table 327. SYST_CSR bit assignments ..................................... 391 Table 328. SYST_RVR bit assignments ..................................... 392 Table 329. SYST_CVR bit assignments ..................................... 392 Table 330. SYST_CALIB register bit assignments ................. 392 Table 331. Cortex M0- instruction summary ......................... 393 Table 332. Abbreviations .............................................................. 397 FT FT FT FT 第 22 章:LPC111x 補足情報 404 D D R R R R R A A A UM10398 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 D A D R A 405 FT Rev. 00.15 — 2010 / 9 / 28 A ユーザーマニュアル R © NXP B.V. 2010. All rights reserved. UM10398_0 R Fig 45. D Fig 37. Fig 38. Fig 39. Fig 40. Fig 41. Fig 42. Fig 43. Fig 44. D Fig 35. Fig 36. FT Fig 34. A Fig 33. Fig 46. Reading a message from the FIFO buffer to the message buffer .................................................................228 Fig 47. Bit timing.............................................................................231 Fig 48. CAN API pointer structure.............................................233 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. ................................257 Fig 50. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled..............257 Fig 51. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled...............258 Fig 52. 16-bit counter/timer block diagram .........................259 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. ................................271 Fig 54. A timer cycle in which PR=2, MRx=6, and both interrupt and reset on match are enabled..............271 Fig 55. A timer cycle in which PR=2, MRx=6, and both interrupt and stop on match are enabled...............272 Fig 56. 32-bit counter/timer block diagram .........................273 Fig 57. Watchdog block diagram..............................................279 Fig 58. System tick timer block diagram................................281 Fig 59. Boot process flowchart ..................................................294 Fig 60. IAP parameter passing ...................................................315 Fig 61. Cortex-M0 implementation..........................................323 Fig 62. Processor core register set............................................326 Fig 63. APSR, IPSR, EPSR register bit assignments..............327 Fig 64. Generic ARM Cortex-M0 memory map ....................333 Fig 65. Memory ordering restrictions......................................334 Fig 66. Little-endian format ........................................................336 Fig 67. Vector table........................................................................339 Fig 68. Exception entry stack contents...................................341 Fig 69. ASR #3 ..................................................................................349 Fig 70. LSR #3 ...................................................................................350 Fig 71. LSL #3 ...................................................................................350 Fig 72. ROR #3..................................................................................351 Fig 73. IPR register..........................................................................382 R Fig 31. Fig 32. D Fig 30. A FT FT Fig 27. Fig 28. Fig 29. R A A Fig 21. Fig 22. Fig 23. Fig 24. Fig 25. Fig 26. D R R Fig 11. Fig 12. Fig 13. Fig 14. Fig 15. Fig 16. Fig 17. Fig 18. Fig 19. Fig 20. LPC111x/LPC11C1x block diagram................................ 7 LPC111x/LPC11C1x memory map ...............................10 LPC111x/LPC11C1x CGU block diagram....................12 System PLL block diagram..............................................40 Standard I/O pin configuration .....................................50 Pin configuration LQFP48 package .............................81 Pin configuration PLCC44 package .............................82 Pin configuration HVQFN 33 package ........................83 Pin configuration LQFP48 package .............................84 Masked write operation to the GPIODATA register.... 101 Masked read operation ................................................. 101 Auto-RTS Functional Timing ....................................... 113 Auto-CTS Functional Timing ....................................... 114 Auto-baud a) mode 0 and b) mode 1 waveform . 120 Algorithm for setting UART dividers ........................ 123 UART block diagram....................................................... 130 I2C-bus configuration..................................................... 132 Format in the Master Transmitter mode................. 143 Format of Master Receiver mode .............................. 144 A Master Receiver switches to Master Transmitter after sending Repeated START................................... 144 Format of Slave Receiver mode ................................. 145 Format of Slave Transmitter mode ........................... 146 I2C serial interface block diagram.............................. 147 Arbitration procedure.................................................... 149 Serial clock synchronization........................................ 150 Format and states in the Master Transmitter mode ... 154 Format and states in the Master Receiver mode . 156 Format and states in the Slave Receiver mode .... 160 Format and states in the Slave Transmitter mode ...... 163 Simultaneous Repeated START conditions from two masters................................................................................ 165 Forced access to a busy I2C-bus................................ 166 Recovering from a bus obstruction caused by a LOW level on SDA ...................................................................... 166 Texas Instruments Synchronous Serial Frame Format: a) Single and b) Continuous/back-to-back Two Frames Transfer...................................................... 185 SPI frame format with CPOL=0 and CPHA=0 (a) Single and b) Continuous Transfer) .......................... 186 SPI frame format with CPOL=0 and CPHA=1 ........ 187 SPI frame format with CPOL = 1 and CPHA = 0 (a) Single and b) Continuous Transfer) .......................... 188 SPI Frame Format with CPOL = 1 and CPHA = 1 .. 189 Microwire frame format (single transfer)................ 190 Microwire frame format (continuos transfers)...... 190 Microwire frame format setup and hold details .. 191 C_CAN block diagram.................................................... 193 CAN core in Silent mode............................................... 218 CAN core in Loop-back mode..................................... 218 CAN core in Loop-back mode combined with Silent mode.................................................................................... 219 Block diagram of a message object transfer ......... 221 R A D D Fig 1. Fig 2. Fig 3. Fig 4. Fig 5. Fig 6. Fig 7. Fig 8. Fig 9. Fig 10. D R FT FT A A R R D D D 22.5 Figures FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 ブロック図 ............................................................. 7 ARM Cortex-M0 プロセッサ................................. 8 2.2 メモリマップ.......................................................... 9 D 1.4 1.5 D R A FT D はじめに ................................................................. 3 特長......................................................................... 3 注文情報 ................................................................. 5 FT A A R R D 1.1 1.2 1.3 R A D D 第 1 章 : LPC111x/LPC11C1x の概要 D R FT FT A A R R D D D 22.6 Contents FT FT FT FT 第 22 章:LPC111x 補足情報 R A 第 2 章 : LPC111x/LPC11C1x メモリマッピング 2.1 この章を読む前に .................................................. 9 第 3 章 : LPC111x/LPC11C1x システム構成 3.1 3.2 3.3 3.4 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.5.10 3.5.11 3.5.12 3.5.13 3.5.14 3.5.15 3.5.16 3.5.17 3.5.18 3.5.19 3.5.20 3.5.21 3.5.22 3.5.23 3.5.24 3.5.25 3.5.26 3.5.27 3.5.28 3.5.29 3.5.30 この章を読む前に ................................................ 11 概要....................................................................... 11 ピンの説明............................................................ 11 クロックと電力の制御 ......................................... 11 レジスタの説明 .................................................... 12 システムメモリリマップレジスタ..........................14 ペリフェラルリセット制御レジスタ .....................14 システム PLL 制御レジスタ .......................................15 システム PLL ステータスレジスタ .........................15 システムオシレータ制御レジスタ..........................16 ウォッチドッグオシレータ制御レジスタ............16 内部共振クリスタル制御レジスタ..........................17 システムリセットステータスレジスタ ................18 システム PLL クロックソース選択レジスタ .......18 システム PLL クロックソース更新イネーブルレ ジスタ.................................................................................19 メインクロックソース選択レジスタ .....................19 メインクロックソース更新イネーブルレジスタ .. 20 システム AHB クロック分周器レジスタ...............20 システム AHB クロック制御レジスタ ...................21 SPI0 クロック分周器レジスタ ..................................22 UART クロック分周器レジスタ................................23 SPI1 クロック分周器レジスタ ..................................23 WDT クロックソース選択レジスタ ........................23 WDT クロックソース更新イネーブルレジスタ .24 WDT クロック分周器レジスタ .................................24 CLKOUT クロックソース選択レジスタ .................24 CLKOUT クロックソース更新イネーブルレジス タ ..........................................................................................25 CLKOUT クロック分周器レジスタ ..........................25 POR キャプチャの PIO ステータスレジスタ 0...25 POR キャプチャの PIO ステータスレジスタ 1...26 BOD 制御レジスタ.........................................................26 システム tick カウンタ校正レジスタ.....................27 スタートロジックエッジ制御レジスタ 0.............27 スタートロジック信号イネーブルレジスタ 0 ...28 スタートロジックリセットレジスタ 0 .................28 スタートロジックステータスレジスタ 0 ............ 29 3.5.31 3.5.32 ディープスリープモード設定レジスタ................ 29 3.5.33 ウェイクアップ設定レジスタ.................................. 30 パワーダウン設定レジスタ....................................... 32 3.5.34 デバイス ID レジスタ .................................................. 33 3.5.35 3.6 リセット ............................................................... 33 3.7 ブラウンアウト検出 ............................................ 34 3.8 パワーマネージメント......................................... 34 3.8.1 アクティブモード......................................................... 34 3.8.1.1 アクティブモードの電力設定.................................. 34 3.8.2 スリープモード ............................................................. 35 スリープモードの電力設定....................................... 35 3.8.2.1 3.8.2.2 スリープモードのプログラミング......................... 35 3.8.2.3 スリープモードからのウェイクアップ................ 36 ディープスリープモード ........................................... 36 3.8.3 ディープスリープモードの電力設定 .................... 36 3.8.3.1 3.8.3.2 ディープスリープモードのプログラミング ...... 36 ディープスリープモードからのウェイクアップ .. 3.8.3.3 37 ディープパワーダウンモード.................................. 38 3.8.4 3.8.4.1 ディープパワーダウンモードの電力設定........... 38 ディープパワーダウンモードのプログラミング .. 3.8.4.2 38 ディープパワーダウンモードからのウェイク 3.8.4.3 アップ ................................................................................ 38 3.9 ディープスリープモードの詳細 .......................... 38 3.9.1 IRC オシレータ............................................................... 38 3.9.2 スタートロジック......................................................... 38 3.9.3 多目的カウンタ / タイマを使用したセルフウェ イクアップイベントの生成 ....................................... 39 3.10 システム PLL の機能説明.................................... 40 3.10.1 ロック検出器 .................................................................. 40 3.10.2 パワーダウン制御......................................................... 41 3.10.3 分周比のプログラミング ........................................... 41 周波数の選択 .................................................................. 41 3.10.4 3.10.4.1 通常モード....................................................................... 41 3.10.4.2 パワーダウンモード .................................................... 42 3.11 フラッシュメモリへのアクセス .......................... 42 第 4 章 : LPC111x/LPC11C1x PMU (パワーマネージメントユニット) 4.1 4.2 4.2.1 概要....................................................................... 44 レジスタの説明 .................................................... 44 電力制御レジスタ..........................................................44 4.2.2 4.2.3 4.3 汎用レジスタ 0 ∼ 3...................................................... 45 汎用レジスタ 4 ............................................................... 45 機能説明 ............................................................... 46 © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 406 D D R R R R R A A A UM10398 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 A F D 特長 ...................................................................... 47 割り込みソース.................................................... 47 6.3.4 6.3.5 6.4 6.4.1 6.4.2 A/D モード....................................................................... 51 I2C モード......................................................................... 51 レジスタの説明.................................................... 52 I/O 設定レジスタ IOCON_PIOn ................................ 55 IOCON 位置レジスタ ................................................... 78 7.3 7.4 LPC11C12/C14 ピン構成 .................................... 84 LPC111x/LPC11C1x ピンの説明 ....................... 84 8.3.5 8.3.6 8.3.7 8.3.8 8.3.9 8.4 8.4.1 GPIO 割り込みイベントレジスタ ........................... 98 GPIO 割り込みマスクレジスタ................................ 98 GPIO 原割り込みステータスレジスタ.................. 99 GPIO マスク割り込みステータスレジスタ......... 99 GPIO 割り込みクリアレジスタ................................ 99 機能説明 ............................................................. 100 書き込み / 読み取りデータ操作............................ 100 FT 5.3 5.4 FT A A R R D D D R この章を読む前に ................................................ 47 概要....................................................................... 47 D FT FT A A R R D D ディープパワーダウンモードの終了 .................... 46 4.3.2 第 5 章 : LPC111x/LPC11C1x 割り込みコントローラ 5.1 5.2 R A FT FT A A R R R ディープパワーダウンモードへの切り替え .......46 D D D 4.3.1 FT FT FT FT 第 22 章:LPC111x 補足情報 A FT D 第 6 章 : LPC111x/LPC11C1x I/O 設定 R この章を読む前に ................................................ 49 概要....................................................................... 49 概説....................................................................... 49 ピンの機能........................................................................50 ピンのモード ...................................................................50 ヒステリシス ...................................................................51 第 7 章 : LPC111x/LPC11C1x ピン構成 7.1 7.2 この章を読む前に ................................................ 80 LPC111x ピン構成............................................... 81 第 8 章 : LPC111x/LPC11C1x 汎用 I/O(GPIO) 8.1 8.2 8.2.1 8.3 8.3.1 8.3.2 8.3.3 8.3.4 この章を読む前に ................................................ 95 概要....................................................................... 95 特長 .....................................................................................95 レジスタの説明 .................................................... 96 GPIO データレジスタ ...................................................96 GPIO データ方向レジスタ..........................................97 GPIO 割り込み検知レジスタ .....................................98 GPIO 割り込み両エッジ検知レジスタ ...................98 第 9 章 : LPC111x/LPC11Cx 汎用非同期送受信回路(UART) 9.1 9.2 9.3 9.4 9.5 9.6 9.6.1 この章を読む前に .............................................. 102 基本構成 ............................................................. 102 特長..................................................................... 102 ピンの説明.......................................................... 102 クロックと電力の制御 ....................................... 103 レジスタの説明 .................................................. 103 UART レシーババッファレジスタ(U0RBR 0x4000 8000、DLAB = 0 のとき、読み取り専用). 104 9.6.2 UART トランスミッタ保持レジスタ(U0THR 0x4000 8000、DLAB = 0 のとき、書き込み専用). 105 9.6.3 UART ディバイザラッチ LSB および MSB レジス タ(U0DLL - 0x4000 8000 および U0DLM 0x4000 8004、DLAB = 1 のとき).......................... 105 9.6.4 UART 割り込みイネーブルレジスタ(U0IER 0x4000 8004、DLAB = 0 のとき).......................... 106 9.6.5 UART 割り込み識別レジスタ(U0IIR 0x4004 8008、読み取り専用)............................... 106 9.6.6 UART FIFO 制御レジスタ(U0FCR - 0x4000 8008、 書き込み専用).............................................................. 110 9.6.7 UART ライン制御レジスタ(U0LCR 0x4000 800C)............................................................... 110 9.6.8 UART モデム制御レジスタ ...................................... 111 9.6.8.1 自動フロー制御 ........................................................... 112 9.6.8.1.1 自動 RTS......................................................................... 112 自動 CTS ......................................................................... 113 UART ラインステータスレジスタ(U0LSR 0x4000 8014、読み取り専用)................................114 9.6.10 UART モデムステータスレジスタ ........................ 116 9.6.11 UART スクラッチパッドレジスタ(U0SCR 0x4000 801C)................................................................117 9.6.12 UART 自動通信速度設定制御レジスタ(U0ACR 0x4000 8020)................................................................117 9.6.13 自動通信速度設定....................................................... 118 自動通信速度設定モード ......................................... 119 9.6.14 9.6.15 UART 分数分周器レジスタ(U0FDR 0x4000 8028)................................................................120 9.6.15.1 ボーレートの計算....................................................... 122 9.6.15.1.1 例 1: UART_PCLK = 14.7456 MHz、BR = 9600.. 124 9.6.15.1.2 例 2: UART_PCLK = 12 MHz、BR = 115200........ 124 9.6.16 UART 送信イネーブルレジスタ(U0TER 0x4000 8030)................................................................124 9.6.17 UART RS485 制御レジスタ(U0RS485CTRL 0x4000 804C)................................................................125 9.6.18 UART RS-485 アドレスマッチレジスタ (U0RS485ADRMATCH - 0x4000 8050).................126 9.6.19 UART1 RS-485 遅延値レジスタ(U0RS485DLY 0x4000 8054)................................................................126 9.6.20 RS-485/EIA-485 の動作モード ................................ 127 9.7 アーキテクチャ.................................................. 128 9.6.8.1.2 9.6.9 © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 407 A 6.1 6.2 6.3 6.3.1 6.3.2 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 A F FT FT A A R R D D D D FT FT A A R R D D D R A D R A 408 FT © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 R FT FT FT その他の状態 ................................................................ 163 I2STAT = 0xF8 ................................................................163 I2STAT = 0x00................................................................164 いくつかの特殊なケース ......................................... 164 同時に 2 つのマスタからの Repeated START 状態 164 10.11.6.2 アービトレーションロスト後のデータ転送 .... 165 10.11.6.3 I2C バスへの強制アクセス....................................... 165 10.11.6.4 SCL または SDA 上の LOW レベルによって妨害 される I2C バス .............................................................166 10.11.6.5 バスエラー..................................................................... 167 10.11.7 I2C 状態サービスルーチン....................................... 167 10.11.8 初期化.............................................................................. 167 10.11.9 I2C 割り込みサービス................................................ 167 10.11.10 状態サービスルーチン.............................................. 167 10.11.11 状態サービスをアプリケーションに適合させる .. 168 10.12 ソフトウェア例.................................................. 168 10.12.1 初期化ルーチン ........................................................... 168 10.12.2 マスタ送信機能の開始.............................................. 168 10.12.3 マスタ受信機能の開始.............................................. 168 10.12.4 I2C 割り込みルーチン................................................ 169 10.12.5 モード共通の状態....................................................... 169 10.12.5.1 状態 : 0x00 ......................................................................169 10.12.5.2 マスタの状態 ................................................................ 169 10.12.5.3 状態 : 0x08 ......................................................................169 10.12.5.4 状態 : 0x10 ......................................................................169 10.12.6 マスタトランスミッタの状態................................ 170 10.12.6.1 状態 : 0x18 ......................................................................170 10.12.6.2 状態 : 0x20 ......................................................................170 10.12.6.3 状態 : 0x28 ......................................................................170 10.12.6.4 状態 : 0x30 ......................................................................170 10.12.6.5 状態 : 0x38 ......................................................................171 10.12.7 マスタレシーバの状態.............................................. 171 10.12.7.1 状態 : 0x40 ......................................................................171 10.12.7.2 状態 : 0x48 ......................................................................171 10.12.7.3 状態 : 0x50 ......................................................................171 10.12.7.4 状態 : 0x58 ......................................................................171 10.12.8 スレーブレシーバの状態 ......................................... 172 10.12.8.1 状態 : 0x60 ......................................................................172 10.12.8.2 状態 : 0x68 ......................................................................172 10.12.8.3 状態 : 0x70 ......................................................................172 10.12.8.4 状態 : 0x78 ......................................................................172 10.12.8.5 状態 : 0x80 ......................................................................173 10.12.8.6 状態 : 0x88 ......................................................................173 10.12.8.7 状態 : 0x90 ......................................................................173 10.12.8.8 状態 : 0x98 ......................................................................173 10.12.8.9 状態 : 0xA0......................................................................174 10.12.9 スレーブトランスミッタの状態 ........................... 174 10.12.9.1 状態 : 0xA8......................................................................174 10.12.9.2 状態 : 0xB0 ......................................................................174 10.12.9.3 状態 : 0xB8 ......................................................................174 10.12.9.4 状態 : 0xC0......................................................................175 10.12.9.5 状態 : 0xC8......................................................................175 10.11.5 10.11.5.1 10.11.5.2 10.11.6 10.11.6.1 UM10398_0 ユーザーマニュアル A A A この章を読む前に .............................................. 131 基本構成 ............................................................. 131 特長..................................................................... 131 用途..................................................................... 132 概説..................................................................... 132 I2C Fast モードプラス................................................ 133 ピンの説明.......................................................... 133 クロックと電力の制御 ....................................... 133 レジスタの説明 .................................................. 133 I2C 制御設定レジスタ(I2C0CONSET 0x4000 0000)................................................................ 134 10.8.2 I2C ステータスレジスタ(I2C0STAT 0x4000 0004)................................................................ 136 10.8.3 I2C データレジスタ(I2C0DAT - 0x4000 0008)137 10.8.4 I2C スレーブアドレスレジスタ 0(I2C0ADR00x4000 000C)............................................................... 137 10.8.5 I2C SCL HIGH および LOW デューティサイクルレ ジスタ(I2C0SCLH - 0x4000 0010 および I2C0SCLL- 0x4000 0014).......................................... 137 10.8.5.1 適切な I2C データ速度およびデューティサイクル の選択.............................................................................. 138 10.8.6 I2C 制御クリアレジスタ(I2C0CONCLR 0x4000 0018)................................................................ 138 10.8.7 I2C モニターモード制御レジスタ(I2C0MMCTRL 0x4000 001C)............................................................... 139 10.8.7.1 モニターモードでの割り込み................................ 140 10.8.7.2 モニターモードでのアービトレーションロスト .. 141 10.8.8 I2C スレーブアドレスレジスタ(I2C0ADR[1, 2, 3] 0x4000 00[20, 24, 28])............................................... 141 10.8.9 I2C データバッファレジスタ(I2C0DATA_BUFFER - 0x4000 002C)............................................................. 141 10.8.10 I2C マスクレジスタ(I2C0MASK[0, 1, 2, 3] 0x4000 00[30, 34, 38, 3C])........................................ 142 10.9 I2C の動作モード................................................ 142 10.9.1 マスタトランスミッタモード................................ 143 10.9.2 マスタレシーバモード.............................................. 144 10.9.3 スレーブレシーバモード ......................................... 144 スレーブトランスミッタモード ........................... 145 10.9.4 10.10 I2C の実装と動作................................................ 147 10.10.1 入力フィルタと出力ステージ................................ 148 10.10.2 アドレスレジスタ、I2ADDR0 ∼ I2ADDR3....... 148 10.10.3 アドレスマスクレジスタ、I2MASK0 ∼ I2MASK3 . 148 10.10.4 コンパレータ ................................................................ 148 10.10.5 シフトレジスタ、I2DAT .......................................... 148 10.10.6 アービトレーションと同期化のロジック......... 149 10.10.7 シリアルクロックジェネレータ ........................... 150 10.10.8 タイミングと制御....................................................... 150 10.10.9 制御レジスタ、I2CONSET および I2CONCLR .. 150 10.10.10 ステータスデコーダとステータスレジスタ .... 151 10.11 I2C の動作モードの詳細..................................... 151 10.11.1 マスタトランスミッタモード................................ 152 10.11.2 マスタレシーバモード.............................................. 155 10.11.3 スレーブレシーバモード ......................................... 156 10.11.4 スレーブトランスミッタモード ........................... 161 R R R 10.1 10.2 10.3 10.4 10.5 10.5.1 10.6 10.7 10.8 10.8.1 D D D 第 10 章 : LPC111x/LPC11C1x I2C バスインターフェース FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 FT FT A A R D D R A R A 409 D © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 FT 12.8.2.4.9 CAN メッセージインターフェースデータ B2 レジ スタ .................................................................................. 211 メッセージハンドラのレジスタ ........................... 211 12.8.3 12.8.3.1 CAN 送信要求 1 レジスタ ........................................ 211 12.8.3.2 CAN 送信要求 2 レジスタ ........................................ 212 12.8.3.3 CAN 新規データ 1 レジスタ ................................... 212 12.8.3.4 CAN 新規データ 2 レジスタ ................................... 213 12.8.3.5 CAN 割り込み保留 1 レジスタ............................... 213 12.8.3.6 CAN 割り込み保留 2 レジスタ............................... 214 12.8.3.7 CAN メッセージ有効 1 レジスタ .......................... 214 12.8.3.8 CAN メッセージ有効 2 レジスタ .......................... 214 12.8.4 CAN タイミングレジスタ ........................................ 215 12.8.4.1 CAN クロック分周器レジスタ ............................... 215 12.9 機能説明 ............................................................. 215 12.9.1 リセット後の C_CAN コントローラの状態 ...... 215 12.9.2 C_CAN の動作モード................................................. 216 12.9.2.1 ソフトウェアによる初期化..................................... 216 12.9.2.2 CAN メッセージの転送............................................. 216 12.9.2.3 自動再送信ディスエーブルモード(DAR)....... 217 12.9.2.4 テストモード ................................................................ 217 12.9.2.4.1 サイレントモード...................................................... 217 12.9.2.4.2 ループバックモード ................................................. 218 12.9.2.4.3 ループバックモードとサイレントモードとの組 み合せ ............................................................................. 219 12.9.2.4.4 ベーシックモード...................................................... 219 12.9.2.4.5 CAN_TX ピンのソフトウェア制御 ...................... 220 12.9.3 CAN メッセージハンドラ ........................................ 220 12.9.3.1 メッセージオブジェクトの管理 ........................... 221 12.9.3.2 IFx レジスタとメッセージ RAM 間でのデータ転 送........................................................................................222 12.9.3.3 CAN コアのシフトレジスタとメッセージバッ ファ間でのメッセージの送信 ................................222 12.9.3.4 受信メッセージの受信フィルタリング.............. 222 12.9.3.4.1 データフレームの受信............................................. 223 12.9.3.4.2 リモートフレームの受信 ........................................ 223 12.9.3.5 受信 / 送信の優先順位 .............................................. 224 12.9.3.6 送信オブジェクトの設定 ......................................... 224 12.9.3.7 送信オブジェクトの更新 ......................................... 224 12.9.3.8 受信オブジェクトの設定 ......................................... 225 UM10398_0 ユーザーマニュアル F D D この章を読む前に .............................................. 192 基本構成 ............................................................. 192 特長..................................................................... 192 概説..................................................................... 192 ピンの説明.......................................................... 193 クロックと電力の制御 ....................................... 193 リセットと割り込みの設定................................ 194 レジスタの説明 .................................................. 194 CAN プロトコルレジスタ ........................................ 196 CAN 制御レジスタ...................................................... 196 CAN ステータスレジスタ ........................................ 197 CAN エラーカウンタ ................................................. 199 CAN ビットタイミングレジスタ .......................... 200 CAN 割り込みレジスタ............................................. 201 CAN テストレジスタ ................................................. 201 CAN ボーレートプリスケーラ拡張レジスタ ... 202 メッセージインターフェースレジスタ ............. 203 メッセージオブジェクト ......................................... 203 CAN メッセージインターフェースコマンド要求 レジスタ ......................................................................... 204 12.8.2.3 CAN メッセージインターフェースコマンドマス クレジスタ .................................................................... 204 12.8.2.4 IF1 および IF2 メッセージバッファレジスタ... 207 12.8.2.4.1 CAN メッセージインターフェースコマンドマス ク 1 レジスタ ............................................................... 207 12.8.2.4.2 CAN メッセージインターフェースコマンドマス ク 2 レジスタ ............................................................... 207 12.8.2.4.3 CAN メッセージインターフェースコマンドアー ビトレーション 1 レジスタ ................................... 208 12.8.2.4.4 CAN メッセージインターフェースコマンドアー ビトレーション 2 レジスタ ................................... 208 12.8.2.4.5 CAN メッセージインターフェースメッセージ制 御レジスタ ................................................................... 209 12.8.2.4.6 CAN メッセージインターフェースデータ A1 レ ジスタ............................................................................. 210 12.8.2.4.7 CAN メッセージインターフェースデータ A2 レ ジスタ............................................................................. 210 12.8.2.4.8 CAN メッセージインターフェースデータ B1 レジ スタ ................................................................................. 211 A FT FT A A R R D D D 11.7.8 SPI/SSP マスク割り込みステータスレジスタ.. 184 11.7.9 SPI/SSP 割り込みクリアレジスタ......................... 184 11.8 機能説明 ............................................................. 185 11.8.1 Texas Instruments 同期シリアルフレーム形式185 11.8.2 SPI フレーム形式......................................................... 185 11.8.2.1 クロック極性(CPOL)とクロック位相(CPHA) の制御 ..............................................................................186 11.8.2.2 SPI 形式(CPOL=0、CPHA=0 の場合)................ 186 11.8.2.3 SPI 形式(CPOL=0、CPHA=1 の場合)................ 187 11.8.2.4 SPI 形式(CPOL = 1、CPHA = 0 の場合)............ 188 11.8.2.5 SPI 形式(CPOL = 1、CPHA = 1 の場合)............ 189 11.8.3 Semiconductor Microwire フレーム形式 ........... 190 11.8.3.1 Microwire モードの SK に対する CS のセットアッ プ / ホールドタイム要件 ..........................................191 第 12 章 : LPC11C1x C_CAN 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.8.1 12.8.1.1 12.8.1.2 12.8.1.3 12.8.1.4 12.8.1.5 12.8.1.6 12.8.1.7 12.8.2 12.8.2.1 12.8.2.2 R FT FT FT A A A 11.7.7 この章を読む前に .............................................. 176 基本構成 ............................................................. 176 特長..................................................................... 176 概要..................................................................... 176 ピンの説明.......................................................... 177 クロックと電力の制御 ....................................... 178 レジスタの説明 .................................................. 178 SPI/SSP 制御レジスタ 0............................................ 179 SPI/SSP0 制御レジスタ 1 ......................................... 180 SPI/SSP データレジスタ ........................................... 181 SPI/SSP ステータスレジスタ .................................. 181 SPI/SSP クロックプリスケールレジスタ ........... 182 SPI/SSP 割り込みマスクセット / クリアレジスタ 182 SPI/SSP 原割り込みステータスレジスタ ........... 183 R R R 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.7.1 11.7.2 11.7.3 11.7.4 11.7.5 11.7.6 D D D 第 11 章 : LPC111x/LPC11C1x SSP 機能搭載 SPI0/1 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 割り込みの処理 ........................................................... 228 ビットタイミング....................................................... 229 ビット時間とビットレート..................................... 230 13.4.9 13.4.10 13.4.11 13.4.12 13.4.13 13.4.14 13.4.15 CAN/CANopen コールバック関数........................ 238 CAN メッセージ受信コールバック...................... 239 CAN メッセージ送信コールバック...................... 239 CAN エラーコールバック ........................................ 240 CANopen SDO 高速読み取りコールバック ...... 240 CANopen SDO 高速書き込みコールバック ...... 241 CANopen SDO セグメント読み取りコールバック 242 CANopen SDO セグメント書き込みコールバック 243 CANopen フォールバック SDO ハンドラコール バック ..............................................................................244 R A F FT FT A A R R D D 12.9.4 12.9.5 12.9.5.1 D D FT FT A A R R D 12.9.3.9 受信メッセージの処理.............................................. 225 12.9.3.10 FIFO バッファの設定 ................................................. 226 12.9.3.10.1FIFO バッファによるメッセージ受信................ 226 12.9.3.10.2FIFO バッファからの読み取り.............................. 227 FT FT FT FT 第 22 章:LPC111x 補足情報 D D 第 13 章 : LPC11C1x C_CAN オンチップドライバ R A 第 14 章 : LPC111x/LPC11C1x 16 ビットカウンタ / タイマ(CT16B0/1) 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.8.1 14.8.2 14.8.3 14.8.4 14.8.5 この章を読む前に .............................................. 246 基本構成 ............................................................. 246 特長..................................................................... 246 用途..................................................................... 247 説明..................................................................... 247 ピンの説明.......................................................... 247 クロックと電力の制御 ....................................... 247 レジスタの説明 .................................................. 248 割り込みレジスタ(TMR16B0IR および TMR16B1IR).................................................................. 249 タイマ制御レジスタ(TMR16B0TCR および TMR16B1TCR).............................................................. 250 タイマカウンタ(TMR16B0TC - アドレス 0x4000 C008、TMR16B1TC - アドレス 0x4001 0008)250 プリスケールレジスタ(TMR16B0PR - アドレス 0x4000 C00C、TMR16B1PR - アドレス 0x4001 000C)............................................................... 250 プリスケールカウンタレジスタ(TMR16B0PC アドレス 0x4000 C010、TMR16B1PC - アドレス 0x4001 0010)................................................................ 251 14.8.6 14.8.7 14.8.8 14.8.9 14.8.10 14.8.11 14.8.12 14.8.13 14.9 14.10 マッチ制御レジスタ(TMR16B0MCR および TMR16B1MCR)..............................................................251 マッチレジスタ(TMR16B0MR0/1/2/3 - アドレス 0x4000 C018/1C/20/24、TMR16B1MR0/1/2/3 - ア ドレス 0x4001 0018/1C/20/24).............................252 キャプチャ制御レジスタ(TMR16B0CCR および TMR16B1CCR)...............................................................252 キャプチャレジスタ(CT16B0CR0 - アドレス 0x4000 C02C、CT16B1CR0 - アドレス 0x4001 002C)................................................................................252 外部マッチレジスタ(TMR16B0EMR および TMR16B1EMR)..............................................................253 カウント制御レジスタ(TMR16B0CTCR および TMR16B1CTCR)............................................................254 PWM 制御レジスタ(TMR16B0PWMC および TMR16B1PWMC)..........................................................255 シングルエッジ制御の PWM 出力のルール ..... 256 タイマ動作の例.................................................. 257 アーキテクチャ.................................................. 259 第 15 章 : LPC111x/LPC11C1x 32 ビットカウンタ / タイマ(CT32B0/1) 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.8.1 15.8.2 15.8.3 この章を読む前に .............................................. 260 基本構成 ............................................................. 260 特長..................................................................... 260 用途..................................................................... 261 説明..................................................................... 261 ピンの説明.......................................................... 261 クロックと電力の制御 ....................................... 261 レジスタの説明 .................................................. 262 割り込みレジスタ(TMR32B0IR および TMR32B1IR).................................................................. 263 タイマ制御レジスタ(TMR32B0TCR および TMR32B1TCR).............................................................. 264 タイマカウンタ(TMR32B0TC - アドレス 15.8.4 15.8.5 15.8.6 15.8.7 © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル 0x4001 4008、TMR32B1TC - アドレス 0x4001 8008)................................................................264 プリスケールレジスタ(TMR32B0PR - アドレス 0x4001 400C、TMR32B1PR - アドレス 0x4001 800C)................................................................264 プリスケールカウンタレジスタ(TMR32B0PC アドレス 0x4001 4010、TMR32B1PC - アドレス 0x4001 8010)................................................................265 マッチ制御レジスタ(TMR32B0MCR および TMR32B1MCR)..............................................................265 マッチレジスタ(TMR32B0MR0/1/2/3 - アドレス 0x4001 4018/1C/20/24、TMR32B1MR0/1/2/3 アド レス 0x4001 8018/1C/20/24)..................................266 Rev. 00.15 — 2010 / 9 / 28 410 A 13.4.17 R 13.4.16 D この章を読む前に .............................................. 232 特長..................................................................... 232 概要..................................................................... 232 完全準拠の CANopen との相違............................. 232 API の説明.......................................................... 233 C_CAN API の呼び出し.............................................. 233 CAN 初期化.................................................................... 234 CAN 割り込みハンドラ............................................. 234 CAN Rx メッセージオブジェクトの設定 ........... 235 CAN 受信 ........................................................................ 235 CAN 送信 ........................................................................ 236 CANopen 設定.............................................................. 236 CANopen ハンドラ..................................................... 238 FT 13.1 13.2 13.3 13.3.1 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.4.5 13.4.6 13.4.7 13.4.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 参考資料 D D R A 16.8 17.6.2 17.6.3 17.6.4 17.7 18.6.4 18.6.5 18.7 18.7.1 18.7.2 18.7.3 19.4.5 19.4.6 19.4.7 19.4.8 19.4.9 19.5 19.5.1 19.5.2 19.5.3 19.5.4 19.5.5 19.5.6 282 システムタイマリロード値レジスタ .................. 282 システムタイマ現在値レジスタ ........................... 282 システムタイマ校正値レジスタ(SYST_CALIB 0xE000 E01C)................................................................283 タイマ計算の例.................................................. 283 0x4001 C030)................................................................288 A/D 割り込みイネーブルレジスタ(AD0INTEN 0x4001 C00C)................................................................289 A/D データレジスタ(AD0DR0 ∼ AD0DR7 0x4001 C010 ∼ 0x4001 C02C)...............................289 動作 .................................................................... 290 ハードウェアトリガによる変換 ........................... 290 割り込み ......................................................................... 290 精度とデジタルレシーバ ......................................... 290 UART SP コマンドのアボート ................................ 299 UART ISP 実行時の割り込み.................................... 299 IAP 実行時の割り込み ............................................... 299 ISP コマンドハンドラで使用される RAM..........299 IAP コマンドハンドラで使用される RAM .........300 UART ISP コマンド........................................... 300 Unlock < アンロックコード >(UART ISP)....... 301 Set Baud Rate < ボーレート > < ストップビット > (UART ISP).....................................................................301 Echo < 設定 >(UART ISP)...................................... 301 Write to RAM < 開始アドレス > < バイト数 > (UART ISP).....................................................................302 Read Memory < アドレス > < バイト数 >(UART ISP)....................................................................................303 Prepare sector(s) for write operation < 開始セクタ 番号 > < 終了セクタ番号 >(UART ISP).............304 © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル Rev. 00.15 — 2010 / 9 / 28 FT この章を読む前に .............................................. 291 特長..................................................................... 291 概説..................................................................... 291 ブートローダ ................................................................ 291 リセット後のメモリマップ .................................... 292 有効なユーザーコードの基準................................ 292 ブートプロセスフローチャート ........................... 294 セクタ番号..................................................................... 295 フラッシュコンテンツ保護メカニズム ............. 295 Code Read Protection(CRP)................................. 296 ISP エントリの保護 .................................................... 298 UART 通信プロトコル ....................................... 298 UART ISP コマンド形式............................................. 298 UART ISP 応答形式...................................................... 298 UART ISP データ形式 ................................................. 299 UART ISP フロー制御 ................................................. 299 D A 16.7.4 第 19 章 : LPC111x/LPC11C1x フラッシュメモリプログラミングファームウェア 19.1 19.2 19.3 19.3.1 19.3.2 19.3.3 19.3.4 19.3.5 19.3.6 19.3.7 19.3.7.1 19.4 19.4.1 19.4.2 19.4.3 19.4.4 F R 18.6.3 この章を読む前に .............................................. 284 基本構成 ............................................................. 284 特長..................................................................... 284 ピンの説明.......................................................... 284 クロックと電力の制御 ....................................... 285 レジスタの説明 .................................................. 285 A/D 制御レジスタ(AD0CR - 0x4001 C000)..... 286 A/D グローバルデータレジスタ(AD0GDR 0x4001 C004)............................................................... 287 A/D ステータスレジスタ(AD0STAT - A D 16.7.3 0x4000 0000)................................................................276 ウォッチドッグタイマ定数レジスタ(WDTC 0x4000 4004)................................................................278 ウォッチドッグリフレッシュレジスタ(WDFEED - 0x4000 4008)..............................................................278 ウォッチドッグタイマ値レジスタ(WDTV 0x4000 400C)................................................................278 ブロック図 ......................................................... 279 第 18 章 : LPC111x/LPC11C1x A/D コンバータ(ADC) 18.1 18.2 18.3 18.4 18.5 18.6 18.6.1 18.6.2 FT FT この章を読む前に .............................................. 280 基本構成 ............................................................. 280 特長..................................................................... 280 説明..................................................................... 280 動作..................................................................... 281 レジスタの説明 .................................................. 281 システムタイマ制御およびステータスレジスタ .. A A 16.7.2 第 17 章 : LPC111x/LPC11C1x システム tick タイマ 17.1 17.2 17.3 17.4 17.5 17.6 17.6.1 R R この章を読む前に .............................................. 274 基本構成 ............................................................. 274 特長..................................................................... 274 用途..................................................................... 275 説明..................................................................... 275 クロックと電力の制御 ....................................... 275 レジスタの説明 .................................................. 276 ウォッチドッグモードレジスタ(WDMOD - R D D 第 16 章 : LPC111x/LPC11C1x ウォッチドッグタイマ(WDT) 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.7.1 D FT FT A A R R D D カウント制御レジスタ(TMR32B0CTCR および TMR32B1CTCR)............................................................268 15.8.12 PWM 制御レジスタ(TMR32B0PWMC および TMR32B1PWMC)..........................................................269 15.8.13 シングルエッジ制御の PWM 出力のルール ..... 270 15.9 タイマ動作の例.................................................. 271 15.10 アーキテクチャ.................................................. 273 15.8.11 R FT FT FT A A A 15.8.10 R R R 15.8.9 キャプチャ制御レジスタ(TMR32B0CCR および TMR32B1CCR).............................................................. 266 キャプチャレジスタ(TMR32B0CR0 - アドレス 0x4001 402C、TMR32B1CR0 - アドレス 0x4001 802C)............................................................................... 266 外部マッチレジスタ(TMR32B0EMR および TMR32B1EMR)............................................................. 267 D D D 15.8.8 FT FT FT FT 第 22 章:LPC111x 補足情報 411 D D R R R R R A A A UM10398 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 D R FT FT A A R D D R A © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 412 A 21.3.5.2.2 21.3.5.3 R 21.3.2.5 21.3.2.5.1 21.3.3 21.3.3.1 21.3.3.2 21.3.3.3 21.3.3.4 21.3.3.5 21.3.3.6 21.3.3.6.1 21.3.3.6.2 21.3.4 21.3.4.1 21.3.5 21.3.5.1 21.3.5.1.1 21.3.5.1.2 21.3.5.1.3 21.3.5.2 21.3.5.2.1 メモリアクセスの動作.............................................. 334 ソフトウェアによるメモリアクセスの順序付け .. 335 メモリエンディアン .................................................. 336 リトルエンディアン形式 ........................................ 336 例外モデル..................................................................... 337 例外状態 ......................................................................... 337 例外のタイプ ................................................................ 337 例外ハンドラ ................................................................ 338 ベクタテーブル ........................................................... 339 例外の優先順位 ........................................................... 339 例外のエントリとリターン..................................... 340 例外のエントリ .......................................................... 340 例外リターン ............................................................... 342 障害処理 ......................................................................... 342 ロックアップ ................................................................ 343 パワーマネージメント.............................................. 343 スリープモードへの移行 ......................................... 343 割り込みの待機 .......................................................... 344 イベント待機 ............................................................... 344 Sleep-on-exit ................................................................ 344 スリープモードからのウェイクアップ.............. 344 WFI または sleep-on-exit からのウェイクアップ.. 344 WFE からのウェイクアップ................................... 344 パワーマネージメントプログラミング上のヒン D 21.3.2.3 21.3.2.4 FT 説明 .................................................................... 321 ピンの説明 ......................................................... 321 デバッグ上の注意 .............................................. 322 UM10398_0 ユーザーマニュアル A FT D 20.4 20.5 20.6 第 21 章 : 付録 LPC111x/LPC11C1x ARM Cortex-M0 リファレンス 21.1 概要..................................................................... 323 21.2 Cortex-M0 プロセッサとコアペリフェラル ..... 323 21.2.1 システムレベルインターフェース....................... 324 設定可能なデバッグ機能の搭載 ........................... 324 21.2.2 21.2.3 Cortex-M0 プロセッサの特長の概要................... 324 21.2.4 Cortex-M0 コアペリフェラル................................. 325 21.3 プロセッサ.......................................................... 325 21.3.1 プログラマモデル....................................................... 325 21.3.1.1 プロセッサモード....................................................... 325 21.3.1.2 スタック ......................................................................... 325 21.3.1.3 コアレジスタ ................................................................ 326 21.3.1.3.1 汎用レジスタ ............................................................... 327 21.3.1.3.2 スタックポインタ...................................................... 327 21.3.1.3.3 ...........................................................リンクレジスタ 327 21.3.1.3.4 プログラムカウンタ ................................................. 327 21.3.1.3.5 プログラムステータスレジスタ .......................... 327 21.3.1.3.6 例外マスクレジスタ ................................................. 330 21.3.1.3.7 CONTROL レジスタ ................................................... 330 21.3.1.4 例外と割り込み ........................................................... 331 21.3.1.5 データタイプ ................................................................ 331 21.3.1.6 Cortex マイクロコントローラソフトウェアイン ターフェース規格....................................................... 331 21.3.2 メモリモデル ................................................................ 332 21.3.2.1 メモリ領域、タイプ、属性 .................................... 333 21.3.2.2 メモリシステムによるメモリアクセスの順序付 け ....................................................................................... 334 R A FT この章を読む前に .............................................. 321 特長..................................................................... 321 概要..................................................................... 321 R R A 第 20 章 : LPC111x/LPC11C1x シリアルワイヤデバッグ(SWD) 20.1 20.2 20.3 D D R 19.6.7 19.6.8 19.6.9 19.6.10 Blank check sectors(C_CAN ISP)......................... 311 19.6.11 Read PartID(C_CAN ISP)........................................ 312 19.6.12 Read boot code version(C_CAN ISP)................ 312 19.6.13 Read serial number(C_CAN ISP)......................... 312 19.6.14 Compare(C_CAN ISP)............................................. 312 19.6.15 C_CAN ISP SDO アボートコード ........................... 312 19.6.16 完全準拠の CANopen との相違............................. 313 19.7 IAP コマンド...................................................... 313 19.7.1 Prepare sector(s) for write operation(IAP)...... 315 19.7.2 Copy RAM to flash(IAP)......................................... 316 19.7.3 Erase Sector(s)(IAP)................................................. 316 19.7.4 Blank check sector(s)(IAP).................................... 317 19.7.5 Read Part Identification number(IAP).............. 317 19.7.6 Read Boot code version number(IAP).............. 317 19.7.7 Compare < アドレス 1> < アドレス 2> < バイト 数 >(IAP)......................................................................318 19.7.8 Reinvoke ISP(IAP).................................................... 318 19.7.9 ReadUID(IAP)............................................................. 318 19.7.10 IAP ステータスコード ............................................... 319 19.8 デバッグ上の注意 .............................................. 319 19.8.1 フラッシュイメージの比較..................................... 319 シリアルワイヤデバッグ(SWD)フラッシュプ 19.8.2 ログラミングインターフェース ............................320 19.9 フラッシュメモリへのアクセス ........................ 320 D 19.5.14 19.5.15 19.6 19.6.1 19.6.2 19.6.3 19.6.4 19.6.5 19.6.6 FT FT FT 19.5.11 19.5.12 19.5.13 A A A 19.5.10 R R R 19.5.8 19.5.9 Copy RAM to flash < フラッシュアドレス > <RAM アドレス > < バイト数 >(UART ISP)................ 304 Go < アドレス > < モード >(UART ISP).......... 305 Erase sector(s) < 開始セクタ番号 > < 終了セクタ 番号 >(UART ISP)..................................................... 305 Blank check sector(s) < セクタ番号 > < 終了セク タ番号 >(UART ISP)................................................ 306 Read Part Identification number(UART ISP).. 306 Read Boot code version number(UART ISP).. 307 Compare < アドレス 1> < アドレス 2> < バイト 数 >(UART ISP).......................................................... 307 ReadUID(UART ISP)................................................. 307 UART ISP リターンコード ........................................ 308 C_CAN 通信プロトコル..................................... 309 C_CAN ISP SDO の通信 ............................................. 309 C_CAN ISP オブジェクトディレクトリ .............. 310 Unlock(C_CAN ISP)................................................. 311 Write to RAM(C_CAN ISP)..................................... 311 Read memory(C_CAN ISP)................................... 311 Prepare sectors for write operation(C_CAN ISP). 311 Copy RAM to flash(C_CAN ISP)........................... 311 Go(C_CAN ISP).......................................................... 311 Erase sectors(C_CAN ISP)...................................... 311 D D D 19.5.7 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 D D FT FT A A R R D D D R A D R A 413 FT Rev. 00.15 — 2010 / 9 / 28 R FT FT FT A A A 演算 ................................................................................. 361 制限 ................................................................................. 361 例 ...................................................................................... 362 AND、ORR、EOR、BIC..............................................362 構文 ................................................................................. 362 演算 ................................................................................. 363 制限 ................................................................................. 363 条件フラグ.................................................................... 363 例 ...................................................................................... 363 ASR、LSL、LSR、ROR................................................363 構文 ................................................................................. 363 演算 ................................................................................. 364 制限 ................................................................................. 364 条件フラグ.................................................................... 364 例 ...................................................................................... 364 CMP と CMN ..................................................................364 構文 ................................................................................. 365 演算 ................................................................................. 365 制限 ................................................................................. 365 条件フラグ.................................................................... 365 例 ...................................................................................... 365 MOV と MVN..................................................................365 構文 ................................................................................. 365 演算 ................................................................................. 366 制限 ................................................................................. 366 条件フラグ.................................................................... 366 例 ...................................................................................... 366 MULS.................................................................................367 構文 ................................................................................. 367 演算 ................................................................................. 367 制限 ................................................................................. 367 条件フラグ.................................................................... 367 例 ...................................................................................... 367 REV、REV16、REVSH..................................................367 構文 ................................................................................. 367 演算 ................................................................................. 368 制限 ................................................................................. 368 条件フラグ.................................................................... 368 例 ...................................................................................... 368 SXT と UXT......................................................................368 構文 ................................................................................. 368 演算 ................................................................................. 368 制限 ................................................................................. 369 条件フラグ.................................................................... 369 例 ...................................................................................... 369 TST .....................................................................................369 構文 ................................................................................. 369 演算 ................................................................................. 369 制限 ................................................................................. 369 条件フラグ.................................................................... 369 例 ...................................................................................... 370 分岐と制御命令 ........................................................... 370 B、BL、BX、BLX..........................................................370 構文 ................................................................................. 370 演算 ................................................................................. 370 制限 ................................................................................. 371 条件フラグ.................................................................... 371 例 ...................................................................................... 371 © NXP B.V. 2010. All rights reserved. UM10398_0 ユーザーマニュアル R R R 21.4.5.1.2 21.4.5.1.3 21.4.5.1.4 21.4.5.2 21.4.5.2.1 21.4.5.2.2 21.4.5.2.3 21.4.5.2.4 21.4.5.2.5 21.4.5.3 21.4.5.3.1 21.4.5.3.2 21.4.5.3.3 21.4.5.3.4 21.4.5.3.5 21.4.5.4 21.4.5.4.1 21.4.5.4.2 21.4.5.4.3 21.4.5.4.4 21.4.5.4.5 21.4.5.5 21.4.5.5.1 21.4.5.5.2 21.4.5.5.3 21.4.5.5.4 21.4.5.5.5 21.4.5.6 21.4.5.6.1 21.4.5.6.2 21.4.5.6.3 21.4.5.6.4 21.4.5.6.5 21.4.5.7 21.4.5.7.1 21.4.5.7.2 21.4.5.7.3 21.4.5.7.4 21.4.5.7.5 21.4.5.8 21.4.5.8.1 21.4.5.8.2 21.4.5.8.3 21.4.5.8.4 21.4.5.8.5 21.4.5.9 21.4.5.9.1 21.4.5.9.2 21.4.5.9.3 21.4.5.9.4 21.4.5.9.5 21.4.6 21.4.6.1 21.4.6.1.1 21.4.6.1.2 21.4.6.1.3 21.4.6.1.4 21.4.6.1.5 D D D ト ....................................................................................... 345 21.4 命令セット.......................................................... 345 21.4.1 命令セットの概要....................................................... 345 21.4.2 組み込み関数 ................................................................ 347 21.4.3 命令の説明について .................................................. 348 21.4.3.1 オペランド..................................................................... 348 21.4.3.2 PC または SP の使用時の制限................................ 348 21.4.3.3 シフト演算..................................................................... 349 21.4.3.3.1 ASR................................................................................... 349 21.4.3.3.2 LSR ................................................................................... 349 21.4.3.3.3 LSL.................................................................................... 350 21.4.3.3.4 ROR.................................................................................. 351 21.4.3.4 アドレスアライメント.............................................. 351 21.4.3.5 PC 相対式 ....................................................................... 351 21.4.3.6 条件付き実行 ................................................................ 352 21.4.3.6.1 条件フラグ.................................................................... 352 21.4.3.6.2 条件コードのサフィックス ................................... 353 21.4.4 メモリアクセス命令 .................................................. 353 21.4.4.1 ADR................................................................................... 354 21.4.4.1.1 構文 ................................................................................. 354 21.4.4.1.2 演算 ................................................................................. 354 21.4.4.1.3 制限 ................................................................................. 354 21.4.4.1.4 条件フラグ.................................................................... 354 21.4.4.1.5 例 ...................................................................................... 354 21.4.4.2 LDR と STR、イミディエートオフセット ......... 354 21.4.4.2.1 構文 ................................................................................. 354 21.4.4.2.2 演算 ................................................................................. 355 21.4.4.2.3 制限 ................................................................................. 355 21.4.4.2.4 条件フラグ.................................................................... 355 21.4.4.2.5 例 ...................................................................................... 355 21.4.4.3 LDR と STR、レジスタオフセット ....................... 355 21.4.4.3.1 構文 ................................................................................. 356 21.4.4.3.2 演算 ................................................................................. 356 21.4.4.3.3 制限 ................................................................................. 356 21.4.4.3.4 条件フラグ.................................................................... 356 21.4.4.3.5 例 ...................................................................................... 356 21.4.4.4 LDR、PC 相対 ............................................................... 357 21.4.4.4.1 構文 ................................................................................. 357 21.4.4.4.2 演算 ................................................................................. 357 21.4.4.4.3 制限 ................................................................................. 357 21.4.4.4.4 条件フラグ.................................................................... 357 21.4.4.4.5 例 ...................................................................................... 357 21.4.4.5 LDM と STM .................................................................. 357 21.4.4.5.1 構文 ................................................................................. 357 21.4.4.5.2 演算 ................................................................................. 358 21.4.4.5.3 制限 ................................................................................. 358 21.4.4.5.4 条件フラグ.................................................................... 358 21.4.4.5.5 例 ...................................................................................... 358 21.4.4.5.6 間違った例.................................................................... 358 21.4.4.6 PUSH と POP................................................................. 358 21.4.4.6.1 構文 ................................................................................. 359 21.4.4.6.2 演算 ................................................................................. 359 21.4.4.6.3 制限 ................................................................................. 359 21.4.4.6.4 条件フラグ.................................................................... 359 21.4.4.6.5 例 ...................................................................................... 359 21.4.5 一般的なデータ処理命令 ......................................... 359 21.4.5.1 ADC、ADD、RSB、SBC、SUB ............................... 360 21.4.5.1.1 構文 ................................................................................. 360 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 A F R FT FT A A R D D R A A 414 R © NXP B.V. 2010. All rights reserved. Rev. 00.15 — 2010 / 9 / 28 D 法律情報 ............................................................. 398 定義 ..................................................................................398 FT 22.3 22.3.1 UM10398_0 ユーザーマニュアル R D D 略語..................................................................... 397 参考文献 ............................................................. 397 D FT FT A A R R D D 21.4.7.9.5 例 ...................................................................................... 376 21.4.7.10 SVC ....................................................................................376 21.4.7.10.1構文 ................................................................................. 377 21.4.7.10.2演算 ................................................................................. 377 21.4.7.10.3制限 ................................................................................. 377 21.4.7.10.4条件フラグ.................................................................... 377 21.4.7.10.5例 ...................................................................................... 377 21.4.7.11 WFE ...................................................................................377 21.4.7.11.1構文 ................................................................................. 377 21.4.7.11.2演算 ................................................................................. 377 21.4.7.11.3制限 ................................................................................. 378 21.4.7.11.4条件フラグ.................................................................... 378 21.4.7.11.5例 ...................................................................................... 378 21.4.7.12 WFI.....................................................................................378 21.4.7.12.1構文 ................................................................................. 378 21.4.7.12.2演算 ................................................................................. 378 21.4.7.12.3制限 ................................................................................. 378 21.4.7.12.4条件フラグ.................................................................... 378 21.4.7.12.5例 ...................................................................................... 378 21.5 ペリフェラル...................................................... 378 21.5.1 ARM Cortex-M0 について......................................... 378 21.5.2 ネストベクタ割り込みコントローラ .................. 379 21.5.2.1 CMSIS を使用した Cortex-M0 NVIC レジスタへの アクセス ..........................................................................379 21.5.2.2 Interrupt Set-enable レジスタ................................ 380 21.5.2.3 Interrupt Clear-enable レジスタ............................ 380 21.5.2.4 Interrupt Set-pending レジスタ ............................ 381 21.5.2.5 Interrupt Clear-pending レジスタ ........................ 381 21.5.2.6 割り込み優先順位のレジスタ................................ 382 21.5.2.7 レベルセンシティブ割り込みとパルス割り込み .. 383 21.5.2.7.1 ハードウェアとソフトウェアの割り込み制御 383 21.5.2.8 NVIC の使用上のヒント............................................ 384 21.5.2.8.1 NVIC のプログラミング上のヒント.................... 384 21.5.3 システム制御ブロック.............................................. 385 21.5.3.1 Cortex-M0 SCB レジスタの CMSIS マッピング 385 21.5.3.2 CPUID レジスタ ........................................................... 385 21.5.3.3 割り込み制御と状態レジスタ................................ 385 21.5.3.4 アプリケーション割り込みとリセット制御レジ スタ ...................................................................................387 21.5.3.5 システム制御レジスタ.............................................. 388 21.5.3.6 設定および制御レジスタ ......................................... 389 21.5.3.7 システムハンドラ優先順位レジスタ .................. 389 21.5.3.7.1 システムハンドラ優先順位レジスタ 2.............. 390 21.5.3.7.2 システムハンドラ優先順位レジスタ 3.............. 390 21.5.3.8 SCB の使用上のヒント.............................................. 390 21.5.4 システムタイマ、SysTick.........................................390 21.5.4.1 SysTick 制御とステータスレジスタ..................... 391 21.5.4.2 SysTick リロード値レジスタ................................... 392 21.5.4.2.1 RELOAD 値の計算 ...................................................... 392 21.5.4.3 SysTick 現在値レジスタ............................................ 392 21.5.4.4 SysTick 校正値レジスタ............................................ 392 21.5.4.5 SysTick の使用上のヒント ....................................... 393 21.6 Cortex-M0 命令のまとめ................................... 393 第 22 章 : LPC111x 補足情報 22.1 22.2 R A FT FT A A R R R その他の命令 ................................................................ 371 BKPT ................................................................................. 372 構文 ................................................................................. 372 演算 ................................................................................. 372 制限 ................................................................................. 372 条件フラグ.................................................................... 372 例 ...................................................................................... 372 CPS.................................................................................... 372 構文 ................................................................................. 372 演算 ................................................................................. 373 制限 ................................................................................. 373 条件フラグ.................................................................... 373 例 ...................................................................................... 373 DMB.................................................................................. 373 構文 ................................................................................. 373 演算 ................................................................................. 373 制限 ................................................................................. 373 条件フラグ.................................................................... 373 例 ...................................................................................... 373 DSB ................................................................................... 373 構文 ................................................................................. 373 演算 ................................................................................. 374 制限 ................................................................................. 374 条件フラグ.................................................................... 374 例 ...................................................................................... 374 ISB ..................................................................................... 374 構文 ................................................................................. 374 演算 ................................................................................. 374 制限 ................................................................................. 374 条件フラグ.................................................................... 374 例 ...................................................................................... 374 MRS................................................................................... 374 構文 ................................................................................. 374 演算 ................................................................................. 375 制限 ................................................................................. 375 条件フラグ.................................................................... 375 例 ...................................................................................... 375 MSR................................................................................... 375 構文 ................................................................................. 375 演算 ................................................................................. 375 制限 ................................................................................. 375 条件フラグ.................................................................... 375 例 ...................................................................................... 375 NOP .................................................................................. 376 構文 ................................................................................. 376 演算 ................................................................................. 376 制限 ................................................................................. 376 条件フラグ.................................................................... 376 例 ...................................................................................... 376 SEV .................................................................................... 376 構文 ................................................................................. 376 演算 ................................................................................. 376 制限 ................................................................................. 376 条件フラグ.................................................................... 376 D D D 21.4.7 21.4.7.1 21.4.7.1.1 21.4.7.1.2 21.4.7.1.3 21.4.7.1.4 21.4.7.1.5 21.4.7.2 21.4.7.2.1 21.4.7.2.2 21.4.7.2.3 21.4.7.2.4 21.4.7.2.5 21.4.7.3 21.4.7.3.1 21.4.7.3.2 21.4.7.3.3 21.4.7.3.4 21.4.7.3.5 21.4.7.4 21.4.7.4.1 21.4.7.4.2 21.4.7.4.3 21.4.7.4.4 21.4.7.4.5 21.4.7.5 21.4.7.5.1 21.4.7.5.2 21.4.7.5.3 21.4.7.5.4 21.4.7.5.5 21.4.7.6 21.4.7.6.1 21.4.7.6.2 21.4.7.6.3 21.4.7.6.4 21.4.7.6.5 21.4.7.7 21.4.7.7.1 21.4.7.7.2 21.4.7.7.3 21.4.7.7.4 21.4.7.7.5 21.4.7.8 21.4.7.8.1 21.4.7.8.2 21.4.7.8.3 21.4.7.8.4 21.4.7.8.5 21.4.7.9 21.4.7.9.1 21.4.7.9.2 21.4.7.9.3 21.4.7.9.4 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R R R R R A A A UM10398 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 A A A R A F FT FT A A R R D D Figures ............................................................ 405 Contents.......................................................... 406 D 22.5 22.6 R R R D FT FT A A R R D 免責事項 ........................................................................ 398 商標 ................................................................................. 398 Tables .............................................................. 399 D D D 22.3.2 22.3.3 22.4 FT FT FT FT 第 22 章:LPC111x 補足情報 D D R A FT D R A 417 Date of release: 2010 / 9 / 28 Document identifier: UM10398_0
© Copyright 2024 Paperzz