14.5MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
はじめに
■ 本書の目的と対象読者
MB91107/MB91108は,新しいRISCアーキテクチャのCPUをコアとした「32ビット・
シングルチップ・マイクロコントローラ FR30シリーズ」の一つとして開発され
た製品で,高性能なCPU処理パワーを要求される組込み用途に最適な仕様になって
います。
本書は,実際にこのMB91107/MB91108を使用して製品を開発される技術者の方を
対象に,MB91107/MB91108の機能や動作について解説したものです。本書をご一読
ください。なお,各種命令の詳細については,
『インストラクション・マニュアル』
をご参照ください。
■ 商標
FRは,FUJITSU RISC controllerの略で,富士通株式会社の製品です。
そのほか,本書で登場するシステム名,製品名はそれぞれの会社もしくは組織
の商標です。
なお,本文中では™マークや®マークを必ずしも明記していません。
i
■ 本書の全体構成
本書は,以下に示す15の章および付録から構成されています。
第1章 MB91107/MB91108の概要
この章では,MB91107/MB91108の特長,ブロックダイヤグラム,機能概要な
ど全体を知るための基本的なことについて説明します。
第2章 デバイスの取扱いについて
この章では,MB91107/MB91108の取扱い上の注意について説明します。
第3章 CPU
この章では,FRシリーズのCPUコアの機能を知るために,アーキテクチャ,仕
様,命令などの基本的なことについて説明します。
第4章 バスインタフェース
この章では,バスインタフェースの概要,レジスタの構成/機能,バス動作,
バスタイミングおよびバス動作のプログラム例について説明します。
第5章 I/Oポート
この章では,I/Oポートの概要,レジスタの構成/機能,および外部端子と
切換えレジスタとの関係について説明します。
第6章
16ビットリロードタイマ
この章では,16ビットリロードタイマの概要,レジスタの構成/機能,およ
び16ビットリロードタイマの動作について説明します。
第7章
PWMタイマ
この章では,PWMタイマの概要,レジスタの構成/機能,およびPWMタイマの
動作について説明します。
第8章
U-TIMER
この章では,U-TIMERの概要,レジスタの構成/機能,およびU-TIMERの動作
について説明します。
第9章 外部割込み/NMI制御部
この章では,外部割込み/NMI制御部の概要,レジスタの構成/機能,およ
び外部割込み/NMI制御部の動作について説明します。
第10章 遅延割込みモジュール
この章では,遅延割込みモジュールの概要,レジスタの構成/機能,および
遅延割込みモジュールの動作について説明します。
ii
第11章
割込みコントローラ
この章では,割込みコントローラの概要,レジスタの構成/機能,割込みコ
ントローラの動作,およびホールドリクエスト取下げ要求機能の使用例につい
て説明します。
第12章
A/Dコンバータ(逐次比較型)
この章では,A/Dコンバータの概要,レジスタの構成/機能,およびA/Dコン
バータの動作について説明します。
第13章
UART
この章では,UARTの概要,レジスタの構成/機能,およびUARTの動作につい
て説明します。
第14章
DMAコントローラ(DMAC)
この章では,DMAコントローラの概要,レジスタの構成/機能,およびDMAコ
ントローラの動作について説明します。
第15章
ビットサーチモジュール
この章では,ビットサーチモジュールの概要,レジスタの構成/機能,およ
びビットサーチモジュールの動作,退避/復帰処理について説明します。
付
録
付録として,I/Oマップ,割込みベクタ,CPUステートでの端子状態,リトル
エンディアン領域を利用するときの注意事項,および命令一覧について,本文
に記載できなかった細かいところや,プログラミングするときに参照すること
がらを記載しています。
1. 本資料の記載内容は,予告なしに変更することがありますので,ご用命の際は当社営業担当部門にご確認く
ださい。
2. 本資料に記載された情報・回路図は,半導体デバイスの応用例として使用されており,実際に使用する機器
への搭載を目的としたものではありません。また,これらの情報・回路図の使用に起因する第三者の特許権,
その他の権利侵害について,当社はその責任を負いません。
3. 本資料に記載された内容を,当社に無断で転載または複製することはご遠慮ください。
4. 当社半導体デバイスは,標準用途(コンピュータ/OAなどの事務用機器,産業/通信/計測用の関連機器,
パーソナル/家庭用の機器など)に使用されることを意図しています。その故障や誤動作が直接人命を脅かし
たり,人体に危害が及ぶ恐れのある,または極めて高い信頼性が要求される特別用途(航空・宇宙用,原子力
制御用,海底中継器,走行制御用,生命維持のための医療用など)にご使用をお考えのお客様は必ず事前に当
社営業担当部門までご相談ください。ご相談なく使用されたことにより発生した損害などについては,責任を
負いかねますのでご了承ください。
5. 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても,結果的に人身事故,火
災事故,社会的な損害を生じさせないよう,お客様は,装置の冗長設計,延焼対策設計,過電流防止対策設計,
誤動作防止設計などの安全設計をお願いします。
6. 本資料に記載された製品が,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該当
する場合には,本製品を輸出するに際して,同法に基づく許可が必要となります。
©2001 FUJITSU LIMITED Printed in Japan
iii
本書の読み方
■ 本書の記述形式
以下に本書で使用する主要な用語に関しての説明を示します。
用語
I-BUS
D-BUS
C-BUS
R-BUS
E-unit
φ
θ
意
味
内部インストラクション用の16ビット幅のバスです。FRシリーズは,内部ハーバードアー
キテクチャを採用しているため,命令とデータは独立したバスです。I-BUSには,命令CACHE
とバスコンバータが接続されます。
内部32ビット幅のデータバスです。D-BUSには,内部リソースが接続されます。
内部マルチプレクスバスです。スイッチを通してI-BUSとD-BUSに接続されます。C-BUSには
外部インタフェースモジュールが接続されます。外部データバスは,データと命令がマル
チプレクスされます。
内部16ビット幅のデータバスです。R-BUSは,アダプタを通してD-BUSに接続されます。
R-BUSには,各種I/O,クロック発生部,割込みコントローラが接続されます。
R-BUSは16ビット幅でかつアドレス,データがマルチプレクスされるため,CPUがこれらの
リソースにアクセスする場合,複数サイクルの時間が掛かります。
演算実行ユニットです。
システムクロック。R-BUSにつながる各内蔵リソースに対してクロック発生部から出力
されるクロック。最速で原発振と同周期ですが,クロック発生部GCRレジスタのPCK1,0で
1,1/2,1/4,1/8(または1/2,1/4,1/8,1/16)に分周されたクロックとなります。
システムクロック。R-BUS以外のバスに接続されるリソースとCPUの動作クロック。
最速で原発振と同周期ですが,クロック発生部GCRレジスタのCCK1,0で 1,1/2,1/4,1/8(ま
たは1/2,1/4/1/8,1/16)に分周されたクロックとなります。
iv
目次
第1章
MB91107/MB91108の概要 ........................................... 1
1.1
MB91107/MB91108の特長 .................................................. 2
1.2
MB91107/MB91108の全体ブロックダイヤグラム............................... 5
1.3
外形寸法図 ............................................................. 6
1.4
端子配列図 ............................................................. 8
1.5
端子機能説明 ........................................................... 9
1.6
入出力回路形式 ........................................................ 14
第2章
デバイスの取扱いについて ....................................... 17
2.1
端子,回路に関する取扱い上の注意 ...................................... 18
2.2
各デバイス使用上の注意 ................................................ 20
2.3
電源投入時の注意 ...................................................... 22
第3章
CPU ............................................................ 23
3.1
メモリ空間 ............................................................ 24
3.2
CPUアーキテクチャ ..................................................... 25
3.3
命令キャッシュ ........................................................ 28
3.3.1
命令キャッシュ制御レジスタ(ICHCR) ................................... 31
3.3.2
各動作モードの状態 .................................................. 33
3.3.3
命令キャッシュ使用時の設定方法 ...................................... 34
3.4
専用レジスタ .......................................................... 36
3.4.1
プログラムステータスレジスタ(PS) .................................... 38
3.5
汎用レジスタ .......................................................... 41
3.6
データ構造 ............................................................ 42
3.7
ワードアライメント .................................................... 43
3.8
メモリマップ .......................................................... 44
3.9
命令概要 .............................................................. 46
3.9.1
遅延スロット付き分岐命令 ............................................ 48
3.9.2
遅延スロットなし分岐命令 ............................................ 50
3.10
E I T ( 例外・割込み・トラップ) .......................................... 51
3.10.1
EITの割込みレベル ................................................... 52
3.10.2
割込み制御レジスタ(IC R) ............................................ 54
v
3.10.3
システムスタックポインタ(SSP) ....................................... 55
3.10.4
割込みスタック ...................................................... 56
3.10.5
テーブルベースレジスタ(TBR) ......................................... 57
3.10.6
EITベクタテーブル ................................................... 58
3.10.7
多重EIT処理 ......................................................... 60
3.10.8
EITの動作 ........................................................... 62
3.11
リセットシーケンス .................................................... 65
3.12
クロック .............................................................. 66
3.13
3.14
第4章
3.12.1
リセット要因レジスタ(RSRR)とウォッチドッグ周期制御レジスタ(WTCR)..... 68
3.12.2
DMA要求抑止レジスタ(PDRR) ........................................... 70
3.12.3
タイムベースタイマクリアレジスタ(CTBR) .............................. 71
3.12.4
ギア制御レジスタ(GCR) ............................................... 72
3.12.5
ウォッチドッグリセット発生延期レジスタ(WPR) ......................... 75
3.12.6
PLL制御レジスタ(PCTR) ............................................... 76
3.12.7
ウォッチドッグ機能 .................................................. 77
3.12.8
ギア機能 ............................................................ 79
3.12.9
リセット要因保持 .................................................... 81
3.12.10
DMA抑止 ............................................................. 83
3.12.11
クロックダブラ機能 .................................................. 85
3.12.12
PLLのクロック設定例 ................................................. 87
低消費電力モード ...................................................... 90
3.13.1
スタンバイ制御レジスタ(STCR) ........................................ 92
3.13.2
ストップ状態 ........................................................ 93
3.13.3
スリープ状態 ........................................................ 96
3.13.4
低消費電力モードの状態遷移 .......................................... 98
メモリアクセスモード .................................................. 99
3.14.1
内蔵RAMの使用方法 .................................................. 102
3.14.2
ユーザプログラムの初期化 ........................................... 103
バスインタフェース ............................................ 105
4.1
バスインタフェースの概要 ............................................. 106
4.2
バスインタフェースのブロックダイヤグラム.............................. 109
4.3
バスインタフェースのレジスタ ......................................... 110
4.3.1
エリア選択レジスタ(ASR)とエリアマスクレジスタ(AMR) ................. 111
vi
4.4
4.5
4.3.2
エリアモードレジスタ0(AMD0) ........................................ 114
4.3.3
エリアモードレジスタ1(AMD1) ........................................ 116
4.3.4
エリアモードレジスタ32(AMD32) ...................................... 117
4.3.5
エリアモードレジスタ4(AMD4) ........................................ 118
4.3.6
エリアモードレジスタ5(AMD5) ........................................ 119
4.3.7
チップセレクト信号レジスタ6/7(CS67) ................................ 120
4.3.8
DRAM制御レジスタ4/5(DMCR4/5) ....................................... 121
4.3.9
リフレッシュ制御レジスタ(RFCR) ..................................... 124
4.3.10
外部端子制御レジスタ0(EPCR0) ....................................... 126
4.3.11
外部端子制御レジスタ1(EPCR1) ....................................... 128
4.3.12
DRAM信号制御レジスタ(DSCR) ......................................... 129
4.3.13
リトルエンディアンレジスタ(LER) .................................... 130
バス動作 ............................................................. 131
4.4.1
データバス幅と制御信号との関係 ..................................... 132
4.4.2
ビッグエンディアンのバスアクセス ................................... 133
4.4.3
リトルエンディアンのバスアクセス ................................... 138
4.4.4
ビッグエンディアンとリトルエンディアンの外部アクセスの比較.......... 141
4.4.5
DRAM関係 ........................................................... 145
バスタイミング ....................................................... 148
4.5.1
基本リードサイクル ................................................. 151
4.5.2
基本ライトサイクル ................................................. 153
4.5.3
各モードでのリードサイクル ......................................... 155
4.5.4
各モードでのライトサイクル ......................................... 157
4.5.5
リード/ライト混在サイクル ......................................... 159
4.5.6
自動ウエイトサイクル ............................................... 160
4.5.7
外部ウエイトサイクル ............................................... 161
4.5.8
通常DRAMインタフェースのリードサイクル ............................. 162
4.5.9
通常DRAMインタフェースのライトサイクル ............................. 164
4.5.10
通常DRAMリードサイクル ............................................. 166
4.5.11
通常DRAMライトサイクル ............................................. 168
4.5.12
通常DRAMインタフェースでの自動ウエイトサイクル ..................... 170
4.5.13
高速ページモード時のDRAMインタフェース ............................. 171
4.5.14
Single DRAMインタフェースのリードサイクル .......................... 173
4.5.15
Single DRAMインタフェースのライトサイクル .......................... 174
vii
4.5.16
Single DRAMインタフェース .......................................... 175
4.5.17
Hyper DRAMインタフェースのリードサイクル ........................... 176
4.5.18
Hyper DRAMインタフェースのライトサイクル ........................... 177
4.5.19
Hyper DRAMインタフェース ........................................... 178
4.5.20
DRAMリフレッシュ ................................................... 179
4.5.21
外部バスリクエスト ................................................. 181
4.6
内部クロック逓倍動作(クロックダブラ)................................ 182
4.7
外部バス動作のプログラム例 ........................................... 183
第5章
I/Oポート ..................................................... 187
5.1
I/Oポートの概要 ...................................................... 188
5.2
ポートデータレジスタ(PDR) ............................................ 189
5.3
データ方向レジスタ(DDR) .............................................. 190
5.4
外部端子と切換えレジスタとの関係 ..................................... 191
第6章
16ビットリロードタイマ ........................................ 195
6.1
16ビットリロードタイマの概要 ......................................... 196
6.2
16ビットリロードタイマのレジスタ ..................................... 197
6.2.1
コントロールステータスレジスタ(TMCSR) .............................. 198
6.2.2
16ビットタイマレジスタ(TMR)/16ビットリロードレジスタ(TMRLR) ....... 200
6.3
16ビットリロードタイマの動作 ......................................... 201
6.4
カウンタの動作状態 ................................................... 203
第7章
PWMタイマ ..................................................... 205
7.1
PWMタイマの概要 ...................................................... 206
7.2
PWMタイマのブロックダイヤグラム ...................................... 207
7.3
PWMタイマのレジスタ .................................................. 208
7.3.1
コントロールステータスレジスタ(PCNH,PCNL) .......................... 209
7.3.2
PWM周期設定レジスタ(PCSR) .......................................... 212
7.3.3
PWMデューティ設定レジスタ(PDUT) .................................... 213
7.3.4
PWMタイマレジスタ(PTMR) ............................................ 214
7.3.5
ジェネラルコントロールレジスタ1(GCN1) .............................. 215
7.3.6
ジェネラルコントロールレジスタ2(GCN2) .............................. 218
7.4
PWM動作 .............................................................. 219
7.5
ワンショット動作 ..................................................... 220
viii
7.6
PWMタイマの割込み要因とタイミングチャート............................. 221
7.7
PWMタイマ複数チャネルの起動 .......................................... 222
第8章
U-TIMER ....................................................... 225
8.1
U-TIMERの概要 ........................................................ 226
8.2
U-TIMERのレジスタ .................................................... 227
8.3
U-TIMRの動作 ......................................................... 229
第9章
外部割込み/NMI制御部 ......................................... 231
9.1
外部割込み/NMI制御部の概要 .......................................... 232
9.2
外部割込み/NMI制御部のレジスタ ...................................... 233
9.2.1
割込み許可レジスタ(ENIR) ........................................... 234
9.2.2
外部割込み要因レジスタ(EIRR) ....................................... 235
9.2.3
外部割込み要求レベル設定レジスタ(ELVR) ............................. 236
9.3
外部割込み動 作 ...................................................... 237
9.4
外部割込み要求レベル ................................................. 238
9.5
NMI(Non Maskable Interrupt:ノンマスカブル割込み)の動作............... 239
第10章
遅延割込みモジュール .......................................... 241
10.1
遅延割込みモジュールの概要 ........................................... 242
10.2
遅延割込み制御レジスタ(DICR) ......................................... 243
10.3
遅延割込みモジュールの動作 ........................................... 244
第11章
割込みコントローラ ............................................ 245
11.1
割込みコントローラの概要 ............................................. 246
11.2
割込みコントローラのブロックダイヤグラム.............................. 247
11.3
割込みコントローラのレジスタ ......................................... 248
11.3.1
割込み制御レジスタ(ICR) ............................................ 250
11.3.2
ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL) ............... 251
11.4
優先順位判定 ......................................................... 252
11.5
スタンバイモード(ストップ/スリープ)からの復帰...................... 254
11.6
ホールドリクエスト取下げ要求 ......................................... 255
11.7
ホールドリクエスト取下げ要求機能(HRCR)の使用例........................ 256
ix
第12章
A/Dコンバータ(逐次比較型) ..................................... 259
12.1
A/Dコンバータの概要 .................................................. 260
12.2
A/Dコンバータのブロックダイヤグラム................................... 261
12.3
A/Dコンバータのレジスタ .............................................. 262
12.3.1
コントロールステータスレジスタ(ADCS) ............................... 263
12.3.2
データレジスタ(ADCR) ............................................... 267
12.4
A/Dコンバータの動作 .................................................. 268
12.5
変換データ保護機能 ................................................... 270
12.6
A/Dコンバータ使用上の注意 ............................................ 271
第13章
UART .......................................................... 273
13.1
UARTの概要 ........................................................... 274
13.2
UARTのブロックダイヤグラム ........................................... 275
13.3
UARTのレジスタ ....................................................... 276
13.3.1
シリアルモードレジスタ(SMR) ........................................ 277
13.3.2
シリアルコントロールレジスタ(SCR) .................................. 279
13.3.3
シリアルインプットデータレジスタ(SIDR)/シリアルアウトプットデータレジス
タ(SODR) ........................................................... 281
13.3.4
13.4
シリアルステータスレジスタ(SSR) .................................... 282
UARTの動作とクロック選択 ............................................. 284
13.4.1
非同期(調歩同期)モード ........................................... 285
13.4.2
CLK同期モード ...................................................... 286
13.5
UARTの割込み発生とフラグのセットタイミング............................ 288
13.6
UARTの使用上の注意と応用例 ........................................... 290
13.7
ボーレートとU-TIMERのリロード値の設定例............................... 292
第14章
DMAコントローラ(DMAC) ....................................... 293
14.1
DMAコントローラの概要 ................................................ 294
14.2
DMAコントローラのブロックダイヤグラム................................. 295
14.3
DMAコントローラのレジスタ ............................................ 296
14.3.1
DMACパラメータディスクリプタポインタ(DPDP) ......................... 297
14.3.2
DMACコントロールステータスレジスタ(DACSR) .......................... 298
14.3.3
DMAC端子コントロールレジスタ(DATCR) ................................ 300
14.3.4
RAM上のディスクリプタ内レジスタ .................................... 302
x
14.4
DMAコントローラの転送モード .......................................... 305
14.4.1
ステップ転送(シングル/ブロック転送) ................................ 308
14.4.2
連続転送 ........................................................... 309
14.4.3
バースト転送 ....................................................... 310
14.4.4
DREQセンスモードによる違い(エッジモード時の注意事項) ............... 311
14.4.5
DREQセンスモードによる違い(レベルモード時の注意事項) ............... 312
14.5
転送受付け信号出力と転送終了信号出力.................................. 313
14.6
DMAコントローラに関する注意事項 ...................................... 314
14.7
DMAコントローラのタイミング図 ........................................ 317
第15章
14.7.1
ディスクリプタアクセス部のタイミング図 ............................. 318
14.7.2
データ転送部のタイミング図 ......................................... 320
14.7.3
連続転送モードでの転送停止タイミング図 ............................. 321
14.7.4
転送の終了動作タイミング図 ......................................... 323
ビットサーチモジュール ........................................ 325
15.1
ビットサーチモジュールの概要 ......................................... 326
15.2
ビットサーチモジュールのレジスタ ..................................... 327
15.3
ビットサーチモジュールの動作と退避/復帰処理.......................... 329
付録
.............................................................. 331
A
I/Oマップ ............................................................ 332
B
割込みベクタ ......................................................... 339
C
各CPUステートにおける端子状態 ........................................ 341
D
リトルエンディアン領域を利用する際の注意事項.......................... 345
D.1
Cコンパイラ(fcc911) ................................................ 346
D.2
アセンブラ(fasm911) ................................................ 349
D.3
リンカ(flnk911) .................................................... 351
D.4
デバッガ(sim911,eml911,mon911) ..................................... 352
E
命令一覧 ............................................................. 353
E.1
索引
FRシリーズの命令一覧表 ............................................. 356
.............................................................. 369
xi
xii
第1章
MB91107/MB91108の概要
MB91107/MB91108の概要
この章では,MB91107/MB91108の特長,ブロックダイヤグラム,機能概要など全体
を知るための基本的なことについて説明します。
1.1 MB91107/MB91108の特長
1.2 MB91107/MB91108の全体ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 端子機能説明
1.6 入出力回路形式
1
第1章 MB91107/MB91108の概要
1.1
MB91107/MB91108の特長
MB91107/MB91108の特長
MB91107/MB91108は,32ビットRISC CPU(FRシリーズ)をコアとし,高性能/高速
なCPU処理を要求される組込み制御用に各種I/Oリソースやバス制御機構を内蔵した,
標準シングルチップ・マイクロコントローラです。32ビットCPUがアクセスする広大
なアドレス空間をサポートするために,外部バスアクセスが基本となっていますが,
CPU の 命 令 実 行 の 高 速 化 の た め に 1KB の 命 令 キ ャ ッ シ ュ メ モ リ と 大 容 量
(MB91107:128KB,MB91108:160KB)のRAMを内蔵しています。
ナビゲーションシステム,高性能FAX,プリンタ制御など,高性能なCPU処理パワー
を要求される組込み用途に最適な仕様となっています。
■ MB91107/MB91108の特長
○
FR-CPU
l
l
l
l
l
32ビットRISC,ロード/ストアアーキテクチャ,5段パイプライン
動作周波数:内部50MHz[外部25MHz]
(PLL使用,原振12.5MHz時)
汎用レジスタ:32ビット×16本
16ビット固定長命令(基本命令)
,1命令/1サイクル
メモリ−メモリ間転送,ビット処理,バレルシフトなどの命令:組込み
用途に適した命令
l
関数入口/出口命令,レジスタ内容のマルチロード/ストア命令:高級
言語対応命令
l
l
l
レジスタ インターロック機能:アセンブラ記述の容易化
遅延スロット付き分岐命令:分岐処理時のオーバヘッドの低減
乗算器の内蔵/命令レベルでのサポート
-
符号付き32ビット乗算:5サイクル
-
符号付き16ビット乗算:3サイクル
l
○
割込み(PC,PSの退避):6サイクル,16プライオリティレベル
バスインタフェース
l
l
l
l
l
l
クロックダブラ使用:内部50MHz,外部バス25MHz動作
25ビットアドレスバス(32MB空間)
16/8ビットデータバス
基本外部バスサイクル:2クロックサイクル
最小64K byte単位で設定可能なチップセレクト出力:8本
各種メモリに対するインタフェースのサポート
-
l
l
l
2
DRAMインタフェース(領域4,5)
自動ウェイトサイクル:領域ごとに0∼7サイクルのうちで任意に設定可
能
未使用データ/アドレス端子は,入出力ポートとして使用可能
little endianモードサポート(領域1∼5のうち1領域選択)
1.1 MB91107/MB91108の特長
○
DRAMインタフェース
l
l
l
2バンク独立制御(領域4,5)
Double CAS DRAM(通常DRAM I/F)/ Single CAS DRAM/ Hyper DRAM
基本バスサイクル:通常5サイクル,高速ページモード時2サイクルアク
セス可能
l
l
プログラマブル波形:RAS,CASに1サイクル自動ウェイト挿入可能
DRAMリフレッシュ
-
CBRリフレッシュ(6ビットタイマによりインターバルを任意に設定)
-
セルフリフレッシュモード
l
l
○
8/9/10/12本のコラムアドレスに対応
2CAS/1WE, 2WE/1CASの選択可
キャッシュメモリ
l
l
l
l
○
1KB命令キャッシュ
2way set associative
32ブロック/ウェイ,4エントリ(4word)/ブロック
ロック機能:特定プログラムコードのキャッシュへの常駐化
DMAC(DMA Controller)
l
l
l
l
l
○
転送要因:外部端子/内蔵リソースの割込み要求
転送シーケンス
-
ステップ転送/ブロック転送
-
バースト転送/連続転送
転送データ長:8ビット/16ビット/32ビットから選択可
NMI/割込み要求によって一時停止が可能
UART
l
l
l
l
l
l
l
l
○
8チャネル
独立3チャンネル
全二重ダブルバッファ
データ長:7∼9ビット(パリティ無し)
,6∼8ビット(パリティ有り)
非同期(調歩同期)
, CLK同期通信の選択可能
マルチプロセッサモード
ボーレートジェネレータとして16ビットタイマ(U-Timer)内蔵:任意
のボーレートを発生
外部クロックを転送クロックとして使用可能
エラー検出:パリティ,フレーム,オーバラン
A/Dコンバータ(逐次変換型)
l
l
10ビット分解能,4チャネル
逐次比較変換:25MHz時 5.6μs
3
第1章 MB91107/MB91108の概要
l
l
l
○
サンプル&ホールド回路内蔵
変換モード:シングル変換/スキャン変換/リピート変換より選択
起動:ソフトウェア/外部トリガ/内蔵タイマより選択
リロードタイマ
l
l
○
16ビットタイマ:3チャネル
内部クロック:2クロックサイクル分解能,2/8/32分周から選択
その他のインターバルタイマ
l
l
l
○
16ビットタイマ:3チャネル(U-TIMER)
PWMタイマ:4チャネル
ウォッチドッグタイマ:1チャネル
ビットサーチモジュール
l
○
1ワード中のMSBからの最初の“1”/“0”の変化ビットの位置を1サイク
ルでサーチ
割込みコントローラ
l
l
l
○
外部割込み入力:マスク不可割込み(NMIX),通常割込み×8(INT0∼INT7)
内部割込み要因:UART,DMAC,A/D,UTIMER,遅延割込み
マスク不可割込み以外は,優先レベルをプログラマブルに設定可能(16
レベル)
リセット要因
l
○
パワーオンリセット/ハードウェアスタンバイ/ウォッチドッグタイマ
/ソフトウェアリセット/外部リセット
低消費電力モード
l
○
スリープ/ストップモード
クロック制御
l
○
ギア機能:CPUとペリフェラルの動作クロック周波数を独立に任意に設
定可能
ギアクロックは1/1,1/2,1/4,1/8(または1/2,1/4,1/8,1/16)から選択可
能
ただし,ペリフェラルの動作は25MHzを上限とする。
その他
l
l
l
4
パッケージ:LQFP-120
CMOSテクノロジー
-
MB91107(0.25μm):量産用
-
MB91V108(0.25μm):開発用
-
MB91108(0.25μm):量産用
電源:3.3V±5%(内部レギュレータあり)
1.2 MB91107/MB91108の全体ブロックダイヤグラム
1.2
MB91107/MB91108の全体ブロックダイヤグラム
MB91107/MB91108の全体ブロックダイヤグラム
図 1.2-1に , MB91107/MB91108の全体ブロックダイヤグラムを示します。
■ MB91107/MB91108の全体ブロックダイヤグラム
図 1.2-1 MB91107/MB91108の全体ブロックダイヤグラム
<注意事項>
・端子は機能別表記です(実際の端子は一部マルチプレクス)
。
・REALOSをご使用になる場合は,外部割込みを使うか内蔵タイマを使って時間管理を行ってくだ
さい。
5
第1章 MB91107/MB91108の概要
1.3
外形寸法図
MB91107/MB91108には,2種類のパッケージが用意されています。
■ 外形寸法図(LQFP-120)
EIAJコ ー ド : *P-LQFP-0120-1616-0.50
プラスチック・LQFP,120ピン
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
16.0×16.0mm
リ ー ド 形 状
ガルウィング
封
止
方
法
プラスチックモールド
取 付 け 高 さ
重
1.70mm MAX
さ
0.88g
(FPT-120P-M21)
プラスチック・LQFP,120ピン
(FPT-120P-M21)
18.00±0.20(.709±.008)SQ
16.00±0.10(.630±.004)SQ
90
61
91
60
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
INDEX
120
LEAD No.
1
30
0.50(.020)
C
0~8°
"A"
31
0.22±0.05
(.009±.002)
+0.05
0.08(.003)
M
0.145 –0.03
+.002
.006 –.001
0.45/0.75
(.018/.030)
0.10±0.05
(.004±.002)
(Stand off)
0.25(.010)
1998 FUJITSU LIMITED F120033S-2C-2
単位:mm(inches)
図 1.3-1 FPT-120P-M21の外形寸法図
6
1.3 外形寸法図
■ 外形寸法図(PGA-135)
EIAJコ ー ド : *PGA135-C-S14U-2
セラミック・PGA,135ピン
リ ー ド ピ ッ チ
2.54mm(100mil)
ピンマトリックス
14
封
止
方
法
メタルシール
(PGA-135C-A02)
セラミック・PGA,135ピン
(PGA-135C-A02)
2.54±0.25
(.100±.010)
1.27(.050)TYP DIA
33.02(1.300)
REF
INDEX
INDEX AREA
+0.18
0.46 –0.05 DIA
+.007
.018 –.002
+0.25
35.56±0.51 SQ
(1.400±.020)
1.27 –0.76
+.010
.050 –.030
6.10(.240)
MAX
C
+0.51
3.30 –0.25
+.020
.130 –.010
1994 FUJITSU LIMITED R135008SC-2-2
単位:mm(inches)
図 1.3-2 PGA-135C-A02の外形寸法図
7
第1章 MB91107/MB91108の概要
1.4
端子配列図
図 1.4-1に,MB91107/MB91108の端子配列図を示します。
■ 端子配列図(LQFP-120)
図 1.4-1 LQFP-120の端子配列図
8
1.5 端子機能説明
1.5
端子機能説明
表 1.5-1に,MB91107/MB91108の端子機能一覧を示します。
表中のNO.は,パッケージのピン番号ではありません。ピン番号については,
「1.4
端子配列図」を参照してください。
■ 端子機能説明
表 1.5-1 端子機能説明(続く)
NO.
端子名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
D16/P20
D17/P21
D18/P22
D19/P23
D20/P24
D21/P25
D22/P26
D23/P27
D24
D25
D26
D27
D28
D29
D30
D31
A00
A01
A02
A03
A04
A05
A06
A07
A08
A09
A10
A11
A12
A13
A14
A15
A16/P60
A17/P61
A18/P62
A19/P63
A20/P64
A21/P65
A22/P66
A23/P67
入出力回路
形式
機
能
外部データバスのビット16∼ビット23です。
外部バス幅が8ビットの設定のとき,ポート(P20∼P27)として使用
できます。
C
外部データバスのビット24∼ビット31です。
C
外部アドレスバスのビット00∼ビット15です。
F
外部アドレスバスのビット16∼ビット23です。
アドレスバスとして使用しない場合は,ポート(P60∼P67)として使
用できます。
F
9
第1章 MB91107/MB91108の概要
表 1.5-1 端子機能説明(続く)
10
NO.
端子名
41
A24/P70
42
RDY/P80
43
BGRNTX/P81
44
BRQ/P82
45
46
RDX
WR0X
47
WR1X/P85
入出力回路
機
能
形式
F
外部アドレスバスのビット24です。
アドレスバスとして使用しない場合は,ポート(P70)として使用でき
ます。
C
外部レディ入力です。実行中のバスサイクルが完了しないときに0
を入力します。未使用時はポートとして使用できます。
F
外部バス開放受付け出力です。外部バスを開放したときにLを出力
します。未使用時はポートとして使用できます。
P
外部バス開放要求入力です。外部バスを開放してほしいときに1を
入力します。未使用時はポートとして使用できます。
M
外部バスリードストローブです。
M
外部バスライトストローブです。各制御信号とデータバスのバイト
位置は次のような関係になっています。
F
48
49
50
51
52
53
CS0X/PA0
CS1X/PA1
CS2X/PA2
CS3X/PA3
CS4X/PA4
CS5X/PA5
M
F
54
CLK/PA6
F
55
56
57
58
59
60
61
62
RAS0/PB0
CS0L/PB1
CS0H/PB2
DW0X/PB3
RAS1/PB4
CS1L/PB5
CS1H/PB6
DW1X/PB7
63
64
65
66
67
68
69
MD0
MD1
MD2
X0
X1
RSTX
HSTX
F
G
A
B
H
D31-24
D23-16
16ビットバス幅
WR0X
WR1X
8ビットバス幅
WR0X
(Port可)
( 注意事項)
WR1Xは,リセット中はHi-Zになっています。16ビットバス幅で
使用する場合は外部にプルアップ抵抗を付けてください。
チップセレクト0出力です(Low active)。
チップセレクト1出力です(Low active)。
チップセレクト2出力です(Low active)。
チップセレクト3出力です(Low active)。
チップセレクト4出力です(Low active)。
チップセレクト5出力です(Low active)。
[PA1-5] 未使用時はポートとして使用できます。
システムクロック出力です。外部バス動作周波数と同じクロックを
出力します。
[PA6] 未使用時はポートとして使用できます。
DRAMバンク0のRAS出力です。
DRAMバンク0のCASL出力です。
DRAMバンク0のCASH出力です。
DRAMバンク0の WE 出力です(Low active)。
DRAMバンク1のRAS出力です。
DRAMバンク1のCASL出力です。
DRAMバンク1のCASH出力です。
DRAMバンク1の WE 出力です(Low active)。
詳細は,DRAMインタフェースを参照してください。
[PB0-7] 未使用時はポートとして使用できます。
モード端子0∼2です。
これらの端子によりMCUの基本動作モードを設定します。
VccまたはVssに直接つないで使用してください。
クロック(発振)入力です。
クロック(発振)出力です。
外部リセット入力です。
ハードウェアスタンバイ入力です(Low active)。
1.5 端子機能説明
表 1.5-1 端子機能説明(続く)
NO.
端子名
70
71
NMIX
SC2/PE0
72
DREQ0/PE1
73
DACK0/PE2
74
EOP0/PE3
75
DREQ1/PE4
76
DACK1/PE5
77
EOP1/PE6
78
DREQ2/PE7
79
SI0/PF0
80
SO0/PF1
81
SC0/PF2
82
SI1/PF3
入出力回路
機
能
形式
H
NMI(Non Maskable Interrupt)入力です(Low active)。
F
[SC2] UART2のクロック入出力です。クロック出力はUART2のクロッ
ク出力指定が許可のときに有効となります。
[PE0] 汎用の入出力ポートです。この機能はUART2のクロック出力
指定が禁止のときに有効となります。
[DREQ0] DMA外部転送要求入力です。DMACの転送要因として選択し
F
た場合はこの入力を随時使用していますので,意図的に行う以外は
他の機能による出力を停止させておく必要があります。
[PE1] 汎用の入出力ポートです。
[DACK0] DMAC外部転送要求受付け出力です(ch0)。この機能はDMAC
F
の転送要求受付け出力指定が許可のときに有効となります。
[PE2] 汎用の入出力ポートです。この機能はDMACの転送要求受付け
出力指定またはDACK0出力指定が禁止のときに有効となります。
F
[EOP0] DMACのEOP出力指定が許可のとき[EOP0] DMAC EOP出力(ch0)
として使用できます。
[PE3] 汎用の入出力ポートです。
F
[DREQ1] DMA外部転送要求入力です。DMACの転送要因として選択し
た場合はこの入力を随時使用していますので,意図的に行う以外は
他の機能による出力を停止させておく必要があります。
[PE4] 汎用の入出力ポートです。
F
[DACK1] DMAC外部転送要求受付け出力です(ch1)。この機能はDMAC
の転送要求受付け出力指定が許可のときに有効となります。
[PE5] 汎用の入出力ポートです。この機能はDMACの転送要求受付け
出力指定またはDACK1出力指定が禁止のときに有効となります。
F
[EOP1] DMACのEOP出力指定が許可のとき[EOP1] DMAC EOP出
力(ch1)として使用できます。
[PE6] 汎用の入出力ポートです。
F
[DREQ2] DMA外部転送要求入力です。DMACの転送要因として選択し
た場合はこの入力を随時使用していますので,意図的に行う以外は
他の機能による出力を停止させておく必要があります。
[PE7] 汎用の入出力ポートです。
F
[SI0] UART0のデーダ入力です。UART0が入力動作をしている間はこ
の入力を随時使用していますので,意図的に行う以外は他の機能に
よる出力を停止させておく必要があります。
[PF0] 汎用の入出力ポートです。
F
[SO0] UART0のデータ出力です。この機能はUART0のデータ出力指定
が許可のときに有効となります。
[PF1] 汎用の入出力ポートです。この機能はUART0のデータ出力指
定が禁止のときに有効となります。
F
[SC0] UART0のクロック入出力です。クロック出力はUART0のクロッ
ク出力指定が許可のときに有効となります。
[PF2] 汎用の入出力ポートです。この機能はUART0のクロック出力
指定が禁止のときに有効となります。
F
[SI1] UART1のデータ入力です。UART1が入力動作をしている間はこ
の入力を随時使用していますので,意図的に行う以外は他の機能に
よる出力を停止させておく必要があります。
[PF3] 汎用の入出力ポートです。
11
第1章 MB91107/MB91108の概要
表 1.5-1 端子機能説明(続く)
12
入出力回路
機
能
形式
F
[SO1] UART1のデータ出力です。この機能はUART1のデータ出力指定
が許可のときに有効となります。
[PF4] 汎用の入出力ポートです。この機能はUART1のデータ出力指
定が禁止のときに有効となります。
F
[SC1] UART1のクロック入出力です。クロック出力はUART1のクロッ
ク出力指定が許可のときに有効となります。
[PF5] 汎用の入出力ポートです。この機能はUART1のクロック出力
指定が禁止のときに有効となります。
F
[SI2] UART2のデータ入力です。UART2が入力動作をしている間はこ
の入力を随時使用していますので,意図的に行う以外は他の機能に
よる出力を停止させておく必要があります。
[PF6] 汎用の入出力ポートです。
F
[SO2] UART2のデータ出力です。この機能はUART2のデータ出力指定
が許可のときに有効となります。
[PF7] 汎用の入出力ポートです。この機能はUART2のデータ出力指
定が禁止のときに有効となります。
I
[INT0-7] 外部割込み要求入力です。対応する外部割込みを許可し
ている間はこの入力を随時使用していますので,意図的に行う以外
は他の機能による出力を停止させておく必要があります。
[PG0-7] 汎用の入出力ポートです。
NO.
端子名
83
SO1/PF4
84
SC1/PF5
85
SI2/PF6
86
SO2/PF7
87
88
89
90
91
92
93
94
95
96
INT0/PG0
INT1/PG1
INT2/PG2
INT3/PG3
INT4/PG4
INT5/PG5
INT6/PG6
INT7/PG7
TRG0/PH0
TRG1/PH1
97
98
TRG2/PH2/CS6X
TRG3/PH3/CS7X
F
99
100
101
102
103
OCPA0/PH4
OCPA1/PH5
OCPA2/PH6
OCPA3/PH7
DACK2/PI0
F
F
104
EOP2/PI1/ATGX
F
F
[TRG0-1] PWMタイマの外部トリガ入力です。この機能はPH0-1の
データ出力指定が禁止のときに有効となります。
[PH0-1] 汎用の入出力ポートです。
[TRG2-3] PWMタイマの外部トリガ入力です。この機能はPH2-3の
データ出力指定が禁止のときに有効となります。
[PH6-7] TRG2-3,CS6X-7X未使用時はポートとして使用できます。
チップセレクト6出力です(Low active)。
チップセレクト7出力です(Low active)。
[OCPA0-3] PWMタイマの出力です。この機能はPWMタイマの出力指定
が許可のときに有効となります。
[PH4-7] 汎用の入出力ポートです。
[DACK2] DMAC外部転送要求受付け出力です(ch2)。この機能はDMAC
の転送要求受付け出力指定が許可のときに有効となります。
[PI0] 汎用の入出力ポートです。この機能はDMACの転送要求受付け
出力指定またはDACK2出力指定が禁止のときに有効となります。
[EOP2] DMAC EOP出力です(ch2)。この機能はDMACのEOP出
力指定が許可のときに有効になります。
[PI1] 汎用の入出力ポートです。この機能はDMACの転送終了信号出
力指定が禁止のときに有効となります。
[ATGX] A/Dコンバータの外部トリガ入力です。A/Dの起動要因とし
て選択した場合はこの入力を随時使用していますので,意図的に行
う以外は他の機能による出力を停止させておく必要があります。
1.5 端子機能説明
表 1.5-1 端子機能説明(続き)
NO.
端子名
105-108
AN0-AN3
109
110
AVCC
AVRH
111
112-114
AVSS/AVRL
VCC
115
C
116-120
VSS
入出力回路
機
能
形式
N
[AN0-3] A/Dコンバータアナログ入力です。この機能はAICレジスタ
の指定がアナログ入力のとき有効となります。
A/Dコンバータ VCC電源です。
A/Dコンバータ基準電圧です(高電位側)。この端子の投入/切断は
必ずVCCにAVRH以上の電位が印加してある状態で行ってください。
A/Dコンバータ VSS電源,および基準電圧です(低電位側)。
ディジタル回路の電源です。必ず3端子とも電源を接続して使用し
てください。
−
内蔵レギュレータのパスコン端子です。
「第2章 デバイスの取扱いについて」を参照してください。
ディジタル回路の接地レベルです。
<注意事項>
上記の大部分の端子は,xxxx/PxxといったようにI/Oポートとリソースの入出力がマルチプレ
クスされます。これら端子でポートとリソースの出力どうしが競合した場合,リソースが優先さ
れます。
13
第1章 MB91107/MB91108の概要
1.6
入出力回路形式
表 1.6-1に , 入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式(続く)
分類
回路形式
備 考
・発振帰還抵抗:約1MΩ
A
B
C
F
14
・CMOSレベルヒステリシス入力
スタンバイ制御なし
プルアップ抵抗付き
・CMOSレベル入出力
スタンバイ制御あり
・CMOSレベル出力
・CMOSレベルヒステリシス入力
スタンバイ制御あり
1.6 入出力回路形式
表 1.6-1 入出力回路形式(続く)
分類
G
備
考
・CMOSレベル入力
スタンバイ制御なし
H
・CMOSレベルヒステリシス入力
スタンバイ制御なし
I
回路形式
・CMOSレベル出力
・CMOSレベルヒステリシス入力
スタンバイ制御なし
・CMOSレベル出力
M
・アナログ入力
N
15
第1章 MB91107/MB91108の概要
表 1.6-1 入出力回路形式(続き)
分類
P
16
回路形式
備
考
・CMOSレベル出力
・CMOSレベルヒステリシス入力
スタンバイ制御なし
第2章
デバイスの取扱いについて
この章では,MB91107/MB91108の取扱い上の注意について説明します。
2.1 端子,回路に関する取扱い上の注意
2.2 各デバイス使用上の注意
2.3 電源投入時の注意
17
第2章 デバイスの取扱いについて
2.1
端子,回路に関する取扱い上の注意
ラッチアップ防止,端子処理,回路の取扱いについて説明します。
■ ラッチアップ防止
CMOS ICでは,入力端子や出力端子にVccより高い電圧やVssより低い電圧を印加
した場合,またはVcc∼Vss間に定格を超える電圧を印加した場合に,ラッチアップ
現象を生じることがあります。ラッチアップが生じると電源電流が激増し,素子の
熱破壊に至ることがありますので,使用に際しては最大定格を超えることのない
よう十分に注意してください。
■ 端子処理
○
未使用入力端子の処理
使用していない入力端子を開放のままにしておくと誤動作の原因となること
がありますので,プルアップ,またはプルダウンなどの処理をしてください。
○
NC端子の処理
NC端子は,必ず開放にして使用してください。
○
出力端子の処理
出力端子を電源や他の出力端子とショートさせたり,大きな容量負荷を接続
すると大電流が流れる場合があります。このような状態が長時間続くとデバイ
スが劣化しますので,使用に際しては最大定格を超えることのないよう十分に
注意してください。
○
電源端子の処理
Vcc・Vssが複数ある場合,デバイス設計上はラッチアップなどの誤動作を防
止するためにデバイス内部で同電位にすべきもの同士を接続してありますが,
不要輻射の低減・グラウンドレベルの上昇によるストローブ信号の誤動作の防
止・総出力電流規格を遵守などのために,必ずそれらすべてを外部で電源およ
びグラウンドに接続してください。
また,電流供給源から出来るかぎり低インピーダンスで本デバイスのVcc・Vss
に接続するような配慮をお願い致します。
さらに,本デバイスの近くで,VccとVssの間に0.1μF程度のセラミックコン
デンサをバイパスコンデンサとして接続することをお勧めいたします。
○
モード端子 (MD0∼MD2)の処理
これらの端子は,VccまたはVssに直接つないで使用してください。また,ノ
イズにより誤ってテストモードに入ってしまうことを防ぐために,プリント板
上の各モード端子とVccまたはVss間のパターン長をできる限り短くし,これら
を低インピーダンスで接続するようにしてください。
18
2.1 端子,回路に関する取扱い上の注意
■ 回路の取扱い
○
水晶発振回路の取扱い
X0,X1端子の近辺のノイズは本デバイスの誤動作のもととなります。X0とX1
および水晶発振子(あるいはセラミック発振子)さらにグラウンドへのバイパ
スコンデンサは出来るかぎり近くに配置するようにプリント板を設計してくだ
さい。
○
プリント板の設定
X0,X1端子の回りをグラウンドで囲むようなプリント板アートワークは安定
した動作を期待できますので,強くお勧めいたします。
19
第2章 デバイスの取扱いについて
2.2
各デバイス使用上の注意
外部リセット入力,外部クロック,内蔵DC-DCレギュレータの使用上の注意につい
て説明します。
■ 外部リセット入力使用時の注意
RSTX端子に“L”レベルを入力し,内部が確実にリセット状態となるためには,
RSTX端子の“L”レベル入力が最低5マシンサイクル必要です。
■ 外部クロック使用上の注意
外部クロックを使用する際には,原則としてX0端子,またX1端子にはX0と逆相
のクロックを同時に供給してください。ただし,STOPモード(発振停止モード)
を併用する場合は,STOPモード時にX1端子が“H”出力で停止しますので,出力ど
うしの衝突をさけるために,外部に1KΩ程度の抵抗を入れるようにしてください。
図 2.2-1に外部クロック使用例について示します。
図 2.2-1 外部クロック使用例(通常の場合)
<注意事項>
STOPモード(発振停止モード)使用時には,X1端子に抵抗を入れてください。
■ 内蔵DC-DCレギュレータ使用上の注意
MB91107/MB91108はレギュレータを内蔵しており,VCC端子に3.3Vを供給し,C端
子にはレギュレータ用に0.1μF程度のパスコンを必ず入れてください。
また,A/Dコンバータには別途3.3V電源が必要です。
図 2.2-2に電源接続例を示します。
図 2.2-2 3.3V電源の電源接続例
20
2.2 各デバイス使用上の注意
■ STOPモード使用時の注意
MB91107/MB91108に内蔵されているレギュレータはSTOPモード時に停止します。
STOP中に内部のリーク電流(ICCH)の増加や,あるいは通常動作中にノイズ起因の
誤動作や電源の異常などによってレギュレータが停止した場合などに,内部の2.5V
電源が動作保証電圧以下に低下してしまうことがありますので,内蔵レギュレー
タを使用してSTOPモードを使用する場合には,かならず外部から3.3V電源が低下し
ないように電源を補助してください。また,そのような状態になった場合でもリ
セットの入力により内蔵レギュレータを再起動させることができます(この場合
には発振安定待ち時間tOSCの間,リセットをLレベルにしてください)。
図 2.2-3に3.3V電源でSTOPモードの使用例を示します。
図 2.2-3 3.3V電源でSTOPモードの使用例
21
第2章 デバイスの取扱いについて
2.3
電源投入時の注意
電源投入時の端子,入力などに関する注意事項を示します。
■ RSTX端子の処理
電源投入時には,必ずRSTX端子を“L”レベル状態から開始し,電源がVccレベ
ルになってから,最低でも内部動作クロックの5サイクル分の時間を確保してから
“H”レベルにしてください。
■ 端子状態
電源投入時の端子の状態は不定です。電源を投入し発振が開始し,内蔵レギュ
レータの動作が安定した後,回路の初期化が行われます。したがって原振12.5MHz
の場合で発振開始から端子が初期化されるまで約42mS要します(MB91107/MB91108
は内部電源が立上がった後,RSTX端子を“L”レベル状態にすることで,端子状態
のみ,約42mSの時間待ち経過以前に初期化されます)
。
■ 原振入力時の注意
電源投入時は,必ず発振安定待ち解除されるまでの間クロックを入力してくだ
さい。
■ ハードウェアスタンバイ
HSTX端子を“L”レベル状態で電源投入された場合はスタンバイには入りません。
HSTX端子はリセット解除後に有効となりますが,一度“H”レベルに戻す必要があ
ります。
■ パワーオンリセット
電源投入時,および電源電圧が動作保証電圧を下回った場合の再投入時は,必
ずパワーオンリセットをかけてください。
22
第3章
CPU
この章では,FRシリーズのCPUコアの機能を知るために,アーキテクチャ,仕様,
命令などの基本的なことについて説明します。
3.1
メモリ空間
3.2
CPUアーキテクチャ
3.3
命令キャッシュ
3.4
専用レジスタ
3.5
汎用レジスタ
3.6
データ構造
3.7
ワードアライメント
3.8
メモリマップ
3.9
命令概要
3.10 E I T ( 例外・割込み・トラップ)
3.11 リセットシーケンス
3.12 クロック
3.13 低消費電力モード
3.14 メモリアクセスモード
23
第3章 CPU
3.1
メモリ空間
FRシリーズの論理アドレス空間は4Gbyte(232番地)あり,CPUはリニアにアクセ
スを行います。
■ メモリマップ
図 3.1-1にMB91107/MB91108のメモリ空間を示します。
図 3.1-1 MB91107/MB91108のメモリマップ
<注意事項>
MB91107/MB91108には,上記のモードしか存在しません。
○
ダイレクトアドレッシング領域
アドレス空間の下記の領域はI/O用に使用されます。この領域をダイレクト
アドレッシング領域と呼び,命令中で直接オペランドのアドレスを指定できま
す。ダイレクト領域は,アクセスするデータのサイズにより,以下のように異
なります。
l
l
l
24
バイトデータアクセス:0∼0FFH
ハーフワードデータアクセス:0∼1FFH
ワードデータアクセス:0∼3FFH
3.2 CPUアーキテクチャ
3.2
CPUアーキテクチャ
CPUアーキテクチャ
FR CPUは,RISCアーキテクチャを採用すると同時に,組み込み用途に向けた高機
能命令を導入した,高性能コアです。
■ CPUアーキテクチャの特 長
○
RISCアーキテクチャの採用
l
○
基本命令:1命令1サイクル
32ビットアーキテクチャ
l
汎用レジスタ32ビット×16本
○
4GBのリニアなメモリ空間
○
乗算器の搭載
l
l
○
多重割込みのサポート
レベルマスク機能(16レベル)
メモリ−メモリ転送命令
ビット処理命令
高いコード効率
l
○
高速応答速度(6サイクル)
I/O操作用命令の強化
l
l
○
16ビット×16ビット乗算:3サイクル
割込み処理機能の強化
l
l
l
○
32ビット×32ビット乗算:5サイクル
基本命令語長:16ビット
低消費電力
l
スリープモード,ストップモード
■ 内部アーキテクチャの構造
FRのCPUは,命令バスとデータバスが独立したハーバードアーキテクチャ構造を
採用しています。
命令バス(I-BUS)には,オンチップの命令キャッシュが接続されています。
32ビット←→16ビットバスコンバータはデータバス(D-BUS)に接続され,CPU
と周辺リソースとのインタフェースを実現します。ハーバード←→プリンストン
バスコンバータはI-BUS,D-BUS双方に接続され,CPUとバスコントローラとのイン
タフェースを実現します。
図 3.2-1に 内部アーキテクチャの構造を示します。
25
第3章 CPU
図 3.2-1 内 部 ア ー キ テ ク チ ャ の 構 造
○
CPU
CPUは,32ビットRISCのFRアーキテクチャをコンパクトにインプリメントし
たものです。
1サイクルあたり1命令の実行を行うため,5段階の命令パイプライン方式を
採用しています。パイプラインは以下のステージから構成されています。
l
l
l
l
l
命令フェッチ(IF):命令アドレスを出力し,命令をフェッチします。
命令デコード(ID):フェッチした命令をデコードします。レジスタの読
み出しも行います。
実行(EX):演算を実行します。
メモリアクセス(MA):メモリに対するロードまたはストアのアクセスを
行います。
ライトバック(WB):演算結果(またはロードされたメモリデータ)をレ
ジスタに書き込みます。
図 3.2-2に命令パイプラインを示します。
図 3.2-2 命 令 パ イ プ ラ イ ン
命令は,順不同で実行されることはありません。すなわち,命令Aが命令Bの
前にパイプラインに入ると,命令Aは必ず命令Bの前にライトバックステージに
達します。
26
3.2 CPUアーキテクチャ
命令の実行は,原則として1サイクルあたり1命令の速度で行われます。ただ
し,メモリウエイトを伴ったロード・ストア命令,遅延スロットを持たない分
岐命令,複数サイクル命令では命令の実行に複数のサイクルが必要となります。
また,命令の供給が遅い場合も命令の実行速度が低下します。
命令の詳細については,
「3.9 命令概要」を参照してください。
○
命令キャッシュ
オンチップの命令キャッシュにより,外部高速メモリとそれに関連する制御
ロジックのコストを発生することなく高性能なシステムを構築することができ
ます。外部バスの速度が遅い場合にも,CPUへの命令供給を高速に行うことが
できます。
命令キャッシュの詳細については,「3.3 命令キャッシュ」を参照してくだ
さい。
○
32ビット←→16ビットバスコンバータ
32ビット幅で高速アクセスされるD-BUSと,16ビット幅でアクセスされるRBUSとのインタフェースを行い,CPUから内蔵周辺回路へのデータアクセスを実
現します。
CPUから32ビット幅のアクセスがあった場合,このバスコンバータがそれを2
回の16ビット幅アクセスに変換してR-BUSへのアクセスを行います。内蔵周辺
回路の一部にはアクセス幅に関して制限のあるものがあります。
○
ハーバード←→プリンストンバスコンバータ
CPUの命令アクセスとデータアクセスの整合をとり,外部バスとのスムーズ
なインタフェースを実現します。
CPUは,命令バスとデータバスが独立したハーバードアーキテクチャ構造で
す。一方,外部バスの制御を行うバスコントローラは単一バスのプリンストン
アーキテクチャ構造です。このバスコンバータはCPUの命令アクセスとデータ
アクセスに優先順位をつけ,バスコントローラへのアクセスの制御を行います。
この働きにより,外部へのバスアクセス順位が常に最適化されたものになりま
す。
また,CPUのバス待ち時間をなくすための2ワードのライトバッファと,命令
フェッチのための1ワードのプリフェッチバッファを持っています。
27
第3章 CPU
3.3
命令キャッシュ
命令キャッシュは,一時記憶メモリです。命令コードを外部の低速メモリからア
クセスする場合,一度アクセスしたコードを内部に保持する役目を果たし,2回目以
降のアクセス速度を速めるために使用します。
命令キャッシュ,命令キャッシュタグはソフトウェアで直接リード/ライトアク
セスはできません。
また,命令キャッシュを一度“有効(ON)”にした後,“無効(OFF)”にする場合に
は,必ず「3.3.3」項に記載されているサブルーチンを使用してください。
■ 命令キャッシュのキャッシュ可能領域
命令キャッシュは,すべての空間をキャッシュ可能領域とします。
l
l
内蔵ROM搭載品では,内蔵ROMもキャッシュの対象とします。
外部領域,内蔵ROM以外の空間への命令アクセスが行われないことを前
提にしています。したがって,I/O領域の制御レジスタなどへ命令アク
セスが行われてもキャッシュの対象となります。
l
DMA転送で外部メモリの内容が更新されたとしてもキャッシュの内容と
のコヒーレンシはとりません。このような場合はキャッシュをフラッ
シュすることで,コヒーレンシを保ってください。
■ 命令キャッシュの構成
l
l
l
FRシリーズの基本命令長:2bytes
ブロックの配置方式:2ウェイセットアソシアティブ方式
ブロック
-
1ウェイは32ブロック構成
-
1ブロックは16bytes(=4サブブロック)
-
1サブブロックは4bytes(=1バスアクセス単位)
図 3.3-1に命令キャッシュの構成を示します。
図 3.3-1 命令キャッシュの構成
28
3.3 命令キャッシュ
■ 命令キャッシュタグの構成
図 3.3-2に命令キャッシュタグの構成を示します。
図 3.3-2 命令キャッシュタグの構成
[bit 31∼9] アドレスタグ
対応するブロックにキャッシュされている命令のメモリアドレスの上位
23bitがストアされています。
ブロックiのサブブロックkに格納されている命令データのメモリアドレスIA
は,IA=アドレスタグ×29+i×24+k×22となります。
CPUからアクセス要求された命令アドレスの一致を検査するために使用しま
す。タグ検査の結果に従い,以下のような動作をします。
l
l
要求された命令データがキャッシュ内に存在するとき(ヒット)
,キャッ
シュからCPUへサイクル内にデータを転送します。
要求された命令データがキャッシュ内に存在しないとき(ミス),外部
アクセスで取得されたデータをCPUとキャッシュが同時に取得します。
[bit 7∼4] サブブロックバリッド
SBV*=1のとき,対応するサブブロックにタグで示されたアドレスの現行命
令データがエントリされています。
サブブロックには, 通常2命令が格納されます(即値転送命令を除く)
。
[bit 3] TAGバリットビット
アドレスタグの値が有効かどうかを示します。このビットが0のときはサブ
バリットビットに無関係に,このブロックはインバリット状態になります(フ
ラッシュ時)
。
29
第3章 CPU
[bit 1] LRU(ウェイ1のみ)
ウェイ1の命令キャッシュタグにのみ存在します。
選択されたセットについて,最後にアクセスしたエントリがウェイ1,2のど
ちらであるかを示します。LRU=1のときはウェイ1の,LRU=0のときはウェイ2
のセットのエントリが最後にアクセスしたことを示します。
[bit 0] エントリロック
タグに相当するブロック内の全エントリをキャッシュにロックします。
ETLK=1のときにロック状態で,キャッシュミス時にエントリは更新されま
せん。
ただし,無効なサブブロックは更新されます。
ウェイ1,2ともにエントリロックされているときにキャッシュミスした場合
は,キャッシュミス判定の1サイクルをロスした後,外部メモリをアクセスし
ます。
30
3.3 命令キャッシュ
3.3.1
命令キャッシュ制御レジスタ(ICHCR)
命令キャッシュ制御レジスタ(ICHCR)
命令キャッシュ制御レジスタ(ICHCR)は, 命令キャッシュの動作を制御します。
ICHCRへの書き込みは,以降3サイクル以内にフェッチされる命令のキャッシュ動
作に影響を与えません。
■ 命令キャッシュ制御レジスタ(ICHCR)
命令キャッシュ制御レジスタ(ICHCR)は,ウェイ1とウェイ2で共用になっていま
す。
図 3.3-3 命令キャッシュ制御レジスタ(ICHCR)
[bit 5] グローバルロック
すべてのカレントエントリをキャッシュにロックします。
GBLK=1のとき,キャッシュ内の有効なエントリはミス時に更新されません。
ただし,無効なサブブロックは更新されます。その際の命令データフェッチ
動作は,ロックしていないときと同様です。
グローバルロック時にも,ミス時には1サイクルのペナルティを受けます。
[bit 4] オートロックフェイル
すでにロックしているエントリをさらにロックしようとするとALFL=1に
セットされます。
エントリオートロック中のエントリの更新が,すでにロックされているエン
トリに対して行われようとしたとき,ユーザの意図に反して,新たなエントリ
がキャッシュ中にロックされません。このようなプログラムのデバッグのため
に参照します。
“0”書き込みでクリアされます。
[bit 3] エントリオートロック
命令キャッシュ内の各エントリに対して,オートロッキングの有効/無効を
切り換えます。
EOLK=1のときにアクセス(ミス時のみ)されたエントリは,キャッシュタ
グ内のエントリロックビットがハードウェアで1にセットされることにより,
ロックされます。ロックされたエントリは以後,キャッシュミス時の更新の対
象になりません。
ただし,無効なサブブロックは更新されます。確実にロックするためには一
度フラッシュした後,このビットをセットしてください。
31
第3章 CPU
[bit 2] エントリロック解除
すべてのキャッシュタグ中のエントリロックビットのクリアを指定します。
ELKR=1にセットされた次のサイクルで,すべてのキャッシュタグ中のエン
トリロックビットが0にクリアされます。ただし,本ビットの内容が保持され
るのは1クロックサイクルのみであり,2クロックサイクル以降は0にクリアさ
れます。
<注意事項>
命令キャッシュイネーブル(ENAB=1)時にエントリクロック解除(ELKR=1)しないでください。
[bit 1] フラッシュ
命令キャッシュのフラッシュを指定します。
FLSH=1のとき,キャッシュの内容がフラッシュされます。ただし,本ビッ
トの内容が保持されるのは1クロックサイクルのみであり,2クロックサイクル
以降は0にクリアされます。
<注意事項>
命令キャッシュイネーブル(ENAB=1)時にフラッシュ(FLSH=1)しないでください。
[bit 0] イネーブル
命令キャッシュのイネーブル/ディスエーブルを切り換えます。
ENAB=0のときディスエーブル状態で,CPUからの命令アクセスは,キャッシュ
を介さず外部に対して直接行われます。ディスエーブル状態では,キャッシュ
の内容は保存されます。
<注意事項>
命令キャッシュを有効状態から無効にする場合に,命令キャッシュとCPUのアドレスのタイミ
ングの同期を取るために「3.3.3 命令キャッシュ使用時の設定方法」に記述されているとおり
に行ってください。
32
3.3 命令キャッシュ
3.3.2
各動作モードの状態
動作モードによるキャッシュの状態とエントリ更新について説明します。
■ 各動作モード時のキャッシュの状態
ディスエーブルとフラッシュは,ビット操作命令などでそのビットだけ変化さ
せた場合の状態を示しています。
表 3.3-1 各動作モード時のキャッシュの状態
キャッシュメモリ
アドレスタグ
サブブロック
バリッドビッド
タ
LRU
グ
エントリ
クロックビット
TAGバリッド
ビット
グローバル
ロック
オートロック
制
フェイル
御
エントリオート
レ
ロック
ジ
エントリロック
ス
解除
タ
イネーブル
フラッシュ
リセット直後
内容は不定
ディスエーブル
フラッシュ
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え不可能
内容は不定
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え不可能
内容は不定
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え不可能
内容は不定
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え不可能
内容は不定
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え不可能
(要エントリクロック解除)
内容は不定
直前の状態を保持
すべてのエントリがインバリッ
ディスエーブル中フラッシュ可能 ド
アンロック
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え可能
フェイルなし
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え可能
アンロック
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え可能
解除なし
直前の状態を保持
直前の状態を保持
ディスエーブル中書換え可能
ディスエーブル
ディスエーブル
直前の状態を保持
フラッシュしない 直前の状態を保持
メモリアクセス直後のサイクル
ディスエーブル中書換え可能
でフラッシュ。以後0にもどる
■ キャッシュのエントリ更新
キャッシュのエントリ更新は,表 3.3-2のように行います。
表 3.3-2 キャッシュのエントリ更新
ヒット
ミス
アンロック
更新しない。
メモリをロードし,キャッシュの
エントリの内容を更新する。
ロック
更新しない。
タグミスの場合は更新しない。
サブブロックインバリッドの場合は更新する。
33
第3章 CPU
3.3.3
命令キャッシュ使用時の設定方法
MB91107/MB91108の命令キャッシュを使用するときの設定方法について説明します。
■ 命令キャッシュ使用時の設定方法
○
初期化
命令キャッシュを使い始めるとき,最初にキャッシュの中身をクリアしてお
く必要が有ります。
レジスタのFLSHビットとELKRビットを“1”にして,過去のデータを消去し
ます。
ldi
ldi
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00000110,r1 // FLSHビット(1ビット)
// ELKRビット(2ビット)
r1,@r0
// レジスタへ書き込み
stb
これでキャッシュが初期化されます。
また,キャッシュを使用開始後にクリアする場合は,必ずキャッシュディス
エーブルの状態で行ってください。
ldi
ldi
stb
ldi
stb
○
#0x000003e7,r0
#0B00000000,r1
r1,@r0
#0B00000010,r1
r1,@r0
//
//
//
//
//
命令キャッシュ制御レジスタのアドレス
キャッシュディスエーブル
レジスタへ書き込み
FLSHビット(1ビット)
レジスタへ書き込み
キャッシュを有効(ON)にする
命令キャッシュを有効にするにはENABビットを“1”にします。
ldi
ldi
stb
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00000001,r1 // ENABビット(0ビット)
r1,@r0
// レジスタへ書き込み
これ以降の命令アクセスがキャッシュに取り込まれて行きます。
キャッシュの有効化は,キャッシュの初期化と同時に行うこともできます。
ldi
ldi
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00000111,r1 // ENABビット(0ビット)
// FLSHビット(1ビット)
// ELKRビット(2ビット)
r1,@r0
// レジスタへ書き込み
stb
○
キャッシュを無効(OFF)にする
命令キャッシュを無効にするにはENABビットを“0”にします。
キャッシュを無効(OFF)にする場合に命令キャッシュとCPUとのアドレス整合
性を保つため,下記のプログラム例のように解除後にNOP,RET,JMPによってタ
イミング同期を行ってください。
l
ldi
ldi
stb
nop
nop
nop
ret
ret
ret
34
サブルーチンで無効にする場合
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00000000,r1 // ENABビット(0ビット)
r1,@r0
// レジスタへ書き込み
// タイミング同期のためnopを3回実行
//
//
// タイミング同期のためretを3回実行
//
//
3.3 命令キャッシュ
l
プログラムの途中で無効にする場合
ldi
#cHcHe_off,r2
ldi
#0x000003e7,r0
ldi
#0B00000000,r1
stb
r1,@r0
nop
nop
nop
jmp
@r2
jmp
@r2
jmp
@r2
chche_off:
//
//
//
//
//
//
//
//
//
//
//
キャッシュOFF後の飛び先指定
命令キャッシュ制御レジスタのアドレス
ENABビット(0ビット)
レジスタへ書き込み
タイミング同期のためnopを3回実行
タイミング同期のためjmpを3回実行
ラベル
この状態(リセット後の状態と同じ)では,キャッシュは無いのと同じで,何
もしません。
キャッシュのオーバヘッドが気になる処理のときは,OFFにすると良いかも
知れません。
○
キャッシュの内容をすべてロックする
現在命令キャッシュに入っている命令がキャッシュから追い出され無いよう
にロックします。
レジスタのGBLKビットを“1”にします。ENABビットも“1”にしておかない
と,キャッシュがOFFになってしまい,キャッシュ内のロックした命令が使わ
れません。
ldi
ldi
stb
○
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00100001,r1 // ENABビット(0ビット)
// GBLKビット(5ビット)
r1,@r0
// レジスタへ書き込み
特定の命令をキャッシュにロックする
特定の命令群(サブルーチンなど)をキャッシュにロックするには,それらの
命令を実行する前にEOLKビットを“1”にします。
ロックした命令は高速な内部ROMのようにアクセスされます。
ldi
ldi
stb
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00001001,r1 // ENABビット(0ビット)
// EOLKビット(3ビット)
r1,@r0
// レジスタへ書き込み
メモリのウェイト数に依りますが,Stb命令の次以降の命令から有効になり
ます。
ロックしたい命令群が終った所でEOLKビットを“0”にします。
ldi
ldi
stb
○
#0x000003e7,r0 // 命令キャッシュ制御レジスタのアドレス
#0B00000001,r1 // ENABビット(0ビット)
// EOLKビット(3ビット)
r1,@r0
// レジスタへ書き込み
キャッシュのロックを解除する
上記でロックした命令のロック情報を解除します。
ldi
ldi
stb
ldi
stb
#0x000003e7,r0
#0B00000000,r1
r1,@r0
#0B00000100,r1
r1,@r0
//
//
//
//
//
命令キャッシュ制御レジスタのアドレス
キャッシュディスエーブル
レジスタへ書き込み
ELKRビット(2ビット)
レジスタへ書き込み
ロック情報だけ解除されるので,ロックされていた命令は,LRUビットの状
態に応じて順次新しい命令に置き換わります。
35
第3章 CPU
3.4
専用レジスタ
専用レジスタは,特定の目的のために使用します。プログラムカウンタ(PC)
,プ
ログラムステータス(PS)
,テーブルベースレジスタ(TBR)
,リターンポインタ(RP)
,
システムスタックポインタ(SSP)
,ユーザスタックポインタ(USP),および乗除算
結果レジスタ(MDH/MDL)が用意されています。
■ 専用レジスタ
図 3.4-1に専用レジスタの構成を示します。
図 3.4-1 専用レジスタの構成
○
プログラムカウンタ(PC)
プログラムカウンタで,実行している命令のアドレスを示しています。
命令の実行を伴うPCの更新時に,ビット0は“0”に設定されます。ビット0
が“1”になる可能性があるのは,分岐先アドレスとして奇数番地を指定した
場合だけです。ただし,その場合でもビット0は無効であり,命令は2の倍数の
アドレスに置く必要があります。
リセットによる初期値は不定です。
○
プログラムステータス(PS)
プログラムステータスを保持するレジスタで,CCR,SCR,ILMの三つのパー
トに分かれています。詳細については,
「3.4.1」を参照してください。
未定義のビットはすべて予約ビットです。読出し時,常に“0”が読みださ
れます。
書込みは無効です。
○
テーブルベースレジスタ(TBR)
テーブルベースレジスタで,EIT処理の際に使用されるベクタテーブルの先
頭アドレスを保持します。
リセットによる初期値は,000FFC00Hです。
36
3.4 専用レジスタ
○
リターンポインタ(RP)
リターンポインタで,サブルーチンから復帰するアドレスを保持します。
CALL命令実行時,PCの値がこのRPに転送されます。
RET命令実行時,RPの内容がPCに転送されます。
リセットによる初期値は不定です。
○
システムスタックポインタ(SSP)
SSPは,システムスタックポインタです。
Sフラグが“0”のとき,R15として機能します。
SSPを明示的に指定することも可能です。
また,EIT発生時に,PSとPCを退避するスタックを指定するスタックポイン
タとしても使用されます。
リセットによる初期値は00000000Hです。
○
ユーザスタックポインタ(USP)
USPは,ユーザスタックポインタです。
Sフラグが“1”のとき,R15として機能します。
USPを明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI命令で使用することはできません。
○
乗除算結果レジスタ(MDH/MDL)
乗除算用のレジスタで,両方とも32ビット長です。
リセットによる初期値は不定です。
【乗算実行時】
32ビット×32ビットの乗算のとき,64ビット長の演算結果は,以下の配置で
乗除算結果格納レジスタに格納されます。
l
l
MDH:上位32ビット
MDL:下位32ビット
16ビット×16ビットの乗算のときは,以下のように結果が格納されます。
l
l
MDH:不定
MDL:結果32ビット
【除算実行時】
計算開始時,被除数をMDLに格納します。
DIV0S/DIV0U,DIV1,DIV2,DIV3,DIV4S命令の実行により除算を計算すると,結
果がMDLとMDHに格納されます。
l
l
MDH:剰余
MDL:商
37
第3章 CPU
3.4.1
プログラムステータスレジスタ(PS)
プログラムステータスレジスタ(PS)
プログラムステータスを保持するレジスタで,ILM,SCR,およびCCRの三つのパー
トに分かれています。
未定義のビットはすべて予約ビットです。読出し時,常に“0”が読みだされます。
書込みは無効です。
■ プログラムステータスレジスタ(PS)
プログラムステータスレジスタ(PS)のレジスタ構成は以下のとおりです。
○
コンディションコードレジスタ(CCR)
コンディションコードレジスタ(CCR)のレジスタ構成は以下のとおりです。
[bit 5]S:スタックフラグ
R15として使用されるスタックポインタを指定します。
値
0
1
内 容
SSPがR15として使用されます。
EIT発生時,自動的に“0”となります。
(ただし,スタックに退避される値はクリアされる前の値です。)
USPがR15として使用されます。
リセットにより“0”にクリアされます。
RETI命令実行時には“0”にしてください。
[bit 4]I:割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
0
1
内 容
ユーザ割込み禁止。
INT命令実行時,“0”にクリアされます。
(ただし,スタック退避させる値はクリアする前の値です。)
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は,ILMの保持する値により制御されます。
リセットにより“0”にクリアされます。
38
3.4 専用レジスタ
[bit 3]N:ネガティブフラグ
演算結果を2の補数で表現された整数とみなしたときの符号を示します。
値
0
1
内 容
演算結果が正の値であったことを示します。
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
[bit 2]Z:ゼロフラグ
演算結果が0であったかどうかを示します。
値
0
1
内 容
演算結果が0以外の値であったことを示します。
演算結果が0であったことを示します。
リセットによる初期状態は不定です。
[bit 1]V:オーバフローフラグ
演算に用いたオペランドを2の補数で表現される整数であるとみなし,演算
の結果,オーバフローが生じたかどうかを示します。
値
0
1
内 容
演算の結果,オーバフローは生じていないことを示します。
演算の結果,オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[bit 0]C:キャリフラグ
演算により,最上位ビットからのキャリ,またはボローが発生したかどうか
を示します。
値
0
1
内 容
キャリもボローも発生していないことを示します。
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
39
第3章 CPU
○
システムコンディションコードレジスタ(SCR)
システムコンディションコードレジスタ(SCR)の構成は以下のとおりです。
[bit 10,9]D1,D0:ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中は,変更してはいけません。
ステップ除算実行途中に他の処理を行う場合は,PSレジスタの値を退避・復
帰することによりステップ除算の再開が保証されます。
リセットによる初期状態は不定です。
DIV0S命令の実行により,被除数と除数を参照して設定されます。
DIV0U命令の実行により,強制的にクリアされます。
[bit 8]ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
0
1
内 容
ステップトレーストラップ無効
ステップトレーストラップ有効
このとき,ユーザ用NMIとユーザ割込みが全て割込み禁止となります。
リセットにより“0”に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレー
タ使用時,ユーザプログラム中で使用することはできません。
○
割込みレベルマスクレジスタ(ILM)
割込みレベルマスクレジスタ(ILM)の構成は以下のとおりです
割込みレベルマスク値を保持するレジスタで,このILMの保持する値がレベ
ルマスクに使用されます。
CPUに入力される割込み要求の中で,対応する割込みレベルが,このILMで示
されるレベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は,0(00000B)が最強で,31(11111B)が最弱です。
プログラムから設定可能な値には制限があります。元の値が16∼31のとき,
新たな値として設定できるのは16∼31です。0∼15を設定する命令を実行する
と,
“指定した値+16”という値が転送されます。
元の値が0∼15のときは,0∼31の任意の値が設定可能です。
リセットにより,15(01111B)に初期化されます。
40
3.5 汎用レジスタ
3.5
汎用レジスタ
レジスタR0∼R15は汎用レジスタです。各種演算におけるアキュムレータ,および
メモリアクセスのポインタとして使用されます。
■ 汎用レジスタ
図 3.5-1に汎用レジスタの構成を示します。
図 3.5-1 汎用レジスタの構成
16本のレジスタのうち,以下に示すレジスタは特殊な用途を想定しています。
そのため,一部の命令が強化されています。
l
l
l
R13:仮想アキュムレータ
R14:フレームポインタ
R15:スタックポインタ
リセットによるR0∼R14の初期値は不定です。R15の初期値は00000000H(SSPの
値)となります。
41
第3章 CPU
3.6
データ構造
FRシリーズのデータ配置は,次のようになっています。
・ビットオーダリングの場合:リトルエンディアン
・バイトオーダリングの場合:ビックエンディアン
■ ビットオーダリング
FRシリーズは,ビットオーダリングとして,リトルエンディアンを採用してい
ます。
図 3.6-1にビットオーダリングのデータ配置を示します。
図 3.6-1 ビットオーダリングのデータ配置
■ バイトオーダリング
FRシリーズでは,バイトオーダリングとして,ビッグエンディアンを採用して
います。
図 3.6-2にバイトオーダリングのデータ配置を示します。
図 3.6-2 バイトオーダリングのデータ配置
42
3.7 ワードアライメント
3.7
ワードアライメント
命令やデータはバイト単位でアクセスするため,配置するアドレスは命令長やデー
タ幅で異なります。
■ プログラムアクセス
FRシリーズのプログラムは,2の倍数のアドレスに配置する必要があります。
プログラムカウンタ(PC)のビット0は,命令の実行に伴うPCの更新時に,
“0”
に設定されます。“1”になる可能性があるのは,分岐先アドレスとして奇数番地
を指定した場合だけです。ただし,その場合でもビット0は無効であり,命令は2
の倍数のアドレスに置かなくてはなりません。
奇数アドレス例外はありません。
■ データアクセス
FRシリーズでは,データアクセスを行う際,その幅により以下のように強制的
なアラインメントがアドレスに対して施されます。
l
l
l
ワードアクセス:アドレスは,4の倍数(最下位2bitは強制的に00)
ハーフワードアクセス:アドレスは,2の倍数(最下位bitは強制的に0)
バイトアクセス:−
ワードおよびハーフワードデータアクセス時に,一部のビットが強制的に0にさ
れるのは,実効アドレスの計算結果に対してです。例えば,@(R13,Ri)のアドレッ
シングモードの場合,加算前のレジスタは(たとえ最下位ビットが1であっても)
そのまま計算に使用され,加算結果の下位ビットがマスクされます。計算前のレ
ジスタがマスクされるわけではありません。
[例] LD @(R13,R2),R0
43
第3章 CPU
3.8
メモリマップ
MB91107/MB91108のメモリマップとFRシリーズ共通のメモリマップを示します。
■ MB91107/MB91108のメモリマップ
アドレス空間は32ビットリニアです。
図 3.8-1にMB91107/MB91108のメモリマップを示します。
図 3.8-1 MB 91107/ MB911 08 の メ モ リ マ ッ プ
○
ダイレクトアドレッシング領域
アドレス空間の下記の領域は,I/O用の領域です。この領域は,ダイレクト
アドレッシングにより,命令中で直接オペランドアドレスを指定することがで
きます。
ダイレクトアドレス指定可能なアドレス領域の大きさは,データ長ごとに異
なります。
l
l
l
○
バイトデータ(8ビット)
:0∼0FFH
ハーフワードデータ(16ビット)
:0∼1FFH
ワードデータ(32ビット)
:0∼3FFH
ベクタテーブル初期領域
000FFC00H∼000FFFFFHの領域はEITベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは,TBRを書き換えることにより任意
のアドレスに配置できますが,リセットによる初期化によってこのアドレスに
配置されます。
44
3.8 メモリマップ
■ FRシリーズ共通のメモリマップ
FRシリーズでは,メモリマップを以下のように定めています。
これは,品種によらず共通です(シングルチップモードを除く)
。
図 3.8-2にFRシリーズ共通のメモリマップを示します。
図 3.8-2 FRシリーズ共通のメモリマップ
45
第3章 CPU
3.9
命令概要
FRシリーズは,一般的なRISCの命令体系に加え,組込み用途に最適化された論理
演算,ビット操作およびダイレクトアドレッシング命令をサポートしています。各
命令は16ビット長(一部命令は32,48ビット長)ですので,優れたメモリ使用効率
を持ちます。命令の詳細については,「付録E 命令一覧」を参照してください。
命令セットは以下の機能グループに分けることができます。
・算術演算
・ロードとストア
・分岐
・論理演算とビット操作
・ダイレクトアドレッシング
・その他
■ 命令概要
○
算術演算
標準の算術演算命令(加算,減算,比較)およびシフト命令(論理シフト,
算術演算シフト)があります。加算と減算については,多ワード長演算で使用
するキャリ付き演算や,アドレス計算に便利なフラグ値を変化させない演算も
可能です。
さらに,32ビット×32ビット,16ビット×16ビットの乗算命令と,32ビット
÷32ビットのステップ除算命令を持ちます。
また,レジスタに即値をセットする即値転送命令や,レジスタ間転送命令も
備えています。
算術演算命令は,すべてCPU内の汎用レジスタおよび乗除算レジスタを用い
て演算を行います。
○
ロードとストア
ロードとストアは,外部メモリに対して読み出しと書き込みを行う命令です。
また,チップ内の周辺回路(I/O)への読み出しと書き込みにも使用されます。
ロードとストアは,バイト,ハーフワード,ワードの3種類のアクセス長を
持ちます。また,一般的なレジスタ間接のメモリアドレッシングに加え,一部
の命令についてはディスプレースメント付きレジスタ間接やレジスタインクリ
メント/デクリメント付きレジスタ間接のメモリアドレッシングも可能です。
○
分岐
分岐,コール,割込みおよび復帰の命令です。分岐命令は,遅延スロットを
持つものと持たないものがあり,用途に応じて最適化を行うことができます。
分岐命令の詳細については,「3.9.1 遅延スロット付き分岐命令」,「3.9.2
遅延スロットなし分岐命令」を参照してください。
○
論理演算とビット操作
論理演算命令は,汎用レジスタ間,または汎用レジスタとメモリ(およびI/O)
間でAND,OR,EORの論理演算を行うことができます。また,ビット操作命令はメ
モリ(およびI/O)の内容を直接操作することができます。メモリアドレッシ
ングは一般的なレジスタ間接です。
46
3.9 命令概要
○
ダイレクトアドレッシング
ダイレクトアドレッシング命令は,I/Oと汎用レジスタ間,またはI/Oとメモ
リ間のアクセスに使用する命令です。I/Oのアドレスをレジスタ間接ではなく
命令中で直接指定することにより,高速,高効率なアクセスを行うことができ
ます。一部の命令についてはレジスタインクリメント/デクリメント付きレジ
スタ間接のメモリアドレッシングも可能です。
○
その他
PSレジスタ内のフラグ設定,スタック操作,符号/ゼロ拡張などを行う命令
です。また,高級言語対応の関数入口/出口,レジスタマルチロード/ストア
命令も備えています。
47
第3章 CPU
3.9.1
遅延スロット付き分岐命令
遅延スロット付きの動作では,分岐先の命令を実行する前に,分岐命令の直後(
“遅
延スロット”と呼びます)に置かれた命令を実行した後に,分岐します。
■ 遅延スロット付き分岐命令
以下に示す表記をした命令が,遅延スロット付きの分岐動作を行います。
JMP:D
BRA:D
BC:D
BV:D
BLE:D
@Ri
label9
label9
label9
label9
CALL:D
BNO:D
BNC:D
BNV:D
BGT:D
label12
label9
label9
label9
label9
CALL:D
BEQ:D
BN:D
BLT:D
BLS:D
@Ri
label9
label9
label9
label9
RET:D
BNE:D
BP:D
BGE:D
BHI:D
label9
label9
label9
label9
■ 遅延スロット付き分岐命令の動作説明
遅延スロット付きの動作では,分岐先の命令を実行する前に,分岐命令の直後
(
“遅延スロット”と呼びます)に置かれた命令を実行した後に,分岐します。
分岐動作の前に遅延スロットの命令を実行するため,見掛け上の実行速度が1サ
イクルとなります。その代わり,遅延スロットに有効な命令を入れることができ
ないときは,NOP命令を置かなくてはなりません。
[例]
;
命令の並び
ADD
R1, R2
BRA:D LABEL
MOV
R2, R3
…
LABEL : ST
R3, @R4
;
; 分岐命令
; 遅延スロット …… 分岐の前に実行される
; 分岐先
条件分岐命令の場合,分岐条件が成立する場合も成立しない場合も遅延スロッ
トに置かれた命令は実行されます。
遅延分岐命令では,一部の命令の実行順序が反転するように見えますが,それ
はPCの更新動作だけについてであり,その他の動作(レジスタの更新/参照など)
はあくまで記述された順番で実行されます。
次に,具体的に説明します。
○
JMP:D @Ri / CALL:D @Ri命令で参照するRiは,遅延スロットの中の命令がRi
を更新しても影響を受けません。
[例]
LDI:32
JMP:D
LDI:8
…
48
#Label, R0
@R0
#0,
R0
; LabeL に分岐
; 分岐先アドレスには影響を与えない。
3.9 命令概要
○
RET:D命令が参照するRPは,遅延スロットの中の命令がRPを更新しても影響
を受けません。
[例]
RET:D
MOV
…
○
R8,
RP
; これより前に設定されたRPの示すアドレスへ分岐
; リターン動作には影響を与えない。
Bcc:D reL命令が参照するフラグも,遅延スロットの命令の影響を受けませ
ん。
[例]
ADD
#1,
R0
BC:D
Overflow
ANDCCR #0
…
○
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では参照しない。
CALL:D命令の遅延スロットの中の命令でRPを参照すると,CALL:D命令により
更新された内容が読み出されます。
[例]
CALL:D Label
MOV
RP,
…
R0
; RPを更新して分岐
; 上記CALL:Dの実行結果のRPを転送
■ 遅延スロット付き分岐命令の制限事項
○
遅延スロットに置くことができる命令
遅延スロット内で実行できるのは,以下の条件を満たす命令のみです。
l
l
l
1サイクル命令
分岐命令ではないこと
順番が変化した場合でも動作に影響を与えない命令
「1サイクル命令」とは,命令一覧表中でサイクル数の欄が「1」
,
「a」
,
「b」
,
「c」
,または「d」と記載された命令です。
○
ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では,ステップト
レーストラップは発生しません。
○
割込み/NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では,割込み/NMI
を受理しません。
○
未定義命令例外
遅延スロットに未定義命令があった場合,未定義命令例外は発生しません。
このとき,未定義命令はNOP命令として動作します。
49
第3章 CPU
3.9.2
遅延スロットなし分岐命令
遅延スロットなしの動作では,あくまで命令の並びの順に実行します。
■ 遅延スロットなし分岐命令
以下に示す表記をした命令が,遅延スロットなしの分岐動作を行います。
JMP
BRA
BC
BV
BLE
@Ri
label9
label9
label9
label9
CALL
BNO
BNC
BNV
BGT
label12
label9
label9
label9
label9
CALL
BEQ
BN
BLT
BLS
@Ri
label9
label9
label9
label9
RET
BNE
BP
BGE
BHI
label9
label9
label9
label9
■ 遅延スロットなし分岐命令の動作説明
遅延スロットなしの動作では,あくまで命令の並びの順に実行します。直後の
命令が分岐前に実行されることはありません。
[例]
;
LABEL
命令の並び
ADD
R1, R2
BRA
LABEL
MOV
R2, R3
…
ST
R3, @R4
;
; 分岐命令(遅延スロットなし)
; 実行されない
; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は,分岐するとき2サイクル,分
岐しないとき1サイクルとなります。
遅延スロットに適当な命令を入れることができないためにNOPを明記した遅延ス
ロット付き分岐命令に比べ,命令コード効率を上げることができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択
し,そうでないときは遅延スロットなしの動作を選択することで,実行速度とコー
ド効率を両立させることが可能となります。
50
3.10 EIT(例外・割込み・トラップ)
3.10
E I T ( 例外・割込み
例外・割込み・トラップ
・割込み・トラップ)
・トラップ)
EITとは,現プログラム実行時にイベントの発生によりそのプログラムの実行を中
断し他のプログラムを実行することを指し,例外(Exception),割込み(Interrupt),
トラップ(Trap)の総称です。
例外とは,実行中のコンテキストに関連して発生する事象です。例外を起こした
命令から再実行します。
割込みとは,実行中のコンテキストに無関係に発生する事象です。イベント要因
は,ハードウェアです。
トラップとは,実行中のコンテキストに関連して発生する事象です。システムコー
ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の
命令から再実行します。
■ EITの特長
l
l
l
l
割込みに多重割込みをサポート
割込みにレベルマスク機能(15レベルをユーザが使用可能)
トラップ命令(INT)
エミュレータ起動用EIT(ハードウェア/ソフトウェア)
■ EIT要因
EIT要因として,次のものがあります。
l
l
l
l
l
l
l
l
l
l
リセット
ユーザ割込み(内部リソース,外部割込み)
NMI
遅延割込み
未定義命令例外
トラップ命令(INT)
トラップ命令(INTE)
ステップトレーストラップ
コプロセッサ不在トラップ
コプロセッサエラートラップ
■ EITからの復帰
EITからの復帰は,次の命令を使用します。
l
RETI命令
■ EITの注意事項
○
遅延スロット
分岐命令の遅延スロットには,EITに関して制約があります。詳しくは,「3.9
命令概要」を参照してください。
51
第3章 CPU
3.10.1
EITの割込みレベル
EITの割込みレベル
割込みレベルは0∼31で,5ビットで管理されます。
■ 割込みレベル
各レベルの割り当てを表 3.10-1に示します。
表 3.10-1 割込みレベル
レベル
2進数
10進数
00000
0
00011
3
00100
4
要 因
(システム予約)
(システム予約)
INTE命令
ステップトレーストラップ
00101
5
01110
01111
10000
10001
14
15
16
17
11110
11111
30
31
備 考
(システム予約)
(システム予約)
NMI(ユーザ用)
割込み
割込み
割込み
−
ILMの元の値が16∼31のとき,
この範囲の値をプログラムによ
りILMに設定することはできま
せん。
ILM設定時,ユーザ割込み禁止
ICR設定時,割込み禁止
操作が可能なのは,16∼31のレベルです。
未定義命令例外,コプロセッサ不在トラップ,コプロセッサエラートラップ,
およびINT命令は,割込みレベルの影響を受けません。また,ILMを変化させるこ
ともありません。
52
3.10 EIT(例外・割込み・トラップ)
■ Iフラグ
割込みの許可/禁止を指定するフラグです。PSレジスタのCCRのビット4として
設けられています。
値
0
1
内 容
割込み禁止。
INT命令実行時“0”にクリアされます。
(ただし,スタック退避させる値はクリアする前の値です。)
割込み許可。
割込み要求のマスク処理は,ILMの保持する値により制御されます。
■ 割込みレベルマスクレジスタ(ILM)
割込みレベルマスク値を保持するPSレジスタ(20∼16)です。
CPUに入力される割込み要求の中で,対応する割込みレベルが,このILMで示さ
れるレベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は,0(00000B)が最強で,31(11111B)が最弱です。
プログラムから設定可能な値には制限があります。元の値が16∼31のとき,新
たな値として設定できるのは16∼31です。0∼15の値を設定する命令を実行すると,
“指定した値+16”という値が転送されます。
元の値が0∼15のときは,0∼31の任意の値が設定可能です。
<注意事項>
設定するには,SETILM命令を使用してください。
■ 割込み/NMIに対するレベルマスク
NMIおよび割込み要求が発生したときは,割込み要因の持つ割込みレベル「表
3.10-1」がILMの保持するレベルマスク値と比較されます。そして,次の条件が成
立したときはマスクされ,要求は受理されません。
l
要因の持つ割込みレベル ≧ レベルマスク値
53
第3章 CPU
3.10.2
割込み制御レジスタ(
割込み制御レジスタ(ICR)
割込みコントローラ内に設けられたレジスタで,割込みの各要求に対するレベル
を設定します。ICRは割込み要求入力の各々に対応して用意されています。ICRはI/O
空間にマッピングされており,CPUからはバスを通してアクセスされます。
■ 割込み制御レジスタ(I CR)
割込み制御レジスタ(I C R )の構成は以下のとおりです。
[bit 4]ICR4
常に“1”です。
[bit 3∼0]ICR3∼0
対応する割込み要因の割込みレベルの下位4ビットです。
リード/ライト可能です。
bit4と合わせて,ICRは16∼31の範囲で値を設定することができます。
■ 割込み制御レジスタ(I CR) マッピング
表 3.10-2に割込み要因と割込みベクタの割当てを示します。
表 3.10-2 割込み要因と割込みベクタの割当て
割込み制御レジスタ
割込み要因
IRQ00
IRQ01
IRQ02
IRQ45
IRQ46
IRQ47
詳細は,「第11章
54
番号
I CR00
I CR01
I CR02
I CR45
I CR46
I CR47
アドレス
00000400 H
00000401 H
00000402 H
0000042D H
0000042E H
0000042F H
対応する割込みベクタ
番号
アドレス
16進
10進
10 H
16
TBR + 3BC H
11 H
17
TBR + 3B8 H
12 H
18
TBR + 3B4 H
3D H
61
TBR + 308 H
3E H
62
TBR + 304 H
3F H
63
TBR + 300 H
割込みコントローラ」を参照してください。
3.10 EIT(例外・割込み・トラップ)
3.10.3
システムスタックポインタ(SSP)
システムスタックポインタ(SSP)
システムスタックポインタ(SSP)は,EITの受理および復帰動作時のデータ退避
/復活用スタックを示すポインタとして使用されます。
■ システムスタックポインタ(SSP)
システムスタックポインタ(SSP)のレジスタ構成は以下のとおりです。
EIT処理時に内容が8減算され,RETI命令の実行によるEITからの復帰動作時に8
加算されます。
リセットによる初期値は00000000Hです。
55
第3章 CPU
3.10.4
割込みスタック
システムスタックポインタ(SSP)により示される領域で,PCおよびPSの値が退避
/復活されます。割込み後はSSPの示すアドレスにPC,
“SSP+4”のアドレスにPSが格
納されています。
■ 割込みスタック
図 3.10-1に割込みスタックの例を示します。
図 3.10-1 割込みスタックの例
56
3.10 EIT(例外・割込み・トラップ)
3.10.5
テーブルベースレジスタ(TBR)
テーブルベースレジスタ(TBR)
テーブルベースレジスタ(TBR)は,EIT用ベクタテーブルの先頭アドレスを示す
レジスタです。
■ テーブルベースレジスタ(TBR)
テーブルベースレジスタ(TBR)のレジスタ構成は以下のとおりです。
TBRとEIT要因ごとに決められたオフセット値を加算したアドレスが,ベクタア
ドレスとなります。
リセットによる初期値は000FFC00Hです。
57
第3章 CPU
3.10.6
EITベクタテーブル
EITベクタテーブル
テーブルベースレジスタ(TBR)の示すアドレスから1KBの領域が,EIT用ベクタ領
域となっています。
■ EITベクタテーブル
1ベクタ当たりの大きさは4バイトで,ベクタ番号とベクタアドレスの関係は下
記のように表されます。
vctadr = TBR + vctofs
= TBR + (3FCH - 4 × vct)
vctadr:ベクタアドレス
vctofs:ベクタオフセット
vct:ベクタ番号
加算結果の下位2ビットは常に“00”として扱われます。
000FFC00H ∼000FFFFFH の領域が,リセットによるベクタテーブルの初期領域で
す。
58
3.10 EIT(例外・割込み・トラップ)
ベクタの一部には特殊な機能が割り当てられています。
アーキテクチャ上のベクタテーブルを表 3.10-3に示します。
表 3.10-3 ベクタテーブル
ベクタオフセット
(16進)
ベクタ番号
説 明
3FC
3F8
3F4
3F0
16進
00
01
02
03
10進
0
1
2
3
3E0
3DC
3D8
3D4
3D0
3CC
3C8
3C4
3C0
3BC
3B8
07
08
09
0A
0B
0C
0D
0E
0F
10
11
7
8
9
10
11
12
13
14
15
16
17
システム予約
システム予約
INTE命令
システム予約
システム予約
ステップトレーストラップ
システム予約
未定義命令例外
NMI (ユーザ用)
マスク可能割込み要因 #0
マスク可能割込み要因 #1*2
300
2FC
2F8
2F4
3F
40
41
42
63
64
65
66
マスク可能割込み要因/INT命令
システム予約(REALOSにて使用)
システム予約(REALOSにて使用)
マスク可能割込み要因/INT命令
リセット*1
システム予約
システム予約
システム予約
000
FF
255
*1:TBRの値を変更してもリセットベクタは常に固定アドレス000FFFFCHが使用されます。
*2:本品種におけるベクタテーブルは「B 割込みベクタ」を参照してください。
59
第3章 CPU
3.10.7
多重EIT
多重EIT処理
EIT処理
複数のEIT要因が同時に発生した場合,CPUは一つのEIT要因を選択して受理し,EIT
シーケンスを実行した後,再びEIT要因の検出を行う,という動作を繰り返します。
EIT要因検出の際に,受理可能なEIT要因がなくなったとき,最後に受理したEIT要因
のハンドラの命令を実行します。
そのため,複数のEIT要因が同時に発生した場合の各要因のハンドラの実行順序は,
次の二つの要素により決まります。
・EIT要因受理の優先順位
・受理した場合に他の要因をどのようにマスクするか
■ EIT要因受理の優先順位
EIT要因受理の優先度とは,PSとPCを退避してPCを更新し(必要に応じて)他の
要因のマスク処理を行うという,EITシーケンスを実行する要因を選ぶときの順番
です。
必ずしも,先に受理された要因のハンドラが先に実行されるわけではありませ
ん。
EIT要因受理の優先度は,表 3.10-4のようになっています。
表 3.10-4 EIT要因の受理の優先度と他の要因へのマスク
受理の優先順位
要
因
他の要因に対するマスク
1
リセット
他の要因は破棄されます。
2
未定義命令例外
取消
3
INT命令
Iフラグ=0
4
ユーザ割込み
ILM=受理した要因のレベル
5
NMI(ユーザ用)
ILM=15
6
(INTE命令)
ILM=4*
7
NMI(エミュレータ用)
ILM=4
8
ステップトレーストラップ
ILM=4
9
INTE命令
ILM=4
*:INTE命令とエミュレータ用NMIが同時に発生したときのみ優先度が6になります(MB91V107
ではエミュレータ用NMIをデータアクセスによるブレークに使用しています)。
EIT要因を受理した後,他の要因に対するマスクの処理を加味すると,同時に発
生したEIT要因の各ハンドラの実行順序は,表 3.10-5のようになります。
表 3.10-5 EITハンドラの実行順序
ハンドラの実行順序
要
因
1
リセット*1
2
未定義命令例外
3
ステップトレーストラップ*2
4
INTE命令*2
5
NMI(ユーザ用)
6
INT命令
7
ユーザ割込み
*1:他の要因は破棄されます。
*2:INTE命令をステップ実行したときは,ステップトレーストラップの
EITのみ発生します。INTEによる要因は無視されます。
60
3.10 EIT(例外・割込み・トラップ)
図 3.10-2に多重EIT処理の例を示します。
図 3.10-2 多重EIT処理例
61
第3章 CPU
3.10.8
EITの動作
EITの動作
EITの動作について説明します。
以下の説明で,転送元の“PC”とは各EIT要因を検出した命令のアドレスを示すも
のとします。
また,動作説明の中で“次の命令のアドレス”とは,EITを検出した命令が下記の
ようになっていることを意味します。
・LDI:32のとき …… PC+6
・LDI:20,COPOP,COPLD,COPST,COPSVのとき …… PC+4
・その他の命令のとき …… PC+2
■ ユーザ割込み/NMIの動作
ユーザ割込みまたはユーザ用NMIの割込み要求が発生すると,以下の順序で要求
受理の可否が判定されます。
○
割込み要求受理の可否判定
1)
同時に発生した要求の割込みレベルを比較し,最も強いレベル(最も小
さい数値)を保持するものが選択されます。比較に使用されるレベルは,
マスク可能割込みについては対応するICRの保持する値が,NMIについて
はあらかじめ定められた定数が使用されます。
2)
同じレベルを持つ割込み要求が複数発生しているときは,最も若い割込
み番号を持つ割込み要求が選択されます。
3)
選択された割込み要求の割込みレベルをILMで決定されるレベルマスク値
と比較します。
-
割込みレベル ≧ レベルマスク値 のとき,割込み要求はマスクさ
れ受理されない。
-
割込みレベル < レベルマスク値 のとき,4)へ
4)
選択された割込み要求がマスク可能割込みであるとき,Iフラグが0なら
ば割込み要求はマスクされ,受理されません。Iフラグが1ならば5)へ。
-
5)
選択された割込み要求がNMIであるとき,Iフラグの値にかかわらず5)
へ。
上記の条件が成立したとき,命令処理の切れ目で割込み要求が受理され
ます。
EIT要求検出時に,ユーザ割込み/NMIの要求が受理されると,受理された割込
み要求に対応した割込み番号を使用して,CPUは以下のように動作します。
〔動作〕における( )はレジスタの指すアドレスを表します。
[動作]
SSP-4 → SSP
PS → (SSP)
SSP-4 → SSP
次の命令のアドレス → (SSP)
受理した要求の割込みレベル → ILM
“0” → Sフラグ
(TBR+受理した割込み要求のベクタオフセット) → PC
62
3.10 EIT(例外・割込み・トラップ)
割込みシーケンス終了後ハンドラの先頭の命令を実行する前に,新たなEITの検
出を行います。この時点で受理可能なEITが発生していると,CPUはEIT処理シーケ
ンスに遷移します。
■ INT命令の動作
INT #u8命令の動作は以下のとおりです。
u8で示されるベクタの割込みハンドラへ分岐します。
[動作]
SSP-4 → SSP
PS → (SSP)
SSP-4 → SSP
PC+2 → (SSP)
“0” → Iフラグ
“0” → Sフラグ
(TBR+3FCH-4×u8) → PC
■ INTE命令の動作
INTE命令の動作は以下のとおりです。
ベクタ番号#9のベクタの割込みハンドラへ分岐します。
[動作]
SSP-4 → SSP
PS → (SSP)
SSP-4 → SSP
PC+2 → (SSP)
“00100” → ILM
“0” → Sフラグ
(TBR+3D8H) → PC
INTE命令,およびステップトレーストラップの処理ルーチン中では,INTE命令
は使用しないでください。
また,ステップ実行中はINTEによるEITの発生はありません。
■ ステップトレーストラップの動作
PS中のSCRにおけるTフラグをセットしてステップトレースの機能をイネーブル
にしておくと,一命令実行ごとにトラップが発生し,ブレイクします。
ステップトレーストラップ検出の条件は,以下のとおりです。
l
l
l
Tフラグ = 1
遅延分岐命令ではないとき。
INTE命令,ステップトレーストラップの処理ルーチン以外を実行中であ
るとき。
以上の条件が成立すると,命令動作の切れ目でブレイクします。
[動作]
SSP-4 → SSP
PS → (SSP)
SSP-4 → SSP
63
第3章 CPU
次の命令のアドレス → (SSP)
“00100” → ILM
“0” → Sフラグ
(TBR+3CCH) → PC
Tフラグをセットしてステップトレーストラップをイネーブルにしたとき,ユー
ザ用のNMIとユーザ割込みは禁止状態となります。
また,INTE命令によるEITは発生しなくなります。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると,未定義命令例外が発
生します。
未定義命令例外の検出条件は,以下のとおりです。
l
l
命令のデコード時に,未定義命令であることを検出。
遅延スロット外に置かれている(遅延分岐命令の直後ではない)
。
以上の条件が成立すると,未定義命令例外が発生し,ブレイクします。
[動作]
SSP-4 → SSP
PS → (SSP)
SSP-4 → SSP
PC → (SSP)
“0” → Sフラグ
(TBR+3C4H) → PC
PCとして退避されるのは,未定義命令例外を検出した命令自身のアドレスです。
■ RETI命令の動作
RETI命令は,EIT処理ルーチンから復帰する命令です。
[動作]
(R15) → PC
R15+4 → R15
(R15) → PS
R15+4 → R15
PS,PCを復帰するために参照するスタックポインタは,Sフラグの内容に応じて
選択される点に注意してください。割込みハンドラ内でR15(スタックポインタ)
を操作する命令を実行する場合は,Sフラグを“1”にしてUSPをR15として使用し,
RETI命令の前にSフラグを“0”に戻す方法をお勧めします。
64
3.11 リセットシーケンス
3.11
リセットシーケンス
CPUを動作状態にするときのリセットについて説明します。
■ リセット要因
リセット要因は以下のとおりです。
l
l
l
l
l
外部リセット端子からの入力
スタンバイ制御レジスタ(STCR)中のSRSTビット操作によるソフトウェ
アリセット
ウォッチドッグタイマのカウントアップ
ハードウェアスタンバイの解除
パワーオンリセット
■ リセットによる初期化
リセット要因が発生すると,CPUは初期化されます。
○
外部リセット端子/ソフトウェアリセット/ハードウェアスタンバイからの解
除
l
l
l
端子を定められた状態に設定します。
デバイス内部の各リソースを,リセット状態にします。制御レジスタは,
あらかじめ決められた値に初期化されます。
クロックとして,最も遅いギアが選択されます。
■ リセットシーケンス
リセット要因が解除されると,CPUは以下のリセットシーケンスを実行します。
l
(000FFFFCH) → PC
<注意事項>
リセット後は,モードレジスタの設定により動作モードを細かく設定します。
詳細は,
「3.14 メモリアクセスモード」のモードレジスタを参照してください。
65
第3章 CPU
3.12
クロック
クロック発生部は,以下の機能を受け持つモジュールです。
・CPUクロック生成(ギア機能を含む)
・周辺クロック生成(ギア機能を含む)
・リセット発生および要因の保持
・スタンバイ機能(ハードウェアスタンバイを含む)
・DMA要求の抑止
・PLL(逓倍回路)内蔵
■ クロック発生部のレジスタ一覧
図 3.12-1にクロック発生部のレジスタ一覧を示します。
図 3.12-1 クロック発生部のレジスタ一覧
<注意事項>
スタンバイ制御レジスタ(STCR)については,「3.13
66
低消費電力モード」を参照してください。
3.12 クロック
■ クロック発生部のブロックダイヤグラム
図 3.12-2にクロック発生部のブロックダイヤグラムを示します。
図 3.12-2 クロック発生部のブロックダイヤグラム
67
第3章 CPU
3.12.1
リセット要因レジスタ(RSRR)
リセット要因レジスタ(RSRR)とウォッチドッグ周
(RSRR)とウォッチドッグ周
期制御レジスタ(WTCR)
期制御レジスタ(WTCR)
リセット要因レジスタ(RSRR)は,発生したリセットの種別を保持するレジスタ
で,ウォッチドッグ周期制御レジスタ(WTCR)は,ウォッチドッグタイマの周期を
指定するレジスタです。
■ リセット要因レジスタ(RSRR)とウォッチドッグ周期制御レジスタ(WTCR)
リセット要因レジスタ(RSRR)とウォッチドッグ周期制御レジスタ(WTCR)の
レジスタ構成は以下のとおりです。
[bit 15] PONR
本ビットが“1”であると,直前に発生したリセットはパワーオンリセット
であったことを示します。本ビットが“1”の場合は,本レジスタの本ビット
以外の内容は無効となります。
[bit 14] HSTB
本ビットが“1”であると,直前に発生したリセットはハードウェアスタン
バイに起因するリセットであったことを示します。
[bit 13] WDOG
本ビットが“1”であると,直前に発生したリセットはウォッチドッグリセッ
トであったことを示します。
[bit 12] ERST
本ビットが“1”であると,直前に発生したリセットは外部リセット端子に
起因するリセットであったことを示します。
[bit 11] SRST
本ビットが“1”であると,直前に発生したリセットはソフトウェアリセッ
ト要求に起因するリセットであったことを示します。
[bit 10] (ReServed)
本ビットは予約ビットです。読み出し値は不定です。
[bit 09,08] WT1,0
本ビットは,ウォッチドッグの周期を指定するものです。本ビットと選択す
る周期は表 3.12-1のような関係があります。本ビットはすべてのリセットに
より初期化されます。
68
3.12 クロック
表 3.12-1 WT1,WT0で指定されたウォッチドッグの周期
WT1
WT0
0
0
1
1
0
1
0
1
ウォッチドッグリセットの発生を抑止する
ために最低限必要なWPRへの書込み間隔
φ×215 〔初期値〕
φ×217
φ×219
φ×221
WPRへの最終5AH書込みからウォッチドッグ
リセットが発生するまでの時間
φ×215∼φ×216
φ×217∼φ×218
φ×219∼φ×220
φ×221∼φ×222
ただし,φはGCRのCHC=1のときはX0の2倍,CHC=0のときはPLLの発振周波数
の周期となります。
69
第3章 CPU
3.12.2
DMA要求抑止レジスタ
DMA要求抑止レジスタ(PDRR)
要求抑止レジスタ(PDRR)
DMA要求抑止レジスタ(PDRR)は,DMA要求を一時的に抑止して,CPUを動作させる
レジスタです。
■ DMA要求抑止レジスタ(PDRR)
DMA要求抑止レジスタ(PDRR)のレジスタ構成は以下のとおりです。
[bit 11-08] D3-D0
本レジスタに0以外の値を書き込むと,以降のDMAからCPUへのDMA転送要求を
抑止します。以降,本レジスタの内容を0にしない限り,DMA転送は行えなくな
ります。
<注意事項>
本レジスタは,必ず割込みコントローラのHRCLレジスタと組み合わせて使用してください。
70
3.12 クロック
3.12.3
タイムベースタイマクリアレジスタ(CTBR)
タイムベースタイマクリアレジスタ(CTBR)
タイムベースタイマクリアレジスタ(CTBR)は,タイムベースタイマの内容を0
に初期化するためのレジスタです。
■ タイムベースタイマクリアレジスタ(CTBR)
タイムベースタイマクリアレジスタ(CTBR)のレジスタ構成は以下のとおりで
す。
[bit 07-00] D7-D0
本レジスタに連続してA5H,5AHを書き込むと,5AHの直後にタイムベースタイ
マを0にクリアします。本レジスタの読出し値は不定です。A5Hライトと5AHライ
トの間の時間は制限がありません。
<注意事項>
本レジスタを使用してタイムベースタイマをクリアすると,発振安定待ち間隔,ウォッチドッ
グ周期およびタイムベースを使用している周辺の周期が一時的に変動します。
71
第3章 CPU
3.12.4
ギア制御レジスタ(GCR)
ギア制御レジスタ(GCR)
ギア制御レジスタ(GCR)は,CPU系,周辺系クロックのギア機能を制御するレジ
スタです。
■ ギア制御レジスタ(GCR)
ギア制御レジスタ(GCR)のレジスタ構成は以下のとおりです。
[bit 15,14] CCK1,0
本ビットは,CPU系のギア周期を指定するものです。本ビットと選択する周
期は表 3.12-2のような関係があります。本ビットはリセットにより初期化さ
れます。
表 3.12-2 CPU系マシンクロック
CCK1 CCK0 CHC
CPU系マシンクロック
0
0
0
PLL×1
0
1
0
PLL×1/2
1
0
0
PLL×1/4
1
1
0
PLL×1/8
0
0
1
原振×1/2
0
1
1
原振×1/2×1/2
1
0
1
原振×1/2×1/4
1
1
1
原振×1/2×1/8 〔初期値〕
PLL:PLLの発振周波数
原振:X0からの入力周波数
[bit 13] DBLAK
本ビットは,クロックダブラの動作状態を示すビットです。リードオンリー
であり,ライトは無視されます。本ビットはリセットにより初期化されます。
バス周波数の切り換えにはタイムラグがありますが,実際に動作が切り換
わったかどうかは本ビットで確認出来ます。
DBLAK
0
1
内部:外部の動作周波数
1:1で動作中 [初期値]
2:1で動作中
[bit 12] DBLON
本ビットは,クロックダブラの動作状態を指定するビットです。本ビットは
リセットにより初期化されます。
DBLON
0
1
72
1:1で動作
2:1で動作
内部:外部の動作周波数
[初期値]
3.12 クロック
[bit 11,10] PCK1,0
本ビットは,周辺系のギア周期を指定するものです。本ビットと選択する周
期は表 3.12-3のような関係があります。本ビットはリセットにより初期化さ
れます。
表 3.12-3 周辺系マシンクロック
PCK1 PCK0 CHC 周辺系マシンクロック(原振:X0からの入力周波数)
0
0
0
PLL×1
0
1
0
PLL×1/2
1
0
0
PLL×1/4
1
1
0
PLL×1/8
0
0
1
原振×1/2
0
1
1
原振×1/2×1/2
1
0
1
原振×1/2×1/4
1
1
1
原振×1/2×1/8 〔初期値〕
PLL:PLLの発振周波数
原振:X0からの入力周波数
なお,CPU系のクロックが25MHzよりも高い周波数で動作させるときは,周辺
系クロックは,CPU系クロックの1/2以下の周波数になるように設定してくださ
い。
周辺系クロックの最大周波数は25MHzです。
<注意事項>
CPU系ギアと周辺系ギアを同時に変更したい場合は,いったん両者を同じギアに設定した後に,
希望のギアに設定してください。
変更前のCPU系と周辺系のギアが同じ設定である場合と,片方のギアだけを変更する場合,そ
して両者を同じギアに設定する場合は,目的の値に一度に設定するのでかまいません。
クロックダブラがONになっているときは,GCRの値に関わらずCPU系ギアは固定値となるため,
やはり目的の値に一度に設定するのでかまいません。
[プログラム記述例]
ldi
ldi
stb
ldi
ldi
stb
ldi
stb
#0x484,
#0x0d,
r0,
:
:
#0x484,
#0xcd,
r0,
#0xc5,
r0,
r1
r0
@r1
r1
r0
@r1
r0
@r1
; CPU :1/1,周辺:1/8
; CPU :1/8,周辺:1/8
いったん同じ比率に設定
; CPU :1/8,周辺:1/2
希望の比率に設定
[bit 09] 予約ビット
常に1を書いてください。
73
第3章 CPU
[bit 08] CHC
本ビットは,基準クロックの選択を設定するビットです。リセットにより初
期化されます。PCTRレジスタのVSTPビットが1のときには本ビットへの0書き込
みは無視されます。
CHC
1
0
クロック選択
発振回路の2分周を基準クロックとして使用〔初期値〕
PLLからの発振出力を基準クロックとして使用
<注意事項>
PCTRのVSTPが0のときにストップモードに移行するとPLLは発振を停止しますが,VSTPは0のま
まとなります。外部割込みなどによりストップモードから復帰したときは,PLLの発振が安定す
るまでにSTCRのOSC1,0で設定した発振安定待ち時間の他に約100μ秒必要となりますので,それ
より前に本ビットを0に設定しないでください。
74
3.12 クロック
3.12.5
ウォッチドッグリセット発生延期レジスタ(WPR)
ウォッチドッグリセット発生延期レジスタ(WPR)
ウォッチドッグリセット発生延期レジスタ(WPR)は,ウォッチドッグタイマ用フ
リップフロップをクリアするレジスタです。本レジスタを用いてウォッチドッグリ
セットの発生を延期させることができます。
■ ウォッチドッグリセット発生延期レジスタ(WPR)
ウォッチドッグリセット発生延期レジスタ(WPR)のレジスタ構成は以下のとお
りです。
[bit 07-00] D7-D0
本レジスタに連続してA5H,5AHを書き込むと,5AHの直後にウォッチドッグタ
イマ用フリップフロップを0にクリアし,ウォッチドッグリセットの発生を延
期させます。
本レジスタの読出し値は不定です。A5Hと5AH の間の時間は制限がありません
が,表 3.12-4の期間内に両データの書き込みを終えないとウォッチドッグリ
セットを発生します。ただし,ストップ,スリープ,ホールド中は自動的にク
リアを行いますので,これらの条件が発生すると,ウォッチドッグリセットは
自動的に延期されます。
表 3.12-4 WT1,WT0で指定されたウォッチドッグの周期
WT1
WT0
0
0
1
1
0
1
0
1
ウォッチドッグリセットの発生を抑止する
ために最低限必要なWPRへの書込み間隔
φ×215
φ×217
φ×219
φ×221
WPRへの最終5AH書込みからウォッチドッグ
リセットが発生するまでの時間
φ×215∼φ×216
φ×217∼φ×218
φ×219∼φ×220
φ×221∼φ×222
ただし,φはGCRのCHC=1のときはX0の2倍,CHC=0のときはPLLの発振周波数
となします。
75
第3章 CPU
3.12.6
PLL制御レジスタ
PLL制御レジスタ(PCTR)
制御レジスタ(PCTR)
PLL制御レジスタ(PCTR)は,PLLの発振を制御するレジスタです。
本レジスタはGCRのCHCが1のときのみ設定を変更可能です。
■ PLL制御レジスタ(PCTR)
PLL制御レジスタ(PCTR)のレジスタ構成は以下のとおりです。
[bit 15,14] SLCT1,0
本ビットはPLLの逓倍率を制御するものです。電源投入時のみ初期化されま
す。
本ビットの設定はGCRのCHCを0に設定したときの内部動作周波数になります。
SLCT1
0
0
1
SLCT0
0
1
X
内部動作周波数 (原振 12.5MHzの場合)
12.5MHz 動作
〔初期値〕
25.0MHz 動作
50.0MHz 動作
[bit 13,12] 予約ビット
常に0を書いてください。
[bit 11] VSTP
本ビットはPLLの発振を制御するものです。電源投入時および外部リセット
により初期化されます。なお,PLLを停止して使用する場合は,リセット解除
後に毎回停止させる必要があります。
VSTP
0
1
PLL動作
発振
発振停止
〔初期値〕
<注意事項>
ストップモードとハードウェアスタンバイに移行すると,本ビットの設定に関わらず,PLLの
発振は停止します。
76
3.12 クロック
3.12.7
ウォッチドッグ機能
ウォッチドッグ機能は,プログラムの暴走状態を検出する機能です。
プログラムの暴走などによりウォッチドッグリセット延期レジスタへのA5H,5AH書
き込みが定められた時間内に行われなかった場合,ウォッチドッグタイマよりウォッ
チドッグリセット要求が発生します。
■ ウォッチドッグ制御部のブロックダイヤグラム
図 3.12-3にウォッチドッグ制御部のブロックダイヤグラムを示します。
図 3.12-3 ウォッチドッグ制御部のブロックダイヤグラム
■ ウォッチドッグタイマの起動
ウォッチドッグタイマは,ウォッチドッグ制御レジスタ(WTCR)への書き込み
により動作を開始します。このとき,ウォッチドッグタイマのインターバル時間
をWT1,0ビットにより設定します。インターバル時間の設定は,最初の書き込みで
設定した時間だけが有効となり,それ以降の設定は無視されます。
〔例〕
LDI:8 #00000010b,R1 ; WT1,0=10
LDI:20 #WTCR,R2
STB
R1,@R2
; ウォッチドッグ起動
■ リセット発生延期
一度,ウォッチドッグタイマを起動すると,プログラムで定期的にウォッチドッ
グリセット延期レジスタ(WPR)に対して定期的にA5H,5AHを書き込む必要があり
ます。ウォッチドッグリセット用フリップフロップは,タイムベースタイマの選
択したタップの立下がりを記憶し,2回目の立下がりで本フリップフロップがクリ
アされていないと,リセットが生成されます。
図 3.12-4に,ウォッチドッグタイマの動作タイミングを示します。
図 3.12-4 ウォッチドッグタイマの動作タイミング
77
第3章 CPU
<注意事項>
・最初のA5Hと次の5AHの間の書き込み間隔の規定はありません。ウォッチドッグの延期は,2回
の5AHの書き込みの間隔がWTビットで指定した時間内であり,かつそれらの間に1回のA5Hの書
き込みがあることでのみ行えます。
・最初のA5Hの後の書き込みが5AH以外であったときは,最初のA5Hの書き込みがあったことを無
効にします。このため,再度A5Hの書き込みを行う必要があります。
■ タイムベースタイマ
タイマベースタイマは,ウォッチドッグタイマへのクロック供給および発振安
定時間待ち用のタイマとして使用されています。動作クロックφはGCRのCHC=1の
ときはX0の2倍,GCRのCHC=0のときはPLLの発振周波数の周期となります。
また,DRAMのリフレッシュのときのカウント値には,RFCRで本タイムベースタ
イマの値をカウントクロックとして使用します。
図 3.12-5 タイムベースタイマのカウンタ
78
3.12 クロック
3.12.8
ギア機能
ギア機能は,クロックを間引いて供給する機能です。CPU用と周辺用の2種の独立
な回路があり,異なるギア比でもCPUと周辺の間でのデータの送受を行うことができ
ます。さらに,原クロックの選択として,PLLからのクロックと同周期のクロックを
使用するか,あるいは2分周回路を通したクロックを使用するかの指定が行えます。
■ ギア制御部のブロックダイヤグラム
図 3.12-6にギア制御部のブロックダイヤグラムを示します。
図 3.12-6 ギア制御部のブロックダイヤグラム
■ ギア機能の設定
CPUのクロックの制御であればギア制御レジスタ(GCR)のCCK1,0ビットを,周辺
のクロックの制御であれば同レジスタのPCK1,0ビットを,それぞれ望む値に設定
することで,希望するギア比に設定することができます。
〔例〕
LDI:20 #GCR,R2
LDI:8 #11111110b,R1
STB R1,@R2 LDI:8 #01111010b,R1
STB R1,@R2 LDI:8 #00111010b,R1
STB R1,@R2 LDI:8 #00110010b,R1
STB R1,@R2
LDI:8 #10110010b,R1
STB R1,@R2 ;
;
;
;
;
;
;
;
;
;
CCK=11,PCK=11,CHC=0
CPU clock=1/8f, Periferal clock=1/8f, f=direct
CCK=01,PCK=10,CHC=0
CPU clock=1/2f, Periferal clock=1/4f, f=direct
CCK=00,PCK=10,CHC=0
CPU clock=f, Periferal clock=1/4f, f=direct
CCK=00,PCK=00,CHC=0
CPU clock=f, Periferal clock=f, f=direct
CCK=10,PCK=00,CHC=0
CPU clock=1/4f, Periferal clock=f, f=direct
79
第3章 CPU
また,ギア制御レジスタのCHCビットを“1”にすると2分周回路の出力を原クロッ
クとして選択し,“0”にすると発振回路からのクロックと同周期のクロックをそ
のまま使用します。原クロックを切り換えるために,CPU系と周辺系は同時に変化
します。
〔例〕
LDI:8 #01110001b,R1
LDI:20 #GCR,R2
STB R1,@R2 LDI:8 #00110011b,R1
STB R1,@R2 LDI:8 #00110010b,R1
STB R1,@R2 ; CCK=01,PCK=00,CHC=1
;
;
;
;
;
CPU clock=1/2f, Periferal clock=f, f=1/2xtal
CCK=00,PCK=00,CHC=1
CPU clock=f, Periferal clock=f, f=1/2xtal
CCK=00,PCK=00,CHC=0
CPU clock=f, Periferal clock=f, f=direct
図 3.12-7にクロック選択のタイミングチャートを示します。
図 3.12-7 クロック選択のタイミングチャート
■ 周辺系クロックを使用するブロック一覧
ここでは,ギア機能で設定可能な周辺系クロックを動作クロックとして使用し
ているブロックを示します。
クロック発生部のGCRレジスタのビットPCK0,1で設定した分周比を元に,動作時
間を計算してください。
l
l
l
l
l
l
l
l
l
l
80
クロック発生部
割込みコントローラ
ポートD∼ポートF
U-TIMER(cH.0,1,2)
UART(ch.0,1,2)
A/Dコンバータ
16ビットリロードタイマ(ch.0, 1, 2)
外部割込み
NMI制御部
遅延割込みモジュール
3.12 クロック
3.12.9
リセット要因保持
直前に発生したリセットの要因を保持します。読み出しにより全フラグを“0”に
します。読み出さない限り,一度立った要因フラグは消えません。
■ リセット要因保持回路のブロックダイヤグラム
図 3.12-8にリセット要因保持回路のブロックダイヤグラムを示します。
図 3.12-8 リセット要因保持回路のブロックダイヤグラム
■ リセット要因保持の設定
本機能を使用するにあたっての特別な設定は不要です。リセットエントリアド
レスに置くプログラムの初めの方に,リセット要因レジスタの読み出しと,適切
なプログラムへ分岐する命令を置くようにします。
〔例〕
RESET-ENTRY
LDI:20
LDI:8
LDUB
MOV
AND
BNE
LSR
MOV
AND
BNE
LSR
MOV
AND
BNE
…
#RSRR,R10
#10000000B,R2
@R10,R1
;
R1,R10
;
R2,R10
;
PONR-RESET
#1,R2
;
R1,R10
;
R2,R10
;
HSTB-RESET
#1,R2
;
R1,R10
;
R2,R10
;
WDOG-RESET
GET RSRR VALUE INTO R1
R10 USED AS A TEMPORARY REGISTER
WAS PONR RESET?
POINT NEXT BIT
R10 USED AS A TEMPORARY REGISTER
WAS HARDWARE STANDBY RESET?
POINT NEXT BIT
R10 USED AS A TEMPORARY REGISTER
WAS WATCH DOG RESET?
81
第3章 CPU
<注意事項>
・PONRビットが1のときは,それ以外のビットの内容は不定として扱ってください。また,リセッ
ト要因をチェックする必要がある場合には,必ず先頭にパワーオンリセット確認の命令を置い
てください。
・パワーオンリセットのチェック以外のリセット要因のチェックは,任意の位置にすることがで
きます。置いた順に優先度が決まります。
82
3.12 クロック
3.12.10
DMA抑止
DMA抑止
FRシリーズはDMA転送中に,より優先度の高い割込み要因が発生するとDMA転送を
中断して該当割込みルーチンへ分岐します。この機構は,割込み要求がある限り有
効ですが,割込み要因をクリアすると抑止機構が働かなくなり,割込み処理ルーチ
ン内でDMA転送を再開します。
このため,DMA転送を中断するレベルの割込み要因の処理ルーチン内で,割込み要
因クリア後のDMA再転送開始を抑止したいときは,DMA抑止機能を使用します。DMA抑
止機能は,DMA抑止レジスタに0以外の値を書くことで起動し,0を書くことで停止し
ます。
■ DMA抑止回路のブロックダイヤグラム
図 3.12-9にDMA抑止回路のブロックダイヤグラムを示します。
図 3.12-9 DMA抑止回路のブロックダイヤグラム
■ DMA抑止の設定
本機能は,主として割込み処理ルーチン内で使用します。
割込み処理ルーチンで,割込み要因をクリアする前にDMA抑止レジスタの内容を
一つ増加させます。このようにすると,以降,DMA転送は行いません。割込み処理
への対応を行った後,復帰する前に,DMA抑止レジスタの内容を一つ減少させます。
もし,多重割込みであれば,DMA抑止レジスタの内容はまだ0にならないため,引
き続いてDMA転送は抑止されます。また,多重割込みでなければ,DMA抑止レジス
タの内容は0になるため,その後すぐにDMA要求を有効にします。
〔例〕
INT-ENTRY
LDI:20 #PDRR,R10
LD
@R10,R1 ; GET PDRR VALUE INTO R1
ADD
#1,R1
ST
R1,@R10
; PDRR:=PDRR+1, DMA disabled
LDI:20 #int-REG,R10; int occurred with int-REG
LDI:8 #10H,R1 ; example, int-flag=#10h
ST
R1,@R10
; CLEAR int-REQ,(but still DMA disabled)
…
; interrupt execute routine
…
LDI:20 #PDRR,R10
83
第3章 CPU
LD
ADD2
ST
RETI
@R10,R1 ; GET PDRR VALUE INTO R1
#-1,R1
R1,@R10
; PDRR:=PDRR-1, DMA may be enabled
<注意事項>
・レジスタのビット数は4ビットですので,15レベルを超える多重割込みで本機能を使用するこ
とができません。DMAタスクの優先順位は,必ず他の割込みレベルより15レベルは上に置いて
ください。また,必ず割込みコントローラのHRCLレジスタと組み合わせて使用してください。
・NMIは割込みの受付けにより自動的に要因がクリアされるため,DMAを抑止することはできませ
ん。割込み受付け後DMAの再転送が行われ,DMAの終了後にNMIの処理が実行されます。
84
3.12 クロック
3.12.11
クロックダブラ機能
内部動作周波数の上昇に伴い外部バスタイミングが厳しくなるのを避けるため,
外部バスと内部動作の周波数を1:2にすることが出来ます。
■ クロックダブラ機能の起動
クロックダブラ機能は,GCRのDBLONを1に設定することにより有効になります。
DBLONが1に設定されるとC-BUSの全アクセスが終了するのを待って外部バスクロッ
クの切り換えを行います。そのため,切り換わるまでに若干のタイムラグがあり
ますが,GCRのDBLAKの値により切り換わりタイミングを知ることが出来ます。
また,クロックダブラ機能を起動させることによりCPU系クロックのギアはGCR
の設定に関わらず1/1になります。
本デバイスは外部バスの動作周波数として25MHZまでが設定可能になっています。
そのため,クロックダブラ機能をONにするときは次のように設定してください。
〔例〕
DOUBLER-ON
LDI:20
BORL
BORH
LOOP
BTSTH
BEQ
BANDL
#GCR,R0
#0001B,@R0
#0001B,@R0
; 2分周系に切り換え(CHC=1)
; クロックダブラON (DBLON=1)
#0010B,@R0
LOOP
#1110B,@R0
; DBLAKを確認
; DBLAKが1になるまでループ
; PLL系に切り換え(CHC=0)
■ クロックダブラ機能の停止
クロックダブラ機能は,GCRのDBLONを0に設定することにより無効になります。
同時にCPU系クロックのギアは1/1からGCRレジスタのCCKビットの設定に戻ります。
〔例〕
DOUBLER-OFF
LDI:20 #GCR,R0
BORL #0001B,@R0
BANDH #1110B,@R0
; 2分周系に切り換え(CHC=1)
; クロックダブラOFF (DBLON=0)
また,クロックダブラ機能をOFFにした後にPLLのクロックを使用する場合は,
次のように設定を行ってください。
〔例〕
DOUBLER-OFF
LDI:20
BORL
BANDH
LDI:20
LDI:8
STB
BANDL
#GCR,R0
#0001B,@R0
#1110B,@R0
#PCTR,R1
#01000000B,R2
R2,@R1
#1110,@R0
; 2分周系に切り換え(CHC=1)
; クロックダブラOFF (DBLON=0)
; PLL=25MHz
; PLL系に切り換え(CHC=0)
85
第3章 CPU
■ クロックダブラ機能のon/offに伴う注意事項
クロックダブラ機能をon/offさせると内部クロックにデッドサイクルを生じる
ことがあります。デッドサイクルが生じた場合は,タイマでの時間測定やUARTの
転送中には誤差として現れます。
■ クロックダブラ機能のon/offによる動作周波数の組み合わせ
PCTRレジスタのSLCT1,0ビットとGCRレジスタの設定の組み合わせにより,本デ
バイスの動作周波数は表 3.12-5のようになります(原発振12.5MHzを使用した場
合の例)。
表 3.12-5 クロックダブラ機能のon/offによる動作周波数の組み合わせ
GCR
内部動作周波 外部バス周波
PLLの発振周
クロックダブラ
備
考
波数(MHz)
数(MHz)
数(MHz)
ギア
1/1
OFF
6.25
6.25
1/2
OFF
3.12
3.12
1/4
OFF
1.56
1.56
1/8
OFF
0.78
0.78
初期値
*1
ON
6.25
3.12
PLL*3
−
50.0
OFF
50.0
50.0
設定禁止
1/1
25.0
OFF
25.0
25.0
1/2
25.0
OFF
12.5
12.5
1/4
25.0
OFF
6.25
6.25
1/8
25.0
OFF
3.12
3.12
1/1
12.5
OFF
12.5
12.5
1/2
12.5
OFF
6.25
6.25
1/4
12.5
OFF
3.12
3.12
1/8
12.5
OFF
1.56
1.56
*1
50.0
ON
50.0
25.0
*2
*1
25.0
ON
25.0
12.5
*1
12.5
ON
12.5
6.25
*1:どのように設定してあっても1/1固定となります。
*2:クロックダブラをOFFにするときは,2分周系に切り換えてからOFFにしてください。
*3:PLLの発振周波数を変更するときは,2分周系に切り換えることが必要です。
CHC
2分周
86
3.12 クロック
3.12.12
PLLのクロック設定例
PLLのクロック設定例
PLLのクロック設定例とアセンブラのソース例について説明します。
■ PLLのクロック設定例
図 3.12-10は,PLLを使用した50MHz動作への切り換え手順の例です。
図 3.12-10 PLLのクロック設定例
<注意事項>
・ここに記載したDBLON,VSTP,SLCT1の各ビットの設定順序は特にありません。
・周辺部の動作周波数が25MHzを超えないようにしてください。
・PLLのVCOの再起動時には,安定するまでの待ち時間100μS以上を,ソフトウェアで必ず取って
ください。また,キャッシュON/OFFなどで待ち時間の不足を起こさないように注意してくださ
い。
87
第3章 CPU
■ クロック系参考図
図 3.12-11 クロック系参考図
■ アセンブラのソース例
; *******************************************
;
PLL Sample Program
; *******************************************
; Load Setting Data
ldi:20
#GCR, R0
ldi:20
#PCTR,R1
ldi:8
#GCR_MASK,R2
; GCR_MASK = 0000 0001 b
ldi:8
#PCTR_MASK,R3
; PCTR_MASK = 0000 1000 b
ldub
@R0,R4
; read GCR register
ldub
@R1,R5
; read PCTR register
st
PS, @-R15
; push processor status
stilm
#0x0
; disable interrupt
;
and
R4,R2
beq
CHC_0
bra
CHC_1
CHC_0:
borL
#0001B,@r0
; to 1/2 cLock @r0=GCR regiSter
CHC_1:
call
VCO_RUN
call
DOUBLER_ON
PLL_SET_END:
ld
@R15+, PS
; pop processor status
; *******************************************
;
VCO Setting
; *******************************************
VCO_RUN:
st
R3, @-R15
; push R3
ldi:8
#PCTR _MASK,R3
; PCTR_MASK = 0000 1000 b
and
R5, R3
; PTCR->VSTP=1 ?
beq
LOOP_100US_END
; if VSTP = 0 return
st
R2, @-R15
; push R2 for Loop counter
bandl
#0111B,@r1
; set VSTP = 0
ldi:20
#0x15E,R2
; wait 100μS
WAIT_100US:
; 100us = 160ns(6.25MHz) * 7 * 100 (2BC)cycle
add2
#(-1), R2
; 2BCh/2 = 15Eh (if cache on)
bne
WAIT_100US
;
88
3.12 クロック
LOOP_100US_END:
ld
ld
ret
@R15+, R2
@R15+, R3
; Pop R2
; Pop R3
; *******************************************
;
doubler ON
; *******************************************
DOUBLER_ON:
borh
#0001B,@r0
; doubler ON
LOOP_DBLON1:
btsth
#0010B,@r0
; check DBLACK
beq
LOOP_DBLON1
; loop while DBLACK = 0
bandl
#1110B,@r0
; to 1/1(PLL) clock
nop
nop
nop
nop
nop
nop
ret
89
第3章 CPU
3.13
低消費電力モード
低消費電力モードには,ストップ状態とスリープ状態があります。
■ ストップ状態の概要
ストップ状態とは,すべての内部クロックを停止,発振回路の動作停止の状態
をいいます。この状態になると,消費電力を最低限に抑えることができます。
ストップ状態への移行は,次のいずれかで行います。
l
l
命令による,スタンバイ制御レジスタ(STCR)への書込み
HSTX端子へのLレベルの印加
動作状態への復帰は,次のいずれかで行います。
l
l
l
割込み要求(ただし,ストップ状態中でも割込み要求が発生可能な周辺
に限る)
RSTX端子へのLレベルの印加
HSTX端子へのLレベル→Hレベルの印加
ストップ状態では,すべての内部クロックが停止しますので,復帰用の割込み
を生成できるもの以外の内蔵周辺は停止状態になります。
■ スリープ状態の概要
スリープ状態とは,CPUクロックと内部バスクロックを停止の状態をいいます。
CPU動作不要な状況での消費電力をある程度抑えることができます。
スリープ状態への移行は,次のように行います。
l
命令による,スタンバイ制御レジスタ(STCR)への書込み
動作状態への復帰は,次のいずれかで行います。
l
l
割込み要求
リセット要因の発生
スリープ状態では,内部DMAクロックと周辺クロックは動作しますので,これら
二つのクロックを使用しているすべての内蔵周辺の割込みで解除ができます。
90
3.13 低消費電力モード
■ 低消費電力モードの動作一覧
表 3.13-1に低消費電力モードの動作一覧を示します。
表 3.13-1 低消費電力モードの動作一覧
動作状態
遷移条件
ラン
スリープ
ストップ
STCRの
SLEP=“1”
STCRの
STOP=“1”
発振器
内部クロック
周辺
端子
○
動作
○
○
動作
×
×
*
○
CPU/内部バス
○
DMA/周辺
○
○
×
×
×
ハードウェア
HSTX=“0”
×
×
×
×
・スタンバイ
○:動作
×:停止
*:STCRのHIZX=“0”で前の状態を保持します。HIZX=“1”でHi-Zになります。
Hi-Z
解除方法
HSTX=“1”
<注意事項>
リセット:RSTX=“0”
STCRレジスタのSRSTビット=“0”
ウォッチドッグリセット
パワーオンリセット
91
第3章 CPU
3.13.1
スタンバイ制御レジスタ(STCR)
スタンバイ制御レジスタ(STCR)
スタンバイ制御レジスタ(STCR)は,スタンバイ動作の制御と発振安定待ち時間
の指定を行うレジスタです。
■ スタンバイ制御レジスタ(STCR)
スタンバイ制御レジスタ(STCR)のレジスタ構成は以下のとおりです。
[bit 07] STOP
本ビットに“1”を書き込むと内部周辺のクロック停止,内部CPUのクロック
停止および発振の停止を行うストップ状態になります。
[bit 06] SLEP
本ビットに“1”を書き込むと内部CPUのクロック停止を行うスリープ状態に
なります。
なお,bit07と本ビット両方に1を書き込んだ場合は,bit07の方が優先とな
りますので,ストップ状態になります。
[bit 05] HIZX
本ビットに“1”を書き込んだ状態でストップ状態になるとデバイスの端子
をハイインピーダンスにします。
[bit 04] SRST
本ビットに“0”を書き込むとソフトウェアリセット要求を発生します。
[bit 03,02] OSC1,0
本ビットは,発振安定待ち時間を指定するものです。本ビットと選択する周
期は表 3.13-2のような関係があります。本ビットはパワーオン,ハードウェ
アスタンバイの各リセットにより初期化され,それ以外のリセット要因では影
響を受けません。
表 3.13-2 OSC1,OSC0で指定された発振安定待ち時間
OSC1
0
0
1
1
OSC0
0
1
0
1
発振安定待ち時間
φ×215
φ×217
φ×219
φ×221 〔初期値〕
ただし,φはX0の2倍の周期となります。
[bit 01,00] (ReServed)
本ビットは予約ビットです。読み出し値は不定です。
92
3.13 低消費電力モード
3.13.2
ストップ状態
ストップ状態とは,すべての内部クロックを停止,発振回路の動作停止の状態を
いいます。この状態になると,消費電力を最低限に抑えることができます。
■ ストップ制御部のブロックダイヤグラム
図 3.13-1にストップ制御部のブロックダイヤグラムを示します。
図 3.13-1 ストップ制御部のブロックダイヤグラム
■ ストップ状態への移行
○
命令を用いてストップ状態にする方法
ストップ状態にいれるためには,STCRレジスタのbit7へ“1”を書き込みま
す。
ストップ要求を発行したのち,CPUが内部バスを使用していない状態になっ
たあとで,次の順にクロックを停止します。
CPUクロック⇒内部バスクロック⇒内部DMAクロック⇒内部周辺クロック
発振回路の停止は,内部周辺クロック停止と同時に行います。
<注意事項>
・命令を用いてストップ状態にするためには,必ず下記ルーチンを使用してください。
・STCRへ書き込む前には,GCRのCCK1,0とPCK1,0の組みに同じ値を設定し,CPU系クロックと周辺
系クロックのギア比を同一にしてください。
・GCRのCHCビットが“0”(PLLで動作中) の状態でストップ状態にしないでください。
ストップ状態に入れるときは,GCRのCHCビットを“1”(2分周系を選択) にしてクロックを切
り換えてからストップ状態に遷移させてください。
・ストップ状態に入れるときはクロックダブラをOFFにしてください。
・STCRへの書き込み直後は,最低6個の連続するNOP命令が必要です。
〔設定方法:ギア最高速の場合の例〕
Loop
LDI:20 #GCR,R0
LDI:8 #00000011b,R1 ; CHC=1,CPU=周辺ギア比
STB
R1,@R0 ; DBLON=0
BTSTH #0010b,@R0
;
BNE
loop ; DBLAK=0 になるまで待つ
LDI:20 #STCR,R0
LDI:8 #10010000b,R1
; STOP=1
93
第3章 CPU
○
STB
R1,@R0
NOP NOP NOP NOP NOP NOP
;
;
;
;
;
;
HSTX端子を用いてストップ状態にする方法
ストップ状態にいれるためには,HSTX端子にLレベルを印加します。
HSTX端子にLレベルを印加したのち,CPUが内部バスを使用していない状態に
なったあとで,次の順にクロックを停止します。
CPUクロック⇒内部バスクロック⇒内部DMAクロック⇒内部周辺クロック
発振回路の停止は内部周辺クロック停止と同時に行います。
<注意事項>
リセット中(RSTX=L)は,HSTX端子をLレベルにしてもストップには入りません。また,HSTX端
子をLレベルのままリセットを解除した場合もストップには入りません。一度HSTX端子をHレベル
に戻した以降,Lレベルにすることによりストップに入ることができます。同様にHSTX端子をLレ
ベルのままパワーオンした場合もパワーオンリセット解除後にストップには入りません。
■ ストップ状態からの復帰
ストップ状態からの復帰は,割込みあるいはハードウェアスタンバイを含むリ
セットの発生で行うことができます。
○
割込みによる復帰
周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発
生によりストップ状態から復帰します。
ストップ状態から通常動作状態への復帰は,以下の手順で行います。
割込み発生⇒発振回路動作再開⇒発振安定待ち⇒安定後,内部周辺クロック
供給再開⇒内部DMAクロック供給再開⇒内部バスクロック供給再開⇒内部CPUク
ロック供給再開
発振安定待ち時間後のプログラム実行は,以下のようになります。
l
発生した割込みのレベルがCPUのILM,Iフラグで許可されている場合
-
l
発生した割込みのレベルがCPUのILM,Iフラグで禁止されている場合
-
○
レジスタ退避を行った後に,割込みベクタを取り込んで割込み処理ルー
チンより実行
ストップ状態に入れた命令以降の命令より実行
RSTX端子による復帰
ストップ状態から通常動作状態への復帰は,以下の手順で行います。
RSTX端子へのLレベル印加⇒内部リセット発生⇒発振回路動作再開⇒発振安
定待ち⇒安定後,内部周辺クロック供給再開⇒内部DMAクロック供給再開⇒内
部バスクロック供給再開⇒内部CPUクロック供給再開⇒リセットベクタ取り込
み⇒リセットエントリアドレスより命令の実行再開
<注意事項>
HSTX端子がLレベルで,ストップ中の場合は,HSTX端子がHレベルに解除されるまではリセット
はかかりません。
94
3.13 低消費電力モード
○
HSTX端子による復帰
ストップ状態から通常動作状態への復帰は,以下の手順で行います。
HSTX端子へのHレベル印加⇒内部リセット発生⇒発振回路動作再開⇒発振安
定待ち⇒安定後,内部周辺クロック供給再開⇒内部DMAクロック供給再開⇒内
部バスクロック供給再開⇒内部CPUクロック供給再開⇒リセットベクタ取込み
⇒リセットエントリアドレスより命令の実行再開
<注意事項>
・周辺からの割込み要求がすでに発生している場合は,ストップ状態にならず,書込みは無視さ
れます。
・パワーオンリセット以外では,発振安定待ち時間中はすべての内部クロック供給は行いません。
パワーオンリセットでは内部状態の初期化を行う必要があるため,すべての内部クロックの供
給を行います。
・ストップ状態からHSTX端子を“L”レベルにすると,ただちにストップ状態が解除されて所定
の発振安定待ち時間が取られます。発振安定待ち時間経過後,HSTX端子が“L”レベルである
とHSTX端子によるストップ状態へ遷移します。
95
第3章 CPU
3.13.3
スリープ状態
スリープ状態とは,CPUクロックと内部バスクロックを停止の状態をいいます。
CPU動作不要な状況での消費電力をある程度抑えることができます。
■ スリープ制御部のブロックダイヤグラム
図 3.13-2にスリープ制御部のブロックダイヤグラムを示します。
図 3.13-2 スリープ制御部のブロックダイヤグラム
■ スリープ状態への移行
スリープ状態にいれるためには,STCRレジスタのbit7へ“0”
,bit6へ“1”を書
き込みます。
スリープ要求を発行したのち,CPUが内部バスを使用していない状態になったあ
とで,次の順にクロックを停止します。
CPUクロック⇒内部バスクロック
<注意事項>
・命令を用いてスリープ状態にするためには,必ず下記ルーチンを使用してください。
・STCRへ書き込む前には,GCRのCCK1,0とPCK1,0の組みに同じ値を設定し,CPU系クロックと周
辺系クロックのギア比を同一にしてください。
・GCRのCHCビットは任意です。
・STCRへの書き込み直後は,最低6個の連続するNOP命令が必要です。
〔設定方法:ギア最高速の場合の例〕
LDI:20 #GCR,R0
LDI:8 #00000011b,R1 ; CHC=1,CPU=周辺ギア比
STB
R1,@R0 ; DBLON=0の場合
LDI:20 #STCR,R0
LDI:8 #01010000b,R1 ; SLEP=1
STB
R1,@R0
NOP ;
NOP ;
NOP ;
NOP ;
NOP ;
NOP
;
96
3.13 低消費電力モード
■ スリープ状態からの復帰
スリープ状態からの復帰は,割込みあるいはハードウェアスタンバイを含むリ
セットの発生で行うことができます。
○
割込みによる復帰
周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発
生によりスリープ状態から復帰します。
スリープ状態から通常動作状態への復帰は,以下の手順で行います。
割込み発生⇒内部バスクロック供給再開⇒内部CPUクロック供給再開
クロック供給後のプログラム実行は,以下のようになります。
l
発生した割込みのレベルがCPUのILM,Iフラグで許可されている場合
-
l
発生した割込みのレベルがCPUのILM,Iフラグで禁止されている場合
-
○
レジスタ退避を行った後に,割込みベクタを取り込んで割込み処理ルー
チンより実行
スリープ状態に入れた命令以降の命令より実行
ハードウェアスタンバイに起因するリセット以外のリセット要求による復帰
スリープ状態から通常動作状態への復帰は,以下の手順で行います。
内部リセット発生⇒内部バスクロック供給再開⇒内部CPUクロック供給再開
⇒リセットベクタ取込み⇒リセットエントリアドレスより命令の実行再開
○
HSTX端子による復帰
スリープ状態から通常動作状態への復帰は,以下の手順で行います。
HSTX端子へのLレベル印加⇒ハードウェアスタンバイ状態へ遷移⇒HSTX端子
へのHレベル印加⇒内部リセット発生⇒発振回路動作再開⇒発振安定待ち⇒安
定後,内部周辺クロック供給再開⇒内部DMAクロック供給再開⇒内部バスクロッ
ク供給再開⇒内部CPUクロック供給再開⇒リセットベクタ取込み⇒リセットエ
ントリアドレスより命令の実行再開
<注意事項>
・周辺の割込みをDMAの転送要求として使用している場合は,該当の割込みでスリープ状態から
復帰します。
・周辺からの割込み要求がすでに発生している場合は,スリープ状態になりません。
DMA要求とスリープ要求が同時に発生した場合は,DMA要求が優先されます。
97
第3章 CPU
3.13.4
低消費電力モードの状態遷移
図 3.13-3に低消費電力モードの状態遷移図を示します。
■ 低消費電力モードの状態遷移
図 3.13-3 低消費電力モ ー ド の 状 態 遷 移 図
98
3.14 メモリアクセスモード
3.14
メモリアクセスモード
メモリアクセスに関する動作モードには,バスモードとアクセスモードがありま
す。
モード端子(MD2,1,0)とモードレジスタ(MODR)で動作モードの制御を行います。
■ 動作モード
動作モードには,バスモードとアクセスモードがあります。
バスモード
○
アクセスモード
内ROM外バス
16ビットバス幅
外ROM外バス
8ビットバス幅
バスモード
バスモードとは,内部ROMの動作と外部アクセス機能の動作を制御するモー
ドを指し,モード設定端子(MD2,1,0)とモードレジスタ(MODR)内のM1,M0
ビットの内容で指定します。
○
アクセスモード
アクセスモードとは,外部データバス幅を制御するモードを示し,モード設
定端子(MD2,1,0)とエリアモードレジスタ(AMD0/AMD1/AMD32/AMD4/AMD5)
内のBW1,0ビットで指定します。
■ モード端子
MD2,1,0の3端子で,表 3.14-1に示すように動作の指定を行います。
表 3.14-1 モード端子と設定モード
モード端子
MD2 MD1 MD0
0 0 0
0 0 1
0 1 0
0 1 1
1 - -
モード名
外部ベクタモード0
外部ベクタモード1
−
内部ベクタモード
−
リセットベクトル
外部データバス幅
備 考
アクセス領域
外部
8 bit
外部ROM外部バスモード
外部
16 bit
外部ROM外部バスモード
−
−
設定禁止
−
−
設定禁止
−
−
設定禁止
■ モードデータ
リセット後CPUが“0000 07FFH”に書き込むデータをモードデータと呼びます。
“0000 07FFH” に存在するのはモードレジスタ(MODR)で,本レジスタに設定
した後は本レジスタの設定モードで動作します。
モードレジスタには,リセット後1度だけしか書き込むことが出来ません。
本レジスタによる設定値は,書き込み直後に有効となります。
99
第3章 CPU
■ モードレジスタ(MODR)
図 3.14-1にモードレジスタ(MODR)の構成を示します。
図 3.14-1 モードレジスタの構成
○
バスモード設定ビット(M1,M0)
モードレジスタ書き込み後のバスモードの指定を行います。
各ビットの機能の関係を表 3.14-2に示します。
表 3.14-2 バスモード設定ビットとその機能
M1
0
0
1
1
M0
0
1
0
1
機 能
−
内ROM外バスモード
外ROM外バスモード
−
備 考
設定禁止
注意事項参照
設定禁止
<注意事項>
本品種では,内部RAM128KBは内部ROM領域に配置しております。したがって,内部RAM128KBを
使用する場合,必ず“01”に設定してください。詳しくは,「3.14.1 内蔵RAMの使用方法」を参
照してください。
○
その他のビット(*)
これらのビットには,常に“0”を書きこんでください。
100
3.14 メモリアクセスモード
■ モードレジスタ(MODR)書込み時の注意点
MODRに書き込む前には必ずAMD0∼5を設定し,各チップセレクト(CS)領域のバ
ス幅を決定してください。
MODRには,バス幅を設定するビットはありません。
バス幅に関しては,MODR書き込み前はモード端子MD2∼0の値が,MODR書き込み
後はAMD0∼5のBW1,0の設定値が有効になります。
例えば,外部リセットベクタは通常領域0(CS0Xがアクティブな領域)で行いま
すが,そのときのバス幅はMD2∼0端子で決まります。MD2∼0でそのときのバス幅
を16ビットに設定し,AMD0には何も設定しないままMODRに書き込みを行ってしま
うと,AMD0のバス幅の初期値は8ビットになっているため,領域0はMODRに書き込
み後8ビットバスモードに遷移してバス動作してしまい,誤動作します。
このような問題を防ぐため,MODRを書き込む前には必ずAMD0∼5を設定しておく
ことが必要です。
101
第3章 CPU
3.14.1
内蔵RAM
内蔵RAMの使用方法
RAMの使用方法
MB91107/MB91108は,内蔵RAM(MB91107:128Kbyte,MB91108:160Kbyte)を搭載して
いますが,このRAMを有効にするためにはモードレジスタで内ROM外バスモード
(M1,M0=01)にしなければなりません。
■ 内蔵RAMの使用方法
内蔵RAM使用時の注意点は以下のとおりです。
l
l
l
リセットベクタは,000F_FFFCh固定です。
内蔵RAM領域は,000E_0000h∼000F_FFFFhに配置されていますが,領域
の半分はミラーがかかっています。
内蔵RAMを使用する場合は,モードレジスタで内ROM外バスモードにしな
ければいけません。内ROM外バスモードにすると内蔵RAM領域は使用でき
ますが,ベクタ領域000F_FFxxhが内部領域になり外部にアクセスしなく
なります。
図 3.14-2に内蔵RAM使用時のモード設定を示します。なお,図中の網掛け部分
は内部領域です。
図 3.14-2 内蔵RAM使用時のモード設定
モード設定後はベクタ領域が内部になるため,モードレジスタに書き込む前に
TBRレジスタを書き換えてベクタ領域を外部領域に移動する必要があります。
102
3.14 メモリアクセスモード
3.14.2
ユーザプログラムの初期化
内蔵RAMを使用する場合の使用方法を,例を示しながら順次説明します。
■ ハードウェア設計条件
l
1MBのExternal ROMを0010_0000hから配置した場合を想定します。
-
l
l
l
リンカにてプログラムをここへ配置します(このアドレス以外でも以
下の説明への適用は可)。
アドレスはA19∼A1(1MB)をROMにつないであり,それ以上のアドレスは
CS0Xを用いることとします。
モード端子(MD2,MD1,MD0)は外部ベクトルに設定します。
リセットベクトルは001F_FFFChに記載します(ここが通常と違うため注
意)
。
■ リセット解除直後
l
l
リセット解除後,CPUは000F_FFFChからリセットベクトルを取り込もう
とするが,外部ベクトルの設定でるため外部へ取りに行きます。ところ
が,CS0Xの初期値により外部空間は1MBのExternal ROMが繰り返して見
える状態になっているので,リセットベクトルそのものはExternal ROM
の001F_FFFChに記載されているものを取り込むことになります。
分岐先はリンカで001X_XXXXhのいずれかに入るようにしてあるので,以
降のプログラム実行は,このあたりで行われます。
103
第3章 CPU
■ ユーザプログラム初期化ステップ(その1)
l
割込みテーブルを001F_FFXXhになるようにTBRを設定し,その後各種初
期化を行います。この過程でchip Selecの設定も行いますが,このとき,
CS0Xのアドレスを001X_XXXXhで有効になるように設定します。
設定の前後では,CS0Xのデコード結果は変わらないので,CPUはExternal
ROM上のプログラムをそのまま実行し続けます。
■ ユーザプログラム初期化ステップ(その2)
l
ここでモードレジスタの設定をして,内ROMを許可状態にします(実際
には,ROMは搭載されていない)。
-
l
l
l
104
ここで初めてC-buS上のRAMがCPUから見えるようになります。
この状態でのメモリマップは右上のようになります。
必要であればRAMの内容を初期化します。
これにて初期化は完了して,アプリケーシュンプログラムが実行できる
ようになります。
第4章
バスインタフェース
この章では,バスインタフェースの概要,レジスタの構成/機能,バス動作,バ
スタイミングおよびバス動作のプログラム例について説明します。
4.1 バスインタフェースの概要
4.2 バスインタフェースのブロックダイヤグラム
4.3 バスインタフェースのレジスタ
4.4 バス動作
4.5 バスタイミング
4.6 内部クロック逓倍動作(クロックダブラ)
4.7 外部バス動作のプログラム例
105
第4章 バスインタフェース
4.1
バスインタフェースの概要
バスインタフェースは,外部メモリおよび外部I/Oとのインタフェースを制御しま
す。
■ バスインタフェースの特長
l
l
25ビット(32MB)のアドレス出力
チップセレクト機能により6個の独立したバンク
-
最小で64KB単位で論理アドレス空間上の任意の位置に設定可能
-
アドレス端子とチップセレクト端子で合計32MB×6の領域設定可能
l
チップセレクト領域ごとに16/8ビットのバス幅の設定が可能(領域0∼5
のみ)領域6,7は包括する領域の設定が有効になります。
l
l
l
l
l
プログラマブルな自動メモリーウエイト (最大で7サイクル分) の挿入
DRAMインタフェースのサポート
-
3種類のDRAMインタフェース
Double CAS DRAM(通常DRAM I/F)
Single CAS DRAM
Hyper DRAM
-
2バンク独立制御(RAS,CASなどの制御信号)
-
2CAS/1WE,1CAS/2WEのDRAM選択可能
-
高速ページモードサポート
-
CBR/セルフリフレッシュサポート
-
プログラマブル波形
未使用のアドレス/データ端子はI/Oポートとして使用可能
little endianモードサポート
クロックダブラ使用:最高内部50MHz,外部バス25MHz動作
■ チップセレクト領域
バスインタフェースには,全部で8種類のチップセレクト領域が用意されます。
各領域の位置は,エリア選択レジスタ(ASR1∼7)とエリアマスクレジスタ(AMR1
∼7)で4GBの空間に,最小64KB単位で任意に配置することができます。
また,これらのレジスタによって指定された領域に対して外部バスアクセスを
しようとすると,対応するチップセレクト信号CS0X∼CS7Xがアクティブ“L”にな
ります。
リセット時は,CS0Xを除くこれらの端子はインアクティブ“H”となります。
<注意事項>
領域0は,ASR1∼ASR7によって指定された領域以外の空間に割り当てられます。
リセット時は,0001 0000H∼0005 FFFFH以外の外部領域が領域0です。
領域6,7で設定された領域は,他の領域(0∼5)で設定された領域と排他であり,
かつ優先されます。すなわち,領域6,7で設定された領域を外部バスアクセスしよ
うとすると,チップセレクト信号CS6X,CS7Xがアクティブ“L”になりますが,他
の領域(0∼5)は必ずインアクティブ“H”となります。領域6,7と領域0∼5が重なっ
106
4.1 バスインタフェースの概要
ていた場合は,領域6,7が優先されます。
図 4.1-1の(a)に,領域1から領域5を00100000H∼0014FFFFHに64KB単位で配置
した例を示します。また,図 4.1-1の(b)に,領域1を00000000H∼0007FFFFHの512KB,
領域2から領域5を00100000H∼004FFFFFHに1MB単位で配置した例を示します。
図 4.1-1 チップセレクト領域の設定例
■ インタフェース
バスインタフェースには,次のインタフェースがあります。
l
l
通常バスインタフェース
DRAMインタフェース
これらのインタフェースは,あらかじめ決められた領域でのみ使用できます。
表 4.1-1に各チップセレクト領域と,使用可能なインタフェース機能との対応
を示します。
エリアモードレジスタ(AMD)によって,これらのどのインタフェースを使用す
るかどうかを選択します。
なお,選択しない場合は通常バスインタフェースになります。
表 4.1-1 チップセレクト領域と選択できるバスインタフェースとの対応
領 域
0
1
2
3
4
5
6
7
選択できるバスインタフェース
通常バス
○
○
○
○
○
○
○
○
時分割
−
−
−
−
−
−
−
−
DRAM
−
−
−
−
○
○
−
−
備 考
リセット時
ウェイト,バス幅設定不可
ウェイト,バス幅設定不可
107
第4章 バスインタフェース
○
DRAMインタフェース
DRAMインタフェースは2チャネル用意され,領域4,5を使用します。
l
l
l
l
l
l
○
3種類のDRAMインタフェース
-
Double CAS DRAM(通常DRAM I/F)
-
Single CAS DRAM
-
Hyper DRAM
高速ページモード
2CAS/1WE,1CAS/2WEの選択
CBRリフレッシュ方式
セルフリフレッシュモード
RAS,CASのプログラマブル波形出力
バスサイズ指定
領域1∼5は,レジスタの設定によりバス幅の任意指定ができます。
領域0は,リセット時MD2,1,0端子で設定されたバス幅になり,モードレジス
タ(MODR)に書き込み以降は,AMD0レジスタの設定値によりバスサイズが指定さ
れます。
<注意事項>
領域6,7はバス幅,ウェイトサイクル数の設定はできません。領域6,7の設定は包括される領域
の設定が有効になります。領域6が領域0に包括されるときは,領域0の設定になります。
108
4.2 バスインタフェースのブロックダイヤグラム
4.2
バスインタフェースのブロックダイヤグラム
図 4.2-1に,バスインタフェースのブロックダイヤグラムを示します。
■ バスインタフェースのブロックダイヤグラム
図 4.2-1 バスインタフェースのブロックダイヤグラム
109
第4章 バスインタフェース
4.3
バスインタフェースのレジスタ
図 4.3-1に,バスインタフェースのレジスタ一覧を示します。
■ バスインタフェースのレジスタ一覧
図 4.3-1 バスインタフェースのレジスタ一覧
モードレジスタ(MODR)については,
「3.14
てください。
110
メモリアクセスモード」を参照し
4.3 バスインタフェースのレジスタ
4.3.1
エリア選択レジスタ(ASR)
エリア選択レジスタ(ASR)とエリアマスクレジス
(ASR)とエリアマスクレジス
タ(AMR)
エリア選択レジスタ(ASR1∼7)とエリアマスクレジスタ(AMR1∼7)は,チップ
セレクト領域1∼7のアドレス空間の範囲を指定します。
■ エリア選択レジスタ(ASR)とエリアマスクレジスタ(AMR)
エリア選択レジスタ(ASR)とエリアマスクレジスタ(AMR)のレジスタ構成は
以下のとおりです。
○
エリア選択レジスタ(ASR1∼7)
○
エリアマスクレジスタ(AMR1∼7)
111
第4章 バスインタフェース
エリア選択レジスタ(ASR1∼7)とエリアマスクレジスタ(AMR1∼7)は,チッ
プセレクト領域1∼7のアドレス空間の範囲を指定します。
ASR1∼7はアドレスの上位16ビット(A31∼16)を指定し,AMR1∼7で対応するア
ドレスビットをマスクします。AMR1∼7の各ビットは“0”でcare,
“1”でdon't care
を示します。
“care”は,ASRの設定値が“0”の場合は“0”
,
“1”の場合は“1”としてアド
レス空間を示します。
“don't care”の場合は,ASRの設定値にかかわらず,“0”,“1”両方の場合の
アドレス空間を示します。
下記にASRとAMRの組合せによる,各チップセレクト領域指定の例を示します。
(例1)
ASR1 = 00000000 00000011 B
AMR1 = 00000000 00000000 B
を設定した場合,ASR1に“1”を設定したビットに対応するAMR1のビットは
“0”のため,領域1のアドレス空間は,次に示すように64KBになります。
00000000 00000011 00000000 00000000 B
(00030000H)
│
00000000 00000011 11111111 11111111 B (0003FFFFH)
(例2)
ASR2 = 00001111 11111111 B
AMR2 = 00000000 00000011 B
を設定した場合,AMR2に“0”を設定したビットに対応するASR2の設定値は
“1”と“0”をそのままcareし,AMR2に“1”を設定したビットに対応するAS R2
の ビ ッ ト は,“0”もしくは“1”のdon't careになることから,領域2のアド
レス空間は,次に示すように256KBになります。
00001111 11111100 00000000 00000000 B
(0FFC0000H)
│
00001111 11111111 11111111 11111111 B (0FFFFFFFH)
領域1∼5の各領域のアドレス空間は,ASR1∼5とAMR1∼5で,4GBの空間に最小64KB
単位で任意に配置することができます。これらのレジスタによって指定された領
域に対してバスアクセスを行うと,対応するチップセレクト端子(CS0X∼CS5X)
が“L”出力となります。
なお,領域0は,ASR1∼5とAMR1∼5で設定された領域以外の空間が割り当てられ,
リセット時は,ASR1∼5とAMR1∼5の初期値により0001000H∼0005FFFFH以外の領域
が割り当てられています。
<注意事項>
領域1∼5のチップセレクト領域は, お互いにオーバラップしないように設定してください。
図 4.3-2に,リセット時の初期値で64KB単位で設定されたマップと,上記の例1
と例2で設定した領域のマップを示します。
112
4.3 バスインタフェースのレジスタ
図 4.3-2 チップセレクト領域を設定したマップの例
113
第4章 バスインタフェース
4.3.2
エリアモードレジスタ0(AMD0)
エリアモードレジスタ0(AMD0)
エリアモードレジスタ0(AMD0)は,チップセレクト領域0(ASR1∼5およびAMR1∼
5で指定された領域以外の領域)の動作モードを指定します。リセット時は,領域0
が選択されます。
■ エリアモードレジスタ0(AMD0)
エリアモードレジスタ0(AMD0)のレジスタ構成は以下のとおりです。
[bit 4,3] BW1,0 (Bus Width bit)
BW1,0は,領域0のバス幅を指定します。
BW1
0
0
1
1
BW0
0
1
0
1
バス幅
8ビット
16ビット
設定禁止
設定禁止
[bit 2∼0] WTC2∼0 (Wait Cycle bit)
WTC2∼0は,通常バスインタフェース時の自動ウエイトの挿入回数を指定しま
す。
WTC2
0
0
0
0
1
1
1
1
WTC1
0
0
1
1
0
0
1
1
WTC0
0
1
0
1
0
1
0
1
挿入ウエイトサイクル数
0
1
2
3
4
5
6
7
AMD0のWTC2∼ 0はリセット時に“111”に設定され,リセット解除直後のバス
アクセスでは自動的に7サイクルのウエイトが挿入されます。
114
4.3 バスインタフェースのレジスタ
<注意事項>
MODRを書き込む前に,必ずAMD0のBW1,0にMD2,1,0端子で設定したバス幅と同じバス幅を設定し
てください。
領域0のバス幅は, リセット時はMD2,1,0端子で指定され,モードレジスタ(MODR)設定後は,
AMD0で設定されているバス幅が有効になります。
MD2,1,0端子で領域0を16ビット幅に設定し,そのバス幅のままでAMD0を設定せずにMODRの書き
込みを行うと,AMD0のBW1,0の初期値は“00”のため,8ビットバス幅に遷移して誤動作してしま
います。
115
第4章 バスインタフェース
4.3.3
エリアモードレジスタ1(AMD1)
エリアモードレジスタ1(AMD1)
エリアモードレジスタ1(AMD1)は,チップセレクト領域1(ASR1とAMR1で指定さ
れた領域)の動作モードを指定します。
■ エリアモードレジスタ1(AMD1)
エリアモードレジスタ1(AMD1)のレジスタ構成は以下のとおりです。
[bit 7] MPX (MultiPleX bit)
MPXは,アドレス/データ入出力の時分割入出力インタフェースを制御しま
す。
本品種では,時分割入出力バスをサポートしておりません。
このビットには,必ず“0”を書き込んでください。
[bit 4,3] BW1,0 (Bus Width bit)
BW1,0は,領域1のバス幅を指定します。
BW1
0
0
1
1
BW0
0
1
0
1
バス幅
8ビット
16ビット
設定禁止
reserved
[bit 2∼0] WTC2∼0 (Wait Cycle bit)
WTCは,通常バスインタフェース動作時の自動挿入ウエイトサイクル数を指
定します。動作はAMD0のWTC2∼ 0と同様ですが,リセットで“000”に初期化さ
れ,挿入ウエイトサイクル数は“0”になります。
116
4.3 バスインタフェースのレジスタ
4.3.4
エリアモードレジスタ32(AMD32)
エリアモードレジスタ32(AMD32)
エリアモードレジスタ32(AMD32)は,チップセレクト領域2(ASR2とAMR2で指定
された領域)とチップセレクト領域3(ASR3とAMR3で指定された領域)の動作モード
を制御します。
これらの領域は通常バスアクセスのみであり,DRAMインタフェースの特殊なイン
タフェースは使用できません。
領域2,3のバス幅は,BW1,0ビットで一括して同じバス幅を制御し,自動ウエイト
サイクルはそれぞれの領域で独立に設定できます。
■ エリアモードレジスタ32(AMD32)
エリアモードレジスタ32(AMD32)のレジスタ構成は以下のとおりです。
[bit 7,6] BW1,0 (Bus Width bit)
BW1,0は領域2/領域3のバス幅を指定します。
BW1
0
0
1
1
BW0
0
1
0
1
バス幅
8ビット
16ビット
設定禁止
reserved
[bit 5∼3] WT32∼30 (Wait Cycle bit)
WT32∼30は,領域3のメモリアクセス時の自動挿入ウエイトサイクル数を指定
します。
動作は,AMD0のWTC2∼0と同様です。
リセットで“000”に初期化され,挿入ウエイトサイクル数は“0”になりま
す。
[bit 2∼0] WT22∼20 (Wait Cycle bit)
WT22∼20は,領域2のメモリアクセス時の自動挿入ウエイトサイクル数を指定
します。
動作は,AMD0のWTC2∼0と同様です。
リセットで“000”に初期化され,挿入ウエイトサイクル数は“0”になりま
す。
117
第4章 バスインタフェース
4.3.5
エリアモードレジスタ4(AMD4)
エリアモードレジスタ4(AMD4)
エリアモードレジスタ4(AMD4)は, チップセレクト領域4(ASR4とAMR4で指定さ
れた領域)の動作モードを指定します。
領域4はDRAMインタフェースを使用できます。
■ エリアモードレジスタ4(AMD4)
エリアモードレジスタ4(AMD4)のレジスタ構成は以下のとおりです。
[bit 7] DRME (DRaM Enable bit)
領域4に対して,通常バスインタフェースかDRAMインタフェースかを選択し
ます。
0:通常バスインタフェース
1:DRAMインタフェース
なお,DRAMインタフェースを使用する場合は,後述のDMCR(DRAM Control
Register)で更に細かい制御を行う必要があります。
[bit 4,3] BW1,0 (Bus Width bit)
BW1,0は領域4のバス幅を指定します。他のAMDレジスタのBWビットと同様の
機能を持ちます。また,DRAMインタフェースを使用する場合もこれらビットで
指定されたバス幅が有効です。
BW1
0
0
1
1
BW0
0
1
0
1
バス幅
8ビ ッ ト
16ビ ッ ト
設定禁止
reserved
[bit 2∼0] WTC2∼0 (Wait Cycle bit)
WTC2∼ 0は,領域4のメモリアクセス時の自動挿入ウエイトサイクル数を指定
します。
他のAMDレジスタのWTCビットと同様の機能を持ち,リセットで“000”に初
期化され挿入ウエイトサイクル数は“0”になります。
ただし,DRAMインタフェースを使用する場合のウエイトサイクルは,DMCRで
制御されるためWTC2∼0は無効となります。
118
4.3 バスインタフェースのレジスタ
4.3.6
エリアモードレジスタ5(AMD5)
エリアモードレジスタ5(AMD5)
エリアモードレジスタ(AMD5)は, チップセレクト領域5(ASR5とAMR5で指定され
た領域)のバスモードを指定します。
領域5はDRAMインタフェースを使用できます。
■ エリアモードレジスタ5(AMD5)
エリアモードレジスタ5(AMD5)のレジスタ構成は以下のとおりです。
[bit 7] DRME (DRaM Enable bit)
領域5に対して,通常バスインタフェースかDRAMインタフェースかを選択し
ます。
0:通常バスインタフェース
1:DRAMインタフェース
なお,DRAMインタフェースを使用する場合は,後述のDMCR(DRAM Control
Register)で更に細かい制御を行う必要があります。
[bit 4,3] BW1,0 (Bus Width bit)
BW1,0は領域5のバス幅を指定します。他のAMDレジスタのBWビットと同様の
機能を持ちます。また,DRAMインタフェースを使用する場合もこれらビットで
指定されたバス幅が有効です。
BW1
0
0
1
1
BW0
0
1
0
1
バス幅
8ビ ッ ト
16ビ ッ ト
設定禁止
reserved
[bit 2∼0] WTC2∼0 (Wait Cycle bit)
WTC2∼ 0は,領域5のメモリアクセス時の自動挿入ウエイトサイクル数を指定
します。
他のAMDレジスタのWTCビットと同様の機能を持ち,リセットで“000”に初
期化され挿入ウエイトサイクル数は“0”になります。
ただし,DRAMインタフェースを使用する場合のウエイトサイクルは,DMCRで
制御されるためWTC2∼0は無効となります。
119
第4章 バスインタフェース
4.3.7
チップセレクト信号レジスタ6/7(CS67)
チップセレクト信号レジスタ6/7(CS67)
チップセレクト信号レジスタ6/7(CS67)は,チップセレクト信号CS6X,CS7Xの出力
制御をします。
初期状態では,CS6X,CS7X端子は動作停止状態でHレベル出力になります。
■ チップセレクト信号レジスタ6/7(CS67)
チップセレクト信号レジスタ6/7(CS67)のレジスタ構成は以下のとおりです。
[bit 3] CEB7(Chip select action EnaBle 7)
0:CS7X機能動作停止(初期化)
1:CS7X機能動作許可
[bit 2] CEB6(Chip select action EnaBle 6)
0:CS6X機能動作停止(初期化)
1:CS6X機能動作許可
[bit 1] COE7(Chip select Output Enable 7)
0:出力禁止
1:出力許可(初期化)
[bit 0] COE6(Chip select Output Enable 6)
0:出力禁止
1:出力許可(初期化)
120
4.3 バスインタフェースのレジスタ
4.3.8
DRAM制御レジスタ
DRAM制御レジスタ4/5(DMCR4/5)
制御レジスタ4/5(DMCR4/5)
DRAM制御レジスタ4/5(DMCR4,DMCR5)は,領域4,5のDRAMインタフェースを制御
するレジスタであり,AMD4,5のDRMEビットに“1”が設定されているときのみ有効で
す。
■ DRAM制御レジスタ4/5(DMCR4/5)
DRAM制御レジスタ4/5(DMCR4/5)のレジスタ構成は以下のとおりです。
[bit 15∼12] PGS3∼0 (PaGe size Select bit)
PGS3∼0は,接続するDRAMのページサイズを指定します(表 4.3-1参照)
。
表 4.3-1 接続DRAMのページサイズ
PGS3∼0
ページサイズ
0000
0001
0010
0011
0100
│
1111
256
512
1024
4096
Reserved
コラム
A15∼00 アドレス
A23∼08 A31∼00
A24∼09 A31∼00
A25∼10 A31∼00
A27∼12 A31∼00
ROW Address
A31∼16
A31∼16
A31∼16
A31∼16
A31∼16
ページ内かどうかの判断
8ビットバス
A31∼08
A31∼09
A31∼10
A31∼12
16ビットバス
A31∼09
A31∼10
A31∼11
A31∼13
バスインタフェースユニットは,PGS3∼0の値と,設定されたバス幅からROW
サイズ(ページサイズ) を判定します。レジスタでページアクセスモードが許
可されているときに,ページ内のアクセスが発生すると,高速ページアクセス
が実行されます。
[bit 11] Q1W (Q1 wait bit)
DRAMアクセス時のQ1サイクル(RASの“H”期間) を自動的に1サイクル延長す
るかどうかを指定します。
0:Q1サイクルの延長は行わない(初期値)
1:Q1サイクルの延長を行う
[bit 10] Q4W (Q4 wait bit)
DRAMアクセス時のQ4サイクル(CASの“L”期間) を自動的に1 サイクル延長
するかどうかを指定します。なお,本Q4WビットはDSASビット(bit9)が“0”
のときのみ有効です。
0:Q4サイクルの延長は行わない(初期値)
1:Q4サイクルの延長を行う
121
第4章 バスインタフェース
[bit 9] DSAS (Double/Single cas Access cycle Select bit)
DRAMアクセスの高速ページモードを使用する際,CASアクセスを2サイクル
(DoubLe CAS access)とするのか,1サイクル(Single CAS access)とするの
かを選択します。
0:Double CAS access (初期値)
1:Single CAS access
[bit 8] HYPR (HYPeR page mode enable)
外部にHyper page mode付のDRAMを接続する際に設定します。
HYPRビットは,DSASビット(bit9)が“1”のときのみ有効です。
0:DoubLe/Single CAS DRAM(初期値)
1:Hyper page mode 付 DRAM
[bit 7] PAGE (PAGe Enable bit)
高速ページモードを有効にするかどうかを指定します。
0:高速ページモード無効(常にランダムアクセスの動作,初期値)
1:高速ページモード有効(PGS3∼0で指定されたページ内のアクセスは,高
速ページモードでアクセスされます)
[bit 6] C/W (1CAS-2WE/2CAS-1WE Select bit)
C/Wビットは,16ビット以上のバス幅を使用する際に,1CAS-2WEタイプのメ
モリにインタフェースするか,2CAS-1WEタイプのメモリにインタフェースする
かを指定します。
0:1CAS-2WEインタフェース(初期値)
1:2CAS-1WEインタフェース
[bit 5] SLFR (SeLF Refresh bit)
SLFRに“1”を書き込むと,DRAMはセルフリフレッシュモードに移行します。
セルフリフレッシュモードは,領域4/5に関係なく,DMCR4またはDMCR5のこ
のビットに“1”を書き込むと起動されます。
SLFRは任意のタイミングで読み書きできますが,DRAMのセルフリフレッシュ
モードを解除した際は,十分にRASのリカバリー時間を確保してください。
0:セルフリフレッシュ解除(初期値)
1:セルフリフレッシュ起動
[bit 4] REFE (REFresh Enable bit)
REFEは,CBR(CAS Before RAS)方式の周期的なリフレッシュ動作をするかど
うかを指定します。リフレッシュは領域4/5に関係なく,DMCR4またはDMCR5の
このビットに“1”を書き込み,RFCR(ReFresh Control Register)のSTRビット
を書き込むとリフレッシュサイクルを行います。
0:リフレッシュを行わない(初期値)
1:リフレッシュを行う。RFCR(ReFresh Control Register)で指定される周
期でリフレッシュが行われます。
[bit 3] PAR (PARity select bit)
本デバイスでは,パリティ機能をサポートしていません。
このビットへの書き込みは意味を持ちません。
[bit 2] PERR (Parity ERRor bit)
本デバイスは,パリティ機能をサポートしておりません。
このビットへの書き込みは意味をもちません。
122
4.3 バスインタフェースのレジスタ
[bit 1] PEIE (Parity Error Interrupt Enable bit)
PEIEはパリティエラー発生時に割込み要求を出力するかどうかを指定します。
本デバイスでは,パリティ機能をサポートしておりません。
このビットには,必ず“0”を書き込んでください。
■ バス幅の組合せ
表 4.3-2に領域4,5で使用可能なバス幅の組合せを示します。
表 4.3-2 領域4,5で使用可能なバス幅の組合せ
組合せ
1
2
3
4
5
6
7
8
9
領
域
4
通 常 : 16/8ビ ッ ト
通 常 : 16/8ビ ッ ト
通 常 : 16/8ビ ッ ト
D R A M : 1 6 ビ ッ ト (C/W=0 ,1)
D R A M : 1 6 ビ ッ ト (C/W=0 ,1)
D R A M : 1 6 ビ ッ ト (C/W=0 ,1)
D R A M : 8 ビ ッ ト (C/W=0 ,1)
D R A M : 8 ビ ッ ト (C/W=0 ,1)
D R A M : 8 ビ ッ ト (C/W=0 ,1)
領
域
5
通 常 : 16/8ビ ッ ト
DRAM: 16ビ ッ ト (C/W=0 ,1)
DRAM: 8ビ ッ ト (C/W=0 ,1)
通 常 : 16/8ビ ッ ト
DRAM: 16ビ ッ ト (C/W=0 ,1)
DRAM: 8ビ ッ ト (C/W=0 ,1)
通 常 : 16/8ビ ッ ト
DRAM: 16ビ ッ ト (C/W=0 ,1)
DRAM: 8ビ ッ ト (C/W=0 ,1)
123
第4章 バスインタフェース
4.3.9
リフレッシュ制御レジスタ(RFCR)
リフレッシュ制御レジスタ(RFCR)
リフレッシュ制御レジスタ(RFCR)は,DRAMインタフェースを使用した際のCBR(Cas
Before Ras)リフレッシュ動作の制御を行います。
タイムベースタイマの1/32分周出力をクロックソースとして動作する6ビットダウ
ンカウンタがあり,RFCRでそのリロード値を制御してリフレッシュインターバルを
指定します。
■ リフレッシュ制御レジスタ(RFCR)
リフレッシュ制御レジスタ(RFCR)のレジスタ構成は以下のとおりです。
タイムベースタイマとは,発振安定待ち間隔などに使用するカウンタであり,
ギア制御レジスタ(GCR)のCHC=1のときはX0の1/2,CHC=0のときは内部PLL発振周
波数の1倍の周波数で動作します。例えば,CHC=0でPLLの発振周波数が50MHzのと
きには,1サイクルが20nsとなり,20×32=640nsがリフレッシュインターバルの1
周期になります。
リフレッシュのカウントは,クロックダブラON/OFFにかかわらず,タイムベー
スタイマの出力で行います。
[bit 13∼8] REL (RELoad value bits)
RELは,リフレッシュのインターバルを設定するレジスタです。
リード時には,リフレッシュインターバルをカウントするダウンカウンタの
カウント中の値がそのまま読み出されます。
領域4と領域5のDRAMは,RELで示されたインターバルで同時にリフレッシュ
されます。
[bit 7] R1W (Refresh 1 Wait)
R1Wは,リフレッシュの第1サイクル(R1)を1サイクルだけ延長します。
0:no wait (初期値)
1:wait
[bit 6] R3W (Refresh 3 Wait)
R3Wは,リフレッシュの第3サイクル(R3)を1サイクルだけ延長します。
0:no wait (初期値)
1:wait
[bit 2] STR (STaRt bit)
STRは,ダウンカウンタのスタート/ストップを制御します。
0:STOP(初期値)
1:START
STRをセットすると,同時にRELの値がダウンカウンタにロードされます。
DMCRのREFEを“1”に設定し, かつSTRを“1”に設定すると,CBRリフレッシュ
が行われます。
124
4.3 バスインタフェースのレジスタ
[bit 1,0] CKS (CLocK Select bit)
CKSは,ダウンカウンタのクロックソースを選択します。
ダウンカウンタは,タイムベースタイマの1/32分周出力Φをクロックとして
使用します。
CKS1
0
0
1
1
CKS0
0
1
0
1
ソースクロック
Φ(初期値)
Φ/8
Reserved
Reserved
maxクロック数
26 (REL5-0:6bit)×32(1/32分周) = 2048
26 (REL5-0:6bit)×32(1/32分周)×8 = 16384
125
第4章 バスインタフェース
4.3.10
外部端子制御レジスタ0(EPCR0)
外部端子制御レジスタ0(EPCR0)
外部端子制御レジスタ0(EPCR0)は,各信号の出力を制御します。
出力許可の場合は,各バスモードで所望のタイミングを出力し,入力有効の場合
は,外部からの入力信号を受け付けます。
出力禁止/入力無効の場合は,I/Oポートとして使用できます。
■ 外部端子制御レジスタ0(EPCR0)
外部端子制御レジスタ0(EPCR0)のレジスタ構成は以下のとおりです。
[bit 11] WRE (WRite pulse output Enable bit)
WREは,ライトパルスWR0X-1Xを出力するかどうかを選択します。
リセット時は出力許可となります。
0:出力禁止
1:出力許可(初期値)
本品種では,WREビットによるWR0X-1X端子のI/Oポート制御を行わないため,
このビットには常に“1”を設定してください。
ライトパルスは,WREビットを“1”に設定していても,AMDで設定されたバ
ス幅に応じてI/Oポートとして使用することができます(例えば,8ビットモー
ドではWR1Xは出力されず,対応する端子はI/Oポートとして使用できます)。
[bit 10] RDXE (ReaDX pulse output Enable bit)
RDXEは,リードパルスRDXを出力するかどうかを選択します。
リセット時は出力許可となります。
0:出力禁止(設定禁止)
1:出力許可(初期値)
本品種では,RDXEビットによるRDX端子のI/Oポート制御は行わないため,こ
のビットには常に“1”を設定してください。
[bit 9] RDYE (ReaDY input Enable bit)
RDYEは,RDY入力を以下のように制御します。
リセット時は入力無効となります。
0:RDY入力無効(初期値)
1:RDY入力有効
[bit 8] BRE (Bus Request Enable bit)
BREは,BRQとBGRNTXを以下のように制御します。
リセット時はBRQの入力は無効,BGRNTXの出力禁止となります。
0:BRQの入力無効,BGRNTXの出力禁止(端子はI/Oポートとして機能)(初期値)
1:BRQの入力有効,BGRNTXの出力許可
<注意事項>
P82/BRQは,プルダウン抵抗(約25kΩ)が内蔵されています。端子が入力状態になったときだけ,
抵抗は有効になります。出力時は,抵抗は付きません。
126
4.3 バスインタフェースのレジスタ
[bit 6] CKE (CLocK output Enable bit)
CKEは,CLK(外部バスの動作クロック波形)の出力イネーブルビットです。
0:出力禁止
1:出力許可(初期値)
本ビットはリセット時に“1”に初期化され,CLKは出力状態になります。
[bit 5] COE5 (Chip select Output Enable 5)
COE5は,CS5Xの出力を制御します。リセット時は出力許可となります。
0:出力禁止
1:出力許可(初期値)
[bit 4] COE4 (Chip select Output Enable 4)
COE4は,CS4Xの出力を制御します。リセット時は出力許可となります。
0:出力禁止
1:出力許可(初期値)
[bit 3] COE3 (Chip select Output Enable 3)
COE3は,CS3Xの出力を制御します。リセット時は出力許可となります。
0:出力禁止
1:出力許可(初期値)
[bit 2] COE2 (Chip select Output Enable 2)
COE2は,CS2Xの出力を制御します。リセット時は出力許可となります。
0:出力禁止
1:出力許可(初期値)
[bit 1] COE1 (Chip select Output Enable 1)
COE1は,CS1Xの出力を制御します。リセット時は出力許可となります。
0:出力禁止
1:出力許可(初期値)
[bit 0] COE0 (Chip select Output Enable 0)
COE0は,CS0Xの出力を制御します。リセット時は出力許可となります。
0:出力禁止(設定禁止)
1:出力許可(初期値)
本品種では,COE0ビットによるCS0X端子のI/Oポート制御は行わないため,
このビットには常に“1”を設定してください。
127
第4章 バスインタフェース
4.3.11
外部端子制御レジスタ1(EPCR1)
外部端子制御レジスタ1(EPCR1)
外部端子制御レジスタ1(EPCR1)は,アドレス信号の出力を制御します。
■ 外部端子制御レジスタ1(EPCR1)
外部端子制御レジスタ1(EPCR1)のレジスタ構成は以下のとおりです。
[bit 8∼0] AE24∼AE16 (Address output Enable 24∼16)
AE24∼AE16は,対応するアドレスを出力するかどうかを指定します。
出力禁止の場合は,I/Oポートとして使用できます。
0:出力禁止
1:出力許可(初期値)
AE24∼AE16は,リセットによって“1FFH”に初期化されます。
128
4.3 バスインタフェースのレジスタ
4.3.12
DRAM信号制御レジスタ
DRAM信号制御レジスタ(DSCR)
信号制御レジスタ(DSCR)
DRAM信号制御レジスタ(DSCR)は,各DRAM制御信号の出力を制御します。
出力禁止の場合は,I/Oポートとして使用できます。
■ DRAM信号制御レジスタ(DSCR)
DRAM信号制御レジスタ(DSCR)のレジスタ構成は以下のとおりです。
[bit 7] DW1E
DW1Xの出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 6] DW0E
DW0Xの出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 5] C1HE
CS1Hの出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 4] C1LE
CS1Lの出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 3] C0HE
CS0Hの出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 2] C0LE
CS0Lの出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 1] RS1E
RAS1の出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
[bit 0] RS0E
RAS0の出力を制御します。リセット時は出力禁止となります。
0:出力禁止(初期値)
1:出力許可
129
第4章 バスインタフェース
4.3.13
リトルエンディアンレジスタ(LER)
リトルエンディアンレジスタ(LER)
MB91107/MB91108のバスアクセスは,通常全領域ビッグエンディアン(big endian)
で行いますが,リトルエンディアンレジスタ(LER)を設定することにより,領域1∼5
のどれか1領域をリトルエンディアン(little endian)領域として扱うことができま
す。
通常/時分割/DRAMインタフェースに依存せず,全バスモードに対してサポート
します。ただし,領域0はリトルエンディアン対象外です。
■ リトルエンディアンレジスタ(LER)
リトルエンディアンレジスタ(LER)のレジスタ構成は以下のとおりです。
[bit 2-0] LE2-0
表 4.3-3に示すように,LE2,LE1,LE0ビットの組み合わせでリトルエンディ
アン領域を指定します。
表 4.3-3 ビット(LE2,LE1,LE0)の組み合わせによるモードの設定
130
LE2
LE1
LE0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
モード
リセット後の初期値。
リトルエンディアン領域なし。
領域1がリトルエンディアン。
領域0,2∼5はビッグエンディアン。
領域2がリトルエンディアン。
領域0∼1,3∼5はビッグエンディアン。
領域3がリトルエンディアン。
領域0∼2,4∼5はビッグエンディアン。
領域4がリトルエンディアン。
領域0∼3,5はビッグエンディアン。
領域5がリトルエンディアン。
領域0∼4はビッグエンディアン。
4.4 バス動作
4.4
バス動作
バス動作の基本事項として,次の項目について説明します。
・データバス幅と制御信号との関係
・ビッグエンディアンのバスアクセス
・リトルエンディアンのバスアクセス
・外部アクセスの比較
・DRAM接続
■ データバス幅と制御信号との関係
次のバスインタフェースでのデータバス幅と制御信号の関係について説明しま
す。
l
l
通常バスインタフェース
DRAMインタフェース
■ ビッグエンディアンのバスアクセス
外部アクセスについて,次の項目を説明します。
l
l
l
l
データフォーマット
データバス幅
外部バスアクセス
外部デバイスとの接続例
■ リトルエンディアンのバスアクセス
外部アクセスについて,次の項目を説明します。
l
l
l
l
リトルエンディアンとビッグエンディアンとの相違点
データフォーマット
データバス幅
外部デバイスとの接続例
■ ビッグエンディアンとリトルエンディアンの外部アクセスの比較
ビッグエンディアンとリトルエンディアンの外部アクセスの比較として,バス
幅に対するワードアクセス,ハーフワードアクセス,およびバイトアクセスにつ
いて説明します。
■ DRAM接続
DRAM接続の基本事項について説明します。
l
l
l
DRAM制御端子
ローアドレスとコラムアドレス
DRAMデバイスの接続例
131
第4章 バスインタフェース
4.4.1
データバス幅と制御信号との関係
データバスの制御信号(WR0X-1X,CS0H,CS1L,CS1H,DW0X,DW1X)は,ビッグエンディ
アン/リトルエンディアンやデータバス幅に関係なくデータバスのバイト位置に常
に1対1に対応します。
■ データバス幅と制御信号との関係
ここでは,バスモード別に,設定されたデータバス幅で使用される本品種のデー
タバスのバイト位置とそれに対応する制御信号をまとめます。
○
通常バスインタフェース
図 4.4-1 通常バスインタフェースでのデータバス幅と制御信号
○
DRAMインタフェース
図 4.4-2 DRAMインタフェースでのデータバス幅と制御信号
以上をまとめたものが表 4.4-1です。
表 4.4-1 データバス幅と制御信号の関係
バス幅
16bit バス幅
WR
2CAS
/1WE
1CAS
/2WE
WR
2CAS
/1WE
1CAS
/2WE
D31-D24
WR0X
CASL
WEL
WR0X
CAS
WE
D23-D16
WR1X
CASH
WEH
データバス
132
8bit バス幅
4.4 バス動作
4.4.2
ビッグエンディアンのバスアクセス
リトルエンディアンレジスタ(LER)を設定しない領域に対しては,ビッグエ
ンディアンで外部バスアクセスを行います。
FRシリーズは,通常ビッグエンディアンです。
■ データフォーマット
データフォーマットごとに,内部レジスタと外部データバスとの関係を示しま
す。
○
ワードアクセス(LD,ST命令実行時)
図 4.4-3 ワードアクセスの内部レジスタと外部データバスとの関係
○
ハーフワードアクセス(LDUH,STH命令実行時)
図 4.4-4 ハーフワードアクセスの内部レジスタと外部データバスとの関係
○
バイトアクセス(LDUB,STB命令実行時)
図 4.4-5 バイトアクセスの内部レジスタと外部データバスとの関係
133
第4章 バスインタフェース
■ データバス幅
データバス幅ごとに,内部レジスタと外部データバスとの関係を示します。
○
16ビットバス幅
図 4.4-6 16ビットバス幅の内部レジスタと外部データバスとの関係
○
8ビットバス幅
図 4.4-7 8ビットバス幅内部レジスタと外部データバスとの関係
134
4.4 バス動作
■ 外部バスアクセス
外部バスアクセス(16ビット/8ビットバス幅)を,ワード/ハーフワード/バ
イトアクセス別に図 4.4-8,図 4.4-9に示します。また,以 下の項目も合わせて
図 4.4-8,図 4.4-9に示します。
l
l
l
アクセスバイト位置
プログラムアドレスと出力アドレス
バスアクセス回数
MB91107/MB91108は,ミスアラインエラーを検出しません。したがって,ワード
アクセスの場合,プログラムで指定したアドレス下位2bitが“00”
“01”
“10”
“11”
であっても,出力するアドレスの下位2bitは全て“00”となり,ハーフワードア
クセスの場合,“00”“01”のときは“00”に,“10”“11”のときには“10”にな
ります。
○
16ビットバス幅
図 4.4-8 16ビットバス幅のときの外部バスアクセス
135
第4章 バスインタフェース
○
8ビットバス幅
図 4.4-9 8ビットバス幅のときの外部バスアクセス
136
4.4 バス動作
■ 外部デバイスとの接続例
MB91107/MB91108と外部デバイスとの接続例は,図 4.4-10のようになります。
図 4.4-10 MB91107/MB91108と外部デバイスとの接続例
137
第4章 バスインタフェース
4.4.3
リトルエンディアンのバスアクセス
リ ト ル エ ンデ ィ ア ン レ ジ ス タ (LER)を設定した領域に対しては,リトルエン
ディアンで外部バスアクセスを行います。
MB91107/MB91108のリトルエンディアンバスアクセスは,ビッグエンディアン時の
バスアクセス動作を利用し,基本的にはビッグエンディアン時の出力アドレスの順
番と制御信号の出力は同じで,データバスのバイト位置をバス幅に応じてスワップ
することにより実現しています。
接続時には,ビッグエンディアン領域とリトルエンディアン領域を物理的に分け
る必要がありますので,十分注意が必要です。
■ リトルエンディアンとビッグエンディアンの相違点
リトルエンディアンとビッグエンディアンの相違点を下記に示します。
出力するアドレスの順番は,ビッグエンディアン/リトルエンディアンで変わ
りません。
16/8ビットバス幅で使用するデータバス制御信号は,ビッグエンディアンとリ
トルエンディアンで変わりません。
○
ワードアクセス
ビッグエンディアンのアドレス“00”に対応するMSB側のバイトデータが,
リトルエンディアンでは,LSB側のバイトデータになります。
ワードアクセスの場合は,ワード内の4バイトすべてのバイト位置がひっく
りかえります。
“00”→“11”
,
“01”→“10”
,
“10”→“01”
,
“11”→“00”
○
ハーフワードアクセス
ビッグエンディアンのアドレス“0”に対応するMSB側のバイトデータが,リ
トルエンディアンでは,LSB側のバイトデータになります。
ハーフワードアクセスの場合は,ハーフワード内の2バイトのバイト位置が
ひっくりかえります。
“0”→“1”
,
“1”→“0”
○
バイトアクセス
ビッグエンディアン/リトルエンディアンとも同じです。
■ データフォーマット
データフォーマットごとに,内部レジスタと外部データバスとの関係を示しま
す。
○
ワードアクセス(LD,ST命令実行時)
図 4.4-11 ワードアクセスの内部レジスタと外部データバスとの関係
138
4.4 バス動作
○
ハーフワードアクセス(LDUH,STH命令実行時)
図 4.4-12 ハーフワードアクセスの内部レジスタと外部データバスとの関係
○
バイトアクセス(LDUB,STB命令実行時)
図 4.4-13 バイトアクセスの内部レジスタと外部データバスとの関係
■ データバス幅
データバス幅ごとに,内部レジスタと外部データバスとの関係を示します。
○
16ビットバス幅
図 4.4-14 16ビットバス幅の内部レジスタと外部データバスとの関係
○
8ビットバス幅
図 4.4-15 8ビットバス幅の内部レジスタと外部データバスとの関係
139
第4章 バスインタフェース
■ 外部デバイスとの接続例
MB91107/MB91108と外部デバイスとの接続例を,バス幅ごとに図 4.4-16,図
4.4-17に示します。
○
16ビットバス幅
図 4.4-16 MB91107/MB91108と外部デバイスとの接続例(16ビットバス幅)
○
8ビットバス幅
図 4.4-17 MB91107/MB91108と外部デバイスとの接続例(8ビットバス幅)
140
4.4 バス動作
4.4.4
ビッグエンディアンとリトルエンディアンの外部
アクセスの比較
バス幅に対するワードアクセス,ハーフワードアクセス,およびバイトアクセス
について,ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示し
ます。
■ ワードアクセス
バス幅
ビッグエンディアンモード
リトルエンディアンモード
16ビット
バス幅
8ビット
バス幅
141
第4章 バスインタフェース
■ ハーフワードアクセス
バス幅
16ビット
バス幅
8ビット
バス幅
142
ビッグエンディアンモード
リトルエンディアンモード
4.4 バス動作
■ バイトアクセス
バス幅
ビッグエンディアンモード
リトルエンディアンモード
16ビット
バス幅
143
第4章 バスインタフェース
バス幅
8ビット
バス幅
144
ビッグエンディアンモード
リトルエンディアンモード
4.4 バス動作
4.4.5
DRAM関係
DRAM関係
MB91107/MB91108にDRAMを接続するときの基本事項と接続例を示します。
■ DRAM制御端子
DRAMインタフェースに使用する端子の機能とバス幅の関係を表 4.4-2に示しま
す。
表 4.4-2 DRAM制御端子の機能とバス幅
データバス16ビットモード
データバス8ビットモード
端子名
2CAS/1WE
モード
1CAS/2WE
モード
備 考
RAS0
領域4 RAS
領域4 RAS
領域4 RAS
RAS1
領域5 RAS
領域5 RAS
領域5 RAS
CS0L
領域4 CASL
領域4 CAS
領域4 CAS
CS0H
領域4 CASH
領域4
WEL
領域4 CAS
CS1L
領域5 CASL
領域5 CAS
領域5 CAS
CS1H
領域5 CASH
領域5
WEL
領域5 CAS
DW0X
領域4 WE
領域4
WEH
領域4 WE
DW1X
領域5 WE
領域5
WEH
領域5 WE
・データバス16ビット
モード時の“L”,“H”
とアドレス下位1bit(A0)
との対応
・“L”:“0”
・“H”:“1”
CASL:A0が“0”の領域
に対応するCAS
CASH:A0が“1”の領域
に対応するCAS
WEL :A0が“0”の領域
に対応する WE
WEH :A0が“1”の領域
に対応する WE
■ ローアドレスとコラムアドレス
DRAMインタフェースのアドレス生成は,DRAM制御レジスタ4,5(DMCR4,5)のペー
ジサイズ選択ビット(PGS3∼PGS0)により決定されます。また,高速ページモー
ドを使用する場合には,ページ内かどうかの判断は,PGS3∼PGS0とデータバス幅
により決定されます。
表 4.4-3 ページサイズ選択ビット
PGS3∼0
ページ
サイズ
ローアドレス
A31-16
A15-00
コラム
アドレス
0000
0001
0010
0011
0100
│
1111
256
512
1024
4096
A31-16
A31-16
A31-16
A31-16
A23-08
A24-09
A25-10
A27-12
A31-00
A31-00
A31-00
A31-00
ページ内かどうかの判断
8ビットバス 16ビットバス
A31-08
A31-09
A31-10
A31-12
A31-09
A31-10
A31-11
A31-13
reserved
145
第4章 バスインタフェース
DRAMと接続する場合には,使用するバス幅に合わせて本LSIの出力するアドレス
をシフトして接続することが必要です。
以下に×8ビット,256ページサイズを使用した場合のDRAMの接続例を,8/16ビッ
トに分けて説明します。16ビットの場合には,アドレス出力の下位側からそれぞ
れ1ビットを接続しません。
○
8ビットデータバス(DRAM1個使用)
図 4.4-18 MB91107/MB91108と8ビット出力DRAM1個との接続例(8ビットデータバス)
○
16ビットデータバス(DRAM2個使用)
図 4.4-19 MB91107/MB91108と8ビット出力DRAM2個との接続例(16ビットデータバス)
146
4.4 バス動作
■ DRAMデバイスの接続例
次の条件でのDRAMデバイスの接続例を図 4.4-20に示します。
l
l
l
DRAM:2CAS/1WE,ページサイズ512,×16ビット品
バス幅:16ビット
バンク数:2(領域4,5使用)
図 4.4-20 MB91107/MB91108とDRAMデバイスとの接続例
147
第4章 バスインタフェース
4.5
バスタイミング
次の項目について,各モードでのバスアクセスのタイミング図と動作について説
明します。
・通常バスアクセス
・ウエイトサイクル
・DRAMインタフェース
・DRAMリフレッシュ
・外部バスリクエスト
■ 通常バスアクセス
通常バスインタフェースでは,リードサイクル/ライトサイクルともに“2クロッ
クサイクル”が基本バスサイクルになります。本書では,その2サイクルを“BA1”
,
“BA2”で表します。
l
l
l
l
l
基本リードサイクル
基本ライトサイクル
各モードでのリードサイクル
各モードでのライトサイクル
リード/ライト混合サイクル
■ ウエイトサイクル
ウエイトサイクルには,AMDレジスタのWTCビットによる自動ウエイトサイクル
と,RDY端子を使用する外部ウエイトサイクルがあります。
ウエイトサイクルは,前のサイクルを継続して行うモードであり,ウエイトが
解除されるまで“BA1サイクル”を繰り返します。
l
l
自動ウエイトサイクル
外部ウエイトサイクル
■ DRAMインタフェース
チップセレクト領域4および領域5は,DRAM空間として使用することができます。
AMD4もしくはAMD5のDRMEビットをセットし,DMCR4,5で動作の制御を行います。
DRAMインタフェースには,CASの出力によって以下の3種類のモードがあり,
DMCR4,5のDSASとHYPRビットで設定されます。
l
l
l
Double CAS access(DSAS:0,HYPR:0):本書では通常DRAMインタフェース
Single CAS access(DSAS:1,HYPR:0):本書ではSingle DRAMインタフェー
ス
Hyper page mode付きDRAM(DSAS:1,HYPR:1):本書ではHyper DRAMインタ
フェース
また,DMCR4,5のC/Wビットを設定することにより,1CAS/2WEのDRAM,2CAS/1WE
のDRAMを選択することができます。
ROW/COLUMNアドレスについては,DMCRのPGS3∼0ビットで指定されたページサイ
ズと,AMD4または5のBW1,0ビットで指定されたバス幅で決定されます。
148
4.5 バスタイミング
○
通常DRAMインタフェース
通常DRAMインタフェースは,CASアクセスを2クロックサイクルとするモード
であり,DMCR4,5のDSASビットに“0”,HYPRビットに“0”を設定することによ
り実行することができます。通常DRAMインタフェースは,リードサイクル/ラ
イトサイクルともに“5クロックサイクル”が基本バスサイクルになり,本書
では,そのサイクルを“Q1∼Q5”で表します。
また,DMCR4,5のPAGEビットによって高速ページモードの設定が出来ます。
高速ページモードとは,ROWアドレスが一致する同一ページ空間内で,COLUMN
アドレスとCASの制御によって高速にメモリアクセスを行う方式であり,本モー
ドを使用する場合は,DMCR4,5のPAGEビットに“1”を設定する必要があります。
同一ページ内かどうかは,DMCR4,5のPGS3∼0ビットとバス幅によって決定さ
れます。
高速ページモードのアクセスは,通常のQ1∼Q5のアクセス動作が終了した時
点から開始され,高速ページモードに遷移するとQ4∼Q5のサイクルを繰り返し
ます。いったんページモードに遷移すると,ページ外のアクセスが発生するか,
またはリフレッシュサイクルが発生するかしない限り,RASは“L”レベルのま
まです。
なお,高速ページモードでもQ1,Q4のウエイトサイクルを設定することがで
き,その場合は高速ページモードに遷移するとQ4,Q4W,Q5のサイクルを繰り返
します。
l
l
l
l
l
l
○
通常DRAMインタフェースのリードサイクル
通常DRAMインタフェースのライトサイクル
通常DRAMリードサイクル
通常DRAMライトサイクル
通常DRAMインタフェースでの自動ウエイトサイクル
高速ページモード時のDRAMインタフェース
Single DRAMインタフェース
Single DRAMインタフェースは,CASアクセスを1クロックサイクルとするモー
ドであり,DMCR4,5のDSASビットに“1”,HYPRビットに“0”を設定することに
より実行することができます。本モードを使用するときには,必ずDMCR4,5の
PAGEビットにも“1”を設定し,高速ページモードで動作させてください。
Single DRAMインタフェースは,通常DRAMインタフェースと同様Q1∼Q3のサ
イクルで立上がり,Q4サイクルに遷移すると1サイクルでCASの制御を行い,リー
ド/ライト動作を行います。本書では,リードの場合のQ4サイクルを“Q4SR”
,
ライトの場合を“Q4SW”で表しています。なお,ページサイズ,1CAS/2WE,2CAS/1WE
の設定,Q1サイクルのウエイトは通常DRAMインタフェースと同様です。
l
l
l
Single DRAMインタフェースのリードサイクル
Single DRAMインタフェースのライトサイクル
Single DRAMインタフェース
149
第4章 バスインタフェース
○
Hyper DRAMインタフェース
Hyper DRAMインタフェースは,CASアクセスを1クロックサイクルとし,また,
リードサイクル時のアドレスをデータの取り込みよりも一つ先出しすることに
よって,高速にDRAMアクセスを行うモードです。本モードはDMCR4,5のDSASビッ
トに“1”
,HYPRビットに“1”を設定することにより実行することができます。
また,必ずPAGEビットにも“1”を設定し,高速ページモードで動作させてく
ださい。
Hyper DRAMインタフェースは,通常DRAMインタフェースと同様Q1∼Q3のサイ
クルで立上がり,Q4サイクルに遷移すると1サイクルでCASの制御を行い,リー
ド/ライト動作を行います。本書では,リードの場合のQ4サイクルを“Q4HR”
,
ライトの場合を“Q4HW”で表しています。なお,ページサイズ,1CAS/2WE,2CAS/1WE
の設定,Q1サイクルのウエイトは通常DRAMインタフェースと同様です。
l
l
l
Hyper DRAMインタフェースのリードサイクル
Hyper DRAMインタフェースのライトサイクル
Hyper DRAMインタフェース
■ DRAMリフレッシュ
l
l
l
CASビフォアRAS(CBR)リフレッシュ
CBRリフレッシュの自動ウエイトサイクル
セルフリフレッシュ
■ 外部バスリクエスト
l
l
150
バス権解放
バス権獲得
4.5 バスタイミング
4.5.1
基本リードサイクル
基本リードサイクルの動作タイミングを示します。
■ 基本リードサイクルタイミング
○
バス幅:16ビット,アクセス:ワード,CS0領域のアクセス
図 4.5-1 基本リードサイクルのタイミング例
【動作説明】
l
l
l
l
l
l
CLKは,外部バスの動作クロックを出力します。
クロックダブラOFF時は,CPU系と外部バス系の動作クロックは1:1の関
係にあり,CLKもCPU系と同周波数のクロックを出力します。また,クロッ
クダブラONのときにはCPU系と外部バス系は1:1/2の関係になり,CLKは
CPU系の1/2の周波数を出力します。
ギアがかかったときには,ギア比に応じてCLKの周波数も下がります。
A24-A00(アドレス24-00)は,リードサイクルのワード/ハーフワード
/バイトアクセスの先頭バイト位置のアドレスをバスサイクルの開始
(BA1)から出力します。上記例の場合,16ビットバス幅でワードアク
セスを行うため,1回目のバスサイクルでワードアクセスの上位16ビッ
トのアドレス(下位2ビット“0”
)を,2回目のバスサイクルで下位16ビッ
トのアドレス(下位2ビット“2”
)を出力します。
D31-D16(データ31-16)は,外部メモリ,I/Oからのリードデータを表
します。リードサイクルの場合は,RDXの立上がりでD31-D16を取り込み
ます。なお,リードサイクルの場合は,バス幅やワード/ハーフワード
/バイトアクセスに関係なく,RDXの立上がりでD31-D16をすべて取り込
み,取り込んだデータが有効かどうかの判断はチップ内部で行います。
RDXは,外部データバスのリードストローブ信号であり,BA1の立下がり
でアサートし,BA2の立下がりでネゲートします。
リードサイクルの場合はWR0X,WR1Xはネゲート状態です。
CS0X-CS5X(領域チップセレクト)信号の出力は,A24-A00と同タイミン
グでバスサイクルの開始(BA1)からアサートされます。CS0X-CS5Xはア
ドレス出力をデコードして作っており,アドレス出力が変化してASR,AMR
で設定したチップセレクト領域が変わらない限り変化しません。また,
151
第4章 バスインタフェース
CS0X-CS5Xは,いつも必ずどれかはアサートされています。
l
152
DACK0-2,EOP0-2は,DMAの外部バスサイクルで出力されます。出力する
かどうかはDMACのレジスタ設定により決定され,出力タイミングはRDX
と同じです。
4.5 バスタイミング
4.5.2
基本ライトサイクル
基本ライトサイクルの動作タイミングを示します。
■ 基本ライトサイクルタイミング
○
バス幅:8ビット,アクセス:ワード,CS0領域のアクセス
図 4.5-2 基本ライトサイクルのタイミング例
【動作説明】
l
l
l
l
l
A24-A00(アドレス24-00)は,ライトサイクルのワード/ハーフワード
/バイトアクセスの先頭バイト位置のアドレスをバスサイクルの開始
(BA1)から出力します。上記例の場合,8ビットバス幅でワードアクセ
スを行うため,まずワードアクセスの先頭バイト(アドレス下位“0”)
のアドレスを出力し,その後は順々に先頭バイトから+1のアドレス
(
“1”
)
,+2のアドレス(
“2”),+3のアドレス(“3”
)を出力します。
D31-D16(データ31-16)は,外部メモリ,I/Oへのライトデータを表し
ます。ライトサイクルの場合は,ライトデータをバスサイクルの開始
(BA1)から出力し,バスサイクルの終了(BA2の終了)でHigh-Zにしま
す。
上記例の場合は,8ビットデータバス幅のため,D31-24にライトデータ
が出力されます。
ライトサイクルでは,RDXはネゲート状態です。
WR0X,WR1Xは,外部データバスのライトストローブ信号であり,BA1の
立下がりでアサートし,BA2の立下がりでネゲートします。
D31-24はWR0X,D23-16はWR1Xと,それぞれ対応するデータバスに応じて
アサートされます。上記例の場合は8ビットデータバス幅のため,WR0X
のみアサートされます。
チップセレクト領域0∼5の最大バス幅が8ビットの場合,すなわち設定
されたすべての領域が8ビットの場合は,D23-16とWR1Xは自動的にI/O
ポートになり,HigH-Zとなります。
上記例はD23-16とWR1XがI/Oポートとして使用される場合を示していま
す。また,チップセレクト領域0∼5のうち,バス幅がどれか1領域でも16
ビットに設定されていると,D23-16とWR1XはI/Oポートして使用できま
153
第4章 バスインタフェース
せんのでご注意ください。
端 子
最大バス幅
16ビット
8ビット
l
154
D31-24
WR0X
D31-24
WR0X
D31-24
WR0X
D23-16
WR1X
D23-16
WR1X
I/Oポート
DACK0-2,EOP0-2はDMAの外部バスサイクルで出力されます。出力するか
どうかはDMACのレジスタ設定により決定され,出力タイミングはWR0X∼
1Xと同じです。
4.5 バスタイミング
4.5.3
各モードでのリードサイクル
各モードでのリードサイクルの動作タイミングを示します。
■ 各モードでのリードサイクルタイミング
○
バス幅:16ビット,アクセス:ハーフワード
図 4.5-3 リードサイクルのタイミング例1
○
バス幅:16ビット,アクセス:バイト
図 4.5-4 リードサイクルのタイミング例2
○
バス幅:8ビット,アクセス:ワード
図 4.5-5 リードサイクルのタイミング例3
○
バス幅:8ビット,アクセス:ハーフワード
図 4.5-6 リードサイクルのタイミング例4
155
第4章 バスインタフェース
○
バス幅:8ビット,アクセス:バイト
図 4.5-7 リードサイクルのタイミング例5
156
4.5 バスタイミング
4.5.4
各モードでのライトサイクル
各モードでのライトサイクルの動作タイミングを示します。
■ 各モードでのライトサイクルタイミング
○
バス幅:16ビット,アクセス:ワード
図 4.5-8 ライトサイクルのタイミング例1
○
バス幅:16ビット,アクセス:ハーフワード
図 4.5-9 ライトサイクルのタイミング例2
○
バス幅:16ビット,アクセス:バイト
図 4.5-10 ライトサイクルのタイミング例3
○
バス幅:8ビット,アクセス:ハーフワード
図 4.5-11 ライトサイクルのタイミング例4
157
第4章 バスインタフェース
○
バス幅:8ビット,アクセス:バイト
図 4.5-12 ライトサイクルのタイミング例5
158
4.5 バスタイミング
4.5.5
リード/ライト混在サイクル
リード/ライト混在サイクルの動作タイミングを示します。
■ リード/ライト混在サイクルタイミング
○
CS0領域:バス幅16ビット,ワードリード
CS1領域:バス幅8ビット,ハーフワードライト
図 4.5-13 リード/ライト混在サイクルのタイミング例
【動作説明】
l
l
上記はチップセレクト領域の切り換わりに,アイドルサイクル(何もバ
スサイクルを行っていないサイクル)が挿入された場合を表しています。
バスサイクルの間にアイドルサイクルが挿入された場合は,アドレスは
次のバスサイクルが開始されるまで前のバスサイクルのアドレスをその
まま出力し続けます。それに伴い,出力しているアドレスに対応する
CS0-5Xもアサートし続けます。
上記例は16ビット/8ビットバスの混在です。
最大バス幅が16ビットのため,8ビットアクセス領域(CS1領域)でも
D23-16とWR1XはI/Oポートになりません。D23-16は不定データが出力さ
れ,WR1Xはネゲート状態になります。
159
第4章 バスインタフェース
4.5.6
自動ウエイトサイクル
自動ウエイトサイクルの動作タイミングを示します。
■ 自動ウエイトサイクルタイミング
○
バス幅:16ビット,アクセス:ハーフワードリード/ライト
図 4.5-14 自動ウエイトサイクルのタイミング例
【動作説明】
l
l
160
自動ウエイトサイクルは,それぞれのチップセレクト領域のAMDレジス
タのWTCビットを設定することにより実現できます。
上記の場合は,WTCビットに“001”を設定して,通常バスサイクルに1
ウエイトのバスサイクルを挿入した例を示しており,その場合は“通常
バスサイクル2クロック”+“ウエイトサイクル1クロック”の“計3ク
ロックバスサイクル”になります。
自動ウエイトは,最大7クロックサイクルまで(その場合通常バスサイ
クルは9クロックサイクル)設定することができます。
4.5 バスタイミング
4.5.7
外部ウエイトサイクル
外部ウエイトサイクルの動作タイミングを示します。
■ 外部ウエイトサイクルタイミング
○
バス幅:16ビット,アクセス:ハーフワード
図 4.5-15 外部ウエイトサイクルのタイミング例
【動作説明】
l
l
l
外部ウエイトサイクルは,EPCR0のRDYEビットを“1”に設定し,外部RDY
端子の入力を有効にすることにより実現できます。
外部RDYを使用する場合は,必ず1クロック以上の自動ウエイトサイクル,
すなわちAMDのWTCビットに“001”以上の値を設定してください。自動
ウエイトサイクル中はRDYの検出はせず,自動ウエイトサイクル後検出
します。
また,外部RDYは,CLK端子出力の立下がりに同期して入力してください。
CLKの立下がり時点で外部RDYが“L”レベルならばウエイトサイクルと
なり,同じBA1サイクルを繰り返します。また,“H”レベルのときには
ウエイトサイクル終了と判断し,BA2サイクルに遷移します。
161
第4章 バスインタフェース
4.5.8
通常DRAM
通常DRAMインタフェースのリードサイクル
DRAMインタフェースのリードサイクル
通常DRAMインタフェースのリードサイクルの動作タイミングを示します。
■ 通常DRAMインタフェースのリードサイクルタイミング
○
バス幅:16ビット,アクセス:ワード,CS4領域のアクセス
図 4.5-16 通常DRAMインタフェースのリードサイクルのタイミング例
【動作説明】
l
l
l
l
162
A24-00(アドレス24-00)は,DMCRのPGS3∼0とバス幅で決定されたリー
ドアドレスに対して,Q2の立上がりサイクルからROWアドレスを,Q4の
立上がりサイクルからCOLUMNアドレスを出力します。
Q1サイクルで出力されるアドレスは不定です。
D31-16(データ31-16)は,外部メモリ,I/Oからのリードデータを表し
ます。リードサイクルの場合は,1CAS/2WEの場合はCASの立上がりで,
2CAW/1WEの場合はCASLもしくはCASHの立上がりでD31-16を取り込みます。
1CAS/2WEの場合は,CASはD31-16に対応し,2CAS/1WEの場合は,CASLは
D31-24に,CASHはD23-16に対応します。
なお,リードサイクルの場合,バス幅やワード/ハーフワード/バイト
アクセスに関係なく,D31-16をすべて取り込み,取り込んだデータが有
効かどうかの判断はチップ内部で行います。
RASはROWアドレスストローブであり,Q1の立下がりで“H”になり,Q3
の立上がりで“L”になります。PAGEビットが“0”のとき(高速ページ
モードではないモード)では,RASはnormally“H”となります。
CASはCOLUMNアドレスストローブであり,2CAS/1WEのCASLは上位アドレ
ス側(下位1ビット“0”
)の,CASHは下位アドレス側(下位1ビット“1”)
4.5 バスタイミング
のCASを表します。
Q4の立下がりでアサートし,Q5の立下がりでネゲートします。
l
l
l
l
リードサイクル時は WE ( WEL , WEH 含む)はネゲート状態です。
リードサイクルでは,RDXはQ1サイクルから“L”レベルが出力されます。
CS4X,CS5Xは,Q1サイクルの立上がりから出力されます。
DACK0-2,EOP0-2はDMAの外部バスサイクルで出力されます。出力するか
どうかはDMAC内のレジスタの設定により決定され,出力タイミングはCAS
と同じです。
163
第4章 バスインタフェース
4.5.9
通常DRAM
通常DRAMインタフェースのライトサイクル
DRAMインタフェースのライトサイクル
通常DRAMインタフェースのライトサイクルの動作タイミングを示します。
■ 通常DRAMインタフェースのライトサイクルタイミング
○
バス幅:16ビット,アクセス:ワード,CS4領域のアクセス
図 4.5-17 通常DRAMインタフェースのライトサイクルのタイミング例
【動作説明】
l
l
l
l
l
l
164
A24-00(アドレス24-00)の出力は,リードサイクル時と同様です。
D31-16(データ31-16)は,外部メモリ,I/Oへのライトデータを表しま
す。ライトサイクルの場合は,ライトデータをQ1サイクルから出力し,
Q5サイクルの終了後HigH-Zにします。
1CAS/2WEの場合は WEL がD31-24に,WEH がD23-16に対応し,また,2CAS/1WE
の場合は WE がD31-16に対応して有効データが出力されます。
8ビットデータバス幅の場合は,D31-24にライトデータが出力されます。
RASはリードサイクル時と同様です。
CASもリードサイクル時と同様です。
WE は,DRAMへのライトストローブであり,1CAS/2WEの場合, WEL は上位
アドレス側(下位1ビット“0”)の, WEH は下位アドレス側(下位1ビッ
ト“1”
)の WE を表します。
ライトサイクル時に出力し,Q4の立上がりでアサートし,Q5の次のサイ
クルの立上がりでネゲートします。
ライトサイクルでは,RDXは“H”レベルが出力されます。
4.5 バスタイミング
l
l
CS4X,CS5Xは,Q1サイクルの立上がりから出力されます。
DACK0-2,EOP0-2はDMAの外部バスサイクルで出力されます。出力するか
どうかはDMAC内のレジスタの設定により決定され,出力タイミングはCAS
と同じです。
165
第4章 バスインタフェース
4.5.10
通常DRAM
通常DRAMリードサイクル
DRAMリードサイクル
通常DRAMリードサイクルの動作タイミングを示します。
■ 通常DRAMリードサイクルタイミング
○
バス幅:16ビット,アクセス:ハーフワード
図 4.5-18 通常DRAMリードサイクルのタイミング例1
○
バス幅:16ビット,アクセス:バイト
図 4.5-19 通常DRAMリードサイクルのタイミング例2
166
4.5 バスタイミング
○
バス幅:8ビット,アクセス:ハーフワード
図 4.5-20 通常DRAMリードサイクルのタイミング例3
167
第4章 バスインタフェース
4.5.11
通常DRAM
通常DRAMライトサイクル
DRAMライトサイクル
通常DRAMライトサイクルの動作タイミングを示します。
■ 通常DRAMライトサイクルタイミング
○
バス幅:16ビット,アクセス:ハーフワード
図 4.5-21 通常DRAMライトサイクルのタイミング例1
○
バス幅:16ビット,アクセス:バイト
図 4.5-22 通常DRAMライトサイクルのタイミング例2
168
4.5 バスタイミング
○
バス幅:8ビット,アクセス:ハーフワード
図 4.5-23 通常DRAMライトサイクルのタイミング例3
169
第4章 バスインタフェース
4.5.12
通常DRAM
通常DRAMインタフェースでの自動ウエイトサイク
DRAMインタフェースでの自動ウエイトサイク
ル
通常DRAMインタフェースでの自動ウエイトサイクルの動作タイミングを示します。
■ 通常DRAMインタフェースでの自動ウエイトサイクルタイミング
○
バス幅:8ビット,アクセス:バイト
図 4.5-24 通常DRAMインタフェースでの自動ウエイトサイクルのタイミング例
【動作説明】
l
170
DMCR4,5のQ1W,Q4Wビットを設定することによって,Q1サイクル,Q4サ
イクルにウエイトサイクルを1クロックサイクルだけ挿入することがで
きます。このサイクルを“Q1W,Q4W”サイクルと呼びます。
Q1W,Q4Wサイクルは,それぞれQ1,Q4サイクルと同じサイクルを実行す
るものであり,これによってRASの“H”幅,CASの“L”幅を1サイクル
ずつ延ばすことができます。
DRAMのアクセスタイムに合わせて設定してください。
4.5 バスタイミング
4.5.13
高速ページモード時のDRAM
高速ページモード時のDRAMインタフェース
DRAMインタフェース
高速ページモード時のDRAMインタフェースの動作タイミングを示します。
■ 高速ページモード時のDRAMインタフェースタイミング
○
リードサイクル,バス幅:16ビット,アクセス:ワード
図 4.5-25 高速ページモード時のDRAMインタフェースのタイミング例1
【動作説明】
l
l
○
RASを“L”に下げたまま, WE ( WEL と WEH も含む)の“H”を保持し,CAS
(CASL,CASH含む)のみの動作によりリードコントロールを行います。
Q4,Q5サイクル単位で,COLUMNアドレスを出力します。
ライトサイクル,バス幅:16ビット,アクセス:ワード
図 4.5-26 高速ページモード時のDRAMインタフェースのタイミング例2
【動作説明】
l
l
RASを“L”に下げたまま,WE( WEL と WEH も含む)を“L”にし,CAS(CASL,
CASH含む)のみの動作によりライトコントロールを行います。
Q4,Q5サイクル単位で,COLUMNアドレスと出力データを出力します。
171
第4章 バスインタフェース
○
高速ページモードのCS領域(CS4/5)切り換え,リード/ライト混在,2CAS/1WE
図 4.5-27 高速ページモード時のDRAMインタフェースのタイミング例3
【動作説明】
l
l
l
○
高速ページモード中は,CS領域が切り換わってもRASは“L”レベルのま
まです。
高速ページからバスサイクルが開始される場合には,リードサイクル時
のRDXはQ4の立上がりから“L”レベルになり,Q5サイクル終了後ネゲー
トします。また,ライトサイクルの場合は, WE ( WEL , WEH 含む)Q4の
立上がりから“L”レベルになり,Q5サイクル終了後ネゲートします。
CS4X,5Xの変化は出力アドレスと同タイミングであり,高速ページから
バスが開始される場合は,COLUMNアドレスと同じQ4サイクルから変化し
ます。
高速ページモードと基本バスサイクルとの混在
図 4.5-28 高速ページモード時のDRAMインタフェースのタイミング例4
【動作説明】
l
172
高速ページモード中は,CS領域が切り換わって他のCS領域のアクセスを
行っていても,RASは“L”レベルのままです。
4.5 バスタイミング
4.5.14
Single DRAMインタフェースのリードサイクル
DRAMインタフェースのリードサイクル
Single DRAMインタフェースのリードサイクルの動作タイミングを示します。
■ Single DRAMインタフェースのリードサイクルタイミング
○
バス幅:16ビット,アクセス:ワード
図 4.5-29 Single DRAMインタフェースのリードサイクルのタイミング例
【動作説明】
l
l
l
l
l
Q4SRサイクル単位で,COLUMNアドレスを出力します。
CASはQ4SRの立下がりでアサートし,Q4SR終了の立上がりでネゲートし
ます。
D31-16の取り込みは,通常DRAMインタフェースと同様CAS(CASL,CASH
含む)の立上がりです。
リードサイクル終了後は外部データバスのバスファイトを避けるため,
必ず最低でも1クロックのアイドルサイクルが挿入されます。
DACK0-2,EOP0-2の出力タイミングはCASと同じです。
173
第4章 バスインタフェース
4.5.15
Single DRAMインタフェースのライトサイクル
DRAMインタフェースのライトサイクル
Single DRAMインタフェースのライトサイクルの動作タイミングを示します。
■ Single DRAMインタフェースのライトサイクルタイミング
○
バス幅:16ビット,アクセス:ワード
図 4.5-30 Single DRAMインタフェースのライトサイクルのタイミング例
【動作説明】
l
l
l
174
Q4SWサイクル単位で,COLUMNアドレス,ライトデータを出力します。
CASはQ4SWの立下がりでアサートし,Q4SW終了の立上がりでネゲートし
ます。
WE( WEL ,WEH も含む)は,Q4SWサイクルの立上がりでアサートし,Q4SW
終了後ネゲートします。
4.5 バスタイミング
4.5.16
Single DRAMインタフェース
DRAMインタフェース
Single DRAMインタフェースの動作タイミングを示します。
■ Single DRAMインタフェースタイミング
○
Single DRAMと基本バスサイクルとの混在,CS切り換え
図 4.5-31 Single DRAMインタフェースのタイミング例
【動作説明】
l
l
高速ページからバスサイクルが開始される場合には,リードサイクル時
のRDXはQ4SRの立上がりから“L”レベルになり,Q4SRサイクル終了後ネ
ゲートします。また,ライトサイクルの場合は, WE ( WEL , WEH 含む)
Q4SWの立上がりから“L”レベルになり,Q4SWサイクル終了後ネゲート
します。
CS4X,5Xの変化は出力アドレスと同タイミングであり,高速ページから
バスが開始される場合は,COLUMNアドレスと同じQ4SR,Q4SWサイクルか
ら変化します。
175
第4章 バスインタフェース
4.5.17
Hyper DRAMインタフェースのリードサイクル
DRAMインタフェースのリードサイクル
Hyper DRAMインタフェースのリードサイクルの動作タイミングを示します。
■ Hyper DRAMインタフェースのリードサイクルタイミング
○
バス幅:16ビット,アクセス:ワード
図 4.5-32 Hyper DRAMインタフェースのリードサイクルのタイミング例
【動作説明】
l
l
l
l
l
176
Q4HRサイクル単位で,COLUMNアドレスを出力します。
CASはQ4HRの立下がりでアサートし,Q4HR終了の立上がりでネゲートし
ます。
D31-16の取り込みは,対応するCOLUMNアドレスが出力されたQ4HRの次
Q4HRサイクルで出力されるCASの立下がりで取り込みます。
リードサイクル終了後は外部データバスのバスファイトを避けるため,
必ず最低でも1クロックのアイドルサイクルが挿入されます。
DACK0-2,EOP0-2の出力タイミングはCASと同じです。
4.5 バスタイミング
4.5.18
Hyper DRAMインタフェースのライトサイクル
DRAMインタフェースのライトサイクル
Hyper DRAMインタフェースのライトサイクルの動作タイミングを示します。
■ Hyper DRAMインタフェースのライトサイクルタイミング
○
バス幅:16ビット,アクセス:ワード
図 4.5-33 Hyper DRAMインタフェースのライトサイクルのタイミング例
【動作説明】
l
l
l
Q4HWサイクル単位で,COLUMNアドレス,ライトデータを出力します。
CASはQ4HWの立下がりでアサートし,Q4HW終了の立上がりでネゲートし
ます。
WE( WEL ,WEH も含む)は,Q4HWサイクルの立上がりでアサートし,Q4HW
終了後ネゲートします。
177
第4章 バスインタフェース
4.5.19
Hyper DRAMインタフェース
DRAMインタフェース
Hyper DRAMインタフェースの動作タイミングを示します。
■ Hyper DRAMインタフェースタイミング
○
Hyper DRAMと基本バスサイクルとの混在,CS切り換え
図 4.5-34 Hyper DRAMインタフェースのタイミング例
【動作説明】
l
l
178
高速ページからバスサイクルが開始される場合には,リードサイクル時
のRDXはQ4HRの立下がりから“L”レベルになり,Q4HRサイクル終了後ネ
ゲートします。また,ライトサイクルの場合は, WE ( WEL , WEH 含む)
Q4HWの立上がりから“L”レベルになり,Q4HWサイクル終了後ネゲート
します。
CS4X,5Xの変化は出力アドレスと同タイミングであり,高速ページから
バスが開始される場合は,COLUMNアドレスと同じQ4HR,Q4HWサイクルか
ら変化します。
4.5 バスタイミング
4.5.20
DRAMリフレッシュ
DRAMリフレッシュ
DRAMリフレッシュの動作タイミングを示します。
■ CASビフォアRAS(CBR)リフレッシュ
図 4.5-35 CASビフォアRAS(CBR)リフレッシュのタイミング例
【動作説明】
l
CBRリフレッシュは,DMCR4,5のREFEビットとRFCRのSTRビットを両方設
定することにより実行できます。
l
本書では,CBRサイクルを“R1∼R4”で表します。
CASはR2サイクルの立下がりでアサートされ,R4サイクルの立下がりで
ネゲートします。
RASはR3サイクルの立上がりでアサートされ,R4の次のアイドルサイク
ルの立下がりでネゲートします。 WE はCBR中ネゲート状態です。
l
1CAS/2WEの場合はCASが,2CAS/1WEの場合はCASL,CASHともに上記タイ
ミングで出力されます。
l
CBRリフレッシュは,DRAMバスアクセスより優先されます。
しかし,DRAMアクセスの途中,例えば8ビットバス幅でワードアクセス
を行っているときなどは,4回のバスアクセスが必要ですが,1∼3回目
のバスアクセスでリフレッシュ要求を検出しても,リフレッシュは4回
目のバスサイクル終了まで行われません。
必ず一つのアクセス単位の終了を待って行われます。
l
CBRリフレッシュ終了後のDRAMアクセスは,例え次のバスアクセスがペー
ジ内であっても,必ずDRAMアクセスの開始を示すQ1サイクルから始まり,
ROWアドレスから出力されます。
l
CBRリフレッシュは,次の状態でも定期的に実行されます。
-
DRAM以外の通常バスアクセスを行っているとき
-
外部バス解放状態(BGRNTXが“L”)
-
CPUがスリープ状態
179
第4章 バスインタフェース
■ CBRリフレッシュの自動ウエイトサイクル
図 4.5-36 CBRリフレッシュの自動ウエイトサイクルのタイミング例
【動作説明】
l
RFCRのR1WとR3Wビットを設定することにより,CBRリフレッシュの自動
ウエイトサイクルを挿入することができます。
■ セルフリフレッシュ
図 4.5-37 セルフリフレッシュのタイミング例
【動作説明】
l
l
l
180
DMCR4,5のどちらかのSLFRビットに“1”を設定するとセルフリフレッ
シュが開始され,
“0”を設定すると解除されます。
セルフリフレッシュ終了後は最低7サイクルのアイドルサイクルが挿入
されます。
本書では,セルフリフレッシュを“SR1∼SR3”で表します。
4.5 バスタイミング
4.5.21
外部バスリクエスト
外部バスリクエストの動作タイミングを示します。
■ バス権解放
図 4.5-38 バス権解放のタイミング例
【動作説明】
l
l
EPCR0のBREビットを“1”に設定することにより,BRQ,BGRNTXによるバ
スアービトレーションを行うことができます。
バス権解放時は,端子をHigh-Zにしてから1サイクル後にBGRNTXをアサー
トします。
■ バス権獲得
図 4.5-39 バス権獲得のタイミング例
【動作説明】
l
l
EPCR0のBREビットを“1”に設定することにより,BRQ,BGRNTXによるバ
スアービトレーションを行うことができます。
バス権獲得時は,BGRNTXをネゲートしてから1クロック後に各端子をア
クティブにします。
181
第4章 バスインタフェース
4.6
内部クロック逓倍動作(クロックダブラ)
内部クロック逓倍動作(クロックダブラ)
MB91107/MB91108は,クロック逓倍回路を持っており,CPU内部はバスインタフェー
スの2倍,1倍のいずれかの周波数で動作します。どちらのクロックを選択した場合
でも,バスインタフェースはCLK出力端子に同期して動作します。CPUからの外部ア
クセス要求が発生した場合,CLK出力の立上がりを待って外部へのアクセスを開始し
ます。
■ クロック選択方法
2倍,1倍のクロック選択の方法は,「3.12.11 クロックダブラ機能」を参照し
てください。
クロック選択の変更は,チップ動作中でも任意に行うことができます。クロッ
ク選択の切り替え中はバス動作が一時抑止されます。また,リセット時には,ク
ロック選択は自動的に1倍になります。
図 4.6-1に2倍クロックの,図 4.6-2に1倍クロックのタイミング例を示します。
図 4.6-1 2倍クロックの場合のタイミング例(BW-16bit,access-word read)
図 4.6-2 1倍クロックの場合のタイミング例(BW-16bit,access-word read)
182
4.7 外部バス動作のプログラム例
4.7
外部バス動作のプログラム例
外部バスを動作させるための簡単なプログラム例を示します。
■ 外部バス動作のプログラム仕様例
レジスタの設定は以下のとおりです。
○
領域
l
l
l
l
l
l
○
領域0(AMD0)
:16ビット,通常バス,自動ウエイト−0
領域1(AMD1)
:16ビット,通常バス,自動ウエイト−2
領域2(AMD32)
:16ビット,通常バス,自動ウエイト−1
領域3(AMD32)
:16ビット,通常バス,自動ウエイト−1
領域4(AMD4):16ビット,DRAM,ページサイズ256,1CAS/2WE,ウエイ
トあり,CBRリフレッシュ
領域5(AMD5):16ビット,DRAM,ページサイズ512,2CAS/1WE,ウエイ
トなし,CBRリフレッシュ
他のバス
l
l
l
l
リフレッシュ(RFCR)
:ウエイトなし,1/8設定
外部端子(EPCR0)
:外部RDY受付け,BRQ,BGRNTXのアービトレーション
外部端子(DSCR)
:DRAM端子の設定
little endian(LER)
:領域2
そのほか以下の点に注意してください。
l
l
l
MD2,1,0は“001”
,外部ベクタは16ビットモード
領域0を同じバス幅に設定してから,モードレジスタ(MODR)を設定
領域1∼5はオーバラップしないように設定
■ 外部バス動作のプログラム例
本プログラムは説明のためにバイトレジスタはバイトで,ハーフワードレジス
タはハーフワードで書き込みを行っています。
*****
プログラム例
*****
//各レジスタ設定
init epcr
init dscr
init amd0
ldi:20
#0xffff,r0
// 外部端子設定
// 外部RDYウエイト,BRQ,BGRNTXバス
アービトレーション
// epcr0レ ジスタア ドレ ス 設定
// epcr0レジスタライト
ldi:20
sth
#0x628,r1
r0,@r1
ldi:8
#0xff,r0
ldi:20
stb
#0x625,r1
r0,@r1
// DRAM端子設定
// RAS,CAS,WE
// dscrレ ジスタ アド レス 設定
// dscrレジスタライト
ldi:8
#0x08,r0
//
16ビットバス,0-wait
183
第4章 バスインタフェース
ldi:20
stb
#0x620,r1
r0,@r1
// amd0レ ジスタ アド レス 設定
// amd0レジスタライト
ldi:8
ldi:20
stb
#0x0a,r0
#0x621,r1
r0,@r1
// 16ビットバス,2-wait
// amd1レ ジスタ アド レス 設定
// amd1レジスタライト
init amd32 ldi:8
ldi:20
stb
#0x49,r0
#0x622,r1
r0,@r1
// 通常, 16ビットバス,1-wait
// amd32レ ジスタア ドレ ス 設定
// amd32レジスタライト
init amd4
ldi:8
ldi:20
stb
#0x88,r0
#0x623,r1
r0,@r1
// DRAM, 16ビットバス
// amd4レ ジスタ アド レス 設定
// amd4レジスタライト
init amd5
ldi:8
ldi:20
stb
#0x88,r0
#0x624,r1
r0,@r1
// DRAM, 16ビットバス
// amd5レ ジスタ アド レス 設定
// amd5レジスタライト
#0x0c90,r0
// page size=256,Q1/Q4-wait,Page
// 1CAS-2WE,CBR, パリティなし
// dmcr4レ ジスタア ドレ ス 設定
// dmcr4レジスタライト
init amd1
init dmcr4 ldi:20
ldi:20
sth
init dmcr5 ldi:20
ldi:20
sth
#0x62e,r1
r0,@r1
// page size=512,Q1/Q4-waitなし,Page
// 2CAS-1WE,CBR,パリティなし
// dmcr5レ ジスタア ドレ ス 設定
// dmcr5レジスタライト
ldi:20
#0x0205,r0
//
ldi:20
sth
#0x626,r1
r0,@r1
REL=2,R1W/R3W-waitなし,refresh,
1/8
// rfcrレ ジスタ アド レス 設定
// rfcrレジスタライト
init asr
ldi:32
ldi:32
ldi:32
ldi:32
ldi:32
ldi:20
ldi:20
ldi:20
ldi:20
ldi:20
st
st
st
st
st
#0x0013001,r0
#0x0015001,r1
#0x0017001,r2
#0x0019001,r3
#0x001b001,r4
#0x60c,r5
#0x610,r6
#0x614,r7
#0x618,r8
#0x61C,r9
r0,@r5
r1,@r6
r2,@r7
r3,@r8
r4,@r9
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
init ler
ldi:8
ldi:20
stb
#0x02,r0
#0x7fe,r1
r0,@r1
// CS2 little endian
// lerレ ジスタア ドレ ス 設定
// lerレジスタライト
init modr
ldi:8
ldi:20
stb
#0x80,r0
#0x7ff,r1
r0,@r1
// 外ROM外バス
// modrレ ジスタ アド レス 設定
// modrレジスタライト
init rfcr
184
#0x62c,r1
r0,@r1
#0x10c0,r0
asr1,amr1レ ジスタ 設定値
asr2,amr2レ ジスタ 設定値
asr3,amr3レ ジスタ 設定値
asr4,amr4レ ジスタ 設定値
asr5,amr5レ ジスタ 設定値
asr1,amr1レ ジスタア ドレ ス 設定
asr2,amr2レ ジスタア ドレ ス 設定
asr3,amr3レ ジスタア ドレ ス 設定
asr4,amr4レ ジスタア ドレ ス 設定
asr5,amr5レ ジスタア ドレ ス 設定
asr1,amr1レジスタライト
asr2,amr2レジスタライト
asr3,amr3レジスタライト
asr4,amr4レジスタライト
asr5,amr5レジスタライト
4.7 外部バス動作のプログラム例
//外部バスアクセス
adr set
ldi:32
ldi:32
ldi:32
ldi:32
ldi:32
ldi:32
ldi:32
ldi:32
#0x00136da0,
#0x00151300,
#0x00196434,
#0x0019657c,
#0x00196600,
#0x001a6818,
#0x001a6b8c,
#0x001a6c00,
bus acc
ld
lduh
ld
ldub
st
sth
st
stb
@r0,r8
@r1,r9
@r2,r10
@r3,r11
r8,@r4
r9,@r5
r10,@r6
r11,@r7
r0
r1
r2
r3
r4
r5
r6
r7
//
//
//
//
//
//
//
//
CS1アドレス
CS2アドレス
CS4アドレス(ページ内)
CS4アドレス(ページ内)
CS4アドレス(ページ外)
CS5アドレス(ページ内)
CS5アドレス(ページ内)
CS5アドレス(ページ外)
//
//
//
//
//
//
//
//
CS1
CS2
CS4
CS4
CS4
CS5
CS5
CS5
data
data
data
data
data
data
data
data
word
half
word
byte
word
half
word
byte
load
word load
load
load
store
word store
store
store
185
第4章 バスインタフェース
186
第5章
I/Oポート
I/Oポート
この章では,I/Oポートの概要,レジスタの構成/機能,および外部端子と切換え
レジスタとの関係について説明します。
5.1 I/Oポートの概要
5.2 ポートデータレジスタ(PDR)
5.3 データ方向レジスタ(DDR)
5.4 外部端子と切換えレジスタとの関係
187
第5章 I/Oポート
5.1
I/Oポートの概要
I/Oポートの概要
MB91107/MB91108は,各端子に対応するリソ−スが入出力として端子を使用しない
設定になっているとき,I/Oポートとして使用することができます。
■ I/Oポートの基本ブロックダイヤグラム
図 5.1-1にI/Oポートの基本的な構成を示します。
図 5.1-1 I/Oポートの基本ブロックダイヤグラム
■ I/Oポートのレジスタ
I/Oポートは,ポートデータレジスタ(PDR)とデータ方向レジスタ(DDR)で構
成されています。
○
入力モード(DDR=“0”
)時
l
l
○
PDRライト時:PDRに設定値が書き込まれます。
出力モード(DDR=“1”
)時
l
l
188
PDRリード時:対応する外部端子のレベルが読み出されます。
PDRリード時:PDRの値が読み出されます。
PDRライト時:PDRの値が対応する外部端子に出力されます。
5.2 ポートデータレジスタ(PDR)
5.2
ポートデータレジスタ(PDR)
ポートデータレジスタ(PDR)
ポートデータレジスタ(PDR2∼I)は,I/Oポートの入出力データレジスタです。
対応するデータ方向レジスタ(DDR2∼I)で,入出力制御が行われます。
■ ポートデータレジスタ(PDR)
ポートデータレジスタ(PDR)のレジスタ構成は以下のとおりです。
○
特殊状態のポート
PH0は,リセットで出力状態(L出力)になります。
PH2,PH3は,リセットでチップセレクトが有効になります(H出力)。
189
第5章 I/Oポート
5.3
データ方向レジスタ(DDR)
データ方向レジスタ(DDR)
データ方向レジスタ(DDR2∼I)は,対応するI/Oポートの入出力方向をビット単
位で制御します。
0で入力,1で出力制御が行われます。
■ データ方向レジスタ(DDR)
データ方向レジスタ(DDR)のレジスタ構成は以下のとおりです。
190
5.4 外部端子と切換えレジスタとの関係
5.4
外部端子と切換えレジスタとの関係
表 5.4-1に各外部端子についての初期値と,I/Oポートとして使用するのか,制御
端子として使用するのかを切り換えるレジスタとの関係を示します。
表中の8ビット:∼,16ビット:∼とあるのは,使用する外部バス幅によって機能
が変化することを示します。
■ 外部端子の機能(I/Oポートまたは制御端子)選択
表 5.4-1 外部端子の機能選択一覧(続く)
端子番号
端子記号
D24∼D31
D24∼D31
切換えレジスタ
MD0∼2,AMD0∼5で選択したバス幅に応じて
自動的に切換わります。
8ビット:P20∼P27
16ビット:D16∼D23
−
A00∼A15
A00∼A15
−
P20∼P27
85∼92
D16∼D23
93∼100
102∼109
111∼118
初期値
8ビット:P20∼P27
16ビット:D16∼D23
P60∼P67
120,1∼7
A16∼A23
A16∼A23
P70
8
A24
A24
P80
79
P80
RDY
P81
80
P81
BGRNTX
P82
81
P82
BRQ
82
RDX
RDX
83
WR0X
WR0X
P85
84
WR1X
65
CS0X
8ビット:P85
16ビット:WR1X
CS0X
PA1∼PA5
66∼70
CS1X∼CS5X
CS1X∼CS5X
PA6
71
CLK
CLK
EPCR1(AE16∼AE23ビット)
0:P60∼P67
1:A16∼A23
EPCR1(AE24ビット)
0:P70
1:A24
EPCR0(RDYEビット)
0:P80
1:RDY
EPCR0(BREビット)
0:P81
1:BGRNTX
EPCR0(BREビット)
0:P82
1:BRQ
EPCR0のRDXEビットには常に“1”を設
定してください。
EPCR0のWREビットには常に“1”を設定
してください。
EPCR0のWREビットには常に“1”を設定
してください。
MD0∼2,AMD0∼5で選択したバス幅に応じて
自動的に切換わります。
8ビット:P85
16ビット:WR1X
EPCR0のCOE0ビットには常に“1”を設
定してください。
EPCR0(COE1∼COE5ビット)
0:PA1∼PA5
1:CS1X∼CS5X
EPCR0(CKEビット)
0:PA6
1:CLK
191
第5章 I/Oポート
表 5.4-1 外部端子の機能選択一覧(続く)
端子番号
端子記号
初期値
PB0∼PB7
56∼63
76∼78
73
72
12∼15
RAS0
CS0L
CS0H
DW0X
RAS1
CS1L
CS1H
DW1X
MD0∼MD2
HSTX
NMIX
AN0∼AN3
PB0∼PB7
MD0∼MD2
HSTX
NMIX
AN0∼AN3
PE0
42
PE0
SC2
43
PE1
DREQ0
PE1/DREQ0
PE2
44
PE2
DACK0
PE3
45
PE3
EOP0
46
PE4
DREQ1
PE4/DREQ1
PE5
47
PE5
DACK1
PE6
48
PE6
EOP1
49
33
PE7
DREQ2
PF0
SI0
PE7/DREQ2
PF0/SI0
PF1
35
PF1
SO0
PF2
36
SC0
37
PF3
SI1
PF2/SC0
(入力)
PF3/SI1
PF4
38
PF4
SO1
192
切換えレジスタ
DSCR(RS0E∼DW1Eビット)
0:PB0∼PB7
1:RAS0∼DW1X
−
−
−
−
SMR(SCKEビット)
0:端子の値がSC2に入力されます。
1:SC2(出力)
端子の値が常にDREQ0に入力されます。
DATCR(AKSE0,AKDE0ビット)
0:PE2
1:DACK0
DATCR(EPSE0,EPDE0ビット)
0:PE3
1:EOP0
端子の値が常にDREQ1に入力されます。
DATCR(AKSE1,AKDE1ビット)
0:PE5
1:DACK1
DATCR(EPSE1,EPDE1ビット)
0:PE6
1:EOP1
端子の値が常にDREQ2に入力されます。
端子の値が常にSI0に入力されます
(ストップ時は除く)。
SMR(SOEビット)
0:PF1
1:SO0(出力)
SMR(SCKEビット)
0:端子の値がSC0に入力されます
(ストップ時は除く)。
1:SC0(出力)
端子の値が常にSI1に入力されます
(ストップ時は除く)。
SMR(SOEビット)
0:PF4
1:SO1(出力)
5.4 外部端子と切換えレジスタとの関係
表 5.4-1 外部端子の機能選択一覧(続き)
端子番号
端子記号
PF5
39
SC1
40
PF6
SI2
初期値
PF5/SC1
(入力)
PF6/SI2
PF7
41
PF7
SO2
PG0∼PG7
25∼32
PG0/INT0∼PG7/INT7
切換えレジスタ
SMR(SCKEビット)
0:端子の値がSC1に入力されます
(ストップ時は除く)。
1:SC1(出力)
端子の値が常にSI2に入力されます
(ストップ時は除く)。
SMR(SOEビット)
0:PF7
1:SO2(出力)
端子の値が常にINT0∼INT7に入力され
ます。
INT0∼INT7
PH0
16
PH0 /TRG0
TRG0
17
PH1
TRG1
PF1/TRG1
PH2∼PH3
18∼19
TRG2∼TRG3
CS7X∼CS6X
CS7X∼CS6X
PH4∼PH7
20∼23
PH4∼PH7
OCPA0∼OCPA3
PI0
50
PI0
DACK2
PI1
51
EOP2
PI1
ATGX
9
10
11
74
54
53
24,55,110
64
34,52,75,
101,119
AVCC
AVRH
AVSS
(AVRL)
RSTX
X0
X1
VCC
C
AVCC
AVRH
AVSS
(AVRL)
RSTX
X0
X1
VCC
C
VSS
VSS
端子の値が常にTRG0に入力されます
(ストップ時は除く)。
リセット時はPH0で出力状態になります
(L出力)。
端子の値が常にTRG1に入力されます
(ストップ時は除く)。
CS67(COE7∼COE6ビット)
0:PH2∼PH3
1:CS7X∼CS6X
端子の値が常にTRG2∼TRG3に入力されま
す(ストップ時は除く)。
リセット時はCS6X,CS7XになりH出力にな
ります。
PCNL(POENビット)
0:PH4∼PH7
1:OCPA0∼OCPA3
DATCR(AKSE2,AKDE2ビット)
0:PI0
1:DACK2
DATCR(EPSE2,EPDE2ビット)
0:PI1
1:EOP2
端子の値が常にATGXに入力されます
(ストップ時は除く)。
−
−
−
−
−
−
−
−
−
193
第5章 I/Oポート
194
第6章
16ビットリロードタイマ
16ビットリロードタイマ
この章では,16ビットリロードタイマの概要,レジスタの構成/機能,および16
ビットリロードタイマの動作について説明します。
6.1 16ビットリロードタイマの概要
6.2 16ビットリロードタイマのレジスタ
6.3 16ビットリロードタイマの動作
6.4 カウンタの動作状態
195
第6章 16ビットリロードタイマ
6.1
16ビットリロードタイマの概要
16ビットリロードタイマの概要
16ビットリロードタイマは,16ビットのダウンカウンタ,16ビットのリロードレ
ジスタ,内部カウントクロック作成用プリスケーラ,コントロールレジスタで構成
されています。
入力クロックとして内部クロック3種類(マシンクロックの2/8/32分周)から選択
できます。
割込みによるDMA転送の起動が可能です。
MB91107/MB91108は,本タイマを3チャネル内蔵しています。
リロードタイマのチャネル2のTO出力は,LSI内部でA/Dコンバータに接続されてい
ます。したがって,リロードレジスタに設定された周期でA/D変換を起動することが
可能です。
■ 16ビットリロードタイマのブロックダイヤグラム
図 6.1-1に16ビットリロードタイマのブロックダイヤグラムを示します。
図 6.1-1 16ビットリロードタイマのブロックダイヤグラム
196
6.2 16ビットリロードタイマのレジスタ
6.2
16ビットリロードタイマのレジスタ
16ビットリロードタイマのレジスタ
図 6.2-1に16ビットリロードタイマのレジスタ一覧を示します。
■ 16ビットリロードタイマのレジスタ一覧
図 6.2-1 16ビットリロードタイマのレジスタ一覧
197
第6章 16ビットリロードタイマ
6.2.1
コントロールステータスレジスタ(TMCSR)
コントロールステータスレジスタ(TMCSR)
16ビットタイマの動作モード,および割込みの制御をします。
UF,CNTE,TRGビット以外のビットの書換えは,CNTE=0のときに行うようにしてくだ
さい。
同時書き込みは可能です。
■ コントロールステータスレジスタ(TMCSR)
コントロールステータスレジスタ(TMCSR)のレジスタ構成は以下のとおりです。
[bit 11,10] CSL1,CSL0 (Conut clock SLect)
カウントクロックセレクトビットです。
選択されるクロックソースを,表 6.2-1に示します。
表 6.2-1 CSLビット設定クロックソース
CSL1
0
0
1
1
CSL0
0
1
0
1
クロックソース(φ:マシンクロック)
φ/21
φ/23
φ/25
設定禁止
[bit 9,8,7] MOD2,MOD1,MOD0 (MODe)
動作モードを設定するビットです。
必ず“0”を設定してください。
[bit 6] OUTE (OUTput Enable)
必ず“0”を設定してください。
[bit 5] OUTL
必ず“0”を設定してください。
[bit 4] RELD
リロード許可ビットです。“1”のときリロードモードになり,カウンタの値
が0000H⇒ FFFFHへのアンダフローと同時にリロードレジスタの内容をカウンタ
へロードしてカウント動作を続けます。
“0”のときカウンタの値が0000H⇒FFFFH
へのアンダフローによりカウント動作を停止します。
[bit 3] INTE
割込み要求許可ビットです。“1”のとき,UFビットが“1”になると割込み
要求を発生します。
“0”のときは,割込み要求を発生しません。
198
6.2 16ビットリロードタイマのレジスタ
[bit 2] UF
タイマ割込み要求フラグです。カウンタの値が,0000H⇒ FFFFHへのアンダフ
ローにより“1”にセットされます。
“0”の書込みによってクリアされます。
このビットへの“1”書込みは,意味がありません。
リードモディファイライト系命令における読出し時には,“1”が読出されま
す。
[bit 1] CNTE
タイマのカウントイネーブルビットです。このビットに“1”を書込むと,
起動トリガ待ち状態になります。
“0”書込みによりカウント動作は停止します。
[bit 0] TRG
ソフトウェアトリガビットです。“1”書込みによりソフトウェアトリガがか
かり,リロードレジスタの内容をカウンタへロードしてカウント動作を開始し
ます。
“0”書き込み動作は意味を持ちません。読出し値は,常に“0”です。
このレジスタによるトリガ入力は,CNTE=“1”のときのみ有効となります。
CNTE=“0”のときには,何も起こりません。
199
第6章 16ビットリロードタイマ
6.2.2
16ビットタイマレジスタ
16ビットタイマレジスタ(TMR)
ビットタイマレジスタ(TMR)/
(TMR)/16ビットリロー
16ビットリロー
ドレジスタ(TMRLR)
ドレジスタ(TMRLR)
16ビットタイマレジスタ(TMR)は,16ビットタイマのカウント値を読出すことがで
きるレジスタです。
16ビットリロードレジスタ(TMRLR)は,カウントの初期値を保持しておくレジスタ
です。
■ 16ビットタイマレジスタ(TMR)
16ビットタイマのカウント値を読出すことができるレジスタです。初期値は不
定です。
このレジスタの読出しは,必ず16ビットデータ転送命令で行ってください。
■ 16ビットリロードレジスタ(TMRLR)
16ビットリロードレジスタは,カウントの初期値を保持しておくレジスタです。
初期値は不定です。このレジスタへの書込みは,必ず16ビットデータ転送命令
で行ってください。
200
6.3 16ビットリロードタイマの動作
6.3
16ビットリロードタイマの動作
16ビットリロードタイマの動作
16ビットリロードタイマには,次の二つの動作方法があります。
・内部クロック動作
・アンダフロー動作
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合,クロックソースとし
てマシンクロックの2,8,32分周のクロックから選択することができます。
カウント許可と同時にカウント動作を開始したい場合は,コントロールステー
タスレジスタのCNTEビットとTRGビットの両方に“1”を書込んでください。TRGビッ
トによるトリガ入力は,タイマが起動状態のとき(CNTE=“1”)動作モードにかか
わらず常に有効です。
カウンタの起動,カウンタの動作について,図 6.3-1に示します。
カウンタスタートのトリガが入力されてから,リロードレジスタのデータがカ
ウンタへロードされるまでに,T(T:周辺系クロックマシンサイクル)の時間が
かかります。
図 6.3-1 カウンタの起動と動作のタイミング
■ アンダフロー動作
カウンタの値が0000HからFFFFHになるときをアンダフローとしています。した
がって,〔リロードレジスタの設定値+1〕カウントでアンダフローが発生するこ
とになります。
アンダフロー発生時,コントロールレジスタのRELDビットが“1”のとき,リロー
ドレジスタの内容をカウンタへロードしてカウント動作を継続します。RELDビッ
トが“0”のときカウンタは,FFFFHで停止します。
アンダフローによりコントロールレジスタのUFビットがセットされ,INTEビッ
トが“1”のとき割込み要求を発生します。
アンダフロー動作を図 6.3-2に示します。
201
第6章 16ビットリロードタイマ
図 6.3-2 アンダフロー動作のタイミング
202
6.4 カウンタの動作状態
6.4
カウンタの動作状態
カウンタの状態は,コントロールレジスタのCNTEビットと内部信号のWAIT信号に
よって決まっています。設定可能な状態としてCNTE=“0”,WAIT=“1”の停止状態(STOP
状態)
,CNTE=“1”,WAIT=“1”の起動トリガ待ち状態(WAIT状態)
,CNTE=“1”,WAIT=
“0”の動作状態(RUN状態)があります。各状態の遷移を図 6.4-1に示します。
■ カウンタの動作状態
図 6.4-1 カウンタの状態遷移
203
第6章 16ビットリロードタイマ
204
第7章
PWMタイマ
PWMタイマ
この章では,PWMタイマの概要,レジスタの構成/機能,およびPWMタイマの動作
について説明します。
7.1 PWMタイマの概要
7.2 PWMタイマのブロックダイヤグラム
7.3 PWMタイマのレジスタ
7.4 PWM動作
7.5 ワンショット動作
7.6 PWMタイマの割込み要因とタイミングチャート
7.7 PWMタイマ複数チャネルの起動
205
第7章 PWMタイマ
7.1
PWMタイマの概要
PWMタイマの概要
PWMタイマは,精度の高いPWM波形を効率良く出力することができます。
MB91107/MB91108は,PWMタイマを4チャネル内蔵しています。
各チャネルは,16ビットダウンカウンタ,周期設定用バッファ付き16ビットデー
タレジスタ,デューティ設定用バッファ付き16ビットコンペアレジスタ,および端
子制御部から構成されます。
■ PWMタイマの特長
l
16ビットダウンカウンタのカウントクロックは,4種類から選択が可能
です。
-
l
内部クロック:φ,φ/4,φ/16,φ/64
カウンタ値は,リセット,カウンタボローで“FFFFH”に初期化するこ
とができます。
l
l
各チャネルごとにPWM出力があります。
レジスタ
-
周期設定レジスタ:バッファ付き,リロード用データレジスタ
-
デューティ設定レジスタ:バッファ付き,コンペアレジスタ
-
バッファからの転送は,カウンタボローで行います。
l
端子制御
-
デューティ一致で,“1”にセット(優先)。
-
カウンタボローで,“0”にリセット。
-
出力値固定モードがあり,オール“L”(または“H”)を簡単に出力
できます。
-
極性指定も可能です。
l
割込み要求は,以下の組合せから選択して発生することができます。
-
PWMタイマ起動
-
カウンタボロー発生(周期一致)
-
デューティ一致発生
-
カウンタボロー発生(周期一致),またはデューティ一致発生
上記の割込み要求によって,DMA転送起動が可能です。
l
206
ソフトウェア,または他のインターバルタイマで複数チャネルの同時起
動が設定できます。また,動作中の再起動も設定可能です。
7.2 PWMタイマのブロックダイヤグラム
7.2
PWMタイマのブロックダイヤグラム
PWMタイマのブロックダイヤグラム
図 7.2-1にPWMタイマの全体ブロックダイヤグラムを,図 7.2-2にPWMタイマ1チャ
ネル分のブロックダイヤグラムを示します。
■ PWMタイマの全体ブロックダイヤグラム
図 7.2-1 PWMタイマの全体ブロックダイヤグラム
■ PWMタイマ1チャネル分のブロックダイヤグラム
図 7.2-2 PWMタイマ1チャネル分のブロックダイヤグラム
207
第7章 PWMタイマ
7.3
PWMタイマのレジスタ
PWMタイマのレジスタ
図 7.3-1にPWMタイマのレジスタ一覧を示します。
■ PWMタイマのレジスタ一覧
図 7.3-1 PWMタイマのレジスタ一覧
208
7.3 PWMタイマのレジスタ
7.3.1
コントロールステータスレジスタ(PCNH,PCNL)
コントロールステータスレジスタ(PCNH,PCNL)
コントロールステータスレジスタ(PCNH,PCNL)は,PWMタイマの制御およびステー
タス表示をします。PWMタイマ動作中に書き換え不可能なビットがありますので注意
してください。
■ コントロールステータスレジスタ(PCNH,PCNL)
コントロールステータスレジスタ(PCNH,PCNL)のレジスタ構成は以下のとおりで
す。
[bit 15] CNTE:タイマ許可ビット
16ビットダウンカウンタの動作を許可するビットです。
0
1
停止 (初期値)
許可
[bit 14] STGR:ソフトウェアトリガビット
このビットに“1”を書き込むことによりソフトウェアトリガが掛かります。
STGRビットの読み出し値は,常に“0”です。
[bit 13] MDSE:モード選択ビット
連続してパルスを出すPWM動作か,単一パルスを出すワンショット動作かを
選択します。
0
1
PWM動作 (初期値)
ワンショット動作
[bit 12] RTRG:再起動許可ビット
ソフトウェアトリガ,またはトリガ入力による再起動を許可するビットです。
0
1
再起動禁止 (初期値)
再起動許可
209
第7章 PWMタイマ
[bit 11,10] CKS1,CKS0:カウンタクロック選択ビット
16ビットダウンカウンタのカウントクロックを選択します。
表 7.3-1 カウントクロックの選択
CKS1
CKS0
周 期
0
0
Φ (初期値)
0
1
Φ/4
1
0
Φ/16
1
1
Φ/64
Φ:周辺系マシンクロック
[bit 9] PGMS:PWM出力マスク選択ビット
このビットに“1”を書き込むことによりモード設定,周期設定値,デュー
ティ設定値にかかわらずPWM出力を“0”,または“1”にマスクすることができ
ます。
表 7.3-2 PGMSに“1”書き込み時のPWM出力
極性
通常極性
反転極性
PWM出力
L出力
H出力
通常極性時にオール“H”,または反転極性時にオール“L”を出力したい場
合は,周期設定レジスタとデューティ設定レジスタに同値をライトすれば上記
マスク値の反転を出力することができます。
[bit 8]:未使用ビットです。
[bit 7,6] EGS1,EGS0:トリガ入力エッジ選択ビット
ジェネラルコントロールレジスタ1で選んだ起動要因の有効エッジを選択し
ます。
どのモードを選択していてもソフトトリガのビットに“1”を書き込むとソ
フトトリガは有効になります。
表 7.3-3 トリガ入力エッジの選択
EGS1
0
0
1
1
EGS0
0
1
0
1
エッジ選択
無効 (初期値)
立上がりエッジ
立下がりエッジ
両エッジ
[bit 5] IREN:割込み要求許可ビット
割込み要求を許可するビットです。
0
1
210
禁止 (初期値)
許可
7.3 PWMタイマのレジスタ
[bit 4] IRQF:割込み要求フラグ
ビット5(IREN)が許可されていて,ビット3,2(IRS1,IRS0)にて選択した割込
み要因が発生すると,本ビットがセットされCPUに割込み要求を発生します。
また,DMA転送の起動を選択している場合は,DMA転送が起動されます。
本ビットのクリアは,“0”書き込みとDMACからのクリア信号で行われます。
“1”を書き込んでもビット値は変化しません。
リードモディファイライト系命令におけるリード値は,ビット値にかかわら
ず“1”です。
[bit 3,2] IRS1,IRS0:割込み要因選択ビット
ビット4(IRQF)をセットする要因を選択します。
表 7.3-4 割込み要因の選択
IRS1 IRS0
割込み要因
0
0
ソフトウェアトリガ,またはトリガ入力あり (初期値)
0
1
カウンタボロー発生(周期一致)
1
0
デューティ一致発生
1
1
カウンタボロー発生(周期一致),またはデューティ一致発生
[bit 1] POEN:PWM出力許可ビット
“1”に設定することにより,PWM出力が端子から出力されます。
0
1
汎用ポート (初期値)
PWM出力端子
[bit 0] OSEL:PWM出力極性指定ビット
PWM出力の極性を設定します。
ビット9(PGMS)との組合せで,以下のようになります。
表 7.3-5 PWM出力の極性とエッジの指定
PGMS
0
0
1
1
OSEL
0
1
0
1
PWM出力
通常極性 (初期値)
反転極性
出力“L”固定
出力“H”固定
極性
通常極性
リセット後
“L”出力
反転極性
“H”出力
デューティ一致
カウンタボロー
211
第7章 PWMタイマ
7.3.2
PWM周期設定レジスタ
PWM周期設定レジスタ(PCSR)
周期設定レジスタ(PCSR)
PWM周期設定レジスタ(PCSR)は,周期を設定するための,バッファ付きレジスタで
す。バッファからの転送は,カウンタボローで行われます。
■ PWM周期設定レジスタ(PCSR)
PWM周期設定レジスタ(PCSR)のレジスタ構成は以下のとおりです。
周期設定レジスタの初期設定時,および書き換え時は,周期設定レジスタの書
き込み後,必ずデューティ設定レジスタへの書き込み動作を行ってください。
本レジスタは,16ビットデータでアクセスしてください。
212
7.3 PWMタイマのレジスタ
7.3.3
PWMデューティ設定レジスタ
PWMデューティ設定レジスタ(PDUT)
デューティ設定レジスタ(PDUT)
PWMデューティ設定レジスタ(PDUT)は,デューティを設定するためのバッファ付き
レジスタです。バッファからの転送は,カウンタボローで行われます。
■ PWMデューティ設定レジスタ(PDUT)
PWMデューティ設定レジスタ(PDUT)のレジスタ構成は以下のとおりです。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると,通常極
性時にオール“H”を,反転極性時にオール“L”を出力します。
PCSR<PDUTとなるような値を設定しないでください。PWM出力は不定となります。
本レジスタは,16ビットデータでアクセスしてください。
213
第7章 PWMタイマ
7.3.4
PWMタイマレジスタ
PWMタイマレジスタ(PTMR)
タイマレジスタ(PTMR)
PWMタイマレジスタ(PTMR)は,16ビットダウンカウンタの値を読みだすことができ
ます。
■ PWMタイマレジスタ(PTMR)
PWMタイマレジスタ(PTMR)のレジスタ構成は以下のとおりです。
本レジスタは,16ビットデータでアクセスしてください。
214
7.3 PWMタイマのレジスタ
7.3.5
ジェネラルコントロールレジスタ1(GCN1)
ジェネラルコントロールレジスタ1(GCN1)
ジェネラルコントロールレジスタ1(GCN1)は,PWMタイマのトリガ入力の要因を選
択するレジスタです。
■ ジェネラルコントロールレジスタ1(GCN1)
ジェネラルコントロールレジスタ1(GCN1)のレジスタ構成は以下のとおりです。
[bit 15-12] TSEL33-30:ch3トリガ入力選択ビット
表 7.3-6 ch3トリガ入力の選択
15
0
0
0
0
0
0
0
1
1
1
1
1
TSEL33-30
14
13
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
X
12
0
1
0
1
0
1
X
0
1
0
1
X
Ch3トリガ入力
GCN2のEN0ビット
GCN2のEN1ビット
GCN2のEN2ビット
GCN2のEN3ビット (初期値)
16ビットリロードタイマ ch0
16ビットリロードタイマ ch1
設定禁止
外部TRG0
外部TRG1
外部TRG2
外部TRG3
設定禁止
215
第7章 PWMタイマ
[bit 11-8] TSEL23-20:ch2トリガ入力選択ビット
表 7.3-7 ch2トリガ入力の選択
11
0
0
0
0
0
0
0
1
1
1
1
1
TSEL23-20
10
9
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
X
8
0
1
0
1
0
1
X
0
1
0
1
X
Ch2トリガ入力
GCN2のEN0ビット
GCN2のEN1ビット
GCN2のEN2ビット (初期値)
GCN2のEN3ビット
16ビットリロードタイマ ch0
16ビットリロードタイマ ch1
設定禁止
外部TRG0
外部TRG1
外部TRG2
外部TRG3
設定禁止
[bit 7-4] TSEL13-10:ch1トリガ入力選択ビット
表 7.3-8 ch1トリガ入力の選択
7
0
0
0
0
0
0
0
1
1
1
1
1
216
TSEL13-10
6
5
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
X
4
0
1
0
1
0
1
X
0
1
0
1
X
Ch1トリガ入力
GCN2のEN0ビット
GCN2のEN1ビット (初期値)
GCN2のEN2ビット
GCN2のEN3ビット
16ビットリロードタイマ ch0
16ビットリロードタイマ ch1
設定禁止
外部TRG0
外部TRG1
外部TRG2
外部TRG3
設定禁止
7.3 PWMタイマのレジスタ
[bit 3-0] TSEL03-00:ch0トリガ入力選択ビット
表 7.3-9 ch0トリガ入力の選択
3
0
0
0
0
0
0
0
1
1
1
1
1
TSEL03-00
2
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
X
0
0
1
0
1
0
1
X
0
1
0
1
X
Ch0トリガ入力
GCN2のEN0ビット (初期値)
GCN2のEN1ビット
GCN2のEN2ビット
GCN2のEN3ビット
16ビットリロードタイマ ch0
16ビットリロードタイマ ch1
設定禁止
外部TRG0
外部TRG1
外部TRG2
外部TRG3
設定禁止
217
第7章 PWMタイマ
7.3.6
ジェネラルコントロールレジスタ2(GCN2)
ジェネラルコントロールレジスタ2(GCN2)
ジェネラルコントロールレジスタ2(GCN2)は,ソフトウェアによって,起動トリガ
を発生させるためのレジスタです。
■ ジェネラルコントロールレジスタ2(GCN2)
ジェネラルコントロールレジスタ2(GCN2)のレジスタ構成は以下のとおりです。
ジェネラルコントロールレジスタ1(GCN1)で,本レジスタのENビットを選択した
場合,レジスタの値がそのままPWMタイマのトリガ入力に伝わります。
コントロールステータスレジスタのEGS1,0ビットで選択したエッジをソフト
ウェアで発生させることにより,複数チャネルのPWMタイマを同時に起動すること
ができます。
本ビットのbit7∼bit4には,かならず“0”を書き込んでください。
218
7.4 PWM動作
7.4
PWM動作
PWM動作
PWM動作では,起動トリガの検出時より連続してパルスを出力することができます。
出力パルスの周期は,PCSR値を変えることにより制御することができ,また,デュー
ティ比は,PDUT値を変えることにより制御できます。
PCSRにデータを書き込んだ後は,必ずPDUTへの書き込みを行ってください。
■ PWM動作
○
再起動禁止の場合
図 7.4-1にトリガの再起動を禁止した場合のPWM動作のタイミングチャート
を示します。
図 7.4-1 PWM動作タイミングチャート(トリガ再起動禁止)
○
再起動許可の場合
図 7.4-2にトリガの再起動を許可した場合のPWM動作のタイミングチャート
を示します。
図 7.4-2 PWM動作タイミングチャート(トリガ再起動許可)
219
第7章 PWMタイマ
7.5
ワンショット動作
ワンショット動作では,トリガにより任意の幅の単一パルスを出力することがで
きます。
再起動許可の場合は,動作中にエッジを検出するとカウンタをリロードします。
■ ワンショット動作
○
再起動禁止の場合
図 7.5-1にトリガの再起動を禁止した場合のワンショット動作のタイミング
チャートを示します。
図 7.5-1 ワンショット動作タイミングチャート(トリガ再起動禁止)
○
再起動許可の場合
図 7.5-2にトリガの再起動を許可した場合のワンショット動作のタイミング
チャートを示します。
図 7.5-2 ワンショット動作タイミングチャート(トリガ再起動許可)
220
7.6 PWMタイマの割込み要因とタイミングチャート
7.6
PWMタイマの割込み要因とタイミングチャート
PWMタイマの割込み要因とタイミングチャート
割込み要因とタイミングチャートについて示します。
■ PWMタイマの割込み要因とタイミングチャート(PWM出力:通常極性)
図 7.6-1にPWMタイマの割込み要因とタイミングチャートを示します。
図 7.6-1 PWMタイマの割込み要因とタイミングチャート(PWM出力:通常極性)
■ PWM出力オール“L”
,またはオール“H”の出力方法例
図 7.6-2にPWM出力をオール“L”に,図 7.6-3にオール“H”にする出力方法を
示します。
○
PWM出力をオール“L”レベルにする例
図 7.6-2 PWM出力をオール“L”レベルにする例
○
PWM出力をオール“H”レベルにする例
図 7.6-3 PWM出力をオール“H”レベルにする例
221
第7章 PWMタイマ
7.7
PWMタイマ複数チャネルの起動
PWMタイマ複数チャネルの起動
ジェネラルコントロールレジスタ1,2(GCN1,GCN2)を使って,PWMタイマの複数
チャネルを起動できます。
GCN1レジスタで起動トリガを選択することにより,複数チャネルを同時に起動す
ることができます。
ここでは,GCN2レジスタを使ったソフトウェア起動例と,16ビットリロードタイ
マを使用して起動する場合の例を示します。
■ ソフトウェアによるPWMタイマ複数チャネルの起動
設定手順は以下のとおりです。
1) PCSRに周期を設定します。
2) PDUTにデューティを設定します。
-
必ずPCSR → PDUTの順で書き込みを行ってください。
3) GCN1で,起動するチャネルのトリガ入力要因を決めます。
4)
ここでは,GCN2を使うので,初期設定のままとします。
(ch0 → EN0, ch1 → EN1, ch2 → EN2, ch3 → EN3)
起動するチャネルのコントロールステータスレジスタを設定します。
-
CNTE:1 → タイマ動作を許可
-
STGR:0 → GCN2で起動するので,ここでは起動しない
-
MDSE:0 → PWM動作
-
RTRG:0 → 再起動禁止とする
-
CSK1,0:00 → カウントクロック=Φ
-
PGMS:0 → 出力マスクしない
(bit8:0 → 未使用ビット,何を設定しても構いません)
-
EGS1,0:01 → 立上がりエッジ起動
-
IREN:1 → 割込み要求許可
-
IRQF:0 → 割込み要因をクリア
-
IRS1,0:01 → カウンタボロー発生で割込み要求発生
-
POEN:1 → PWM出力許可
-
OSEL:0 → 通常極性
5) GCN2にデータを書き込むことで,起動トリガを発生させます。
-
222
上記の設定でch0とch1を同時に起動させる場合,GCN2のEN0,EN1に“1”
を書き込みます。立上がりエッジが発生し,PWM0,PWM1からパルスが出
力されます。
7.7 PWMタイマ複数チャネルの起動
■ 16ビットリロードタイマを使用して起動する場合
前項の設定手順3)のGCN1で,要因として16ビットリロードタイマを選択し,設
定手順5)で,GCN2の代わりに16ビットリロードタイマを起動します。
また,コントロールステータスレジスタの設定で,
RTRG:1 → 再起動許可とする
EGS1,0:11 → 両エッジ起動
とし,16ビットリロードタイマ出力をトグル出力設定にすることにより,一定
時間ごとにPWMタイマを再起動することも可能です。
223
第7章 PWMタイマ
224
第8章
U-TIMER
この章では,U-TIMERの概要,レジスタの構成/機能,およびU-TIMERの動作につ
いて説明します。
8.1 U-TIMERの概要
8.2 U-TIMERのレジスタ
8.3 U-TIMRの動作
225
第8章 U-TIMER
8.1
U-TIMERの概要
U-TIMERの概要
U-TIMERは,UARTのボーレートを発生するための16ビットタイマです。チップの動
作周波数と,U-TIMERのリロード値の組み合わせで任意のボーレートを設定できます。
また,カウントアンダフローで割込みを発生するので,インターバルタイマとし
ても使用可能です。
MB91107/MB91108は,本タイマを3チャネル内蔵しています。
最大216×Φのインターバルをカウントできます。
■ U-TIMERのブロックダイヤグラム
図 8.1-1にU-TIMERのブロックダイヤグラムを示します。
図 8.1-1 U-TIMERのブロックダイヤグラム
■ U-TIMERのレジスタ一覧
図 8.1-2にU-TIMERのレジスタ一覧を示します。
図 8.1-2 U-TIMERのレジスタ一覧
226
8.2 U-TIMERのレジスタ
8.2
U-TIMERのレジスタ
U-TIMERのレジスタ
U-TIMERのレジスタには,以下の三つがあります。
・Uタイマ値レジスタ(UTIM)
・リロードレジスタ(UTIMR)
・Uタイマ制御レジスタ(UTIMC)
■ Uタイマ値レジスタ:UTIM(U-TIMER)
UTIMは,タイマの値を示します。16ビット転送命令でアクセスしてください。
■ リロードレジスタ:UTIMR(reload register)
UTIMRは,UTIMがアンダフローしたときに,UTIMにリロードされる値を格納する
レジスタです。
16ビット転送命令でアクセスしてください。
■ Uタイマ制御レジスタ:UTIMC(U-TIMER Control register)
UTIMCは,U-TIMERの動作を制御します。
[bit 7] UCC1 (U-timer Count Control 1)
UCC1ビットは,U-TIMERのカウントの仕方を制御します。
0
通 常 動 作 . α = 2n+2 〔 初 期 値 〕
1
+ 1 モ ー ド α = 2n+3
n:UTIMRの設定値
α:UARTに対する出力クロックの周期
U-TIMERは,UARTに対して通常の2(n+1)周期のクロックのほかに奇数分周を
設定できます。
UCC1を1に設定すると2n+3の周期を発生します。
【設定例】
UTIMR=5, UCC1=0 → 発生周期 = 2n+2 = 12サイクル
UTIMR=25, UCC1=1 → 発生周期 = 2n+3 = 53サイクル
UTIMR=60, UCC1=0 → 発生周期 = 2n+2 = 122サイクル
U-TIMERをインターバルタイマとして使用する場合は,UCC1の値を0に設定し
てください。
227
第8章 U-TIMER
[bit 6,5] (reserved)
[bit 4] UTIE (U-TIMER Interrupt Enable)
UTIEは,U-TIMERのアンダフローによる割込み許可ビットです。
0:割込み禁止 〔初期値〕
1:許可
[bit 3] UNDR (UNDeR flow flag)
UNDRは,アンダフローが発生したことを示すフラグです。UTIEが“1”でUNDR
がセットされるとアンダフロー割込みが発生します。UNDRはリセット,または
“0”書込みによりクリアされます。リードモディファイライト系命令のリー
ド時は,常に“1”が読み出されます。
また,UNDRに対する“1”書込みは無効です。
[bit 2] CLKS (clock select)
本品種では,必ず“0”を設定してください。
[bit 1] UTST (U-TIMER STart)
U-TIMERの動作許可ビットです。
0:停止…動作中でも“0”ライトで停止します。〔初期値〕
1:動作…動作中に“1”を書き込んでも動作は続行されます。
[bit 0] UTCR (U-TIMER CleaR)
UTCRに“0”を書き込むと,U-TIMERは0000Hにクリアされます(f.f.も“0”に
クリア)。
常に“1”が読まれます。
<注意事項>
・ストップ状態からスタートビットUTSTをアサート(スタート)すると自動的にリロードします。
・ストップ状態からクリアビットUTCRとスタートビットUTSTを同時にアサートすると,カウン
タを“0”クリアして,直後のカウントダウンでアンダフローが発生します。
・動作中にクリアビットUTCRをアサートすると,カウンタも“0”クリアされます。このため,
出力波形にヒゲ状の短いパルスが出力される場合があり,UARTが誤動作する可能性があります。
出力クロックを使用している場合には,動作中にクリアビットによるクリアを行わないでくだ
さい。
228
8.3 U-TIMRの動作
8.3
U-TIMRの動作
U-TIMRの動作
U-TIMRのボーレートの計算方法について説明します。
■ ボーレートの計算
UARTは,対応するU-TIMER(U-TIMERx -> UARTx, x=0,1,2) のアンダフローフリッ
プフロップ(図中f.f)をbaud rate用クロックソースとして使用します。
○
非同期(調歩同期)モード
UARTは,U-TIMERの出力を16分周して使用します。
○
CLK同期モード
229
第8章 U-TIMER
230
第9章
外部割込み/NMI
外部割込み/NMI制御部
NMI制御部
この章では,外部割込み/NMI制御部の概要,レジスタの構成/機能,および外部
割込み/NMI制御部の動作について説明します。
9.1 外部割込み/NMI制御部の概要
9.2 外部割込み/NMI制御部のレジスタ
9.3 外部割込み動 作
9.4 外部割込み要求レベル
9.5 NMI(Non Maskable Interrupt:ノンマスカブル割込み)の動作
231
第9章 外部割込み/NMI制御部
9.1
外部割込み/NMI
外部割込み/NMI制御部の概要
NMI制御部の概要
外部割込み/NMI制御部は,NMIXおよびINT0∼7に入力される外部割込み要求の制
御を行うブロックです。
検出する要求のレベルとして,
“H”
,
“L”
,
“立上がりエッジ”
,
“立下がりエッジ”
から選択できます(NMI以外) 。
■ 外部割込み/NMI制御部のブロックダイヤグラム
図 9.1-1に外部割込み/NMI制御部のブロックダイヤグラムを示します。
図 9.1-1 外部割込み/NMI制御部のブロックダイヤグラム
232
9.2 外部割込み/NMI制御部のレジスタ
9.2
外部割込み/NMI
外部割込み/NMI制御部のレジスタ
NMI制御部のレジスタ
図 9.2-1に外部割込み/NMI制御部のレジスタ一覧を示します。
■ 外部割込み/NMI制御部のレジスタ一覧
図 9.2-1 外部割込み/NMI制御部のレジスタ一覧
233
第9章 外部割込み/NMI制御部
9.2.1
割込み許可レジスタ(ENIR)
割込み許可レジスタ(ENIR)
割込み許可レジスタ(ENIR)は,外部割込み要求出力のマスク制御を行います。
■ 割込み許可レジスタ(ENIR:ENable Interrupt request Register)
割込み許可レジスタ(ENIR)のレジスタ構成は以下のとおりです。
割込み許可レジスタ(ENIR)は,外部割込み要求出力のマスク制御を行います。
このレジスタの“1”が書かれたビットに対応する割込み要求出力は許可され
(INT0の許可をEN0が制御),割込みコントローラに対して要求が出力されます。
“0”が書かれたビットの対応する端子は,割込み要因を保持しますが,割込みコ
ントローラに対しては要求を発生しません。
NMI(Non Maskable Interrupt:ノンマスカブル割込み)に対するマスクビット
は,存在しません。
234
9.2 外部割込み/NMI制御部のレジスタ
9.2.2
外部割込み要因レジスタ(EIRR)
外部割込み要因レジスタ(EIRR)
外部割込み要因レジスタ(EIRR)は,読出し時には対応する外部割込み要求がある
ことを示し,書込み時にはこの要求を示すフリップフロップ内容をクリアするレジ
スタです。
■ 外部割込み要因レジスタ(EIRR:External Interrupt Request Register)
外部割込み要因レジスタ(EIRR)のレジスタ構成は以下のとおりです。
外部割込み要因レジスタ(EIRR)は,読出し時には対応する外部割込み要求があ
ることを示し,書込み時にはこの要求を示すフリップフロップ内容をクリアする
レジスタです。
このレジスタを読出したときに“1”であった場合,このビットに対応する端子
に外部割込み要求があることを示します。
また,このレジスタに“0”を書込むと,対応するビットの要求フリップフロッ
プがクリアされます。“1”の書込みは無効です。
リードモディファイライトのリード時には“1”が読まれます。
NMIフラグは,ユーザからリード/ライトできません。
235
第9章 外部割込み/NMI制御部
9.2.3
外部割込み要求レベル設定レジスタ(ELVR)
外部割込み要求レベル設定レジスタ(ELVR)
外部割込み要求レベル設定レジスタ(ELVR)は,要求検出の選択を行うレジスタで
す。
■ 外部割込み要求レベル設定レジスタ(ELVR:External LeVel Register)
外部割込み要求レベル設定レジスタ(ELVR)のレジスタ構成は以下のとおりです。
外部割込み要求レベル設定レジスタ(ELVR)は,要求検出の選択を行うレジスタ
です。
INT0-7に2ビットづつが割り当てられていて,表 9.2-1のような設定になります。
要求入力がレベルの場合,EIRRの各ビットをクリアしても入力がアクティブレ
ベルならば,該当するビットは再びセットされます。
表 9.2-1 外部割込み要求レベル割当て
LBx
0
0
1
1
LAx
0
1
0
1
動
作
Lレベルで要求あり
Hレベルで要求あり
立上がりエッジで要求あり
立下がりエッジで要求あり
NMIは,常にその立下がりエッジが検出されます(ストップ時を除きます)
。
ストップ時は,Lレベル検出となります。
236
9.3 外部割込み動作
9.3
外部割込み動
外部割込み動 作
要求レベル,許可レジスタを設定した後,対応する端子にELVRレジスタで設定さ
れた要求が入力されると,本モジュールは,割込みコントローラに対して割込み要
求信号を発生します。
■ 外部割込みの動作
割込みコントローラ内で同時発生した割込みの優先順位を識別した結果,本リ
ソースからの割込みが最も優先順位が高かったときに,該当する割込みが発生し
ます。
図 9.3-1に外部割込みの動作を示します。
図 9.3-1 外部割込みの動作
■ ストップからの復帰
クロック停止モードのストップ状態からの復帰に外部割込みを使う場合は,入
力要求をHレベル要求としてください。Lレベル要求では誤動作を起こす可能性が
あります。
エッジ要求では,クロック停止モードのストップ状態からの復帰は行われませ
ん。
■ 外部割込みの動作手順
外部割込み部内に存在するレジスタの設定を行うときは,次の手順で設定して
ください。
1)
許可レジスタの対象となるビットをdisable状態にする。
2)
要求レベル設定レジスタの対象となるビットを設定する。
3)
要因レジスタの対象となるビットをクリアする。
4)
許可レジスタの対象となるビットをenable状態にする。
ただし,3)と4)は,16ビットデータによる同時書き込みができます。
本モジュール内のレジスタを設定するときには,必ず許可レジスタをdisable状
態に設定しておかなくてはなりません。また,許可レジスタをenable状態にする
前に,必ず要因レジスタをクリアしておく必要があります。これは,レジスタ設
定時や割込み許可状態時に誤って割込み要因が起こってしまうことを避けるため
です。
237
第9章 外部割込み/NMI制御部
9.4
外部割込み要求レベル
要求レベルがエッジ要求のとき,エッジがあったことを検出するためには,パル
ス幅は最小3マシンサイクル(周辺系クロックマシンサイクル)必要とします。
要求入力レベルがレベル設定のとき,外部より要求入力が入ってその後取り下げ
られても内部に要因保持回路が存在するので,割込みコントローラへの要求はアク
ティブのままです。
割込みコントローラへの要求を取り下げるには,要因レジスタをクリアする必要
があります。
■ 外部割込み要求レベル
図 9.4-1にレベル設定時の要因保持回路のクリアを,図 9.4-2に割込み許可時
の割込み要因と割込みコントローラへの割込み要求を示します。
図 9.4-1 レベル設定時の要因保持回路のクリア
図 9.4-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求
238
9.5 NMI(Non Maskable Interrupt:ノンマスカブル割込み)の動作
9.5
NMI(Non Maskable Interrupt:ノンマスカブル割込み
Interrupt:ノンマスカブル割込み)
:ノンマスカブル割込み)
の動作
NMIは,ユーザ割込みの中で最も優先順位の高い割込みで,マスクすることはでき
ません。例外として,リセット直後からILMを設定するまではマスクされます。
■ NMIの動作
NMIの受け付けは下記のとおりです。
l
l
通常時 : 立下がりエッジ
STOP時 : “L”レベル
NMIによってストップモードを解除できます。ストップ状態で“L”レベルが入
力されると,ストップ状態が解除され発振安定待ち時間が取られます。
この発振安定待ち時間内にNMIX端子を“H”レベルに戻すとNMI要因がなくなっ
てしまい,動作再開後NMI処理が行われません。ストップ状態解除後にNMI処理を
行いたい場合は,NMIX端子を“L”レベルのままにして,NMI処理ルーチン内で“H”
レベルに戻すようにしてください。
NMI要求検出部にはNMIビットがあり,NMI要求によりセットされ,NMI自身の割
込みの受付け,もしくは,リセットでのみクリアされます。なお,このビットは
リード/ライトできません。
図 9.5-1にNMIの要求検出部を示します。
図 9.5-1 NMIの要求検出部
239
第9章 外部割込み/NMI制御部
240
第10章
10章 遅延割込みモジュール
この章では, 遅延割込みモジュールの概要,レジスタの構成/機能,および遅延
割込みモジュールの動作について説明します。
10.1 遅延割込みモジュールの概要
10.2 遅延割込み制御レジスタ(DICR)
10.3 遅延割込みモジュールの動作
241
第10章 遅延割込みモジュール
10.1
遅延割込みモジュールの概要
遅延割込みモジュールは,タスク切り換え用の割込みを発生するためのモジュー
ルです。
本モジュールを使用することで,ソフトウェアでCPUに対して割込み要求の発生/
取消しを行うことができます。
■ 遅延割込みモジュールのブロックダイヤグラム
図 10.1-1に遅延割込みモジュールのブロックダイヤグラムを示します。
図 10.1-1 遅延割込みモジュールのブロックダイヤグラム
■ 遅延割込みモジュールのレジスタ一覧
図 10.1-2に遅延割込みモジュールのレジスタ一覧を示します。
図 10.1-2 遅延割込みモジュールのレジスタ一覧
242
10.2 遅延割込み制御レジスタ(DICR)
10.2
遅延割込み制御レジスタ(DICR)
遅延割込み制御レジスタ(DICR)
遅延割込み制御レジスタ(DICR)は,遅延割込みを制御するレジスタです。
■ 遅延割込み制御レジスタ(DICR)
遅延割込み制御レジスタ(DICR)のレジスタ構成は以下のとおりです。
[bit 0] DLYI
0
1
遅延割込み要因の解除/要求なし 〔初期値〕
遅延割込み要因の発生
本ビットにより,該当する割込み要因の発生/解除を制御します。
243
第10章 遅延割込みモジュール
10.3
遅延割込みモジュールの動作
遅延割込みは,タスク切り換え用の割込みを発生するものです。本機能を使用す
ることにより,ソフトウェアでCPUに対して割込み要求の発生,取消しを行うことが
できます。
■ 割込み番号
遅延割込みは,最も大きな割込み番号に対応した割込み要因に割り当てられて
います。
48要因ある本品種では,割込み番号63(3FH)に対応した割込み要因となります。
■ DICRのDLYIビット
このビットに“1”を書き込むことで,遅延割込み要因が発生します。また,
“0”
を書き込むことで,遅延割込み要因を解除します。
本ビットは,一般の割込みにおける割込み要因フラグと同じものであり,割込
みルーチンの中で本ビットをクリアし,合わせてタスクの切り換えを行うように
してください。
244
第11章
11章 割込みコントローラ
この章では,割込みコントローラの概要,レジスタの構成/機能,割込みコント
ローラの動作,およびホールドリクエスト取下げ要求機能の使用例について説明し
ます。
11.1 割込みコントローラの概要
11.2 割込みコントローラのブロックダイヤグラム
11.3 割込みコントローラのレジスタ
11.4 優先順位判定
11.5 スタンバイモード(ストップ/スリープ)からの復帰
11.6 ホールドリクエスト取下げ要求
11.7 ホールドリクエスト取下げ要求機能(HRCR)の使用例
245
第11章 割込みコントローラ
11.1
割込みコントローラの概要
割込みコントローラは,割込み受付けと調停処理をつかさどります。
■ 割込みコントローラのハードウェア構成
本モジュールは,以下のものより構成されます。
l
l
l
l
ICRレジスタ
割込み優先度判定回路
割込みレベル,割込み番号(ベクタ)発生部
HOLDリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
本モジュールには,主に以下のような機能があります。
l
l
l
l
l
l
246
NMI要求/割込み要求の検出
優先度判定(レベルおよび番号による)
判定結果の要因の割込みレベル伝達(CPUへ)
判定結果の要因の割込み番号伝達(CPUへ)
NMI/割込み発生によるストップモードからの復帰指示
バスマスタへのHOLDリクエスト取下げ要求発生
11.2 割込みコントローラのブロックダイヤグラム
11.2
割込みコントローラのブロックダイヤグラム
図 11.2-1に割込みコントローラのブロックダイヤグラムを示します。
■ 割込みコントローラのブロックダイヤグラム
図 11.2-1 割込みコントローラのブロックダイヤグラム
247
第11章 割込みコントローラ
11.3
割込みコントローラのレジスタ
図 11.3-1に割込みコントローラのレジスタ一覧を示します。
■ 割込みコントローラのレジスタ一覧
図 11.3-1 割込みコントローラのレジスタ一覧(続く)
248
11.3 割込みコントローラのレジスタ
図 11.3-1 割込みコントローラのレジスタ一覧(続き)
249
第11章 割込みコントローラ
11.3.1
割込み制御レジスタ(ICR)
割込み制御レジスタ(ICR)
割込み制御レジスタです。各割込み入力に対して一つずつ設けられており,対応
する割込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ(ICR)
割込み制御レジスタ(ICR)のレジスタ構成は以下のとおりです。
[bit 4∼0] ICR4∼0
割込みレベル設定ビットで,対応する割込み要求の割込みレベルを指定しま
す。
本レジスタに設定した割込みレベルがCPUのILMレジスタに設定した(された)
レベルマスク値以上の場合は,CPU側にて割込み要求はマスクされます。
リセットにより,11111Bに初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 11.3-1に示
します。
表 11.3-1 割込みレベル設定ビットと割込みレベルの対応
ICR4
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
ICR3
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
ICR2
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
ICR1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
ICR0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
割込みレベル
0
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
システム予約
NMI
設定可能な最強レベル
(強)
(弱)
割込み禁止
ICR4は“1”固定で,
“0”を書き込むことはできません。
250
11.3 割込みコントローラのレジスタ
11.3.2
ホールドリクエスト取下げ要求レベル設定レジス
タ(HRCL)
ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL)
ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL)のレジスタ構成は
以下のとおりです。
[bit 4∼0] LVL4∼0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを
設定します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生
した場合は,バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4ビットは“1”固定で,
“0”を書き込むことはできません。
251
第11章 割込みコントローラ
11.4
優先順位判定
本モジュールでは,同時に発生している割込み要因の中で最も優先度の高い要因
を選択し,その要因の割込みレベルと割込み番号をCPUへ出力します。
NMIは,本モジュールが取り扱う割込み要因の中では最も優先順位が高くなってい
ます。
■ 優先順位判定
割込み要因の優先順位判定基準は,次のとおりです。
1)
NMI
2)
以下の条件を満たす要因
l
l
l
割込みレベルの数値が31以外(31は割込み禁止)。
割込みレベルの数値が最も小さい要因。
その中で,最も小さい割込み番号を持つ要因。
割込み要因と割込み番号,割込みレベルの関係を表 11.4-1に示します。
表 11.4-1 割込み要因と割込み番号,割込みレベルの関係(続く)
割込み要因
NMI要求
外部割込み 0
外部割込み 1
外部割込み 2
外部割込み 3
UART 0 受信完了
UART 1 受信完了
UART 2 受信完了
UART 0 送信完了
UART 1 送信完了
UART 2 送信完了
DMAC 0 (終了,エラー)
DMAC 1 (終了,エラー)
DMAC 2 (終了,エラー)
DMAC 3 (終了,エラー)
DMAC 4 (終了,エラー)
DMAC 5 (終了,エラー)
DMAC 6 (終了,エラー)
DMAC 7 (終了,エラー)
A/D(逐次型)
リロードタイマ0
リロードタイマ1
リロードタイマ2
PWM 0
PWM 1
PWM 2
PWM 3
252
割込み番号
10進
16進
15
0F
16
10
17
11
18
12
19
13
20
14
21
15
22
16
23
17
24
18
25
19
26
1A
27
1B
28
1C
29
1D
30
1E
31
1F
32
20
33
21
34
22
35
23
36
24
37
25
38
26
39
27
40
28
41
29
割込みレベル
オフセット
TBRデフォルト
のアドレス
15(FH)固定
ICR00
ICR01
ICR02
ICR03
ICR04
ICR05
ICR06
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
ICR16
ICR17
ICR18
ICR19
ICR20
ICR21
ICR22
ICR23
ICR24
ICR25
3C0H
3BCH
3B8H
3B4H
3B0H
3ACH
3A8H
3A4H
3A0H
39CH
398H
394H
390H
38CH
388H
384H
380H
37CH
378H
374H
370H
36CH
368H
364H
360H
35CH
358H
000FFFC0H
000FFFBCH
000FFFB8H
000FFFB4H
000FFFB0H
000FFFACH
000FFFA8H
000FFFA4H
000FFFA0H
000FFF9CH
000FFF98H
000FFF94H
000FFF90H
000FFF8CH
000FFF88H
000FFF84H
000FFF80H
000FFF7CH
000FFF78H
000FFF74H
000FFF70H
000FFF6CH
000FFF68H
000FFF64H
000FFF60H
000FFF5CH
000FFF58H
11.4 優先順位判定
表 11.4-1 割込み要因と割込み番号,割込みレベルの関係(続き)
割込み要因
U-TIMER 0
U-TIMER 1
U-TIMER 2
外部割込み 4
外部割込み 5
外部割込み 6
外部割込み 7
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
遅延割込み要因ビット
割込み番号
10進
16進
42
2A
43
2B
44
2C
45
2D
46
2E
47
2F
48
30
49
31
50
32
51
33
52
34
53
35
54
36
55
37
56
38
57
39
58
3A
59
3B
60
3C
61
3D
62
3E
63
3F
割込みレベル
オフセット
TBRデフォルト
のアドレス
ICR26
ICR27
ICR28
ICR29
ICR30
ICR31
ICR32
ICR33
ICR34
ICR35
ICR36
ICR37
ICR38
ICR39
ICR40
ICR41
ICR42
ICR43
ICR44
ICR45
ICR46
ICR47
354H
350H
34CH
348H
344H
340H
33CH
338H
334H
330H
32CH
328H
324H
320H
31CH
318H
314H
310H
30CH
308H
304H
300H
000FFF54H
000FFF50H
000FFF4CH
000FFF48H
000FFF44H
000FFF40H
000FFF3CH
000FFF38H
000FFF34H
000FFF30H
000FFF2CH
000FFF28H
000FFF24H
000FFF20H
000FFF1CH
000FFF18H
000FFF14H
000FFF10H
000FFF0CH
000FFF08H
000FFF04H
000FFF00H
■ NMI(Non Maskable Interrupt)
NMIは,本モジュールが取り扱う割込み要因の中では最も優先順位が高くなって
います。そのため,ほかの割込み要因と同時発生の場合は,常にNMIが選択されま
す。
○
NMIが発生すると,CPUに対して次の情報を伝えます。
l
l
○
割込みレベル:15(01111B)
割込み番号:15(001111B)
NMIの検出
NMIの設定および検出は,外部割込み/NMIモジュールで行います。本モジュー
ルではNMI要求により,割込みレベル/割込み番号の生成のみを行います。
■ 割込み要因の解除
割込みルーチンにおける,割込み要因解除のための命令とRETI命令の間には制
限があります。詳細は,「3.10 E I T ( 例外・割込み・トラップ)」を参照してく
ださい。
253
第11章 割込みコントローラ
11.5
スタンバイモード(ストップ/スリープ)からの復帰
スタンバイモード(ストップ/スリープ)からの復帰
割込み要求の発生により,ストップモードから復帰する機能を本モジュールで実
現します。
■ スタンバイモード(ストップ/スリープ)からの復帰
NMIを含む,周辺からの割込み要求が一つでも発生すると,クロック制御部に対
してストップモードからの復帰要求を発生します。
優先度判定部は,ストップ復帰後クロックが供給されてから動作を再開します
ので,優先度判定部の結果が出るまでの間,CPUは命令を実行することになります。
スリープ状態からの復帰においても,同様に動作します。
また,スリープ時は,本モジュール内のレジスタはDMACなどでアクセス可能で
す。
<注意事項>
・NMI要求においてもストップモードからの復帰を行います。
・ストップおよびスリープからの復帰の要因としたくない割込み要因は,対応する周辺の制御レ
ジスタにて割込み要求出力を禁止してください。スタンバイからの復帰要求信号は,全割込み
要因の単なる論理和出力のため,ICRに設定した割込みレベルの内容は加味されません。
・スリープ時にDMA転送を行いたい場合は,割込み要求を本モジュールへ伝えないようにDMA側で
設定し,誤ってスリープ状態から復帰しないようにしてください。
254
11.6 ホールドリクエスト取下げ要求
11.6
ホールドリクエスト取下げ要求
優先度の高い割込み処理を,CPUのホールド中に行いたい場合は,ホールドリクエ
スト発生元においてリクエストを取り下げてもらう必要があります。この取下げ要
求発生の基準となる割込みレベルをHRCLレジスタに設定します。
■ ホールドリクエスト取下げ要求の発生基準
HRCLレジスタに設定した割込みレベルより強いレベルの割込み要因が発生した
場合は,ホールドリクエスト取下げ要求を発生します。
l
l
HRCLレジスタの割込みレベル
取下げ要求発生
> 優先度判定後の割込みレベル ⇒
HRCLレジスタの割込みレベル
取下げ要求なし
≦ 優先度判定後の割込みレベル ⇒
取下げ要求発生原因となった割込み要因をクリアしない限り,この取下げ要求
は有効です。DMA転送中にホールドリクエスト取下げ要求した場合,割込み要求を
クリアせず,結果的にいつまでもDMA転送が起こらないことになります。必ず対応
する割込み要因をクリアしてください。
■ ホールドリクエスト取下げ要求の設定可能なレベル
HRCLレジスタに設定可能な値は,ICRと同様に10000Bから11111Bまでです。
11111Bに設定した場合は,すべての割込みレベルに対して取下げ要求を発生し
ます。また,10000Bに設定した場合は,NMIでのみ取下げ要求を発生することにな
ります。
ホールドリクエスト取下げ要求発生となる割込みレベルの設定を表 11.6-1に示
します。
表 11.6-1 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCLレジスタ
16
17
18
∼
31
取下げ要求発生となる割込みレベル
NMIのみ
NMI,割込みレベル16
NMI,割込みレベル16∼17
∼
NMI,割込みレベル16∼30〔初期値〕
リセット後は,HRCLレジスタの値が11111になっているため,すべての割込みレ
ベルに対してDMA転送を抑止します。
すなわち,割込みが発生しているとDMA転送が行われませんので,HRCLレジスタ
の値を必要な値に設定してください。
255
第11章 割込みコントローラ
11.7
ホールドリクエスト取下げ要求機能(HRCR)
ホールドリクエスト取下げ要求機能(HRCR)の使用例
(HRCR)の使用例
DMA転送中に,CPUが優先度の高い処理を行いたいときは,DMAに対してホールドリ
クエストを取り下げてもらってホールド状態を解除する必要があります。ここでは,
割込みを利用してDMAに対してホールドリクエストの取下げ,すなわち,CPUの優先
動作を実現します。
■ 制御レジスタ
○
ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL)
:本モジュール
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合
に,DMAに対してホールドリクエスト取下げ要求を発生します。その基準とな
るレベルを設定します。
○
割込み制御レジスタ(ICR)
:本モジュール
使用する割込み要因に対応するICRに,HRCLレジスタよりも強いレベルを設
定します。
○
DMA要求抑止レジスタ(PDRR)
:クロック制御部
DMAからのホールドリクエストを一時的に抑止するためのレジスタです。割
込み要因のクリアにより,再びホールド状態に戻るのを防ぎます。本レジスタ
の値が0000Bのときのみ,DMAからのホールドリクエストをCPUへ伝えます。使用
方法としては,割込みルーチンの先頭で本レジスタの内容をインクリメントし,
ルーチンの出口でデクリメントしてください。
■ ハードウェア構成
各信号の流れは,次のようになっています。
図 11.7-1 ホールドリクエスト取下げ要求機能を使用するためのハードウェア構成例
■ ホールドリクエスト取下げ要求シーケンス
○
割込みルーチン例
図 11.7-2 ホールドリクエスト取下げ要求シーケンスのタイミング例(割込みレベル HRCL > a)
256
11.7 ホールドリクエスト取下げ要求機能(HRCR)の使用例
割込み要求が発生すると割込みレベルが変化して,これがHRCLレジスタに設定
したレベルより強いとDMAに対してHRCRをアクティブにします。これによって,DMA
はホールドリクエストを下げ,CPUはホールド状態から復帰して割込み処理を行い
ます。割込みルーチンでは,PDRRをインクリメント(①)し,割込み要因をクリア(②)
します。これにより割込みレベルは変化し,HRCRがインアクティブになりDMAは再
びホールドリクエストを出すようになります。しかし,PDRRが0ではないので,こ
のホールドリクエストは遮断されています。PDRRをデクリメント(③)することで,
初めてホールドリクエストがCPUに伝わり,再びDMA転送が行われるようになりま
す。
○
多重割込みルーチン例
図 11.7-3 ホールドリクエスト取下げ要求シーケンスのタイミング例(割込みレベル HRCL > a > b)
割込みルーチンの例
①,⑤PDRRインクリメント
②,⑥割込み要因クリア
∼
③,⑦PDRRデクリメント
④,⑧RETI
上記例では,割込みルーチンⅠを実行中に,それより優先度の高い割込みが
発生した場合を示しています。ここでも,各割込みルーチンの先頭でPDRRをイ
ンクリメントし,ルーチンの出口でデクリメントすることによって,不用意に
ホールドリクエストが上がるのを防ぐことができます。
<注意事項>
・PDRRのインクリメント/デクリメントは,DMA転送中(CPUホールド中)に処理させたい割込み
ルーチンの先頭と出口で必ず行うようにしてください。これを行わないと,割込みルーチンの
途中で再びDMA転送が行われてしまいます。
・逆に,PDRRのインクリメント/デクリメントを通常の割込みルーチンでは行わないでください。
割込みルーチン実行中にDMA転送が行えず,パフォーマンスを落とすことになります。
・HRCLレジスタとICRに設定する割込みレベルの関係には,十分注意してください。
257
第11章 割込みコントローラ
258
第12章
12章 A/Dコンバータ
A/Dコンバータ(
コンバータ(逐次比較型)
逐次比較型)
この章では,A/Dコンバータの概要,レジスタの構成/機能,およびA/Dコンバー
タの動作について説明します。
12.1 A/Dコンバータの概要
12.2 A/Dコンバータのブロックダイヤグラム
12.3 A/Dコンバータのレジスタ
12.4 A/Dコンバータの動作
12.5 変換データ保護機能
12.6 A/Dコンバータ使用上の注意
259
第12章 A/Dコンバータ(逐次比較型)
12.1
A/Dコンバータの概要
A/Dコンバータの概要
A/Dコンバータは,アナログ入力電圧をディジタル値に変換するモジュールです。
■ A/Dコンバータの特長
l
l
l
l
l
l
260
最小変換時間:5.6μs/ch(システムクロック25MHz時)
サンプル&ホールド回路内蔵
分解能:10ビット(精度:8ビット)
アナログ入力は4チャネルからプログラムで選択
-
シングル変換モード:1チャネルを選択変換
-
スキャン変換モード:連続した複数のチャネルを変換。最大4chプログ
ラム可能
-
連続変換モード:指定チャネルを繰り返し変換
-
停止変換モード:1チャネルを変換したら一時停止して次の起動が掛か
るまで待機(変換開始の同期が可能)
割込みによるDMA転送の起動が可能
起動要因は,ソフト,外部トリガ(立下がりエッジ),リロードタイマ
(立上がりエッジ)から選択
12.2 A/Dコンバータのブロックダイヤグラム
12.2
A/Dコンバータのブロックダイヤグラム
A/Dコンバータのブロックダイヤグラム
図 12.2-1にA/Dコンバータのブロックダイヤグラムを示します。
■ A/Dコンバータのブロックダイヤグラム
図 12.2-1 A/Dコンバータのブロックダイヤグラム
261
第12章 A/Dコンバータ(逐次比較型)
12.3
A/Dコンバータのレジスタ
A/Dコンバータのレジスタ
A/Dコンバータのレジスタには,次の二つがあります。
・コントロールステータスレジスタ(ADCS)
・データレジスタ(ADCR)
■ A/Dコンバータのレジスタ一覧
図 12.3-1にA/Dコンバータのレジスタ一覧を示します。
図 12.3-1 A/Dコンバータのレジスタ一覧
262
12.3 A/Dコンバータのレジスタ
12.3.1
コントロールステータスレジスタ(ADCS)
コントロールステータスレジスタ(ADCS)
コントロールステータスレジスタ(ADCS)は,A/Dコンバータの制御およびステータ
ス表示を行います。
ADCSは,A/D変換動作中に書換えないでください。
■ コントロールステータスレジスタ(ADCS)
コントロールステータスレジスタ(ADCS)のレジスタ構成は以下のとおりです。
[bit 15] BUSY (BUSY flag and stop)
リード時:A/Dコンバータ動作表示用のビットです。A/D変換起動でセットさ
れ,終了でクリアされます。
ライト時:A/D動作中に本ビットに“0”を書き込むと強制的に動作を停止
します。連続,停止モード時の強制停止に利用します。
動作表示用のビットに“1”を書き込むことは出来ません。RMW系命令では“1”
が読まれます。
単発モードでは,A/D変換終了でクリアされます。
連続,停止モードでは,
“0”書き込みで停止するまでクリアされません。
リセット時“0”に初期化されます。
強制停止とソフト起動を同時に行わないでください(BUSY=0,STRT=1)。
[bit 14] INT (INTerrupt)
データ表示ビットです。変換データがADCRに書き込まれるとセットされます。
INTE(bit13)が“1”のときに,本ビットがセットされると割込み要求が発生
します。また,DMA転送の起動を選択している場合は,DMAが起動されます。
“1”
書込みは意味を持ちません。
クリアは“0”書き込みとDMACからのクリア信号で行われます。
リセット時“0”に初期化されます。
リードモディファイライト系命令のリードでは,“1”が読み出されます。
<注意事項>
本ビットの“0”書込みクリアはA/D停止中に行ってください。
[bit 13] INTE (INTerrupt Enable)
本ビットは,変換終了による割込みの許可/不許可を指定します。
0:割込みの禁止
1:割込みの許可
割込み要求発生でDMA転送を起動するときは,本ビットをセットしてくださ
い。リセット時“0”に初期化されます。
263
第12章 A/Dコンバータ(逐次比較型)
[bit 12] PAUS (A/D converter PAUSe)
A/D変換動作が一時的に停止した場合にセットされます。
A/D変換結果を格納するレジスタが一つのため,連続で変換した場合に,変
換結果をDMAで転送しなければ前データが壊れてしまいます。
これを保護するためデータレジスタの内容をDMAで転送しなければ,次の変
換データが格納されないようになっています。この間A/D変換動作は停止しま
す。
DMAで転送を終了するとA/Dは変換を再開します。
このビットはDMAを使用したときのみ有効です。
詳細については,
「12.5 変換データ保護機能」を参照してください。
リセット時“0”に初期化されます。
[bit 11,10] STS1,STS0 (STart Source select)
リセット時“00”に初期化されます。
本ビットの設定によりA/D起動要因を選択します。
表 12.3-1 A/Dコンバータ起動要因の選択
STS1
0
0
1
1
STS0
0
1
0
1
機 能
ソフト起動
外部端子トリガでの起動とソフト起動
タイマでの起動とソフト起動
外部端子トリガ,タイマでの起動とソフト起動
起動が兼用になっているモードでは,最初に来た要因で起動します。
起動要因は,書換えと同時に変わりますので,A/D動作中に書換えるときは
注意してください。
<注意事項>
外部端子トリガは立下がりエッジを検出します。
外部トリガ入力レベルが“L”のときに,本ビットを書き換えて外部トリガ起動にすると,A/D
が起動する場合があります。
タイマ選択時は,リロードタイマのチャネル2が選択されます。リロードタイマの出力レベル
が“H”のときに,本ビットを書き換えてタイマ起動にすると,A/Dが起動する場合があります。
[bit 9] STRT (STaRT)
本ビットに“1”を書き込むことによりA/Dを起動します。
再起動をかけるときは,再び書き込んでください。
停止モード時は,動作機能上再起動はかかりません。
リセット時“0”に初期化されます。
強制停止とソフト起動を同時に行わないでください(BUSY=0,STRT=1)。
リードモディファイライト系の命令では“0”が読み込まれます。
[bit 8]
試験用ビットです。書き込み時は“0”を書き込んでください。
264
12.3 A/Dコンバータのレジスタ
[bit 7,6] MD1,MD0 (A/D converter MoDe set)
動作モードを選択します。
表 12.3-2 A/Dコンバータ動作モードの選択
MD1
0
0
1
1
MD0
0
1
0
1
動作モード
単発モード,動作中の再起動は全て可能
単発モード,動作中の再起動不可能
連続モード,動作中の再起動不可能
停止モード,動作中の再起動不可能
単発モード:ANS2∼ANS0の設定チャネルからANE2∼ANE0の設定チャネルまで
A/D変換を連続して行い1回変換が終了したら停止します。
連続モード:ANS2∼ANS0の設定チャネルからANE2∼ANE0の設定チャネルまで
A/D変換を繰り返し行います。
停止モード:ANS2∼ANS0の設定チャネルからANE2∼ANE0の設定チャネルまで
1チャネルごとにA/D変換を行い一時停止します。
変換再開は起動要因発生によって行われます。
リセット時“00”に初期化されます。
<注意事項>
連続モード,停止モードでA/D変換を起動すると,BUSYビットで停止するまで変換動作を続け
ます。
停止は,BUSYビットに“0”を書き込むことにより行われます。
単発,連続,停止の各モードの再起動の不可能は,タイマ, 外部トリガ,ソフトすべての起動
に適用されます。
[bit 5,4,3] ANS2,ANS1,ANS0 (ANalog Start channel set)
本ビット群よりA/D変換の開始チャネルを設定します。
A/Dコンバータを起動すると,このビットで選択されたチャネルからA/D変換
を始めます。
表 12.3-3 A/D変換開始チャネルの設定
ANS2
0
0
0
0
1
1
1
1
ANS1
0
0
1
1
0
0
1
1
ANS0
0
1
0
1
0
1
0
1
開始チャネル
AN0
AN1
AN2
AN3
設定禁止
設定禁止
設定禁止
設定禁止
リード時,本ビット群は,A/D変換中は変換チャネルが読まれます。
停止モードで停止中は前の変換チャネルが読まれます。
リセット時“000”に初期化されます。
265
第12章 A/Dコンバータ(逐次比較型)
[bit 2,1,0] ANE2,ANE1,ANE0 (ANalog End channel set)
本ビット群よりA/D変換の終了チャネルを設定します。
表 12.3-4 A/D変換終了チャネルの設定
ANE2
0
0
0
0
1
1
1
1
ANE1
0
0
1
1
0
0
1
1
ANE0
0
1
0
1
0
1
0
1
終了チャネル
AN0
AN1
AN2
AN3
設定禁止
設定禁止
設定禁止
設定禁止
ANS2∼ANS0と同じチャネルを設定すると1ch変換になります(シングル変換)。
連続モード,停止モードを設定している場合は,本ビット群で設定されたチャ
ネルの変換が終わるとANS2∼ANS0で設定された開始チャネルに戻ります。
設定チャネルは,ANS≦ANEとしてください。
リセット時“000”に初期化されます。
【例】
チャネル設定 ANS =1ch,ANE = 3chで単発モードのときの動作
変換チャネル 1ch →2ch →3ch
266
12.3 A/Dコンバータのレジスタ
12.3.2
データレジスタ(ADCR)
データレジスタ(ADCR)
データレジスタ(ADCR)は,変換格納レジスタで,変換結果であるディジタル値が
格納されます。
■ データレジスタ(ADCR)
データレジスタ(ADCR)のレジスタ構成は以下のとおりです。
本レジスタの値は,一回の変換終了時ごとに更新されます。通常は最終変換値
が格納されています。
このレジスタは,リセット時は不定です。
上位の15∼10ビットは,リード時は“0”です。
変換データ保護機能が有ります。詳しくは,
「12.5 変換データ保護機能」を参
照してください。
267
第12章 A/Dコンバータ(逐次比較型)
12.4
A/Dコンバータの動作
A/Dコンバータの動作
A/D変換器は,逐次変換方式で動作し,10ビットの分解能をもっています。
このA/D変換器は,変換結果格納用のレジスタが一つ(16ビット)しかないため,
1回の変換終了とともに変換データレジスタ(ADCR)が更新されてしまいます。連続
で変換をする際は,DMA転送を使用することが可能です。
■ A/Dコンバータの動作モード
A/Dコンバータには単発モード,連続モード,停止モードがあります。
○
単発モード
単発モードは,ADCSのANSビットとANEビットで設定されたアナログ入力を順
に変換していき,ANEビットで設定された終了チャネルまで変換が終わると,A/D
は動作を停止します。
開始チャネルと終了チャネルが同じとき(ANS=ANE)は,1ch変換動作になり
ます。
例:
ANS=000,ANE=011のとき
開始 → AN0 → AN1 → AN2 → AN3 → 終了
ANS=010,ANE=010のとき
開始 → AN2 → 終了
○
連続モード
連続モードは,ADCSのANSビットとANEビットで設定されたアナログ入力を順
に変換していき,ANEビットで設定された終了チャネルまで変換が終わると,ANS
のアナログ入力に戻りA/D変換動作を続けます。
開始チャネルと終了チャネルが同じとき(ANS=ANE)は,1ch変換を続けます。
例:
ANS=000,ANE=011のとき
開始 → AN0 → AN1 → AN2 → AN3 → AN0 …→ 繰り返し
ANS=010,ANE=010のとき
開始 → AN2 → AN2 → AN2 …→ 繰り返し
連続モードで変換させると,BUSYビットに“0”を書き込むまで変換を繰り
返し続けます。BUSYビットに“0”を書き込むと強制動作停止になります。
強制動作停止を行うと変換中のものは途中で止まってしまうため,注意して
ください。
強制動作停止した場合は,変換レジスタは変換完了した前データが格納され
ています。
268
12.4 A/Dコンバータの動作
○
停止モード
停止モードは,ADCSのANSビットとANEビットで設定されたアナログ入力を順
に変換していきますが,1ch変換するたびに変換動作を一時停止します。一時
停止を解除するには,もう一度起動をかけることにより行われます。
ANEビットで設定された終了チャネルまで変換が終わると,ANSのアナログ入
力に戻りA/D変換動作を続けます。
開始チャネルと終了チャネルが同じとき(ANS=ANE)は,1chを変換します。
例:
ANS=000,ANE=011のとき
開始 → AN0 → 停止 → 起動 → AN1 → 停止 → 起動 → AN2 → 停止 →
起動 → AN3 → 停止 → 起動 → AN0 …→ 繰り返し
ANS=010,ANE=010のとき
開始 → AN2 → 停止 → 起動 → AN2 → 停止 → 起動 → AN2 …→ 繰り
返し
このときの起動要因は,STS1,0ビットで設定されたものだけです。
このモードを使用することにより変換開始の同期をかけることが可能です。
269
第12章 A/Dコンバータ(逐次比較型)
12.5
変換データ保護機能
A/Dコンバータは,変換データ保護機能を持ち,DMACを使って連続変換と複数のデー
タを確保できることを特長としています。
■ 変換データ保護機能
変換データレジスタは一つですので,連続でA/D変換をすると1回の変換終了と
共に変換データが格納されて前データが失われます。これを保護するために,本A/D
コンバータは変換が終了しても前データがDMACを使ってメモリへ転送されていな
いと,変換データはレジスタに格納されずA/Dは一時停止する機能を持っています。
一時停止の解除は,DMA転送によってメモリへ転送された後に行われます。
前データが転送されていれば一時停止することなくA/Dは連続して変換します。
<注意事項>
この機能はADCSのINT,INTEビットに関係しています。
データ保護機能は,割込み許可(INTE=1)状態でしか動作しないようになっています。
割込み禁止(INTE=0)の場合は本機能は動作せず,連続でA/D変換を行った場合は,次々に変
換データはレジスタに格納されて旧データは失われます。
また,割込み許可(INTE=1)状態でDMA転送を使わない場合は,INTビットはクリアされないた
め,データ保護機能が働き,A/Dは変換を一時停止状態にします。この場合は,割込みシーケン
スでINTビットをクリアすると停止状態が解除されます。
DMA動作中で,A/Dが一時停止をしているときに割込みを禁止にするとA/Dが動作し,転送する
前に変換データレジスタの内容が換わることがあります。
また,一時停止中に再起動をかけると待機データが壊れます。
図 12.5-1にDMA転送使用時のデータ保護機能フローを示します。
図 12.5-1 DMA転送使用時のデータ保護機能フロー
270
12.6 A/Dコンバータ使用上の注意
12.6
A/Dコンバータ使用上の注意
A/Dコンバータ使用上の注意
A/Dコンバータを使用するときの注意点を示します。
■ A/Dコンバータ使用上の注意
○
外部トリガまたは内部タイマを使って起動する場合
A/Dコンバータを外部トリガまたは内部タイマを使って起動する場合,ADCS
レジスタのA/D起動要因ビット(STS1,0)で設定しますが,このときに外部ト
リガおよび内部タイマの入力値はインアクティブ側にしてください。アクティ
ブ側にしておくと誤動作します。
STS1,0設定時は,ATGX=「1」入力,リロードタイマ(チャネル2)=「0」出力の
状態にしてください。
■ A/Dコンバータのその他注意事項
外部インピーダンスが指定値以上に高くなると,規定のサンプリング時間内に
アナログ入力値をサンプリングできなくなり,正しい変換結果が得られません。
271
第12章 A/Dコンバータ(逐次比較型)
272
第13章
13章 UART
この章では,UARTの概要,レジスタの構成/機能,およびUARTの動作について説
明します。
13.1 UARTの概要
13.2 UARTのブロックダイヤグラム
13.3 UARTのレジスタ
13.4 UARTの動作とクロック選択
13.5 UARTの割込み発生とフラグのセットタイミング
13.6 UARTの使用上の注意と応用例
13.7 ボーレートとU-TIMERのリロード値の設定例
273
第13章 UART
13.1
UARTの概要
UARTの概要
UARTは,非同期(調歩同期)通信,またはCLK同期通信を行うためのシリアルI/O
ポートです。
MB91107/MB91108は,UARTを3チャネル内蔵します。
■ UARTの特長
l
l
l
l
全二重ダブルバッファ
非同期(調歩同期)
,CLK同期通信が可能
マルチプロセッサモードのサポート
完全プログラマブルボーレート
-
l
l
l
l
274
内蔵タイマにより任意のボーレートを設定可能(「8.3 U-TIMRの動作」
参照)
外部クロックによる自由なボーレートの設定が可能
エラー検出機能(パリティ,フレーミング,オーバラン)
転送信号はNRZ符号
割込みによるDMA転送の起動が可能
13.2 UARTのブロックダイヤグラム
13.2
UARTのブロックダイヤグラム
UARTのブロックダイヤグラム
図 13.2-1にUARTのブロックダイヤグラムを示します。
■ UARTのブロックダイヤグラム
図 13.2-1 UARTのブロックダイヤグラム
275
第13章 UART
13.3
UARTのレジスタ
UARTのレジスタ
図 13.3-1にUARTのレジスタ一覧を示します。
■ UARTのレジスタ一覧
図 13.3-1 UARTのレジスタ一覧
276
13.3 UARTのレジスタ
13.3.1
シリアルモードレジスタ(SMR)
シリアルモードレジスタ(SMR)
シリアルモードレジスタ(SMR)は,UARTの動作モードを指定します。
動作モードの設定は動作停止中に行います。動作中に,このレジスタへの書込み
は行わないでください。
■ シリアルモードレジスタ(SMR)
シリアルモードレジスタ(SMR)のレジスタ構成は以下のとおりです。
[bit 7,6] MD1,MD0 (MoDe select)
UARTの動作モードを選択します。
表 13.3-1 UARTの動作モード選択
モード
0
1
2
−
MD1
0
0
1
1
MD0
0
1
0
1
動作モード
非同期(調歩同期)ノーマルモード〔初期値〕
非同期(調歩同期)マルチプロセッサモード
CLK同期モード
設定禁止
<注意事項>
モード1のCLK非同期モード(マルチプロセッサ)とは,1台のホストCPUに数台のスレーブCPU
が接続される使用法です。本リソースでは,受信データのデータ形式を判別できません。したがっ
て,マルチプロセッサモードのマスタのみをサポートします。
また,パリティチェック機能は使用できませんので,SCRレジスタのPENは“0”に設定してく
ださい。
[bit 5,4] (reserved)
常に“1”を書き込んでください。
[bit 3] CS0 (Clock Select)
UARTの動作クロックを選択します。
0:内蔵タイマ(U-TIMER) 〔初期値〕
1:外部クロック
[bit 2] (reserved)
常に“0”を書き込んでください。
[bit 1] SCKE (SCLK Enable)
CLK同期モード(モード2)で通信を行う場合,SC端子をクロック入力端子に
するか,クロック出力端子として使うかを指定します。
CLK非同期モード時または外部クロックモード時では“0”に設定してくださ
い。
0:クロック入力端子として機能します。 〔初期値〕
1:クロック出力端子として機能します。
277
第13章 UART
<注意事項>
クロック入力端子として使うには,CS0ビットを“1”にして外部クロックを選択しておく必要
があります。
[bit 0] SOE (Serial Output Enable)
汎用I/Oポート端子と兼用されている外部端子(SO)を,シリアル出力端子
として使うか,I/Oポート端子として使うかを指定します。
0:汎用I/Oポート端子として機能します。 〔初期値〕
1:シリアルデータ出力端子(SO)として機能します。
278
13.3 UARTのレジスタ
13.3.2
シリアルコントロールレジスタ(SCR)
シリアルコントロールレジスタ(SCR)
シリアルコントロールレジスタ(SCR)は,シリアル通信を行う場合の転送プロトコ
ルを制御します。
■ シリアルコントロールレジスタ(SCR)
シリアルコントロールレジスタ(SCR)のレジスタ構成は以下のとおりです。
[bit 7] PEN(Parity Enable)
シリアル通信において,パリティを付加してデータ通信を行うかどうかを指
定します。
0:パリティなし 〔初期値〕
1:パリティあり
<注意事項>
パリティを付加できるのは,非同期(調歩同期)通信モードのノーマルモード(モード0)の
みです。マルチプロセッサモード(モード1)およびCLK同期通信(モード2)では,パリティを
付加することはできません。
[bit 6] P(Parity)
パリティを付加してデータ通信を行うとき,偶数/奇数パリティを指定しま
す。
0:偶数パリティ 〔初期値〕
1:奇数パリティ
[bit 5] SBL(Stop Bit Length)
非同期(調歩同期)通信を行うときのフレームエンドマークである,ストッ
プビットのビット長を指定します。
0:1ストップビット 〔初期値〕
1:2ストップビット
[bit 4] CL(Character Length)
送受信する1フレームのデータ長を指定します。
0:7ビットデータ 〔初期値〕
1:8ビットデータ
<注意事項>
7ビットデータを扱えるのは,非同期(調歩同期)通信のうちのノーマルモード(モード0)の
みです。マルチプロセッサモード(モード1)およびCLK同期通信(モード2)では,8ビットデー
タとしてください。
279
第13章 UART
[bit 3] A/D(Address/Data)
非同期(調歩同期)通信のマルチプロセッサモード(モード1)において,
送受信するフレームのデータ形式を指定します。
0:データフレーム 〔初期値〕
1:アドレスフレーム
[bit 2] REC(Receiver Error Clear)
“0”を書き込むことで,SSRレジスタのエラーフラグ(PE, ORE, FRE)をク
リアします。
“1”書込みは無効であり,読出し値は常に“1”になります。
[bit 1] RXE(Receiver Enable)
UARTの受信動作を制御します。
0:受信動作を禁止します。 〔初期値〕
1:受信動作を許可します。
<注意事項>
受信中(受信シフトレジスタにデータが入力されているとき)に受信動作を禁止した場合には,
そのフレームの受信を完了し受信データバッファSIDRレジスタに受信データをストアしたところ
で受信動作を停止します。
[bit 0] TXE(Transmitter Enable)
UARTの送信動作を制御します。
0:送信動作を禁止します。 〔初期値〕
1:送信動作を許可します。
<注意事項>
送信中(送信レジスタからデータが出力されているとき)に送信動作を禁止した場合は,送信
データバッファSODRレジスタにデータがなくなった後に送信動作を停止します。
280
13.3 UARTのレジスタ
13.3.3
シリアルインプットデータレジスタ(SIDR)/
シリアルインプットデータレジスタ(SIDR)/シリ
(SIDR)/シリ
アルアウトプットデータレジスタ(SODR)
アルアウトプットデータレジスタ(SODR)
シリアルインプットデータレジスタ(SIDR)/シリアルアウトプットデータレジスタ
(SODR)は,受信/送信用のデータバッファレジスタです。
データ長が7ビットの場合,bit7(D7)は無効データとなります。SODRレジスタ
への書込みは,SSRレジスタのTDREが“1”のときに書込んでください。
■ シリアルインプットデータレジスタ(SIDR)/シリアルアウトプットデータレジスタ(SODR)
シリアルインプットデータレジスタ(SIDR)/シリアルアウトプットデータレジス
タ(SODR)のレジスタ構成は以下のとおりです。
<注意事項>
このアドレスへのライトはSODRレジスタへの書き込みを,リードはSIDRレジスタの読み出しを
意味します。
281
第13章 UART
13.3.4
シリアルステータスレジスタ(SSR)
シリアルステータスレジスタ(SSR)
シリアルステータスレジスタ(SSR)は,UARTの動作状態を表すフラグで構成されて
います。
■ シリアルステータスレジスタ(SSR)
シリアルステータスレジスタ(SSR)のレジスタ構成は以下のとおりです。
[bit 7] PE(Parity Error)
受信時にパリティエラーが発生したときにセットされる,割込み要求フラグ
です。
一度セットされたフラグをクリアするには,SCRレジスタのRECビット(bit 10)
に“0”を書込みます。
本ビットがセットされた場合には,SIDRのデータは無効データとなります。
0:パリティエラーなし 〔初期値〕
1:パリティエラーが発生
[bit 6] ORE(Over Run Error)
受信時にオーバランエラーが発生したときにセットされる,割込み要求フラ
グです。
一度セットされたフラグをクリアするには,SCRレジスタのRECビットに“0”
を書込みます。
本ビットがセットされた場合には,SIDRのデータは無効データとなります。
0:オーバランエラーなし 〔初期値〕
1:オーバランエラー発生
[bit 5] FRE(FRaming Error)
受信時にフレーミングエラーが発生したときにセットされる,割込み要求フ
ラグです。
一度セットされたフラグをクリアするには,SCRレジスタのRECビットに“0”
を書込みます。
本ビットがセットされた場合には,SIDRのデータは無効データとなります。
0:フレーミングエラーなし 〔初期値〕
1:フレーミングエラー発生
[bit 4] RDRF(Receiver Data Register Full)
SIDRレジスタに受信データがあることを示す,割込み要求フラグです。
SIDRレジスタに受信データがロードされるとセットされ,SIDRレジスタを読
出すと自動的にクリアされます。
0:受信データなし 〔初期値〕
1:受信データあり
282
13.3 UARTのレジスタ
[bit 3] TDRE(Transmitter Data Register Empty)
SODRに送信データを書き込めることを示す,割込み要求フラグです。
SODRレジスタに送信データを書込むとクリアされます。書き込んだデータが
送信用シフタにロードされて転送が開始されると再びセットされ,次の送信
データを書き込めることを表します。
0:送信データの書き込み禁止
1:送信データの書き込み許可 〔初期値〕
[bit 2] (reserved)
[bit 1] RIE(Receiver Interrupt Enable)
受信割込みを制御します。
0:割込みを禁止します。 〔初期値〕
1:割込みを許可します。
<注意事項>
受信割込み要因は,PE,ORE,FREによるエラー発生のほかに,RDRFによる正常受信があります。
[bit 0] TIE(Transmitter Interrupt Enable)
送信割込みを制御します。
0:割込みを禁止します。 〔初期値〕
1:割込みを許可します。
<注意事項>
送信割込み要因は,TDREによる送信要求があります。
283
第13章 UART
13.4
UARTの動作とクロック選択
UARTの動作とクロック選択
UARTは,以下の三つの動作モードを持ち,SMRレジスタ,SCRレジスタに値を設定
することによりモードを切換えることができます。
・非同期(調歩同期)ノーマルモード
・非同期(調歩同期)マルチプロセッサモード
・CLK同期モード
■ UARTの動作モード
表 13.4-1にUARTの動作モードを示します。
非同期(調歩同期)モードでのストップビット長については送信動作のみ指定
が可能です。受信動作については常に1ビット長となります。下記モード以外では
動作しませんので,設定しないでください。
表 13.4-1 UARTの動作モード
モード パリティ データ長
動 作 モ ー ド
ストップビット長
0
有/無
7
非同期(調歩同期)ノーマルモード
1ビットまたは
有/無
8
2ビット
1
無
8+1
非同期(調歩同期)マルチプロセッサモード
2
無
8
CLK同期モード
無
<注意事項>
CLK同期モードで,送信終了(RDRFビットが“1”となる)時点と同時にSODRへの書込みを行わ
ないようにしてください。SODRへの書込みタイミングの検出には,受信検出フラグRDRFを使用し
てください。同期モードでは送信と同時に受信されますので,送信終了をRDRFフラグで検出する
ことができます。
CLK同期モード使用時には,RDRFのポーリングか,受信割込みを使って送信を行ってください。
■ UARTのクロック選択
○
内部タイマ
CS0を“0”に設定してU-TIMERを選択した場合は,U-TIMERに設定したリロー
ド値でボーレートが決まります。このときのボーレートの算出式は,次のとお
りです。
l
l
非同期(調歩同期) :Φ
/(16×β)
CLK同期 /
:Φ
β
Φ:周辺系マシンクロック周波数
β:U-TIMERで設定した周期 (2n+2または2n+3,nはリロード値)
非同期(調歩同期)モードのボーレートは,設定したボーレートの−1%∼
+1%までの範囲で転送が可能です。
○
外部クロック
CS0を“1”に設定して外部クロックを選択した場合のボーレートは,外部ク
ロックの周波数をfとすると次のようになります。
l
l
非同期(調歩同期) :f/16
CLK同期
:f
ただし,fは最大[周辺系動作クロック周波数]/8までです。
(例:周辺25MHz動作時でfは最大3.125MHz)
284
13.4 UARTの動作とクロック選択
13.4.1
非同期(調歩同期)モード
非同期(調歩同期)モード
UARTは,NRZ(Non Return to Zero)形式のデータのみを扱います。
転送データは,必ずスタートビット(
“L”レベルデータ)より始まり,LSBファー
ストで指定されたデータビット長の転送が行われ,ストップビット(
“H”レベルデー
タ)で終了します。外部クロックを選択している場合は,常にクロックを入力して
ください。
■ 非同期(調歩同期)モードの転送データフォーマット
図 13.4-1に非同期(調歩同期)モード転送データフォーマットを示します。
ノーマルモード(モード0)では,データ長を7ビットまたは8ビットに設定する
ことができますが,マルチプロセッサモード(モード1)では8ビットでなければ
なりません。また,マルチプロセッサモードではパリティを付加することはでき
ません。そのかわり,A/Dビットが必ず付加されます。
図 13.4-1 非同期(調歩同期)モードの転送データフォーマット(モード0,1)
○
受信動作
SCRレジスタのRXEビット(bit 1)が“1”ならば,常に受信動作が行われてい
ます。
受信ラインにスタートビットが現れると,SCRレジスタで決められたデータ
フォーマットに従い,1フレームデータの受信が行われます。1フレームの受信
が終わってからエラーが発生した場合には,エラーフラグのセットが行われた
後,RDRFフラグ(SSRレジスタ bit 4)がセットされます。このとき同じSSRレジ
スタのRIEビット(bit 1)が“1”にセットされていれば,CPUに対して受信割込
みが発生します。SSRレジスタの各フラグを調べ,正常受信ならSIDRレジスタ
をリードし,エラーが発生していれば必要な処理を行うようにしてください。
RDRFフラグは,SIDRレジスタをリードするとクリアされます。
○
送信動作
SSRレジスタのTDREフラグ(bit 11)が“1”のとき,SODRレジスタに送信デー
タを書き込みます。ここで,SCRレジスタのTXEビット(bit 0)が“1”なら送信
が行われます。
SODRレジスタにセットしたデータが,送信用シフトレジスタにロードされて
送信が開始されると,TDREフラグが再びセットされ,次の送信データをセット
できるようになります。このとき同じSSRレジスタのTIEビット(bit 0)が“1”
にセットされていれば,CPUに対して送信割込みが発生して,SODRレジスタに
送信データをセットするように要求します。
TDREフラグは,SODRレジスタにデータをセットすると,いったんクリアされ
ます。
285
第13章 UART
13.4.2
CLK同期モード
CLK同期モード
UARTは,NRZ(Non Return to Zero)形式のデータのみを扱います。図 13.4-2に,
送受信クロックとデータとの関係を示します。
■ CLK同期モードの転送データフォーマット
図 13.4-2 CLK同期モードの転送データフォーマット(モード2)
CS0を“0”に設定し,UTIMERからの出力を選択している場合は,データを送信
するとデータ受信用同期クロックが自動的に生成されます。
外部クロックを選択している場合は,送信側UARTの送信用データバッファSODR
レジスタにデータがあること(TDREフラグが“0”
)を確かめた後,正確に1バイト
分のクロックを供給する必要があります。また,送信開始前と終了後は,必ずマー
クレベルにしてください。
データ長は8ビットのみとなり,パリティを付加することはできません。また,
スタート/ストップビットがないのでオーバランエラー以外のエラー検出は行わ
れません。
○
初期化
CLK同期モードを使用する場合の,各制御レジスタの設定値を示します。
l
SMRレジスタ
-
MD1,MD0:10
-
CS:クロック入力を指定
-
SCKE:内部タイマの場合1,外部クロックの場合0
-
SOE:送信を行う場合1,受信のみの場合0
l
SCRレジスタ
-
PEN:0
-
P,SBL,A/D:これらのビットは意味を持ちません
-
CL:1
-
REC:0(初期化するため)
-
RXE,TXE:少なくとも,どちらか一方を1
l
286
SSRレジスタ
-
RIE:割込みを使用する場合1,割込みを使用しない場合0
-
TIE:0
13.4 UARTの動作とクロック選択
○
通信開始
SODRレジスタへの書き込みによって通信を開始します。受信のみの場合でも,
必ず仮の送信データをSODRレジスタに書き込む必要があります。
○
通信終了
SSRレジスタのRDRFフラグが“1”に変化したことにより確認できます。SSR
レジスタのOREビットによって,通信が正常に行われたかを判断してください。
287
第13章 UART
13.5
UARTの割込み発生とフラグのセットタイミング
UARTの割込み発生とフラグのセットタイミング
UARTには,五つのフラグと二つの割込み要因があります。
五つのフラグは,PE/ORE/FRE/RDRF/TDREです。
二つの割込み要因は,受信用のものと送信用のものです。
■ 割込み発生とフラグ
PEはパリティエラー,OREはオーバランエラー,FREはフレーミングエラーのこ
とで,受信時エラーが発生したときにセットされ,SCRレジスタのRECに“0”を書
込むとクリアされます。
RDRFは,受信データがSIDRレジスタにロードされるとセットされ,SIDRレジス
タを読出すことでクリアされます。ただし,モード1ではパリティ検出機能,モー
ド2ではパリティ検出機能とフレーミングエラー検出機能はありません。
TDREは,SODRレジスタが空になり書込み可能な状態になるとセットされ,SODR
レジスタへ書込むとクリアされます。
受信時は,PE/ORE/FRE/RDRFにより割込みを要求します。
送信時は,TDREにより割込みを要求します。
■ モード0の受信動作時割込みフラグのセットタイミング
PE,ORE,FRE,RDRFは,受信転送が終了し,最後のストップビットを検出するとき
にフラグがセットされ,CPUへの割込み要求が発生します。PE,ORE,FREがアクティ
ブ時は,SIDRのデータは無効データとなります。
図 13.5-1 ORE,FRE,RDRFのセットタイミング(モード0)
■ モード1の受信動作時割込みフラグのセットタイミング
ORE,FRE,RDRFは,受信転送が終了し,最後のストップビットを検出するときに
フラグがセットされ,CPUへの割込み要求が発生します。また,受信可能なデータ
長は8ビットのため,最後の9ビット目のアドレス/データを示すデータは無効デー
タとなります。ORE,FREがアクティブ時は,SIDRのデータは無効データとなります。
図 13.5-2 ORE,FRE,RDRFのセットタイミング(モード1)
288
13.5 UARTの割込み発生とフラグのセットタイミング
■ モード2の受信動作時割込みフラグのセットタイミング
ORE,RDRFは,受信転送が終了し,最後のデータ(D7)を検出するときにフラグが
セットされ,CPUへの割込み要求が発生します。OREがアクティブ時は,SIDRのデー
タは無効データとなります。
図 13.5-3 ORE,RDRFのセットタイミング(モード2)
■ モード0,モード1,モード2の送信動作時割込みフラグのセットタイミング
TDREは,SODRレジスタへ書込まれるとクリアされ,内部のシフトレジスタに転
送されます。その後,次のデータ書込みが可能な状態になるとセットされ,CPUへ
の割込み要求が発生します。
送信動作中にSCRレジスタのTXEに“0”(モード2のときはRXEも含む)を書込む
と,SSRレジスタのTDREが“1”となり,送信用のシフタが停止してからUARTの送
信動作を禁止します。送信動作中にSCRレジスタのTXEに“0”
(モード2のときはRXE
も含む)を書込んだ後,送信が停止する前にSODRレジスタへ書込まれたデータは
送信されます。
図 13.5-4 TDREのセットタイミング(モード0,1)
図 13.5-5 TDREのセットタイミング(モード2)
289
第13章 UART
13.6
UARTの使用上の注意と応用例
UARTの使用上の注意と応用例
UARTの使用上の注意と応用例を示します。
■ UARTの使用上の注意
通信モードの設定は,動作停止中に行ってください。モード設定時に送受信し
たデータは保証されません。
■ UARTの応用例
モード1は,1台のホストCPUに数台のスレーブCPUが接続されるような場合に使
用されます(図 13.6-1参照)
。
このリソースでは,ホスト側の通信インタフェースのみサポートします。
図 13.6-1 モード1使用時のシステム構築例
通信は,ホストCPUがアドレスデータを転送することによって始まります。
アドレスデータとは,SCRレジスタのA/Dビットが“1”のときのデータで,それ
により通信先となるスレーブCPUが選択され,ホストCPUとの通信が可能になりま
す。
通常データは,SCRレジスタのA/Dビットが“0”のときのデータです。
図 13.6-2にそのフローチャートを示します。
このモードにおいては,パリティチェック機能は使用できませんので,SCRレジ
スタのPENビットは“0”としてください。
290
13.6 UARTの使用上の注意と応用例
図 13.6-2 モード1使用時の通信フローチャート
291
第13章 UART
13.7
ボーレートとU-TIMER
ボーレートとU-TIMERのリロード値の設定例
U-TIMERのリロード値の設定例
表 13.7-1,表 13.7-2に,ボーレートとU-TIMERのリロード値の設定例を示します。
表中の周波数は,周辺系マシンクロック周波数を表します。また,UCC1は,Uタイ
マ制御レジスタ(UTIMC)のUCC1ビットに設定する値です。
表中の“−”部は,誤差が±1%を超えてしまうため使用できないことを示します。
■ ボーレートとU-TIMERのリロード値の設定例
○
非同期(調歩同期)モード
表 13.7-1 非同期(調歩同期)モード時のボーレートとU-TIMERのリロード値
ボーレート
1200
2400
4800
9600
19200
38400
57600
10400
31250
62500
○
μs
833.33
416.67
208.33
104.17
52.08
26.04
17.36
25MHz
650(UCC1=0)
324(UCC1=1)
162(UCC1=0)
80(UCC1=1)
39(UCC1=1)
19(UCC1=1)
12(UCC1=1)
20MHz
520(UCC1=0)
259(UCC1=1)
129(UCC1=0)
64(UCC1=0)
31(UCC1=1)
−
−
12.5MHz
324(UCC1=1)
162(UCC1=0)
80(UCC1=1)
39(UCC1=1)
19(UCC1=1)
12(UCC1=1)
−
10MHz
259(UCC1=1)
129(UCC1=0)
64(UCC1=0)
31(UCC1=1)
−
−
−
96.15
32.00
16.00
74(UCC1=0)
24(UCC1=0)
11(UCC1=1)
59(UCC1=0)
19(UCC1=0)
9(UCC1=0)
36(UCC1=1)
11(UCC1=1)
−
29(UCC1=0)
9(UCC1=0)
4(UCC1=0)
CLK同期モード
表 13.7-2 CLK同期モード時のボーレートとU-TIMERのリロード値
ボーレート
μs
25MHz
250K
4.00
49(UCC1=0)
500K
2.00
24(UCC1=0)
1M
1.00
11(UCC1=1)
*:±1%以上の誤差あり
292
20MHz
39(UCC1=0)
19(UCC1=0)
9(UCC1=0)
12.5MHz
24(UCC1=0)
11(UCC1=1)
5(UCC1=0)*
10MHz
19(UCC1=0)
9(UCC1=0)
4(UCC1=0)
第14章
14章 DMAコントローラ
DMAコントローラ(
コントローラ(DMAC)
DMAC)
この章では,DMAコントローラの概要,レジスタの構成/機能,およびDMAコント
ローラの動作について説明します。
14.1 DMAコントローラの概要
14.2 DMAコントローラのブロックダイヤグラム
14.3 DMAコントローラのレジスタ
14.4 DMAコントローラの転送モード
14.5 転送受付け信号出力と転送終了信号出力
14.6 DMAコントローラに関する注意事項
14.7 DMAコントローラのタイミング図
293
第14章 DMAコントローラ(DMAC)
14.1
DMAコントローラの概要
DMAコントローラの概要
DMAコントローラは,MB91107/MB91108に内蔵されているモジュールで,DMA(Direct
Memory Access)転送を行います。
■ DMAコントローラの特長
l
l
l
l
l
l
l
294
8チャネル
モード:シングル/ブロック転送,バースト転送,連続転送の3種
アドレス全領域とアドレス全領域の間での転送
最大65536回の転送回数
転送終了時割込み機能
転送アドレス増加/減少をソフトウェアで選択可能
外部転送要求入力端子,外部転送要求受付け出力端子,外部転送終了出
力端子,各3本
14.2 DMAコントローラのブロックダイヤグラム
14.2
DMAコントローラのブロックダイヤグラム
DMAコントローラのブロックダイヤグラム
図 14.2-1にDMAコントローラのブロックダイヤグラムを示します。
■ DMAコントローラのブロックダイヤグラム
図 14.2-1 DMAコントローラのブロックダイヤグラム
295
第14章 DMAコントローラ(DMAC)
14.3
DMAコントローラのレジスタ
DMAコントローラのレジスタ
図 14.3-1にDMAコントローラのレジスタ一覧を示します。
■ DMAコントローラのレジスタ一覧
図 14.3-1 DMAコントローラのレジスタ一覧
296
14.3 DMAコントローラのレジスタ
14.3.1
DMACパラメータディスクリプタポインタ
DMACパラメータディスクリプタポインタ(DPDP)
パラメータディスクリプタポインタ(DPDP)
DMACパラメータディスクリプタポインタ(DPDP)は,DMACの内部レジスタで,RAM上
にあるDMAC用ディスクリプタテーブルの先頭アドレスを格納します。
DPDPのビット6∼ビット0は常に0で,設定可能なディスクリプタの先頭アドレスは
128byte単位となります。
■ DMACパラメータディスクリプタポインタ(DPDP)
DMACパラメータディスクリプタポインタ(DPDP)のレジスタ構成は以下のとおり
です。
リセット時は初期化されません。
リード/ライト可能です。
本レジスタへのアクセスには,32bit転送命令を使用してください。
各チャネルの動作モードを指定するディスクリプタは,DPDPで指定される表
14.3-1に示すアドレスに置かれます。
表 14.3-1 各チャネルのディスクリプタアドレス
DMA
チャネル
0
1
2
3
ディスクリプタ
アドレス
DPDP + 0 (00H)
DPDP + 12 (0CH)
DPDP + 24 (18H)
DPDP + 36 (24H)
DMA
チャネル
4
5
6
7
ディスクリプタ
アドレス
DPDP + 48 (30H)
DPDP + 60 (3CH)
DPDP + 72 (48H)
DPDP + 84 (54H)
297
第14章 DMAコントローラ(DMAC)
14.3.2
DMACコントロールステータスレジスタ
DMACコントロールステータスレジスタ(DACSR)
コントロールステータスレジスタ(DACSR)
DMACコントロールステータスレジスタ(DACSR)は,DMACの内部レジスタで,DMAC全
体に関する制御,ステータスを示します。
■ DMACコントロールステータスレジスタ(DACSR)
DMACコントロールステータスレジスタ(DACSR)のレジスタ構成は以下のとおりで
す。
[bit 31,27,23,19,15,11,7,3] DERn (DMA ERror)
チャネルnのDMA要求発生元にエラーが発生して,DMA転送処理を中断したこ
とを示します。
0:エラーはありません。
1:エラーが発生しました。
エラーが発生するか否かは,DMA要求発生元(リソース)により異なります。
エラーが発生しないDMA要求発生元もあります。
リセット時は“0”に初期化されます。
リード/ライト可能ですが,本ビットへの書込みは,
“0”のみ有効です。
リードモディファイライト系の命令による読出し時は,“1”が読出されます。
[bit 30,26,22,18,14,10,6,2] DEDn (DMA EnD)
チャネルnのDMA転送が終了したことを示します。
0:DMA転送動作は終了していません。
1:カウンタが0になった,あるいは転送要求発生元でエラーが発生したこと
を示します。
リセット時は“0”に初期化されます。
リード/ライト可能ですが,本ビットへの書込みは,
“0”のみ有効です。
リードモディファイライト系の命令による読出し時は,“1”が読出されます。
298
14.3 DMAコントローラのレジスタ
[bit 29,25,21,17,13,9,5,1] DIEn (DMA Interrupt Enable)
チャネルnのDMA転送終了時(DEDnが1になったとき)に割込み要求を発生さ
せるか否かを指定します。
0:割込み禁止
1:割込み許可
リセット時は“0”に初期化されます。
リード/ライト可能です。
[bit 28,24,20,16,12,8,4,0] DOEn (DMA Operation Enable)
チャネルnのDMA転送動作を許可します。
0:動作禁止
1:動作許可
該当するチャネルのDMA転送が完了すると(DEDnが1になると),DOEnは0にク
リアされます。
転送の完了によるクリア動作と,バスからの書込みによるセット動作が同時
に行われた場合は,セット動作が優先されます。
リセット時は“0”に初期化されます。
リード/ライト可能です。
299
第14章 DMAコントローラ(DMAC)
14.3.3
DMAC端子コントロールレジスタ
DMAC端子コントロールレジスタ(DATCR)
端子コントロールレジスタ(DATCR)
DMAC端子コントロールレジスタ(DATCR)は,DMACの内部レジスタで,外部転送要
求入力端子,外部転送要求受付け出力端子,および外部転送終了出力端子に関する
制御を行います。
■ DMAC端子コントロールレジスタ(DATCR)
DMAC端子コントロールレジスタ(DATCR)のレジスタ構成は以下のとおりです。
[bit 21,20,13,12,5,4] LSn1,LSn0:転送要求入力検出レベル選択
該当する外部転送要求入力端子DREQnの検出レベルを表 14.3-2のように選択
します。
表 14.3-2 転送要求入力検出レベルの選択
LSn1
0
0
1
1
LSn0
0
1
0
1
動作制御機能
立上がりエッジ検出
立下がりエッジ検出
“H”レベル検出
“L”レベル検出
リセット時は不定です。
リード/ライト可能です。
連続転送モードを使用するときは,“H”レベル検出または“L”レベル検出
を設定してください。
[bit 19,11,3] AKSEn
[bit 18,10,2] AKDEn
転送要求受付け出力信号を発生するタイミングを指定します。また,転送要
求受付け出力信号の端子からの出力機能の許可/禁止も指定します。
300
14.3 DMAコントローラのレジスタ
表 14.3-3 転送要求受付け出力の指定
AKSEn
0
0
1
1
AKDEn
0
1
0
1
動作制御機能
転送受付け出力禁止
転送受付け出力許可,転送先データアクセス時に出力
転送受付け出力許可,転送元データアクセス時に出力
転送受付け出力許可,
転送元および転送先データアクセス時に出力
リセット時は“00”に初期化されます。
リード/ライト可能です。
[bit 17,9,1] EPSEn
[bit 16,8,0] EPDEn
転送終了出力信号を発生するタイミングを指定します。また,転送終了出力
信号の端子からの出力機能の許可/禁止も指定します。
表 14.3-4 転送終了出力の指定
EPSEn
0
0
1
1
EPDEn
0
1
0
1
動作制御機能
転送終了出力禁止
転送終了出力許可,転送先データアクセス時に出力
転送終了出力許可,転送元データアクセス時に出力
転送終了出力許可,
転送元および転送先データアクセス時に出力
リセット時は“00”に初期化されます。
リード/ライト可能です。
301
第14章 DMAコントローラ(DMAC)
14.3.4
RAM上のディスクリプタ内レジスタ
RAM上のディスクリプタ内レジスタ
DMA転送における,チャネルごとの設定情報を格納します。
チャネル当たり12バイトの大きさを持ち,DPDPにより示されるアドレスのメモリ
が使用されます。
チャネルごとのディスクリプタの先頭アドレスは,「表 14.3-1 各チャネルの
ディスクリプタアドレス」を参照してください。
■ ディスクリプタ先頭ワード
ディスクリプタ先頭ワードのレジスタ構成は以下のとおりです。
[bit 31-16] DMACT:転送回数指定
DMA転送を行う回数を指定します。0000Hを設定すると,65536回の転送を行
います。
1回転送りを行うたびに,値が1ずつ減少します。
[bit 15-12] 空き
[bit 11-8] BLK:ブロックサイズ指定
シングル/ブロック転送モードにおける,転送ブロックサイズを指定します。
0を設定すると,ブロックサイズとしては16が指定されたことになります。
シングル転送を行うときは,1を指定してください。
[bit 7,6] SCS1,SCS0:転送元アドレス更新モード指定
[bit 5,4] DCS1,DCS0:転送先アドレス更新モード指定
転送元および転送先アドレスの1転送ごとの更新モードを指定します。
表 14.3-5の組み合わせの指定が可能です。
302
14.3 DMAコントローラのレジスタ
表 14.3-5 転送元/転送先アドレス更新モードの指定
SCS1
0
0
0
0
0
0
1
1
1
SCS0 DCS1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
その他
DCS0
0
1
0
0
1
0
0
1
0
転送元アドレス 転送先アドレス
アドレス増加
アドレス増加
アドレス増加
アドレス減少
アドレス増加
アドレス固定
アドレス減少
アドレス増加
アドレス減少
アドレス減少
アドレス減少
アドレス固定
アドレス固定
アドレス増加
アドレス固定
アドレス減少
アドレス固定
アドレス固定
設定禁止
アドレスを更新するモードにおける増減の単位は,転送データサイズの指定
に応じて,以下のようになります。
表 14.3-6 アドレス増減の単位
転送データサイズ
byte (8bit)
halfword (16bit)
word (32bit)
アドレス増減の単位
±1byte
±2byte
±4byte
[bit 3,2] WS1,WS0
転送データサイズを指定します。
表 14.3-7 転送データサイズの指定
WS1
0
0
1
1
WS0
0
1
0
1
転送データサイズ
Byte
Halfword
Word
設定禁止
[bit 1,0] MOD1,MOD0:転送モード指定
転送モードを指定します。
表 14.3-8 転送モードの指定
MOD1
0
0
1
1
MOD0
0
1
0
1
動作モード
シングル/ブロックモード
バーストモード
連続転送モード
設定禁止
連続転送モードが使用できるのは,ch.0∼2だけです。
303
第14章 DMAコントローラ(DMAC)
■ ディスクリプタ第2ワード
転送元アドレスを格納します。
アドレス更新モードの指定(SCS1,SCS0ビット)に基づき,転送動作に応じて値
が更新されます。
転送データサイズがhalfword長のときは2の倍数のアドレスを,word長のときは
4の倍数のアドレスを指定してください。
■ ディスクリプタ第3ワード
転送先アドレスを格納します。
アドレス更新モードの指定(DCS1,DCS0ビット)に基づき,転送動作に応じて値
が更新されます。
転送データサイズがhalfword長のときは2の倍数のアドレスを,word長のときは
4の倍数のアドレスを指定してください。
304
14.4 DMAコントローラの転送モード
14.4
DMAコントローラの転送モード
DMAコントローラの転送モード
DMAコントローラには,次の3個の転送モードがあり,動作手順は以下のとおりです。
・シングル/ブロック転送モード
・連続転送モード
・バースト転送モード
■ シングル/ブロック転送モード
1)
初期化ルーチンでディスクリプタの設定を行います。
2)
プログラムにより,DMA転送要求発生元の初期化を行います。内部周辺回
路を転送要求発生元とする場合は,割込み要求を許可にします。同時に,
割込みコントローラのICRは割込み禁止にします。
3)
プログラムにより,所望するDACSRのDOEnビットに1を書き込みます。
−−− この時点でDMAに関する設定は完了 −−−
4) DMACがDMA転送要求入力を検出すると,CPUにバス権確保を要求します。
5)
CPUがバス権を移譲すると,DMACはディスクリプタにある3ワードの情報
をバスを経由してアクセスします。
6)
DMACTの減算を行い,ディスクリプタ内の情報に従った転送をBLKで指定
された回数,またはDMACTが0になるまで行います。データの転送中,転
送要求受付出力信号を出力します(外部転送要求入力使用の場合)。減算
したDMACTが0になったとき,データ転送中に転送終了出力信号を出力し
ます。
7)
転送要求入力をクリアします。
8)
SADRまたはDADRの増加減を行い,DMACTの値とともにディスクリプタに書
き戻します。
9) CPUにバス権を返します。
10) DMACTの値が0であった場合,DACSRのDEDnを1にするとともに割込み許可
になっていればCPUに割込みをかけます。
1回あたりの最低所要サイクル数は,ディスクリプタを内蔵RAMに格納し,デー
タを外部バス間で転送,データ長がバイトの場合は次のようになります。
l
l
l
転送元/転送先アドレスともに固定のとき:(6+5×BLK)サイクル
転送元/転送先アドレスの一方のみ固定のとき:(7+5×BLK)サイクル
転送元/転送先アドレスの両方が増加または減少のとき:(8+5×BLK)サ
イクル
■ 連続転送モード
1)
初期化ルーチンでディスクリプタの設定を行います。
2)
プログラムにより,DMA転送要求発生元の初期化を行います。外部転送要
求入力端子を,HまたはLレベル検出に設定します。
3)
プログラムにより,所望するDACSRのDOEnビットに1を書き込みます。
−−− この時点でDMAに関する設定は完了 −−−
4) DMACがDMA転送要求入力を検出すると,CPUにバス権確保を要求します。
5)
CPUがバス権を移譲すると,DMACはディスクリプタにある3ワードの情報
をバスを経由してアクセスします。
305
第14章 DMAコントローラ(DMAC)
6)
DMACTの減算を行い,ディスクリプタ内の情報に従った転送を1回行いま
す。データの転送中,転送要求受付出力信号を出力します。減算したDMACT
が0になったとき,データ転送中に転送終了出力信号を出力します。
7)
DMACTの値が0ではなく,周辺からのDMA要求がまだ存在すれば,ふたたび
6)から繰り返します。
8)
DMACTの値が0であるか,周辺からのDMA要求が解除されたならば,SADRま
たはDADRに増加減を行い,DMACTの値とともにディスクリプタに書き戻し
ます。
9) CPUにバス権を返します。
10) カウンタの値が0であった場合,DACSRのDEDnを1にするとともに割込み許
可になっていればCPUに割込みをかけます。
1回あたりの最低所要サイクル数は,ディスクリプタを内蔵RAMに格納し,デー
タを外部バス間で転送,データ長がバイトの場合は次のようになります。
l
l
l
転送元/転送先アドレスともに固定のとき:(6+5×n)サイクル
転送元/転送先アドレスの一方のみ固定のとき:(7+5×n)サイクル
転送元/転送先アドレスの両方が増加または減少のとき:(8+5×n)サイ
クル
■ バースト転送モード
1)
初期化ルーチンでディスクリプタの設定を行います。
2)
プログラムにより,DMA転送要求発生もとの初期化を行います。内部周辺
回路を転送要求元とする場合は,割込み要求を許可にします。同時に,
割込みコントローラのICRは割込み禁止にします。
3)
プログラムにより,所望するDACSRのDOEnビットに1を書き込みます。
−−− この時点でDMAに関する設定は完了 −−−
4) DMACがDMA転送要求入力を検出すると,CPUにバス権確保を要求します。
5)
CPUがバス権を移譲すると,DMACはディスクリプタにある3ワードの情報
をバスを経由してアクセスします。
6) DMACTの減算を行いながら,ディスクリプタ内の情報に従った転送をDMACT
で設定した回数だけ行います。データの転送中,転送要求受付出力信号
を出力します(外部転送要求入力使用の場合)。減算したDMACTが0になっ
たとき,データ転送中に転送終了出力信号を出力します。
7)
SADRまたはDADRの増加減を行い,DMACTの値とともにディスクリプタに書
き戻します。
8) CPUにバス権を返します。
9)
DACSRのDEDnを1にするとともに割込み許可になっていればCPUに割込みを
かけます。
1回あたりの最低所要サイクル数は,ディスクリプタを内蔵RAMに格納し,デー
タを外部バス間で転送,データ長がバイトの場合は次のようになります。
l
l
l
306
転送元/転送先アドレスともに固定のとき:(6+5×n)サイクル
転送元/転送先アドレスの一方のみ固定のとき:(7+5×n)サイクル
転送元/転送先アドレスの両方が増加または減少のとき:(8+5×n)サイ
クル
14.4 DMAコントローラの転送モード
■ リクエストのセンスと各転送モードの組み合わせ
リクエストのセンスと各転送モードの組み合わせについて図 14.4-1に示します。
リクエストセンス
転送モード
エッジセンス
ステップ動作モード
転送の単位
シングル転送
ブロック転送
レベルセンス
バースト転送モード
連続転送モード
図 14.4-1 リクエストのセンスと各転送モードの組み合わせ
■ DREQ信号のセンスモード
○
エッジセンス
ステップ転送(シングル/ブロック)
,およびバースト転送にて使用可能です。
DMA要求を,(アクティブ)エッジにより検出します。
DMAC転送中は外部DREQの入力はマスクされておりますので,次転送のための
アクティブエッジは直前のDMA転送における転送先DACKのアクティブエッジ以
降である必要があります。ステップ転送時には注意してください。
○
レベルセンス
ステップ転送(シングル/ブロック),および連続,バースト転送にて使用可
能です。
DMA要求を,(アクティブ)レベルにより検出します。
<注意事項>
レベルセンス,エッジセンスともに,DACK信号の電気的特性は, min 2tCYC[ns]です。
エッジセンスの場合は,DACKのネゲート期間も同様に min 2tCYC[ns]必要です。
307
第14章 DMAコントローラ(DMAC)
14.4.1
ステップ転送(
ステップ転送(シングル/
シングル/ブロック転送)
ブロック転送)
1回の転送要求にて,1回のDMA転送を行います(DREQ入力はエッジ,レベルの選択
可)
。
1DMA転送ごとに,CPUにバス権が譲渡されます(サイクルスチール的に転送が行わ
れます)
。
1転送単位は,ブロックサイズにて決定され,ブロックサイズを大きくすれはDMAC
の転送レートは向上しますが,CPUの実行スループットは低下します。
■ ステップ転送(CLKダブラ使用,内部ディスクリプタ,ブロックサイズ=1)
CLK
DREQ
-DACK
ディスクリプタアクセス
Internal
D-Abus
CPUの
external
DATA bus 使用可能期間
Abus
転送元
転送先
転送元
転送先
図 14.4-2 ステップ転送(CLKダブラ使用,内部ディスクリプタ,ブロックサイズ=1)
308
14.4 DMAコントローラの転送モード
14.4.2
連続転送
転送要求[DREQ]がアクティブレベルを保持し続けている間,DMA転送を行います
(DREQ入力はレベルセンスのみ)
。
転送回数レジスタが“0”になるか,もしくはDREQ入力のネゲートにより,CPUへバ
ス権を譲渡します。
■ 連続転送(CLKダブラ使用,内部ディスクリプタ)
CLK
ディスクリプタアドレス
DREQ
-DACK
Internal
CPUの
D-Abus
DATA bus使用可能期間
external
Abus
転送元
転送先
転送元
転送先
図 14.4-3 連続転送(CLKダブラ使用,内部ディスクリプタ)
309
第14章 DMAコントローラ(DMAC)
14.4.3
バースト転送
1回の転送要求[DREQ]で設定された転送回数分のDMA転送を全て行います(DREQ入
力はレベルセンス,もしくはエッジセンスの選択可)
。
転送回数レジスタが“0”になることにより,DMA転送を終了し,CPUへバス権を譲渡
します。
■ バースト転送(CLKダブラ使用,内部ディスクリプタ)
CLK
DREQ
ディスクリプタ
アクセス
- DACK
Internal
D-Abus
external
Abus
CPUの
DATA bus使用可能期間
転送元
転送先
転送元
転送先
-EOP
DMACT=1
DMACT=0
図 14.4-4 バースト転送(CLKダブラ使用,内部ディスクリプタ)
310
14.4 DMAコントローラの転送モード
14.4.4
DREQセンスモードによる違い
DREQセンスモードによる違い(
センスモードによる違い(エッジモード時の
注意事項)
注意事項)
エッジセンスモード時には,DMAC要求フラグのクリアポイント以降に,次のDREQ
エッジを入力する必要があります。それ以前に入力されたエッジは無視されますの
で,注意してください。
また,エッジにを認識させるためにネゲート期間として min 2tCYC[ns]必要です。
転送先アクセス時のDACK↓エッジ以降に次のDREQを入力してください。
■ DREQセンスモードによる違い(エッジモード時の注意事項)
CLK
DREQ
-DACK
DREQ(NG)
アクティブエッジが早い
DREQ(NG)
min 2tCYC[ns]が
満足されていない。
DREQ(NG)
ディスティネーションライト
内部D-Abus
ディスクリプタライト
external
A bus
転送元
転送先
A
B
A:要求フラグのクリアポイント
エッジセンス時の次DREQのセンス開始ポイント
連続転送モード時の次DREQのセンス開始ポイント
B:レベルセンスモードで,シングル,ブロック転
送時における次DREQのセンス開始ポイント
DREQからDMA起動までのタイミングは,ほぼ最速の場合を記載しております。
図 14.4-5 DREQセンスモードによる違い(エッジモード時の注意事項)
311
第14章 DMAコントローラ(DMAC)
14.4.5
DREQセンスモードによる違い
DREQセンスモードによる違い(
センスモードによる違い(レベルモード時の
注意事項)
注意事項)
レベルセンスモード時には,DMAC転送のオーバランに注意が必要です。
転送先アクセス時のDACK↑エッジまでにDREQをネゲートしてください。
■ DREQセンスモードによる違い(レベルモード時の注意事項)
最大1CYC
CLK
DREQ
DREQ
-DACK
1回の転送要求に対して,
2回転送してしまいます。
DREQ(NG)
ディスティネーションライト
ソースリード
内部D-A
ディスクリプタライト
ディスクリプタリード
external
転送元
A bus
転送先
A
B
A: 要求フラグのクリアポイント
エッジセンス時の次DREQのセンス開始ポイント
連続転送モード時の次DREQのセンス開始ポイント
B:レベルセンスモードで,シングル,ブロック転
送時における次DREQのセンス開始ポイント
DREQからDMA起動までのタイミングは,ほぼ最速の場合を記載しております。
図 14.4-6 DREQセンスモードによる違い(レベルモード時の注意事項)
312
14.5 転送受付け信号出力と転送終了信号出力
14.5
転送受付け信号出力と転送終了信号出力
チャネル0,1,2には,転送要求受付け信号と転送終了信号を端子から出力する機能
があります。
転送受付け信号出力は,端子からの転送要求入力を受理してDMA転送を行うとき,
DMACは転送要求受付け信号を出力します。
転送終了信号出力は,端子からの転送要求入力を受理してDMA転送を行い,DMACT
カウンタが0となって転送を終了するとき,DMACは転送終了信号を出力します。
■ 転送受付け信号出力
転送要求受付け信号は,アクティブローのパルスで,転送データのアクセスに
伴って出力されます。転送元アクセスに同期して出力するのか,転送先アクセス
に同期し て 出力 する の か,ある いは その 両 方で出 力 する のか を,DATCR 中 の
AKSn,AKDnビットにて指定可能です。
■ 転送終了信号出力
転送終了信号は,アクティブローのパルスで,最終転送データのアクセスに伴っ
て出力されます。転送元アクセスに同期して出力するのか,転送先アクセスに同
期して出力するのか,あるいはその両方で出力するのかを,DATCR中のEPSn,EPDn
ビットにて指定可能です。
313
第14章 DMAコントローラ(DMAC)
14.6
DMAコントローラに関する注意事項
DMAコントローラに関する注意事項
DMAコントローラを使用する上での注意事項について説明します。
■ チャネル間優先順位
本DMACは,一つのチャネルのDMA転送要求によりいったん起動されると,他のチャ
ネルのDMA転送要求が発生しても,実行中の転送が終了するまで他のチャネルの転
送要求は受理されず,保留されます。
DMACがDMA転送要求を検出するときに,複数のチャネルの要求が同時にアクティ
ブになっていた場合,受理するチャネルは以下の優先度にしたがって決まります。
(強) ch 0 > ch 1 > ch 2 > ch 3 > ch 4 > ch 5 > ch 6 > ch 7 (弱)
複数のチャネルの要求が同時に発生した場合,一つのチャネルのDMA転送を実行
した後,次のチャネルのDMA転送を行う前に,いったんCPUにバスの制御が戻りま
す。
■ リソースの割込み要求をDMA転送要求として使用する場合
DMAC転送を望む場合,該当する割込みの割込みコントローラ内の割込みレベル
は,割込み禁止にする必要があります。
また,逆に,割込み発生を望む場合,DMAC内のDMAC動作許可ビットを禁止状態
にし,割込みレベルを適切な値にする必要があります。
■ 優先度の高い割込み発生時のDMA転送抑止
MB91107/MB91108には,DMA転送要求の発生によるDMA転送の実行中に,より優先
度の高い割込み要求が発生した場合,DMA転送を停止させる機能があります。
○
HRCLレジスタ
割込みコントローラのHRCL(Hold Request Cancel Level register)を操作す
ることにより,割込み要求の発生時に,DMA転送動作を停止させることができ
ます。
周辺回路からの割込み要求が発生したときに,その割込み要求に設定された
割込みレベルが,HRCLに設定された割込みレベルよりも強い値であった場合,
DMACのDMA転送動作が抑止されます。DMA転送動作の実行中であれば,転送動作
の切れ目で動作を中止し,バス権をCPUに開放します。DMA転送要求の発生待ち
の状態であれば,DMA転送要求が発生しても保留する状態になります。
リセット後,HRCLは最も弱いレベル(31)に設定されるので,すべての割込み
要求に対してDMA転送動作は抑止されることになります。割込み要求が発生し
ていてもDMA転送を動作させたいときは,HRCLレジスタを必要な値に設定して
ください。
○
PDRRレジスタ
HRCLレジスタの指定によるDMA転送動作の抑止機能は,より高い優先度の割
込み要求がアクティブなときのみ有効です。そのため,たとえば割込みハンド
ラのプログラム中で割込み要求をクリアすると,その時点でHRCLレジスタによ
るDMA転送の抑止は解除され,CPUがバス権を失ってしまう場合があります。
他の割込み要求を受理できるように割込み要求はクリアして,かつDMA転送
動作は抑止するために,クロック制御部のPDRRレジスタが用意されています。
割込みハンドラ中でPDRRに0以外の値を書き込むと,DMA転送動作は抑止さ
れます。DMA転送動作の抑止を解除したいときは,PDRRに0を書き込んでくださ
い。
314
14.6 DMAコントローラに関する注意事項
■ スリープモード中のDMA転送動作
CPUがスリープ状態に入っているときに,内蔵リソースからDMA転送要求が発生
すると,DMACが動作してDMA転送動作を行います。
このとき,内蔵リソースからのDMA転送要求信号は割込み要求信号を兼用してい
るため,CPUのスリープ状態は解除されます。割込みレベルの操作で割込み禁止状
態に設定してあっても,スリープ状態は解除となります。DMA転送動作が終了する
と,CPUはスリープ状態に遷移したときの次の命令から実行を再開します。
DMA転送動作を行ってもCPUにはスリープ状態を継続させたいような場合は,ス
リープから復帰したときに,条件を確認して必要に応じて再度スリープ状態に遷
移するようにプログラムを作成してください。
sleep_mode:
ldi
#50h, r0
; SLEPビットをセット
ldi
#481h, r1
; STCRのアドレス
stb
r0,
@r0
; スリープモードへ遷移
;
; スリープから起きる要因をチェック。
; ここでは,外部割込み要因がスリープを解除する要因であるとする。
ldi
#アドレス,
r0
ldi
#比較データ r1
ldub
@r1,
r0
and
r0,
r1
beq
sleep_mode
特定のアドレスの内容が,固有の値であった場合だけ,次の処理へと進みます。
他の要因,たとえばUARTの受信によるDMA転送動作に付随してCPUのスリープ状態
が解除されたような場合は,再度スリープ状態へ遷移します。
■ DMAC内部レジスタへの転送動作
転送先アドレスとして,DMACの内部レジスタは指定しないでください。
315
第14章 DMAコントローラ(DMAC)
■ DMAの転送要求要因
DMAの転送要求要因の一覧を表 14.6-1に示します。
表 14.6-1 DMAの転送要求要因
チャネル番号
0
1
2
3
4
5
6
7
○
転送要求要因
外部転送要求入力端子DREQ0
外部転送要求入力端子DREQ1
外部転送要求入力端子DREQ2
PWM ch0
UART ch0受信
UART ch0送信
16bitリロードタイマ ch0
A/Dコンバータ
DMAC転送要求元のエラーステータス
DACSRのDERnビットでDMA要求発生元にエラーが発生したことを通知できるの
は,ch4だけです。
UART ch0の受信割込みをDMA転送要求として使用しているときに,次のエラー
が発生するとDER4ビットが“1”となります。
l
l
l
○
パリティエラー
オーバランエラー
フレーミングエラー
DREQ2
外部転送要求入力端子DREQ2を使用するときは,端子が兼用しているCS1Lの
機能を禁止に設定してください(DSCRレジスタのC1LEビットを“0”に設定して
ください)。
CS1Lの出力が有効になっていると,CS1L信号の変化が原因となり誤動作しま
す。
316
14.7 DMAコントローラのタイミング図
14.7
DMAコントローラのタイミング図
DMAコントローラのタイミング図
DMAコントローラの動作タイミング図を示します。
・ディスクリプタアクセス部のタイミング図
・データ転送部のタイミング図
・連続転送モードでの転送停止タイミング図
・転送の終了動作タイミング図
■ タイミング図で使用している記号の説明
表 14.7-1 タイミング図中の記号説明
記号
#0
#0H
#0L
#1
#1H
#1L
#2
#2H
#2L
#1/2
#1/2H
#1/2L
S
SH
SL
D
DH
DL
記号の意味
ディスクリプタNo.0
ディスクリプタNo.0のbit31-16
ディスクリプタNo.0のbit15-0
ディスクリプタNo.1
ディスクリプタNo.1のbit31-16
ディスクリプタNo.1のbit15-0
ディスクリプタNo.2
ディスクリプタNo.2 のbit31-16
ディスクリプタNo.2 のbit15-0
ディスクリプタNo.1またはNo.2 (SCS1,0,DCS1,0により決まる)
ディスクリプタNo.1またはNo.2 のbit31-16
ディスクリプタNo.1またはNo.2 のbit15-0
転送元
転送元のbit31-16
転送元のbit15-0
転送先
転送先のbit31-16
転送先のbit15-0
317
第14章 DMAコントローラ(DMAC)
14.7.1
ディスクリプタアクセス部のタイミング図
ディスクリプタアクセス部のタイミング図を示します。
■ ディスクリプタアクセス部
318
○
要求端子入力モード:レベル,ディスクリプタアドレス:外部
○
要求端子入力モード:レベル,ディスクリプタアドレス:内部
○
要求端子入力モード:エッジ,ディスクリプタアドレス:外部
14.7 DMAコントローラのタイミング図
○
要求端子入力モード:エッジ,ディスクリプタアドレス:内部
<注意事項>
DREQnの発生からDMAC動作開始までの部分については,最も早い条件の場合を示してあります。
実際の動作では,CPUの命令フェッチやデータアクセスによるバスの競合があるため,DMACの
動作開始が遅れる場合があります。
319
第14章 DMAコントローラ(DMAC)
14.7.2
データ転送部のタイミング図
データ転送部のタイミング図を示します。
■ データ転送部,16/8bitデータ
320
○
転送元領域:外部,転送先領域:外部
○
転送元領域:外部,転送先領域:内部RAM
○
転送元領域:内部RAM,転送先領域:外部
14.7 DMAコントローラのタイミング図
14.7.3
連続転送モードでの転送停止タイミング図
連続転送モードでの転送停止タイミング図を示します。
■ 連続転送モードでの転送停止(いずれか一方のアドレスは固定である場合)
,16/8bitデータ
○
転送元領域:外部,転送先領域:外部
○
転送元領域:外部,転送先領域:内部RAM
○
転送元領域:内部RAM,転送先領域:外部
321
第14章 DMAコントローラ(DMAC)
■ 連続転送モードでの転送停止(両方のアドレスが変化する場合)
,16/8bitデータ
322
○
転送元領域:外部,転送先領域:外部
○
転送元領域:外部,転送先領域:内部RAM
○
転送元領域:内部RAM,転送先領域:外部
14.7 DMAコントローラのタイミング図
14.7.4
転送の終了動作タイミング図
転送の終了動作タイミング図を示します。
■ 転送の終了動作(いずれか一方のアドレスは固定である場合)
○
バス幅:16bit,データ長:8/16bit
○
バス幅:16bit,データ長:32bit
323
第14章 DMAコントローラ(DMAC)
■ 転送の終了動作(両方のアドレスが変化する場合)
324
○
バス幅:16bit,データ長:8/16bit
○
バス幅:16bit,データ長:32bit
第15章
15章 ビットサーチモジュール
この章では,ビットサーチモジュールの概要,レジスタの構成/機能,およびビッ
トサーチモジュールの動作,退避/復帰処理について説明します。
15.1 ビットサーチモジュールの概要
15.2 ビットサーチモジュールのレジスタ
15.3 ビットサーチモジュールの動作と退避/復帰処理
325
第15章 ビットサーチモジュール
15.1
ビットサーチモジュールの概要
ビットサーチモジュールは,入力レジスタに書き込まれたデータに対して,0,1
または変化点を検索し,検出したビット位置を返します。
■ ビットサーチモジュールのブロックダイヤグラム
図 15.1-1にビットサーチモジュールのブロックダイヤグラムを示します。
図 15.1-1 ビットサーチモジュールのブロックダイヤグラム
■ ビットサーチモジュールのレジスタ一覧
図 15.1-2にビットサーチモジュールのレジスタ一覧を示します。
図 15.1-2 ビットサーチモジュールのレジスタ一覧
326
15.2 ビットサーチモジュールのレジスタ
15.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタには,以下の四つがあります。
・0検出用データレジスタ(BSD0)
・1検出用データレジスタ(BSD1)
・変化点検出用データレジスタ(BSDC)
・検出結果レジスタ(BSRR)
■ 0検出用データレジスタ(BSD0)
書き込んだ値に対して,0検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には,32ビット長のデータ転送命令を使用してください(8ビット,
16ビット長のデータ転送命令は,使わないでください)。
■ 1検出用データレジスタ(BSD1)
データ転送には,32ビット長のデータ転送命令を使用してください(8ビット,
16ビット長のデータ転送命令は,使わないでください)。
○
書き込み時
書き込んだ値に対して,1を検出します。
○
読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込
みハンドラなどがビットサーチモジュールを使用する場合に,元の状態を退避
復帰するときに使用します。0検出,変化点検出,データレジスタにデータを
書き込んだ場合でも,1検出用データレジスタのみ操作することで退避復帰で
きます。
リセットによる初期値は不定です。
327
第15章 ビットサーチモジュール
■ 変化点検出用データレジスタ(BSDC)
書き込んだ値に対して,変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には,32ビット長のデータ転送命令を使用してください(8ビット,
16ビット長のデータ転送命令は,使わないでください)。
■ 検出結果レジスタ(BSRR)
0検出,1検出,または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは,最後に書き込んだデータレジスタによって,
決定されます。
328
15.3 ビットサーチモジュールの動作と退避/復帰処理
15.3
ビットサーチモジュールの動作と退避/復帰処理
ビットサーチモジュールの0検出,1検出,および変化点検出の動作と退避/復帰
処理について説明します。
■ 0検出
0検出用データレジスタに書き込まれたデータを,MSBからLSBへスキャンし,最
初の“0”を検出した位置を返します。
検出結果は,検出結果レジスタを読み出すことで得られます。
検出した位置と,返す数値の関係は,表 15.3-1のとおりです。
“0”が存在しないとき(すなわちFFFFFFFFHという数値のとき),32という値を
サーチ結果として返します。
【実行例】
書き込みデータ
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
(FFFFF000
(F849E0AA
(8002AAAA
(FFFFFFFF
)
H)
H)
H)
H
⇒
⇒
⇒
⇒
読み出し値(10進)
20
5
1
32
■ 1検出
1検出用データレジスタに書き込まれたデータを,MSBからLSBへスキャンし,最
初の“1”を検出した位置を返します。
検出結果は,検出結果レジスタを読み出すことで得られます。
検出した位置と返す値との関係は,表 15.3-1のとおりです。
“1”が存在しないとき(すなわち00000000Hという数値のとき),32という値を
サーチ結果として返します。
【実行例】
書き込みデータ
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
(20000000
(01234567
(0003FFFF
(00000001
(00000000
)
H)
H)
H)
H)
H
⇒
⇒
⇒
⇒
⇒
読み出し値(10進)
2
7
14
31
32
329
第15章 ビットサーチモジュール
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを,bit30からLSBへスキャ
ンし,MSBの値と比較します。最初にMSBと異なる値を検出した位置を返します。
検出結果は,検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は,表 15.3-1の示すとおりです。
変化点が存在しないときは,32を返します。
変化点検出では,結果として0を返すことはありません。
【実行例】
書き込みデータ
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
(20000000
(01234567
(0003FFFF
(00000001
(00000000
(FFFFF000
(F849E0AA
(8002AAAA
(FFFFFFFF
)
H)
H)
H)
H)
H)
H)
H)
H)
H
⇒
⇒
⇒
⇒
⇒
⇒
⇒
⇒
⇒
読み出し値(10進)
2
7
14
31
32
20
5
1
32
表 15.3-1 ビット位置と返す値(10進)
検出した
検出した
検出した
検出した
返す値
返す値
返す値
返す値
ビット位置
ビット位置
ビット位置
ビット位置
31
0
23
8
15
16
7
24
30
1
22
9
14
17
6
25
29
2
21
10
13
18
5
26
28
3
20
11
12
19
4
27
27
4
19
12
11
20
3
28
26
5
18
13
10
21
2
29
25
6
17
14
9
22
1
30
24
7
16
15
8
23
0
31
存在しない
32
■ 退避/復帰の処理
割込みハンドラ中で,ビットサーチモジュールを使う場合のように,ビットサー
チモジュールの内部状態を退避/復帰させる必要がある場合は,以下の手順に従っ
てください。
1) 1検出用データレジスタを読出し,この内容を保存する(退避)
2)
ビッチサーチモジュールを使用
3) 1)で退避したデータを1検出用データレジスタに書き込む(復帰)
以上の操作により,次に検出結果レジスタを読み出したときに得られる値は,1)
以前に,ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが0検出用または変化点検出用であっても,
上記手順で正しく元に戻ります。
330
付録
付録として,I/Oマップ,割込みベクタ,CPUステートでの端子状態,リトルエン
ディアン領域を利用するときの注意事項,および命令一覧について,本文に記載で
きなかった細かいところや,プログラミングするときに参照することがらを記載し
ています。
A I/Oマップ
B 割込みベクタ
C 各CPUステートにおける端子状態
D リトルエンディアン領域を利用する際の注意事項
E 命令一覧
331
付録
A
I/Oマップ
I/Oマップ
MB91107/MB91108に内蔵された周辺機能の各レジスタは,付表 A-1に示すアドレス
が割当てられています。
■ I/Oマップの読み方
レジスタ
アドレス
000000
+0
PDR3
[R/W]
XXXXXXXX
H
+1
PDR2
[R/W]
XXXXXXXX
+2
+3
−
−
内部リソース
ポートデータレジスタ
リード/ライトアトリビュート
リセット後のレジスタ初期値
レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+1番地,---)
最左のレジスタ番地(ワードでアクセスした際は,1コラム目のレジスタがデータのMSB側となる
<注意事項>
レジスタのビット値は,以下のように初期値を表します。
・ “1”
:初期値“1”
・ “0”
:初期値“0”
・ “X”
:初期値“X”
・ “-”
:その位置に物理的にレジスタがない
332
A I/Oマップ
■ I/Oマップ
付表 A-1 I/Oマップ(続く)
アドレス
000000
H
000004
H
000008
H
00000C
H
000010
H
000014
H
000018
H
00001C
H
000020
H
000024
H
000028
H
00002C
H
000030
H
000034
H
000038
H
00003C
H
000040
H
000044
H
000048
H
00004C
H
000050
H
000054
H
000058
H
レジスタ
+1
PDR2
[R/W]
XXXXXXXX
PDR6
[R/W]
XXXXXXXX
PDRA
[R/W]
-XXXXXX-
+0
−
PDR7
[R/W]
-------X
PDRB
[R/W]
XXXXXXXX
+2
+3
−
−
−
−
内部リソース
ポートデータレジスタ
PDR8
[R/W]
--X--XXX
−
−
−
−
PDRG
[R/W]
XXXXXXXX
PDRH
[R/W]
XXXXXXX0
−
−
SSR
[R/W]
00001-00
SSR
[R/W]
00001-00
SSR
[R/W]
00001-00
TMRLR
XXXXXXXX
SIDR/SODR[R/W]
XXXXXXXX
SIDR/SODR[R/W]
XXXXXXXX
SIDR/SODR[R/W]
XXXXXXXX
[W]
XXXXXXXX
−
TMRLR
[W]
XXXXXXXX XXXXXXXX
−
ADCR
[R]
------XX XXXXXXXX
TMRLR
[W]
XXXXXXXX XXXXXXXX
−
PDRE
[R/W]
XXXXXXXX
PDRI
[R/W]
------XX
PDRF
[R/W]
XXXXXXXX
−
−
SCR
[R/W]
00000100
SCR
[R/W]
00000100
SCR
[R/W]
00000100
TMR
XXXXXXXX
TMCSR
----0000
TMR
XXXXXXXX
TMCSR
----0000
ADCS
00000000
TMR
XXXXXXXX
TMCSR
----0000
SMR
[R/W]
00--0-00
SMR
[R/W]
00--0-00
SMR
[R/W]
00--0-00
[R]
XXXXXXXX
[R/W]
00000000
[R]
XXXXXXXX
[R/W]
00000000
[R/W]
00000000
[R]
XXXXXXXX
[R/W]
00000000
−
−
−
−
−
−
ASR6
[W]
11111111 11111111
ASR7
[W]
11111111 11111111
CS67
[R/W]
−
----0011
AMR6
[W]
00000000 00000000
AMR7
[W]
00000000 00000000
Reserved
UART 0
UART 1
UART 2
Reload Timer 0
Reload Timer 1
A/D converter
(逐次比較型)
Reload Timer 2
Reserved
Reserved
外部バスインタフェー
ス
−
333
付録
付表 A-1 I/Oマップ(続く)
アドレス
334
00005C
H
000060
H
000064
H
000068
H
00006C
H
000070
H
000074
H
000078
H
00007C
H
000080
H
000084
H
000088
H
00008C
H
000090
H
000094
H
000098
H
00009C
H
0000A0
H
0000A4
H
0000A8
H
0000AC
H
0000B0
H
0000B4
H
0000B8
H
レジスタ
+0
+1
+2
+3
−
−
−
−
−
−
−
−
−
−
−
−
−
−
UTIM/UTIMR
[R/W]
00000000 00000000
UTIM/UTIMR
[R/W]
00000000 00000000
UTIM/UTIMR
[R/W]
00000000 00000000
−
−
−
UTIMC [R/W]
0--00001
UTIMC [R/W]
0--00001
UTIMC [R/W]
0--00001
−
−
−
−
−
−
−
−
EIRR
[R/W]
ENIR
[R/W]
00000000
00000000
ELVR
[R/W]
00000000 00000000
−
内部リソース
Reserved
Reserved
Reserved
Reserved
Reserved
U-TIMER 0
U-TIMER 1
U-TIMER 2
Reserved
Reserved
外部割込み/NMI
−
−
−
−
−
−
−
−
−
Reserved
A I/Oマップ
付表 A-1 I/Oマップ(続く)
アドレス
0000BC
H
0000C0
H
0000C4
H
0000C8
H
0000CC
H
0000D0
H
0000D4
H
0000D8
H
0000DC
H
0000E0
H
0000E4
H
0000E8
H
0000EC
H
0000F0
H
0000F4
H
0000F8
H
0000FC
H
000100
│
0001FC
000200
H
000204
H
000208
H
00020C
H
000210
│
000250
H
レジスタ
+0
+1
+2
内部リソース
+3
Reserved
−
−
−
−
−
−
−
DDRG
[W]
00000000
DDRH
[W]
00000001
DDRE
[W]
00000000
DDRI
[W]
------00
DDRF
[W]
00000000
−
Reserved
−
GCN1
00110010
PTMR
11111111
PDUT
XXXXXXXX
PTMR
11111111
PDUT
XXXXXXXX
PTMR
11111111
PDUT
XXXXXXXX
PTMR
11111111
PDUT
XXXXXXXX
[R/W]
00010000
[R]
11111111
[W]
XXXXXXXX
[R]
11111111
[W]
XXXXXXXX
[R]
11111111
[W]
XXXXXXXX
[R]
11111111
[W]
XXXXXXXX
データ方向レジスタ
−
PCSR
XXXXXXXX
PCNH
[R/W]
0000000PCSR
XXXXXXXX
PCNH
[R/W]
0000000PCSR
XXXXXXXX
PCNH
[R/W]
0000000PCSR
XXXXXXXX
PCNH
[R/W]
0000000-
GCN2
[R/W]
00000000
[W]
XXXXXXXX
PCNL
[R/W]
00000000
[W]
XXXXXXXX
PCNL
[R/W]
00000000
[W]
XXXXXXXX
PCNL
[R/W]
00000000
[W]
XXXXXXXX
PCNL
[R/W]
00000000
PWM
Reserved
−
H
H
DPDP
[R/W]
XXXXXXXX XXXXXXXX XXXXXXXX X0000000
DACSR
[R/W]
00000000 00000000 00000000 00000000
DATCR
[R/W]
XXXXXXXX XXXX0000 XXXX0000 XXXX0000
DMAC
−
Reserved
−
H
335
付録
付表 A-1 I/Oマップ(続く)
アドレス
336
000254
H
000258
H
00025C
H
000260
H
000264
H
000268
H
00026C
H
000270
H
000274
H
000278
│
0002FC
000300
│
0003E3
0003E4
H
0003E8
H
0003EC
H
0003F0
H
0003F4
H
0003F8
H
0003FC
H
レジスタ
+0
+1
+2
+3
−
内部リソース
Reserved
−
−
−
−
−
−
−
−
−
H
Reserved
H
−
H
H
ICHCR
[R/W]
-------- -------- -------- --000000
−
Instruction Cache
Reserved
−
BSD0
XXXXXXXX
BSD1
XXXXXXXX
BSDC
XXXXXXXX
BSRR
XXXXXXXX
[W]
XXXXXXXX XXXXXXXX XXXXXXXX
[R/W]
XXXXXXXX XXXXXXXX XXXXXXXX
[W]
XXXXXXXX XXXXXXXX XXXXXXXX
[R]
XXXXXXXX XXXXXXXX XXXXXXXX
ビットサーチモジュー
ル
A I/Oマップ
付表 A-1 I/Oマップ(続く)
アドレス
000400
H
000404
H
000408
H
00040C
H
000410
H
000414
H
000418
H
00041C
H
000420
H
000424
H
000428
H
00042C
H
000430
H
000434
│
00047C
000480
H
000484
H
000488
H
00048C
│
0005FC
000600
H
000604
H
000608
H
レジスタ
+0
+1
+2
+3
ICR00
[R/W]
---11111
ICR04
[R/W]
---11111
ICR08
[R/W]
---11111
ICR12
[R/W]
---11111
ICR16
[R/W]
---11111
ICR20
[R/W]
---11111
ICR24
[R/W]
---11111
ICR28
[R/W]
---11111
ICR32
[R/W]
---11111
ICR01
[R/W]
---11111
ICR05
[R/W]
---11111
ICR09
[R/W]
---11111
ICR13
[R/W]
---11111
ICR17
[R/W]
---11111
ICR21
[R/W]
---11111
ICR25
[R/W]
---11111
ICR29
[R/W]
---11111
ICR02
[R/W]
---11111
ICR06
[R/W]
---11111
ICR10
[R/W]
---11111
ICR14
[R/W]
---11111
ICR18
[R/W]
---11111
ICR22
[R/W]
---11111
ICR26
[R/W]
---11111
ICR30
[R/W]
---11111
ICR03
[R/W]
---11111
ICR07
[R/W]
---11111
ICR11
[R/W]
---11111
ICR15
[R/W]
---11111
ICR19
[R/W]
---11111
ICR23
[R/W]
---11111
ICR27
[R/W]
---11111
ICR31
[R/W]
---11111
−
−
−
−
−
−
−
−
−
−
−
−
−
−
ICR47
[R/W]
---11111
DICR
[R/W]
-------0
HRCL
[R/W]
---11111
−
−
内部リソース
割込みコントローラ
遅延割込み
Reserved
−
H
H
RSRR/WTCR[R/W]
1XXXX-00
GCR
[R/W]
110011-1
PCTR
[R/W]
00--0---
STCR
[R/W]
000111-WPR
[W]
XXXXXXXX
PDRR
[R/W]
----0000
CTBR
[W]
XXXXXXXX
クロック制御部
−
PLL制御用
−
Reserved
−
H
H
−
DDR7
[W]
-------0
DDRB
[W]
00000000
DDR2
[W]
00000000
DDR6
[W]
00000000
DDRA
[W]
-000000-
−
−
−
−
−
データ方向レジスタ
DDR8
[W]
--0--000
337
付録
付表 A-1 I/Oマップ(続き)
アドレス
00060C
H
000610
H
000614
H
000618
H
00061C
H
000620
H
000624
H
000628
H
00062C
H
000630
│
0007F8
0007FC
H
+0
ASR1
00000000
ASR2
00000000
ASR3
00000000
ASR4
00000000
ASR5
00000000
AMD0
[R/W]
---00111
AMD5
[R/W]
0--00000
EPCR0
----1100
DMCR4
00000000
レジスタ
+1
+2
[W]
AMR1
00000001
00000000
[W]
AMR2
00000010
00000000
[W]
AMR3
00000011
00000000
[W]
AMR4
00000100
00000000
[W]
AMR5
00000101
00000000
AMD1
[R/W] AMD32
[R/W]
0--00000
00000000
DSCR
[W]
RFCR
00000000
--XXXXXX
[W]
EPCR1
-1111111
-------1
[R/W]
DMCR5
000000000000000
内部リソース
+3
外部バスインタフェー
[W]
ス
00000000
[W]
00000000
[W]
00000000
[W]
00000000
[W]
00000000
AMD4
[R/W]
0--00000
[R/W]
00---000
[W]
11111111
[R/W]
0000000Reserved
−
H
H
−
LER
[W]
-----000
MODR
[W]
XXXXXXXX
Little endianレジスタ
モードレジスタ
<注意事項>
ライトオンリーのビットのあるレジスタに対してRMW系の命令を行わないでください。
RMW系の命令(RMW:リードモディファイライト)
AND
Rj, @Ri
OR
Rj, @Ri
EOR
Rj, @Ri
ANDH Rj, @Ri
ORH Rj, @Ri
EORH Rj, @Ri
ANDB Rj, @Ri
ORB Rj, @Ri
EORB Rj, @Ri
BANDL #u4, @Ri
BORL #u4, @Ri
BEORL #u4, @Ri
BANDH #u4, @Ri
BORH #u4, @Ri
BEORH #u4, @Ri
Reservedまたは(−)の領域のデータは不定です。
338
B 割込みベクタ
B
割込みベクタ
付表 B-1に割込みベクタテーブルを示します。
割込みベクタテーブルには,MB91107/MB91108の割込み要因と割込みベクタ/割込
み制御レジスタの割り当てが記載されています。
■ 割込みベクタ
付表 B-1 割込みベクタテーブル(続く)
割込み要因
リセット
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
未定議命令例外
NMI 要求
外部割込み 0
外部割込み 1
外部割込み 2
外部割込み 3
UART 0 受信完了
UART 1 受信完了
UART 2 受信完了
UART 0 送信完了
UART 1 送信完了
UART 2 送信完了
DMAC 0 (終了,エラー)
DMAC 1 (終了,エラー)
DMAC 2 (終了,エラー)
DMAC 3 (終了,エラー)
DMAC 4 (終了,エラー)
DMAC 5 (終了,エラー)
DMAC 6 (終了,エラー)
DMAC 7 (終了,エラー)
A/D(逐次型)
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
割込み番号
10進
16進
0
00
1
01
2
02
3
03
4
04
5
05
6
06
7
07
8
08
9
09
10
0A
11
0B
12
0C
13
0D
14
0E
15
0F
16
10
17
11
18
12
19
13
20
14
21
15
22
16
23
17
24
18
25
19
26
1A
27
1B
28
1C
29
1D
30
1E
31
1F
32
20
33
21
34
22
35
23
36
24
37
25
割込みレベル*1
オフセット
TBRデフォルト
のアドレス*2
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
FH固定
ICR00
ICR01
ICR02
ICR03
ICR04
ICR05
ICR06
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
ICR16
ICR17
ICR18
ICR19
ICR20
ICR21
3FCH
3F8H
3F4H
3F0H
3ECH
3E8H
3E4H
3E0H
3DCH
3D8H
3D4H
3D0H
3CCH
3C8H
3C4H
3C0H
3BCH
3B8H
3B4H
3B0H
3ACH
3A8H
3A4H
3A0H
39CH
398H
394H
390H
38CH
388H
384H
380H
37CH
378H
374H
370H
36CH
368H
000FFFFCH
000FFFF8H
000FFFF4H
000FFFF0H
000FFFECH
000FFFE8H
000FFFE4H
000FFFE0H
000FFFDCH
000FFFD8H
000FFFD4H
000FFFD0H
000FFFCCH
000FFFC8H
000FFFC4H
000FFFC0H
000FFFBCH
000FFFB8H
000FFFB4H
000FFFB0H
000FFFACH
000FFFA8H
000FFFA4H
000FFFA0H
000FFF9CH
000FFF98H
000FFF94H
000FFF90H
000FFF8CH
000FFF88H
000FFF84H
000FFF80H
000FFF7CH
000FFF78H
000FFF74H
000FFF70H
000FFF6CH
000FFF68H
339
付録
付表 B-1 割込みベクタテーブル(続き)
割込み番号
TBRデフォルト
割込みレベル*1 オフセット
のアドレス*2
10進
16進
PWM 0
38
26
ICR22
364H
000FFF64H
PWM 1
39
27
ICR23
360H
000FFF60H
PWM 2
40
28
ICR24
35CH
000FFF5CH
PWM 3
41
29
ICR25
358H
000FFF58H
U-TIMER 0
42
2A
ICR26
354H
000FFF54H
U-TIMER 1
43
2B
ICR27
350H
000FFF50H
U-TIMER 2
44
2C
ICR28
34CH
000FFF4CH
外部割込み 4
45
2D
ICR29
348H
000FFF48H
外部割込み 5
46
2E
ICR30
344H
000FFF44H
外部割込み 6
47
2F
ICR31
340H
000FFF40H
外部割込み 7
48
30
ICR32
33CH
000FFF3CH
システム予約
49
31
ICR33
338H
000FFF38H
システム予約
50
32
ICR34
334H
000FFF34H
システム予約
51
33
ICR35
330H
000FFF30H
システム予約
52
34
ICR36
32CH
000FFF2CH
システム予約
53
35
ICR37
328H
000FFF28H
システム予約
54
36
ICR38
324H
000FFF24H
システム予約
55
37
ICR39
320H
000FFF20H
システム予約
56
38
ICR40
31CH
000FFF1CH
システム予約
57
39
ICR41
318H
000FFF18H
システム予約
58
3A
ICR42
314H
000FFF14H
システム予約
59
3B
ICR43
310H
000FFF10H
システム予約
60
3C
ICR44
30CH
000FFF0CH
システム予約
61
3D
ICR45
308H
000FFF08H
システム予約
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
システム予約(REALOSにて使用)*3
64
40
−
2FCH
000FFEFCH
システム予約(REALOSにて使用)*3
65
41
−
2F8H
000FFEF8H
INT命令で使用
66
42
−
2F4H
000FFEF4H
│
│
│
│
│
255
FF
−
000H
000FFC00H
*1:ICRは,割込みコントローラ内に設けられたレジスタで,割込みの各要求に対する割込みレベルを設
定します。ICRは,割込み要求の各々に対応して用意されています。
*2:TBRは,EIT用ベクタテーブルの先頭アドレスを示すレジスタです。
TBRとEIT要因ごとに決められたオフセット値を加算したアドレスが,ベクタアドレスとなります。
*3:REALOS/FRをご使用される場合は,システムコード用に0x40,0x41の割込みを使用します。
割込み要因
参考:
TBRの示すアドレスから1KBの領域が,EIT用ベクタ領域となっています。
1ベクタ当たりの大きさは4バイトで,ベクタ番号とベクタアドレスの関係は
下記のように表されます。
vctadr = TBR + vctofs
= TBR + (3FCH - 4 × vct)
vctadr:ベクタアドレス
vctofs:ベクタオフセット
vct
:ベクタ番号
340
C 各CPUステートにおける端子状態
C
各CPUステートにおける端子状態
CPUステートにおける端子状態
付表 C-1に端子状態一覧表で使用されている用語の説明を,付表 C-2∼付表 C-4
に各CPUステートにおける端子状態を示します。
■ 端子状態一覧表の用語説明
端子の状態に対する語句は以下の意味を持ちます。
付表 C-1 端子状態一覧表の用語説明
用 語
入力可
入力0固定
出力Hi-Z
出力保持
直前の状態を保持
説 明
入力機能が使用可能な状態であることを意味します。
端子からすぐの入力ゲートで,外部入力を遮断して内部へ“0”を伝えている状
態です。
端子駆動用トランジスタを駆動禁止状態にし,端子をハイインピーダンスにする
ことを意味します。
本モードになる直前に出力していた状態をそのまま出力することを意味します。
つまり,出力のある内蔵周辺が動作中であれば,その内蔵周辺に従い出力を行い,
ポートなどとして出力している場合には,その出力を保持します。
本モードになる直前に出力していた状態をそのまま出力,あるいは入力であれば
入力可能を意味します。
341
付録
■ 各CPUステートにおける端子状態
付表 C-2 外バス16ビット,2CAS1WRモード時の端子状態
端子名
機能
P20∼P27
D16-23
−
−
D24-31
A00-15
P60∼P67
A16-23
P70
P80
A24
RDY
P81
BGRNTX
P82
BRQ
−
−
P85
RDX
WR0X
WR1X
−
PA1∼PA5
スリープ時
出力保持
or Hi-Z
ストップ時
HIZX=0
HIZX=1
同左
出力
Hi-Z
/
入力
0固定
バス開放(BGRNT)
FFH
出力
出力
Hi-Z
/
入力
0固定
*3
*3
出力
Hi-Z
出力保持
(アドレス出力)
同左
P:直前状態保持
F:アドレス出力
直前状態保持
P:直前状態保持
F:RDY 入力
P:直前状態保持
F:H出力
P:直前状態保持
F:BRQ 入力
直前状態保持
同左
同左
P,F:直前
状態保持
P,F:直前
状態保持
P,F:直前
状態保持
同左
P:直前状態保持
F:H出力
P,F:直前
状態保持
H出力
*2
CS0X
CS1X CS5X
直前状態保持
P:直前状態保持
F:CS出力
同左
P,F:直前
状態保持
L出力
H出力
PA6
CLK
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
AN0∼AN3
RAS0
CS0L
CS0H
DW0X
RAS1
CS1L
CS1H
DW1X
AN0-3
P:直前状態保持
F:CLK 出力
P:直前状態保持
F:直前の値保持
DRAM端子の設定時
動作する
PE0
SC2
PE1
DREQ0
PE2
PE3
PE4
PE5
PE6
PE7
PF0
PF1
PF2
PF3
PF4
PF5
PF6
PF7
PG0∼PG7
PH0
PH1
PH2
DACK0
EOP0
DREQ1
DACK1
EOP1
DREQ2
SI0
SO0
SC0
SI1
SO1
SC1
SI2
SO2
INT0-INT7
TRG0
TRG1
TRG2
CS6X
TRG3
CS7X
OCPAO-OCPA3
DACK2
EOP2,ATGX
PH3
PH4∼PH7
PI0
PI1
直前の
状態を
保持
P:直前状態保持
F:RDY 入力
L出力
*3
BRQ 入力
*3
H出力
P,F:直前
状態保持
P:直前の
状態保持
F:直前の
値保持
リフレッシュ時
*1
CLK 出力
CLK 出力
P:直前状態保持
F:直前の値保持
DRAM端子の設定時
動作する
出力
Hi-Z
/
全端子
入力可
直前の
状態を
保持
直前の
状態を
保持
入力可
入力可
入力可
L出力
P:直前状態保持
F:CS出力
P:直前状態保持
F:CS出力
直前の
状態を
保持
P,F:直前
状態保持
P,F:直前
状態保持
直前の
状態を
保持
H出力
H出力
P:汎用ポート指定時,F:指定機能選択時
*1:セルフリフレッシュ起動時は,セルフリフレッシュ状態となり,セルフリフレッシュ解除時は,直前の値を保持します。
*2:リセット直後にHi-Zになる期間があります。
*3:P80/BRQ端子にプルダウン抵抗が付きます。
342
ハードウェア
スタンバイ時
リセット時
C 各CPUステートにおける端子状態
付表 C-3 外バス16ビット,1CAS2WRモード時の端子状態
端子名
機能
P20∼P27
D16-23
−
−
D24-31
A00-15
P60∼P67
A16-23
−
P80
A24
RDY
P81
BGRNTX
P82
BRQ
−
−
P85
RDX
WR0X
WR1X
−
PA1∼PA5
スリープ時
出力保持
or Hi-Z
ストップ時
HIZX=0
HIZX=1
同左
出力
Hi-Z
/
入力
0固定
バス開放(BGRNT)
FFH
出力
出力
Hi-Z
/
入力
0固定
*3
*3
出力
Hi-Z
出力保持
(アドレス出力)
同左
P:直前状態保持
F:アドレス出力
直前状態保持
P:直前状態保持
F:RDY 入力
P:直前状態保持
F:H出力
P:直前状態保持
F:BRQ 入力
直前状態保持
同左
同左
P,F:直前
状態保持
P,F:直前
状態保持
P,F:直前
状態保持
同左
P:直前状態保持
F:H出力
P,F:直前
状態保持
H出力
*2
CS0X
CS1X CS5X
直前状態保持
P:直前状態保持
F:CS出力
同左
P,F:直前
状態保持
L出力
H出力
PA6
CLK
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
AN0∼AN3
RAS0
CS0L
CS0H
DW0X
RAS1
CS1L
CS1H
DW1X
AN0-3
P:直前状態保持
F:CLK 出力
P:直前状態保持
F:直前の値保持
DRAM端子の設定時
動作する
PE0
SC2
PE1
DREQ0
PE2
PE3
PE4
PE5
PE6
PE7
PF0
PF1
PF2
PF3
PF4
PF5
PF6
PF7
PG0∼PG7
PH0
PH1
PH2
DACK0
EOP0
DREQ1
DACK1
EOP1
DREQ2
SI0
SO0
SC0
SI1
SO1
SC1
SI2
SO2
INT0-INT7
TRG0
TRG1
TRG2
CS6X
TRG3
CS7X
OCPAO-OCPA3
DACK2
EOP2,ATGX
PH3
PH4∼PH7
PI0
PI1
直前の
状態を
保持
P:直前状態保持
F:RDY 入力
L出力
*3
BRQ 入力
*3
H出力
P,F:直前
状態保持
P:直前の
状態保持
F:直前の
値保持
リフレッシュ時
*1
CLK 出力
CLK 出力
P:直前状態保持
F:直前の値保持
DRAM端子の設定時
動作する
出力
Hi-Z
/
全端子
入力可
直前の
状態を
保持
直前の
状態を
保持
入力可
ハードウェア
スタンバイ時
リセット時
入力可
入力可
L出力
P:直前状態保持
F:CS出力
P:直前状態保持
F:CS出力
直前の
状態を
保持
P,F:直前
状態保持
P,F:直前
状態保持
直前の
状態を
保持
H出力
H出力
P:汎用ポート指定時,F:指定機能選択時
*1:セルフリフレッシュ起動時は,セルフリフレッシュ状態となり,セルフリフレッシュ解除時は,直前の値を保持します。
*2:リセット直後にHi-Zになる期間があります。
*3:P80/BRQ端子にプルダウン抵抗が付きます。
343
付録
付表 C-4 外バス8ビットモード時の端子状態
端子名
機能
P20∼P27
−
ポート
D24-31
−
A00-15
P60∼P67
A16-23
−
P80
A24
RDY
P81
BGRNTX
P82
BRQ
−
−
P85
−
PA1∼PA5
RDX
WR0X
ポート
CS0X
CS1X CS5X
PA6
CLK
PB0
RAS0
PB1
CS0L
PB2
CS0H
PB3
PB4
PB5
PB6
DW0X
RAS1
CS1L
CS1H
PB7
DW1X
AN0∼AN3
AN0-3
PE0
SC2
PE1
DREQ0
PE2
PE3
PE4
PE5
PE6
PE7
PF0
PF1
PF2
PF3
PF4
PF5
PF6
PF7
PG0∼PG7
PH0
PH1
PH2
DACK0
EOP0
DREQ1
DACK1
EOP1
DREQ2
SI0
SO0
SC0
SI1
SO1
SC1
SI2
SO2
INT0-INT7
TRG0
TRG1
TRG2
CS6X
TRG3
CS7X
OCPAO-OCPA3
DACK2
EOP2,ATGX
PH3
PH4∼PH7
PI0
PI1
スリープ時
ストップ時
HIZX=0
HIZX=1
直前状態保持
出力保持
or Hi-Z
出力保持
(アドレス出力)
P:直前状態保持
F:アドレス出力
直前状態保持
P:直前状態保持
F:RDY 入力
P:直前状態保持
F:H出力
P:直前状態保持
F:BRQ 入力
直前状態保持
同左
P,F:直前
状態保持
P,F:直前
状態保持
P,F:直前
状態保持
同左
直前状態保持
直前状態保持
P:直前状態保持
F:CS出力
同左
同左
P,F:直前
状態保持
P:直前状態保持
F:CLK 出力
P:直前状態保持
F:直前の値保持
*2
P:直前状態保持
F:直前の値保持
P:直前状態保持
F:直前の値保持
*2
P:直前状態保持
F:直前の値保持
P:直前状態保持
F:直前の値保持
*2
直前の
状態を
保持
同左
同左
同左
出力
Hi-Z
/
入力
0固定
バス開放(BGRNT)
直前の状態保持
出力
Hi-Z
FFH
出力
P:直前状態保持
F:RDY 入力
L出力
*3
BRQ 入力
*3
*3
*3
H出力
直前の状態保持
L出力
H出力
P,F:直前
状態保持
同左
リフレッシュ時
*1
同左
CLK 出力
CLK 出力
P:直前状態保持
F:直前の値保持
*2
出力
Hi-Z
/
全端子
入力可
直前状態保持
同左
リフレッシュ時
*1
同左
直前状態保持
同左
リフレッシュ時
*1
直前の
状態を
保持
直前の
状態を
保持
入力可
入力可
L出力
P,F:直前
状態保持
P,F:直前
状態保持
直前の
状態を
保持
H出力
H出力
P:汎用ポート指定時,F:指定機能選択時
*1:セルフリフレッシュ起動時は,セルフリフレッシュ状態となり,セルフリフレッシュ解除時は,直前の値を保持します。
*2:DRAM端子の設定時動作します。
*3:P80/BRQ端子にプルダウン抵抗が付きます。
344
出力
Hi-Z
/
入力
0固定
同左
入力可
P:直前状態保持
F:CS出力
P:直前状態保持
F:CS出力
直前の
状態を
保持
ハードウェア
スタンバイ時
リセット時
D リトルエンディアン領域を利用する際の注意事項
D
リトルエンディアン領域を利用する際の注意事項
ここでは,リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに
説明します。
D.1 Cコンパイラ(fcc911)
D.2 アセンブラ(fasm911)
D.3 リンカ(flnk911)
D.4 デバッガ(sim911,eml911,mon911)
345
付録
D.1
Cコンパイラ(fcc911)
コンパイラ(fcc911)
C言語でプログラミングをする場合,リトルエンディアン領域に対して次のような
操作を行ったときは,動作が保証できませんので注意してください。
・初期値付き変数の配置
・構造体代入
・文字列操作関数を使った文字型配列以外の操作
・文字列操作関数使用時の-K libオプションの指定
・double型,long double型の利用
・スタックのリトルエンディアン領域への配置
■ 初期値付き変数の配置
リトルエンディアン領域に,初期値付きの変数を配置することはできません。
コンパイラは,リトルエンディアンの初期値を生成する機能を持っていません。
リトルエンディアン領域に変数を配置することはできますが,初期値を設定する
ことはできません。
プログラムの先頭で,初期値を設定する処理を行ってください。
[例]リトルエンディアン領域の変数little_dataに初期値を設定する場合
extern int little_data;
void little_init(void){
little_data = 初期値;
}
void main(void){
little_init();
...
}
■ 構造体代入
構造体どうしの代入を行うとき,コンパイラは最適な転送方法を選択してバイ
ト,ハーフワード,ワードごとの転送を行います。このため,通常の領域に割り
当てられた構造体変数とリトルエンディアンの領域に割り当てられた構造体変数
の間で構造体代入を行うと,正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
[例]リトルエンディアン領域の構造体変数little_stに構造体代入する場合
struct tag { char c; int i; }normal_st;
extern struct tag little_st;
#define
STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i;
void main(void) {
STRMOVE(little_st,normal_st);
}
また,構造体のメンバの配置はコンパイラごとに違うので,他のコンパイラで
コンパイルされた構造体とは,メンバの配置が違っていることが考えられます。
346
D リトルエンディアン領域を利用する際の注意事項
このようなときには,前述の方法においても正しい結果が得られません。
構造体のメンバの配置が一致しないときは,リトルエンディアン領域に構造体
変数を配置しないでください。
■ 文字列操作関数を使った文字型配列以外の操作
標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を
行 い ま す 。 こ の た め リ ト ル エ ン デ ィ ア ン 領 域 に 配 置 さ れ た char,unsigned
char,signed char型以外の型を持つ領域に対し,文字列操作関数を使った処理を
行うと,正しい結果が得られません。
このような処理は行わないでください。
[不具合例]memcpyでのワードデータの転送
int big = 0x01020304; /* ビッグエンディアン領域
extern int little;
/* リトルエンディアン領域
memcpy(&little,&big,4); /* memcpyによる転送
*/
*/
*/
上記の実行結果は次のようになり,ワードデータの転送結果としては誤りにな
ります。
(ビッグエンディアン領域)
01 02 03 04
→ memcpy →
(正しい結果)
(リトルエンディアン領域)
01 02 03 04
04
03
02
01
■ 文字列操作関数使用時の-K libオプションの指定
-K libオプションを指定すると,コンパイラはいくつかの文字列操作関数に対
し,インライン展開を行います。このとき,最適な処理を選択するためハーフワー
ドまたはワードごとの処理に変更される場合があります。
このため,リトルエンディアン領域に対する処理が正しく実行されません。
リトルエンディアン領域に対し文字列操作関数を使った処理を行っているとき
は,-K libオプションを指定しないでください。
-K libオプションを包含する-O4オプションや,-K speedオプションも同様に
指定しないでください。
■ double型,long double型の利用
double型およびlong double型へのアクセスは,上位1ワード,下位1ワードをそ
れぞれアクセスする方法で行われます。このため,リトルエンディアン領域に配
置されたdouble型,long double型変数に対するアクセスは,正しい結果が得ら
れません。
リトルエンディアン領域に割り当てられた同一型の変数どうしの代入は可能で
すが,最適化の結果これらの代入が定数の代入に置き換えられるときもあります。
double型およびlong double型変数をリトルエンディアン領域に配置しないでく
ださい。
[不具合例]double型データの転送
double big = 1.0; /* ビッグエンディアン領域
extern int little; /* リトルエンディアン領域
little = big;
/* double 型データの転送
*/
*/
*/
347
付録
上記の実行結果は次のようになり,double型データの転送結果としては誤りに
なります。
3f
(ビッグエンディアン領域)
f0 00 00
00 00 00
00
(正しい結果)
→
00
(リトルエンディアン領域)
00 f0
3f 00
00 00
00
00
00
3f
00
00
00
00
f0
■ スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部あるいは全部が配置された場合,動
作を保証しません。
348
D リトルエンディアン領域を利用する際の注意事項
D.2
アセンブラ(fasm911)
アセンブラ(fasm911)
FRシリーズのアセンブラ言語でプログラミングをする場合,リトルエンディアン
領域に関して注意して頂きたい項目を以下に示します。
・セクション
・データのアクセス
■ セクション
リトルエンディアン領域は,主にリトルエンディアン系CPUとデータ交換を行う
ことを目的としています。そのため,リトルエンディアン領域は初期値のないデー
タセクションとして定義してください。
もし,リトルエンディアン領域にコードやスタック,初期値付きデータセクショ
ンなどの指定をした場合には,MB91107/MB91108でのアクセス動作は保証できなく
なります。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W 1
Little_Half:・
.RES.H 1
Little_Byte:
.RES.B 1
■ データのアクセス
リトルエンディアン領域へのデータのアクセスを行う場合,そのデータの値は,
エンディアンを意識せずにコーディングできます。ただし,リトルエンディアン
領域のデータへのアクセスは,必ずデータサイズと同じサイズでアクセスしてく
ださい。
[例]
LDI
LDI
#0x01020304, r0
#Little_Word, r1
LDI
LDI
#0x0102, r2
#Little_Half, r3
LDI
LDI
#0x01, r4
#Little_Byte, r5
/* 32ビットデータは, ST命令(やLD命令など)でアクセスします。*/
ST
r0, @r1
/* 16ビットデータは, STH命令(やLDH命令など)でアクセスします。*/
STH
r2, @r3
/* 8ビットデータは, STB命令(やLDB命令など)でアクセスします。*/
STB
r4, @r5
349
付録
MB91107/MB91108でデータサイズと異なるサイズでアクセスした場合には,その
値の保証はできません。例えば,連続する二つの16ビットデータを,32ビットア
クセス命令を使って一度にアクセスした場合には,データの値の保証はできませ
ん。
350
D リトルエンディアン領域を利用する際の注意事項
D.3
リンカ(flnk911)
リンカ(flnk911)
リトルエンディアン領域を使用するプログラムの作成において,リンク時のセク
ション配置で注意して頂きたい項目を以下に示します。
・セクション種別の制限
・エラーの未検出
■ セクション種別の制限
リトルエンディアン領域には,初期値なしデータセクションのみ配置すること
ができます。
リトルエンディアン領域に初期値付きデータセクション,スタックセクション,
およびコードセクションを配置した場合,リンカの内部では,ビッグエンディア
ンでアドレス解決などの演算処理を行っていますので,プログラム動作は保証で
きなくなります。
■ エラーの未検出
リンカは,リトルエンディアン領域の認識をしていませんので,上記制限事項
に違反した配置が行われても,エラーメッセージを通知することはありません。
リトルエンディアン領域に配置したセクションの内容を十分にご確認のうえご使
用ください。
351
付録
D.4
デバッガ(sim911,eml911,mon911)
デバッガ(sim911,eml911,mon911)
シミュレータデバッガとエミュレータデバッガ/モニタデバッガでの注意事項に
ついて説明します。
■ シミュレータデバッガ
リトルエンディアン領域を示すような,メモリ空間指定コマンドはありません。
したがって,メモリ操作コマンドや,メモリを操作する命令実行は,ビッグエ
ンディアンとして扱われます。
■ エミュレータデバッガ/モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合に,正常な値と
して扱われませんので注意してください。
○
set memory/show memory/enter/examine/set watchコマンド
浮動小数点(single/double)のデータを扱った場合,指定した値が設定/
表示ともにできません。
○
search memoryコマンド
halfword,wordのデータの検索を行った場合,指定した値で検索が行われま
せん。
○
行/逆アセンブル(ソースウィンドウの逆アセンブル表示を含む)
正常な命令コードが設定/表示ともにできません(リトルエンディアン領域
には,命令コードを配置しないようにしてください)
。
○
call/show callコマンド
スタック領域が,リトルエンディアン領域に置かれた場合,正常に動作しま
せん(リトルエンディアン領域にスタック領域を配置しないようにしてくださ
い)
。
352
E 命令一覧
E
命令一覧
FRシリーズの命令一覧表を示します。その前に,命令一覧を理解するために次の
事項について説明します。
・命令一覧表の読み方
・アドレッシングモードの記号
・命令フォーマット
■ 命令一覧表の読み方
ニーモニック
ADD
Rj,
Rj
*ADD #s5, Rj
,
,
↓
↓
1)
2)
1)
型
A
C
,
,
↓
3)
OP
AG
A4
,
,
↓
4)
CYCLE
1
1
,
,
↓
5)
NZVC
CCCC
CCCC
,
,
↓
6)
2)
*印は,CPU仕様にはなくアセンブラで命令を拡張または追加した拡張
命令です。
オペランドに指定可能なアドレッシングモードを記号で示されています。
-
記号の意味は,「■アドレッシングモードの記号」を参照してください。
3)
命令フォーマットが示されています。
4)
命令コードが16進数表示されています。
5)
マシンサイクル数を表しています。
-
a:メモリアクセスサイクルであり,Ready機能により延びる可能性が
あります。
-
b:メモリアクセスサイクルであり,Ready機能により延びる可能性が
あります。
ただし,LD動作の対象となるレジスタを直後の命令が参照する場合に
は,インタロックがかかり,実行サイクル数が+1増加します。
-
c:直後の命令が,R15,SSPまたはUSPに対し,読出しあるいは書込み
を行う命令であるとき,あるいは命令フォーマットAの命令であるとき,
インタロックがかかり,実行サイクル数は+1増加して2となります。
-
d:直後の命令がMDH/MDLを参照する場合,インタロックがかかり,実
行サイクル数は増加して2となります。
-
a,b,c,dとも最小は1サイクルです。
フラグ変化を表しています。
C
0
1
7)
備 考
命令名が示されています。
-
6)
動 作
Ri + Rj → Rj
Ri + s5 → Ri
,
,
↓
7)
フラグ変化
・・・ 変化する
・・・ 変化しない
・・・ クリア
・・・ セット
N
Z
V
C
・・・
・・・
・・・
・・・
フラグの意味
ネガティブフラグ
ゼロフラグ
オーバフラグ
キャリフラグ
命令動作が表記されています。
353
付録
■ アドレッシングモードの記号
付表 E-1 アドレッシングモードの記号説明
記
号
Ri
Rj
R13
Ps
Rs
CRi
CRj
#i8
#i20
#i32
#s5
#s10
#u4
#u5
#u8
#u10
@dir8
@dir9
@dir10
label9
label12
label20
label32
@Ri
@Rj
@(R13,Rj)
@(R14,disp10)
@(R14,disp9)
@(R14,disp8)
@(R15,udisp6)
@Ri+
@R13+
@SP+
@-SP
(reglist)
354
意
味
レジスタ直接(R0∼R15,AC,FP,SP)
レジスタ直接(R0∼R15,AC,FP,SP)
レジスタ直接(R13,AC)
レジスタ直接(プログラムステータスレジスタ)
レジスタ直接(TBR,RP,SSP,USP,MDH,MDL)
レジスタ直接(CR0∼CR15)
レジスタ直接(CR0∼CR15)
符号なし8ビット即値(-128∼255)
(注意事項) -128∼-1は,128∼255として扱います。
符号なし20ビット即値(-0X80000∼0XFFFFF)
(注意事項) -0X7FFFF∼-1は,0X7FFFF∼0XFFFFFとして扱います。
符号なし32ビット即値(-0X80000000∼0XFFFFFFFF)
(注意事項) -0X80000000∼-1は,0X80000000∼0XFFFFFFFFとして
扱います。
符号付き5ビット即値(-16∼15)
符号付き10ビット即値(-512∼508 4の倍数のみ)
符号なし4ビット即値(0∼15)
符号なし5ビット即値(0∼31)
符号なし8ビット即値(0∼255)
符号なし10ビット即値(0∼1020 4の倍数のみ)
符号なし8ビット直接アドレス(0∼0XFF)
符号なし9ビット直接アドレス(0∼0X1FE 2の倍数のみ)
符号なし10ビット直接アドレス(0∼0X3FC 4の倍数のみ)
符号付き9ビット分岐アドレス(-0X100∼0XFC 2の倍数のみ)
符号付き12ビット分岐アドレス(-0X800∼0X7FC 2の倍数のみ)
符号付き20ビット分岐アドレス(-0X80000∼0X7FFFF)
符号付き32ビット分岐アドレス(-0X80000000∼0X7FFFFFFF)
レジスタ間接(R0∼R15,AC,FP,SP)
レジスタ間接(R0∼R15,AC,FP,SP)
レジスタ相対間接(Rj: R0∼R15,AC,FP,SP)
レジスタ相対間接(disp10: -0X200∼0X1FC 4の倍数のみ)
レジスタ相対間接(disp9: -0X100∼0XFE 2の倍数のみ)
レジスタ相対間接(disp8: -0X80∼0X7F)
レジスタ相対間接(udisp6: 0∼60 4の倍数のみ)
ポストインクリメント付きレジスタ間接(R0∼R15,AC,FP,SP)
ポストインクリメント付きレジスタ間接(R13,AC)
スタックポップ
スタックプッシュ
レジスタリスト
E 命令一覧
■ 命令フォーマット
付表 E-2 命令フォーマット
型
命令フォーマット
A
B
C
C’
D
E
F
355
付録
E.1
FRシリーズの命令一覧表
FRシリーズの命令一覧表
FRシリーズの命令一覧表を下記の命令順に記載します。
■ FRシリーズの命令一覧表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
付表
356
E-3
E-4
E-5
E-6
E-7
E-8
E-9
E-10
E-11
E-12
E-13
E-14
E-15
E-16
E-17
E-18
E-19
E-20
E-21
E-22
加減算命令
比較演算命令
論理演算命令
ビット操作命令
乗除算命令
シフト命令
即値セット/16ビット/32ビット即値転送命令
メモリロード命令
メモリストア命令
レジスタ間転送命令
通常分岐(遅延なし)命令
遅延分岐命令
その他の命令
20ビット通常分岐マクロ命令
20ビット遅延分岐マクロ命令
32ビット通常分岐マクロ命令
32ビット遅延分岐マクロ命令
ダイレクトアドレッシング命令
リソース命令
コプロセッサ制御命令
E 命令一覧
■ 加減算命令
付表 E-3 加減算命令
ニーモニック
ADD Rj, Ri
*ADD #s5, Ri
型
A
C'
OP
A6
A4
CYCLE
1
1
NZVC
動
作
CCCC Ri + Rj → Ri
CCCC Ri + s5 → Ri
ADD
ADD2
ADDC
ADDN
*ADDN
#u4,
#u4,
Rj,
Rj,
#s5,
Ri
Ri
Ri
Ri
Ri
C
C
A
A
C'
A4
A5
A7
A2
A0
1
1
1
1
1
CCCC
CCCC
CCCC
-------
Ri
Ri
Ri
Ri
Ri
+
+
+
+
+
ADDN
ADDN2
SUB
SUBC
SUBN
#u4,
#u4,
Rj,
Rj,
Rj,
Ri
Ri
Ri
Ri
Ri
C
C
A
A
A
A0
A1
AC
AD
AE
1
1
1
1
1
------CCCC
CCCC
----
Ri
Ri
Ri
Ri
Ri
+ extu(i4) → Ri
+ extu(i4) → Ri
– Rj → Ri
– Rj – c → Ri
- Rj → Ri
ニーモニック
CMP Rj, Ri
*CMP #s5, Ri
型
A
C'
OP
AA
A8
CYCLE
1
1
CMP #u4, Ri
CMP2 #u4, Ri
C
C
A8
A9
1
1
型
A
A
A
A
A
A
A
A
A
A
A
A
OP
82
84
85
86
92
94
95
96
9A
9C
9D
9E
CYCLE
1
1+2a
1+2a
1+2a
1
1+2a
1+2a
1+2a
1
1+2a
1+2a
1+2a
extu(i4) → Ri
extu(i4) → Ri
Rj + c → Ri
Rj → Ri
s5 → Ri
備
考
アセンブラでは上位
1bitを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き加算
アセンブラでは上位
1bitを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き減算
■ 比較演算命令
付表 E-4 比較演算命令
NZVC
動
CCCC Ri - Rj
CCCC Ri - s5
作
備
考
CCCC Ri - extu(i4)
CCCC Ri - extu(i4)
アセンブラでは上位
1bitを符号と見る
ゼロ拡張
マイナス拡張
NZVC
CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC--
備
考
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
■ 論理演算命令
付表 E-5 論理演算命令
AND
AND
ANDH
ANDB
OR
OR
ORH
ORB
EOR
EOR
EORH
EORB
ニーモニック
Rj, Ri
Rj, @Ri
Rj, @Ri
Rj, @Ri
Rj, Ri
Rj, @Ri
Rj, @Ri
Rj, @Ri
Rj, Ri
Rj, @Ri
Rj, @Ri
Rj, @Ri
Ri &=
(Ri) &=
(Ri) &=
(Ri) &=
Ri |=
(Ri)|=
(Ri)|=
(Ri)|=
Ri ^=
(Ri)^=
(Ri)^=
(Ri)^=
動
Rj
Rj
Rj
Rj
Rj
Rj
Rj
Rj
Rj
Rj
Rj
Rj
作
357
付録
■ ビット操作命令
付表 E-6 ビット操作命令
ニーモニック
型 OP
CYCLE NZVC
動
作
備
考
BANDL #u4, @Ri
C
80
1+2a ---- (Ri)&=(0xF0+u4)
下位4ビットを操作
BANDH #u4, @Ri
C
81
1+2a ---- (Ri)&=((u4<<4)+0x0F)
上位4ビットを操作
*BAND #u8, @Ri*1
---- (Ri)&=u8
BORL #u4, @Ri
C
90
1+2a ---- (Ri)|= u4
下位4ビットを操作
BORH #u4, @Ri
C
91
1+2a ---- (Ri)|= (u4<<4)
上位4ビットを操作
*BOR #u8, @Ri*2
---- (Ri)|= u8
BEORL #u4, @Ri
C
98
1+2a ---- (Ri)^= u4
下位4ビットを操作
BEORH #u4, @Ri
C
99
1+2a ---- (Ri)^= (u4<<4)
上位4ビットを操作
*BEOR #u8, @Ri*3
---- (Ri)^= u8
BTSTL #u4, @Ri
C
88
2+a
0C-- (Ri) & u4
下位4ビットテスト
BTSTH #u4, @Ri
C
89
2+a
CC-- (Ri) & (u4<<4)
上位4ビットテスト
*1:アセンブラは,u8&0x0Fでビットが立っていれば,BANDLを生成し,u8&0xF0でビットが立っていれば,
BANDHを生成します。BANDL,BANDHの両方を生成する場合もあります。
*2:アセンブラは,u8&0x0Fでビットが立っていれば,BORLを生成し,u8&0xF0でビットが立っていれば,
BORHを生成します。BORL,BORHの両方を生成する場合もあります。
*3:アセンブラは,u8&0x0Fでビットが立っていれば,BEORLを生成し,u8&0xF0でビットが立っていれば,
BEORHを生成します。BEORL,BEORHの両方を生成する場合もあります。
■ 乗除算命令
付表 E-7 乗除算命令
MUL
MULU
MULH
MULUH
DIV0S
DIV0U
DIV1
DIV2
DIV3
DIV4S
*DIV
ニーモニック
Rj,Ri
Rj,Ri
Rj,Ri
Rj,Ri
Ri
Ri
Ri
Ri*3
Ri*1
型
A
A
A
A
E
E
E
E
E
E
OP
AF
AB
BF
BB
97-4
97-5
97-6
97-7
9F-6
9F-7
CYCLE
5
5
3
3
1
1
d
1
1
1
36
NZVC
CCCCCCCC-CC--------C-C
-C-C
-------C-C
Ri
Ri
Ri
Ri
*
*
*
*
動
Rj →
Rj →
Rj →
Rj →
作
MDH,MDL
MDH,MDL
MDL
MDL
備
考
32bit*32bit=64bit
符号なし
16bit*16bit=32bit
符号なし
ステップ演算
32bit/32bit=32bit
MDL / Ri → MDL ,
MDL % Ri → MDH
*DIVU Ri*2
33
-C-C MDL / Ri → MDL ,
MDL % Ri → MDH
*1:DIV0S,DIV1×32,DIV2,DIV3,DIV4Sを生成します。命令コード長は,72バイトとなります。
*2:DIV0U,DIV1×32を生成します。命令コード長は,66バイトとなります。
*3:DIV2命令の後には,必ずDIV3命令を置いてください。
358
E 命令一覧
■ シフト命令
付表 E-8 シフト命令
LSL
*LSL
LSL
LSL2
LSR
*LSR
LSR
LSR2
ASR
*ASR
ASR
ASR2
ニーモニック
Rj, Ri
#u5, Ri (u5:0∼31)
#u4, Ri
#u4, Ri
Rj, Ri
#u5, Ri (u5:0∼31)
#u4, Ri
#u4, Ri
Rj, Ri
#u5, Ri (u5:0∼31)
#u4, Ri
#u4, Ri
型
A
C'
C
C
A
C'
C
C
A
C'
C
C
OP
B6
B4
B4
B5
B2
B0
B0
B1
BA
B8
B8
B9
CYCLE
1
1
1
1
1
1
1
1
1
1
1
1
NZVC
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
Ri
Ri
Ri
Ri
Ri
Ri
Ri
Ri
Ri
Ri
Ri
Ri
動
<< Rj →
<< u5 →
<< u4 →
<<(u4+16)
>> Rj →
>> u5 →
>> u4 →
>>(u4+16)
>> Rj →
>> u5 →
>> u4 →
>>(u4+16)
作
Ri
Ri
Ri
→ Ri
Ri
Ri
Ri
→ Ri
Ri
Ri
Ri
→ Ri
備
考
論理シフト
論理シフト
算術シフト
■ 即値セット/16ビット/32ビット即値転送命令
付表 E-9 即値セット/16ビット/32ビット即値転送命令
ニーモニック
型 OP
CYCLE NZVC
動
作
備
考
LDI:32 #i32, Ri
E 9F-8
3
---- i32 → Ri
LDI:20 #i20, Ri
C
9B
2
---- i20 → Ri
上位12bitはゼロ拡張
LDI:8
#i8, Ri
B
C0
1
---- i8 → Ri
上位24bitはゼロ拡張
*LDI #{i8|i20|i32},Ri*
{i8|i20|i32} → Ri
*:即値が絶対値の場合は,i8,i20,i32の選択はアセンブラが自動的に行います。
即値が,相対値または外部参照シンボルを含む場合は,i32が選択されます。
■ メモリロード命令
付表 E-10 メモリロード命令
ニーモニック
型 OP
CYCLE NZVC
動
作
備
考
LD
@Rj, Ri
A
04
b
---- (Rj) → Ri
LD
@(R13,Rj), Ri
A
00
b
---- (R13+Rj) → Ri
LD
@(R14,disp10), Ri
B
20
b
---- (R14+disp10) → Ri
LD
@(R15,udisp6), Ri
C
03
b
---- (R15+udisp6) → Ri
LD
@R15+, Ri
E 07-0
b
---- (R15) → Ri,R15+=4
LD
@R15+, Rs
E 07-8
b
---- (R15) → Rs, R15+=4
Rs:特殊レジスタ*
LD
@R15+, PS
E 07-9 1+a+b CCCC (R15) → PS, R15+=4
LDUH @Rj, Ri
A
05
b
---- (Rj) →Ri
ゼロ拡張
LDUH @(R13,Rj), Ri
A
01
b
---- (R13+Rj) →Ri
ゼロ拡張
LDUH @(R14,disp9), Ri
B
40
b
---- (R14+disp9) →Ri
ゼロ拡張
LDUB @Rj, Ri
A
06
b
---- (Rj) → Ri
ゼロ拡張
LDUB @(R13,Rj), Ri
A
02
b
---- (R13+Rj) → Ri
ゼロ拡張
LDUB @(R14,disp8), Ri
B
60
b
---- (R14+disp8) → Ri
ゼロ拡張
*:特殊レジスタ Rs:TBR,RP,USP,SSP,MDH,MDL
(注意事項)
ハード仕様のo8,o4のフィールドには,次のようにアセンブラが計算して値を設定します。
disp10/4→o8,disp9/2→o8,disp8→o8,disp10,disp9,disp8は符号付きです。
udisp6/4→o4 udisp6は,符号なしです。
359
付録
■ メモリストア命令
付表 E-11 メモリストア命令
ニーモニック
型 OP
CYCLE NZVC
動
作
備
考
ST
Ri, @Rj
A
14
a
---- Ri→(Rj)
ワード
ST
Ri, @(R13,Rj)
A
10
a
---- Ri→(R13+Rj)
ワード
ST
Ri, @(R14,disp10)
B
30
a
---- Ri→(R14+disp10)
ワード
ST
Ri, @(R15,udisp6)
C
13
a
---- Ri→(R15+udisp6)
ST
Ri, @-R15
E 17-0
a
---- R15-=4,Ri→(R15)
ST
Rs, @-R15
E 17-8
a
---- R15-=4, Rs→(R15)
Rs:特殊レジスタ*
ST
PS, @-R15
E 17-9
a
---- R15-=4, PS→(R15)
STH
Ri, @Rj
A
15
a
---- Ri→(Rj)
ハーフワード
STH
Ri, @(R13,Rj)
A
11
a
---- Ri→(R13+Rj)
ハーフワード
STH
Ri, @(R14,disp9)
B
50
a
---- Ri→(R14+disp9)
ハーフワード
STB
Ri, @Rj
A
16
a
---- Ri→(Rj)
バイト
STB
Ri, @(R13,Rj)
A
12
a
---- Ri→(R13+Rj)
バイト
STB
Ri, @(R14,disp8)
B
70
a
---- Ri→(R14+disp8)
バイト
*:特殊レジスタ Rs:TBR,RP,USP,SSP,MDH,MDL
(注意事項)
ハード仕様のo8,o4のフィールドには,次のようにアセンブラが計算して値を設定します。
disp10/4→o8,disp9/2→o8,disp8→o8,disp10,disp9,disp8は符号付きです。
udisp6/4→o4 udisp6は,符号なしです。
■ レジスタ間転送命令
付表 E-12 レジスタ間転送命令
ニーモニック
型 OP
CYCLE
MOV
Rj, Ri
A
8B
1
MOV
Rs, Ri
A
B7
1
MOV
Ri, Rs
A
B3
1
MOV
PS, Ri
E 17-1
1
MOV
Ri, PS
E 07-1
c
*:特殊レジスタ Rs:TBR,RP,USP,SSP,MDH,MDL
360
NZVC
------------CCCC
Rj
Rs
Ri
PS
Ri
→
→
→
→
→
動
Ri
Ri
Rs
Ri
PS
作
備
考
汎用レジスタ間転送
Rs:特殊レジスタ*
Rs:特殊レジスタ*
E 命令一覧
■ 通常分岐(遅延なし)命令
付表 E-13 通常分岐(遅延なし)命令
ニーモニック
@Ri
label12
型 OP
E 97-0
F
D0
CYCLE
2
2
@Ri
E
E
D
97-1
97-2
1F
2
2
3+3a
INTE
E
9F-3
3+3a
RETI
E
97-3
2+2a
D
D
D
E0
E1
E2
2
1
2/1
JMP
CALL
CALL
RET
INT
BRA
BNO
BEQ
#u8
label9
label9
label9
NZVC
動
作
備
考
---- Ri → PC
---- PC+2→RP ,
PC+2+(label12-PC-2)→PC
---- PC+2→RP ,Ri→PC
---- RP → PC
リターン
---- SSP-=4,PS→(SSP),
SSP-=4,PC+2→(SSP),
0→Iフラグ,0→Sフラグ,
(TBR+0x3FC-u8×4) →PC
---- SSP-=4,PS→(SSP),
エミュレータ用
SSP-=4,PC+2→(SSP),
0→Sフラグ,
(TBR+0x3D8) →PC
CCCC (R15) →PC,R15-=4,
(R15) →PS,R15-=4
---- PC+2+(label9-PC-2) →PC
---- 非分岐
---- if(Z==1) then
PC+2+(label9-PC-2) →PC
---- ↑s/Z==0
---- ↑s/C==1
---- ↑s/C==0
---- ↑s/N==1
---- ↑s/N==0
---- ↑s/V==1
---- ↑s/V==0
---- ↑s/V xor N==1
---- ↑s/V xor N==0
---- ↑s/(V xor N) or Z==1
---- ↑s/(V xor N) or Z==0
---- ↑s/C or Z==1
---- ↑s/C or Z==0
2/1
D
E3
BNE
label9
2/1
E4
D
BC
label9
2/1
E5
D
BNC
label9
2/1
E6
D
BN
label9
2/1
E7
D
BP
label9
2/1
E8
D
BV
label9
2/1
E9
D
BNV
label9
2/1
D
EA
BLT
label9
2/1
EB
D
BGE
label9
2/1
EC
D
BLE
label9
2/1
ED
D
BGT
label9
2/1
D
EE
BLS
label9
EF
2/1
D
BHI
label9
(注意事項)
・CYCLE数の「2/1」は,分岐するとき2,分岐しないとき1であることを示します。
・ハード仕様のrel11,rel8のフィールドには,次のようにアセンブラが計算して値を設定します。
(label12-PC-2)/2→rel11,(label9-PC-2)/2→rel8,label12,label9は符号付きです。
・RETI命令を実行するときは,Sフラグが“0”であることが必要です。
361
付録
■ 遅延分岐命令
付表 E-14 遅延分岐命令
JMP:D
CALL:D
CALL:D
RET:D
BRA:D
BNO:D
BEQ:D
ニーモニック
@Ri
label12
@Ri
label9
label9
label9
型 OP
E 9F-0
F
D8
E
E
D
D
D
9F-1
9F-2
F0
F1
F2
CYCLE
1
1
1
1
1
1
1
NZVC
動
作
備
---- Ri → PC
---- PC+4→RP ,
PC+2+(label12-PC-2)→PC
---- PC+4→RP ,Ri→PC
---- RP → PC
リターン
---- PC+2+(label9-PC-2) →PC
---- 非分岐
---- if(Z==1) then
PC+2+(label9-PC-2) →PC
---- ↑s/Z==0
---- ↑s/C==1
---- ↑s/C==0
---- ↑s/N==1
---- ↑s/N==0
---- ↑s/V==1
---- ↑s/V==0
---- ↑s/V xor N==1
---- ↑s/V xor N==0
---- ↑s/(V xor N) or Z==1
---- ↑s/(V xor N) or Z==0
---- ↑s/C or Z==1
---- ↑s/C or Z==0
F3
1
BNE:D
label9
D
1
D
F4
BC:D
label9
F5
1
D
BNC:D
label9
1
F6
BN:D
label9
D
1
D
F7
BP:D
label9
F8
1
BV:D
label9
D
1
D
F9
BNV:D
label9
1
FA
D
BLT:D
label9
1
FB
D
BGE:D
label9
1
FC
D
BLE:D
label9
1
FD
D
BGT:D
label9
1
FE
D
BLS:D
label9
1
FF
D
BHI:D
label9
(注意事項)
・ハード仕様のrel11,rel8のフィールドには,次のようにアセンブラが計算して値を設定します。
(label12-PC-2)/2->rel11,(label9-PC-2)/2→rel8,label12,label9は符号付きです。
・遅延分岐は必ず次の命令(遅延スロット)を実行してから分岐します。
・遅延スロットに置くことができる命令は,すべての1サイクル,a,b,c,dサイクル命令です。
複数サイクル命令は置けません。
362
考
E 命令一覧
■ その他の命令
付表 E-15 その他の命令
ニーモニック
動
作
備
考
何も変化しない
#u8
CCR and u8 → CCR
#u8
CCR or u8 → CCR
#u8
i8 → ILM
ILM 即値セット
*1
#s10
R15 += s10
ADD SP 命令
Ri
符号拡張 8→32bit
Ri
ゼロ拡張 8→32bit
Ri
符号拡張 16→32bit
Ri
ゼロ拡張 16→32bit
(reglist)
(R15) →reglist,
ロードマルチR0-R7
R15インクリメント
LDM1
(reglist)
D
8D
---- (R15) →reglist,
ロードマルチR8-R15
R15インクリメント
*LDM
(reglist)*2
---- (R15) →reglist,
ロードマルチR0-R15
R15インクリメント
STM0
(reglist)
D
8E
---- R15ディクリメント,
ストアマルチR0-R7
reglist→(R15)
STM1
(reglist)
D
8F
---- R15ディクリメント,
ストアマルチR8-R15
reglist→(R15)
*STM
(reglist)*3
---- R15ディクリメント,
ストアマルチR0-R15
reglist→(R15)
ENTER #u10*4
D
0F
1+a
---- R14 → (R15 - 4),
関数の入口処理
R15 - 4 → R14,
R15 - u10 → R15
LEAVE
E 9F-9
b
---- R14 + 4 → R15,
関数の出口処理
(R15 - 4) → R14
XCHB
@Rj, Ri
A
8A
2a
---- Ri → TEMP
セマフォ管理用
(Rj) → Ri
バイトデータ
TEMP → (Rj)
*1:s10はアセンブラが,s10/4を計算してs8にして値を設定します。s10は符号付きです。
*2:reglistで,R0-R7のいずれかの指定があれば,LDM0を生成し,R8-R15のいずれかの指定があれば,
LDM1を生成します。LDM0,LDM1の両方を生成する場合もあります。
*3:reglistで,R0-R7のいずれかの指定があれば,STM0を生成し,R8-R15のいずれかの指定があれば,
STM1を生成します。STM1,STM0の両方を生成する場合もあります。
*4:u10はアセンブラが,u10/4を計算してu8にして値を設定します。u10は符号なしです。
(注意事項)
・LDM0(reglist),LDM1(reglist)の実行サイクル数は,指定されたレジスタ数がnのとき,
a*(n-1)+b+1サイクルとなります。
・STM0(reglist),STM1(reglist)の実行サイクル数は,指定されたレジスタ数がnのとき,
a*n+1サイクルとなります。
NOP
ANDCCR
ORCCR
STILM
ADDSP
EXTSB
EXTUB
EXTSH
EXTUH
LDM0
型
E
D
D
D
D
E
E
E
E
D
OP
9F-A
83
93
87
A3
97-8
97-9
97-A
97-B
8C
CYCLE
1
c
c
1
1
1
1
1
1
NZVC
---CCCC
CCCC
----------------------
363
付録
■ 20ビット通常分岐マクロ命令
付表 E-16 20ビット通常分岐マクロ命令
*CALL20
ニーモニック
label20,Ri
動
作
次の命令のアドレス→RP,
label20→PC
label20→PC
if(Z==1) then label20→PC
↑s/Z==0
↑s/C==1
↑s/C==0
↑s/N==1
↑s/N==0
↑s/V==1
↑s/V==0
↑s/V xor N==1
↑s/V xor N==0
↑s/(V xor N) or Z==1
↑s/(V xor N) or Z==0
↑s/C or Z==1
↑s/C or Z==0
備
考
Ri:テンポラリレジスタ(参考1参照)
Ri:テンポラリレジスタ(参考2参照)
*BRA20
label20,Ri
*BEQ20
label20,Ri
Ri:テンポラリレジスタ(参考3参照)
*BNE20
label20,Ri
↑
↑
*BC20
label20,Ri
*BNC20
label20,Ri
↑
↑
*BN20
label20,Ri
↑
*BP20
label20,Ri
↑
*BV20
label20,Ri
↑
*BNV20
label20,Ri
↑
*BLT20
label20,Ri
↑
*BGE20
label20,Ri
*BLE20
label20,Ri
↑
↑
*BGT20
label20,Ri
↑
*BLS20
label20,Ri
↑
*BHI20
label20,Ri
[参考1] CALL20
1) label20-PC-2が,-0x800∼+0x7feの場合は,次のように命令を生成します。
CALL
label12
2) label20-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:20 #label20,Ri
CALL
@Ri
[参考2] BRA20
1) label20-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
BRA
label9
2) label20-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:20 #label20,Ri
JMP
@Ri
[参考3] Bcc20
1) label20-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
Bcc
label9
2) label20-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
Bxcc
false
xccは,ccの背反条件
LDI:20 #label20,Ri
JMP
@Ri
False:
364
E 命令一覧
■ 20ビット遅延分岐マクロ命令
付表 E-17 20ビット遅延分岐マクロ命令
ニーモニック
*CALL20:D label20,Ri
動
作
次の命令のアドレス+2→RP,
label20→PC
label20→PC
if(Z==1) then label20→PC
↑s/Z==0
↑s/C==1
↑s/C==0
↑s/N==1
↑s/N==0
↑s/V==1
↑s/V==0
↑s/V xor N==1
↑s/V xor N==0
↑s/(V xor N) or Z==1
↑s/(V xor N) or Z==0
↑s/C or Z==1
↑s/C or Z==0
備
考
Ri:テンポラリレジスタ(参考1参照)
Ri:テンポラリレジスタ(参考2参照)
*BRA20:D
label20,Ri
*BEQ20:D
label20,Ri
Ri:テンポラリレジスタ(参考3参照)
*BNE20:D
label20,Ri
↑
↑
*BC20:D
label20,Ri
*BNC20:D
label20,Ri
↑
↑
*BN20:D
label20,Ri
↑
*BP20:D
label20,Ri
↑
*BV20:D
label20,Ri
↑
*BNV20:D
label20,Ri
↑
*BLT20:D
label20,Ri
↑
*BGE20:D
label20,Ri
*BLE20:D
label20,Ri
↑
↑
*BGT20:D
label20,Ri
↑
*BLS20:D
label20,Ri
↑
*BHI20:D
label20,Ri
[参考1] CALL20:D
1) label20-PC-2が,-0x800∼+0x7feの場合は,次のように命令を生成します。
CALL:D label12
2) label20-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:20 #label20,Ri
CALL:D @Ri
[参考2] BRA20:D
1) label20-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
BRA:D label9
2) label20-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:20 #label20,Ri
JMP:D @Ri
[参考3] Bcc20:D
1) label20-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
Bcc:D label9
2) label20-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
Bxcc
false
xccは,ccの背反条件
LDI:20 #label20,Ri
JMP:D @Ri
False:
365
付録
■ 32ビット通常分岐マクロ命令
付表 E-18 32ビット通常分岐マクロ命令
*CALL32
ニーモニック
label32,Ri
動
作
次の命令のアドレス→RP,
label32→PC
label32→PC
if(Z==1) then label32→PC
↑s/Z==0
↑s/C==1
↑s/C==0
↑s/N==1
↑s/N==0
↑s/V==1
↑s/V==0
↑s/V xor N==1
↑s/V xor N==0
↑s/(V xor N) or Z==1
↑s/(V xor N) or Z==0
↑s/C or Z==1
↑s/C or Z==0
備
考
Ri:テンポラリレジスタ(参考1参照)
Ri:テンポラリレジスタ(参考2参照)
*BRA32
label32,Ri
*BEQ32
label32,Ri
Ri:テンポラリレジスタ(参考3参照)
*BNE32
label32,Ri
↑
↑
*BC32
label32,Ri
*BNC32
label32,Ri
↑
↑
*BN32
label32,Ri
↑
*BP32
label32,Ri
↑
*BV32
label32,Ri
↑
*BNV32
label32,Ri
↑
*BLT32
label32,Ri
↑
*BGE32
label32,Ri
*BLE32
label32,Ri
↑
↑
*BGT32
label32,Ri
↑
*BLS32
label32,Ri
↑
*BHI32
label32,Ri
[参考1] CALL32
1) label32-PC-2が,-0x800∼+0x7feの場合は,次のように命令を生成します。
CALL
label12
2) label32-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:32 #label32,Ri
CALL
@Ri
[参考2] BRA32
1) label32-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
BRA
label9
2) label32-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:32 #label32,Ri
JMP
@Ri
[参考3] Bcc32
1) label32-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
Bcc
label9
2) label32-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
Bxcc
false
xccは,ccの背反条件
LDI:32 #label32,Ri
JMP
@Ri
False:
366
E 命令一覧
■ 32ビット遅延分岐マクロ命令
付表 E-19 32ビット遅延分岐マクロ命令
ニーモニック
*CALL32:D label32,Ri
動
作
次の命令のアドレス+2→RP,
label32→PC
label32→PC
if(Z==1) then label32→PC
↑s/Z==0
↑s/C==1
↑s/C==0
↑s/N==1
↑s/N==0
↑s/V==1
↑s/V==0
↑s/V xor N==1
↑s/V xor N==0
↑s/(V xor N) or Z==1
↑s/(V xor N) or Z==0
↑s/C or Z==1
↑s/C or Z==0
備
考
Ri:テンポラリレジスタ(参考1参照)
Ri:テンポラリレジスタ(参考2参照)
*BRA32:D
label32,Ri
*BEQ32:D
label32,Ri
Ri:テンポラリレジスタ(参考3参照)
*BNE32:D
label32,Ri
↑
↑
*BC32:D
label32,Ri
*BNC32:D
label32,Ri
↑
↑
*BN32:D
label32,Ri
↑
*BP32:D
label32,Ri
↑
*BV32:D
label32,Ri
↑
*BNV32:D
label32,Ri
↑
*BLT32:D
label32,Ri
↑
*BGE32:D
label32,Ri
*BLE32:D
label32,Ri
↑
↑
*BGT32:D
label32,Ri
↑
*BLS32:D
label32,Ri
↑
*BHI32:D
label32,Ri
[参考1] CALL32:D
1) label32-PC-2が,-0x800∼+0x7feの場合は,次のように命令を生成します。
CALL:D label12
2) label32-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:32 #label32,Ri
CALL:D @Ri
[参考2] BRA32:D
1) label32-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
BRA:D label9
2) label32-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
LDI:32 #label32,Ri
JMP:D @Ri
[参考3] Bcc32:D
1) label32-PC-2が,-0x100∼+0xfeの場合は,次のように命令を生成します。
Bcc:D label9
2) label32-PC-2が,1)の範囲外の場合および外部参照シンボルを含む場合は,次のように命令を生成
します。
Bxcc
false
xccは,ccの背反条件
LDI:32 #label32,Ri
JMP:D @Ri
False:
367
付録
■ ダイレクトアドレッシング命令
付表 E-20 ダイレクトアドレッシング命令
ニーモニック
型 OP
CYCLE NZVC
動
作
備
考
DMOV @dir10, R13
D
08
b
---- (dir10) → R13
ワード
DMOV R13,
@dir10
D
18
a
---- R13 →(dir10)
ワード
DMOV @dir10, @R13+
D
0C
2a
---- (dir10) →(R13),R13+=4 ワード
DMOV @R13+, @dir10*
D
1C
2a
---- (R13) →(dir10),R13+=4 ワード
DMOV @dir10, @-R15
D
0B
2a
---- R15-=4,(R15) →(dir10) ワード
DMOV @R15+, @dir10
D
1B
2a
---- (R15) →(dir10),R15+=4 ワード
DMOVH @dir9, R13
D
09
b
---- (dir9) → R13
ハーフワード
DMOVH R13,
@dir9
D
19
a
---- R13 →(dir9)
ハーフワード
DMOVH @dir9, @R13+
D
0D
2a
---- (dir9) →(R13),R13+=2
ハーフワード
DMOVH @R13+, @dir9*
D
1D
2a
---- (R13) →(dir9),R13+=2
ハーフワード
DMOVB @dir8, R13
D
0A
b
---- (dir8) → R13
バイト
DMOVB R13,
@dir8
D
1A
a
---- R13 →(dir8)
バイト
DMOVB @dir8, @R13+
D
0E
2a
---- (dir8) →(R13),R13++
バイト
DMOVB @R13+, @dir8*
D
1E
2a
---- (R13) →(dir8),R13++
バイト
*:R13+を転送元にするDMOV命令の後ろには,必ずNOPを一つ置いてください。
(注意事項)
dir8,dir9,dir10フィールドには,次のようにアセンブラが計算して値を設定します。
dir8→dir,dir9/2→dir,dir10/4→dir dir8,dir9,dir10は符号なしです。
■ リソース命令
付表 E-21 リソース命令
LDRES
ニーモニック
@Ri+, #u4
型
C
OP
BC
CYCLE
a
STRES
#u4, @Ri+
C
BD
a
NZVC
動
作
---- (Ri) →u4のリソース
Ri+=4
---- u4のリソース→(Ri)
Ri+=4
備
考
u4:チャンネル番号
u4:チャンネル番号
■ コプロセッサ制御命令
付表 E-22 コプロセッサ制御命令
ニーモニック
型 OP
CYCLE NZVC
動
作
備
考
COPOP
#u4, #u8, CRj, CRi E 9F-C
2+a
---- 演算指示
COPLD
#u4, #u8, Rj, CRi E 9F-D 1+2a ---- Rj → CRi
COPST
#u4, #u8, CRj, Ri
E 9F-E 1+2a ---- CRj → Ri
COPSV
#u4, #u8, CRj, Ri
E 9F-F 1+2a ---- CRj → Ri
エラートラップなし
(注意事項)
・{CRi|CRj}:= CR0|CR1|CR2|CR3|CR4|CR5|CR6|CR7|CR8|CR9|CR10|CR11|CR12|CR13|
CR14|CR15
u4:= チャンネル指定
u8:= コマンド指定
・本品種では,コプロセッサを搭載していないため使用できません。
368
索引
<数字>
<アルファベット>
0
A
0検出
0検出 ................................ 329
0検出用データレジスタ(BSD0)
0検出用データレジスタ(BSD0) .......... 327
A/Dコンバータ
A/Dコンバータ使用上の注意 ............ 271
A/Dコンバータの動作モード ............ 268
A/Dコンバータの特長 .................. 260
A/Dコンバータのブロックダイヤグラム .. 261
A/Dコンバータのレジスタ一覧 .......... 262
1
16/8bitデータ
データ転送部,16/8bitデータ .......... 320
連続転送モードでの転送停止(いずれか一方
のアドレスは固定である場合),16/8bit
データ .......................... 321
連続転送モードでの転送停止(両方のアドレ
スが変化する場合),16/8bitデータ
................................ 322
16ビットタイマレジスタ(TMR)
16ビットタイマレジスタ(TMR) .......... 200
16ビットリロードタイマ
16ビットリロードタイマのブロックダイヤグ
ラム ............................ 196
16ビットリロードタイマのレジスタ一覧
................................ 197
16ビットリロードタイマを使用して起動する
場合 ............................ 223
16ビットリロードレジスタ(TMRLR)
16ビットリロードレジスタ(TMRLR) ...... 200
1検出
1検出 ................................ 329
1検出用データレジスタ(BSD1)
1検出用データレジスタ(BSD1) .......... 327
1チャネル分
PWMタイマ1チャネル分のブロックダイヤグラ
ム .............................. 207
C
CASビフォアRAS(CBR)リフレッシュ
CASビフォアRAS(CBR)リフレッシュ ...... 179
CBRリフレッシュ
CBRリフレッシュの自動ウエイトサイクル
................................ 180
CLK同期モード
CLK同期モードの転送データフォーマット
................................ 286
CPUアーキテクチャ
CPUアーキテクチャの特長 ............... 25
D
DLYIビット
DICRのDLYIビット ..................... 244
DMA
DMAの転送要求要因 .................... 316
DMACコントロールステータスレジスタ(DACSR)
DMACコントロールステータスレジスタ(DACSR)
................................ 298
DMAC端子コントロールレジスタ(DATCR)
DMAC端子コントロールレジスタ(DATCR) .. 300
DMAC内部レジスタ
DMAC内部レジスタへの転送動作 ......... 315
DMACパラメータディスクリプタポインタ(DPDP)
DMAC パラ メ ー タ デ ィス ク リ プ タ ポ イ ン タ
(DPDP) .......................... 297
DMAコントローラ
DMAコントローラの特長 ................ 294
DMAコントローラのブロックダイヤグラム
................................ 295
DMAコントローラのレジスタ一覧 ........ 296
DMA転送動作
スリープモード中のDMA転送動作 ........ 315
DMA転送要求
リソースの割込み要求をDMA転送要求として使
用する場合 ...................... 314
369
索引
DMA転送抑止
優先度の高い割込み発生時のDMA転送抑止
................................ 314
DMA要求抑止レジスタ(PDRR)
DMA要求抑止レジスタ(PDRR) ............. 70
DMA抑止
DMA抑止の設定 ......................... 83
DMA抑止回路
DMA抑止回路のブロックダイヤグラム ..... 83
double型
double型,long double型の利用 ........ 347
DRAMインタフェース
DRAMインタフェース ................... 148
高速ページモード時のDRAMインタフェースタ
イミング ........................ 171
DRAM信号制御レジスタ(DSCR)
DRAM信号制御レジスタ(DSCR) ........... 129
DRAM制御端子
DRAM制御端子 ......................... 145
DRAM制御レジスタ4/5(DMCR4/5)
DRAM制御レジスタ4/5(DMCR4/5) ......... 121
DRAMデバイス
DRAMデバイスの接続例 ................. 147
DRAMリフレッシュ
DRAMリフレッシュ ..................... 150
DREQ信号
DREQ信号のセンスモード ............... 307
外部端子の機能(I/Oポートまたは制御端子)選
択.............................. 191
I/Oマップ
I/Oマップ............................ 333
I/Oマップの読み方 .................... 332
INTE命令
INTE命令の動作 ........................ 63
INT命令
INT命令の動作 ......................... 63
Iフラグ
Iフラグ............................... 53
K
-K libオプション
文字列操作関数使用時の-K libオプションの
指定 ............................ 347
L
long double型
double型,long double型の利用 ........ 347
N
NMI
E
EIT
EITからの復帰 ......................... 51
EITの注意事項 ......................... 51
EITの特長 ............................. 51
EITベクタテーブル
EITベクタテーブル ..................... 58
EIT要因
EIT要因 ............................... 51
EIT要因受理
EIT要因受理の優先順位 ................. 60
H
Hyper DRAMインタフェース
Hyper DRAMインタフェースタイミング ... 178
Hyper DRAMインタフェースのライトサイクル
タイミング ...................... 177
Hyper DRAMインタフェースのリードサイクル
タイミング ...................... 176
I
I/Oポート
I/Oポートの基本ブロックダイヤグラム .. 188
I/Oポートのレジスタ .................. 188
370
NMI(Non Maskable Interrupt) .......... 253
NMIの動作............................ 239
ユーザ割込み/NMIの動作 ............... 62
NMI制御部
外部割込み/NMI制御部のブロックダイヤグラ
ム.............................. 232
外部割込み/NMI制御部のレジスタ一覧 .. 233
P
PLL
PLLのクロック設定例 ................... 87
PLL制御レジスタ(PCTR)
PLL制御レジスタ(PCTR) ................. 76
PWM周期設定レジスタ(PCSR)
PWM周期設定レジスタ(PCSR) ............ 212
PWM出力
PWM出力オール ........................ 221
PWMタイマ
PWMタイマの全体ブロックダイヤグラム .. 207
PWMタイマの特長 ...................... 206
PWMタイマのレジスタ一覧 .............. 208
ソフトウェアによるPWMタイマ複数チャネルの
起動 ............................ 222
PWMタイマレジスタ(PTMR)
PWMタイマレジスタ(PTMR) .............. 214
PWMデューティ設定レジスタ(PDUT)
PWMデューティ設定レジスタ(PDUT) ...... 213
索引
PWM動作
PWM動作 .............................. 219
R
RETI命令
RETI命令の動作 ........................ 64
S
Single DRAMインタフェース
Single DRAMインタフェースタイミング .. 175
Single DRAMインタフェースのライトサイクル
タイミング ...................... 174
Single DRAMインタフェースのリードサイクル
タイミング ...................... 173
STOPモード
STOPモード使用時の注意 ................ 21
U
<五十音>
あ
アクセス
データのアクセス ..................... 349
アクセスモード
動作モード ............................ 99
アセンブラ
アセンブラのソース例 .................. 88
アドレッシングモード
アドレッシングモードの記号 ........... 354
アンダフロー
アンダフロー動作 ..................... 201
い
インタフェース
インタフェース ....................... 107
う
UART
UARTの応用例 ......................... 290
UARTのクロック選択 ................... 284
UARTの使用上の注意 ................... 290
UARTの動作モード ..................... 284
UARTの特長 ........................... 274
UARTのブロックダイヤグラム ........... 275
UARTのレジスタ一覧 ................... 276
U-TIMER
U-TIMERのブロックダイヤグラム ........ 226
U-TIMERのレジスタ一覧 ................ 226
ボーレートとU-TIMERのリロード値の設定例
................................ 292
Uタイマ制御レジスタ
Uタイマ制御レジスタ:UTIMC(U-TIMER Control
register) ....................... 227
Uタイマ値レジスタ
Uタイマ値レジスタ:UTIM(U-TIMER) ..... 227
ウエイトサイクル
ウエイトサイクル ..................... 148
ウォッチドッグ周期制御レジスタ(WTCR)
リセット要因レジスタ(RSRR)とウォッチドッ
グ周期制御レジスタ(WTCR) ......... 68
ウォッチドッグ制御部
ウォッチドッグ制御部のブロックダイヤグラ
ム............................... 77
ウォッチドッグタイマ
ウォッチドッグタイマの起動 ............ 77
ウォッチドッグリセット発生延期レジスタ(WPR)
ウォッチドッグリセット発生延期レジスタ
(WPR) ............................ 75
え
エッジモード
DREQセンスモードによる違い(エッジモード時
の注意事項) ..................... 311
エミュレータデバッガ
エミュレータデバッガ/モニタデバッガ
................................ 352
エラー
エラーの未検出 ....................... 351
エリア選択レジスタ(ASR)
エリア選択レジスタ(ASR)とエリアマスクレジ
スタ(AMR) ....................... 111
エリアマスクレジスタ(AMR)
エリア選択レジスタ(ASR)とエリアマスクレジ
スタ(AMR) ....................... 111
エリアモードレジスタ0(AMD0)
エリアモードレジスタ0(AMD0) ......... 114
371
索引
エリアモードレジスタ1(AMD1)
エリアモードレジスタ1(AMD1) ......... 116
エリアモードレジスタ32(AMD32)
エリアモードレジスタ32(AMD32) ........ 117
エリアモードレジスタ4(AMD4)
エリアモードレジスタ4(AMD4) ......... 118
エリアモードレジスタ5(AMD5)
エリアモードレジスタ5(AMD5) ......... 119
エントリ更新
キャッシュのエントリ更新 .............. 33
か
外形寸法図
外形寸法図(LQFP-120) ................... 6
外形寸法図(PGA-135) .................... 7
外部ウエイトサイクル
外部ウエイトサイクルタイミング ....... 161
外部端子
外部端子の機能(I/Oポートまたは制御端子)選
択 .............................. 191
外部端子制御レジスタ0(EPCR0)
外部端子制御レジスタ0(EPCR0) ........ 126
外部端子制御レジスタ1(EPCR1)
外部端子制御レジスタ1(EPCR1) ........ 128
外部デバイス
外部デバイスとの接続例 .......... 137, 140
外部バスアクセス
外部バスアクセス ..................... 135
外部バス動作
外部バス動作のプログラム仕様例 ....... 183
外部バス動作のプログラム例 ........... 183
外部バスリクエスト
外部バスリクエスト ................... 150
外部リセット
外部リセット入力使用時の注意 .......... 20
外部割込み
外部割込み/NMI制御部のブロックダイヤグラ
ム .............................. 232
外部割込み/NMI制御部のレジスタ一覧 .. 233
外部割込みの動作 ..................... 237
外部割込みの動作手順 ................. 237
外部割込み要求レベル ................. 238
外部割込み要因レジスタ(EIRR)
外部割込み要因レジスタ(EIRR) ......... 235
外部割込み要求レベル設定レジスタ(ELVR)
外部割込み要求レベル設定レジスタ(ELVR)
................................ 236
回路
回路の取扱い .......................... 19
カウンタ
カウンタの動作状態 ................... 203
372
き
ギア機能
ギア機能の設定 ........................ 79
ギア制御部
ギア制御部のブロックダイヤグラム ...... 79
ギア制御レジスタ(GCR)
ギア制御レジスタ(GCR) ................. 72
基本ライトサイクル
基本ライトサイクルタイミング ......... 153
基本リードサイクル
基本リードサイクルタイミング ......... 151
キャッシュ
各動作モード時のキャッシュの状態 ...... 33
キャッシュのエントリ更新 .............. 33
キャッシュ可能領域
命令キャッシュのキャッシュ可能領域 .... 28
く
クロック系
クロック系参考図 ...................... 88
クロック設定
PLLのクロック設定例 ................... 87
クロック選択
UARTのクロック選択 ................... 284
クロック選択方法 ..................... 182
クロックダブラ機能
クロックダブラ機能のon/offに伴う注意事項
................................. 86
クロックダブラ機能のon/offによる動作周波
数の組み合わせ ................... 86
クロックダブラ機能の起動 .............. 85
クロックダブラ機能の停止 .............. 85
クロック発生部
クロック発生部のブロックダイヤグラム .. 67
クロック発生部のレジスタ一覧 .......... 66
け
検出結果レジスタ(BSRR)
検出結果レジスタ(BSRR) ............... 328
こ
構造体代入
構造体代入 ........................... 346
高速ページモード
高速ページモード時のDRAMインタフェースタ
イミング ........................ 171
コラムアドレス
ローアドレスとコラムアドレス ......... 145
コンディションコードレジスタ
プログラムステータスレジスタ(PS) ...... 38
索引
コントロールステータスレジスタ(ADCS)
コントロールステータスレジスタ(ADCS) . 263
コントロールステータスレジスタ(PCNH,PCNL)
コントロールステータスレジスタ(PCNH,PCNL)
................................ 209
コントロールステータスレジスタ(TMCSR)
コントロールステータスレジスタ(TMCSR)
................................ 198
シリアルコントロールレジスタ(SCR)
シリアルコントロールレジスタ(SCR) .... 279
シリアルステータスレジスタ(SSR)
シリアルステータスレジスタ(SSR) ...... 282
シリアルモードレジスタ(SMR)
シリアルモードレジスタ(SMR) .......... 277
シングル/ブロック
シングル/ブロック転送モード ......... 305
さ
す
算術演算
命令概要 .............................. 46
スタック
スタックのリトルエンディアン領域への配置
................................ 348
スタンバイ制御レジスタ(STCR)
スタンバイ制御レジスタ(STCR) .......... 92
スタンバイモード
スタンバイモード(ストップ/スリープ)から
の復帰 .......................... 254
ステップ転送
ステップ転送 ......................... 308
ステップトレーストラップ
ステップトレーストラップの動作 ........ 63
ストップ
ストップからの復帰 ................... 237
ストップ状態
ストップ状態からの復帰 ................ 94
ストップ状態の概要 .................... 90
ストップ状態への移行 .................. 93
ストップ制御部
ストップ制御部のブロックダイヤグラム .. 93
スリープ状態
スリープ状態からの復帰 ................ 97
スリープ状態の概要 .................... 90
スリープ状態への移行 .................. 96
スリープ制御部
スリープ制御部のブロックダイヤグラム .. 96
し
ジェネラルコントロールレジスタ1(GCN1)
ジェネラルコントロールレジスタ1(GCN1)
................................ 215
ジェネラルコントロールレジスタ2(GCN2)
ジェネラルコントロールレジスタ2(GCN2)
................................ 218
システムコンディションコードレジスタ
プログラムステータスレジスタ(PS) ...... 40
システムスタックポインタ
システムスタックポインタ(SSP) ......... 55
専用レジスタ .......................... 37
自動ウエイトサイクル
CBRリフレッシュの自動ウエイトサイクル
................................ 180
自動ウエイトサイクルタイミング ....... 160
通常DRAMインタフェースでの自動ウエイトサ
イクルタイミング ................ 170
シミュレータデバッガ
シミュレータデバッガ ................. 352
周辺系クロック
周辺系クロックを使用するブロック一覧 .. 80
終了動作
転送の終了動作(いずれか一方のアドレスは
固定である場合) ................ 323
転送の終了動作(両方のアドレスが変化する
場合) .......................... 324
乗除算結果レジスタ
専用レジスタ .......................... 37
状態遷移
低消費電力モードの状態遷移 ............ 98
初期値付き変数
初期値付き変数の配置 ................. 346
シリアルアウトプットデータレジスタ(SODR)
シリアルインプットデータレジスタ(SIDR)/シ
リアルアウトプットデータレジスタ
(SODR) .......................... 281
シリアルインプットデータレジスタ(SIDR)
シリアルインプットデータレジスタ(SIDR)/シ
リアルアウトプットデータレジスタ
(SODR) .......................... 281
せ
制御信号
データバス幅と制御信号との関係 ....... 132
制御端子
外部端子の機能(I/Oポートまたは制御端子)選
択.............................. 191
制御レジスタ
制御レジスタ ......................... 256
セクション
セクション ........................... 349
セクション種別
セクション種別の制限 ................. 351
セットタイミング
モード0,モード1,モード2の送信動作時割込
みフラグのセットタイミング ...... 289
モード0の受信動作時割込みフラグのセットタ
イミング ........................ 288
373
索引
モード1の受信動作時割込みフラグのセットタ
イミング ........................ 288
モード2の受信動作時割込みフラグのセットタ
イミング ........................ 289
セルフリフレッシュ
セルフリフレッシュ ................... 180
センス
リクエストのセンスと各転送モードの組み合
わせ ............................ 307
センスモード
DREQ信号のセンスモード ............... 307
DREQセンスモードによる違い(エッジモード時
の注意事項) ..................... 311
DREQセンスモードによる違い(レベルモード時
の注意事項) ..................... 312
専用レジスタ
専用レジスタ .......................... 36
た
タイミング
Hyper DRAMインタフェースタイミング ... 178
Hyper DRAMインタフェースのライトサイクル
タイミング ...................... 177
Hyper DRAMインタフェースのリードサイクル
タイミング ...................... 176
Single DRAMインタフェースタイミング .. 175
Single DRAMインタフェースのライトサイクル
タイミング ...................... 174
Single DRAMインタフェースのリードサイクル
タイミング ...................... 173
外部ウエイトサイクルタイミング ....... 161
各モードでのライトサイクルタイミング
................................ 157
各モードでのリードサイクルタイミング
................................ 155
基本ライトサイクルタイミング ......... 153
基本リードサイクルタイミング ......... 151
高速ページモード時のDRAMインタフェースタ
イミング ........................ 171
自動ウエイトサイクルタイミング ....... 160
通常DRAMインタフェースでの自動ウエイトサ
イクルタイミング ................ 170
通常DRAMインタフェースのライトサイクルタ
イミング ........................ 164
通常DRAMインタフェースのリードサイクルタ
イミング ........................ 162
通常DRAMライトサイクルタイミング ..... 168
通常DRAMリードサイクルタイミング ..... 166
リード/ライト混在サイクルタイミング
................................ 159
タイミング図
タイミング図で使用している記号の説明
................................ 317
タイムベースタイマ
タイムベースタイマ .................... 78
374
タイムベースタイマクリアレジスタ(CTBR)
タイムベースタイマクリアレジスタ(CTBR)
................................. 71
ダイレクトアドレッシング
命令概要.............................. 47
端子
端子状態.............................. 22
端子処理.............................. 18
端子機能
端子機能説明 ........................... 9
端子状態
端子状態一覧表の用語説明 ............. 341
端子配列図
端子配列図(LQFP-120) ................... 8
単発モード
A/Dコンバータの動作モード ............ 268
ち
遅延スロット付き
遅延スロット付き分岐命令 .............. 48
遅延スロットなし
遅延スロットなし分岐命令 .............. 50
遅延割込み制御レジスタ(DICR)
遅延割込み制御レジスタ(DICR) ......... 243
遅延割込みモジュール
遅延割込みモジュールのブロックダイヤグラ
ム.............................. 242
遅延割込みモジュールのレジスタ一覧 ... 242
チップセレクト信号レジスタ6/7
チップセレクト信号レジスタ6/7(CS67) .. 120
チップセレクト領域
チップセレクト領域 ................... 106
つ
通常DRAMインタフェース
通常DRAMインタフェースでの自動ウエイトサ
イクルタイミング ................ 170
通常DRAMインタフェースのライトサイクルタ
イミング ........................ 164
通常DRAMインタフェースのリードサイクルタ
イミング ........................ 162
通常DRAMライトサイクル
通常DRAMライトサイクルタイミング ..... 168
通常DRAMリードサイクル
通常DRAMリードサイクルタイミング ..... 166
通常バスアクセス
通常バスアクセス ..................... 148
て
停止モード
A/Dコンバータの動作モード ............ 268
低消費電力モード
低消費電力モードの状態遷移 ............ 98
索引
低消費電力モードの動作一覧 ............ 91
ディスクリプタアクセス部
ディスクリプタアクセス部 ............. 318
ディスクリプタ先頭ワード
ディスクリプタ先頭ワード ............. 302
ディスクリプタ第2ワード
ディスクリプタ第2ワード .............. 304
ディスクリプタ第3ワード
ディスクリプタ第3ワード .............. 304
データアクセス
データアクセス ........................ 43
データ転送部
データ転送部,16/8bitデータ .......... 320
データバス幅
データバス幅 .................... 134, 139
データバス幅と制御信号との関係 ....... 132
データフォーマット
データフォーマット .............. 133, 138
データ方向レジスタ(DDR)
データ方向レジスタ(DDR) .............. 190
データレジスタ(ADCR)
データレジスタ(ADCR) ................. 267
テーブルベースレジスタ
専用レジスタ .......................... 36
テーブルベースレジスタ(TBR) ........... 57
転送受付け信号
転送受付け信号出力 ................... 313
転送終了信号
転送終了信号出力 ..................... 313
転送停止
連続転送モードでの転送停止(いずれか一方
のアドレスは固定である場合),16/8bit
データ .......................... 321
連続転送モードでの転送停止(両方のアドレ
スが変化する場合),16/8bitデータ
................................ 322
転送データフォーマット
CLK同期モードの転送データフォーマット
................................ 286
非同期(調歩同期)モードの転送データフォー
マット .......................... 285
転送モード
シングル/ブロック転送モード ......... 305
バースト転送モード ................... 306
連続転送モード ....................... 305
転送要求要因
DMAの転送要求要因 .................... 316
と
動作周波数
クロックダブラ機能のon/offによる動作周波
数の組み合わせ ................... 86
動作モード
A/Dコンバータの動作モード ............ 268
UARTの動作モード ..................... 284
各動作モード時のキャッシュの状態 ...... 33
動作モード ............................ 99
特長
MB91107の特長 .......................... 2
MB91108の特長 .......................... 2
な
内蔵RAM
内蔵RAMの使用方法 .................... 102
内部アーキテクチャ
内部アーキテクチャの構造 .............. 25
内部クロック
内部クロック動作 ..................... 201
に
入出力回路
入出力回路形式 ........................ 14
の
ノンマスカブル割込み
NMI(Non Maskable Interrupt:ノンマスカブ
ル割込み)の動作 ................. 239
は
バースト
バースト転送モード ................... 306
バースト転送
バースト転送 ......................... 310
ハードウェアスタンバイ
ハードウェアスタンバイ ................ 22
ハードウェア設計
ハードウェア設計条件 ................. 103
ハーフワードアクセス
ハーフワードアクセス ................. 142
バイトアクセス
バイトアクセス ....................... 143
バイトオーダリング
バイトオーダリング .................... 42
バスアクセス
ビッグエンディアンのバスアクセス ..... 133
リトルエンディアンのバスアクセス ..... 138
バスインタフェース
バスインタフェースの特長 ............. 106
バスインタフェースのブロックダイヤグラム
................................ 109
バスインタフェースのレジスタ一覧 ..... 110
バス権解放
バス権解放 ........................... 181
バス権獲得
バス権獲得 ........................... 181
バスモード
動作モード ............................ 99
375
索引
パワーオンリセット
パワーオンリセット .................... 22
汎用レジスタ
汎用レジスタ .......................... 41
MB91108の全体ブロックダイヤグラム ...... 5
PWMタイマ1チャネル分のブロックダイヤグラ
ム.............................. 207
PWMタイマの全体ブロックダイヤグラム .. 207
UARTのブロックダイヤグラム ........... 275
U-TIMERのブロックダイヤグラム ........ 226
ウォッチドッグ制御部のブロックダイヤグラ
ム............................... 77
外部割込み/NMI制御部のブロックダイヤグラ
ム.............................. 232
ギア制御部のブロックダイヤグラム ...... 79
クロック発生部のブロックダイヤグラム .. 67
ストップ制御部のブロックダイヤグラム .. 93
スリープ制御部のブロックダイヤグラム .. 96
遅延割込みモジュールのブロックダイヤグラ
ム.............................. 242
バスインタフェースのブロックダイヤグラム
................................ 109
ビットサーチモジュールのブロックダイヤグ
ラム ............................ 326
リセット要因保持回路のブロックダイヤグラ
ム............................... 81
割込みコントローラのブロックダイヤグラム
................................ 247
ひ
ビッグエンディアン
ビッグエンディアンのバスアクセス ..... 133
リトルエンディアンとビッグエンディアンの
相違点 .......................... 138
ビットオーダリング
ビットオーダリング .................... 42
ビットサーチモジュール
ビットサーチモジュールのブロックダイヤグ
ラム ............................ 326
ビットサーチモジュールのレジスタ一覧
................................ 326
ビット操作
命令概要 .............................. 46
非同期モード
非同期(調歩同期)モードの転送データフォー
マット .......................... 285
分岐
ふ
複数チャネル
ソフトウェアによるPWMタイマ複数チャネルの
起動 ............................ 222
フラグ
モード0,モード1,モード2の送信動作時割込
みフラグのセットタイミング ...... 289
モード0の受信動作時割込みフラグのセットタ
イミング ........................ 288
モード1の受信動作時割込みフラグのセットタ
イミング ........................ 288
モード2の受信動作時割込みフラグのセットタ
イミング ........................ 289
割込み発生とフラグ ................... 288
プログラムアクセス
プログラムアクセス .................... 43
プログラムカウンタ
専用レジスタ .......................... 36
プログラムステータス
専用レジスタ .......................... 36
プログラムステータスレジスタ
プログラムステータスレジスタ(PS) ...... 38
ブロックダイヤグラム
16ビットリロードタイマのブロックダイヤグ
ラム ............................ 196
A/Dコンバータのブロックダイヤグラム .. 261
DMAコントローラのブロックダイヤグラム
................................ 295
DMA抑止回路のブロックダイヤグラム ..... 83
I/Oポートの基本ブロックダイヤグラム .. 188
MB91107の全体ブロックダイヤグラム ...... 5
376
命令概要.............................. 46
分岐命令
遅延スロット付き分岐命令 .............. 48
遅延スロットなし分岐命令 .............. 50
へ
変化点検出
変化点検出 ........................... 330
変化点検出用データレジスタ(BSDC)
変化点検出用データレジスタ(BSDC) ..... 328
変換データ保護
変換データ保護機能 ................... 270
ほ
ポートデータレジスタ(PDR)
ポートデータレジスタ(PDR) ............ 189
ホールドリクエスト取下げ要求
ホールドリクエスト取下げ要求シーケンス
................................ 256
ホールドリクエスト取下げ要求の設定可能な
レベル .......................... 255
ホールドリクエスト取下げ要求の発生基準
................................ 255
ホールドリクエスト取下げ要求レベル設定レジスタ
(HRCL)
ホールドリクエスト取下げ要求レベル設定レ
ジスタ(HRCL) .................... 251
索引
ボーレート
ボーレートとU-TIMERのリロード値の設定例
................................ 292
ボーレートの計算 ..................... 229
ま
マッピング
割込み制御レジスタ(ICR)マッピング ..... 54
み
未定義命令例外
未定義命令例外の動作 .................. 64
め
命令一覧
FRシリーズの命令一覧表 ............... 356
命令一覧表の読み方 ................... 353
命令キャッシュ
命令キャッシュ使用時の設定方法 ........ 34
命令キャッシュのキャッシュ可能領域 .... 28
命令キャッシュの構成 .................. 28
命令キャッシュ制御レジスタ(ICHCR)
命令キャッシュ制御レジスタ(ICHCR) ..... 31
命令キャッシュタグ
命令キャッシュタグの構成 .............. 29
命令フォーマット
命令フォーマット ..................... 355
メモリマップ
FRシリーズ共通のメモリマップ .......... 45
MB91107/MB91108のメモリマップ ......... 44
メモリマップ .......................... 24
も
モード0
モード0の受信動作時割込みフラグのセットタ
イミング ........................ 288
モード0,モード1,モード2
モード0,モード1,モード2の送信動作時割込
みフラグのセットタイミング ...... 289
モード1
モード1の受信動作時割込みフラグのセットタ
イミング ........................ 288
モード2
モード2の受信動作時割込みフラグのセットタ
イミング ........................ 289
モード端子
モード端子 ............................ 99
モードデータ
モードデータ .......................... 99
モードレジスタ
モードレジスタ(MODR) ................. 100
モードレジスタ(MODR)書込み時の注意点
................................ 101
文字列操作関数
文字列操作関数使用時の-K libオプションの
指定 ............................ 347
文字列操作関数を使った文字型配列以外の操
作.............................. 347
モニタデバッガ
エミュレータデバッガ/モニタデバッガ
................................ 352
ゆ
ユーザスタックポインタ
専用レジスタ .......................... 37
ユーザプログラム
ユーザプログラム初期化ステップ ....... 104
ユーザ割込み
ユーザ割込み/NMIの動作 ............... 62
優先順位
チャネル間優先順位 ................... 314
優先順位判定
優先順位判定 ......................... 252
よ
要求レベル
外部割込み要求レベル ................. 238
ら
ライトサイクル
各モードでのライトサイクルタイミング
................................ 157
ラッチアップ
ラッチアップ防止 ...................... 18
り
リードサイクル
各モードでのリードサイクルタイミング
................................ 155
リード/ライト混在サイクル
リード/ライト混在サイクルタイミング
................................ 159
リクエスト
リクエストのセンスと各転送モードの組み合
わせ ............................ 307
リセット
リセットによる初期化 .................. 65
リセット解除
リセット解除直後 ..................... 103
リセットシーケンス
リセットシーケンス .................... 65
377
索引
リセット発生延期
リセット発生延期 ...................... 77
リセット要因
リセット要因 .......................... 65
リセット要因保持
リセット要因保持の設定 ................ 81
リセット要因保持回路
リセット要因保持回路のブロックダイヤグラ
ム ............................... 81
リセット要因レジスタ(RSRR)
リセット要因レジスタ(RSRR)とウォッチドッ
グ周期制御レジスタ(WTCR) ......... 68
リターンポインタ
専用レジスタ .......................... 37
リトルエンディアン
リトルエンディアンとビッグエンディアンの
相違点 .......................... 138
リトルエンディアン領域
スタックのリトルエンディアン領域への配置
................................ 348
リトルエンディアンレジスタ(LER)
リトルエンディアンレジスタ(LER) ...... 130
リフレッシュ制御レジスタ(RFCR)
リフレッシュ制御レジスタ(RFCR) ....... 124
リロード値
ボーレートとU-TIMERのリロード値の設定例
................................ 292
リロードレジスタ
リロードレジスタ:UTIMR(reload register)
................................ 227
れ
レギュレータ
内蔵DC-DCレギュレータ使用上の注意 ..... 20
レジスタ
0検出用データレジスタ(BSD0) .......... 327
16ビットタイマレジスタ(TMR) .......... 200
16ビットリロードレジスタ(TMRLR) ...... 200
1検出用データレジスタ(BSD1) .......... 327
DMACコントロールステータスレジスタ(DACSR)
................................ 298
DMAC端子コントロールレジスタ(DATCR) .. 300
DMA要求抑止レジスタ(PDRR) ............. 70
DRAM信号制御レジスタ(DSCR) ........... 129
DRAM制御レジスタ4/5(DMCR4/5) ......... 121
I/Oポートのレジスタ .................. 188
PLL制御レジスタ(PCTR) ................. 76
PWM周期設定レジスタ(PCSR) ............ 212
PWMタイマレジスタ(PTMR) .............. 214
PWMデューティ設定レジスタ(PDUT) ...... 213
Uタイマ制御レジスタ:UTIMC(U-TIMER Control
register) ....................... 227
Uタイマ値レジスタ:UTIM(U-TIMER) ..... 227
ウォッチドッグリセット発生延期レジスタ
(WPR) ............................ 75
378
エリア選択レジスタ(ASR)とエリアマスクレジ
スタ(AMR) ....................... 111
エリアモードレジスタ0(AMD0) ......... 114
エリアモードレジスタ1(AMD1) ......... 116
エリアモードレジスタ32(AMD32) ........ 117
エリアモードレジスタ4(AMD4) ......... 118
エリアモードレジスタ5(AMD5) ......... 119
外部端子制御レジスタ0(EPCR0) ........ 126
外部端子制御レジスタ1(EPCR1) ........ 128
外部割込み要因レジスタ(EIRR) ......... 235
外部割込み要求レベル設定レジスタ(ELVR)
................................ 236
ギア制御レジスタ(GCR) ................. 72
検出結果レジスタ(BSRR) ............... 328
コントロールステータスレジスタ(ADCS) . 263
コントロールステータスレジスタ(PCNH,PCNL)
................................ 209
コントロールステータスレジスタ(TMCSR)
................................ 198
ジェネラルコントロールレジスタ1(GCN1)
................................ 215
ジェネラルコントロールレジスタ2(GCN2)
................................ 218
シリアルインプットデータレジスタ(SIDR)/シ
リアルアウトプットデータレジスタ
(SODR) .......................... 281
シリアルコントロールレジスタ(SCR) .... 279
シリアルステータスレジスタ(SSR) ...... 282
シリアルモードレジスタ(SMR) .......... 277
スタンバイ制御レジスタ(STCR) .......... 92
タイムベースタイマクリアレジスタ(CTBR)
................................. 71
遅延割込み制御レジスタ(DICR) ......... 243
チップセレクト信号レジスタ6/7(CS67) .. 120
データ方向レジスタ(DDR) .............. 190
データレジスタ(ADCR) ................. 267
変化点検出用データレジスタ(BSDC) ..... 328
ポートデータレジスタ(PDR) ............ 189
ホールドリクエスト取下げ要求レベル設定レ
ジスタ(HRCL) .................... 251
命令キャッシュ制御レジスタ(ICHCR) ..... 31
リセット要因レジスタ(RSRR)とウォッチドッ
グ周期制御レジスタ(WTCR) ......... 68
リトルエンディアンレジスタ(LER) ...... 130
リフレッシュ制御レジスタ(RFCR) ....... 124
リロードレジスタ:UTIMR(reload register)
................................ 227
割込み許可レジスタ(ENIR) ............. 234
割込み制御レジスタ(ICR) .............. 250
レベルマスク
割込み/NMIに対するレベルマスク ....... 53
レベルモード
DREQセンスモードによる違い(レベルモード時
の注意事項) ..................... 312
連続
連続転送モード ....................... 305
索引
連続転送
連続転送 ............................. 309
連続転送モード
連続転送モードでの転送停止(いずれか一方
のアドレスは固定である場合),16/8bit
データ .......................... 321
連続転送モードでの転送停止(両方のアドレ
スが変化する場合),16/8bitデータ
................................ 322
連続モード
A/Dコンバータの動作モード ............ 268
ろ
ローアドレス
ローアドレスとコラムアドレス ......... 145
ロードとストア
命令概要 .............................. 46
論理演算
命令概要 .............................. 46
わ
ワードアクセス
ワードアクセス ....................... 141
割込み許可レジスタ(ENIR)
割込み許可レジスタ(ENIR) ............. 234
割込みコントローラ
割込みコントローラの主要機能 ......... 246
割込みコントローラのハードウェア構成
................................ 246
割込みコントローラのブロックダイヤグラム
................................ 247
割込みコントローラのレジスタ一覧 ..... 248
割込みスタック
割込みスタック ........................ 56
割込み制御レジスタ
割込み制御レジスタ(ICR) ............... 54
割込み制御レジスタ(ICR)
割込み制御レジスタ(ICR) .............. 250
割込み発生
割込み発生とフラグ ................... 288
割込み番号
割込み番号 ........................... 244
割込みベクタ
割込みベクタ ......................... 339
割込み要因
PWMタイマの割込み要因とタイミングチャート
................................ 221
割込み要因の解除 ..................... 253
割込みレベル
割込みレベル .......................... 52
割込みレベルマスクレジスタ
プログラムステータスレジスタ(PS) ...... 40
割込みレベルマスクレジスタ(ILM) ....... 53
ワンショット動作
ワンショット動作 ..................... 220
379
索引
380
CM71-10108-2
富士通半導体デバイス・CONTROLLER
MANUAL
富士通半導体デバイス
FR30
32ビット・マイクロコントローラ
MB91107/MB91108
ハードウェアマニュアル
2001年2月 第2版発行
発 行
富士通株式会社
編 集
技術標準部
電子デバイス事業本部
ドキュメント技術部