(パワーマネージメントユニット)
11.7 レジスタの説明
SPIコントローラのレジスタアドレスについては、Table 162およびTable 163を参照して ください。
注意: SPIコントローラがSSPのフル機能を備えていることを示すために、レジスタ名に はSSPという接頭辞が付いています。
Table 162. Register overview: SPI0 (base address 0x4004 0000)
Name Access Address
offset
Description Reset
Value[1]
SSP0CR0 R/W 0x000 制御レジスタ0。シリアルクロックレート、バスのタイプ、データサイズ
を選択します。
0
SSP0CR1 R/W 0x004 制御レジスタ1。マスタ/スレーブおよびその他のモードを選択します。 0
SSP0DR R/W 0x008 データレジスタ。送信FIFOが満杯になるまで書き込み、受信FIFOが空
になるまで読み出します。
0
SSP0SR RO 0x00C ステータスレジスタ 0 x 0 0 0 0
0003
SSP0CPSR R/W 0x010 クロックプリスケールレジスタ 0
SSP0IMSC R/W 0x014 割り込みマスクセット/クリアレジスタ 0
SSP0RIS RO 0x018 原割り込みステータスレジスタ 0 x 0 0 0 0
0008
SSP0MIS RO 0x01C マスク割り込みステータスレジスタ 0
SSP0ICR WO 0x020 SSPICR割り込みクリアレジスタ NA
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
FT D RAF FT DR
AFT DRA
FT D FT D
RA FT D
RA FT D
RA FT DR
A
11.7.1 SPI/SSP 制御レジスタ 0
このレジスタは、SPI/SSPコントローラの基本動作を制御します Table 163. Register overview: SPI1 (base address 0x4005 8000)
Name Access Address
offset
Description Reset
Value[1]
SSP1CR0 R/W 0x000 制御レジスタ0。シリアルクロックレート、バスのタイプ、データサイズ
を選択します。
0
SSP1CR1 R/W 0x004 制御レジスタ1。マスタ/スレーブおよびその他のモードを選択します。 0
SSP1DR R/W 0x008 データレジスタ。送信FIFOが満杯になるまで書き込み、受信FIFOが空
になるまで読み出します。
0
SSP1SR RO 0x00C ステータスレジスタ 0 x 0 0 0 0
0003
SSP1CPSR R/W 0x010 クロックプリスケールレジスタ 0
SSP1IMSC R/W 0x014 割り込みマスクセット/クリアレジスタ 0
SSP1RIS RO 0x018 原割り込みステータスレジスタ 0 x 0 0 0 0
0008
SSP1MIS RO 0x01C マスク割り込みステータスレジスタ 0
SSP1ICR WO 0x020 SSPICR割り込みクリアレジスタ NA
[1] 「リセット値」は使用ビットに格納されているデータのみを示しています。予約ビットの内容は含まれていません。
Table 164: SPI/SSP Control Register 0 (SSP0CR0 - address 0x4004 0000, SSP1CR0 - address 0x4005 8000) bit description
Bit Symbol Value Description Reset
Value 3:0 DSS データサイズ選択。このフィールドは各フレームの転送ビッ
ト数を制御します。値0000-0010 は未サポートのため、使用 しないでください。
0000
0011 4ビット転送 0100 5ビット転送 0101 6ビット転送 0110 7ビット転送 0111 8ビット転送 1000 9ビット転送 1001 10ビット転送 1010 11ビット転送 1011 12ビット転送 1100 13ビット転送 1101 14ビット転送 1110 15ビット転送
FT D RAF FT DR
AFT DRA
FT D FT D
RA FT D
RA FT D
RA FT DR
A
11.7.2 SPI/SSP0 制御レジスタ 1
このレジスタは、SPI/SSPコントローラの特定の動作を制御します。
5:4 FRF フレーム形式 00
00 SPI
01 TI
10 Microwire
11 この組み合せは未サポートのため、使用しないでください。
6 CPOL クロック出力極性。このビットはSPIモードでのみ使用されま す。
0 0 SPI コントローラはフレーム間のバスクロックをローに維持
します。
1 SPI コントローラはフレーム間のバスクロックをハイに維持 します。
7 CPHA クロック出力位相。このビットはSPIモードでのみ使用されま す。
0 0 SPI コントローラはフレームの最初のクロック遷移でシリア
ルデータをキャプチャします(クロックラインのフレーム間 状態からの遷移)
1 SPIコントローラはフレームの2番目のクロック遷移でシリア ルデータをキャプチャします(クロックラインのフレーム間 状態への遷移)
15:8 SCR シリアルクロックレート。バス上のビット当たりのプリス ケーラ出力クロック数から1を引いた値。 CPSDVSRをプリス ケール分周器、APBクロック(PCLK)をプリスケーラにクロッ クを供給するクロックと仮定した場合、ビット周波数は式 PCLK / (CPSDVSR × [SCR+1])で算出されます。
0x00
31:16 - - 予約済み
-Table 164: SPI/SSP Control Register 0 (SSP0CR0 - address 0x4004 0000, SSP1CR0 - address 0x4005 8000) bit description
Bit Symbol Value Description Reset
Value
Table 165: SPI/SSP Control Register 1 (SSP0CR1 - address 0x4004 0004, SSP1CR1 - address 0x4005 8004) bit description
Bit Symbol Value Description Reset
Value
0 LBM ループバックモード 0
0 通常動作時
1 シリアル入力は、シリアル入力ピン(MISO またはMOSI) からではなく、シリアル出力(MOSIまたはMISO)から取 得されます。
1 SSE SPIイネーブル 0
0 SPIコントローラはディスエーブル。
1 SPI コントローラはシリアルバス上で他のデバイスと通信 します。ソフトウェアでは、このビットを設定する前に、
他のSPI/SSPレジスタおよび割り込みコントローラレジス
タに適切な制御情報を書き込む必要があります。
FT D RAF FT DR
AFT DRA
FT D FT D
RA FT D
RA FT D
RA FT DR
A
11.7.3 SPI/SSP データレジスタ
ソフトウェアを使用して、このレジスタに送信するデータを書き込んだり、受信済みの データを読み取ることができます。
2 MS マスタ/スレーブモード。このビットはSSEビットが0の 場合にのみ書き込むことができます。
0 0 SPIコントローラはバス上でマスタとして動作して、SCLK、
MOSI、SSELの各ラインを駆動し、MISOラインを受信しま す。
1 SPI コントローラはバス上でスレーブとして動作して、
MISOラインを駆動し、SCLK、MOSI、SSELの各ラインを受 信します。
3 SOD スレーブ出力ディスエーブル。このビットはスレーブモー ド(MS = 1)の場合にのみ関係します。 1の場合は、SPIコ ントローラによる送信データライン(MISO)の駆動がブ ロックされます。
0
31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を書き込まないでください。予約ビットから読み取った値 は未定義です。
NA Table 165: SPI/SSP Control Register 1 (SSP0CR1 - address 0x4004 0004, SSP1CR1 - address
0x4005 8004) bit description
Bit Symbol Value Description Reset
Value
Table 166: SPI/SSP Data Register (SSP0DR - address 0x4004 0008, SSP1DR - address 0x4005 8008) bit description
Bit Symbol Description Reset Value
15:0 DATA 書き込み:ステータスレジスタのTNFビットが1の場合(Tx FIFO が満杯ではない場合)は、ソフトウェアによって随時、以降の フレームで送信するデータをこのレジスタに書き込むことがで きます。 Tx FIFO がすでに空で、SPI コントローラがバス上でビ ジーではない場合は、ただちにデータ送信が開始されます。それ 以外の場合は、以前からのデータがすべて送信(および受信)さ れるとただちに、このレジスタに書き込んだデータが送信され ます。データ長が16ビット未満の場合は、このレジスタに右詰 めでデータを書き込む必要があります。
読み取り:ステータスレジスタのRNEビットが1の場合(Rx FIFO が空ではない場合)は、ソフトウェアによって随時、このレジ スタからデータを読み取ることができます。ソフトウェアに よってこのレジスタが読み取られると、SPI コントローラは Rx FIFO内の最も古いフレームのデータを返します。データ長が16 ビット未満の場合、このフィールドのデータは右詰めになり、上 位ビットには0が書き込まれます。
0x0000
31:16 - 予約済み
-FT D RAF FT DR
AFT DRA
FT D FT D
RA FT D
RA FT D
RA FT DR
A
11.7.5 SPI/SSP クロックプリスケールレジスタ
このレジスタは、プリスケーラがプリスケーラクロックを得るためにSPIペリフェラルク
ロックSPI_PCLKを分周する際の係数を制御します。このプリスケーラクロックは、ビッ
トクロックを決定するために、さらにSSPCR0レジスタのSCR係数によって分周されます。
重要: SSPnCPSR値は適切に初期化してください。初期化が不適切な場合、SPIコントロー ラは正確にデータを伝送できません。
スレーブモードの場合、マスタが供給するSPIクロックレートはSection 3.4.15で選択さ れたSPIペリフェラルクロックの1/12以下でなければなりません。 SSPnCPSRレジスタの 値は関係しません。
マスタモードの場合、CPSDVSRmin= 2以上(偶数のみ)。
11.7.6 SPI/SSP 割り込みマスクセット / クリアレジスタ
このレジスタは、SPIコントローラの4つの割り込み条件それぞれについてイネーブルに するかどうかを制御します。留意点として、ARMの場合、「マスクされている」という用 語は従来のコンピュータ用語とは逆の意味で使用されています(従来のコンピュータ用語 では、「マスクされている」とは「ディスエーブルであること」を意味します)。 ARM で は、「イネーブルであること」を示す場合に「マスクされている」と表現します。混乱を 避けるために、ここでは「マスクされている」という用語を使用しないことにします。
Table 167: SPI/SSP Status Register (SSP0SR - address 0x4004 000C, SSP1SR - address 0x4005 800C) bit description
Bit Symbol Description Reset Value
0 TFE 送信FIFOが空。送信FIFOが空の場合、このビットは1(空でな い場合は0)。
1 1 TNF 送信 FIFOが満杯ではない。 Tx FIFOが満杯の場合、このビット
は0(満杯でない場合は1)。
1 2 RNE 受信FIFOが空ではない。受信FIFOが空の場合、このビットは0
(空でない場合は1)。
0 3 RFF 受信FIFOが満杯。受信FIFOが満杯の場合、このビットは1(満
杯でない場合は0)。
0 4 BSY ビジー。 SPIコントローラがアイドル状態の場合、このビットは
0。フレームを送信/受信中か、Tx FIFOが空でない場合は1。 0 31:5 - 予約済み。ユーザーソフトウェアによって予約ビットに1を書
き込まないでください。予約ビットから読み取った値は未定義 です。
NA
Table 168: SPI/SSP Clock Prescale Register (SSP0CPSR - address 0x4004 0010, SSP1CPSR - address 0x4005 8010) bit description
Bit Symbol Description Reset Value
7:0 CPSDVSR 2〜254の偶数値。この値によってSPI_PCLKを分周して、プ リスケーラ出力クロックを得ます。ビット0は常に0と読み取 られます。
0
31:8 - 予約済み
-FT D RAF FT DR
AFT DRA
FT D FT D
RA FT D
RA FT D
RA FT DR
A
11.7.7 SPI/SSP 原割り込みステータスレジスタ
この読み取り専用レジスタでは、SSPIMSC レジスタでイネーブルになっているか否かに かかわらず、アサートされた割り込み条件に対して1が設定されます。
Table 169: SPI/SSP Interrupt Mask Set/Clear register (SSP0IMSC - address 0x4004 0014, SSP1IMSC - address 0x4005 8014) bit description
Bit Symbol Description Reset
Value
0 RORIM 受信オーバーランが発生した場合(Rx FIFO が満杯でさらにフレーム
を完全に受信した場合)に割り込みをイネーブルにするには、ソフト ウェアによってこのビットを設定する必要があります。 ARM の仕様 では、これが発生した場合、前回のフレームデータが新しいフレーム データによって上書きされます。
0
1 RTIM 受信タイムアウト条件が発生した場合に割り込みをイネーブルにす るには、ソフトウェアによってこのビットを設定する必要がありま す。受信タイムアウトはRx FIFOが空ではなく、「タイムアウト時間」
中に読み取りがなかった場合に発生します。タイムアウト時間はマ スタモードとスレーブモードで同一で、SSPビットレートによって決 定されます。 PCLK / (CPSDVSR×[SCR+1]) のとき、32ビットです。
0
2 RXIM Rx FIFO が半分以上満杯になった場合に割り込みをイネーブルにする
には、ソフトウェアによってこのビットを設定する必要があります。
0
3 TXIM Tx FIFO が半分以上空になった場合に割り込みをイネーブルにするに
は、ソフトウェアによってこのビットを設定する必要があります。
0 31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに1を書き込ま
ないでください。予約ビットから読み取った値は未定義です。
NA
Table 170: SPI/SSP Raw Interrupt Status register (SSP0RIS - address 0x4004 0018, SSP1RIS - address 0x4005 8018) bit description
Bit Symbol Description Reset Value
0 RORRIS Rx FIFOが満杯時にさらにフレームを完全に受信した場合、こ
のビットは1 に設定されます。 ARMの仕様では、これが発生 した場合、前回のフレームデータが新しいフレームデータに よって上書きされます。
0
1 RTRIS Rx FIFOが空ではなく、「タイムアウト時間」中に読み取りがな
かった場合、このビットは1に設定されます。タイムアウト時 間はマスタモードとスレーブモードで同一で、SSPビットレー トによって決定されます。 PCLK / (CPSDVSR×[SCR+1]) のとき、
32ビットです。
0
2 RXRIS Rx FIFOが半分以上満杯の場合、このビットは1に設定されま
す。
0
3 TXRIS Tx FIFOが半分以上空の場合、このビットは1に設定されます。1
31:4 - 予約済み。ユーザーソフトウェアによって予約ビットに 1 を 書き込まないでください。予約ビットから読み取った値は未
NA