• 検索結果がありません。

レジスタの説明

ドキュメント内 LPC111x UM Rev0015 Japanese (ページ 133-142)

(パワーマネージメントユニット)

10.8 レジスタの説明

Table 136. I2C-bus pin description

Pin Type Description

SDA Input/Output I2Cシリアルデータ

SCL Input/Output I2Cシリアルクロック

Table 137. Register overview: I2C (base address 0x4000 0000) Name Access Address

offset

Description Reset

value[1]

I2C0CONSET R/W 0x000 I2C制御設定レジスタ。このレジスタのビットに1を書き込むと、I2C制

御レジスタ内の対応するビットが設定されます。 0 を書き込んだ場合は、

I2C制御レジスタ内の対応するビットに何も影響を与えません。

0x00

I2C0STAT RO 0x004 I2Cステータスレジスタ。I2Cの動作中、このレジスタは、次に必要なア

クションをソフトウェアが判断するための詳細ステータスコードを提供 します。

0xF8

I2C0DAT R/W 0x008 I2Cデータレジスタ。マスタまたはスレーブ送信モードの間、送信される

データはこのレジスタに書き込まれます。マスタまたはスレーブ受信 モードの間、受信したデータはこのレジスタから読み取ることができま す。

0x00

FT D RAF FT DR

AFT DRA

FT D FT D

RA FT D

RA FT D

RA FT DR

A

10.8.1 I

2

C 制御設定レジスタ( I2C0CONSET - 0x4000 0000

I2CONSETレジスタは、I2Cインターフェースの動作を制御するI2CONレジスタ内のビッ トの設定を制御します。このレジスタのビットに1を書き込むと、I2C制御レジスタ内の 対応するビットが設定されます。 0を書き込んでも影響はありません。

I2C0SCLL R/W 0x014 SCL デューティサイクルレジスタLOW ハーフワード。I2C クロックの

LOW時間を決定します。 I2nSCLLとI2nSCLHはともに、I2Cマスタが生成 するクロック周波数と、スレーブモードで使用される特定の時間を決定 します。

0x04

I2C0CONCLR WO 0x018 I2C制御クリアレジスタ。このレジスタのビットに1を書き込むと、I2C

制御レジスタ内の対応するビットがクリアされます。 0を書き込んだ場合 は、I2C制御レジスタ内の対応するビットに何も影響を与えません。

NA

I2C0MMCTRL R/W 0x01C モニターモード制御レジスタ。 0x00

I2C0ADR1 R/W 0x020 I2Cスレーブアドレスレジスタ1。I2Cインターフェースがスレーブモー

ドで動作するための7 ビットスレーブアドレスが含まれます。これはマ スタモードでは使用されません。最下位ビットは、スレーブがゼネラル コールアドレスに応答するかどうかを決定します。

0x00

I2C0ADR2 R/W 0x024 I2Cスレーブアドレスレジスタ2。I2Cインターフェースがスレーブモー

ドで動作するための7 ビットスレーブアドレスが含まれます。これはマ スタモードでは使用されません。最下位ビットは、スレーブがゼネラル コールアドレスに応答するかどうかを決定します。

0x00

I2C0ADR3 R/W 0x028 I2Cスレーブアドレスレジスタ3。I2Cインターフェースがスレーブモー

ドで動作するための7 ビットスレーブアドレスが含まれます。これはマ スタモードでは使用されません。最下位ビットは、スレーブがゼネラル コールアドレスに応答するかどうかを決定します。

0x00

I2C0DATA_

BUFFER

RO 0x02C データバッファレジスタ。バスが9ビット(8ビットのデータとACKま

たはNACK)を受信するたびに、I2DATシフトレジスタ内の8 MSBの内容 がDATA_BUFFERへ自動転送されます。

0x00

I2C0MASK0 R/W 0x030 I2C スレーブアドレスマスクレジスタ0。このマスクレジスタはI2ADR0

と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

I2C0MASK1 R/W 0x034 I2C スレーブアドレスマスクレジスタ1。このマスクレジスタはI2ADR0

と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

I2C0MASK2 R/W 0x038 I2C スレーブアドレスマスクレジスタ2。このマスクレジスタはI2ADR0

と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

I2C0MASK3 R/W 0x03C I2C スレーブアドレスマスクレジスタ3。このマスクレジスタはI2ADR0

と関連付けられて、アドレスマッチを判定します。マスクレジスタは、ゼ ネラルコールアドレス(「0000000」)と比較するときに影響を与えません。

0x00

[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。

Table 137. Register overview: I2C (base address 0x4000 0000) (続き)

Name Access Address offset

Description Reset

value[1]

FT D RAF FT DR

AFT DRA

FT D FT D

RA FT D

RA FT D

RA FT DR

A

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状態が生成されますが、バス上では送信されま せん。

Table 138. I2C Control Set register (I2C0CONSET - address 0x4000 0000) bit description

Bit Symbol Description Reset

value 1:0 - 予約済み。ユーザーソフトウェアによって予約ビットに1を書き込

まないでください。予約ビットから読み取った値は未定義です。

NA

2 AA アサートACKフラグ。

3 SI I2C割り込みフラグ。 0

4 STO STOPフラグ。 0

5 STA STARTフラグ。 0

6 I2EN I2C割り込みイネーブル。 0 31:7 - 予約済み。予約ビットから読み取った値は未定義です。

-FT D RAF FT DR

AFT DRA

FT D FT D

RA FT D

RA FT D

RA FT DR

A スレーブモードでは、このビットを設定するとエラー状態から回復することができます。

この場合、STOP状態はバスに送信されません。ハードウェアはSTOP状態を受信したか のように動作し、「アドレス指定されていない」スレーブレシーバモードに切り替わりま す。 STOフラグは、ハードウェアによって自動的にクリアされます。

SIはI2C割り込みフラグです。このビットは、I2Cの状態が変化したときに設定されます。

ただし、状態F8に切り替わってもSIは設定されません。その場合は、割り込みサービス ルーチンに行うべきことがないからです。

SIの設定中は、SCLライン上のシリアルクロックのLOW時間が延び、シリアル転送が一 時停止されます。 SCLがHIGHのときは、SIフラグの状態による影響を受けません。 SIは ソフトウェアによってリセットする必要があります。I2CONCLRレジスタ内のSICビット に1を書き込んでください。

AAはアサートACKフラグです。 1に設定すると、以下の状況のとき、SCLラインのACK クロックパルスの間に肯定応答(SDAに対してLOWレベル)が返されます。

1. スレーブアドレスレジスタ内のアドレスを受信した。

2. I2ADR 内のゼネラルコールビット(GC)が設定されている間に、ゼネラルコール

アドレスを受信した。

3. I2Cがマスタレシーバモードのときに、データバイトを受信した。

4. I2Cがアドレス指定されたスレーブレシーバモードのときに、データバイトを受信 した。

I2CONCLRレジスタ内のAACビットに1を書き込むことにより、AAビットをクリアでき ます。 AA が 0 であれば、以下の状況のとき、SCL ラインの ACK クロックパルスの間に NOT ACK(SDAに対してHIGHレベル)が返されます。

1. I2Cがマスタレシーバモードのときに、データバイトを受信した。

2. I2Cがアドレス指定されたスレーブレシーバモードのときに、データバイトを受信 した。

10.8.2 I

2

C ステータスレジスタ( 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 - 予約済み。予約ビットから読み取った値は未定義です。

-FT D RAF FT DR

AFT DRA

FT D FT D

RA FT D

RA FT D

RA FT DR

A 下位 3ビットは常に 0 です。1 バイトとして考えると、ステータスレジスタの内容はス テータスコードを表します。可能なステータスコードは 26 あります。ステータスコード が 0xF8のとき、利用できる関連情報はなく、SIビットは設定されません。他の 25のス テータスコードはすべて、I2C の定義済み状態に対応します。これらの状態のいずれかに なると、SIが設定されます。全ステータスコードの一覧は、Table 154からTable 159まで の表を参照してください。

10.8.3 I

2

C データレジスタ( I2C0DAT - 0x4000 0008

このレジスタには、これから送信されるデータや受信したばかりのデータが含まれていま す。 SI ビットが設定されているとき、CPU はバイトのシフトプロセス中でないときに限 り、このレジスタに読み書きできます。 I2DAT内のデータは、SIビットが設定されている 限り安定状態に保たれます。 I2DAT内のデータは、常に右から左へとシフトします。最初 に送信されるビットはMSB(ビット7)であり、1バイトを受信した後、受信データの最 初のビットがI2DATのMSBに配置されます。

10.8.4 I

2

C スレーブアドレスレジスタ 0 I2C0ADR0- 0x4000 000C

このレジスタは読み書きが可能で、I2Cインターフェースがスレーブモードに設定されて いるときに限り使用できます。マスタモードでは、このレジスタは影響を及ぼしません。

I2ADRのLSBはゼネラルコールビットです。このビットを設定すると、ゼネラルコールア

ドレス(0x00)が認識されます。

これらのレジスタのうちのビット 00x を含むものはディスエーブルとなり、バス上のど のアドレスともマッチしません。リセットするとスレーブアドレスレジスタはこのディス エーブル状態にクリアされます。 Table 147も参照してください。

10.8.5 I

2

C SCL HIGH および LOW デューティサイクルレジスタ( I2C0SCLH - 0x4000 0010 および I2C0SCLL- 0x4000 0014

Table 140. I2C Data register (I2C0DAT - 0x4000 0008) bit description

Bit Symbol Description Reset value

7:0 Data このレジスタには、受信したデータ値やこれから送信されるデー タ値が保持されています。

0

31:8 - 予約済み。予約ビットから読み取った値は未定義です。

-Table 141. I2C Slave Address register 0 (I2C0ADR0- 0x4000 000C) bit description

Bit Symbol Description Reset value

0 GC ゼネラルコールイネーブルビット。 0

7:1 Address スレーブモードのI2Cデバイスアドレス。 0x00

31:8 - 予約済み。予約ビットから読み取った値は未定義です。

-Table 142. I2C SCL HIGH Duty Cycle register (I2C0SCLH - address 0x4000 0010) bit

ドキュメント内 LPC111x UM Rev0015 Japanese (ページ 133-142)