5.3MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CM71-10111-6
CONTROLLER MANUAL
FR60
32 ビット・マイクロコントローラ
MB91307 Series
ハードウェアマニュアル
FR60
32 ビット・マイクロコントローラ
MB91307 Series
ハードウェアマニュアル
富士通株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。
MB91307 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理
が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , 標準シング
ルチップマイクロコントローラです。32 ビット CPU がアクセスする広大なアドレス空
間をサポートするために , 外部バスアクセスが基本となっていますが , CPU の命令実行
高速化のために1Kバイトの命令キャッシュメモリと大容量のRAMを内蔵しています。
DVD プレーヤ , ナビゲーションシステム , 高性能 FAX, プリンタ制御等 , 高性能な CPU
処理パワーが要求される組込み用途に最適な仕様となっています。
MB91307 シリーズは , FR30/40 CPU をベースにバスアクセスの強化を行い , より高速で
の使用に対応した FR60 です。
本書は , 実際に MB91307 シリーズを使用して製品を開発される技術者を対象に ,
MB91307 シリーズの機能や動作について解説したものです。本書を一読ください。
なお , 各種命令の詳細については , 『インストラクションマニュアル』をご参照くださ
い。
■ 商標
FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
■ ライセンス
本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使
用されることを条件に , Philips 社 I2C 特許がライセンスされております。
Purchase of FUJITSU Ltd, I2C components conveys a license under the Philips I2C Patent
Right to use, these components in an I2C system provided that the system conforms to the I2C
Standard Specification as defined by Philips.
i
■ 本書の全体構成
本書は , 以下に示す 15 の章および付録から構成されています。
第 1 章 概要
この章では , MB91307 シリーズの特長 , ブロックダイヤグラム , 機能概要など全体
を知るための基本的なことについて説明します。
第 2 章 デバイスの取扱いについて
MB91307 シリーズの取扱いに関して , 端子処理のしかたや , 電源の取扱いの注意な
どについて説明します。
第 3 章 CPU および制御部
この章では , MB91307 シリーズの機能を知るために , アーキテクチャ, 仕様 , 命令な
どの基本的なことについて説明します。
第 4 章 外部バスインタフェース
この章では , 外部バスインタフェースの基本事項 , レジスタ構成 / 機能 , 外部バスの
動作および外部バスの各種タイミングについて説明します。
第 5 章 I/O ポート
この章では , I/O ポートの概要およびレジスタ構成 / 機能について説明します
第 6 章 16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , レジスタの構成 / 機能および 16 ビッ
トリロードタイマの動作について説明します。
第 7 章 U-TIMER
この章では , U-TIMER の概要 , レジスタの構成 / 機能および U-TIMER の動作につ
いて説明します。
第 8 章 外部割込み /NMI 制御部
この章では , 外部割込み /NMI 制御部の概要 , レジスタの構成 / 機能および外部割込
み /NMI 制御部の動作について説明します。
第 9 章 遅延割込みモジュール
この章では , 遅延割込みモジュールのレジスタ構成および機能について説明しま
す。
第 10 章 割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタ構成 / 機能 , 割込みコントローラ
の動作およびホールドリクエスト取下げ要求機能の使用例について説明します。
第 11 章 A/D コンバータ
この章では , A/D コンバータの概要 , レジスタの構成 / 機能および A/D コンバータ
の動作について説明します。
第 12 章 UART
この章では , UART の概要 , レジスタの構成 / 機能および UART の動作について説
明します。
第 13 章 I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタの構成 / 機能および I2C インタ
フェースの動作について説明します。
ii
第 14 章 DMA コントローラ (DMAC)
この章では , DMAC の概要 , レジスタの構成 / 機能および DMAC の動作について説
明します。
第 15 章 ビットサーチモジュール
この章では , ビットサーチモジュールの概要 , レジスタの構成 / 機能およびビット
サーチモジュールの動作について説明します。
付 録
付録として, I/Oマップ , 割込みベクタ, CPUステートでの端子状態 , リトルエンディ
アン領域を利用するときの注意事項および命令一覧について , 本文に記載できな
かった細かいことや , プログラミングするときに参照することがらを記載していま
す。
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright© 2001-2006 FUJITSU LIMITED All rights reserved
iii
本書の読み方
■ 本書の記述形式
以下に , 本書で使用する主要な用語に関しての説明を示します。
用語
意
味
I-bus
内部インストラクション用の 32 ビット幅のバスです。FR ファミリは ,
内部ハーバードアーキテクチャを採用しているため , 命令とデータは独
立したバスです。I-bus には , バスコンバータが接続されます。
D-bus
内部 32 ビット幅のデータバスです。D-bus には , 内部リソースが接続さ
れます。
F-bus
内部命令 , データがマルチプレクスされたプリンストンバスです。ス
イッチを通して I-bus と D-bus に接続されます。F-bus には ,ROM,RAM
等の内蔵リソースが接続されます。
X-bus
外部インタフェースバスです。X-bus には外部インタフェースモジュー
ルが接続されます。外部データバスは , データと命令がマルチプレクス
されます。
R-bus
内部 16 ビット幅のデータバスです。R-bus は , アダプタを通して F-bus
に接続されます。R-bus には , 各種 I/O, クロック発生部 , 割込みコント
ローラが接続されます。
R-bus は 16 ビット幅でかつアドレス , データがマルチプレクスされるた
め ,CPU がこれらのリソースにアクセスする場合 , 複数サイクルの時間
が掛かります。
E-unit
演算実行ユニットです。
CLKP
システムクロックです。R-bus につながる各内蔵リソースに対してク
ロック発生部から出力されるクロックです。最速で原発振と同周期です
が , クロック発生部 DIVR0 レジスタの B3 ∼ B0 で 1,1/2,1/3,1/4,1/5,1/6,
1/7,…1/16( または ,1/2,1/4,1/6…1/32) に分周されたクロックとなります
CLKB
システムクロックです。R-bus, X-bus 以外のバスに接続されるリソース
と CPU の動作クロックです。最速で原発振と同周期ですが , クロック
発生部 DIVR0 レジスタの P3 ∼ P0 で 1,1/2,1/3,1/4,1/5,1/6,1/7,…1/16
( または ,1/2,1/4,1/6…1/32) に分周されたクロックとなります。
CLKT
システムクロックです。X-bus に接続される外部バスインタフェースの
動作クロックです。最速で原発信と同周期ですが , クロック発生部
DIVR1 レジスタの T3 ∼ T0 で , 1,1/2,1/3,1/4,1/5,1/6,1/7,…1/16( または ,
1/2,1/4,1/6…1/32) に分周されたクロックとなります。
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
第2章
2.1
2.2
第3章
概要 ............................................................................................................ 1
MB91307 シリーズの特長 ...................................................................................................... 2
ブロックダイヤグラム............................................................................................................ 6
外形寸法図.............................................................................................................................. 7
端子配列 ................................................................................................................................. 8
端子機能一覧 ........................................................................................................................ 10
入出力回路形式 .................................................................................................................... 19
デバイスの取扱いについて ...................................................................... 23
デバイス取扱い上の注意 ...................................................................................................... 24
電源に関する取扱い上の注意 ............................................................................................... 34
CPU および制御部 ................................................................................... 37
3.1 メモリ空間............................................................................................................................ 38
3.2 内部アーキテクチャ ............................................................................................................. 42
3.3 命令キャッシュ .................................................................................................................... 47
3.3.1
命令キャッシュの構成 ............................................................................................... 48
3.3.2
制御レジスタの構成 ................................................................................................... 51
3.3.3
命令キャッシュの状態と設定..................................................................................... 55
3.3.4
命令キャッシュを使用する場合の設定方法 ............................................................... 56
3.4 専用レジスタ ........................................................................................................................ 59
3.4.1
プログラムステータスレジスタ (PS) ......................................................................... 62
3.5 汎用レジスタ ........................................................................................................................ 66
3.6 データ構造............................................................................................................................ 67
3.7 ワードアライメント ............................................................................................................. 68
3.8 メモリマップ ........................................................................................................................ 69
3.9 分岐命令 ............................................................................................................................... 70
3.9.1
遅延スロット付き分岐命令の動作.............................................................................. 71
3.9.2
遅延スロットなし分岐命令の動作.............................................................................. 73
3.10 EIT ( 例外 , 割込み , トラップ )............................................................................................. 74
3.10.1
EIT の割込みレベル.................................................................................................... 75
3.10.2
割込み制御レジスタ (ICR).......................................................................................... 77
3.10.3
システムスタックポインタ (SSP).............................................................................. 78
3.10.4
テーブルベースレジスタ (TBR) ................................................................................. 79
3.10.5
多重 EIT 処理.............................................................................................................. 83
3.10.6
EIT の動作 .................................................................................................................. 86
3.11 リセット ( デバイスの初期化 ) ............................................................................................. 90
3.11.1
リセットレベル .......................................................................................................... 91
3.11.2
リセット要因 .............................................................................................................. 92
3.11.3
リセットシーケンス ................................................................................................... 94
3.11.4
発振安定待ち時間....................................................................................................... 96
3.11.5
リセット動作モード ................................................................................................... 98
3.12 クロック発生制御 ............................................................................................................... 100
3.12.1
PLL 制御 ................................................................................................................... 101
3.12.2
発振安定待ち /PLL ロック待ち時間.......................................................................... 103
v
3.12.3
クロック分配 ............................................................................................................ 106
3.12.4
クロック分周 ............................................................................................................ 108
3.12.5
クロック発生制御部のブロックダイヤグラム.......................................................... 109
3.12.6
クロック発生制御部のレジスタ ............................................................................... 110
3.12.7
クロック制御部が持つ周辺回路 ............................................................................... 130
3.13 デバイス状態制御 ............................................................................................................... 133
3.13.1
デバイス状態と各遷移 ............................................................................................. 134
3.13.2
低消費電力モード..................................................................................................... 137
3.14 動作モード.......................................................................................................................... 143
第4章
外部バスインタフェース........................................................................ 147
4.1 外部バスインタフェースの概要 ......................................................................................... 148
4.2 外部バスインタフェースのレジスタ .................................................................................. 153
4.2.1
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)............................................................... 154
4.2.2
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) .............................................................. 156
4.2.3
領域ウェイトレジスタ (AWR0 ∼ AWR7) ................................................................ 163
4.2.4
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)............................................... 169
4.2.5
チップセレクトイネーブルレジスタ (CSER)........................................................... 172
4.2.6
キャッシュイネーブルレジスタ (CHER).................................................................. 174
4.2.7
端子 / タイミングコントロールレジスタ (TCR)....................................................... 175
4.3 チップセレクト領域の設定例 ............................................................................................. 178
4.4 エンディアンとバスアクセス ............................................................................................. 180
4.4.1
ビッグエンディアンのバスアクセス ........................................................................ 181
4.4.2
リトルエンディアンのバスアクセス ........................................................................ 186
4.4.3
ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 190
4.5 通常バスインタフェースの動作 ......................................................................................... 194
4.5.1
基本タイミング ........................................................................................................ 195
4.5.2
WE+ バイト制御タイプの動作 ................................................................................. 196
4.5.3
読出し→書込み動作 ................................................................................................. 198
4.5.4
書込み→書込み動作 ................................................................................................. 199
4.5.5
自動ウェイトサイクル ............................................................................................. 200
4.5.6
外部ウェイトサイクル ............................................................................................. 201
4.5.7
同期書込みイネーブル出力 ...................................................................................... 202
4.5.8
CS 遅延設定 ............................................................................................................. 204
4.5.9
CS → RD/WE セットアップおよび RD/WE → CS ホールド設定 ............................ 205
4.5.10
DMA フライバイ転送 (I/O →メモリ ) ....................................................................... 206
4.5.11
DMA フライバイ転送 ( メモリ→ I/O) ....................................................................... 207
4.6 バーストアクセスの動作 .................................................................................................... 208
4.7 アドレス / データマルチプレクスインタフェース ............................................................. 210
4.8 プリフェッチ動作 ............................................................................................................... 213
4.9 DMA アクセス動作 ............................................................................................................. 217
4.9.1
DMA フライバイ転送 (I/O →メモリ ) ....................................................................... 218
4.9.2
DMA フライバイ転送 ( メモリ→ I/O) ....................................................................... 220
4.9.3
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) ......................................................... 222
4.9.4
2 サイクル転送 ( 外部→ I/O) .................................................................................... 223
4.9.5
2 サイクル転送 (I/O →外部 ) .................................................................................... 224
4.10 バスアービトレーション .................................................................................................... 225
4.11 レジスタの設定手順 ........................................................................................................... 227
4.12 外部バスインタフェースの使用上の注意 ........................................................................... 228
vi
第5章
5.1
5.2
I/O ポート............................................................................................... 229
I/O ポートの概要 ................................................................................................................ 230
I/O ポートのレジスタ ......................................................................................................... 232
第6章
16 ビットリロードタイマ ...................................................................... 241
6.1 16 ビットリロードタイマの概要 ........................................................................................ 242
6.2 16 ビットリロードタイマのレジスタ................................................................................. 244
6.2.1
コントロールステータスレジスタ (TMCSR) ........................................................... 245
6.2.2
16 ビットタイマレジスタ (TMR) ............................................................................. 248
6.2.3
16 ビットリロードレジスタ (TMRLR) ..................................................................... 249
6.3 16 ビットリロードタイマの動作 ........................................................................................ 250
6.4 カウンタの動作状態 ........................................................................................................... 254
6.5 16 ビットリロードタイマの使用上の注意.......................................................................... 255
第7章
7.1
7.2
7.3
U-TIMER ................................................................................................ 257
U-TIMER の概要 ................................................................................................................. 258
U-TIMER のレジスタ.......................................................................................................... 259
U-TIMER の動作 ................................................................................................................. 263
第8章
外部割込み /NMI 制御部 ......................................................................... 265
8.1 外部割込み /NMI 制御部の概要........................................................................................... 266
8.2 外部割込み /NMI 制御部のレジスタ.................................................................................... 267
8.2.1
外部割込み許可レジスタ (ENIR) .............................................................................. 268
8.2.2
外部割込み要因レジスタ (EIRR) .............................................................................. 269
8.2.3
外部割込み要求レベル設定レジスタ (ELVR) ........................................................... 270
8.3 外部割込み /NMI 制御部の動作........................................................................................... 271
第9章
9.1
9.2
9.3
遅延割込みモジュール ........................................................................... 275
遅延割込みモジュールの概要 ............................................................................................. 276
遅延割込みモジュールのレジスタ...................................................................................... 277
遅延割込みモジュールの動作 ............................................................................................. 278
第 10 章
割込みコントローラ............................................................................... 279
10.1 割込みコントローラの概要................................................................................................. 280
10.2 割込みコントローラのレジスタ ......................................................................................... 282
10.2.1
割込み制御レジスタ (ICR)........................................................................................ 284
10.2.2
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL).................................. 286
10.3 割込みコントローラの動作................................................................................................. 287
10.4 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 ..................................................... 293
第 11 章
A/D コンバータ ...................................................................................... 295
11.1 A/D コンバータの概要 ........................................................................................................ 296
11.2 A/D コンバータのレジスタ................................................................................................. 298
11.2.1
A/D 制御ステータスレジスタ (ADCS)...................................................................... 299
11.2.2
データレジスタ (ADCR)........................................................................................... 305
11.3 A/D コンバータの動作 ........................................................................................................ 306
11.4 変換データ保護機能 ........................................................................................................... 308
11.5 A/D コンバータ使用上の注意 ............................................................................................. 310
vii
第 12 章
UART ..................................................................................................... 311
12.1 UART の概要 ...................................................................................................................... 312
12.2 UART のレジスタ ............................................................................................................... 314
12.2.1
シリアルモードレジスタ (SMR)............................................................................... 315
12.2.2
シリアルコントロールレジスタ (SCR) .................................................................... 317
12.2.3
シリアルインプットデータレジスタ (SIDR) /
シリアルアウトプットデータレジスタ (SODR)....................................................... 320
12.2.4
シリアルステータスレジスタ (SSR) ........................................................................ 321
12.2.5
DRCL レジスタ ........................................................................................................ 324
12.3 UART の動作 ...................................................................................................................... 325
12.3.1
非同期 ( 調歩同期 ) モード ....................................................................................... 327
12.3.2
CLK 同期モード........................................................................................................ 329
12.3.3
割込み発生およびフラグのセットタイミング.......................................................... 331
12.4 UART の使用例................................................................................................................... 334
12.5 ボーレートと U-TIMER のリロード値の設定例 ................................................................. 336
第 13 章
I2C インタフェース ................................................................................ 337
13.1 I2C インタフェースの概要.................................................................................................. 338
13.2 I2C インタフェースのレジスタ .......................................................................................... 340
13.2.1
バスステータスレジスタ (IBSR) .............................................................................. 342
13.2.2
バスコントロールレジスタ (IBCR) .......................................................................... 345
13.2.3
クロックコントロールレジスタ (ICCR) ................................................................... 354
13.2.4
10 ビットスレーブアドレスレジスタ (ITBA) ........................................................... 356
13.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMK)................................................ 357
13.2.6
7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 359
13.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK).................................................. 360
13.2.8
データレジスタ (IADR) ............................................................................................ 362
13.2.9
クロックディセーブルレジスタ (IDBL).................................................................... 363
2C インタフェースの動作.................................................................................................. 364
13.3 I
13.4 動作フローチャート ........................................................................................................... 369
第 14 章
DMA コントローラ (DMAC) .................................................................. 373
14.1 DMA コントローラ (DMAC) の概要 ................................................................................... 374
14.2 DMA コントローラ (DMAC) のレジスタ ............................................................................ 376
14.2.1
コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4)............................... 378
14.2.2
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4)............................... 383
14.2.3
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)........................................................ 389
14.2.4
DMAC 全体制御レジスタ (DMACR)......................................................................... 391
14.2.5
その他の機能 ............................................................................................................ 393
14.3 DMA コントローラ (DMAC) の動作 ................................................................................... 394
14.3.1
転送要求の設定 ........................................................................................................ 397
14.3.2
転送シーケンス ........................................................................................................ 398
14.3.3
DMA 転送全般 .......................................................................................................... 402
14.3.4
アドレッシングモード ............................................................................................. 404
14.3.5
データの種類 ............................................................................................................ 405
14.3.6
転送回数制御 ............................................................................................................ 406
14.3.7
CPU 制御.................................................................................................................. 407
14.3.8
ホールド調停 ............................................................................................................ 408
viii
14.3.9
開始∼終了 / 停止までの動作.................................................................................... 409
14.3.10
DMAC 割込み制御 .................................................................................................... 412
14.3.11
チャネル選択と制御 ................................................................................................. 413
14.3.12
外部端子と内部動作タイミングに関する補足.......................................................... 415
14.4 動作フローチャート ........................................................................................................... 419
14.5 データバス.......................................................................................................................... 422
14.6 DMA 外部インタフェース .................................................................................................. 425
14.6.1
DMA 外部インタフェースの動作例 ( 簡易波形 ) ...................................................... 426
14.6.2
DREQx 端子の入力タイミング ................................................................................ 428
14.6.3
DACK (DEOP) の FR30 互換モード......................................................................... 430
第 15 章
ビットサーチモジュール........................................................................ 433
15.1 ビットサーチモジュールの概要 ......................................................................................... 434
15.2 ビットサーチモジュールのレジスタ .................................................................................. 435
15.3 ビットサーチモジュールの動作 ......................................................................................... 437
付録
付録 A
付録 B
付録 C
付録 D
D.1
D.2
D.3
D.4
付録 E
E.1
............................................................................................................... 441
I/O マップ ...................................................................................................................... 442
割込みベクタ ................................................................................................................. 450
各 CPU ステートにおける端子状態 .............................................................................. 453
リトルエンディアン領域を利用する際の注意事項 ....................................................... 458
C コンパイラ (fcc911) .................................................................................................. 459
アセンブラ (fasm911)................................................................................................... 462
リンカ (flnk911) ............................................................................................................ 464
デバッガ (sim911, eml911, mon911)............................................................................ 465
命令一覧 ........................................................................................................................ 466
FR ファミリの命令一覧表 ............................................................................................ 470
ix
x
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
24
● 水晶発振回路について に文を追加
25
● ビットサーチモジュール を変更(BDSC レジスタ→ BSDC レジスタ)
26
● 低消費電力モード を変更
29
● DMA 転送要因選択について (MB91306R/307R のみ ) を追加
59
3.4 専用レジスタ の要約を修正(テーブルベースレジスタ(TBC)→テーブルベー
スレジスタ (TBR))
75
表 3.10-1 EIT の割込みレベル を変更(割込み要因 , 注意事項 を追加)
80 ∼ 82
表 3.10-4 ベクタテーブル を変更(RN 列を削除)
114
[ ビット 5] HIZ (HIZ mode) を変更("0" に初期化→ "1" に初期化)
116
<注意事項> を変更
118
<注意事項> を追加
143
143
152
157
図 3.14-1 動作モード を変更
(外部 ROM 内部 RAM 外部バス→内部 ROM 外部バス)
● バスモード 1 ( 内部 ROM 外部バスモード ) を変更(内部 RAM →内部 ROM)
図 4.1-2 外部バスインタフェースのレジスタ一覧 を変更
(IOWR2 → IOWR1)
(CSER → CHER)
(CSER →予約)
<注意事項> を追加
169
■ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の構成 を変更
(IOWR0 ∼ 3 → IOWR0 ∼ IOWR2)
(DMAC 0 ∼ 3 → DMAC 0 ∼ 2)
169
図 4.2-4 DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の構成 を変更
(IOWR0 ∼ 3 → IOWR0 ∼ IOWR2)
(IOWR3 のビット構成図 を削除)
(0000 0688H → 0000 0678H)
(0000 0689H → 0000 0679H)
(0000 068aH → 0000 067AH)
169 ∼ 170
■ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のビット機能 を変更
(ビット 7, ビット 6, ビット 5, ビット 4 の記述を削除)
(チャネル 0 ∼ 3 → ch0 ∼ ch2)
(RYE3 を削除)
(HLD3 を削除)
197
二つ目の・を変更(注意事項を参照→「4.12 外部バスインタフェースの使用上の注
意」を参照)
220
■ DMA フライバイ転送 ( メモリ→ I/O) を変更(IOWR0 ∼ 3 → IOWR0 ∼ IOWR2)
xi
ページ
変更内容(詳細は本文を参照してください。)
220
図 4.9-2 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート を変更
(*1 の説明を追加)
(*2 の説明を追加)
222
図 4.9-3 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) のタイミングチャート を変更
(基本サイクル の説明を追加)
223
図 4.9-4 2 サイクル転送 ( 外部→ I/O) のタイミングチャート を変更(基本サイクル
の説明を追加)
224
図 4.9-5 2 サイクル転送 (I/O →外部 ) のタイミングチャート を変更(基本サイクル
の説明を追加)
227
■ レジスタの設定手順 (2) の 2) と (3) の 3) に文を追加
235, 239
253
267
表 5.2-1 ポート機能レジスタ (PFR) の機能 を変更
(*1 を削除)
(*1 の説明文を削除)
● その他の動作 に文を追加
図 8.2-1 外部割込み /NMI 制御部のレジスタ一覧 を変更(要求レベル設定レジスタ
(ELVR)→外部割込み要求レベル設定レジスタ (ELVR))
268
レジスタ名を変更(割込み許可レジスタ (ENIR) →外部割込み許可レジスタ (ENIR))
271
■ 外部割込みの動作手順 に手順を追加
272
287 ∼ 290
292
297, 298
■ 外部割込み要求レベル の用語を変更
(要因保持回路→外部割込み要因レジスタ)
(要因 F/F →外部割込み要因レジスタ)
表 10.3-1 割込み要因と割込み番号 , 割込みレベルの関係 を変更(RN 列を削除)
■ 割込み要因の解除 を削除
レジスタ名を変更(AD 制御レジスタ (ADCS) → A/D 制御ステータスレジスタ
(ADCS))
301
表 11.2-1 A/D 変換起動要因の設定内容 を変更(タイマでの起動→リロードタイマで
の起動)
304
<注意事項> を追加
305
図 11.2-3 データレジスタ (ADCR) のビット構成 のアドレスを変更(000038H →
000078H)
305
図 11.2-3 データレジスタ (ADCR) のビット構成 の初期値を変更(0 → X)
314
図 12.2-1 UART のレジスタ一覧 を変更
(シリアルインプットレジスタ→シリアルインプットデータレジスタ)
(シリアルアウトプットレジスタ→シリアルアウトプットデータレジスタ)
348
<注意事項> に文を追加
353
図 13.2-6 AL ビット =1 時に割込みが発生するタイミング図 を変更(SDA 端子の線)
354
<注意事項> を変更
374
■ 主要機能 を変更(ch.0 ∼ ch.1 間で順位回転が可能→優先順位回転)
380
表 14.2-1 転送要求の要因設定 に * と説明を追加
xii
ページ
変更内容(詳細は本文を参照してください。)
397
<注意事項> に・項目を追加
404
<注意事項> を変更(終了コードに関する項目を参照してください→「表 14.2-6 終
了コードの内容」を参照してください)
409
■ 転送要求の受付けと転送 に文を追加
411
● 周辺回路よりの転送停止要求の発生 を変更
(各周辺回路の仕様を参照→「12.2.5 DRCL レジスタ」を参照)
443, 444
付表 A-1 I/O マップ の以下のレジスタについて、アクセス単位を変更
(HRCL,SSR,SIDR/SODR,SMR,IBCR,ITMK,ICCR)
444, 445
付表 A-1 I/O マップ のレジスタを変更
(DMACB0 → DMACB1)
(DMACB0 → DMACB2)
(DMACB0 → DMACB3)
(DMACB0 → DMACB4)
(ICHRC → ICHCR)
450 ∼ 452
付表 B-1 割込みベクタ を変更(RN 列を削除)
483
付表 E-21 リソース命令 に<注意事項> を追加
484
<注意事項> を変更
xiii
xiv
第1章
概要
この章では , MB91307 シリーズの特長 , ブロック
ダイヤグラム , 機能概要など全体を知るための基本
的なことがらについて説明します。
1.1 MB91307 シリーズの特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列
1.5 端子機能一覧
1.6 入出力回路形式
1
第 1 章 概要
1.1
MB91307 シリーズの特長
MB91307 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU
処理が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , 標準
シングルチップマイクロコントローラです。32 ビット CPU がアクセスする広大な
アドレス空間をサポートするために , 外部バスアクセスが基本となっていますが ,
CPU の命令実行高速化のために 1K バイトの命令キャッシュメモリと大容量の RAM
を内蔵しています。
DVD プレーヤ , ナビゲーションシステム , 高性能 FAX, プリンタ制御等 , 高性能な
CPU 処理パワーが要求される組込み用途に最適な仕様となっています。
本品種は , FR30/40 CPU をベースにバスアクセスの強化を行い , より高速での使用
に対応した FR60 です。
■ FR CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 動作周波数 66MHz [PLL 使用 : 原発振 16.5MHz]
• 16 ビット固定長命令 ( 基本命令 ) , 1 命令 /1 サイクル
• メモリ-メモリ間転送, ビット処理, バレルシフト等の命令:組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : 高級言語対応命令
• レジスタインタロック機能 : アセンブラ記述の容易化
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付き 32 ビット乗算 :5 サイクル
- 符号付き 16 ビット乗算 :3 サイクル
• 割込み (PC, PS の退避 ) :6 サイクル , 16 プライオリティレベル
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• CPU 内の 4 ワードのキューにより , 命令の先取り機能を追加
• 4G バイトの広大なメモリ空間をリニアにアクセス可能
■ バスインタフェース
• 動作周波数は最大 33MHz
• 25 ビットアドレスフル出力可能 (32M バイト空間 )
• 8 ビット , 16 ビットデータ出力
• プリフェッチバッファ搭載
• 未使用データ / アドレス端子は汎用入出力ポートとして使用可能
• 最小 64K バイト単位で設定可能な完全独立な 8 領域のチップセレクト出力が可能
• 各種メモリに対するインタフェースのサポート
- SRAM, ROM/Flash
2
第 1 章 概要
- ページモード Flash ROM, ページモード ROM インタフェース
- バーストモード Flash ROM ( バースト長 1, 2, 4, 8 選択 )
• 基本バスサイクル :2 サイクル
• 領域ごとにプログラマブルでウェイト挿入可能な自動ウェイトサイクル発生機構
• RDY 入力による外部ウェイトサイクル
• DMA は独立した I/O 用ウェイト制御が可能なフライバイ転送をサポート
■ 内蔵 RAM
• 128K バイト (MB91307B/R), 64K バイト (MB91306R) の容量の RAM を搭載
• 内蔵 RAM はデータのほか , 命令コードを書き込むことにより , 命令用 RAM として
使用することが可能
■ 命令キャッシュ
• 1K バイトの容量
• 2 way set associative
• 4 ワード (16 バイト ) / セット
• ロック機能によりプログラム常駐化可能
• 命令キャッシュとして使用しない部分は , 一部 RAM として使用可能
■ DMAC (DMA Controller)
• 5 チャネル ( 外部→外部は 3 チャネル )
• 3 つの転送要因 ( 外部端子 / 内部ペリフェラル / ソフトウェア )
• アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
• 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 )
• フライバイ転送サポート ( 外部 I/O と外部メモリ間は 3 チャネル )
• 転送データサイズは 8/16/32 ビットから選択可能
■ ビットサーチモジュール (REALOS 使用 )
• 1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ
■ リロードタイマ (REALOS 用 1 チャネルを含む )
• 16 ビットタイマ :3 チャネル
• 内部クロックは :2/8/32 分周から選択可能
■ UART
• 全二重ダブルバッファ
• 3 チャネル
• パリティあり / なし選択可能
• 非同期 ( 調歩同期 ) , CLK 同期通信の選択可能
3
第 1 章 概要
• 専用ボーレート用タイマ内蔵
• 外部クロックを転送クロックとして使用可能
• 豊富なエラー検出機能あり ( パリティ , フレーム , オーバラン )
■ I2C インタフェース
• マスタ / スレーブ送受信
• クロック同期化機能
• 転送方向検出機能
• バスエラー検出機能
• 標準モード ( 最大 100Kbps) / 高速モード ( 最大 400Kbps) に対応
• アービトレーション機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• スタートコンディションの繰り返し発生および検出機能
• 10 ビット /7 ビットスレーブアドレス
■ 割込みコントローラ
• 外部割込みは合計 9 本 ( マスク不可割込み端子 (NMI ) 1 本と通常割込み端子
(INT7 ∼ INT0) 8 本 )
• 内部ペリフェラルからの割込み
• マスク不可割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル )
• STOP 時の Wake Up 用として使用可能
■ A/D コンバータ
• 10 ビット分解能 , 4 チャネル
• 逐次比較変換型 ( 変換時間 : 約 5.4µs:CLKP=33MHz のとき )
• 変換モード ( 単発変換モード , 連続変換モード )
• 起動要因 ( ソフトウェア / 外部トリガ / タイマ出力信号 )
■ その他のインターバルタイマ
• 16 ビットタイマ :3 チャネル (U-TIMER)
• ウォッチドッグタイマ
■ I/O ポート
• 最大 69 ポート
■ その他の特長
• クロックソースとして発振回路を内蔵し , PLL 逓倍も選択可能
• リセット端子として INIT を用意
• その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり
4
第 1 章 概要
• 低消費電力モードとして , ストップモードとスリープモードをサポート
• ギア機能
• タイムベースタイマ内蔵
• パッケージ LQFP-120 (FPT-120P-M21) :MB91307B, MB91306R, MB91307R
PGA135 : MB91V307R (MB91307B, MB91306R, MB91307R 共通エバ品 )
• CMOS テクノロジ 0.25µm : MB91307B, MB91V307R,
0.18µm : MB91306R, MB91307R
• 電源電圧
MB91307B, MB91V307R:3.3V ± 0.3V ( 内蔵レギュレータ 3.3V → 2.5V)
MB91306R, MB91307R :3.3V ± 0.3V, 1.8V ± 0.15V 2 電源
■ MB91307 シリーズ
MB91307B
MB91306R/MB91307R
プロセス
CMOS 0.25µm
CMOS 0.18µm
電源電圧
3.3V ± 0.3V 降圧回路内蔵
単電源
3.3V ± 0.3V, 1.8V ± 0.15V
2 電源
ハードウェアスタンバイ機能
あり
なし
5
第 1 章 概要
1.2
ブロックダイヤグラム
図 1.2-1 に , MB91307 シリーズのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.2-1 ブロックダイヤグラム
FR
CPU Core
32
32
I$ 1KB
ビットサーチ
RAM *
Bus コンバータ
DMAC 5ch
32
32 ←→ 16
アダプタ
外部メモリI/F
16
クロック
制御
UART
3ch
U-TIMER
3ch
I2C
1ch
割込み
コントローラ
外部割込み
リロード
タイマ 3ch
*: 内蔵 RAM 128K バイト: MB91307B/R
64K バイト: MB91306R
6
A/D
4ch
ポート
第 1 章 概要
外形寸法図
1.3
MB91307 シリーズには , 1 種類のパッケージが用意されています。
■ FPT-120P-M21 の外形寸法図
図 1.3-1 FPT-120P-M21 の外形寸法図
プラスチック・LQFP, 120 ピン
(FPT-120P-M21)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
16.0×16.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.88g
コード(参考)
P-LFQFP120-16×16-0.50
プラスチック・LQFP, 120 ピン
(FPT-120P-M21 )
注 1)* 印寸法はレジン残りを含む。
レンジ残りは、片側 +0.25(.010)MAX。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
18.00±0.20(.709±.008)SQ
+0.40
* 16.00 –0.10 .630 +.016
–.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
0~8°
120
LEAD No.
1
30
0.50(.020)
C
"A"
31
2002 FUJITSU LIMITED F120033S-c-4-4
0.22±0.05
(.009±.002)
0.08(.003)
M
0.145
.006
+0.05
–0.03
+.002
–.001
0.60±0.15
(.024±.006)
0.10±0.05
(.004±.002)
(Stand off)
0.25(.010)
単位:mm (inches)
注意:括弧内の値は参考値です。
7
第 1 章 概要
端子配列
1.4
MB91307 シリーズの端子配列を示します。
■ 端子配列図
図 1.4-1, 図 1.4-2 に端子配列図を示します。
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
PA2/CS2
PA1/CS1
CS0
PB7/IORD
PB6/IOWR
VCC
X0
X1
VSS
PB5/DEOP1
PB4/DACK1
PB3/DREQ1
PB2/DEOP0
PB1/DACK0
PB0/DREQ0
MD2
MD1
MD0
PG2/DEOP2
PG1/DACK2
PG0/DREQ2
PH7/SCL
PH6/SDA
PH5/TOT2
PH4/TOT1 *
PH3/TOT0 *
VSS
PH2/SC2
PH1/SO2
PH0/SI2
図 1.4-1 MB91307B の端子配列図
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
MB91307B
(TOP VIEW)
P26/D22
P27/D23
D24
D25
D26
D27
D28
D29
D30
D31
VSS
A00
A01
A02
A03
A04
A05
A06
A07
VCC
A08
A09
A10
A11
A12
A13
A14
A15
VSS
P60/A16
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
PA3/CS3
PA4/CS4
PA5/CS5
C
PA6/CS6
PA7/CS7
P80/RDY
P81/BGRNT
P82/BRQ
RD
UUB/WR0
P85/ULB/WR1
NMI
HST
VSS
INIT
P90/SYSCLK
P91
P92/MCLK
P93
P94/LBA/AS
P95/BAA
P96
P97/WE
P20/D16
P21/D17
P22/D18
P23/D19
P24/D20
P25/D21
*:イニシャルとリセット時"L"出力です。
8
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
PI5/SC1
PI4/SO1
PI3/SI1
PI2/SC0
PI1/SO0
PI0/SI0
VCC
PJ7/INT7/ATG
PJ6/INT6/TIN2
PJ5/INT5/TIN1
PJ4/INT4/TIN0
PJ3/INT3
PJ2/INT2
PJ1/INT1
PJ0/INT0
AN3
AN2
AN1
AN0
AVSS/AVRL
AVRH
AVCC
A24/P70
A23/P67
A22/P66
A21/P65
A20/P64
A19/P63
A18/P62
A17/P61
第 1 章 概要
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
PA2/CS2
PA1/CS1
CS0
PB7/IORD
PB6/IOWR
VCC
X0
X1
VSS
PB5/DEOP1
PB4/DACK1
PB3/DREQ1
PB2/DEOP0
PB1/DACK0
PB0/DREQ0
MD2
MD1
MD0
PG2/DEOP2
PG1/DACK2
PG0/DREQ2
PH7/SCL
PH6/SDA
PH5/TOT2
PH4/TOT1 *
PH3/TOT0 *
VSS
PH2/SC2
PH1/SO2
PH0/SI2
図 1.4-2 MB91306R/MB91307R の端子配列図
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
MB91306R
MB91307R
(TOP VIEW)
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
PI5/SC1
PI4/SO1
PI3/SI1
PI2/SC0
PI1/SO0
PI0/SI0
VCC
PJ7/INT7/ATG
PJ6/INT6/TIN2
PJ5/INT5/TIN1
PJ4/INT4/TIN0
PJ3/INT3
PJ2/INT2
PJ1/INT1
PJ0/INT0
AN3
AN2
AN1
AN0
AVSS/AVRL
AVRH
AVCC
A24/P70
A23/P67
A22/P66
A21/P65
A20/P64
A19/P63
A18/P62
A17/P61
P26/D22
P27/D23
D24
D25
D26
D27
D28
D29
D30
D31
VSS
A00
A01
A02
A03
A04
A05
A06
A07
VCC
A08
A09
A10
A11
A12
A13
A14
A15
VSS
P60/A16
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
PA3/CS3
PA4/CS4
PA5/CS5
VCCI
PA6/CS6
PA7/CS7
P80/RDY
P81/BGRNT
P82/BRQ
RD
UUB/WR0
P85/ULB/WR1
NMI
VCCI
VSS
INIT
P90/SYSCLK
P91
P92/MCLK
P93
P94/LBA/AS
P95/BAA
P96
P97/WE
P20/D16
P21/D17
P22/D18
P23/D19
P24/D20
P25/D21
*:イニシャルとリセット時"L"出力です。
VCC:3.3V系,VCCI:1.8V系の電源です。
9
第 1 章 概要
端子機能一覧
1.5
MB91307 シリーズの端子機能を説明します。
■ 端子機能説明
表 1.5-1 に , MB91307 シリーズの端子機能を示します。
表 1.5-1 端子機能表 (1 / 9)
端子番号
端子名
入出力
回路形式
85 ∼ 92
D16 ∼ D23
C
P20 ∼ P27
機能
外部データバスのビット 16 ∼ビット 23
外部バス 16 ビットモードのときのみ有効となります。
外部バス 8 ビットモードのときはポートとして使用でき
ます。
93 ∼ 100
D24 ∼ D31
C
外部データバスのビット 24 ∼ビット 31
102 ∼ 109
A00 ∼ A07
F
外部アドレス出力のビット 0 ∼ビット 7
111 ∼ 118
A08 ∼ A15
F
外部アドレス出力のビット 8 ∼ビット 15
120, 1 ∼ 7
A16 ∼ A23
F
外部アドレス出力のビット 16 ∼ビット 23
P60 ∼ P67
8
A24
設定によりポートとして使用できます。
F
P70
設定によりポートとして使用できます。
12 ∼ 15
AN0 ∼ AN3
D
A/D コンバータ用のアナログ入力端子です。
16 ∼ 19
INT0 ∼ INT3
I
[INT0 ∼ INT3] 外部割込み入力です。対応する外部割込
みを許可している間は , この入力を随時使用しています
ので , 意図的に行う以外は , ほかの機能による出力を停
止させておく必要があります。
PJ0 ∼ PJ3
20 ∼ 22
TIN0 ∼ TIN2
INT4 ∼ INT6
PJ4 ∼ PJ6
10
外部アドレス出力のビット 24
[PJ0 ∼ PJ3] 汎用入出力ポートです。
I
[TIN0 ∼ TIN2] リロードタイマ入力です。対応するタイ
マ入力を許可している間は , この入力を随時使用してい
ますので意図的に行う以外は , ほかの機能による出力を
停止させておく必要があります。
[INT4 ∼ INT6] 外部割込み入力です。対応する外部割込
みを許可している間は , この入力を随時使用しています
ので意図的に行う以外は , ほかの機能による出力を停止
させておく必要があります。
[PJ4 ∼ PJ6] 汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能表 (2 / 9)
端子番号
端子名
入出力
回路形式
23
ATG
I
INT7
SI0
[PJ7] 汎用入出力ポートです。
F
PI0
26
SO0
SC0
F
SI1
F
SO1
F
SC1
PI5
[SI1] UART1 のデータ入力です。UART1 が入力動作をし
ている間は , この入力を随時使用していますので意図的
に行う以外はほかの機能による出力を停止させておく必
要があります。
[PI3] 汎用入出力ポートです。
F
PI4
30
[SC0] UART0 のクロック入出力です。クロック出力は
UART0 のクロック出力指定が許可のときに有効になり
ます。
[PI2] 汎用入出力ポートです。この機能は UART0 のク
ロック出力機能が禁止のときに有効になります。
PI3
29
[SO0] UART0 のデータ出力です。この機能は UART0 の
データ出力指定が許可のときに有効になります。
[PI1] 汎用入出力ポートです。この機能は UART0 のデー
タ出力機能が禁止のときに有効になります。
PI2
28
[SI0] UART0 のデータ入力です。UART0 が入力動作をし
ている間は , この入力を随時使用していますので意図的
に行う以外は , ほかの機能による出力を停止させておく
必要があります。
[PI0] 汎用入出力ポートです。
PI1
27
[ATG ] A/D コンバータ外部トリガ入力です。A/D の起動
要因として選択した場合は , この入力を随時使用してい
ますので意図的に行う以外は , ほかの機能による出力を
停止させておく必要があります。
[INT7] 外部割込み入力です。対応する外部割込みを許可
している間は , この入力を随時使用していますので意図
的に行う以外は , ほかの機能による出力を停止させてお
く必要があります。
PJ7
25
機能
[SO1] UART1 のデータ出力です。この機能は UART1 の
データ出力指定が許可のときに有効になります。
[PI4] 汎用入出力ポートです。この機能は UART1 のデー
タ出力機能が禁止のときに有効になります。
F
[SC1] UART1 のクロック入出力です。クロック出力は
UART1 のクロック出力指定が許可のときに有効になり
ます。
[PI5] 汎用入出力ポートです。この機能は UART1 のク
ロック出力機能が禁止のときに有効になります。
11
第 1 章 概要
表 1.5-1 端子機能表 (3 / 9)
端子番号
端子名
入出力
回路形式
31
SI2
F
PH0
32
SO2
SC2
F
PH3
[SO2] UART2 のデータ出力です。この機能は UART2 の
データ出力指定が許可のときに有効になります。
[PH1] 汎用入出力ポートです。この機能は UART2 の
データ出力機能が禁止のときに有効になります。
F
PH2
35
[SI2] UART2 のデータ入力です。UART2 が入力動作をし
ている間は , この入力を随時使用していますので意図的
に行う以外はほかの機能による出力を停止させておく必
要があります。
[PH0] 汎用入出力ポートです。
PH1
33
機能
[SC2] UART2 のクロック入出力です。クロック出力は
UART2 のクロック出力指定が許可のときに有効になり
ます。
[PH2] 汎用入出力ポートです。この機能は UART2 のク
ロック出力機能が禁止のときに有効になります。
C
[TOT0] タイマ出力ポートです。この機能はタイマ出力
許可のときに有効になります。
[PH3] 汎用入出力ポートです。この端子はリセット時
"L" 出力です。
36
PH4
C
[TOT1] タイマ出力ポートです。この機能はタイマ出力
許可のときに有効になります。
[PH4] 汎用入出力ポートです。この端子はリセット時
"L" 出力です。
37
PH5
C
[TOT2] タイマ出力ポートです。この機能はタイマ出力
許可のときに有効になります。
[PH5] 汎用入出力ポートです。
38
SDA
Q
PH6
39
SCL
PH7
12
[SDA] I2C バス用入出力端子です。この機能は I2C が動
作許可のときに有効となります。I2C バスを使用すると
きはポート出力を Hi-Z にしておく必要があります。I2C
バス使用時はオープンドレイン端子です。
[PH6] 汎用入出力ポートです。
Q
[SCL] I2C バス用入出力端子です。この機能は I2C が動
作許可のときに有効となります。I2C バスを使用すると
きはポート出力を Hi-Z にしておく必要があります。I2C
バス使用時はオープンドレイン端子です。
[PH7] 汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能表 (4 / 9)
端子番号
端子名
入出力
回路形式
40
DREQ2
F
PG0
41
DACK2
43 ∼ 45
DEOP2
[DREQ2] DMA 外部転送要求入力です。DMA の起動要
因として選択した場合はこの入力を随時使用しています
ので , 意図的に行う以外はほかの機能による出力を停止
させておく必要があります。
[PG0] 汎用入出力ポートです。
F
PG1
42
機能
[DACK2] DMA 外部転送要求受付け出力です。この機能
は DMA の転送要求受付け出力指定が許可のときに有効
になります。
[PG1] 汎用入出力ポートです。この機能は DMA の転送
要求受付け出力指定が禁止のときに有効になります。
F
[DEOP2] DMA 外部転送終了出力です。この機能は DMA
の外部転送終了出力指定が許可のときに有効になりま
す。
DSTP2
[DSTP2] DMA 外部転送停止入力です。この機能は DMA
の外部転送停止入力指定が許可のときに有効になりま
す。
PG2
[PG2] 汎用入出力ポートです。この機能は DMA の外部
転送終了出力指定 , 外部転送停止入力指定が禁止のとき
に有効になります。
MD2 ∼ MD0
G
モード端子 2 ∼ 0 です。これらの端子の設定により基本
動作モードを設定します。VCC または VSS に接続してく
ださい。
46
DREQ0
F
PB0
47
DACK0
PB1
[DREQ0] DMA 外部転送要求入力です。DMA の起動要
因として選択した場合はこの入力を随時使用しています
ので , 意図的に行う以外はほかの機能による出力を停止
させておく必要があります。
[PB0] 汎用入出力ポートです。
F
[DACK0] DMA 外部転送要求受付け出力です。この機能
は DMA の転送要求受付け出力指定が許可のときに有効
になります。
[PB1] 汎用入出力ポートです。この機能は DMA の転送
要求受付け出力指定が禁止のときに有効になります。
13
第 1 章 概要
表 1.5-1 端子機能表 (5 / 9)
端子番号
端子名
入出力
回路形式
48
DEOP0
F
49
[DSTP0] DMA 外部転送停止入力です。この機能は DMA
の外部転送停止入力指定が許可のときに有効になりま
す。
PB2
[PB2] 汎用入出力ポートです。この機能は DMA の外部
転送終了出力指定 , 外部転送停止入力指定が禁止のとき
に有効になります。
DREQ1
F
DACK1
DEOP1
F
[DACK1] DMA 外部転送要求受付け出力です。この機能
は DMA の転送要求受付け出力指定が許可のときに有効
になります。
[PB4] 汎用入出力ポートです。この機能は DMA の転送
要求受付け出力指定が禁止のときに有効になります。
F
[DEOP1] DMA 外部転送終了出力です。この機能は DMA
の外部転送終了出力指定が許可のときに有効になりま
す。
DSTP1
[DSTP1] DMA 外部転送停止入力です。この機能は DMA
の外部転送停止入力指定が許可のときに有効になりま
す。
PB5
[PB5] 汎用入出力ポートです。この機能は DMA の外部
転送終了出力指定 , 外部転送停止入力指定が禁止のとき
に有効になります。
53
X1
54
X0
56
IOWR
PB6
14
[DREQ1] DMA 外部転送要求入力です。DMA の起動要
因として選択した場合はこの入力を随時使用しています
ので , 意図的に行う以外はほかの機能による出力を停止
させておく必要があります。
[PB3] 汎用入出力ポートです。
PB4
51
[DEOP2] DMA 外部転送終了出力です。この機能は DMA
の外部転送終了出力指定が許可のときに有効になりま
す。
DSTP0
PB3
50
機能
A
クロック ( 発振 ) 出力です。
クロック ( 発振 ) 入力です。
F
[IOWR] DMA フライバイ転送時の書込みストローブ出力
です。この機能は DMA フライバイ転送書込みストロー
ブ出力指定が許可のときに有効になります。
[PB6] 汎用入出力ポートです。この機能は DMA フライ
バイ転送書込みストローブ出力指定が禁止のときに有効
になります。
第 1 章 概要
表 1.5-1 端子機能表 (6 / 9)
端子番号
端子名
57
入出力
回路形式
F
IORD
PB7
58
CS0
CS1
F
CS2
F
CS3
F
CS4
F
CS5
F
[CS4] チップセレクト 4 出力です。この機能はチップセ
レクト 4 出力指定が許可のときに有効になります。
[PA4] 汎用入出力ポートです。この機能はチップセレク
ト 4 出力指定が禁止のときに有効になります。
F
PA5
64
[CS3] チップセレクト 3 出力です。この機能はチップセ
レクト 3 出力指定が許可のときに有効になります。
[PA3] 汎用入出力ポートです。この機能はチップセレク
ト 3 出力指定が禁止のときに有効になります。
PA4
63
[CS2] チップセレクト 2 出力です。この機能はチップセ
レクト 2 出力指定が許可のときに有効になります。
[PA2] 汎用入出力ポートです。この機能はチップセレク
ト 2 出力指定が禁止のときに有効になります。
PA3
62
[CS1] チップセレクト 1 出力です。この機能はチップセ
レクト 1 出力指定が許可のときに有効になります。
[PA1] 汎用入出力ポートです。この機能はチップセレク
ト 1 出力指定が禁止のときに有効になります。
PA2
61
[CS0] チップセレクト 1 出力です。この機能はチップセ
レクト 0 出力指定が許可のときに有効になります。
[PA1] 汎用入出力ポートです。この機能はチップセレク
ト 1 出力指定が禁止のときに有効になります。
PA1
60
[IORD] DMA フライバイ転送時の読出しストローブ出力
です。この機能は DMA フライバイ転送読出しストロー
ブ出力指定が許可のときに有効になります。
[PB7] 汎用入出力ポートです。この機能は DMA フライ
バイ転送読出しストローブ出力指定が禁止のときに有効
になります。
PA1
59
機能
[CS5] チップセレクト 5 出力です。この機能はチップセ
レクト 5 出力指定が許可のときに有効になります。
[PA5] 汎用入出力ポートです。この機能はチップセレク
ト 5 出力指定が禁止のときに有効になります。
C
−
VCCI
−
(MB91307B) [C] 内蔵レギュレータのパスコン端子です。
「第 2 章 デバイスの取扱いについて」を確認してくださ
い。
(MB91306R, MB91307R) [VCCI] 内部電源端子です。
(1.8V 系電源 )
15
第 1 章 概要
表 1.5-1 端子機能表 (7 / 9)
端子番号
端子名
入出力
回路形式
65
CS6
F
PA6
66
CS7
RDY
F
BGRNT
C
BRQ
[RDY] 外部レディ入力です。この機能は外部レディ入力
指定が許可のときに有効になります。
[P80] 汎用入出力ポートです。この機能は外部レディ入
力指定が禁止のときに有効になります。
F
P81
69
[CS7] チップセレクト 7 出力です。この機能はチップセ
レクト 7 出力指定が許可のときに有効になります。
[PA7] 汎用入出力ポートです。この機能はチップセレク
ト 7 出力指定が禁止のときに有効になります。
P80
68
[CS6] チップセレクト 6 出力です。この機能はチップセ
レクト 6 出力指定が許可のときに有効になります。
[PA6] 汎用入出力ポートです。この機能はチップセレク
ト 6 出力指定が禁止のときに有効になります。
PA7
67
機能
[BGRNT ] 外部バス開放受付け出力です。外部バスを開
放したときに L を出力します。出力指定が許可のときに
有効になります。
[P81] 汎用入出力ポートです。この機能は外部バス開放
受付け指定が禁止のときに有効になります。
P
P82
[BRQ] 外部バス開放要求入力です。外部バスを開放した
いときに "1" を入力します。入力指定が許可のときに有
効になります。
[P82] 汎用入出力ポートです。この機能は外部バス開放
要求指定が禁止のときに有効になります。
70
RD
M
外部バス読出しストローブ出力です。
71
WR0
UUB
F
外部バス書込みストローブ出力です。[UUB ] 16 ビット
SRAM 入出力マスクイネーブル上位側です。外部バスを
SRAM に設定したときに有効になります (WE /P97 が書
込みストローブになります ) 。
72
WR1
ULB
P85
F
外部バス書込みストローブ出力です。[ULB ] 16 ビット
SRAM 入出力マスクイネーブル上位側です。外部バスを
SRAM に設定したときに有効になります ( WE/P97 が書
込みストローブになります ) 。
[P85] 汎用入出力ポートです。イネーブル出力設定を禁
止にしたときに有効になります。
73
NMI
H
NMI 要求入力です。
74
HST
H
(MB91307B) ハードウェアスタンバイ入力です。
VCCI
-
(MB91307R) 内部電源端子です (1.8V 系電源 ) 。
INIT
B
外部リセット入力です。
76
16
第 1 章 概要
表 1.5-1 端子機能表 (8 / 9)
端子番号
端子名
入出力
回路形式
77
SYSCLK
F
P90
機能
[SYSCLK] システムクロック出力です。この機能はシス
テムクロック出力指定が許可のときに有効になります。
外部バス動作周波数と同じクロックを出力します。ス
トップモード , ハードウェアスタンバイモード時にク
ロック出力が停止します。
[P90] 汎用入出力ポートです。この機能はシステムク
ロック出力指定が禁止のときに有効になります。
78
P91
F
[P91] 汎用入出力ポートです。
79
MCLK
F
[MCLK] メモリ用クロック出力です。スリープモード ,
ストップモード , ハードウェアスタンバイモード時にク
ロック出力が停止します。
P92
[P92] 汎用入出力ポートです。この機能はクロック出力
指定が禁止のときに有効になります。
80
P93
F
[P93] 汎用入出力ポートです。
81
AS
F
[AS ] アドレスストローブ出力です。この機能はアドレ
スストローブ出力指定が許可のときに有効になります。
82
LBA
[LBA] バースト Flash ROM アドレスロード出力です。こ
の機能はアドレスロード出力指定が許可のときに有効に
なります。
P94
[P94] 汎用入出力ポートです。この機能はアドレスロー
ド出力 , アドレスストローブ出力指定が禁止のときに有
効になります。
BAA
[BAA] バースト Flash ROM アドレスアドバンス出力で
す。この機能はアドレスアドバンス出力指定が許可のと
きに有効になります。
P95
83
P96
84
WE
−
F
−
P97
[P95] 汎用入出力ポートです。この機能はアドレスアド
バンス出力 , コラムアドレスストローブ出力指定が禁止
のときに有効になります。
[P96] 汎用入出力ポートです。この機能はコラムアドレ
スストローブ出力指定が禁止のときに有効になります。
[WE ] 16 ビット SRAM 用書込みストローブ出力です。
この機能は書込みストローブ出力指定が許可のときに有
効になります。
[P97] 汎用入出力ポートです。この機能は書込みスト
ローブ出力指定が禁止のときに有効になります。
9
AVCC
−
A/D コンバータ用電源
10
AVRH
−
A/D コンバータ用電源
11
AVSS/AVRL
−
A/D コンバータ用電源 (GND)
17
第 1 章 概要
表 1.5-1 端子機能表 (9 / 9)
端子番号
端子名
入出力
回路形式
24, 55, 110
VCC
−
電源端子 (3.3 系 )
34, 52, 75,
101
VSS
−
電源端子 (GND)
18
機能
第 1 章 概要
1.6
入出力回路形式
入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式 (1 / 4)
分類
回
路
形
式
備
A
考
・発振帰還抵抗 約 1MΩ
X1
クロック入力
XO
スタンバイ制御
B
・CMOS ヒステリシス入力
プルアップ抵抗付き
(25 kΩ)
デジタル入力
C
・CMOS レベル入出力
スタンバイ制御あり
デジタル出力
デジタル出力
デジタル入力
スタンバイ制御
19
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 4)
分類
回
路
形
式
備
D
考
・アナログ入力
スイッチ付き
アナログ入力
制御
F
デジタル出力
・CMOS レベル出力
・CMOS レベルヒステリシ
ス入力
スタンバイ制御あり
デジタル出力
デジタル入力
スタンバイ制御
G
・CMOS レベル入力
スタンバイ制御なし
デジタル入力
20
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 4)
分類
回
路
形
式
備
H
考
・CMOS レベルヒステリシ
ス入力
スタンバイ制御なし
デジタル入力
I
デジタル出力
・CMOS レベル出力
・CMOS レベルヒステリシ
ス入力
スタンバイ制御なし
デジタル出力
デジタル入力
M
・CMOS レベル出力
デジタル出力
デジタル出力
21
第 1 章 概要
表 1.6-1 入出力回路形式 (4 / 4)
分類
回
路
形
式
備
P
デジタル出力
考
・CMOS レベル入出力
スタンバイ制御あり
プルダウン抵抗付き (25
kΩ)
デジタル出力
制御
デジタル入力
スタンバイ制御
Q
・オープンドレイン出力
CMOS レベルヒステリシ
ス入力
スタンバイ制御あり
オープンドレイン制御
デジタル出力
デジタル入力
スタンバイ制御
22
第2章
デバイスの取扱いについて
この章では , MB91307 シリーズの取扱い上の注意
について説明します。
2.1 デバイス取扱い上の注意
2.2 電源に関する取扱い上の注意
23
第 2 章 デバイスの取扱いについて
2.1
デバイス取扱い上の注意
ラッチアップ防止および端子処理について説明します。
■ ラッチアップ防止
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した
場合または VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象を
生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に至
ることがありますので , 使用に際しては最大定格を超えることのないよう十分に注意
してください。
■ 端子処理
以下に , 各種端子の処理と水晶発振回路の注意事項について説明します。
● 未使用入力端子
使用していない入力端子を開放のままにしておくと , 誤動作の原因となることがあり
ます。プルアップまたはプルダウンなどの処理をしてください。
● 電源端子
VCC, VSS 端子が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止す
るためにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻射
の低減 , グランドレベルの上昇によるストローブ信号の誤動作の防止および総出力電
流規格を遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続し
てください。また , 電流供給源からできるかぎり低インピーダンスで本デバイスの VCC,
VSS に接続するような配慮してください。
さらに , 本デバイスの近くで , VCC と VSS の間に 0.1µF 程度のセラミックコンデンサを
バイパスコンデンサとして接続することをお勧めいたします。
● モード端子 (MD0 ∼ MD2)
これらの端子は , VCC または VSS に直接接続して使用してください。ノイズにより誤っ
てテストモードに入ることを防ぐために , プリント板上の各モード端子と VCC または
VSS 間のパターン長をできる限り短くし, これらを低インピーダンスで接続するように
してください。
● 水晶発振回路について
X0, X1 端子の近辺のノイズは , 本デバイスを誤動作させる原因となります。X0 と X1
および水晶発振子 ( またはセラミック発振子 ), さらにグランドへのバイパスコンデン
サはできるかぎり近くに配置するようにプリント板を設計してください。
また , X0, X1 端子の回りをグランドで囲むようなプリント板アートワークは安定した
動作を期待できますので , 強くお勧めいたします。
各量産品において,ご使用される発振子メーカに発振評価依頼をしてください。
● NC 端子端子処理について
NC 端子は , 必ず開放にして使用してください。
24
第 2 章 デバイスの取扱いについて
● 外部クロックについて
外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , STOP モード ( 発振停止モード ) を併用す
る場合は , STOP モード時に X1 端子が "H" レベル出力で停止しますので , 出力どうし
の衝突をさけるために , 外部に 1 kΩ 程度の抵抗を入れるようにしてください。
図 2.1-1 に , 外部クロック使用例について示します。
図 2.1-1 外部クロック使用例 ( 通常の場合 )
X0
X1
MB91307シリーズ
[STOP モード ( 発振停止モード ) 使用時には X1 端子に抵抗を入れてくださ
い。] 最大入力周波数は , データシートを参照してください。
● PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本マイコンは PLL 内部の自動発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
● ポート 6, ポート 7 使用時の注意事項
外部バスインタフェースのアドレス出力と兼用になっているP60/A15∼P70/A24をポー
トとして使用した場合 , ほかのアドレス出力の端子変化の瞬間グリッジがのります。端
子に抵抗 , 容量等と付けていただきグリッジを押さえていただく必要があります。
■ 使用上の注意
● クロック制御部
INIT 端子への "L" レベル入力時には , 発振安定待ち時間を確保してください。
● ビットサーチモジュール
BSD0, BSD1, BSDC レジスタはワードアクセスのみです。
● プリフェッチ
リトルエンディアンに設定した領域に対して , プリフェッチを許可する場合 , 該当する
領域へのアクセスは , ワード (32 ビット ) 長アクセス限定としてください。
→ バイト / ハーフワードアクセスでは , 正しくアクセスできません。
● 外バスの設定
本品種は , 外バス 33MHz の保証となっています。
外バスは , 将来性を考え 66MHz 対応の機能を備えているため , 初期値はベースクロッ
ク (PLL の設定値で決定 ) と同率比となります。
DIVR1 ( 外バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを
66MHz に設定すると , 外バスも 66MHz になります。ベースクロックを変更する際には ,
外バスが33MHzを超えないように設定したのち, ベースクロックを変更してください。
25
第 2 章 デバイスの取扱いについて
● MCLK と SYSCLK
MCLK は , SLEEP/STOP モード時停止し , SYSCLK は , STOP モード時のみ停止すると
いう違いがあります。用途に応じ使い分けてください。
● I2C 入出力端子
本品種の SDA, SCL 端子は , "H" 出力しないように Pch トランジスタをオフした疑似
オープンドレイン端子です。そのため VCC 側にダイオードが付与された回路形式にな
りますので , 通信電圧は本品種の 3.3V 系電源に合わせてください (3.3V 系電圧にプル
アップする ) 。
● 兼用ポートの機能切換え
PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。た
だし , バス端子は外バスの設定により切り替わります。
● プルアップコントロール
外バス端子として使用する端子に対してプルアップ抵抗をつけると交流規格を保証で
きません。
また , プルアップ抵抗を設定してある PORT であっても , Hi-Z=1 のストップモード ,
ハードウェアスタンバイ時は無効となります。
● I/O ポート
ポートへのアクセスはバイトアクセスのみです。
● 低消費電力モード
• スタンバイモードに入れる場合は, 同期スタンバイモード(TBCR:タイムベースカウ
ンタ制御レジスタビット 8 SYNCS ビットにて設定します ) を使用した上で , 以下の
シーケンスを必ず使用してください。
(LDI
#value_of_standby, R0)
(LDI
#_STCR, R12)
STB
R0, @R12
; スタンバイ制御レジスタ (STCR) への書込み
LDUB
@R12, R0
; 同期スタンバイのための STCR リード
LDUB
@R12, R0
; もう一度 STCR をダミーリード
NOP
;タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
• モニタデバッガを使用される場合は , 以下のことを行わないでください。
- 上記命令列に対するブレークポイントの設定
- 上記命令列に対するステップ実行
● RAM 上の命令実行について
RAM に命令コードを配置する場合は ,0005_FFF8H ∼ 0005_FFFFH の最終アドレス 8 バ
イトには配置しないでください ( 命令コード配置禁止領域 ) 。
26
第 2 章 デバイスの取扱いについて
● 電源 ON 時の電流 (MB91V307B, MB91V307R のみ )
INIT = 0 の状態で電源 ON にすると , 約 300mA の電源電流が流れます。
INIT = 1 にすることで過電流はながれなくなり , INIT 以降 =0 にしても過電流はながれ
ません。
● ウオッチドッグタイマ機能について
本品種が備えているウオッチドッグタイマ機能は , プログラムが一定時間内にリセッ
ト延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われ
なかったときに , CPU をリセットするための機能です。そのため , 一度ウオッチドッグ
タイマ機能を有効にすると , リセットを掛けるまで動作を続けます。
例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い
ます。この例外にあてはまる条件については , ウオッチドッグタイマの機能説明の項を
参照してください。
なお , システムの暴走により上記状態となってしまった場合 , ウオッチドッグリセット
が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセット (INIT) をかけ
てください。
■ 制限事項
● リトルエンディアン
プリフェッチ許可領域では , リトルエンディアンに設定しないでください。
→正しくアクセスできません。
● TCR (Terminal and timing Control Register, 0x00000683)
TCR は , 書込み専用レジスタです。したがって , ビット操作命令ではアクセスしないで
ください。
TCR レジスタの BREN ビットの取扱いについて , ビット 7:BREN ビットに 1 を書いて
ある状態から , 0 をライトしてバス共有を禁止したい場合 , 必ず以下の手順で行ってく
ださい。この手順に従わない場合 , デバイスがハングアップする場合があります。
①ポート 8 機能レジスタ PFR8 のビット 2:BRQE ビットに 0 をライトする。
② TCR レジスタのビット 7:BREN ビットに 0 をライトする。
● RD /WD → CS ホールド延長サイクル
通常メモリ /IO アクセスタイプ設定 (ACR レジスタの TYPE3 ∼ TYPE0=0xxx) を行った
領域にて , RD /WD → CS ホールド延長サイクルを「あり」に設定 (AWR レジスタの
ビット 0=1 に設定 ) しているにもかかわらず , 動作 / 設定の組み合わせによっては , ホー
ルド延長サイクルが挿入されない場合があります。
ホールド延長サイクルが挿入されない条件は , 以下の条件です。
• RD /WD → CS ホールド延長サイクルを「あり」に設定していること。
(AWR レジスタのビット 0:W00=1 に設定 )
• 通常メモリ /IO アクセスタイプ設定領域であること。
(ACR レジスタのビット 3 ∼ビット 0:TYPE3 ∼ TYPE0=0xxx)
27
第 2 章 デバイスの取扱いについて
<注意事項>
MB91307 シリーズでは , このタイプしか設定できません。
• アドレス→ CS 遅延サイクルを「なし」に設定していること。
(AWR レジスタのビット 2:W02=0 に設定 )
• ライトリカバリサイクルを「0 サイクル」以外 ( リカバリあり ) に設定していること。
(AWR レジスタのビット 5, ビット 4:W05, W04=00 以外に設定 )
( 例 : 外部バス 16 ビット幅領域に対し word ライトを行った場合の最初 のライト )
• 上記設定下において , その設定領域に対し , バス幅より大きいデータサイズでのラ
イトアクセスを行った場合 , 複数に分割されたライトアクセスの最後のサイクル以
外のサイクルにて , RD /WD → CS ホールド延長サイクルが挿入されず , ホールド不
足が発生します。
<注意事項>
リードサイクルでは問題は発生しません。
この機能を使用する場合は , 以下のいずれかの設定をしてください。
• アドレス→ CS 遅延サイクルを「あり」に設定する。
(AWR レジスタのビット 2:W02=1 に設定 )
• ライトリカバリサイクルを「0 サイクル」に設定する。
(AWR レジスタのビット 5, ビット 4:W05, W04=00 に設定 )
● 符号付き除算命令 (DIV0S)
DIV0S 命令の直前の命令が , メモリアクセスを行う命令の場合 , 正しい計算結果が得ら
れない場合があります。また , DIV0S 命令と DIV1 命令が 4 バイトアラインで連続して
いない場合 , 正しい計算結果が得られない場合があります。
発生条件は , 以下のいずれかとなります。
• DIV0S 命令の直前がメモリアクセスを行う命令の場合。
<注意事項>
該当するメモリアクセスを行う命令 ( 計 58 命令 )
ST Ri, @- R15
ST Rs, @- R15
STB Ri, @Rj
STB Ri, @ (R13, Rj)
STB Ri, @ (R14, disp8)
LDUB @Rj, Ri
LDUH @ (R13, Rj) , Ri
LDUB @ (R13, Rj) , Ri
DMOVH @dir9, R13
DMOVB @dir8, R13
LDUH @ (R14, disp9) , Ri
LDUB @ (R14, disp8) , Ri
ANDH Rj, @Ri
ANDB Rj, @Ri
EORB Rj, @Ri
DMOV @R13+, @dir10
DMOVB @R13+, @dir8
DMOV @dir10, @R13+
DMOVB @dir8, @R13+
DMOV @R15+, @dir10
28
ST PS, @- R15
DMOVB R13, @dir8
LD @ (R13, Rj) , Ri
DMOV @dir10, R13
LD @ (R14, disp10) , Ri
AND Rj, @Ri
ORB Rj, @Ri
DMOVH @R13+, @dir9
DMOVH @dir9, @R13+
DMOV @dir10, @- R15
第 2 章 デバイスの取扱いについて
• DIV0S 命令と DIV1 命令が 4 バイトアラインされていない場合で , トレースモード
としてフルトレースモードを指定した場合。
• DIV0S 命令と DIV1 命令が 4 バイトアラインされていても , DIV1 命令にブレークポ
イントを設定した場合で , D-bus DMA 転送を行うか , トレースモードとしてフルト
レースモードを指定した場合。
本注意事項を回避するために , 下記のようにしてください。
(1) DIV0S 命令の前には , 必ず上記メモリアクセスを行う命令を置かないでください。
(2) D-bus DMA 転送およびフルトレースモードを設定しないでください。
また , 上記 (1) の条件を回避するコードを出力する場合は , コンパイラオプションとし
て - @ div0s 1 を指定してください。
SOFTUNE コンパイラ:
- SOFTUNE V3 をご使用の場合 :SOFTUNE コンパイラ V30L07R07 以降
- SOFTUNE V5 をご使用の場合 :SOFTUNE コンパイラ V50L04 以降
- SOFTUNE V6 をご使用の場合 :SOFTUNE コンパイラ V60L01 以降
● DMA ディマンド転送
スリープ中のディマンド転送が 1 回しか行われず , 以降先に進みません。また , 通常動
作時のディマンド転送においては , 転送効率の低下としてみえることがあります。
この動作は , ディマンド転送以外 (DREQ のエッジ検出モード等 ) では発生しません。
発生条件は , 次のとおりです。
• スリープ中に DMAC のディマンド転送を行った場合
- 転送を 1 回行った後 , DREQ が継続して入力されているにもかかわらず以降の転
送が進まない。
- なんらかの要因でスリープより復帰し, DMA転送以外の外部バス動作が発生する
と , 以降の転送が再開される。
• 通常動作中に DMAC のディマンド転送を行った場合
- 転送を 1 回行った後 , DMA 転送以外の外部バスアクセスが発生するまでは , 以降
の転送が進まない。
- キャッシュヒットの連続 , ないし内部 ROM 動作中など , 外部バスアクセスが行わ
れない場合 , ディマンド転送が進まなくなる。
• プリフェッチによる外部アクセスでは , ディマンド転送は復活しません。
本注意事項を回避するために , 次のようにしてください。
• スリープ中に DMAC ディマンド転送を使用しない。
• DMAC ディマンド転送中にスリープを使用しない。
● DMA 転送要因選択について (MB91306R/307R のみ )
DMA 転送要因選択として下記の設定を行った場合 , 起動要因がクリアされません。
使用しないようにお願い致します。
29
第 2 章 デバイスの取扱いについて
DMA コントロール / ステータスレジスタ DMACA0 ∼ DMACA4 内
1S4 ∼ 0 ビット ( 転送要因選択 )
10110 外部割込み 0
10111 外部割込み 1
11000 リロードタイマ 0
11001 リロードタイマ 1
11010 リロードタイマ 2
11011 外部割込み 2
11100 外部割込み 3
11101 外部割込み 4
11110 外部割込み 5
● R15 を使用した RMW 命令
下記の命令を実行した場合 , R15 として SSP, USP* の値が使われず , 結果として誤った
値をメモリへ書き込んでしまいます。以下の命令は , コンパイラでは発生されません。
AND R15, @Rj
ANDH R15, @Rj
ANDB R15, @Rj
OR R15, @Rj
ORH R15, @Rj
ORB R15, @Rj
EOR R15, @Rj
EORH R15, @Rj
EORB R15, @Rj
XCHB @Rj, R15
*: R15 は実体がなく , プログラムから R15 をアクセスした場合 , PS レジスタの "S" フ
ラグの状態によって , SSP あるいは USP がアクセスされます。
本注意事項を回避するために , 次のようにしてください。
• 上記10命令をアセンブラで記述される場合は, R15以外の汎用レジスタを指定する。
● PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
ご使用時に割込み処理ルーチンでブレークしたり , PS レジスタ内のフラグの表示内容
が更新されたりする場合があります。いずれの場合も , EIT から復帰後以降に , 正しく
再処理を行うように設計されていますので , EIT 前後の動作は仕様どおりの処理を行い
ます。
1. DIVOU/DIVOS 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b)
ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下のような動作を行う場合があります。
(1) D0,D1 フラグが , 先行して更新されます。
(2 ) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIVOU/DIVOS 命令が実行され , D0,D1 フラグが (1) と同じ値
に更新されます。
2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR/
STILM/MOV Ri,PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
30
第 2 章 デバイスの取扱いについて
(3) EIT から復帰後 , 上記命令が実行され , PS レジスタが (1) と同じ値に更新されま
す。
● I-bus メモリに関する注意
RETI 命令直前で , 命令キャッシュの制御レジスタおよび命令 RAM へのデータアクセ
スを行わないでください。
■ デバッガ関連の注意事項
● RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , 該当割込み処理ルーチンだ
けを繰り返して実行いたします。その結果 , メインルーチンや割込みレベルの低いプロ
グラムの実行が行われなくなります。
( 例えば , タイムベースタイマの割込みを許可していた場合 , RETI をステップ実行する
と , 必ずタイムベースのルーチンの先頭でブレークすることになります。)
該当割込み処理ルーチンのデバッグが不要になった段階で , 該当割込みを禁止してく
ださい。または , RETI 命令をステップ実行しないようにしてください。
● ブレーク機能
1. ハードウェアブレーク ( イベントブレーク含む ) の対象アドレスが現在のシステム
スタックポインタのアドレスや , スタックポインタを含む領域に設定されていると ,
ユーザプログラムに実際のデータアクセス命令がないにもかかわらず , 1 命令実行
後にブレークしてしまいます。
回避するために , システムスタックポインタのアドレスを含む領域に対する ( ワー
ド ) アクセスを , ハードウェアブレーク ( イベントブレーク含む ) の対象に設定しな
いでください。
2. メモリから分岐先アドレスを読み込む命令と分岐命令の間に , ウェイトが発生する
命令を実行すると , 本来命令アライメントエラーが発生しないところで命令アライ
メントエラーが発生し ICE がブレークし (CPU 異常ブレーク ) 命令実行が停止しま
す。
また , 上記の現象が発生するタイミングでは , 分岐先アドレスに命令ブレークを設
定しても , ブレークしない場合があります。
例:
LD @R1, R0
; read F-bus RAM
LD @R2, R3
; read F-bus RAM
CALL @R0
; 不要なアライメントエラーが発生 , あるいはブレークしない
可能性があります。
上記制限事項については , 次のようにしてください。
誤ったアライメントエラーの発生に関しましては , デバッガの機能設定にてアライメ
ントエラーの機能を OFF にしてご使用ください。
正しくブレークしない件に関しましては , デバッガの機能設定にて , 使用ブレークを
ハードウェアブレークではなく , ソフトウェアブレーク使用の設定にしてご使用くだ
さい。
31
第 2 章 デバイスの取扱いについて
● トレースモード
デバッグ時のトレースモードを , 内蔵 FIFO を出力バッファとした「フルトレースモー
ド」に設定した場合 , 電流が増加したり , D-bus DMA アクセスがロストする場合があ
ります。
発生条件は , 次のとおりです。
• フルトレースモード中に , D-bus への DMA 転送またはスタンバイを使用した場合
本注意事項を回避するために , 次のようにしてください。
• 内部トレースモードを使用する。
● アライメントエラー ( エミュレータデバッガ )
命令アライメントエラーブレークを許可していた場合 , メモリから分岐先アドレスを
読み込む命令と分岐命令の間にウェイトが発生する命令を実行すると , 本来命令アラ
イメントエラーが発生しないところで命令アライメントエラーが発生し , ICE がブ
レークし命令実行が停止します。その際 , unknown break factor や CPU 異常ブレーク ,
といったメッセージが表示されます。
また , 上記現象が発生するタイミングでは , 分岐先アドレスに命令ブレークを設定して
も , ブレークしない場合があります。
発生条件として , 以下の 3 種類の命令が連続実行された場合です。
①ウェイトが発生する下記 LD/DMOV 命令 ( 分岐先アドレスをリード )
LD @Rj, Ri
LDUH @Rj, RI
LD @ (R13, Rj) , Ri
LDUH @ (R13, Rj) , Ri
LDUB @ (R13, Rj) , Ri
LD @ (R14, disp10) , Ri
LDUH @ (R14, disp9) , Ri
LDUB @ (R14, disp8) , Ri
LD @R15+, Ri
LD @R15+, Rs
LD @R15+, PS
DMOV @dir10, R13
DMOVH @dir9, R13
DMOVB @dir8, R13
②ウェイトが発生する命令 (F-bus RAM や外部メモリへのリードなど )
③ JMP @Ri, JMP:D @Ri, CALL @Ri, CALL:D @Ri, RET, RET:D の分岐命令
例:
LD @R1, R0
;read F-bus RAM
LD @R2, R3
;read F-bus RAM
CALL @R0
本注意事項を回避するために , 次のようにしてください。
命令アライメントエラーブレークを許可していた場合 , メモリから分岐先アドレスを
読み込む命令と分岐命令の間にウェイトが発生する命令を実行すると , 本来命令アラ
イメントエラーが発生しないところで命令アライメントエラーが発生し, ICEがブレー
クし , 命令実行が停止します。その際 , unknown break factor や CPU 異常ブレーク , と
いったメッセージが表示されます。
また , 上記現象が発生するタイミングでは , 分岐先アドレスに命令ブレークを設定して
も , ブレークしない場合があります。
回避方法として , それぞれ , 以下の対応をお願いします。
①誤ったアライメントエラーの発生については , デバッガの機能設定にてアライメン
トエラーの機能をオフにしてご使用ください。
②正しくブレークしない件については , 分岐先アドレスを避けてブレークポイントを
設定してください。
32
第 2 章 デバイスの取扱いについて
● ソフトウェアブレーク (INTE 命令 ) とユーザ割込み /NMI 同時発生
INTE 命令とユーザ割込み ( ユーザ NMI を含む ) を同時に受け付けると , エミュレータ
デバッガにて , 以下の現象が発生します。
• ユーザが設定したブレークポイントでないところを示して停止する。
( ユーザ割込み /NMI 処理ルーチンの先頭を示して停止する。)
• 停止後の再実行が正しく行われない。
本現象が発生した場合は , ソフトウェアブレークではなく , ハードウェアブレークをご
使用ください。また , モニタデバッガをご使用の場合は , 該当箇所にブレークを設定し
ないようにしてください。
● オペランドブレーク
DSU のオペランドブレークとして設定している領域にスタックポインタがあると , 誤
動作の原因となります。
システムスタックポインタのアドレスを含む領域に対するアクセスを , データイベン
トブレークの対象にしないでください。
33
第 2 章 デバイスの取扱いについて
2.2
電源に関する取扱い上の注意
電源投入時の端子の扱いや処理など , 電源に関する注意事項について説明します。
■ 電源投入時の処理
電源投入直後は , 必ず INIT 端子で設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L"レベル入力を発振回路の要求する安定待ち時間の間持続してください( INIT端子に
よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
■ 電源投入時の原発振入力の処理
電源投入時は , 必ず発振安定待ち時間が解除されるまでの間 , クロックを入力してくださ
い。
■ 電源投入時のハードウェアスタンバイ (MB91307B,MB91V307B のみ )
電源投入直後からハードウェアスタンバイ要求が発生している場合 , INIT 端子による
設定初期化リセット (INIT) が優先されますが , その後 INIT 端子による設定初期化リ
セット (INIT) が解除されてハードウェアスタンバイ状態に遷移した場合 , 発振安定待
ち時間の設定は最大値に初期化され , ハードウェアスタンバイ要求が解除された後の
発振安定待ち時間は最大値となります。
■ 内蔵 DC-DC レギュレータ
本品種は , レギュレータを内蔵しています。VCC 端子に 3.3V を供給し , C 端子にはレ
ギュレータ用に 0.1µF 程度のパスコンを必ず入れてください。
また , A/D コンバータには別途 3.3V 電源が必要です。
3.3 V
VCC
C
AVCC
AVRH
AVSS/AVRL
VSS
0.1 µF
GND
■ 電源投入 / 切断時の注意事項 (MB91306R, MB91307R)
VCCI ( 内部電源 1.8V 系 ) と VCC ( 外部端子電源 3.3V 系 ) の電源投入 / 切断時の注意事項
VCCI ( 内部 ) が切断されている条件で VCC ( 外部 ) のみを継続的 (1 分間を目安 ) に印
加することは , LSI の信頼性上の問題がありますので避けてください。
VCC ( 外部 ) を OFF 状態から ON 状態に復帰させる際には , 電源ノイズなどの影響によ
り , 回路の内部状態が保持できない場合があります。
34
投入時
VCCI ( 内部 ) ⇒ VCC ( 外部 ) ⇒ 信号
切断時
信号 ⇒ VCC ( 外部 ) ⇒ VCCI ( 内部 )
第 2 章 デバイスの取扱いについて
■ STOP モード使用時の注意
本品種に内蔵されているレギュレータは , STOP モード時に停止します。STOP 中に内
部のリーク電流 (ICCH) の増加や , 通常動作中にノイズに起因する誤動作 , または電源
の異常などによってレギュレータが停止した場合などに , 内部の 2.5V 電源が動作保証
電圧以下に低下してしまうことがあります。このため , 内蔵レギュレータを使用して
STOP モードを使用する場合には , 必ず外部から 3.3V 電源が低下しないように電源を
補助してください。また , そのような状態になった場合でも , リセットの入力により内
蔵レギュレータを再起動させることができます。
この場合には , 発振安定待ち時間リセットを "L" レベルにしてください。
3.3 V
VCC
2.4 kΩ
7.6 kΩ
C
0.1μF
VSS
GND
35
第 2 章 デバイスの取扱いについて
36
第3章
CPU および制御部
この章では , MB91307 シリーズの機能を知るため
に , アーキテクチャ , 仕様 , 命令などの基本的なこ
とがらについて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 命令キャッシュ
3.4 専用レジスタ
3.5 汎用レジスタ
3.6 データ構造
3.7 ワードアライメント
3.8 メモリマップ
3.9 分岐命令
3.10 EIT ( 例外 , 割込み , トラップ )
3.11 リセット ( デバイスの初期化 )
3.12 クロック発生制御
3.13 デバイス状態制御
3.14 動作モード
37
第 3 章 CPU および制御部
3.1
メモリ空間
MB91307 シリーズの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニ
アにアクセスを行います。
■ メモリマップ
図 3.1-1 に , 本品種のメモリ空間を示します。
図 3.1-1 メモリマップ
MB91307B/R
内ROM外バスモード
MB91306R
内ROM外バスモード
MB91307B/R
MB91306R
外バスモード
I/O
I/O
0000 0000H
0000 0000H
I/O
0000 0400H
0000 0400H
I/O
I/O
I/O
0001 0000H
ダイレクト
アドレッシング領域
I/Oマップ参照
0001 0000H
アクセス禁止
アクセス禁止
アクセス禁止
0004 0000H
0004 0000H
内蔵RAM64KB
0005 0000H
内蔵RAM128KB
0006 0000H
外部領域
アクセス禁止
0006 0000H
アクセス禁止
0010 0000H
0010 0000H
外部領域
外部領域
外部領域
FFFF FFFFH
● ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクトアドレッシング領域は , アクセスするデータのサイズにより , 以下のように
異なります。
38
• バイトデータアクセス
:000H ∼ 0FFH
• ハーフワードデータアクセス
:000H ∼ 1FFH
• ワードデータアクセス
:000H ∼ 3FFH
第 3 章 CPU および制御部
■ メモリ空間内の内蔵 RAM 領域
MB91307 シリーズは , 内蔵 RAM を 128K バイト搭載しています。
この RAM を有効にするためには , モードベクタ値を内部 ROM 外部バスモード
(ROMA=1) にしておく必要があります。
本品種での使用上の注意点を , 以下に列記します。
• リセットベクタは , 000F_FFFCH 固定です。
• MB91307 シリーズの場合 , 128K バイト RAM 領域は , 0004_0000H ∼ 0005_FFFFH に
配置されます。領域 0006_0000H ∼ 000F_FFFFH はアクセス禁止です。
• RAM を使用する場合は , モードベクタで内部 ROM 外部バスモードにしてください。
内部 ROM 外部バスモードにすると , 内蔵 RAM 領域は使用できますが , ベクタ領域
000F_FFxxH が内部領域になり外部にアクセスできなくなりますので , 以下の説明を
参照して使用してください。
• RAM に命令コードを配置する場合は , 0005_FFFF8H ∼ 0005_FFFFH の最終アドレス
8 バイトには配置しないでください ( 命令コード配置禁止領域 ) 。
図 3.1-2 に , リセット解除後およびモード設定後のメモリマップを示します。モード設
定後に , 内蔵 RAM 領域が有効になります。
図 3.1-2 内蔵 RAM 領域の配置
モード設定後
内ROM外バスモード
リセット解除後
0000 0000H
MB91307B/R
MB91306R
I/O
ダイレクト
アドレッシング領域
I/O
I/O
I/O
I/Oマップ参照
I/O
I/O
アクセス禁止
アクセス禁止
0000 0400H
0001 0000H
アクセス禁止
0004 0000H
0005 0000H
内蔵RAM64KB
外部領域
内蔵RAM128KB
外部領域
アクセス禁止
外部領域
外部領域
0006 0000H
アクセス禁止
0010 0000H
外部領域
FFFF FFFFH
39
第 3 章 CPU および制御部
■ ユーザプログラムの初期化
内蔵 RAM の使用方法を , 例を示して説明します。
MB91306R の場合は , 内蔵 RAM 領域が違うだけで設定は同じです。
● ハードウェア設計条件
図 3.1-3 ハードウェアの接続
MB91307シリーズ
普通の設計
CS0
外部ROM
A19~A1
• 1M バイトの外部 ROM を 0010_0000H から配置した場合を想定します。
リンカでプログラムをここへ配置します ( このアドレス以外でも以下の説明への適
用は可 ) 。
• アドレスは A19 ∼ A1 (1M バイト ) を ROM に接続してあり , それ以上のアドレスは
CS0 を用いることとします。
• モード端子 (MD2, MD1, MD0) は外部 ROM モードベクタに設定します。
• リセットベクタは 001F_FFFCH に記載します。同様に , モードベクタは 001F_FFF8H
に記載します。
● リセット解除直後
図 3.1-4 リセット解除直後のアドレスマップ
0000 0000H
MB91307シリーズ
0000 0400H
CS0
外部ROM
外部ROM
FFFF FFFFH
ROMの1MBの空間が
アドレスマップ上
繰り返して見える。
• リセット解除後 , CPU は , 000F_FFF8H からモードベクタを , 000F_FFFCH からリセッ
トベクタを取り込もうとしますが , 外部 ROM モードベクタの設定になっているた
め外部へ取りにいきます。ところが CS0 の初期値により , 外部空間は 1M バイトの
外部 ROM が繰り返して見える状態になっているので , モードベクタ , リセットベク
タそのものは , 外部 ROM の 001F_FFF8H および 001F_FFFCH に記憶されているもの
40
第 3 章 CPU および制御部
をそれぞれ取り込むことになります。
• 分岐先はリンカによって 001X_XXXXH のいずれかに入るようになっているので , 以
降のプログラム実行はこのあたりで行われます。
● ユーザプログラム初期化ステップ
図 3.1-5 初期化ステップ 1 のアドレスマップ
0000 0000H
0004 0000H
MB91307シリーズ
内部RAM
0006 0000H
CS0
外部ROM
0010 0000H
外部ROM
001F FFFFH
FFFF FFFFH
ROMの1MBの空間
がアドレスマップの
1MBと一致する。
割込みテーブル (TBR) を 001F_FFXXH に設定し , その後各種の初期化を行います。
この過程で chip select も設定しますが , このとき CS0 のアドレスを 001X_XXXXH で有
効になるように設定します。設定の前後では CS0 のデコード結果は変わらないので ,
CPU は外部 ROM 上のプログラムをそのまま実行し続けます。
41
第 3 章 CPU および制御部
3.2
内部アーキテクチャ
MB91307 シリーズは , RISC アーキテクチャを採用すると同時に , 組込み用途に向
け , 高機能命令を導入した高性能コアです。
■ 特長
• RISC アーキテクチャの採用
基本命令 :1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ :32 ビット× 16 本
• 4G バイトのリニアなメモリ空間
• 乗算器の搭載
- 32 ビット× 32 ビット乗算 :5 サイクル
- 16 ビット× 16 ビット乗算 :3 サイクル
• 割込み処理機能の強化
- 高速応答速度 :6 サイクル
- 多重割込みのサポート
- レベルマスク機能 :16 レベル
• I/O 操作用命令の強化
- メモリ - メモリ転送命令
- ビット処理命令
• 高いコード効率
基本命令語長 :16 ビット
• 低消費電力
スリープモード / ストップモード
• ギア機能
42
第 3 章 CPU および制御部
■ 内部アーキテクチャ
MB91307 シリーズの CPU は , 命令バスとデータバスが独立したハーバードアーキテク
チャ構造を採用しています。命令バス (I-bus) にはオンチップの命令キャッシュが接続
されています。32 ビット←→ 16 ビットバスコンバータはバス (F-bus) に接続され , CPU
と周辺リソースとのインタフェースを実現します。ハーバード←→プリンストンバス
コンバータは I-bus, D-bus 双方に接続され , CPU とバスコントローラとのインタフェー
スを実現します。
図 3.2-1 に , 内部アーキテクチャの接続図を示します。
図 3.2-1 内部アーキテクチャ
FRex CPU
D-bus
I-bus
I address
32
I data
32
命令キャッシュ
D address
32
D data
32
ハーバード
プリンストン
バスコンバータ
F Address
32
F Data
32
RAM
32ビット
16ビット
バスコンバータ
16
R-bus
周辺リソース
F-bus
バスコントローラ
43
第 3 章 CPU および制御部
● CPU
CPU は , 32 ビット RISC の MB91307 シリーズのアーキテクチャをコンパクトにインプ
リメントしたものです。
1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用してい
ます。パイプラインは , 以下のステージから構成されています。
• 命令フェッチ (IF)
: 命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID)
: フェッチした命令をデコードします。レジスタの読出しも行
います。
• 実行 (EX)
: 演算を実行します。
• メモリアクセス (MA) : メモリに対するロードまたはストアのアクセスを 行います。
• ライトバック (WB)
: 演算結果 ( またはロードされたメモリデータ ) をレジスタに
書き込みます。
図 3.2-2 命令パイプライン
CLK
命令1
WB
命令2
MA
WB
命令3
EX
MA
WB
命令4
ID
EX
MA
WB
命令5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前に書込みバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロードストア命令 , 遅延スロットを持たない分岐命令および複数
サイクル命令では , 命令の実行に複数のサイクルが必要となります。また , 命令の供給
が遅い場合も命令の実行速度が低下します。
● 命令キャッシュ
オンチップの命令キャッシュにより , 外部高速メモリとそれに関連する制御ロジック
のコストを発生することなく高性能なシステムを構築することができます。外部バス
の速度が遅い場合にも , CPU への命令供給を高速に行うことができます。命令キャッ
シュの詳細については , 「3.3 命令キャッシュ」で説明します。
44
第 3 章 CPU および制御部
● 32 ビット←→ 16 ビットバスコンバータ
32 ビット幅でアクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus とのイン
タフェースをとり , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16
ビット幅アクセスに変換して R-bus へアクセスします。内蔵周辺回路の一部には , アク
セス幅に関して制限のあるものがあります。
● ハーバード←→プリンストンバスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は , 命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは , 単一バスのプリンストンアーキテクチャ
構造です。このバスコンバータは , CPU の命令アクセスとデータアクセスに優先順位
をつけ , バスコントローラへのアクセスを制御します。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
■ 命令概要
MB91307 シリーズは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論
理演算とビット操作およびダイレクトアドレッシング命令をサポートしています。各
命令は , 16 ビット長 ( 一部の命令は 32 ビット長 , 48 ビット長 ) ですので , 優れたメモ
リ使用効率を持ちます。命令セットの一覧は , 付録を参照してください。
命令セットは , 以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
算術演算命令には , 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シ
フト , 算術演算シフト ) があります。加算命令と減算命令については , 多ワード長演算
で使用するキャリ付き演算や , アドレス計算に便利なフラグ値を変化させない演算も
可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令があります。
また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま
す。
算術演算命令は , すべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算し
ます。
45
第 3 章 CPU および制御部
● ロードとストア
ロードとストアは , 外部メモリに対して読出しと書込みを行う命令です。
また , チップ内の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアは , バイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。
また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については
ディスプレースメント付きレジスタ間接やレジスタインクリメント / デクリメント付
きレジスタ間接のメモリアドレッシングも可能です。
● 分岐
分岐グループは , 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロッ
トを持つものと持たないものがあり , 用途に応じて最適化することができます。分岐命
令の詳細については「3.9 分岐命令」で説明します。
● 論理演算とビット操作
論理演算命令は, 汎用レジスタ間, または汎用レジスタとメモリ (およびI/O) 間でAND,
OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O)
の内容を直接操作することができます。メモリアドレッシングは , 一般的なレジスタ間
接アドレッシングです。
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率にアクセスすることができます。一部の命令については ,
レジスタインクリメント / デクリメント付きレジスタ間接のメモリアドレッシングも
可能です。
● その他
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張等を行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
46
第 3 章 CPU および制御部
3.3
命令キャッシュ
命令キャッシュの詳細を説明します。
■ 概要
命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセス
する場合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降のアク
セス速度を速めるために使用します。
命令キャッシュデータ RAM は , RAM モードに設定することにより , ソフトウェアで
直接読出しアクセスおよび書込みアクセスができるようになります。また , 命令キャッ
シュを 1 度 ON にしてから OFF にする場合には , 必ず「3.3.4 命令キャッシュを使用す
る場合の設定方法」の注意事項に記載されているサブルーチンを使用してください。
■ 命令キャッシュのキャッシュ可能領域
• 命令キャッシュは , 外部バス空間のみをキャッシュ可能とします。
• DMA転送で外部メモリの内容が更新されたとしても, 命令キャッシュの内容とのコ
ヒーレンシはとりません。
このような場合は命令キャッシュをフラッシュすることで , コヒーレンシを保って
ください。
• チップセレクトの領域ごとに非キャッシュ領域に設定することができます。この場
合でもキャッシュオフに比べて 1 サイクルのペナルティを受けます (「第 4 章 外部
インタフェース」のチップセレクトの記述を参照 ) 。
47
第 3 章 CPU および制御部
命令キャッシュの構成
3.3.1
命令キャッシュの構成について説明します。
■ 概略仕様
命令キャッシュの概略仕様は , 以下のとおりです。
• FR の基本命令長 :2 バイト
• ブロックの配置方式 :2 ウェイセットアソシアティブ方式。
• ブロック :1 ウェイは 32 ブロック構成。
1 ブロックは 16 バイト (=4 サブブロック )
1 サブブロックは 4 バイト (=1 バスアクセス単位 )
■ 命令キャッシュの構成
図 3.3-1 に , 命令キャッシュの構成を示します。
図 3.3-1 命令キャッシュの構成
4バイト
ウェイ1
キャッシュタグ
32 ブロック
・
・
・
4バイト
4バイト
4バイト
13
12
11
4バイト
11
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
・
・
・
・
・
・
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック31
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
ウェイ2
32 ブロック
・
・
・
キャッシュタグ
48
・
・
・
・
・
・
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック31
第 3 章 CPU および制御部
■ 命令キャッシュタグ
図 3.3-2 に , 命令キャッシュタグの構成を示します。
図 3.3-2 命令キャッシュタグの構成
ウェイ1
31
09
08
アドレスタグ
空き
07
06
05
04
03
02
01
00
SBV3
SBV2
SBV1
SBV0
TAGV
空き
LRU
ETLK
01
00
サブブロックバリッド
TAGバリッド
LRU
エントリロック
ウェイ2
31
09
08
アドレスタグ
空き
07
06
05
04
03
SBV3
SBV2
SBV1
SBV0
TAGV
サブブロックバリッド
02
空き
ETLK
TAGバリッド
エントリロック
以下に , 命令キャッシュタグの各ビットの機能を説明します。
[ ビット 31 ∼ビット 9] アドレスタグ
アドレスタグには , 対応するブロックにキャッシュされている命令のメモリアドレ
スの上位 23 ビットが格納されています。ブロック i のサブブロック k に格納されて
いる命令データのメモリアドレス IA は ,
IA= アドレスタグ× 211+i × 24+k × 22
となります。
CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ
グ検査の結果に従い , 以下の動作をします。
• 要求された命令データがキャッシュ内に存在するとき ( ヒット )
キャッシュから CPU へサイクル内にデータを転送します。
• 要求された命令データがキャッシュ内に存在しないとき ( ミス )
外部アクセスで取得されたデータを CPU とキャッシュが同時に取得します。
49
第 3 章 CPU および制御部
[ ビット 7 ∼ビット 4] サブブロックバリッド
サブブロックバリッドを "1" に設定したとき , 対応するサブブロックにタグで示さ
れたアドレスの実行命令データがエントリされています。サブブロックには , 通常
2 命令が格納されます ( 即値転送命令を除く ) 。
[ ビット 3] TAG バリッドビット
アドレスタグの値が有効かどうかを示します。このビットが 0 のときは , サブバリッ
ドビットに無関係に, このブロックはインバリッド状態になります (フラッシュ時) 。
[ ビット 1] LRU ( ウェイ 1 のみ )
ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最
後にアクセスしたエントリがウェイ1/ウェイ2のどちらであるかを示します。
LRU=1
のときはウェイ 1 の , LRU=0 のときはウェイ 2 のセットのエントリが最後にアクセ
スしたことを示します。
[ ビット 0] エントリロック
タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK=1 の
ときにロック状態で , キャッシュミス時にエントリは更新されません。ただし , 無
効なサブブロックは更新されます。ウェイ 1, ウェイ 2 ともにエントリロックされて
いるときにキャッシュミスした場合は , キャッシュミス判定の 1 サイクルをロスし
た後 , 外部メモリをアクセスします。
<注意事項>
RETI 命令直前で , 命令キャッシュの制御レジスタおよび命令キャッシュの RAM へのデー
タアクセスを行わないでください。
50
第 3 章 CPU および制御部
3.3.2
制御レジスタの構成
制御レジスタには , キャッシュサイズレジスタ (ISIZE) と , 命令キャッシュコント
ロールレジスタ (ICHCR) があります。
これらのレジスタの機能について説明します。
■ キャッシュサイズレジスタ (ISIZE) のビット構成
図 3.3-3 に , キャッシュサイズレジスタ (ISIZE) のビット構成を示します。
図 3.3-3 キャッシュサイズレジスタ (ISIZE) のビット構成
ビット
7
6
5
4
3
2
アドレス : 00000307H
―
―
―
―
―
―
―
―
―
―
―
―
1
0
SIZE1 SIZE0
R/W
初期値
------00B
R/W
以下に , キャッシュサイズレジスタ (ISIZE) の各ビットの機能を説明します。
[ ビット 1, ビット 0] SIZE1, SIZE0
これらのビットは , 命令キャッシュの容量を設定するビットです。設定により
キャッシュサイズと IRAM 容量 , RAM モード時のアドレスマップが図 3.3-4 に示す
ように変化します。キャッシュ容量を変更した場合は , 必ずフラッシュおよびエン
トリロック解除を行ってからキャッシュを ON にしてください。
表 3.3-1 キャッシュサイズレジスタ
SIZE1
SIZE0
0
0
1K バイト
0
1
設定禁止
1
0
設定禁止
1
1
設定禁止
容量
51
第 3 章 CPU および制御部
図 3.3-4 CACHE-3 RAM のアドレスマップ
Address
00010000
00010200
00010400
00010600
00010800
・・・・
00014000
00014200
00014400
00014600
00014800
・・・・
00018000
00018200
00018400
00018600
00018800
・・・・
0001C000
0001C200
0001C400
0001C600
0001C800
・・・・
00020000
Cache 1K
RAM off
TAG0
Cache 1K
RAM on
-
・・・・
TAG1
・・・・
・・・・
way0
・・・・
$RAM0
・・・・
way1
・・・・
$RAM1
・・・・
・・・・
TAG RAM
00010000
00010004
00010008
0001000C
00010010
00010014
00010020
52
<-00x番地のエントリー
<-00xのミラー
<-01x番地のエントリー
<-01xのミラー
$RAM
00012000
00012004
00012008
0001200C
00012010
00012014
000番地の命令(SBV0)
004番地の命令(SBV1)
008番地の命令(SBV2)
00C番地の命令(SBV3)
010番地の命令(SBV0)
014番地の命令(SBV1)
018番地の命令(SBV2)
01C番地の命令(SBV3)
第 3 章 CPU および制御部
■ 命令キャッシュコントロールレジスタ (ICHCR)
命令キャッシュコントロールレジスタ (ICHCR:I-CacHe Control Register) は, 命令キャッ
シュの動作を制御します。
ICHCR への書込みは , 以降 3 サイクル以内にフェッチされる命令のキャッシュ動作に
影響を与えません。
図 3.3-5 に , 命令キャッシュコントロールレジスタ (ICHCR) のビット構成を示します。
図 3.3-5 命令キャッシュコントロールレジスタ (ICHCR) のビット構成
ビット
7
6
アドレス : 000003E7H RAM
―
R/W
―
5
4
3
2
1
0
初期値
GBLK ALFL EOLK ELKR FLSH ENAB 0-000000B
R/W
R/W
R/W
R/W
R/W
R/W
以下に , 命令キャッシュコントロールレジスタ (ICHCR) の各ビットの機能を説明しま
す。
[ ビット 7] RAM (RAM モード )
このビットが "1" のとき , RAM モードとして動作します。
RAM モード時は , ENAB ビットが "0" で命令キャッシュをオフにしてください。
[ ビット 5] GBLK ( グローバルロック )
このビットは , すべてのカレントエントリを命令キャッシュにロックします。
GBLK=1 のとき , 命令キャッシュ内の有効なエントリはミス時に更新されません。
ただし , 無効なサブブロックは更新されます。その際の命令データフェッチ動作は ,
ロックしていないときと同様です。
[ ビット 4] ALFL ( オートロックフェイル )
すでにロックしているエントリをさらにロックしようとすると , このビット
(ALFL) が "1" にセットされます。エントリオートロック中のエントリの更新が , す
でにロックされているエントリに対して行われようとしたとき , ユーザの意図に反
して , 新たなエントリが命令キャッシュ中にロックされません。このようなプログ
ラムのデバッグのために参照します。
"0" 書込みでクリアされます。
[ ビット 3] EOLK ( エントリオートロック )
このビットは , 命令キャッシュ内の各エントリに対して , オートロッキングの有効・
無効を切り換えます。このビット (EOLK) が "1" のときにアクセス ( ミス時のみ ) さ
れたエントリは , 命令キャッシュタグ内のエントリロックビットがハードウェアで
"1" にセットされることにより , ロックされます。ロックされたエントリは以後 , 命
令キャッシュミス時の更新の対象になりません。ただし , 無効なサブブロックは更
新されます。
確実にロックするためには , 一度フラッシュした後 , このビットをセッ
トしてください。
[ ビット 2] ELKR ( エントリロック解除 )
このビットは , すべての命令キャッシュタグ中にあるエントリロックビットのクリ
アを指定します。このビット (ELKR) が "1" にセットされた次のサイクルで , すべて
のキャッシュタグ中のエントリロックビットが "0" にクリアされます。ただし , こ
のビットの内容が保持されるのは 1 クロックサイクルのみであり , 2 クロックサイ
53
第 3 章 CPU および制御部
クル以降は "0" にクリアされます。
[ ビット 1] FLSH ( フラッシュ )
このビットは , 命令キャッシュのフラッシュを指定します。このビット (FLSH) を
"1" にすると , 命令キャッシュの内容がフラッシュされます。ただし , このビットの
内容が保持されるのは 1 クロックサイクルのみであり , 2 クロックサイクル以降は
"0" にクリアされます。
[ ビット 0] ENAB ( イネーブル )
命令キャッシュのイネーブル / ディセーブルを切り換えます。このビット (ENAB)
が "0" のときディセーブル状態で , CPU からの命令アクセスは , 命令キャッシュを
介さずに外部に対して直接行われます。ディセーブル状態では , 命令キャッシュの
内容は保存されます。
54
第 3 章 CPU および制御部
3.3.3
命令キャッシュの状態と設定
命令キャッシュの各動作モードにおける状態と , 命令キャッシュの設定方法につい
て説明します。
■ 各動作モードにおける命令キャッシュの状態
各動作モードにおける命令キャッシュの状態を , 表 3.3-2 に示します。
ディセーブル , フラッシュの状態は , ビット操作命令等でそのビットだけ変化させた場
合の状態を示しています。
表 3.3-2 各動作モード時の命令キャッシュの状態
キャッシュメモリ
アドレスタグ
リセット直後
内容は不定
内容は不定
サブブロック
バリッドビット
内容は不定
タ LRU
グ
エントリロック
ビット
内容は不定
TAG バリッドビット
内容は不定
通常モード
RAM
グローバルロック
制
御
レ
ジ
ス
タ
内容は不定
オートロック
フェイル
エントリ
オートロック
エントリロック解除
イネーブル
アンロック
フェイルなし
アンロック
解除なし
ディセーブル
フラッシュしない
フラッシュ
ディセーブル
直前の状態を保持ディ
セーブル中書換え不可
直前の状態を保持ディ
セーブル中書換え不可
直前の状態を保持ディ
セーブル中書換え不可
直前の状態を保持ディ
セーブル中書換え不可
直前の状態を保持ディ
セーブル中書換え不可
直前の状態を保持ディ
セーブル中フラッシュ可
直前の状態を保持ディ
セーブル中フラッシュ可
直前の状態を保持ディ
セーブル中書換え可
直前の状態を保持ディ
セーブル中書換え可
直前の状態を保持ディ
セーブル中書換え可
直前の状態を保持ディ
セーブル中書換え可
ディセーブル
直前の状態を保持ディ
セーブル中書換え可
フラッシュ
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
エントリロック解除
すべてのエントリが
インバリッド
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
メモリアクセス直後
のサイクルでフラッ
シュ以後 0 にもどる。
■ 命令キャッシュのエントリ更新
命令キャッシュのエントリ更新は , 表 3.3-3 に示すように行います。
表 3.3-3 命令キャッシュのエントリ更新
アンロック
ヒット
ミス
ロック
更新しない。
更新しない。
メモリをロードし , 命令キャッシュの
エントリの内容を更新する。
タグミスの場合は更新しない。
サブブロックインバリッドの場合
は更新する。
55
第 3 章 CPU および制御部
3.3.4
命令キャッシュを使用する場合の設定方法
命令キャッシュを使用する場合の設定方法を説明します。
■ 設定手順
命令キャッシュを使用する場合の設定は , 以下の要領で行います。
● 初期化
命令キャッシュを使い始める一番はじめは , 命令キャッシュの内容をクリアしておく
必要があります。
レジスタの FLSH ビットと ELKR ビットを "1" にして , 過去のデータを消去します。
// I-Cache コントロールレジスタのアドレス
ldi
#0x000003e7, r0
ldi
#0B00000110, r1 // FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
r1, @r0
// レジスタへ書き込む
これで , 命令キャッシュが初期化されます。
● 命令キャッシュを有効 (ON) にする
命令キャッシュを有効にするには , ENAB ビットを "1" にします。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00000001, r1
// ENAB ビット (0 ビット )
Stb
r1, @r0
// レジスタへ書き込む
これ以降の命令アクセスが , 命令キャッシュに取り込まれて行きます。
命令キャッシュの有効化は , 命令キャッシュの初期化と同時に行うこともできます。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00000111, r1
// ENAB ビット (0 ビット )
// FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
56
r1, @r0
// レジスタへ書き込む
第 3 章 CPU および制御部
● 命令キャッシュを無効 (OFF) にする
命令キャッシュを無効にするには , ENAB ビットを "0" にします。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00000000, r1
// ENAB ビット (0 ビット )
Stb
r1, @r0
// レジスタへ書き込む
この状態 ( リセット後の状態と同じ ) では , 命令キャッシュはないのと同じで , 何もし
ません。
命令キャッシュのオーバヘッドが気になる処理の場合は , OFF にすると良いかも知れ
ません。
● キャッシュの内容をすべてロックする
現在 , 命令キャッシュに入っている命令が命令キャッシュから追い出され , ない状態に
ロックします。
レジスタの GBLK ビットを "1" にします。ENAB ビットも "1" にしておかないと , 命令
キャッシュが OFF になってしまい , 命令キャッシュ内のロックした命令が使われませ
ん。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00100001, r1
// ENAB ビット (0 ビット )
// GBLK ビット (5 ビット )
stb
r1, @r0
// レジスタへ書き込む
● 特定の命令を命令キャッシュにロックする
特定の命令群 ( サブルーチン等 ) を命令キャッシュにロックするには , それらの命令を
実行する前に EOLK ビットを "1" にします。ロックした命令は , 高速な内部 ROM のよ
うににアクセスされます。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00001001, r1
// ENAB ビット (0 ビット )
// EOLK ビット (3 ビット )
stb
r1, @r0
// レジスタへ書き込む
メモリのウェイト数によりますが , stb 命令の次以降の命令から有効になります。
ロックしたい命令群が終ったところで , EOLK ビットを "0" にします。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00000001, r1
// ENAB ビット (0 ビット )
// EOLK ビット (3 ビット )
stb
r1, @r0
// レジスタへ書き込む
57
第 3 章 CPU および制御部
● 命令キャッシュのロックを解除する
上記の EOLK ビットでロックした命令のロック情報を解除します。
Ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
Ldi
#0B00000000, r1
// キャッシュディセーブル
Stb
r1, @r0
// レジスタへ書き込む
Ldi
#0B00000100, r1
// ELKR ビット (2 ビット )
Stb
r1, @r0
// レジスタへ書き込む
ロック情報だけ解除されるので , ロックされていた命令は LRU ビットの状態に応じて
順次新しい命令に置き替わります。
58
第 3 章 CPU および制御部
3.4
専用レジスタ
専用レジスタは , 特定の目的のために使用します。プログラムカウンタ (PC) , プロ
グラムステータス (PS) , テーブルベースレジスタ (TBR) , リターンポインタ (RP) ,
システムスタックポインタ (SSP) , ユーザスタックポインタ (USP) および乗除算結
果レジスタ (MDH/MDL) が用意されています。
■ 専用レジスタ一覧
各レジスタは , 32 ビットで構成されています。
図 3.4-1 に , 専用レジスタ一覧を示します。
図 3.4-1 専用レジスタ一覧
プログラムカウンタ
PC
プログラムステータス
PS
テーブルベースレジスタ
TBR
リターンポインタ
RP
−
ILM
−
SCR
CCR
システムスタックポインタ SSP
ユーザスタックポインタ
USP
乗除算結果レジスタ
MDH
MDL
■ プログラムカウンタ (PC)
プログラムカウンタ (PC:Program Counter) の機能について説明します。
プログラムカウンタ (PC) は , 下図に示すように 32 ビットから構成されています。
31
PC
0
[ 初期値 ]
XXXXXXXH
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , ビット 0 は "0" に設定されます。ビット 0 が "1" に
なる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が
あります。
リセットによる初期値は不定です。
59
第 3 章 CPU および制御部
■ テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR:Table Base Register) の機能について説明します。
テーブルベースレジスタ (TBR) は, 下図に示すように32ビットから構成されています。
31
0
TBR
[ 初期値 ]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , 000FFC00H です。
■ リターンポインタ (RP)
リターンポインタ (RP:Return Pointer) の機能について説明します。
リターンポインタ (RP) は , 下図に示すように 32 ビットから構成されています。
31
0
RP
[ 初期値 ]
XXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP:System Stack Pointer) の機能について説明します。
システムスタックポインタ (SSP) は , 下図に示すように 32 ビットから構成されていま
す。
31
SSP
0
[ 初期値 ]
00000000H
SSP は , システムスタックポインタです。
コンディションコードレジスタ (CCR) の S フラグが "0" のとき , 汎用レジスタの R15
として機能します。
SSP を明示的に指定することも可能です。
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
60
第 3 章 CPU および制御部
■ ユーザスタックポインタ (USP)
ユーザスタックポインタ (USP:User Stack Pointer) の機能について説明します。
ユーザスタックポインタ (USP) は, 下図に示すように32ビットから構成されています。
31
0
USP
[ 初期値 ]
XXXXXXXXH
USP は , ユーザスタックポインタです。
コンディションコードレジスタ (CCR) の S フラグが "1" のとき , 汎用レジスタの R15
として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
■ 乗除算結果レジスタ (MDH/MDL)
乗除算結果レジスタ (MDH/MDL:Multiply & Divide register) の機能について説明しま
す。
乗除算結果レジスタ (MDH/MDL) は , 下図に示すように 32 ビットから構成されていま
す。
31
0
MDH
MDL
乗除算用のレジスタで , MDH と MDL があります。各々 32 ビット長です。
リセットによる初期値は不定です。
● 乗算実行時の機能
32 ビット× 32 ビットの乗算の場合 , 64 ビット長の演算結果は , 以下の配置で乗除算結
果レジスタに格納されます。
• MDH: 上位 32 ビット
• MDL: 下位 32 ビット
16 ビット× 16 ビットの乗算の場合は , 以下のように結果が乗除算結果レジスタ格納さ
れます。
• MDH: 不定
• MDL: 結果 32 ビット
● 除算実行時の機能
計算開始時 , 被除数を MDL に格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4Sの各命令の実行により除算を計算すると, 以下
のように結果が MDL と MDH に格納されます。
• MDH: 剰余
• MDL: 商
61
第 3 章 CPU および制御部
3.4.1
プログラムステータスレジスタ (PS)
プログラムステータスレジスタ (PS:Program Status) は , プログラムステータスを
保持するレジスタで , ILM と SCR および CCR の 3 つのパートに分かれています。
未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
■ プログラムステータスレジスタ (PS)
プログラムステータスレジスタ (PS) は , 下図に示すようにコンディションコードレジ
スタ (CCR) , システムコンディションコードレジスタ (SCR) および割込みレベルマス
クレジスタ (ILM) から構成されています。
ビット位置→ 31
1 6
2 0
−
10
8 7
0
−
ILM
SCR
CCR
● コンディションコードレジスタ (CCR)
コンディションコードレジスタ (CCR:Condition Code Register) の構成は , 下図に示すと
おりです。
ビット
7
6
−
−
5
S
4
I
3
N
2
Z
1
V
0
C
[ 初期値 ]
--00XXXXB
以下に , 各ビットの機能を説明します。
[ ビット 5] S ( スタックフラグ )
このビットは, 汎用レジスタR15として使用させるスタックポインタを指定します。
このビットの設定内容を下表に示します。
値
内容
0
システムスタックポインタ (SSP) が汎用レジスタ R15 として使用されます。
EIT 発生時 , 自動的に "0" となります。
ただし , スタックに退避される値はクリアされる前の値です。
1
ユーザスタックポインタ (USP) が汎用レジスタ R15 として使用されます。
このビットは , リセットにより "0" にクリアされます。
RETI 命令実行時は "0" にセットしてください。
62
第 3 章 CPU および制御部
[ ビット 4] I ( 割込み許可フラグ )
このビットは , ユーザ割込み要求の許可 / 禁止を制御します。
このビットの設定内容を下表に示します。
値
内容
0
ユーザ割込み禁止。
INT 命令実行時 , "0" にクリアされます。
ただし , スタック退避させる値はクリアする前の値です。
1
ユーザ割込み許可。ユーザ割込み要求のマスク処理は , ILM の保持する値に
より制御されます。
このビットは , リセットにより "0" にクリアされます。
[ ビット 3] N ( ネガティブフラグ )
このビットは , 演算結果を "2" の補数で表現された整数とみなしたときの符号を示
します。
このビットの設定内容を下表に示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
このビットは , リセットによる初期状態は不定です。
[ ビット 2] Z ( ゼロフラグ )
このビットは , 演算結果が "0" であったかどうかを示します。
このビットの設定内容を下表に示します。
値
内容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
このビットは , リセットによる初期状態は不定です。
[ ビット 1] V ( オーバフローフラグ )
このビットは , 演算に用いたオペランドを "2" の補数で表現される整数であるとみ
なし , 演算の結果 , オーバフローが生じたかどうかを示します。
このビットの設定内容を下表に示します。
値
内容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
このビットは , リセットによる初期状態は不定です。
63
第 3 章 CPU および制御部
[ ビット 0] C ( キャリフラグ )
このビットは , 演算により最上位ビットからのキャリまたはボローが発生したかど
うかを示します。
このビットの設定内容を下表に示します。
値
内容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
このビットは , リセットによる初期状態は不定です。
● システムコンディションコードレジスタ (SCR)
システムコンディションコードレジスタ (SCR:System Condition code Register) の構成
は , 下図に示すとおりです。
10
D1
9
D0
8
T
[ 初期値 ]
XX0B
以下に , システムコンディションコードレジスタ (SCR) の各ビットの機能を説明しま
す。
[ ビット 10, ビット 9] D1, D0 ( ステップ除算用フラグ )
これらのビットは , ステップ除算実行時の中間データを保持します。
除算処理の実行途中は , 変更してはいけません。
ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避 / 復帰す
ることによりステップ除算の再開が保証されます。
このビットは , リセットによる初期状態は不定です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
[ ビット 8] T ( ステップトレーストラップフラグ )
このビットは , ステップトレーストラップを有効にするかどうかを指定するフラグ
です。
このビットの設定内容を下表に示します。
値
内容
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となります。
このビットは , リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用
時 , ユーザプログラム中で使用することはできません。
64
第 3 章 CPU および制御部
● 割込みレベルマスクレジスタ (ILM)
割込みレベルマスクレジスタ (ILM) の構成は , 下図に示すとおりです。
20
ILM4
19
ILM3
18
ILM2
17
ILM1
16
ILM0
[ 初期値 ]
01111B
割込みレベルマスクレジスタ (ILM) は , 割込みレベルマスク値を保持するレジスタで ,
この ILM の保持する値がレベルマスクに使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも高い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最も高く , 31 (11111B) が最も低いです。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 の場合 , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると , ( 指定した
値 +16) という値が転送されます。
元の値が 0 ∼ 15 の場合は , 0 ∼ 31 の任意の値が設定可能です。
このレジスタは , リセットにより 15 (01111B) に初期化されます。
● 注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
ご使用時に割込み処理ルーチンでブレークしたり , PS レジスタ内のフラグの表示内容
が更新されたりする場合があります。いずれの場合も , EIT から復帰後以降に , 正しく
再処理を行うように設計されていますので , EIT 前後の動作は仕様どおりの処理を行い
ます。
1. DIVOU/DIVOS 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b)
ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下のような動作を行う場合があります。
(1) D0,D1 フラグが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIVOU/DIVOS 命令が実行され , D0,D1 フラグが (1) と同じ値に
更新されます。
2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR/
STILM/MOV Ri,PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(3) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。
65
第 3 章 CPU および制御部
3.5
汎用レジスタ
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およ
びメモリアクセスのポインタとして使用されます。
■ 汎用レジスタ
図 3.5-1 に , 汎用レジスタの構成を示します。
図 3.5-1 汎用レジスタの構成
32 ビット
R0
R1
...
...
R12
R13
R14
R15
...
...
AC
FP
SP
[ 初期値 ]
XXXX XXXXH
...
...
...
...
...
XXXX XXXXH
0000 0000H
16個のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
• R13: 仮想アキュムレータ
• R14: フレームポインタ
• R15: スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな
ります。
66
第 3 章 CPU および制御部
3.6
データ構造
MB91307 シリーズのデータ配置には , 次の 2 つがあります。
• ビットオーダリング
• バイトオーダリング
■ ビットオーダリング
MB91307 シリーズでは , ビットオーダリングとして , リトルエンディアンを採用して
います。
図 3.6-1 に , ビットオーダリングのビット構成を示します。
図 3.6-1 ビットオーダリングのビット構成
bit
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
MSB
1
0
LSB
■ バイトオーダリング
MB91307 シリーズでは , バイトオーダリングとして , ビッグエンディアンを採用して
います。
図 3.6-2 に , バイトオーダリングの構造を示します。
図 3.6-2 バイトオーダリングの構造
MSB
bit31
n 番地
(n+1) 番地
(n+2) 番地
(n+3) 番地
メモリ
bit
7 0
10101010
11001100
11111111
00010001
LSB
23
15
7
0
10101010 11001100 11111111 00010001
67
第 3 章 CPU および制御部
3.7
ワードアライメント
命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデー
タ幅で異なります。
■ プログラムアクセス
MB91307 シリーズのプログラムは , "2" の倍数のアドレスに配置する必要があります。
プログラムカウンタ (PC) のビット 0 は , 命令の実行に伴う PC の更新時に , "0" に設定
されます。
"1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで
す。
ただし , その場合でもビット 0 は無効であり , 命令は "2" の倍数のアドレスに置かなく
てはなりません。
奇数アドレス例外はありません。
■ データアクセス
MB91307 シリーズでは , データアクセスを行う際 , その幅により以下のように強制的
なアライメントがアドレスに対して施されます。
• ワードアクセス
: アドレスは , "4" の倍数
( 最下位 2 ビットは強制的に "00")
• ハーフワードアクセス
: アドレスは , "2" の倍数
( 最下位ビットは強制的に "0")
• バイトアクセス
: ―
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。例えば , @ (R13, Ri) のアドレッシング
モードの場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま
計算に使用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスク
されるわけではありません。
[ 例 ] LD @ (R13, R2) , R0
R13
R2
00002222H
00000003H
加算結果
00002225H
+)
アドレス端子
68
下位 2 ビット強制マスク
↓
00002224H
第 3 章 CPU および制御部
3.8
メモリマップ
MB91307 シリーズのメモリマップを示します。
■ メモリマップ
メモリのアドレス空間は 32 ビットリニアです。
図 3.8-1 に , メモリマップを示します。
図 3.8-1 メモリマップ
0000
0000
0000
0000
0000H
0100H
0200H
0400H
バイトデータ
ハーフワードデータ
ワードデータ
∼
000F
ダイレクト
アドレッシング領域
∼
FC00H
ベクタテーブル
初期領域
000F
FFFFH
∼
FFFF
∼
FFFFH
● ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ
ングにより , 命令中で直接オペランドアドレスを指定することができます。
ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。
• バイトデータ (8 ビット )
: 000H ∼ 0FFH
• ハーフワードデータ (16 ビット ) : 000H ∼ 1FFH
• ワードデータ (32 ビット )
: 000H ∼ 3FFH
● ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
69
第 3 章 CPU および制御部
3.9
分岐命令
MB91307 シリーズでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの
動作を指定することができます。
■ 遅延スロット付きの分岐命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
JMP:D
@Ri
CALL:D
label12
CALL:D
@Ri
RET:D
BRA:D
label9
BNO:D
label9
BEQ:D
label9
BNE:D
label9
BC:D
label9
BNC:D
label9
BN:D
label9
BP:D
label9
BV:D
label9
BNV:D
label9
BLT:D
label9
BGE:D
label9
BLE:D
label9
BGT:D
label9
BLS:D
label9
BHI:D
label9
■ 遅延スロットなしの分岐命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
70
JMP
@Ri
CALL
label12
CALL
@Ri
RET
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
第 3 章 CPU および制御部
3.9.1
遅延スロット付き分岐命令の動作
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅
延スロット」とよびます ) に置かれた命令を実行した後に , 分岐します。
■ 遅延スロット付き分岐命令の動作
分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル
となります。そのかわり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置かなくてはなりません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA:D
LABEL
; 分岐命令
MOV
R2, R3
; 遅延スロット …… 分岐の前に実行される
…
R3, @R4 ; 分岐先
LABEL : ST
条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置
かれた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新 , 参照等 ) はあくまで記
述された順番で実行されます。
以下に , 具体例を示します。
● JMP:D @Ri / CALL:D @Ri 命令
JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更新
しても影響を受けません。
[例]
LDI:32
#Label, R0
JMP:D
@R0
LDI:8
#0,
; Label に分岐
R0
; 分岐先アドレスには影響を与えない。
…
● RET:D 命令
RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受け
ません。
[例]
; これより前に設定された RP の示す
RET:D
アドレスへ分岐
MOV
R8,
RP
; リターン動作には影響を与えない。
…
71
第 3 章 CPU および制御部
● Bcc:D rel 命令
Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
; フラグ変化
ADD
#1,
R0
BC:D
Overflow
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では
ANDCCR #0
参照しない。
…
● CALL:D 命令
CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更新
された内容が読み出されます。
[例]
CALL:D
Label
MOV
RP,
; RP を更新して分岐
R0
; 上記 CALL:D の実行結果の RP を転送
…
■ 遅延スロット付き分岐命令の制限事項
● 遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
• 1 サイクル命令
• 分岐命令ではないこと
• 順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄に「1」
「a」
「b」
「c」
「d」のど
れかが記載された命令です。
● ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
● 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し
ません。
● 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき ,
未定義命令は NOP 命令として動作します。
72
第 3 章 CPU および制御部
3.9.2
遅延スロットなし分岐命令の動作
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令
が分岐前に実行されることはありません。
■ 遅延スロットなし分岐命令の動作
[例]
;
命令の並び
ADD
R1,
R2
;
BRA
LABEL
; 分岐命令 ( 遅延スロットなし )
MOV
R2,
R3
; 実行されない
R3,
@R4
; 分岐先
…
LABEL
ST
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットに適当な命令を入れることができないために , NOP を明記した遅延ス
ロット付き分岐命令に比べ , 命令コード効率を上げることができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を
両立させることが可能となります。
73
第 3 章 CPU および制御部
3.10
EIT ( 例外 , 割込み , トラップ )
EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中
断してほかのプログラムを実行することを指し , 例外 (Exception) , 割込み
(Interrupt) , トラップ (Trap) の総称です。
■ EIT ( 例外 , 割込み , トラップ )
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命令か
ら再実行します。
割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー
ドウェアです。
トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの
ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か
ら再実行します。
■ EIT 要因
EIT 要因として , 以下のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
EIT からの復帰には , RETI 命令を使用します。
74
第 3 章 CPU および制御部
3.10.1
EIT の割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ EIT の割込みレベル
各レベルの割当てを , 図 3.10-3 に示します。
表 3.10-1 EIT の割込みレベル
レベル
割込み要因
注意事項
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムによ
り ILM に設定することはできま
せん。
5
…
…
14
( システム予約 )
…
…
( システム予約 )
INTE 命令
ステップトレーストラップ
( システム予約 )
…
…
( システム予約 )
01111
15
NMI ( ユーザ用 )
10000
10001
…
…
11110
11111
16
17
…
…
30
31
割込み
割込み
…
…
割込み
─
2 進数
10 進数
00000
…
…
00011
00100
0
…
…
3
4
00101
…
…
01110
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップおよび INT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
■ I フラグ
割込みの許可 / 禁止を指定するフラグです。PS レジスタの CCR のビット 4 として設け
られています。
表 3.10-2 I フラグ
値
内容
0
割込み禁止。
INT 命令実行時 "0" にクリアされます。
ただし , スタック退避させる値はクリアする前の値です。
1
割込み許可。
割込み要求のマスク処理は , ILM の保持する値により制御されます。
75
第 3 章 CPU および制御部
■ 割込みレベルマスクレジスタ (ILM)
割込みレベルマスク値を保持する PS レジスタ ( ビット 20 ∼ビット 16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも高い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最も高く , 31 (11111B) が最も低いです。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定
した値 +16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。
<注意事項>
設定するには STILM 命令を使用してください。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.10-1)
が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき
はマスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
76
第 3 章 CPU および制御部
3.10.2
割込み制御レジスタ (ICR)
割込み制御レジスタ (ICR:Interrupt Control Register) は , 割込みコントローラ内に
設けられたレジスタで , 割込みの各要求に対するレベルを設定します。ICR は , 割込
み要求入力の各々に対応して用意されています。ICR は I/O 空間にマッピングされ
ており , CPU からはバスを通してアクセスされます。
■ 割込み制御レジスタ (ICR) のビット構成
割込み制御レジスタ (ICR) のビット構成は , 下図のとおりです。
図 3.10-1 割込み制御レジスタ (ICR) のビット構成
ビット
7
−
6
−
5
−
4
3
2
ICR4 ICR3 ICR2
R
R/W R/W
1
ICR1
R/W
0
ICR0
R/W
初期値
---11111B
以下に , 割込み制御レジスタ (ICR) の各ビットの機能を説明します。
[ ビット 4] ICR4
このビットは , 常に "1" です。
[ ビット 3 ∼ビット 0] ICR3 ∼ ICR0
これらのビットは , 対応する割込み要因の割込みレベルの下位 4 ビットです。読出
し , 書込みが可能です。
ビット 4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。
■ 割込み制御レジスタ (ICR) のマッピング
表 3.10-3 に, 割込み要因と割込み制御レジスタおよび割込みベクタの関係を示します。
表 3.10-3 割込み要因と割込み制御レジスタ , 割込みベクタ
対応する割込みベクタ
割込要因
番 号
割込み制御レジスタ
アドレス
16 進
10 進
IRQ00
ICR00
00000440H
10H
16
TBR + 3BCH
IRQ01
ICR01
00000441H
11H
17
TBR + 3B8H
IRQ02
ICR02
00000442H
12H
18
TBR + 3B4H
…
…
…
…
…
…
…
…
…
…
…
…
IRQ45
ICR45
0000046DH
3DH
61
TBR + 308H
IRQ46
ICR46
0000046EH
3EH
62
TBR + 304H
IRQ47
ICR47
0000046FH
3FH
63
TBR + 300H
( 注意事項 )「第 10 章 割込みコントローラ」を参照してください。
77
第 3 章 CPU および制御部
システムスタックポインタ (SSP)
3.10.3
EIT の受理および復帰動作時のデータ退避 / 復帰用スタックを示すポインタとしてシ
ステムスタックポインタ (SSP) が使用されます。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP:System Stack Pointer) は , 下図に示すように 32 ビット
から構成されています。
図 3.10-2 システムスタックポインタ (SSP) のビット構成
bit 31
SSP
0
[ 初期値 ]
00000000H
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
システムスタックポインタ (SSP) は , リセットによる初期値は 00000000H です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
■ 割込みスタック
システムスタックポインタ (SSP) により示される領域で , PC および PS の値が退避 / 復
帰されます。割込み後は , SSP の示すアドレスに PC が , (SSP+4) のアドレスに PS が格
納されています。この様子を 図 3.10-3 に示します。
図 3.10-3 割込みスタック
[例]
SSP
[ 割込み前 ]
8000000H
SSP
[ 割込み後 ]
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
78
80000000H
7FFFFFFCH PS
7FFFFFF8H PC
第 3 章 CPU および制御部
3.10.4
テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR:Table Base Register) は , EIT 用ベクタテーブルの先
頭アドレスを示すレジスタです。
■ テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR) は, 下図に示すように32ビットから構成されています。
bit 31
TBR
0
[ 初期値 ]
000FFC00H
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
テーブルベースレジスタ (TBR) は , リセットによる初期値は 000FFC00H です。
■ EIT ベクタテーブル
テーブルベースレジスタ (TBR) の示すアドレスから 1K バイトの領域が , EIT 用ベクタ
領域となっています。
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr = TBR + vctofs
= TBR + (3FC H − 4 × vct)
vctadr:
ベクタアドレス
vctofs:
ベクタオフセット
vct
ベクタ番号
:
加算結果の下位 2 ビットは , 常に "00" として扱われます。
000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。
アーキテクチャ上のベクタテーブルを , 表 3.10-4 に示します。
79
第 3 章 CPU および制御部
表 3.10-4 ベクタテーブル (1 / 3)
割込み番号
割込み
レベル
オフセット
TBR デフォルト
のアドレス
01
−
3F8H
000FFFF8H
2
02
−
3F4H
000FFFF4H
システム予約
3
03
−
3F0H
000FFFF0H
システム予約
4
04
−
3ECH
000FFFECH
システム予約
5
05
−
3E8H
000FFFE8H
システム予約
6
06
−
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
コプロセッサエラー
トラップ
8
08
−
3DCH
000FFFDCH
INTE 命令
9
09
−
3D8H
000FFFD8H
命令ブレーク例外
10
0A
−
3D4H
000FFFD4H
オペランドブレーク
トラップ
11
0B
−
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
−
3C8H
000FFFC8H
未定義命令例外
14
0E
−
3C4H
000FFFC4H
NMI 要求
15
0F
15 (FH)
外部割込み 0
16
外部割込み 1
10 進
16 進
0
00
モードベクタ
1
システム予約
割込み要因
80
3C0H
000FFFC0H
10
固定
ICR00
3BCH
000FFFBCH
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
UART1 ( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
UART2 ( 受信完了 )
29
1D
ICR13
388H
000FFF88H
UART0 ( 送信完了 )
30
1E
ICR14
384H
000FFF84H
UART1 ( 送信完了 )
31
1F
ICR15
380H
000FFF80H
UART2 ( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
DMAC0 ( 終了 , エラー )
33
21
ICR17
378H
000FFF78H
第 3 章 CPU および制御部
表 3.10-4 ベクタテーブル (2 / 3)
割込み番号
割込み
レベル
オフセット
TBR デフォルト
のアドレス
22
ICR18
374H
000FFF74H
35
23
ICR19
370H
000FFF70H
DMAC3 ( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
DMAC4 ( 終了 , エラー )
37
25
ICR21
368H
000FFF68H
A/D
38
26
ICR22
364H
000FFF64H
I2C
39
27
ICR23
360H
000FFF60H
システム予約
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
システム予約
42
2A
ICR26
354H
000FFF54H
システム予約
43
2B
ICR27
350H
000FFF50H
システム予約
44
2C
ICR28
34CH
000FFF4CH
U-TIMER0
45
2D
ICR29
348H
000FFF48H
U-TIMER1
46
2E
ICR30
344H
000FFF44H
タイムベースタイマ
オーバフロー
47
2F
ICR31
340H
000FFF40H
システム予約
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 で使用 )
64
40
−
2FCH
000FFEFCH
システム予約 (REALOS で使用 )
65
41
−
2F8H
000FFEF8H
システム予約
66
42
−
2F4H
000FFEF4H
システム予約
67
43
−
2F0H
000FFEF0H
システム予約
68
44
−
2ECH
000FFEECH
システム予約
69
45
−
2E8H
000FFEE8H
10 進
16 進
0
00
DMAC1 ( 終了 , エラー )
34
DMAC2 ( 終了 , エラー )
割込み要因
81
第 3 章 CPU および制御部
表 3.10-4 ベクタテーブル (3 / 3)
割込み番号
割込み
レベル
オフセット
TBR デフォルト
のアドレス
46
−
2E4H
000FFEE4H
71
47
−
2E0H
000FFEE0H
システム予約
72
48
−
2DCH
000FFEDCH
システム予約
73
49
−
2D8H
000FFED8H
システム予約
74
4A
−
2D4H
000FFED4H
システム予約
75
4B
−
2D0H
000FFED0H
システム予約
76
4C
−
2CCH
000FFECCH
システム予約
77
4D
−
2C8H
000FFEC8H
システム予約
78
4E
−
2C4H
000FFEC4H
システム予約
79
4F
−
2C0H
000FFEC0H
INT 命令で使用
80
|
255
50
|
FF
−
2BCH
|
000H
000FFEBCH
|
000FFC00H
10 進
16 進
0
00
システム予約
70
システム予約
割込み要因
( 注意事項 )・TBR の値を変更してもリセットベクタとモードベクタは , 常に固定アドレスで
す。000FFFFCH, 000FFFF8H が使用されます。
・本品種におけるベクタテーブルは , 「付録 B 割込みベクタ」を参照してくださ
い。
82
第 3 章 CPU および制御部
3.10.5
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し ,
EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま
す。EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した
EIT 要因のハンドラの命令を実行します。そのため , 複数の EIT 要因が同時に発生し
た場合の各要因に対するハンドラの実行順序は , 次の 2 つの要素によって決まりま
す。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
EIT 要因受理の優先度は , 表 3.10-5 のようになっています。
表 3.10-5 EIT 要因の受理の優先度とほかの要因へのマスク
要 因
受理の優先順位
ほかの要因に対するマスク
1
リセット
ほかの要因は破棄されます。
2
未定義命令例外
取消し
3
INT 命令
I フラグ =0
4
コプロセッサ不在トラップ
コプロセッサエラートラップ
5
ユーザ割込み
ILM= 受理した要因のレベル
6
NMI ( ユーザ用 )
ILM=15
7
(INTE 命令 )
ILM=4 *
8
NMI ( エミュレータ用 )
ILM=4
9
ステップトレーストラップ
ILM=4
10
INTE 命令
ILM=4
―
* :INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が "6" になりま
す。本品種ではエミュレータ用 NMI を , データアクセスによるブレークに使用して
います。
83
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.10-6 のようになります。
表 3.10-6 EIT ハンドラの実行順序
ハンドラの
実行順序
要 因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*1: ほかの要因は破棄されます。
*2:INTE 命令をステップ実行したときは , ステップトレーストラップの EIT のみ発生し
ます。INTE による要因は無視されます。
図 3.10-4 に , 多重 EIT 処理の例を示します。
84
第 3 章 CPU および制御部
図 3.10-4 多重 EIT 処理
[例]
メインルーチン
NMIのハンドラ
INT命令の
ハンドラ
優先度
①最初に実行
(高)NMI発生
(低)INT命令実行
②次に実行
85
第 3 章 CPU および制御部
3.10.6
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)「割込みレベル≧レベルマスク値」のとき , 割込み要求はマスクされ受理されま
せん。
「割込みレベル<レベルマスク値」のときは , 4) へ移ります。
4) 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込
み要求はマスクされ , 受理されません。I フラグが "1" ならば 5) へ移ります。選
択された割込み要求が NMI であるときは , I フラグの値にかかわらず 5) へ移りま
す。
5) 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み /NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。( ) は , レジスタの
指すアドレスを表します。
[ 動作 ]
1) SSP-4
→ SSP
2) PS
→ (SSP)
3) SSP-4
→ SSP
4) 次の命令のアドレス
→ (SSP)
5) 受理した要求の割込みレベル
→ ILM
6) "0" → S フラグ
7) (TBR+ 受理した割込み要求のベクタオフセット ) → PC
86
第 3 章 CPU および制御部
割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
■ INT 命令の動作
INT #u8 命令は , 以下のように動作します。
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) SSP-4
→ SSP
2) PS
→ (SSP)
3) SSP-4
→ SSP
4) PC+2
→ (SSP)
5) "0"
→ I フラグ
6) "0"
→ S フラグ
7) (TBR+3FCH-4 × u8)
→ PC
■ INTE 命令の動作
INTE 命令は , 以下のように動作します。
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) SSP-4
→ SSP
2) PS
→ (SSP)
3) SSP-4
→ SSP
4) PC+2
→ (SSP)
5) "00100"
→ ILM
6) "0"
→ S フラグ
7) (TBR+3D8H)
→ PC
INTE 命令およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。
また , ステップ実行中は INTE による EIT の発生はありません。
87
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 一命令実行ごとにトラップが発生し , ブレークします。ステップトレース
トラップ検出の条件は , 以下のとおりです。
• T フラグ = 1
• 遅延分岐命令ではないとき
• INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき
以上の条件が成立すると , 命令動作の切れ目でブレークします。
[ 動作 ]
1) SSP-4
→ SSP
2) PS
→ (SSP)
3) SSP-4
→ SSP
4) 次の命令のアドレス
→ (SSP)
5) "00100"
→ ILM
6) "0"
→ S フラグ
7) (TBR+3CCH)
→ PC
Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の
NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく
なります。
MB91307 シリーズでは , T フラグをセットした次の命令からトラップが発生します。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
未定義命令例外の検出条件は , 以下のとおりです。
• 命令のデコード時に , 未定義命令であることを検出。
• 遅延スロット外に置かれている ( 遅延分岐命令の直後ではない ) 。
以上の条件が成立すると , 未定義命令例外が発生しブレークします。
[ 動作 ]
1) SSP-4
→ SSP
2) PS
→ (SSP)
3) SSP-4
→ SSP
4) PC
→ (SSP)
5) "0"
→ S フラグ
6) (TBR+3C4H)
→ PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
88
第 3 章 CPU および制御部
■ コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
[ 動作 ]
1) SSP-4
→ SSP
2) PS →
(SSP)
3) SSP-4
→ SSP
4) 次の命令のアドレス
→ (SSP)
5) "0"
→ S フラグ
6) (TBR+3E0H)
→ PC
■ コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを
操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま
す。
[ 動作 ]
1) SSP-4
→ SSP
2) PS
→ (SSP)
3) SSP-4
→ SSP
4) 次の命令のアドレス
→ (SSP)
5) "0"
→ S フラグ
6) (TBR+3DCH)
→ PC
■ RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
1) (R15)
→ PC
2) R15+4
→ R15
3) (R15)
→ PS
4) R15+4
→ R15
RETI 命令は , S フラグが "0" の状態で実行する必要があります。
■ 遅延スロットの注意事項
分岐命令の遅延スロットには , EIT に関して制約があります。
「3.9 分岐命令」を参照してください。
89
第 3 章 CPU および制御部
3.11
リセット ( デバイスの初期化 )
MB91307 シリーズの初期化であるリセットについて説明します。
■ リセット ( デバイスの初期化 )
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作
を停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。このリセット状態から動作開始にいたる一連の動作をリセット
シーケンスとよびます。
90
第 3 章 CPU および制御部
3.11.1
リセットレベル
MB91307 シリーズのリセット動作は 2 種類のレベルに分けられ , それぞれ発生要因
および初期化の内容が異なります。この項では , 各リセットのレベルについて説明
します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最も高いレベルのリセットを , 設定初期化リセット (INIT)
とよびます。
設定初期化リセット (INIT) により初期化される主なものは , 以下のとおりです。
● 設定初期化リセット (INIT) による初期化箇所
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
• 外部バス拡張インタフェースのすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化されるすべての箇所
詳細については , それぞれの機能の説明を参照してください。
<注意事項>
電源投入後は , 必ず INIT 端子で設定初期化リセット (INIT) をかけてください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主なものは , 以下のとおりです。
● 動作初期化リセット (RST) による初期化箇所
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• 外部バスの CS0 領域に関するすべての設定
詳細については , それぞれの機能の説明を参照してください。
91
第 3 章 CPU および制御部
3.11.2
リセット要因
MB91307 シリーズにおける各リセット発生要因と , 発生するリセットレベルについ
て説明します。
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことに
より知ることができます。この項の説明の中にあるレジスタ , フラグの詳細につい
ては , 「3.12 クロック発生制御」で説明します。
■ INIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
この端子へ "L" レベルを入力している間 , 設定初期化リセット (INIT) 要求が発生しま
す。
この端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除
されます。
この端子からの要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセッ
ト要因レジスタ ) 中のビット 15 (INIT ビット ) がセットされます。
この端子からの要求による設定初期化リセット (INIT) は , すべてのリセット要因中で
割込みレベルが最も高く , すべての入力 / 動作 / 状態よりも優先されます。
なお , 電源投入直後は必ず INIT 端子で設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路が必要とする安定待ち時間の間持続してください。INIT 端
子による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。
• 発生要因 : 外部 INIT 端子への "L" レベル入力
• 解除要因 : 外部 INIT 端子への "H" レベル入力
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 15 (INIT)
■ ソフトウェアリセット (STCR:SRST ビット書込み )
スタンバイ制御レジスタ (STCR) 中のビット 4 (SRST ビット ) に "0" が書き込まれると ,
ソフトウェアリセット要求が発生します。ソフトウェアリセット要求は , 動作初期化リ
セット (RST) 要求です。
要求が受け付けられて動作初期化リセット (RST) が発生すると , ソフトウェアリセッ
ト要求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中のビット (SRST ビット ) がセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , タイムベースカウン
タ制御レジスタ (TBCR) 中のビット 7 (SYNCR ビット ) がセットされている場合 ( 同期
リセットモード ) , すべてのバスアクセスが停止してからでないと発生しません。この
ため , バスの使用状況によっては動作初期化リセット (RST) が発生するまでに , 長時間
を要する場合があります。
92
第 3 章 CPU および制御部
• 発生要因 : スタンバイ制御レジスタ (STCR) 中のビット 4 (SRST) ビットへの "0"
書込み
• 解除要因 : 動作初期化リセット (RST) の発生
• 発生レベル : 動作初期化リセット (RST)
• 対応フラグ : ビット 11 (SRST)
■ ウォッチドッグリセット
ウォッチドッグタイマ制御レジスタ (RSRR) に対して書き込むと, ウォッチドッグタイ
マが起動します。その後 , RSRR 中のビット 9, ビット 8 (WT1, WT0 ビット ) で設定し
た周期内にウォッチドッグリセット発生延期レジスタ (WPR) へA5H/5AH が書き込まれ
ないと , ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられて設定初期化リセット (INIT) が発生するかまたは動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 , リ
セット要因レジスタ (RSRR) 中のビット 13 (WDOG ビット ) がセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。
• 発生要因 : ウォッチドッグタイマの設定周期経過
• 解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 13 (WDOG)
■ HST 端子入力 ( ハードウェアスタンバイ端子 ) MB91307B のみ
外部端子の HST 端子は , ハードウェアスタンバイ端子として機能します。この端子へ
"L" レベルを入力している間 , ハードウェアスタンバイ要求が発生します。ハードウェ
アスタンバイ要求が受け付けられ , デバイスがハードウェアスタンバイ状態に遷移す
ると , 同時に設定初期化リセット (INIT) が発生します。
この端子へ "H" レベルを入力することによってハードウェアスタンバイ要求は解除さ
れ , 設定初期化リセット (INIT) も解除されます。
ハードウェアスタンバイ状態において , 外部 INIT 端子による設定初期化リセット
(INIT) 要求が発生した場合 , ハードウェアスタンバイ要求は解除されますが , 設定初期
化リセット (INIT) は発生したままとなります。
ハードウェアスタンバイ状態による設定初期化リセット (INIT) が発生した場合 , リ
セット要因レジスタ (RSRR) 中のビット 14 (HSTB ビット ) がセットされます。
なお, 電源投入直後からハードウェアスタンバイ要求が発生している場合, INIT 端子に
よる設定初期化リセット (INIT) が優先されます。その後 , INIT 端子による設定初期化
リセット (INIT) が解除されてハードウェアスタンバイ状態に遷移すると , 発振安定待
ち時間の設定は最大値に初期化され , ハードウェアスタンバイ要求が解除された後の
発振安定待ち時間は最大値となります。
• 発生要因 : 外部 HST 端子への "L" レベル入力
• 解除要因 : 外部 HST 端子への "H" レベル入力または INIT 端子による設定初期化リ
セット (INIT)
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 14 (HSTB)
93
第 3 章 CPU および制御部
3.11.3
リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作が異なります。
この項では , 各リセットレベルにおけるリセットシーケンスの動作について説明し
ます。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
2) 発振安定待ち時間 (STCR のビット 3, ビット 2 (OS1, OS0 ビット ) で設定 ) の間 ,
動作初期化リセット (RST) 状態を保持 , 内部クロック停止
3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始
4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
5) 000FFFF8H 番地より , モードベクタの読出し
6) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み
7) 000FFFFCH 番地より , リセットベクタの読出し
8) プログラムカウンタ (PC) へ , リセットベクタの書込み
9) プログラムカウンタ (PC) が示す番地より , プログラム動作開始
■ 動作初期化リセット (RST) 解除シーケンス
動作初期化リセット (RST) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
2) 000FFFFCH 番地より , リセットベクタの読出し
3) プログラムカウンタ (PC) へ , リセットベクタの書込み
4) プログラムカウンタ (PC) が示す番地より , プログラム動作開始
94
第 3 章 CPU および制御部
■ ハードウェアスタンバイ解除シーケンス (MB91307B)
ハードウェアスタンバイ要求または低電圧検出スタンバイ要求が解除されると , デバ
イスは以下の動作を順に実行します。
1) 設定初期化リセット (INIT) 状態 , 内部クロック動作開始 , 端子ハイインピーダン
ス処理解除
2) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
3) 発振安定待ち時間 (STCR のビット 3, ビット 2 (OS1, OS0 ビット ) で設定 ) の間 ,
動作初期化リセット (RST) 状態を保持 , 内部クロック停止
4) 動作初期化リセット (RST) 状態 , 内部クロック動作開始
5) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
6) 000FFFF8H 番地より , モードベクタの読出し
7) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み
8) 000FFFFCH 番地より , リセットベクタの読出し
9) プログラムカウンタ (PC) へ , リセットベクタの書込み
10) プログラムカウンタ (PC) が示す番地より , プログラム動作開始
95
第 3 章 CPU および制御部
3.11.4
発振安定待ち時間
デバイスの原発振が停止していたかまたはその可能性がある状態から復帰したとき ,
自動的に発振安定待ち状態に遷移します。この機能により , 発振開始後の安定して
いない状態で発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , スタンバイ制御レジスタ (STCR) で設定された安定待ち
時間の経過を待ちます。
この項では , 発振安定待ち動作について説明します。
■ 発振安定待ち発生要因
発振安定待ちの発生要因を , 以下に示します。
● 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
● ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。
ただし, 設定初期化リセット (INIT) 要求により解除された場合は, 設定初期化リセット
(INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後, 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へ遷移
します。
• 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時 :
通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時 :
動作初期化リセット (RST) 状態へ遷移します。
• 動作初期化リセット (RST) 要求による復帰時 :
動作初期化リセット (RST) 状態へ遷移します。
● PLL 選択時の異常状態発生からの復帰時
PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常が発生し
た場合 *, PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*
96
:PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。
第 3 章 CPU および制御部
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計時されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタは一度初期化された後 , 発振安定待ち時間の計測を開始します。
スタンバイ制御レジスタ (STCR) のビット 3, ビット 2 (OS1, OS0 ビット ) により , 発振
安定待ち時間を 4 種類のうちから選択して設定することができます。
一度選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初期化
されません。それ以外の , ウォッチドッグリセット / ハードウェアスタンバイによる設
定初期化リセット (INIT) や, 動作初期化リセット (RST) では, リセット発生以前に設定
した発振安定待ち時間が保持されます。
発振安定待ち時間選択の 4 種類の設定項目は , それぞれ以下の用途を想定してありま
す。
• OS1, OS0="00": 発振安定待ち時間なし ( ストップモードで PLL も発振器を停止させ
ない場合 )
• OS1, OS0="01":PLL ロック待ち時間 ( 外部クロック入力や , ストップモードで発振器
を停止させない場合 )
• OS1, OS0="10": 発振安定待ち時間 ( 中 ) ( セラミック振動子等の安定が速い発振子を
使用する場合 )
• OS1, OS0="10": 発振安定待ち時間 ( 長 ) ( 一般の水晶発振子等を使用する場合 )
なお , 電源投入直後は必ず INIT 端子で , 設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路が必要とする安定待ち時間の間持続してください (INIT 端子
による INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
なお, 電源投入直後からハードウェアスタンバイ要求が発生している場合, INIT端子に
よる設定初期化リセット (INIT) が優先されます。その後 , INIT 端子による設定初期化
リセット (INIT) が解除されてハードウェアスタンバイ状態に遷移した場合 , 発振安定
待ち時間の設定は最大値に初期化され , ハードウェアスタンバイ要求が解除された後
の発振安定待ち時間は最大値となります。
97
第 3 章 CPU および制御部
3.11.5
リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー
ドの 2 つのモードがあり , タイムベースカウンタ制御レジスタ (TBCR) 中のビット 7
(SYNCR ビット ) によってどちらのモードで動作するかを設定します。このモード
設定は , 設定初期化リセット (INIT) のみで初期化されます。設定初期化リセット
(INIT) は , 常に非同期でリセット動作を行います。
この項では , 各モードの動作について説明します。
■ 通常リセット動作
動作初期化リセット (RST) 要求またはハードウェアスタンバイ要求が発生した際に ,
即座に動作初期化リセット (RST) 状態またはハードウェアスタンバイ状態へ遷移する
動作を , 通常リセット動作とよびます。
このモードにおいては , リセット (RST) 要求またはハードウェアスタンバイ要求が受
け付けられると , 内部バスアクセスの動作状態にかかわらず , 即時にリセット (RST) 状
態またはハードウェアスタンバイ状態へ遷移します。
このモードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その
結果を保証できません。しかし , それらの要求を確実に受け付けることは可能です。
タイムベースカウンタ制御レジスタ (TBCR) 中のビット 7 (SYNCR ビット ) が "0" のと
き , 通常リセットモードとなります。設定初期化リセット (INIT) の発生後の初期値は ,
通常リセットモードとなります。
■ 同期リセット動作
動作初期化リセット (RST) 要求またはハードウェアスタンバイ要求が発生した際に ,
すべてのバスアクセスが停止してから動作初期化リセット (RST) 状態またはハード
ウェアスタンバイ状態へ遷移する動作を , 同期リセット動作とよびます。
このモードにおいては , リセット (RST) 要求またはハードウェアスタンバイ要求が受
け付けられても , 内部バスアクセスが行われている間は , リセット (RST) 状態または
ハードウェアスタンバイ状態へ遷移はしません。
上記要求が受け付けられると , それによって内部バスに対してスリープ要求が発行さ
れます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット
(RST) 状態またはハードウェアスタンバイ状態へ遷移します。
このモードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているた
め , すべてのバスアクセスの結果は保証されます。
しかし , バスアクセスが何らかの理由によって停止しない場合は , その間各要求を受け
付けることができなくなります。このような場合でも , 設定初期化リセット (INIT) は
即座に有効となります。
バスアクセスが停止しない要因には , 以下の場合があげられます。
• 外部拡張バスインタフェースに対してバス解放要求 (BRQ) が入力され続け , バス解
放アクノリッジ (BGRNT ) が有効となっていて , 内部バスから新たなバスアクセス
要求が発生しているような場合。
98
第 3 章 CPU および制御部
• 外部拡張バスインタフェースに対してレディ要求 (RDY) が入力され続け , バスウェ
イトが有効となっている場合。また , 次の場合においては , 最終的には各状態へ遷
移しますが , 遷移するまでに長時間かかってしまいます。
参考:
DMA コントローラについては , 各要求の受付けによって転送を停止しますので ,
各状態への遷移を遅延させることはありません。タイムベースカウンタ制御レジス
タ (TBCR) 中のビット 7 (SYNCR ビット ) が "1" のとき , 同期リセットモードとなり
ます。設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻り
ます。
99
第 3 章 CPU および制御部
3.12
クロック発生制御
クロックの発生とその制御について説明します。
■ クロック発生制御
MB91307 シリーズの内部動作クロックは , 以下のように発生されます。
• ソースクロックの選択 : クロックの供給源を選択します。
• ベースクロックの発生 : ソースクロックを 2 分周または PLL 発振させ , 基本クロッ
クを生成します。
• 各内部クロックの発生 : ベースクロックを分周し , 各部に供給する 4 種類の動作ク
ロックを生成します。
■ ソースクロック
● 自励発振モード (X0/X1 端子入力 )
外部発振端子に発振子を接続し , 内蔵発振回路で生成した原発振をソースクロックと
するモードです。
外部バスクロックを含むすべてのクロック供給源は , MB91307 シリーズ自身となりま
す。
メインクロックは , X0/X1 端子入力から生成し , 高速クロックとして使用することを想
定したクロックです。
メインクロックは , それぞれ独立に制御可能な内蔵メイン PLL を用いて逓倍されます。
内部ベースクロックは , 以下のソースクロックのうちから選択して発生させます。
• メインクロックを 2 分周したもの
• メインクロックをメイン PLL で逓倍したもの
ソースクロックの選択制御は , クロックソース制御レジスタ (CLKR) の設定によって
行います。
100
第 3 章 CPU および制御部
3.12.1
PLL 制御
メインのソースクロックに対応した PLL 発振回路それぞれについて , 動作 ( 発振 )
許可 / 禁止と逓倍率設定を独立に制御することができます。各制御は , クロックソー
ス制御レジスタ (CLKR) の設定によって行います。
この項では , 各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , クロックソース制御レジスタ (CLKR) のビット 10
(PLL1EN ビット ) の設定によって行います。
● 自励発振モード時の PLL 動作制御
自励発振モードでは , どちらのビットも設定初期化リセット (INIT) 後は"0"に初期化さ
れ , PLL の発振動作は停止しています。停止中は , ソースクロックとして , PLL 出力を
選択することはできません。
プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設
定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え
てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する
とよいでしょう。
ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること
はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際
などで PLL を停止させたい場合は , 一度ソースクロックをメインクロックの 2 分周し
たものに選択し直した後 , PLL を停止させてください。
なお , スタンバイ制御レジスタ (STCR) のビット 0 (OSCD1 ビット ) やビット 1 (OSCD2
ビット ) により , ストップモード中の発振が停止するように設定してある場合 , 対応す
る PLL はストップモード遷移時に自動的に停止しますので , 動作停止を改めて設定す
る必要はありません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動
作を開始します。ストップモード中の発振が停止しないように設定してある場合は ,
PLL は自動では停止しません。この場合は , 必要であればストップモード移行前にあ
らかじめ動作停止を設定してください。
● 外部クロックモード時の PLL 動作制御
外部クロックモードでは , 両ビットの設定値にかかわらず , 設定初期化リセット (INIT)
中およびストップモード中以外は , メイン PLL は発振動作をしています。
なお , スタンバイ制御レジスタ (STCR) のビット 0 (OSCD1 ビット ) により , ストップ
モード中の発振が停止するように設定してある場合 , メイン PLL はストップモード遷
移時に自動的に停止します。その後 , ストップモードから復帰する際 , PLL は自動的に
発振動作を開始します。ストップモード中の発振が停止しないように設定してある場
合は , PLL は停止しません。
101
第 3 章 CPU および制御部
<注意事項>
• 本品種で PLL 動作を行う場合は , 自励発振 , 外部クロック入力の周波数は , 12.5 MHz ∼
16.5 MHz にしてください。
• 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
■ PLL 逓倍率
メイン PLL の逓倍率は , クロックソース制御レジスタ (CLKR) のビット 14 ∼ビット 12
(PLL1S2, PLL1S1, PLL1S0 ビット ) によって設定します。
設定初期化リセット (INIT) 後は , 全ビットが "0" に初期化されています。
● 自励発振モード時の PLL 逓倍率設定
自励発振モードで PLL 逓倍率設定を初期値から変更する場合 , プログラム動作開始後 ,
PLL を動作許可する前または同時に設定してください。逓倍率変更後は , ロック待ち
時間経過後にソースクロックを切り換えてください。この際の PLL ロック待ち時間は ,
タイムベースタイマ割込みを使用すると良いでしょう。
動作中に PLL 逓倍率設定を変更する場合 , 一度ソースクロックを該当 PLL 以外に切り
換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後に
ソースクロックを切り換えてください。
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が
経過するまでの間はプログラム動作が停止します。
PLL 以外にクロックソースを切り換えた場合は , プログラム動作は停止しません。
● 外部クロックモード時の PLL 逓倍率設定
外部クロックモードでは PLL 逓倍率設定を初期値より変更する場合 , プログラム動作
開始後はすでに PLL が動作許可されてソースクロックとして使用されていますので ,
逓倍率設定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待
ち時間が経過するまでの間はプログラム動作が停止します。このため , 逓倍率設定を変
更する前に , 必ず発振安定待ち時間の設定を適切な ( 仕様で規定された PLL ロック待
ち時間よりも大きな ) 時間になるようにあらかじめ設定しておいてください。なお , こ
のモードにおいては, 発振安定待ち時間設定の初期値は"01" (PLLロック待ち時間対応)
となっています。
102
第 3 章 CPU および制御部
3.12.2
発振安定待ち /PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要となります (「3.11.4 発振安定待ち時間」参照 ) 。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要となります。
この項では , 各種のケースにおける待ち時間について説明します。
■ 自励発振モード時
自励発振モードにおける各種の待ち時間について説明します。
● 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ
こでは考慮する必要はありません。
● 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は, 設定された発振安定待ち時間を内部的に発生します。INIT端子入力後の初めの発振
安定待ち状態では, 設定時間は最小値に初期化されているため, すぐに本状態は終了し,
動作初期化リセット (RST) 状態へと遷移します。
ただし , この状態で HST 端子入力 ( ハードウェアスタンバイ端子 ) に "L" レベルが入力
されていた場合 , ハードウェアスタンバイ状態に遷移して発振回路が停止してしまう
ため , 発振安定待ち設定時間は安全のため最大値に初期化し直されます。
プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が
発生した場合の解除時には , プログラムで設定された時間の発振安定待ち時間を内部
的に発生します。
これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間
はここでは考慮する必要はありません。
● PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用してはいけません。ソースクロックとして該当する PLL
を選択していなければ , ロック待ち時間中もプログラム動作は実行可能です。この際の
PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょう。
103
第 3 章 CPU および制御部
● PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ
う。
● ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムで設
定された時間の発振安定待ち時間を内部的に発生します。ストップモード中に , ソース
クロックとして選択しているクロック用発振回路を停止させる設定であった場合 , そ
の発振回路の発振安定待ち時間と使用している PLL のロック待ち時間のうち長い方の
時間が必要となります。ストップモードに遷移させる前に , あらかじめその発振安定待
ち時間を設定しておいてください。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させない設定の場合は , PLL は自動では動作停止しません。PLL を停止させない限り
発振安定待ち時間は必要となりません。ストップモードに遷移させる前に , あらかじめ
発振安定待ち時間を最小値に設定しておくと良いでしょう。ただし , ストップ中にハー
ドウェアスタンバイ要求が入力された場合は発振回路が停止するため , 復帰後に発振
安定待ち時間が必要となります。ここで待ち時間を最小値に設定しておくと , 発振安定
待ち時間が確保できなくなり , 復帰後の動作が保証できません。このような場合は , そ
の発振回路用の発振安定待ち時間を設定しておくようにしてください。
■ 外部クロックモード時
外部クロックモードにおける各種の待ち時間について説明します。
● 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により PLL ロッ
ク待ち時間対応に初期化されるため, この発振回路用の発振安定待ち時間は, INIT端子
入力へ "L" レベルを入力する時間により確保します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ
こでは考慮する必要はありません。ただし , このモードでは設定初期化リセット (INIT)
が解除されるとメイン PLL は動作許可となりますが , PLL 回路の初期化のため , 電源
投入後から 1µs の間は PLL を動作許可してはいけません。そのため , 発振回路用の発
振安定待ち時間が必要ない場合においても , 電源投入後は 1µs の間 INIT 端子入力へ "L"
レベルを入力し続けてください。
104
第 3 章 CPU および制御部
● 設定初期化後および PLL 動作許可後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。INIT 端子入力後の初めの発
振安定待ち状態では , 設定時間は PLL ロック待ち時間対応に初期化されているため ,
PLL ロック待ち時間経過後にこの状態は終了し , 動作初期化リセット (RST) 状態へと
遷移します。ただし , この状態で HST 端子入力 ( ハードウェアスタンバイ端子 ) に "L"
レベルが入力されていると , ハードウェアスタンバイ状態に遷移して発振回路が停止
してしまうため , 発振安定待ち設定時間は安全のため最大値に初期化し直されます。プ
ログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が発
生した場合の解除時には , プログラムで設定された時間の発振安定待ち時間を内部的
に発生します。
● PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合 , 設定変更後に
プログラム動作は一次停止して発振安定待ち ( ロック待ち ) 状態に遷移し , 設定されて
いる発振安定待ち ( ロック待ち ) 時間の経過後にプログラム動作に復帰します。この動
作により , タイムベースカウンタは一度初期化されます。
● ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムで設
定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , メインクロック用発振回路を停止させる設定の場合 , その発振回
路の発振安定待ち時間とメイン PLL のロック待ち時間のうち長い方の時間が必要とな
ります。ストップモードに遷移させる前に , あらかじめその発振安定待ち時間を設定し
ておいてください。
ストップモード中に , メインクロック用発振回路を停止させない設定の場合は , PLL は
自動では動作を停止しません。PLL を停止させない限り発振安定待ち時間は必要とな
りません。ストップモードに遷移させる前に , あらかじめ発振安定待ち時間を最小値に
設定しておくと良いでしょう。ただし , ストップ中にハードウェアスタンバイ要求が入
力された場合 , 発振回路が停止するため , 復帰後に発振安定待ち時間が必要となりま
す。
ここで待ち時間を最小値に設定しておくと, 発振安定待ち時間が確保できなくなり,
復帰後の動作が保証できません。このよう場合は , その発振回路用の発振安定待ち時間
を設定しておくようにしてください。
105
第 3 章 CPU および制御部
3.12.3
クロック分配
ソースクロックから発生されたベースクロックを元に , 各機能用の動作クロックを
それぞれ生成します。内部動作クロックは全部で 4 種類あり , それぞれが独立に分
周比を設定することができます。
この項では , 各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
このクロックは , 以下の回路が使用します。
• CPU
• 命令キャッシュ
• 内蔵 RAM, 内蔵 ROM
• ビットサーチモジュール
• I-bus, D-bus, X-bus, F-bus
• DMA コントローラ
• DSU ( 開発ツールインタフェース回路 )
動作可能な上限周波数は 66MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
このクロックは , 以下の回路が使用します。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• I2C インタフェース
動作可能な上限周波数は 33MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
106
第 3 章 CPU および制御部
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
このクロックは , 以下の回路が使用します。
• 外部拡張バスインタフェース
• 外部 CLK 出力
動作可能な上限周波数は 33MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ SDRAM クロック (CLKS)
本品種では SDRAM インタフェースはサポートしていません。
SDRAM インタフェースに使用されるクロックです。
このクロックは , 以下の回路が使用します。
• SDRAM インタフェース
• SDCLK 出力
動作可能な上限周波数は 66MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
107
第 3 章 CPU および制御部
3.12.4
クロック分周
各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定するこ
とができます。この機能によって , 各回路に最適な動作周波数を設定することがで
きます。
■ クロック分周
分周比は, 基本クロック分周設定レジスタ0 (DIVR0) および基本クロック分周設定レジ
スタ 1 (DIVR1) で設定します。各レジスタには , 各クロックに対応する 4 ビットずつの
設定ビットがあり , ( レジスタ設定値 +1) がそのクロックのベースクロックに対する分
周比となります。分周比設定が奇数であっても , 常にデューティは 50 となります。
設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効
となります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , ソー
スクロックを高速なものに変更する前に必ず分周比の設定を行ってください。
各クロックには , 動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 ,
動作は保証されませんので注意してください。ソースクロック選択の変更設定との順
序を間違えないように特に留意してください。
108
第 3 章 CPU および制御部
3.12.5
クロック発生制御部のブロックダイヤグラム
クロック発生制御部のブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 3.12-1 に , クロック発生制御部のブロックダイヤグラムを示します。
図 3.12-1 クロック発生制御部のブロックダイヤグラム
[クロック生成部]
DIVR0,1レジスタ
セレクタ
b
u
s
周辺クロック分周
セレクタ
外部バスクロック分周
SDRAMクロック分周
CPUクロック
停止制御
CPUクロック分周
R
周辺クロック
セレクタ
外部バスクロック
セレクタ
SDRAMクロック
CLKRレジスタ
X1
発振回路
PLL
1/2
内部割込み
セレクタ
X0
[ストップ・スリープ制御部]
内部リセット
STCRレジスタ
ストップ状態
状態遷移
制御回路
HST端子
SLEEP状態
リセット発生
F/F
内部リセット(RST)
リセット発生
F/F
内部リセット(INIT)
[リセット要因回路]
RST端子
INIT端子
RSRRレジスタ
[ウォッチドッグ制御部]
WPRレジスタ
ウォッチドッグF/F
タイムベースカウンタ
CTBRレジスタ
TBCRレジスタ
割込み許可
カウンタクロック
セレクタ
オーバフロー検出F/F
タイムベースタイマ
割込み要求
109
第 3 章 CPU および制御部
3.12.6
クロック発生制御部のレジスタ
クロック発生制御部で使用するレジスタの機能について説明します。
■ リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR)
図 3.12-2 に , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) の
ビット構成を示します。
図 3.12-2 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR)
ビット
アドレス:00000480H
15
INIT
R
1
*
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
×
* :要因により変化します。
× :初期化されません。
14
13
12
11
HSTB WDOG ERST SRST
R
R
R
R
0
0
0
0
*
*
×
×
*
*
×
×
10
LINIT
R
0
*
×
9
WT1
R/W
0
0
0
8
WT0
R/W
0
0
0
直前に発生したリセットの要因の保持およびウォッチドッグタイマの周期設定および
起動制御を行うレジスタです。このレジスタを読み出すと , 保持されたリセット要因は
読出し後にクリアされます。読み出すまでの間に複数回のリセットが発生した場合 , リ
セット要因フラグは累積され , 複数のフラグがセットされることになります。
このレジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リ
セット (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
以下に , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) の各ビッ
トの機能を説明します。
[ ビット 15] INIT (INITialize reset occured)
このビットは , INIT 端子入力によるリセット (INIT) の発生の有無を示します。
0
INIT 端子入力による INIT は発生していません。
1
INIT 端子入力による INIT が発生しました。
・読出し直後に "0" に初期化されます。
・読出し可能で , 書込みはビット値に影響を与えません。
110
第 3 章 CPU および制御部
[ ビット 14] HSTB (Hardware STandBy reset occured)
このビットは , HST 端子入力によるリセット (INIT) の発生の有無を示します。
0
HST 端子入力による INIT は発生していません。
1
HST 端子入力による INIT が発生しました。
・INIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
・読出し可能で , 書込みはビット値に影響を与えません。
[ ビット 13] WDOG (WatchDOG reset occured)
このビットは , ウォッチドッグタイマによるリセット (INIT) の発生の有無を示しま
す。
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
・INIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
・読出し可能で , 書込みはビット値に影響を与えません。
[ ビット 12] ERST (External ReSeT occured)
このビットは , RST 端子入力によるリセット (RST) の発生の有無を示します。
0
RST 端子入力による RST は発生していません。
1
RST 端子入力による RST が発生しました。
・INIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
・読出し可能で , 書込みはビット値に影響を与えません。
<注意事項>
本品種には , RST 端子はありません。
[ ビット 11] SRST (Software ReSeT occured)
このビットは , STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によ
るリセット (RST) の発生の有無を示します。
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
・INIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
・読出し可能で , 書込みはビット値に影響を与えません。
111
第 3 章 CPU および制御部
[ ビット 10] LINIT (Lowvoltage detect INITialize reset occured)
このビットは , LINIT 端子入力によるリセット (INIT) の発生の有無を示します。
0
LINIT 端子入力による INIT は発生していません。
1
LINIT 端子入力による INIT が発生しました。
・LINIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
・読出し可能で , 書込みはビット値に影響を与えません。
<注意事項>
本品種には LINIT 端子はありません。本品種では未サポートです。
[ ビット 9, ビット 8] WT1, WT0 (Watchdog interval Time select)
このビットは , ウォッチドッグタイマの周期を設定します。
このビットに書き込む値によって , ウォッチドッグタイマの周期を表 3.12-1 に示す
4 種類のうちから選択します。
表 3.12-1 ウォッチドッグタイマの周期設定
WPR への最終 5AH 書込みか
WT1
WT0
ウォッチドッグリセットの発
生を抑止するために最低限必
要な WPR への書込み間隔
らウォッチドッグリセットが
発生するまでの時間
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
φ : システムベースクロックの周期
・リセット (RST) により "00" に初期化されます。
・読出し可能で , 書込みはリセット (RST) 後 1 回のみ有効です。それ以降の書込み
は無効です。
112
第 3 章 CPU および制御部
■ スタンバイ制御レジスタ (STCR)
図 3.12-3 に , スタンバイ制御レジスタ (STCR) のビット構成を示します。
図 3.12-3 スタンバイ制御レジスタ (STCR) のビット構成
7
6
5
4
3
2
1
0
ビット
アドレス:00000481H STOP SLEEP HIZ SRST OS1
OS0 OSCD2 OSCD1
R/W
R/W
R/W R/W
R/W
R/W
R/W
R/W
0
0
1
1
0
0
1
1
初期値 (INIT 端子 )
初期値 (HST) *
0
0
1
1
1
1
1
1
0
0
1
1
1
1
初期値 (INIT)
×
×
0
0
1
初期値 (RST)
×
×
×
×
×
* :INIT 端子による初期化と同時の場合のみ。それ以外は INIT と同じ。
スタンバイ制御レジスタ (STCR) は , デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定およびソフトウェアリセットの
発行を行います。
以下に , スタンバイ制御レジスタ (STCR) の各ビットの機能を説明します。
[ ビット 7] STOP (STOP mode)
このビットは , ストップモードへの遷移を指示します。ビット 6 (SLEEP ビット ) と
このビット両方に "1" を書き込んだ場合は , このビット (STOP) の方が優先となり ,
ストップモードへ遷移します。
0
ストップモードへ遷移しません ( 初期値 ) 。
1
ストップモードへ遷移します。
・リセット (RST) およびストップ復帰要因により "0" に初期化されます。
・読出しおよび書込みが可能です。
[ ビット 6] SLEEP (SLEEP mode)
このビットは , スリープモードへの遷移を指示します。ビット 7 (STOP ビット ) と
このビット両方に "1" を書き込んだ場合は , ビット 7 (STOP ビット ) の方が優先と
なり , ストップモードへ遷移します。
0
スリープモードへの遷移は行いません ( 初期値 ) 。
1
スリープモードへ遷移します。
・リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
・読出しおよび書込みが可能です。
113
第 3 章 CPU および制御部
[ ビット 5] HIZ (HIZ mode)
このビットは , ストップモード時の端子状態を制御します。
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします ( 初期値 ) 。
・リセット (INIT) により "1" に初期化されます。
・読出しおよび書込みが可能です。
[ ビット 4] SRST (Software ReSeT)
このビットは , ソフトウェアリセット (RST) の発行を指示します。
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットを発行しません ( 初期値 ) 。
・リセット (RST) により "1" に初期化されます。
・読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
[ ビット 3, ビット 2] OS1, OS0 (Oscillation Stabilization time select)
これらのビットは , リセット (INIT) 後およびストップモード復帰後等における , 発
振安定待ち時間を設定します。
これらのビットに書き込む値により , 発振安定待ち時間を表 3.12-2 に示す 4 種類の
うちから選択します。
表 3.12-2 発振安定待ち時間の設定
OS1
OS0
発振安定待ち時間
原発振 16.5 MHz の場合
0
0
φ × 21 ( 初期値 )
0.242 [µs]
0
1
φ × 211
248 [µs]
1
0
φ × 216
7.94 [ms]
1
1
φ × 222
508.4 [ms]
φ : システムベースクロックの周期 , この場合は原発振入力の 2 倍の周期
・INIT 端子入力によるリセット (INIT) によって , "00" に初期化されます。
ただし, INIT端子入力と HST 端子入力によるリセット (INIT) が同時に有効であっ
た場合 , "11" に初期化されます。
・読出しおよび書込みが可能です。
114
第 3 章 CPU および制御部
[ ビット 1] OSCD2 (OSCillation Disable mode for XIN2)
このビットは , サブ発振入力 (XIN2) における , ストップモード時の発振停止を制御
します。
0
ストップモード中もサブ発振は停止しません。
1
ストップモード中はサブ発振を停止します ( 初期値 ) 。
・リセット (INIT) により "1" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
この機能は , 本品種では未サポートです。
[ ビット 0] OSCD1 (OSCillation Disable mode for XIN1)
このビットは , メイン発振入力 (XIN1) における , ストップモード時の発振停止を制
御します。
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します ( 初期値 ) 。
・リセット (INIT) により "1" に初期化されます。
・読出しおよび書込みが可能です。
115
第 3 章 CPU および制御部
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタビット 8 SYNCS ビットにて設定します ) を使用した上で , 以下のシー
ケンスを必ず使用してください。
(LDI
#value_of_standby, R0)
(LDI
#_STCR, R12)
STB
R0, @R12; スタンバイ制御レジスタ (STCR) への書込み
LDUB @R12, R0; 同期スタンバイのための STCR リード
LDUB @R12, R0; もう一度 STCR をダミーリード
;タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
NOP
• モニタデバッガを使用される場合は , 以下のことを行わないでください。
- 上記命令列に対するブレークポイントの設定
- 上記命令列に対するステップ実行
■ タイムベースカウンタ制御レジスタ (TBCR)
図 3.12-4 に , タイムベースカウンタ制御レジスタ (TBCR) のビット構成を示します。
図 3.12-4
タイムベースカウンタ制御レジスタ (TBCR) のビット構成
ビット
アドレス:00000482H
初期値 (INIT)
初期値 (RST)
15
TBIF
0
0
R/W
14
TBIE
0
0
R/W
13
TBC2
12
TBC1
11
TBC0
×
×
R/W
×
×
R/W
×
×
R/W
10
−
×
×
R/W
9
8
SYNCR SYNCS
0
0
×
R/W
×
R/W
タイムベースカウンタ制御レジスタ (TBCR) は , タイムベースタイマ割込み等を制御
するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , リセッ
ト動作のオプション機能の設定を行います。
以下に , タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を説明します。
[ ビット 15] TBIF (TimeBasetimer Interrupt Flag)
このビットは , タイムベースタイマ割込みフラグです。タイムベースカウンタが設
定されたインターバル時間 ( ビット 13 ∼ビット 11 の TBC2 ∼ TBC0 ビットで設定 )
を経過したことを示します。
ビット 14 (TBIE ビット ) により割込み発生が許可 (TBIE=1) されているときに , この
116
第 3 章 CPU および制御部
ビットが "1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過 ( タイムベースカウンタ出力の
立下りエッジ検出 )
・リセット (RST) により "0" に初期化されます。
読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん
でもビット値は変化しません。また , リードモディファイライト系命令での読出し
値は , 常に "1" となります。
[ ビット 14] TBIE (TimeBasetimer Interrupt Enable)
このビットは , タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。このビットが "1" のときに , ビットの TBIF ビットが "1" になると , タイムベー
スタイマ割込み要求が発生します。
0
タイムベースタイマ割込み要求出力禁止 ( 初期値 )
1
タイムベースタイマ割込み要求出力許可
・リセット (RST) により "1" に初期化されます。
・読出しおよび書込みが可能です。
[ ビット 13 ∼ビット 11] TBC2, TBC1, TBC0 (TimeBasetimer Counting time select)
これらのビットは , タイムベースタイマで使用するタイムベースカウンタのイン
ターバル時間を設定します。
これらのビットに書き込む値により , インターバル時間を表 3.12-3 に示す 8 種類の
うちから選択します。
表 3.12-3 インターバル時間の設定
TBC2
TBC1
TBC0
タイマインターバル時間
原発振 16.5MHz および
PLL が 4 逓倍の場合
0
0
0
φ × 211
31.0 [µs]
0
0
1
φ × 212
62.0 [µs]
0
1
0
φ × 213
124.1 [µs]
0
1
1
φ × 222
63.5 [ms]
1
0
0
φ × 223
127.1 [ms]
1
0
1
φ × 224
254.2 [ms]
1
1
0
φ × 225
508.3 [ms]
1
1
1
φ × 226
1016
[ms]
117
第 3 章 CPU および制御部
φ : システムベースクロックの周期
・初期値は不定です。割込みを許可する前に必ず値を設定してください。
・読出しおよび書込みが可能です。
[ ビット 10] (reserved bit)
このビットは , 予約ビットです。読出し値は不定で , 書込みは動作に影響を与えま
せん。
[ ビット 9] SYNCR (SYNChronous Reset enable)
このビットは , 同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求またはハードウェアスタンバイ要求が発生した際
に , 即座にリセット (RST) またはハードウェアスタンバイ遷移を行う通常リセット
動作を行うか , すべてのバスアクセスが停止してから動作初期化リセット (RST) ま
たはハードウェアスタンバイ遷移を行う同期リセット動作を行うかを選択します。
0
通常リセット動作 ( 初期値 )
1
同期リセット動作
・リセット (INIT) により "0" に初期化されます。
・読出しおよび書込みが可能です。
[ ビット 8] SYNCS (SYNChronous Standby enable)
このビットは , 同期スタンバイ動作許可ビットです。
スタンバイ要求 ( スリープモード要求またはストップモード要求 ) を発生する際 ,
STCR レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバ
イ動作を行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読
み出すことによってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択し
ます。
0
通常スタンバイ動作 ( 初期値 )
1
同期スタンバイ動作
・リセット (INIT) により "0" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
スタンバイモードに遷移する際には,必ず "1" を設定し,同期スタンバイ動作としてく
ださい。
118
第 3 章 CPU および制御部
■ タイムベースカウンタクリアレジスタ (CTBR)
図 3.12-5 に , タイムベースカウンタクリアレジスタ (CTBR) のビット構成を示します。
図 3.12-5 タイムベースカウンタクリアレジスタ (CTBR) のビット構成
ビット
アドレス:00000483H
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
初期値 (INIT)
初期値 (RST)
×
×
W
×
×
W
×
×
W
×
×
W
×
×
W
×
×
W
×
×
W
×
×
W
タイムベースカウンタクリアレジスタ (CTBR) は , タイムベースカウンタを初期化す
るためのレジスタです。
このレジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書込みの直後にタイム
ベースカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間の
時間は制限がありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込むと , 再
度 {A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。
このレジスタの読出し値は不定です。
<注意事項>
このレジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 ,
ウォッチドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。
119
第 3 章 CPU および制御部
■ クロックソース制御レジスタ (CLKR)
図 3.12-6 に , クロックソース制御レジスタ (CLKR) のビット構成を示します。
図 3.12-6 クロックソース制御レジスタ (CLKR) のビット構成
15
14
13
12
11
10
9
ビット
アドレス:00000484H
PLL2S0 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
初期値 (INIT)
初期値 (RST)
×
×
×
×
×
×
×
8
CLKS0
R/W
0
×
クロックソース制御レジスタ (CLKR) は , システムのベースクロックとするクロック
ソースの選択や PLL の制御を行うレジスタです。このレジスタでクロックソースを 3
種類 ( 本品種では 2 種類をサポート ) のうちから選択します。また , メイン / サブ 2 系
統の PLL それぞれの動作許可および逓倍率の選択を制御します。
以下に , クロックソース制御レジスタ (CLKR) の各ビットの機能を説明します。
[ ビット 15] PLL2S0 (PLL2 ratio Select 0)
このビットは , サブ PLL の逓倍率選択ビットです。サブ PLL の逓倍率を , 2 種類の
うちから選択します。
このビットは , クロックソースとしてサブ PLL を選択している間は書換えを禁止し
ます。
0
逓倍率設定 1 ( 初期値 )
1
逓倍率設定 1
・リセット (INIT) により "0" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
この機能は , 本品種では未サポートです。
120
第 3 章 CPU および制御部
[ ビット 14 ∼ビット 12] PLL1S2, PLL1S1, PLL1S0 (PLL1 ratio Select 2 ∼ 0)
これらのビットは , メイン PLL の逓倍率選択ビットです。メイン PLL の逓倍率を ,
表 3.12-4 に示す 8 種類 ( 本品種では 4 種類をサポート ) のうちから選択します。
これらのビットは , クロックソースとしてメイン PLL を選択している間は書換えを
禁止します。
表 3.12-4 メイン PLL 逓倍率の設定
PLL1S2
PLL1S1
PLL1S0
メイン PLL 逓倍率
0
0
0
× 1 ( 等倍 )
0
0
1
× 2 (2 逓倍 )
0
1
0
× 3 (3 逓倍 )
0
1
1
× 4 (4 逓倍 )
1
0
0
× 5 (5 逓倍 )
1
0
1
× 6 (6 逓倍 )
1
1
0
× 7 (7 逓倍 )
1
1
1
× 8 (8 逓倍 )
* : 本品種では未サポート
( 注意事項 ) φ はシステムベースクロックの周期
原発振
16.5MHz の場合
φ = 60.60 [ns] (16.5 [MHz] )
φ = 30.30 [ns] (33.0 [MHz] )
φ = 20.20 [ns] (49.5 [MHz] )
φ = 15.15 [ns] (66.0 [MHz] )
*
*
*
*
・リセット (INIT) により "000" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
動作可能な上限周波数は 66MHz ですので , これを超える設定をしないでください。
[ ビット 11] PLL2EN (PLL2 ENable)
このビットは , サブ PLL の動作許可ビットです。
このビットは , クロックソースとしてサブ PLL を選択している間は書換えを禁止し
ます。
また , このビットが "0" の間はクロックソースとしてサブ PLL を選択することを禁
止します ( ビット 9, ビット 8 の CLKS1, CLKS0 ビットの設定による ) 。
STCR のビット (OSCD2 ビット ) が "1" であると , ストップモード中はこのビットが
"1" であってもサブ PLL は停止します。ストップモードからの復帰後は動作許可に
戻ります。
0
サブ PLL 停止 ( 初期値 )
1
サブ PLL 動作許可
・リセット (INIT) により "0" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
この機能は , 本品種では未サポートです。
121
第 3 章 CPU および制御部
[ ビット 10] PLL1EN (PLL1 ENable)
このビットは , メイン PLL の動作許可ビットです。
このビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止
します。
また , このビットが "0" の間はクロックソースとしてメイン PLL を選択することを
禁止します ( ビット 9, ビット 8 の CLKS1, CLKS0 ビットの設定による ) 。
STCR のビット 1 (OSCD2 ビット ) が "1" であると , ストップモード中はこのビット
が "1" であってもメイン PLL は停止します。ストップモードからの復帰後は動作許
可に戻ります。
0
1
メイン PLL 停止 ( 初期値 )
メイン PLL 動作許可
・リセット (INIT) により "0" に初期化されます。
・読出しおよび書込みが可能です。
[ ビット 9, ビット 8] CLKS1, CLKS0 (CLocK source Select)
これらのビットは , MB91307 シリーズで使用するクロックソースを設定します。
これらのビットに書き込む値により , クロックソースを表 3.12-5 に示す 3 種類 ( 本
品種では 2 種類をサポート ) のうちから選択します。
表 3.12-5 クロックソースの設定
CLKS1
CLKS0
0
0
1
1
0
1
0
1
クロックソース設定
X0/X1 よりの原発振入力の 2 分周 ( 初期値 )
X0/X1 よりの原発振入力の 2 分周
メイン PLL
サブ PLL*
* : 本品種では未サポートです。
CLKS1, CLKS0 ビットの変更不可能な組合せおよび変更可能な組合せを , 表 3.12-6
に示します。
表 3.12-6 CLKS1, CLKS0 ビットの変更不可能 / 変更可能な組合せ
変更不可能な組合せ
変更可能な組合せ
"00" → "11"
"01" → "10"
"10" → "01" または "11"
"11" → "00" または "10"
"00" → "01" または "10"
"01" → "11" または "00"
"10" → "00"
"11" → "01"
なお , ビット 9 (CLKS1) が "1" の間はビット 8 (CLKS0) の値を変更することはでき
ません。このため , INIT 後の状態からサブ PLL を選択したい場合は , まず "01" を書
き込んだ後に , "11" を書き込むようにしてください ("11" の設定は , 本品種では未サ
ポートです ) 。
・リセット (INIT) により "00" に初期化されます。
・読出しおよび書込みが可能です。
122
第 3 章 CPU および制御部
■ ウォッチドッグリセット発生延期レジスタ (WPR)
図 3.12-7 に , ウォッチドッグリセット発生延期レジスタ (WPR) のビット構成を示しま
す。
図 3.12-7 ウォッチドッグリセット発生延期レジスタ (WPR) のビット構成
7
D7
W
×
×
ビット
アドレス:00000485H
初期値 (INIT)
初期値 (RST)
6
D6
W
×
×
5
D5
W
×
×
4
D4
W
×
×
3
D3
W
×
×
2
D2
W
×
×
1
D1
W
×
×
0
D0
W
×
×
ウォッチドッグリセット発生延期レジスタ (WPR) は , ウォッチドッグリセットの発生
を延期するためのレジスタです。このレジスタに連続して {A5H}, {5AH} を書き込むと ,
{5AH} 書込みの直後にウォッチドッグタイマの検出用 FF をクリアし , ウォッチドッグ
リセットの発生を延期します。{A5H} 書込みと {5AH} 書込みの間の時間は制限があり
ません。しかし , {A5H} 書込みの後に {5AH} 以外のデータを書き込むと , 再度 {A5H}
を書き込まないと {5AH} を書き込んでもクリア動作は行いません。また , 表 3.12-7 に
示す期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。
RSRR レジスタのビット 9 (WT1) , ビット 8 (WT0) の状態により表 3.12-7 に示すように
変化します。
表 3.12-7 ウォッチドッグリセット発生の設定
RSRR のウォッチドッグリセッ
トの発生を抑止するために最低
限必要な WPR への書込み間隔
WPR への最終 5AH 書込みから
WT1
WT0
0
0
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
φ × 216
( 初期値 )
ウォッチドッグリセットが発生
するまでの時間
φ × 216 ∼ φ × 217
( 注意事項 ) φ はシステムベースクロックの周期 , WT1, WT0 は RSRR のビット 9, ビッ
ト 8 でウォッチドッグタイマ周期設定
外部バスのホールド要求 (BRQ) が受け付けられている場合にはウォッチドッグリセッ
トは延期されませんので , 長期間外部バスをホールドする場合は , スリープモードにし
てからホールド要求 (BRQ) を入力してください。
このレジスタの読出し値は不定です。
123
第 3 章 CPU および制御部
■ 基本クロック分周設定レジスタ 0 (DIVR0)
図 3.12-8 に , 基本クロック分周設定レジスタ 0 (DIVR0) のビット構成を示します。
図 3.12-8 基本クロック分周設定レジスタ 0 (DIVR0) のビット構成
ビット
アドレス:00000486H
初期値 (INIT)
初期値 (RST)
7
B3
R/W
0
6
B2
R/W
0
5
B1
R/W
0
4
B0
R/W
0
3
P3
R/W
0
2
P2
R/W
0
1
P1
R/W
1
0
P0
R/W
1
×
×
×
×
×
×
×
×
基本クロック分周設定レジスタ0 (DIVR0) は, 各内部クロックのベースクロックに対す
る分周比を制御するレジスタです。このレジスタでは , CPU および内部バスのクロッ
ク (CLKB) と , 周辺回路およびペリフェラルバスクロック (CLKP) の分周比を設定しま
す。
各クロックには , 動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLLの逓倍率の設定, 分周比の設定の組合せで, 上限周波数を超える設定をした場合は,
動作が保証されませんので , 注意してください。ソースクロック選択の変更設定との順
序を間違えないように注意してください。
このレジスタの設定に変更があった場合 , 設定後の次のクロックレートから変更後の
分周比が有効となります。
[ ビット 7 ∼ビット 4] B3, B2, B1, B0 (clkB divide select 3 ∼ 0)
これらのビットは , CPU クロック (CLKB) のクロック分周比設定ビットです。CPU
と内部メモリおよび内部バスのクロック (CLKB) のクロック分周比を設定します。
このビットに書き込む値により , CPU および内部バスのクロックのベースクロック
に対する分周比 ( クロック周波数 ) を , 表 3.12-8 に示す 16 種類のうちから選択しま
す。
動作可能な上限周波数は 66MHzですので , これを超える周波数になる分周比は設定
しないでください。
表 3.12-8 クロック分周比 (CPU クロック ) の設定
クロック周波数 : 原発振 16.5 [MHz]
および PLL4 逓倍の場合
0
0
0
0
φ
66 [MHz] ( 初期値 )
0
0
0
1
33 [MHz]
φ × 2 (2 分周 )
0
0
1
0
22 [MHz]
φ × 3 (3 分周 )
0
0
1
1
16.5
[MHz]
φ × 4 (4 分周 )
0
1
0
0
13.2
[MHz]
φ × 5 (5 分周 )
0
1
0
1
11 [MHz]
φ × 6 (6 分周 )
0
1
1
0
9.43 [MHz]
φ × 7 (7 分周 )
0
1
1
1
8.25 [MHz]
φ × 8 (8 分周 )
…
…
…
… …
…
1
1
1
1
4.13 [MHz]
φ × 16 (16 分周 )
( 注意事項 ) φ はシステムベースクロックの周期
B3
B2
B1
B0
クロック分周比
・リセット (INIT) により "0000" に初期化されます。
・読出しおよび書込みが可能です。
124
第 3 章 CPU および制御部
[ ビット 3 ∼ビット 0] P3, P2, P1, P0 (clkP divide select 3 ∼ 0)
これらのビットは , 周辺クロック (CLKP) のクロック分周比設定ビットです。周辺
回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。
このビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックの
ベースクロックに対する分周比 ( クロック周波数 ) を , 表 3.12-9 に示す 16 種類のう
ちから選択します。
表 3.12-9 クロック分周比 ( 周辺クロック ) の設定
P3
P2
P1
P0
0
0
0
0
クロック分周比
φ
φ × 2 (2 分周 )
φ × 3 (3 分周 )
φ × 4 (4 分周 )
φ × 5 (5 分周 )
φ × 6 (6 分周 )
φ × 7 (7 分周 )
φ × 8 (8 分周 )
…
…
…
… …
1
1
1
1
φ × 16 (16 分周 )
* :33MHz 以上になるので設定禁止
( 注意事項 ) φ はシステムベースクロックの周期
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
クロック周波数 : 原発振
16.5 [MHz] および PLL4 逓
倍の場合
66 [MHz] *
33 [MHz]
22 [MHz]
16.5 [MHz] ( 初期値 )
13.2 [MHz]
11 [MHz]
9.43 [MHz]
8.25 [MHz]
…
4.13 [MHz]
・リセット (INIT) により "0011" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
動作可能な上限周波数は 33MHz ですので , これを超える周波数になる分周比は設定し
ないでください。
125
第 3 章 CPU および制御部
■ 基本クロック分周設定レジスタ 1 (DIVR1)
図 3.12-9 に , 基本クロック分周設定レジスタ 1 (DIVR1) のビット構成を示します。
図 3.12-9 基本クロック分周設定レジスタ 1 (DIVR1) のビット構成
7
6
5
4
3
2
1
ビット
アドレス:00000487H
T3
T2
T1
T0
S3
S2
S1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
初期値 (INIT)
初期値 (RST)
×
×
×
×
×
×
×
0
S0
R/W
0
×
基本クロック分周設定レジスタ 1 (DIVR1) は , 各内部クロックの , ベースクロックに対
する分周比を制御するレジスタです。このレジスタでは , 外部拡張バスインタフェース
のクロック (CLKT) と , SDRAM インタフェースのクロック (CLKS) の分周比の設定を
行います。各クロックには , 動作可能な上限周波数が規定されています。ソースクロッ
クの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定を
した場合は , 動作は保証されませんので注意してください。ソースクロック選択の変更
設定との順序を間違えないように注意してください。
このレジスタの設定に変更があった場合 , 設定後の次のクロックレートから変更後の
分周比が有効となります。
[ ビット 7 ∼ビット 4] T3, T2, T1, T0 (clkT divide select 3 ∼ 0)
これらのビットは, 外部バスクロック (CLKT) のクロック分周比設定ビットです。外
部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。こ
のビットに書き込む値により , 外部拡張バスインタフェースのクロックの , ベース
クロックに対する分周比 ( クロック周波数 ) を , 表 3.12-10 に示す 16 種類のうちか
ら選択します。
表 3.12-10 クロック分周比 ( 外部バスクロック ) の設定
クロック周波数 : 原発振 16.5 [MHz]
および PLL4 逓倍の場合
T3
T2
T1
T0
0
0
0
0
φ
66 [MHz] * ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
33 [MHz]
0
0
1
0
φ × 3 (3 分周 )
22 [MHz]
0
0
1
1
φ × 4 (4 分周 )
16.5 [MHz]
0
1
0
0
φ × 5 (5 分周 )
13.2 [MHz]
0
1
0
1
φ × 6 (6 分周 )
11 [MHz]
0
1
1
0
φ × 7 (7 分周 )
9.43 [MHz]
0
1
1
1
φ × 8 (8 分周 )
8.25 [MHz]
…
…
…
…
1
1
1
1
クロック分周比
…
φ × 16 (16 分周 )
…
4.13 [MHz]
* :33MHz 以上になるので設定禁止
( 注意事項 ) φ はシステムベースクロックの周期
・リセット (INIT) により "0000" に初期化されます。
・読出しおよび書込みが可能です。
126
第 3 章 CPU および制御部
<注意事項>
動作可能な上限周波数は 33MHz ですので , これを超える周波数になる分周比は設定し
ないでください。
[ ビット 3 ∼ビット 0] S3, S2, S1, S0 (clkS divide select 3 ∼ 0)
この機能は , 本品種ではサポートしていません。
これらのビットは , SDRAM クロック (CLKS) のクロック分周比設定ビットです。
SDRAM インタフェースのクロック (CLKS) のクロック分周比を設定します。この
ビットに書き込む値により, SDRAM インタフェースのクロックの , ベースクロック
に対する分周比 ( クロック周波数 ) を , 表 3.12-11 に示す 16 種類のうちから選択し
ます。
表 3.12-11 クロック分周比 (SDRAM クロック ) の設定
クロック周波数 : 原発振 16.5
[MHz] および PLL4 逓倍の場合
S3
S2
S1
S0
0
0
0
0
φ
66
[MHz] ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
33
[MHz]
0
0
1
0
φ × 3 (3 分周 )
22
[MHz]
0
0
1
1
φ × 4 (4 分周 )
16.5 [MHz]
0
1
0
0
φ × 5 (5 分周 )
13.2 [MHz]
0
1
0
1
φ × 6 (6 分周 )
11
0
1
1
0
φ × 7 (7 分周 )
9.43 [MHz]
0
1
1
1
φ × 8 (8 分周 )
8.25 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
4.13 [MHz]
クロック分周比
[MHz]
( 注意事項 ) φ はシステムベースクロックの周期
・リセット (INIT) により "0000" に初期化されます。
・読出しおよび書込みが可能です。
<注意事項>
動作可能な上限周波数は 66MHz ですので , これを超える周波数になる分周比は設定し
ないでください。
127
第 3 章 CPU および制御部
■ CLKB クロックを分周する場合の注意点
• CLKB クロックを分周する場合は必ず , PLL を ON (CLKR レジスタのビット 10
(PLL1EN='1)) にしてから , DIVR0 レジスタを設定してください。
• DIVR0 と DIVR1 レジスタは , 同時に書込み ( ハーフワード書込み ) してください。
• CLKT クロックは , 必ず CLKB と同じ分周比か , CLKB クロックの整数倍にしてくだ
さい。
DIVR0 (B3 ∼ B0) , DIVR1 (T3 ∼ T0) レジスタの設定可能な組合せを表 3.12-12 に示し
ます。
表 3.12-12 DIVR0(B3 ∼ B0), DIVR1(T3 ∼ T0) レジスタの設定可能な組合せ (1 / 2)
128
DIVR0 (B3 ∼ B0)
DIVR1 (T3 ∼ T0)
Divide
CLKB:CLKT
備考
0000
0001
0001
0001
0001
0001
0001
0001
0001
0001
0010
0010
0010
0010
0010
0010
0010
0010
0010
0011
0011
0011
0011
0011
0011
0011
0011
0011
0100
0100
0100
0100
0100
0100
0100
0100
0100
0101
XXXX
0000
0001
0010
0011
0100
0101
0110
0111
1111
0000
0001
0010
0011
0100
0101
0110
0111
1111
0000
0001
0010
0011
0100
0101
0110
0111
1111
0000
0001
0010
0011
0100
0101
0110
0111
1111
0000
1:X
2:1
2:2
2:3
2:4
2:5
2:6
2:7
2:8
2:16
3:1
3:2
3:3
3:4
3:5
3:6
3:7
3:8
3:16
4:1
4:2
4:3
4:4
4:5
4:6
4:7
4:8
4:16
5:1
5:2
5:3
5:4
5:5
5:6
5:7
5:8
5:16
6:1
設定可能
NG
設定可能
NG
設定可能
NG
設定可能
NG
設定可能
設定可能
NG
NG
設定可能
NG
NG
設定可能
NG
NG
NG
NG
NG
NG
設定可能
NG
NG
NG
設定可能
設定可能
NG
NG
NG
NG
設定可能
NG
NG
NG
NG
NG
第 3 章 CPU および制御部
表 3.12-12 DIVR0(B3 ∼ B0), DIVR1(T3 ∼ T0) レジスタの設定可能な組合せ (2 / 2)
DIVR0 (B3 ∼ B0)
DIVR1 (T3 ∼ T0)
Divide
CLKB:CLKT
備考
0101
0101
0101
0101
0101
0101
0101
0101
0110
0110
0110
0110
0110
0110
0110
0110
0110
0111
0111
0111
0111
0111
0111
0111
0111
0111
1111
1111
1111
1111
1111
1111
1111
1111
1111
0001
0010
0011
0100
0101
0110
0111
1111
0000
0001
0010
0011
0100
0101
0110
0111
1111
0000
0001
0010
0011
0100
0101
0110
0111
1111
0000
0001
0010
0011
0100
0101
0110
0111
1111
6:2
6:3
6:4
6:5
6:6
6:7
6:8
6:16
7:1
7:2
7:3
7:4
7:5
7:6
7:7
7:8
7:16
8:1
8:2
8:3
8:4
8:5
8:6
8:7
8:8
8:16
16:1
16:2
16:3
16:4
16:5
16:6
16:7
16:8
16:16
NG
NG
NG
NG
設定可能
NG
NG
NG
NG
NG
NG
NG
NG
NG
設定可能
NG
NG
NG
NG
NG
NG
NG
NG
NG
設定可能
設定可能
NG
NG
NG
NG
NG
NG
NG
NG
設定可能
( 注意事項 ) X は , "1" または "0"
CLKB クロックを分周している場合に STOP モードに遷移するときは , 必ず , すべての
分周比を "1" にしたのち , 2 分周モード (CLKR レジスタのビット 9, ビット 8 (CLKS1,
CLKS0="00") に設定した状態から STOP モードへ遷移させてください。
129
第 3 章 CPU および制御部
3.12.7
クロック制御部が持つ周辺回路
クロック制御部が持つ周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク
ロックで動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測のほか , 以下の用途に使用されます
( 発振安定待ち時間の詳細については , 「3.11.4 発振安定待ち時間」を参照してくださ
い)。
• ウォッチドッグタイマ
システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
以下に , これらの機能について説明します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
【ウォッチドッグタイマの起動と周期設定】
ウォッチドッグタイマは , リセット (RST) 後の 1 回目のリセット要因レジスタ / ウォッ
チドッグタイマ制御レジスタ (RSRR) への書込み動作により起動します。このとき ,
ウォッチドッグタイマのインターバル時間をビット 09, ビット 08 (WT1, WT0 ビット )
により設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみ
が有効となり , それ以降の書込みはすべて無視されます。
【ウォッチドッグリセットの発生延期】
一度ウォッチドッグタイマを起動すると , プログラムで定期的にウォッチドッグリ
セット発生延期レジスタ (WPR) に対して {A5H}, {5AH} の順でデータを書き込む必要
があります。この操作により , ウォッチドッグリセット発生用フラグが初期化されま
す。
【ウォッチドッグリセットの発生】
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカウ
ンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出時にフ
ラグがセットされていると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
130
第 3 章 CPU および制御部
【ウォッチドッグタイマの停止】
一度ウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生するまで
は , ウォッチドッグタイマを停止することはできません。
動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停止
し , 再度プログラム動作で起動するまでは , 機能しません。
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
• 発振安定待ちリセット (RST) 状態
• ハードウェアスタンバイ状態
【ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 】
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には一度ウォッ
チドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生を延期し
ます。プログラム動作の停止とは , 具体的には以下の動作を示します。
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• 命令バス (I-bus) またはデータバス (D-bus) のどちらかに対する DMA 転送中
• エミュレータデバッガ , モニタデバッガを使用中のブレーク中
• INTE 命令の実行から RETI 命令の実行までの期間
• ステップトレーストラップ (PS レジスタの Tフラグ =1による 1 命令ごとのブレーク)
• 命令キャッシュ制御レジスタ (ISIZE, ICHCR), RAM モード時のキャッシュメモリへ
のデータアクセス中
また , タイムベースカウンタをクリアすると , 同時にウォッチドッグリセット発生用フ
ラグも初期化され , ウォッチドッグリセットの発生が延期されます。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセット
が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセット (INIT) をかけ
てください。
■ タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。PLL のロック待ち時間やサブクロック等の発振安定待ち時間など , 最
大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測をする用途に
適しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
【タイムベースタイマの起動とインターバル設定】
タイムベースタイマは , タイムベースカウンタ制御レジスタ (TBCR) のビット 13 ∼
ビット 11 (TBC2, TBC1, TBC0 ビット ) でインターバル時間を設定します。設定したイ
ンターバルに対応するタイムベースカウンタの出力の立下りエッジは常に検出されて
いるため , インターバル時間の設定後は , まず , ビット 15 (TBIF ビット ) をクリアして
から , ビット 14 (TBIE ビット ) を "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめビット 14 (TBIE ビット ) を "0" にして割
131
第 3 章 CPU および制御部
込み要求出力を禁止しておいてください。
タイムベースカウンタはこれらの設定に影響されず常にカウント動作をしていますの
で , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタイムベー
スカウンタをクリアしてください。そうしないと , 割込み許可直後に割込み要求が発生
することがあります。
【プログラムによるタイムベースカウンタのクリア】
タイムベースカウンタクリアレジスタ (CTBR) に対して {A5H}, {5AH} の順でデータを
書き込むと , {5AH} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリアし
ます。{A5H} 書込みと {5AH} 書込みの間の時間は制限がありませんが , {A5H} 書込み
の後に {5AH} 以外のデータを書き込むと , 再度 {A5H} を書き込まないと {5AH} を書き
込んでもクリア動作は行いません。
このタイムベースカウンタをクリアすることにより , 同時にウォッチドッグリセット
発生用フラグも初期化され , ウォッチドッグリセットの発生が一度延期されます。
【デバイス状態によるタイムベースカウンタのクリア】
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にクリ
アされます。
• ストップ状態
• 設定初期化リセット (INIT) 状態
• ハードウェアスタンバイ状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタが
使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生してし
まうことがあります。そのため , ストップモードを設定する前には , タイムベースタイ
マ割込みを禁止し , タイムベースタイマを使用しないようにしてください。
それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイムベース
タイマ割込みは自動的に禁止されます。
132
第 3 章 CPU および制御部
3.13
デバイス状態制御
MB91307 シリーズの各種状態とその制御 , および低消費電力モードについて説明し
ます。
■ デバイス状態
MB91307 シリーズの動作状態には以下のものがあります。
これらの詳細については , 「3.13.1 デバイス状態と各遷移」で説明します。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• ハードウェアスタンバイ状態
• 発振安定待ち RUN 状態
• 発振安定待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
■ 低消費電力モード
低消費電力モードには以下の 2 つがあります。
これらの詳細については , 「3.13.2 低消費電力モード」で説明します。
• スリープモード
• ストップモード
133
第 3 章 CPU および制御部
3.13.1
デバイス状態と各遷移
デバイスの動作状態と , 各動作状態間の遷移について説明します。
■ RUN 状態 ( 通常動作 )
この状態は , プログラム実行状態です。すべての内部クロックが供給され , すべての回
路が動作可能な状態です。
ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスされていない期間はバス
クロックのみ停止しています。
この状態では , 各状態の遷移要求を受け付けますが , 同期リセットモードを選択してい
る場合 , 通常リセットモードの場合と一部要求に対する状態遷移動作が異なります。詳
細については , 「3.11.5 リセット動作モード」の「■同期リセット動作」を参照してく
ださい。
■ スリープ状態
この状態は , プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。命令キャッシュ
は停止し , 各種内蔵メモリおよび内部 / 外部バスは DMA コントローラが要求しない限
り停止状態です。
• 有効な割込み要求の発生により , この状態は解除され , RUN 状態 ( 通常動作 ) へ遷
移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷
移します。
• ハードウェアスタンバイ要求の発生により , ハードウェアスタンバイ状態に遷移し
ます。
■ ストップ状態
この状態は , デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL
は設定により停止させることができます。
また , 設定により , 外部端子を一律にハイインピーダンスにすることができます ( 一部
端子を除く ) 。
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち
RUN 状態へ遷移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ
遷移します。
• ハードウェアスタンバイ要求の発生により , ハードウェアスタンバイ状態に遷移し
ます。
134
第 3 章 CPU および制御部
■ ハードウェアスタンバイ状態
この状態は , デバイス停止状態です。外部 HST 端子への "L" レベル入力 ( ハードウェ
アスタンバイ要求 ) により遷移します。すべての内部回路が停止します。内部クロッ
クはすべて停止し , 発振回路および PLL も停止します。
• 内部回路には , 設定初期化リセット (INIT) が供給されます。
• 外部端子は一律ハイインピーダンスになります ( 一部端子を除く ) 。
• 外部 HST 端子への "H" レベル入力または外部 INIT 端子への "L" レベル入力により ,
設定初期化リセット (INIT) 状態へ遷移します。
■ 発振安定待ち RUN 状態
この状態は , デバイス停止状態です。ストップ状態からの復帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
• ストップ状態等での外部端子のハイインピーダンス制御は解除されます。
• 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ
遷移します。
• ハードウェアスタンバイ要求の発生により , ハードウェアスタンバイ状態に遷移し
ます。
■ 発振安定待ちリセット (RST) 状態
この状態は , デバイス停止状態です。ストップ状態 , または設定初期化リセット (INIT)
状態からの復帰後に遷移します。クロック発生制御部 ( タイムベースカウンタおよび
デバイス状態制御部 ) を除くすべての内部回路が停止します。内部クロックはすべて
停止しますが , 発振回路および動作許可されていた PLL は動作しています。
• ストップ状態等での外部端子のハイインピーダンス制御は解除されます。
• 内部回路に対し , 動作初期化リセット (RST) を出力します。
• 設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷
移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• ハードウェアスタンバイ要求の発生により , ハードウェアスタンバイ状態に遷移し
ます。
135
第 3 章 CPU および制御部
■ 動作初期化リセット (RST) 状態
この状態は , プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , ま
たは発振安定待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いた PLL は動作しています。
• 内部回路に対し , 動作初期化リセット (RST) を出力します。
• 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動
作初期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの
復帰後だった場合は , 設定初期化リセットシーケンスを実行します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• ハードウェアスタンバイ要求の発生により , ハードウェアスタンバイ状態に遷移し
ます。
■ 設定初期化リセット (INIT) 状態
この状態は , 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付け , または
ハードウェアスタンバイ状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて
の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外
では動作します。
• 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出
力します。
• 設定初期化リセット (INIT) 要求の消失によりこの状態は解除され , 発振安定待ちリ
セット (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設
定初期化リセットシーケンスを実行します。
■ 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部の要
求は特定の状態でしか発生しませんので , その状態でしか有効になりません。
【最も高い】設定初期化リセット (INIT) 要求
↓
ハードウェアスタンバイ要求
↓
発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待
ち RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓
ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
【最も低い】スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
136
第 3 章 CPU および制御部
3.13.2
低消費電力モード
MB91307 シリーズの状態のうち , 各低消費電力モードとその使用方法について説明
します。
■ 低消費電力モード
MB91307 シリーズの低消費電力モードには , 以下のものがあります。
• スリープモード : レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード : レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
• ハードウェアスタンバイモード : 外部 HST 端子への "L" レベル入力により , デバイ
スをハードウェアスタンバイ状態へ遷移させます。
以下に , 各モードについて説明します。
■ スリープモード
スタンバイ制御レジスタ (STCR) のビット 6 (SLEEP ビット ) に "1" を書き込むとスリー
プモードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発
生するまでは , スリープ状態を維持します。
スタンバイ制御レジスタ (STCR) のビット 7 (STOP ビット ) と本ビット両方に "1" を書
き込んだ場合は , ビット 7 (STOP ビット ) の方が優先となり , ストップ状態へ遷移しま
す。
スリープ状態については , 「3.13.1 デバイス状態と各遷移」の「■スリープ状態」も参
照してください。
● スリープ状態で停止する回路
• CPU のプログラム実行
• 命令キャッシュ
• データキャッシュ
• ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
• 各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
• 内部 / 外部バス (DMA 転送が発生した場合は動作します。)
● スリープ状態で停止しない回路
• 発振回路
• 動作許可された PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• DMA コントローラ
137
第 3 章 CPU および制御部
● スリープ状態からの復帰要因
• 有効な割込み要求の発生
CPU の ILM で設定したレベルより高い割込み要求が発生すると , スリープモードは
解除され , RUN 状態 ( 通常動作 ) へ遷移します。CPU の ILM で設定したレベル以下
の割込み要求が発生しても , スリープモードは解除されません。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• ハードウェアスタンバイ要求の発生
ハードウェアスタンバイ要求が発生すると , 無条件でハードウェアスタンバイ状態
に遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
各要因の優先順位については , 「3.13.1 デバイス状態と各遷移」の「■各状態遷移要求
の優先順位」を参照してください。
● 通常スタンバイ動作と同期スタンバイ動作
タイムベースカウンタ制御レジスタ (TBCR) のビット 8 (SYNCS ビット ) に "1" が設定
されている場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書
込みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出すこと
によってスリープ状態へ遷移します。
SYNCS ビットに "0" が設定されている場合は , 通常スタンバイ動作となり , SLEEP ビッ
トへの書込みのみでスリープ状態へ遷移します。
通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の分周
比が大きく設定してあると , 実際に SLEEP ビットへの書込みが行われるまでに多くの
命令を実行してしまいます。このため , SLEEP ビットへの書込み命令の後 , 最低でも
{5+ (CPU クロックの分周比 / 周辺クロックの分周比 ) } 命令以上の NOP 命令を配置し
なければ , それ以降の命令がスリープ状態への遷移前に実行されてしまいます。
同期スタンバイ動作時は , 実際に SLEEP ビットへの書込みが行われた後 , STCR レジス
タの読出しが完了するまではスリープ状態へ遷移しません。STCR レジスタの読出し値
が CPU に格納されるまでは , CPU がバスを使用しているためです。このため , CPU ク
ロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる設定においても ,
SLEEP ビットへの書込み命令と STCR レジスタの読出し命令の後に , 2 命令のみ NOP
命令を配置するのみで , それ以降の命令がスリープ状態への遷移前に実行されること
を防ぐことができます。
138
第 3 章 CPU および制御部
■ ストップモード
スタンバイ制御レジスタ (STCR) のビット 7 (STOP ビット ) に "1" を書き込むとストッ
プモードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発
生するまでは , ストップ状態を維持します。
スタンバイ制御レジスタ (STCR) のビット 6 (SLEEP ビット ) と本ビット両方に "1" を
書き込んだ場合は , ビット 7 (STOP ビット ) の方が優先となり , ストップ状態へ遷移し
ます。
ストップ状態については , 「3.13.1 デバイス状態と各遷移」の「■スリープ状態」も参
照してください。
● ストップ状態で停止する回路
• 停止するよう設定された発振回路
スタンバイ制御レジスタ (STCR) のビット 1 (OSCD2 ビット ) に "1" が設定されてい
るとき , ストップ状態中のサブクロック用発振回路を停止状態にします。スタンバ
イ制御レジスタ (STCR) のビット 0 (OSCD1 ビット ) に "1" が設定されているとき ,
ストップ状態中のメインクロック用発振回路を停止状態にします。
• 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL
スタンバイ制御レジスタ (STCR) のビット 1 (OSCD2 ビット ) に "1" が設定されてい
るとき , クロックソース制御レジスタ (CLKR) のビット 11 (PLL2EN ビット ) に "1"
が設定されていても , ストップ状態中のサブクロック用 PLL を停止状態にします。
スタンバイ制御レジスタ (STCR) のビット 0 (OSCD1 ビット ) に "1" が設定されてい
るとき , クロックソース制御レジスタ (CLKR) のビット 10 (PLL1EN ビット ) に "1"
が設定されていても, ストップ状態中のメインクロック用PLLを停止状態にします。
• 次項に記載の「ストップ状態で停止しない回路」を除くすべての内部回路
● ストップ状態で停止しない回路
• 停止するよう設定されていない発振回路
- スタンバイ制御レジスタ (STCR) のビット 1 (OSCD2 ビット ) に "0" が設定されて
いるとき , ストップ状態中のサブクロック用発振回路は停止しません ( 本品種に
サブクロックはありません ) 。
- スタンバイ制御レジスタ (STCR) のビット 0 (OSCD1 ビット ) に "0" が設定されて
いるとき , ストップ状態中のメインクロック用発振回路は停止しません。
• 動作許可されていて, かつ停止するよう設定されていない発振回路に接続されたPLL
- スタンバイ制御レジスタ (STCR) のビット 1 (OSCD2 ビット ) に "0" が設定されて
いるとき , クロックソース制御レジスタ (CLKR) のビット 11 (PLL2EN ビット ) に
"1" が設定されていると , ストップ状態中のサブクロック用 PLL は停止しません
( 本品種にサブクロックはありません ) 。
- スタンバイ制御レジスタ (STCR) のビット 0 (OSCD1 ビット ) に "0" が設定されて
いるとき , クロックソース制御レジスタ (CLKR) のビット 10 (PLL1EN ビット ) に
"1" が設定されていると , ストップ状態中のメインクロック用 PLL は停止しませ
ん。
● ストップ状態での端子のハイインピーダンス制御
• スタンバイ制御レジスタ (STCR) のビット 5 (HIZ ビット ) に "1" が設定されている
と , ストップ状態中の端子出力をハイインピーダンス状態にします。この制御の対
139
第 3 章 CPU および制御部
象となる端子は ,「付録 C 各 CPU ステートにおける端子状態」を参照してください。
• スタンバイ制御レジスタ (STCR) のビット 5 (HIZ ビット ) に "0" が設定されている
と , ストップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細
は , 「付録 C 各 CPU ステートにおける端子状態」を参照してください
● ストップ状態からの復帰要因
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生
外部割込み入力端子 (INT0 ∼ INT7 端子 ) が有効です。CPU の ILM で設定したレベ
ルより高い割込み要求が発生すると , ストップモードは解除され , RUN 状態 ( 通常
動作 ) へ遷移します。CPU の ILM で設定したレベル以下の割込み要求が発生しても ,
ストップモードは解除されません。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• ハードウェアスタンバイ要求の発生
ハードウェアスタンバイ要求が発生すると , 無条件でハードウェアスタンバイ状態
に遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
各要因の優先順位については , 「3.13.1 デバイス状態と各遷移」の「■各状態遷移要求
の優先順位」を参照してください。
● ストップモード時のクロックソース選択
自励発振モードでは , ストップモードを設定する前に , メインクロックの 2 分周をソー
スクロックとするようあらかじめ選択しておいてください。詳細は , 「3.12 クロック
発生制御」の節 , 特にその中の「3.12.1 PLL 制御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。
140
第 3 章 CPU および制御部
● 通常スタンバイ動作と同期スタンバイ動作
タイムベースカウンタ制御レジスタ (TBCR) のビット 8 (SYNCS ビット ) に "1" が設定
されている場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書
込みのみではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すこと
によってストップ状態へ遷移します。SYNCS ビットに "0" が設定されている場合は ,
通常スタンバイ動作となり , STOP ビットへの書込みのみでストップ状態へ遷移しま
す。
通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の分周
比が大きく設定してあると , 実際に STOP ビットへの書込みが行われるまでに多くの命
令を実行してしまいます。このため , STOP ビットへの書込み命令の後 , 最低でも {5+
(CPU クロックの分周比 / 周辺クロックの分周比 ) } 命令以上の NOP 命令を配置しなけ
れば , それ以降の命令がストップ状態への遷移前に実行されてしまいます。
同期スタンバイ動作時は , 実際に STOP ビットへの書込みが行われた後 , STCR レジス
タの読出しが完了するまではストップ状態へ遷移しません。STCR レジスタの読出し値
が CPU に格納されるまでは , CPU がバスを使用しているためです。このため , CPU ク
ロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる設定においても ,
STOP ビットへの書込み命令と STCR レジスタの読出し命令の後に , 2 命令のみ NOP 命
令を配置するのみで , それ以降の命令がストップ状態への遷移前に実行されることを
防ぐことができます。
141
第 3 章 CPU および制御部
■ ハードウェアスタンバイモード
外部 HST 端子へ "L" レベルを入力すると , ハードウェアスタンバイ要求が発生し , ハー
ドウェアスタンバイ状態へ遷移します。以降 , "L" レベルが入力されている間 , ハード
ウェアスタンバイ状態を維持します。
ハードウェアスタンバイ状態については , 「3.13.1 デバイス状態と各遷移」の「■ハー
ドウェアスタンバイ状態」を参照してください。
● ハードウェアスタンバイ状態で停止する回路
• すべての発振回路
• すべての PLL
• すべての内部回路
● ハードウェアスタンバイ状態で停止しない回路
ハードウェアスタンバイ状態で停止しない回路はありません。
● ハードウェアスタンバイ状態での端子のハイインピーダンス制御
ハードウェアスタンバイ状態中は , 端子出力をハイインピーダンス状態にします。この
制御の対象となる端子は , 「付録 C 各 CPU ステートにおける端子状態」を参照してく
ださい。
● ハードウェアスタンバイ状態からの復帰要因
• 外部 HST 端子への "H" レベル入力
ハードウェアスタンバイ要求が消失すると , 設定初期化リセット (INIT) 状態へ遷移し
ます。
• 外部 INIT 端子への "L" レベル入力による設定初期化リセット (INIT) の発生
外部 INIT 端子による設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期
化リセット (INIT) 状態へ遷移します。ほかの設定初期化リセット (INIT) 要求は , ハー
ドウェアスタンバイ状態では発生しません。
各要因の優先順位については , 「3.13.1 デバイス状態と各遷移」の「■各状態遷移要求
の優先順位」を参照してください。
● 通常リセット動作と同期リセット動作
タイムベースカウンタ制御レジスタ (TBCR) のビット 9 (SYNCR ビット ) に "1" が設定
されている場合 , 同期リセット動作が許可されます。この場合 , ハードウェアスタンバ
イ要求が受け付けられても , 内部バスアクセスが行われている間は , ハードウェアスタ
ンバイ状態への遷移は行いません。詳細は , 「3.11.5 リセット動作モード」の「■同期
リセット動作」を参照してください。
SYNCR ビットに "0" が設定されている場合は通常リセット動作となり , ハードウェア
スタンバイ要求が受け付けられると , 内部バスアクセスの動作状態にかかわらず , ハー
ドウェアスタンバイ状態へ遷移します。
詳細は ,「3.11.5 リセット動作モード」の「■通常リセット動作」を参照してください。
142
第 3 章 CPU および制御部
3.14
動作モード
動作モードには , バスモードとアクセスモードがあります。それぞれのモードにつ
いて説明します。
■ 動作モード
図 3.14-1 動作モード
バスモード
内部 ROM 外部バス
アクセスモード
16 ビットバス幅
外部 ROM 外部バス
8 ビットバス幅
● バスモード
バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し
ます。
● アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR7 (Area Configuration Register) 内の DBW1, DBW0
ビットで指定します。
■ バスモード
MB91307 シリーズには , 次に示す 2 つのバスモードがあります。
● バスモード 1 ( 内部 ROM 外部バスモード )
内蔵 RAM128K バイト (0004000H ∼ 0005FFFH) が有効で , 外部アクセスが可能な領域へ
のアクセスは , 外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子
として機能します。
● バスモード 2 ( 外部 ROM 外部バスモード )
内蔵 RAM128K バイト (0004000H ∼ 0005FFFH) へのアクセスを禁止し , すべてのアクセ
スが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として機能
します。
143
第 3 章 CPU および制御部
■ モード設定
MB91307シリーズでは, モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動
作モードを設定します。
● モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定およびテストモード
を設定します。
モード端子
MD2
MD1
MD0
0
0
1
モード名
リセットベクタ
アクセス領域
備考
外部 ROM
モードベクタ
外部
バス幅はモード
レジスタで設定
● モードレジスタ (MODR)
モードレジスタ (MODR:MODe Register) は , 動作モードを決定します。
図 3.14-2 に , モードレジスタ (MODR) のビット構成を示します。
図 3.14-2 モードレジスタ (MODR) のビット構成
初期値
2
1
0
INIT 時
RST 時
アクセス
(R/W)
予約 予約 予約 予約 予約 ROMA WTH1 WTH0 XXXXXXXXB XXXXXXXXB
7
(0000 07FDH)
6
5
4
3
このレジスタは , リセットシーケンス中にハードウェアにより 000FFFF8H 番地に配置
された , 1 バイトのモードデータを自動的に書き込みます。ツールプログラムによって
のみ読出し / 書込みが可能です。
● モードレジスタ (MODR) のビット機能
以下に , モードレジスタ (MODR) の各ビットの機能を説明します。
[ ビット 7 ∼ビット 3] 予約
これらのビットは , 予約ビットです。必ず "0" を設定してください。"0" 以外の値を
設定した場合の動作は保証されません。
[ ビット 2] ROMA ( 内部 ROM イネーブルビット )
このビットは , 内蔵 RAM 領域を有効にするかどうかを設定します。
内蔵 RAM 領域を有効に使用する場合は , 「3.1 メモリ空間」をお読みください。
ROMA
機能
0
外部 ROM モード
内蔵 RAM 領域が外部領域になります。
1
内部 RAM モード
内蔵 RAM 領域が有効となり , 内蔵 RAM128K バイト
が使用できます。
備考
[ ビット 1, ビット 0] WTH1, WTH0 ( バス幅指定ビット )
これらのビットは , リセットベクタ読込み時のバス幅および ACR0 レジスタの
DBW1, DBW0 ビットの初期値を指定します。
144
第 3 章 CPU および制御部
表 3.14-1 に , 初期バス幅の設定値を示します。
表 3.14-1 初期バス幅の設定値
WTH1
WTH0
0
0
8 ビット
0
1
16 ビット
1
0
設定禁止
1
1
設定禁止
バス幅
WTH1,WTH0 ビットの設定が , 初期化時に ACR0 レジスタの DBW1, DBW0 ビット
に書き込まれます。
145
第 3 章 CPU および制御部
146
第4章
外部バスインタフェース
外部バスインタフェースコントローラは , LSI の内
部バスと外部のメモリおよび I/O デバイスとのイン
タフェースを制御します。
本章では , 外部バスインタフェースの各機能および
動作について説明します。
4.1 外部バスインタフェースの概要
4.2 外部バスインタフェースのレジスタ
4.3 チップセレクト領域の設定例
4.4 エンディアンとバスアクセス
4.5 通常バスインタフェースの動作
4.6 バーストアクセスの動作
4.7 アドレス / データマルチプレクスインタフェース
4.8 プリフェッチ動作
4.9 DMA アクセス動作
4.10 バスアービトレーション
4.11 レジスタの設定手順
4.12 外部バスインタフェースの使用上の注意
147
第 4 章 外部バスインタフェース
外部バスインタフェースの概要
4.1
外部バスインタフェースの特長 , ブロックダイヤグラム , I/O ピンおよびレジスタ一
覧について説明します。
■ 特長
外部バスインタフェースの特長は , 以下のとおりです。
● 最大 32 ビット長 (4G バイト空間 ) のアドレス出力
● 各種外部メモリ (8 ビット /16 ビット品 ) を直結できるほか , 複数のアクセスタイミングを混
在制御可能
• 非同期 SRAM, 非同期 ROM/Flash メモリ ( 複数書込みストローブ方式またはバイト
イネーブル方式 )
• ページモード ROM/Flash メモリ ( ページサイズ 2/4/8 が可能 )
• バーストモード ROM/Flash メモリ (MBM29BL160D/161D/162D など )
• アドレス / データマルチプレクスバス (8 ビット /16 ビット幅のみ )
• 同期メモリ (ASIC 内蔵メモリなど ) (Synchronous SRAM は直結できません )
● 独立した8個のバンク (チップセレクト領域) を設定でき, それぞれに対応したチップセレク
ト出力が可能
• 各領域のサイズは 64K バイトの倍数単位で設定可能 (1 チップセレクト領域あたり
64K バイト∼ 2G バイトまで )
• 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウンダ
リの制限あり )
● チップセレクト領域ごとに以下の機能が独立に設定可能
• チップセレクト領域の許可 / 禁止 ( 禁止された領域はアクセスしません )
• 各種メモリ対応などのアクセスタイミングタイプの設定
• 詳細アクセスタイミングの設定 (ウェイトサイクルなどのアクセスタイプ個別設定)
• データバス幅の設定 (8 ビット /16 ビット )
• バイトオーダリングのエンディアンの設定 ( ビッグまたはリトル )
( CS0 領域はビッグエンディアンのみ可能 )
• 書込み禁止の設定 ( 読出し専用領域 )
• 内蔵キャッシュへの取込み許可 / 禁止の設定
• プリフェッチ機能の許可 / 禁止の設定
• 最大バースト長の設定 (1, 2, 4, 8)
● アクセスタイミングタイプごとに異なる詳細なタイミングの設定が可能
• 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
• オートウェイトは , 最大 15 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O
領域 )
148
第 4 章 外部バスインタフェース
• 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O 領
域)
• ファーストアクセスウェイトとページウェイトが設定可能 ( バースト , ページモー
ド , ROM/Flash 領域 )
• 各種アイドル / リカバリサイクル , セットアップ遅延などの挿入が可能
● DMA によるフライバイ転送が可能
• メモリと I/O 間の 1 アクセスでの転送が可能
• メモリウェイトサイクルをフライバイ転送において I/O のウェイト周期に同期させ
ることが可能
• 転送元アクセスのみを延長してホールドタイムを確保することが可能
• フライバイ転送時固有のアイドル / リカバリサイクルを設定することが可能
● BRQ と BGRNT を使用した外部バスアービトレーションが可能
● 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能
149
第 4 章 外部バスインタフェース
■ ブロックダイヤグラム
図 4.1-1 外部バスインタフェースのブロックダイヤグラム
内部アドレスバス
32
内部データバス
32
外部データバス
MUX
write buffer
switch
read buffer
switch
DATA BLOCK
ADDRESS BLOCK
+1 or +2
外部アドレスバス
address buffer
ASR
CS0~CS7
ASZ
comparator
外部端子制御部
全block制御
resisters
&
control
150
RD
WR0,WR1,
AS,BAA
BRQ
BGRNT
RDY
CLK
第 4 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの端子です ( 一部のピンは兼用端子です ) 。
以下に , インタフェースごとの I/O ピンを示します。
● 通常バスインタフェース
• A24 ∼ A0, D31 ∼ D16
• CS0,CS1 ,CS2 ,CS3 ,CS4 ,CS5,CS6 ,CS7
• AS, SYSCLK, MCLK
• RD
• WE,WR0 (UUB) , WR1 (ULB)
• RDY, BRQ, BGRNT
● メモリインタフェース
• MCLK
• LBA (= AS) ,BAA ( バースト ROM/Flash 用 )
● DMA インタフェース
• IOWR , IORD,
• DACK0, DACK1, DACK2, DACK3
• DREQ0, DREQ1, DREQ2, DREQ3
• DEOP0/DSTP0, DEOP1/DSTP1, DEOP2/DSTP2, DEOP3/DSTP3
151
第 4 章 外部バスインタフェース
■ レジスタ一覧
図 4.1-2 に , 外部バスインタフェースで使用するレジスタ一覧を示します。
図 4.1-2 外部バスインタフェースのレジスタ一覧
アドレス
31
24
23
16
15
08
07
00000640H
ASR0
ACR0
00000644H
ASR1
ACR1
00000648H
ASR2
ACR2
0000064CH
ASR3
ACR3
00000650H
ASR4
ACR4
00000654H
ASR5
ACR5
00000658H
ASR6
ACR6
0000065CH
ASR7
ACR7
00000660H
AWR0
AWR1
00000664H
AWR2
AWR3
00000668H
AWR4
AWR5
0000066CH
AWR6
AWR7
00
00000670H
予約
予約
予約
予約
00000674H
予約
予約
予約
予約
00000678H
IOWR0
IOWR1
IOWR2
予約
0000067CH
予約
予約
予約
予約
00000680H
CSER
CHER
予約
TCR
∼
000007F8H
予約
予約
予約
予約
000007FCH
予約
(MODR)
予約
予約
00000684H
( 注意事項 )・予約は , 予約レジスタです。必ず "0" を設定してください。
・MODR は , ユーザプログラムからはアクセスできません。
152
第 4 章 外部バスインタフェース
4.2
外部バスインタフェースのレジスタ
外部バスインタフェースで使用するレジスタの構成および機能について説明します。
■ レジスタの種類
外部バスインタフェースで使用するレジスタには , 以下のものがあります。
• 領域選択レジスタ (ASR0 ∼ ASR7)
• 領域構成レジスタ (ACR0 ∼ ACR7)
• 領域ウェイトレジスタ (AWR0 ∼ AWR7)
• DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR7)
• チップセレクトイネーブルレジスタ (CSER)
• キャッシュイネーブルレジスタ (CHER)
• 端子 / タイミングコントロールレジスタ (TCR)
153
第 4 章 外部バスインタフェース
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)
4.2.1
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7) の構成および機能について説明します。
■ 領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7) の構成
領域選択レジスタ (ASR0 ∼ ASR7:Area Select Register 0 ∼ 7) は , CS0 ∼ CS7 の各チップ
セレクト領域の開始アドレスを指定します。
図 4.2-1 に , 領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7:Area Select Register) の構成を示し
ます。
図 4.2-1 領域選択レジスタ (ASR0 ∼ ASR7) の構成
初期値
154
ASR0
15
14
13
12
…
2
1
0
INIT 時 RST 時 アクセス
0000 0640H
A31
A30
A29
…
…
A18
A17
A16
0000H 0000H R/W
12
…
2
1
0
A18
A17
A16
ASR1
15
14
13
0000 0644H
A31
A30
A29
…
…
ASR2
15
14
13
12
…
2
1
0
0000 0648H
A31
A30
A29
…
…
A18
A17
A16
ASR3
15
14
13
12
…
2
1
0
0000 064CH
A31
A30
A29
…
…
A18
A17
A16
ASR4
15
14
13
12
…
2
1
0
0000 0650H
A31
A30
A29
…
…
A18
A17
A16
ASR5
15
14
13
12
…
2
1
0
0000 0654H
A31
A30
A29
…
…
A18
A17
A16
ASR6
15
14
13
12
…
2
1
0
0000 0658H
A31
A30
A29
…
…
A18
A17
A16
ASR7
15
14
13
12
…
2
1
0
0000 065CH
A31
A30
A29
…
…
A18
A17
A16
XXXXH XXXXH R/W
XXXXH XXXXH R/W
XXXXH XXXXH R/W
XXXXH XXXXH R/W
XXXXH XXXXH R/W
XXXXH XXXXH R/W
XXXXH XXXXH R/W
第 4 章 外部バスインタフェース
■ 領域選択レジスタ (ASR0 ∼ ASR7) のビット機能
開始アドレスは , A31 ∼ A16 ビットの上位 16 ビットを設定できます。各チップセレクト
領域は , このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR7 レジスタの ASZ3 ∼
ASZ0 の 4 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR7 レジスタの ASZ3 ∼ ASZ0 の 4
ビットの設定に従います。例えば , ASZ3 ∼ ASZ0 の 4 ビットにより , 1M バイトの領域
を設定した場合は , ASR0 ∼ ASR7 レジスタの下位 4 ビットは無視され , A31 ∼ A20 ビッ
トのみ意味を持ちます。
ASR0 レジスタは , INIT および RST により , 0000H に初期化されます。ASR1 ∼ ASR7
は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 ,
CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レ
ジスタを設定してください。
155
第 4 章 外部バスインタフェース
4.2.2
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7)
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成および機能について説明します。
■ 領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7:Area Configuration Register 0 ∼ 7) は , 各チップ
セレクト領域の機能を設定します。図 4.2-2 に , 領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7)
の構成を示します。
156
第 4 章 外部バスインタフェース
図 4.2-2 領域構成レジスタ (ACR0 ∼ ACR7) の構成
初期値
ACR0H
15
14
13
12
11
10
9
8
0000 0642H
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR0L
7
6
5
4
3
2
1
0
0000 0643H
SREN
PFEN
WREN
0
TYP3
TYP2
TYP1
TYP0
ACR1H
15
14
13
12
11
10
9
8
0000 0646H
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR1L
7
6
5
4
3
2
1
0
0000 0647H
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
ACR2H
15
14
13
12
11
10
9
8
0000 064AH
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR2L
7
6
5
4
3
2
1
0
0000 064BH
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
ACR3H
15
14
13
12
11
10
9
8
0000 064EH
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR3L
7
6
5
4
3
2
1
0
0000 064FH
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
ACR4H
15
14
13
12
11
10
9
8
0000 0652H
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR4L
7
6
5
4
3
2
1
0
0000 0653H
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
ACR5H
15
14
13
12
11
10
9
8
0000 0656H
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR5L
7
6
5
4
3
2
1
0
0000 0657H
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
ACR6H
15
14
13
12
11
10
9
8
0000 065AH
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR6L
7
6
5
4
3
2
1
0
0000 065BH
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
ACR7H
15
14
13
12
11
10
9
8
0000 065EH
ASZ3
ASZ2
ASZ1
ASZ0
DBW1
DBW0
BST1
BST0
ACR7L
7
6
5
4
3
2
1
0
0000 065FH
SREN
PFEN
WREN
LEND
TYP3
TYP2
TYP1
TYP0
INIT 時 RST 時 アクセス
1111XX00B 1111XX00B R/W
00000000B 00000000H R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
<注意事項>
ASR と ACR はワードアクセスで同時設定してください。
ASR, ACR をハーフワードでアクセスする場合には , ASR 設定後 , ACR を設定してくだ
さい。
157
第 4 章 外部バスインタフェース
以下に , 各ビットの機能を説明します。
[ ビット 15 ∼ビット 12] ASZ3 ∼ ASZ0 (Area Size Bit 3 ∼ 0)
これらのビットは , 領域のサイズを設定します。設定内容を表 4.2-1 に示します。
表 4.2-1 領域のサイズ設定
ASZ3
ASZ2
ASZ1
ASZ0
0
0
0
0
64KB
0
0
0
1
128KB (00020000H バイト , ASR A [31:17] ビット指定が有効 )
0
0
1
0
256KB (00040000H バイト , ASR A [31:18] ビット指定が有効 )
0
0
1
1
512KB (00080000H バイト , ASR A [31:19] ビット指定が有効 )
0
1
0
0
1MB
(00100000H バイト , ASR A [31:20] ビット指定が有効 )
0
1
0
1
2MB
(00200000H バイト , ASR A [31:21] ビット指定が有効 )
0
1
1
0
4MB
(00400000H バイト , ASR A [31:22] ビット指定が有効 )
0
1
1
1
8MB
(00800000H バイト , ASR A [31:23] ビット指定が有効 )
1
0
0
0
16MB
(01000000H バイト , ASR A [31:24] ビット指定が有効 )
1
0
0
1
32MB
(02000000H バイト , ASR A [31:25] ビット指定が有効 )
1
0
1
0
64MB
(04000000H バイト , ASR A [31:26] ビット指定が有効 )
1
0
1
1
1
1
0
0
128MB (08000000H バイト , ASR A [31:27] ビット指定が有効 )
256MB (10000000H バイト , ASR A [31:28] ビット指定が有効 )
1
1
0
1
512MB (20000000H バイト , ASR A [31:29] ビット指定が有効 )
1
1
1
0
1024MB (40000000H バイト , ASR A [31:30] ビット指定が有効 )
1
1
1
1
2048MB (80000000H バイト , ASR A [31] ビット指定が有効 )
各チップセレクト領域のサイズ
(00010000H バイト , ASR A [31:16] ビット指定が有効 )
ASZ3 ∼ ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各
領域のサイズを設定します。そのため ASR は比較されないビットが存在します。
ACR0 の ASZ3 ∼ ASZ0 ビットは , RST により 1111B (0FH) に初期化されますが , こ
の設定にかかわらず RST 直後の CS0 領域は特別に 00000000H から FFFFFFFFH ( 全
領域 ) に設定されています。ACR0 への最初の書込み後より全領域設定が解除され ,
表 4.2-1 に従ったサイズに設定されます。
[ ビット 11, ビット 10] DBW1, DBW0 (Data Bus Width 1, 0)
これらのビットは , 各チップセレクト領域のデータバス幅を , 表 4.2-2 に示すように
設定します。
表 4.2-2 チップセレクト領域のデータバス幅の設定
DBW1
DBW0
0
0
1
1
0
1
0
1
データバス幅
8 ビット ( バイトアクセス )
16 ビット ( ハーフワードアクセス )
Reserved 設定禁止
Reserved 設定禁止
ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH
ビットの値と同じ値が自動的に書き込まれます。
158
第 4 章 外部バスインタフェース
[ ビット 9, ビット 8] BST1, BST0 ( バースト Size 1, 0)
これらのビットは , 各チップセレクト領域の最大バースト長を , 表 4.2-3 に示すよう
に設定します。
表 4.2-3 各チップセレクト領域の最大バースト長の設定
BST1
BST0
0
0
1
1
0
1
0
1
最大バースト長
1 ( シングルアクセス )
2 バースト ( アドレス境界 1 ビット )
4 バースト ( アドレス境界 2 ビット )
8 バースト ( アドレス境界 3 ビット )
シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスま
たはバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決
まるアドレス境界内で連続したバーストアクセスを行います。
バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。
シングルアクセス以外のバースト長設定を行った領域では , RDY 入力を無視しま
す。
[ ビット 7] SREN (ShaRed Enable)
このビットは , 各チップセレクト領域の BRQ/BGRNT による共有の許可 / 禁止を ,
下表のとおり設定します。
表 4.2-4 各チップセレクト領域の BRQ/BGRNT による共有の許可 / 禁止
SREN
共有の許可 / 禁止
0
BRQ/BGRNT による共有を禁止
(CS はハイインピーダンスになりません )
1
BRQ/BGRNT による共有を許可
(CS はハイインピーダンスになります )
共有が許可された領域は , バス開放中 ( BGRNT="L" 出力中 ) はチップセレクト出力
(CSn) がハイインピーダンスになります。共有が禁止された領域は , バス開放中
(BGRNT = "L" 出力中 ) もチップセレクト出力 (CSn ) がハイインピーダンスになり
ません。
CSER により許可されたすべての領域の共有が許可されている場合のみ , アクセス
ストローブ出力 (AS ,BAA ,RD ,WR0 ,WR1, WE など ) がハイインピーダンスにな
ります。
[ ビット 6] PFEN (PreFetch Enable)
このビットは , 各チップセレクト領域のプリフェッチの許可 / 禁止を , 下表のとおり
設定します。
表 4.2-5 各チップセレクト領域のプリフェッチの許可 / 禁止
PFEN
0
1
プリフェッチ許可 / 禁止
プリフェッチ禁止
プリフェッチ許可
159
第 4 章 外部バスインタフェース
プリフェッチが許可された領域に対して読出しを行うと , それに続くアドレスに対
して先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレス
に対し内部バスからのアクセスされると , 外部アクセスをせずに , プリフェッチ
バッファに先読みされたデータを返します。
詳細は , 「4.8 プリフェッチ動作」を参照してください。
[ ビット 5] WREN (WRite Enable)
このビットは , 各チップセレクト領域の書込みの許可 / 禁止を設定します。
WREN
書込み許可 / 禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その
アクセスは無視され , 外部アクセスを一切行いません。データ領域など , 書込みが
必要な領域は , WREN ビットに "1" を設定してください。
[ ビット 4] LEND (Little ENDian select)
このビットは , 各チップセレクト領域のバイトオーダリングを , 下表のとおり設定
します。
LEND
バイトオーダリング
0
ビッグエンディアン
1
リトルエンディアン
ACR0 の LEND ビットには , 必ず "0" を設定してください。CS0 領域はビッグエン
ディアンのみをサポートします。
[ ビット 3 ∼ビット 0] TYP3 ∼ TYP0 (TYPe select)
これらのビットは , 各チップセレクト領域のアクセスタイプを , 表 4.2-6 に示すとお
り設定します。
160
第 4 章 外部バスインタフェース
表 4.2-6 各チップセレクト領域のアクセスタイプの設定
TYP3
TYP2
TYP1
TYP0
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, single/page/ バースト ROM/Flash)
0
1
x
x
アドレスデータマルチプレクスアクセス (8/16 ビットバス幅限定 )
0
x
x
0
RDY 端子による WAIT 挿入無効
0
x
x
1
RDY 端子による WAIT 挿入有効 ( バースト時は無効 )
0
x
0
x
WR0 , WR1 端子を書込みストローブとして使用 (WE は "H" 固定 )
0
x
1
x
WE 端子を書込みストローブとして使用 *1
1
0
0
0
設定禁止 *2
1
0
0
1
設定禁止 *2
1
0
1
0
設定禁止 *2
1
0
1
1
設定禁止 *2
1
1
0
0
設定禁止 *2
1
1
0
1
設定禁止 *2
1
1
1
0
設定禁止 *2
1
1
1
1
マスク領域設定 ( アクセスタイプは重複した領域のものになります ) *3
アクセスタイプ
*1: この設定をした場合 , WR0, WR1 は , 各バイトのイネーブルとして使用できます。
*2: ACR6, ACR7 レジスタのみ有効です。ACR0, ACR1, ACR2, ACR3, ACR4, ACR5 レジ
スタでは設定禁止です。
*3: 次項の CS 領域マスク設定機能を参照してください。
各ビットは , 組み合わせて設定します。
各アクセスタイプの動作詳細は , 動作説明の項 (4.5.1 ∼ 4.7) を参照してください。
161
第 4 章 外部バスインタフェース
● CS 領域マスク設定機能
ある CS 領域 ( ベース設定領域 ) の中に , 一部動作設定を変更した領域を定義したい場
合 , 別の CS 領域の設定で , ACR の TYPE3 ∼ TYPE0 を "1111" に設定し , マスク設定領
域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は禁止
します。
マスク設定領域へのアクセスは , 以下のような動作をします。
• マスク設定領域に対応する CS はアサートされません。
• ベース設定領域に対応する CS がアサートされます。
• ACR の以下の設定はマスク設定領域側のものが有効になります。
- ビット 11, ビット 10 (DBW1, DBW0) : バス幅設定
- ビット 9, ビット 8 (BST1, BST0) : バースト長設定
- ビット 7 (SREN) : 共有許可設定
- ビット 6 (PFEN) : プリフェッチ許可設定
- ビット 5 (WREN) : 書込み許可設定 ( この設定のみ , ベース設定 領域と異な
る設定は禁止します。)
- ビット 4 (LEND) : リトルエンディアン設定
• ACR の以下の設定はベース設定領域側のものが有効になります。
- ビット 3 ∼ビット 0 (TYPE3 ∼ TYPE0) : アクセスタイプ設定
• AWR の設定はマスク設定領域側のものが有効になります。
• CHER の設定はマスク設定領域側のものが有効になります。
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定でき
ます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけません。
ASR および ACR の ASZ3 ∼ ASZ0 ビットの設定には充分注意してください。
これらのビット使用に際して , 以下の制限事項があります。
• 書込み許可設定をマスクで実現することはできません。
• 書込み許可設定は , ベースとなる設定領域とマスク設定領域とで , 同じ設定として
ください。
• マスク設定領域で書込み禁止を設定すると , その領域はマスクされずベース設定領
域として動作します。
• ベース設定領域で書込み禁止を設定し , マスク設定領域で書込み許可を設定すると ,
ベース設定のない領域となり , 誤動作します。
162
第 4 章 外部バスインタフェース
4.2.3
領域ウェイトレジスタ (AWR0 ∼ AWR7)
領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成および機能について説明します。
■ 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成
領域ウェイトレジスタ (AWR0 ∼ AWR7:Area Wait Register 0 ∼ 7) は , 各チップセレク
ト領域の各種ウェイトタイミングを指定します。
図 4.2-3 に , 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成を示します。
図 4.2-3 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成 ( 続く )
初期値
AWR0H
31
30
29
28
27
26
25
24
0000 0660H
W15
W14
W13
W12
W11
W10
W09
W08
AWR0L
23
22
21
20
19
18
17
16
0000 0661H
W07
W06
W05
W04
W03
W02
W01
W00
AWR1H
15
14
13
12
11
10
9
8
0000 0662H
W15
W14
W13
W12
W11
W10
W09
W08
AWR1L
7
6
5
4
3
2
1
0
0000 0663H
W07
W06
W05
W04
W03
W02
W01
W00
AWR2H
31
30
29
28
27
26
25
24
0000 0664H
W15
W14
W13
W12
W11
W10
W09
W08
AWR2L
23
22
21
20
19
18
17
16
0000 0665H
W07
W06
W05
W04
W03
W02
W01
W00
AWR3H
15
14
13
12
11
10
9
8
0000 0666H
W15
W14
W13
W12
W11
W10
W09
W08
AWR3L
7
6
5
4
3
2
1
0
0000 0667H
W07
W06
W05
W04
W03
W02
W01
W00
AWR4H
31
30
29
28
27
26
25
24
0000 0668H
W15
W14
W13
W12
W11
W10
W09
W08
AWR4L
23
22
21
20
19
18
17
16
0000 0669H
W07
W06
W05
W04
W03
W02
W01
W00
AWR5H
15
14
13
12
11
10
9
8
0000 066AH
W15
W14
W13
W12
W11
W10
W09
W08
AWR5L
7
6
5
4
3
2
1
0
0000 066BH
W07
W06
W05
W04
W03
W02
W01
W00
INIT 時 RST 時
アクセス
01111111B 01111111B R/W
11111111B 11111111B R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
163
第 4 章 外部バスインタフェース
図 4.2-3 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成 ( 続き )
初期値
AWR6H
31
30
29
28
27
26
25
24
0000 066CH
W15
W14
W13
W12
W11
W10
W09
W08
AWR6L
23
22
21
20
19
18
17
16
0000 066DH
W07
W06
W05
W04
W03
W02
W01
W00
AWR7H
15
14
13
12
11
10
9
8
0000 066EH
W15
W14
W13
W12
W11
W10
W09
W08
AWR7L
7
6
5
4
3
2
1
0
0000 066FH
W07
W06
W05
W04
W03
W02
W01
W00
INIT 時 RST 時
アクセス
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
xxxxxxxxB xxxxxxxxB R/W
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP (3 ∼ 0) ビット ) の設定により , 各ビッ
トの機能が変わります。以下の設定をしたチップセレクト領域は , 通常アクセスまたは
アドレス / データマルチプレクスアクセス動作を行う領域となります。
TYP3
TYP2
TYP1
TYP0
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, single/page/
バースト ROM/Flash)
0
1
x
x
アドレスデータマルチプレクスアクセス
(8/16 ビットバス幅限定 )
アクセスタイプ
通常アクセスまたはアドレス / データマルチプレクスアクセス領域に対しての AWR0 ∼
AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各領
域を CSER レジスタによって有効にする前に , 設定を行ってください。
以下に , 領域ウェイトレジスタ (AWR0 ∼ AWR7) の各ビットの機能を説明します。
[ ビット 31 ∼ビット 28/ ビット 15 ∼ビット 12] W15 ∼ W12 ( ファーストアクセス
ウェイトサイクル :First Wait Cycle)
これらのビットは , 各サイクルの最初のアクセスサイクルに挿入する自動ウェイト
サイクル数を設定します。バーストアクセスサイクル以外は , このウェイト設定の
み使用されます。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
表 4.2-7 に , ファーストアクセス時の自動ウェイトサイクル数の設定内容を示しま
す。
表 4.2-7 自動ウェイトサイクル数の設定 ( ファーストアクセス時 )
W15
W14
W13
W12
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
164
1
ファーストアクセスウェイトサイクル
…
1
1
自動ウェイトサイクル 15
第 4 章 外部バスインタフェース
[ ビット 27 ∼ビット 24/ ビット 11 ∼ビット 8] W11 ∼ W08 ( ページ内アクセスウェイ
トサイクル :Inpage Access Wait Cycle)
これらのビットは , バーストアクセス時にページ内アクセスサイクルに挿入する自
動ウェイトサイクル数を設定します。バーストアクセスサイクル以外では , 意味を
持ちません。
表 4.2-8 に , バーストアクセス時の自動ウェイトサイクル数の設定内容を示します。
表 4.2-8 自動ウェイトサイクル数の設定 ( バーストアクセス時 )
W11
W10
W09
W08
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
1
ページ内アクセスウェイトサイクル
…
1
1
自動ウェイトサイクル 15
ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同
じ値を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイ
ムは同じにはなりません。ページ内アクセスサイクルでは , アドレス出力遅延が含
まれるためです。
[ ビット 23, ビット 22/ ビット 7, ビット 6] W07, W06 ( 読出し→書込みアイドルサイク
ル :Read → Write Idle Cycle)
読出し→書込みアイドルサイクルは , 読出しサイクル後に書込みサイクルが続く場
合に , 読出しデータと書込みデータのデータバス上での衝突を防ぐために設定しま
す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子
はハイインピーダンス状態を維持します。読出し後に書込みが続く場合または読出
しの後に別のチップセレクト領域へのアクセスが発生した場合に , 指定したアイド
ルサイクルを挿入します。
表 4.2-9 に , アイドルサイクルの設定内容を示します。
表 4.2-9 アイドルサイクルの設定内容
W07
W06
読出し→書込みアイドルサイクル
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
165
第 4 章 外部バスインタフェース
[ ビット 21, ビット 20/ ビット 5, ビット 4] W05, W04 ( 書込みリカバリサイクル :Write
Recovery Cycle)
書込みリカバリサイクルは , 書込みアクセス後に続けてアクセスする際の間隔に制
限のあるデバイスへのアクセスを制御する場合に設定します。書込みリカバリサイ
クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ
ンスを維持します。書込みリカバリサイクルを "1" 以上に設定した場合は , 書込み
アクセスの後には必ず書込みリカバリサイクルが挿入されます。
表 4.2-10 に , 書込みリカバリサイクル数の設定内容を示します。
表 4.2-10 書込みリカバリサイクル数の設定内容
W05
W04
書込みリカバリサイクル
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
[ ビット 19/ ビット 3] W03 ( WR0, WR1 , WE 出力タイミング選択 )
WR0 , WR1, WE 出力タイミング設定は , 書込みストローブ出力を非同期ストローブ
として使用するか , 同期書込みイネーブルとして使用するかを選択します。非同期
ストローブとすることにより通常メモリまたは I/O に対応し , 同期イネーブルとする
ことによりクロック同期のメモリまたは I/O (ASIC 内蔵メモリなど ) に対応します。
W03
WR0, WR1, WE 出力タイミング選択
0
MCLK 同期書込みイネーブル出力 (AS ="L" から有効 )
1
非同期書込みストローブ出力 ( 通常動作 )
同期書込みイネーブルとした場合 (AWR の W03 ビットが "1") , 以下のような動作とな
ります。
• 同期書込みイネーブル出力のタイミングは , 外部メモリアクセスクロックの MCLK
出力の立上りエッジで取り込まれることを前提としたタイミングになります。非同
期ストローブ出力とはタイミングが異なります。
• WR0, WR1, WE 端子出力は , AS 端子出力がアサートされているタイミングから , 同
期書込みイネーブル出力をアサートします。外部バスへ書き込む場合 , 同期書込み
イネーブル出力は "L" を出力します。外部バスから読み出す場合 , 同期書込みイネー
ブル出力は "H" を出力します。
• 同期書込みイネーブル出力をアサートした次のクロックサイクルで , 外部データ出
力端子から書込みデータを出力します。内部バスの都合により書込みデータを出力
することができなかった場合 , 書込みデータが出力できるまで同期書込みイネーブ
ル出力のアサートを延長することがあります。
• 読出しストローブ出力 (RD) は , WR0, WR1 , WE 出力タイミング設定の内容にかか
わらず , 非同期読出しストローブとして機能します。データの入出力方向制御にそ
のまま使用してください。
166
第 4 章 外部バスインタフェース
同期書込みイネーブル出力を使用する場合 , 以下の制限があります。
• 以下の追加ウェイト設定はしないでください。
- CS → RD / WE セットアップ設定 (AWR の W01 ビットには常に "0" を書いてく
ださい )
- ファーストウェイトサイクル設定 (AWR の W15 ∼ W12 ビットには常に "0000B"
を書いてください )
• 以下のアクセスタイプ設定 (ACR レジスタ中の TYPE3 ∼ TYPE0 ビット ( ビット 3 ∼
ビット 0) ) は設定しないでください。
- アドレス / データマルチプレクスバス設定 (ACR の TYPE2 ビットには常に "0" を
書いてください )
- WR0 , WR1 を書込みストローブとして使用する設定 (ACR の TYP1 ビットには常
に "0" を書いてください )
- RDY 入力有効設定 (ACR の TYPE0 ビットには常に "0" を書いてください )
• 同期書込みイネーブル出力の場合 , バースト長は常に "1" (ACR の BST1, BST0 ビッ
トには "00B") を設定してください。
[ ビット 18/ ビット 2] W02 ( アドレス→ 遅延 )
アドレス→ CS 遅延設定は , CS の立下りに対してアドレスなどが一定のセットアッ
プを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際にも
の CS エッジを必要とする場合などに設定します。
アドレスおよび AS 出力から CS0 ∼ CS7 出力までの遅延を設定します。
W02
アドレス→ CS 遅延の有無
0
遅延なし
1
遅延あり
"1" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼
CS7 がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセ
スを実行した場合 , 両アクセスの間も CS0 ∼ CS7 はアサートを継続したまま変化し
ないことがあります。
"0" を設定し , 遅延ありを選択した場合は , 外部メモリクロック MCLK 出力の立上
りから CS0 ∼ CS7 がアサート開始されます。このとき , 同じチップセレクト領域に
連続したアクセスを実行した場合でも, 両アクセスの間に CS0∼ CS7 ネゲートタイ
ミングが発生します。CS 遅延ありを選択した場合は , 遅延させた CS のアサートか
ら , 読出し / 書込みストローブをアサートする前に , 1 サイクルのセットアップサイ
クルを挿入します (W01 の CS → RD/WE セットアップ設定と同等の動作となりま
す)。
アドレス→ CS 遅延設定は , 同一領域に対して出力される DACK 信号 ( 基本モード )
にも同様に作用します。基本モードでの DACK 出力は , その領域に対する CS と同
じ波形となります。
167
第 4 章 外部バスインタフェース
[ ビット 17/ ビット 1] W01 (CS → RD/WE セットアップ延長サイクル )
CS→ RD/WE セットアップ延長サイクルは, CSアサート後, 読出し/書込みストローブ
をアサートするまでの期間を延長する場合に設定します。CS アサート後 , 読出し / 書
込みストローブをアサートする前に最低1サイクルのセットアップ延長サイクルを挿
入します。
W01
CS → RD/WE セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定して 0 サイクルを選択した場合は , 最速で , CS アサート直後の外部メモリ
クロック MCLK 出力の立上りから RD/ WR0, WR1 / WE が出力されます。WR0, WR1 /
WE は , 内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定して 1 サイクルを選択した場合は , RD/ WR0, WR1 / WE とも , 必ず 1 サイ
クル以上遅れて出力されます。
同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場
合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ
プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CS 遅延を
挿入することにより , 毎アクセス時に CS が一度ネゲートされるため , このセット
アップ延長サイクルが有効となります。
W02 の CS 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ
トアップサイクルが有効となります。
[ ビット 16/ ビット 0] W00 ( RD/WE → CS ホールド延長サイクル )
RD/WE →CS ホールド延長サイクルは, 読出し /書込みストローブネゲート後, CSネ
ゲートまでの期間を延長する場合に設定します。読出し / 書込みストローブネゲー
ト後 , CS をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。
W00
RD/WE → CS ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定して 0 サイクルを選択した場合は , RD/WR0, WR1/ WE がネゲートされた
後の外部メモリクロック MCLK 出力の立上りエッジよりホールド遅延経過後に ,
CS0 ∼ CS7 がネゲートされます。
"1" を設定して 1 サイクルを選択した場合は , CS0 ∼ CS7 は 1 サイクル遅れてネゲー
トされます。
同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場
合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ
イクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CS 遅延を挿入する
ことにより , 毎アクセス時に CS が一度ネゲートされるため , このホールド延長サイ
クルが有効となります。
168
第 4 章 外部バスインタフェース
4.2.4
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の構成および機能について説明
します。
■ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の構成
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2:I/O Wait Register for DMAC 0 ∼ 2) は ,
DMA フライバイアクセス時の , 各種ウェイトを設定します。
図 4.2-4 に , DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の構成を示します。
図 4.2-4 DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の構成
初期値
IOWR0
0000 0678H
31
30
RYE0
HLD0
29
WR01
28
WR00
27
IW03
26
IW02
25
IW01
24
INIT 時 RST 時
アクセス
IW00
xxxxxxxxB xxxxxxxxB
R/W
xxxxxxxxB xxxxxxxxB
R/W
xxxxxxxxB xxxxxxxxB
R/W
IOWR1
23
22
21
20
19
18
17
16
000 0679H
RYE1
HLD1
WR11
WR10
IW13
IW12
IW11
IW10
IOWR2
15
14
13
12
11
10
9
8
0000 067AH
RYE2
HLD2
WR21
WR20
IW23
IW22
IW21
IW20
■ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のビット機能
以下に , DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) の各ビットの機能を説明
します。
[ ビット 31, ビット 23, ビット 15] RYE0, RYE1, RYE2 (RDY 機能設定 0, 1, 2)
DMAフライバイアクセス時のch0∼ch2のRDYによるウェイト制御の設定をします。
RYEn
RDY 機能設定
0
I/O アクセスに対する RDY 入力は無効となります。
1
I/O アクセスに対する RDY 入力が有効になります。
"1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDY 端子によ
るウェイト挿入が可能となります。IOWR,IORD は RDY 端子がイネーブルになる
まで , 延長されます。また , メモリ側の RD/WR0 , WR1/WE もそれに同期して延長
されます。フライバイ転送相手のチップセレクト領域が ACR レジスタにより RDY
有効に設定されていれば , IOWR 側の RYEn ビットとは関係なく RDY 端子による
ウェイト挿入が可能となります。フライバイ転送相手のチップセレクト領域で ACR
レジスタにより RDY 無効にされている場合でも , IOWR 側の RYEn ビットにより
RDY 有効に設定されていれば , フライバイアクセス時のみ RDY 端子によるウェイ
ト挿入が可能となります。
169
第 4 章 外部バスインタフェース
[ ビット 30, ビット 22, ビット 14] HLD0, HLD1, HLD2 ( ホールドウェイト設定 )
これらのビットは , DMA フライバイアクセス時の , 転送元アクセス側の読出しスト
ローブ信号のホールドサイクルを制御します。
HLDn
ホールドウェイト設定
0
ホールド延長サイクルを挿入しません。
1
ホールド延長サイクルを挿入し , 読出しサイクルを 1 サイクル延長しま
す。
"0"設定時は, 転送元アクセス側の読出しストローブ信号 (メモリ→I/Oの場合はRD ,
I/O →メモリの場合は IORD) と書込みストローブ信号 ( メモリ→ I/O の場合は IOWR,
I/O →メモリの場合は , WR0, WR1 および WE) は同じタイミングで , 出力されます。
"1"設定時は, 転送元アクセス側データの転送先に対するホールドタイムを確保する
ため , 書込みストローブ信号に対し , 読出しストローブ信号を , 1 サイクル長く出力
します。
[ ビット 29, ビット 28, ビット 21, ビット 20, ビット 13, ビット 12] WR0, WR1, WR2, WR3
(I/O アイドルサイクル設定 )
これらのビットは , DMA フライバイアクセス時に , 連続した I/O アクセスに対する
アイドルサイクル数を設定します。
表 4.2-11 に , I/O アイドルサイクル数の設定内容を示します。
表 4.2-11 I/O アイドルサイクル数の設定内容
WRn1
WRn0
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
I/O アイドルサイクル数の設定
アイドルサイクル数を 1 サイクル以上設定した場合 , DMA フライバイアクセス時に ,
I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイド
ルサイクル中は , すべての CS およびストローブ出力はネゲートされ , データ端子は
ハイインピーダンスとなります。
170
第 4 章 外部バスインタフェース
[ ビット 27 ∼ビット 24, ビット 19 ∼ビット 16, ビット 11 ∼ビット 8, ビット 3 ∼ビット 0]
IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20, IW33 ∼ IW30 (I/O ウェイトサイクル )
DMA フライバイアクセス時の , I/O アクセスの自動ウェイトサイクル数を設定しま
す。
表 4.2-12 に , I/O ウェイトサイクル数の設定内容を示します。
表 4.2-12 I/O ウェイトサイクル数の設定内容
IWn3
IWn2
IWn1
IWn0
0
0
0
0
0 サイクル
0
0
0
1
1 サイクル
…
1
1
I/O ウェイトサイクル数
…
1
1
15 サイクル
ウェイトサイクルの挿入数は , 転送元と転送先とでのデータの同期のため , IWnn
ビットによる I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定の
うち , 大きい方を使用します。そのため , IWnn ビットに設定したサイクル数より多
いウェイトサイクルが挿入される場合があります。
171
第 4 章 外部バスインタフェース
4.2.5
チップセレクトイネーブルレジスタ (CSER)
チップセレクトイネーブルレジスタ (CSER) の構成および機能について説明します。
■ チップセレクトイネーブルレジスタ (CSER) の構成
チップセレクトイネーブルレジスタ (CSER:Chip Select Enable register) は , 各チップセ
レクト領域の許可 / 禁止を設定します。
図 4.2-5 に , チップセレクトイネーブルレジスタ (CSER) の構成を示します。
図 4.2-5 チップセレクトイネーブルレジスタ (CSER) の構成
初期値
0000 00680H
31
30
29
28
27
26
25
24
INIT 時
RST 時
アクセス
CSE7
CSE6
CSE5
CSE4
CSE3
CSE2
CSE1
CSE0
00000001B
00000001B
R/W
■ チップセレクトイネーブルレジスタ (CSER) のビット機能
以下に , チップセレクトイネーブルレジスタ (CSER) のビットの機能を説明します。
[ ビット 31 ∼ビット 24] CSE7 ∼ CSE0 ( チップセレクト領域許可 0 ∼ 7)
これらのビットは , CS0 ∼ CS7 の各チップセレクト領域許可ビットです。
初期値は , 00000001B で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR7, ACR0 ∼ ACR7, AWR0 ∼ AWR7 の設定に
従い , 動作します。
許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ
い。
CSE7 ∼ CSE0
領域コントロール
0
禁止
1
許可
表 4.2-13 に , チップセレクト領域許可ビットの対応する CSn を示します。
172
第 4 章 外部バスインタフェース
表 4.2-13 チップセレクト領域許可ビットの対応する CSn
CSE のビット
対応する CSn
ビット 24:CSE0
CS0
ビット 25:CSE1
CS1
ビット 26:CSE2
CS2
ビット 27:CSE3
CS3
ビット 28:CSE4
CS4
ビット 29:CSE5
CS5
ビット 30:CSE6
CS6
ビット 31:CSE7
CS7
173
第 4 章 外部バスインタフェース
4.2.6
キャッシュイネーブルレジスタ (CHER)
キャッシュイネーブルレジスタ (CHER) の構成および機能について説明します。
■ キャッシュイネーブルレジスタ (CHER) の構成
キャッシュイネーブルレジスタ (CHER:CacHe Enable Register) は , 各チップセレクト領
域から読み込んだデータの内蔵キャッシュへの取込みを制御します。
図 4.2-6 に , キャッシュイネーブルレジスタ (CHER) の構成を示します。
図 4.2-6 キャッシュイネーブルレジスタ (CHER) の構成
初期値
0000 00681H
23
22
21
20
19
18
17
16
INIT 時
RST 時
アクセス
CHE7
CHE6
CHE5
CHE4
CHE3
CHE2
CHE1
CHE0
11111111B
11111111B
R/W
■ キャッシュイネーブルレジスタ (CHER) のビット機能
以下に , キャッシュイネーブルレジスタ (CHER) のビットの機能を説明します。
[ ビット 23 ∼ビット 16] CHE7 ∼ CHE0 ( キャッシュ領域設定 7 ∼ 0)
各チップセレクト領域に , 内蔵キャッシュへの取込みの許可 / 禁止を設定します。
174
CHEn
キャッシュ領域設定
0
非キャッシュ領域
( 該当する領域より読み出したデータをキャッシュに保存しません )
1
キャッシュ領域
( 該当する領域より読み出したデータをキャッシュに保存します )
第 4 章 外部バスインタフェース
4.2.7
端子 / タイミングコントロールレジスタ (TCR)
端子 / タイミングコントロールレジスタ (TCR) の構成および機能について説明しま
す。
■ 端子 / タイミングコントロールレジスタ (TCR) の構成
端子 / タイミングコントロールレジスタ (TCR:Terminal and timing Control Register) は ,
共通端子機能設定やタイミング制御など , 外部バスインタフェースコントローラの全
般にかかわる機能を制御します。
図 4.2-7 に , 端子 / タイミングコントロールレジスタ (TCR) の構成を示します。
図 4.2-7 端子 / タイミングコントロールレジスタ (TCR) の構成
初期値
0000 00683H
7
6
5
4
3
2
1
0
INIT 時
RST 時
アクセス
BREN
PSUS
PCLR
予約
OHT1
OHT0
RDW1
RDW0
00000000B
0000xxxxB
R/W
■ 端子 / タイミングコントロールレジスタ (TCR) のビット機能
以下に , 端子 / タイミングコントロールレジスタ (TCR) の各ビットの機能を説明しま
す。
[ ビット 7] BREN (BRQ 入力許可 )
このビットは , BRQ 端子の入力を許可し , 外部バス共有を可能にします。
BREN
BRQ 入力許可設定
0
BRQ/BGRNT によるバス共有をしません。
BRQ 入力は無効となります。
1
BRQ/BGRNT によるバス共有を行います。
BRQ 入力は有効となります。
初期状態 ("0") のときは , BRQ の入力を無視します。"1" を設定すると , BRQ 入力が
"H" になった後バス開放が可能になった時点で , バスを開放 ( ハイインピーダンス
制御 ) し , BGRNT をアクティブ ("L" 出力 ) にします。
[ ビット 6] PSUS ( プリフェッチ抑止 )
このビットは , すべての領域に対するプリフェッチの一時停止を制御します。
PSUS
プリフェッチ制御
0
プリフェッチ許可
1
プリフェッチ抑止
"1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作をしません。
175
第 4 章 外部バスインタフェース
この間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファ
の内容は消去されませんので , プリフェッチを再開する前にビット 5 の PCLR ビッ
ト機能によりプリフェッチバッファをクリアしてください。
[ ビット 5] PCLR ( プリフェッチバッファ全クリア )
このビットは , プリフェッチバッファのすべての内容をクリアします。
PCLR
プリフェッチバッファ制御
0
通常状態
1
プリフェッチバッファクリア
"1" を書き込むと一度だけプリフェッチバッファをすべてクリアします。バッファ
クリアが完了すると自動的にビット値は "0" に戻ります。6 ビットの PSUS ビット
でプリフェッチを中断 ("1" に設定 ) しておいてからバッファをクリアしてください
(PSUS と PCLR の両ビットに同時に "10B" を書き込んで結構です ) 。
[ ビット 4] 予約
このビットは , 予約ビットです。必ず "0" を設定してください。
[ ビット 3, ビット 2] OHT1, OHT0 ( 出力ホールド遅延選択 )
これらのビットは , 外部メモリクロック MCLK 出力に対する外部制御信号出力の
ホールドのための遅延値の調整を行います。表 4.2-14 に , これらのビットの組合せ
による出力ホールド遅延選択の設定内容を示します。
表 4.2-14 出力ホールド遅延選択の設定内容
OHT1
OHT0
0
0
SYSCLK/MCLK の立下りから出力します。
0
1
SYSCLK/MCLK の立上りから (3ns) 遅延させて出力します。
1
0
SYSCLK/MCLK の立上りから (4ns) 遅延させて出力します。
1
1
SYSCLK/MCLK の立上りから (5ns) 遅延させて出力します。
出力ホールド遅延選択
遅延値は typical 条件下における目標値です。
非同期の読出しおよび書込みストローブ (RD/WR0/WR1/WE/IOWR/IORD) および遅
延させた CS の立下りタイミングは , この遅延値調整の対象にはなりません。
OHT1, OHT0 は動作中に書き換えても誤動作しませんが , タイミング切換え時に一
時外部バス動作が停止します。
176
第 4 章 外部バスインタフェース
[ ビット 1, ビット 0] RDW1, RDW0 ( ウェイトサイクル短縮 )
これらのビットは , すべてのチップセレクト領域およびフライバイ用 I/O チャネル
に対し , 自動アクセスサイクルウェイトの設定値を , AWR レジスタの設定値はその
ままで自動ウェイトサイクルのみを一律に削減することを指示します。アイドルサ
イクルやリカバリサイクル , セットアップやホールドサイクルの設定には影響しま
せん。表 4.2-15 に , これらのビットの組合せによるウェイトサイクル短縮の設定内
容を示します。
表 4.2-15 ウェイトサイクル短縮の設定内容
RDW1
RDW0
0
0
通常ウェイト (AWR0 ∼ AWR7 の設定値 )
0
1
AWR0 ∼ AWR7 の設定値の 1/2 (1 ビット右シフト )
1
0
AWR0 ∼ AWR7 の設定値の 1/4 (2 ビット右シフト )
1
1
AWR0 ∼ AWR7 の設定値の 1/8 (3 ビット右シフト )
ウェイトサイクル短縮
この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設
定を大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイ
クルウェイトがかかることを防ぐためのものです。
通常このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれ
ぞれ書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべて
の AWR の設定は高速クロックのときの設定のままで , アクセスサイクルウェイト
のみ一度に削減することができます。
クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくだ
さい。
177
第 4 章 外部バスインタフェース
4.3
チップセレクト領域の設定例
外部バスインタフェースは全部で 8 領域分のチップセレクト領域が設定できます。
本節では , チップセレクト領域の設定例を説明します。
■ チップセレクト領域の設定例
各領域のアドレス空間は ASR0 ∼ ASR7 (Area Select Register) と ACR0 ∼ ACR7 (Area
Configuration Register) で 4G バイトの空間に , 最小 64K バイト単位で任意に配置するこ
とができます。これらのレジスタによって指定された領域に対してバスアクセスを行
うと , アクセスサイクル中に対応するチップセレクト信号 CS0 ∼ CS7 がアクティブ
("L" 出力 ) になります。
● ASR および ASZ3 ∼ ASZ0 の設定例
• ASR1=0003h ACR1 の ASZ3 ∼ ASZ0=0000B: チップセレクト領域 1 は , 00030000H か
ら 0003FFFFH に割り当てられます。
• ASR2=0FFCh ACR2 の ASZ3 ∼ ASZ0=0010B: チップセレクト領域 2 は , 0FFC0000H
から 10000000H に割り当てられます。
• ASR3=0011h ACR3 の ASZ3 ∼ ASZ0=0100B: チップセレクト領域 3 は , 00100000H か
ら 00200000H に割り当てられます。
このとき , ACR の ASZ3 ∼ ASZ0 ビットが 1M バイトの設定になっていますので , バウ
ンダリは 1M バイト単位となり , ASR3 の 19 ∼ 16 ビットは無視されます。リセット後
は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ FFFFFFFFH がチップセレクト領
域 0 に割り当てられます。
チップセレクト領域は , お互いにオーバラップしないように設定してください。
178
第 4 章 外部バスインタフェース
図 4.3-1 に , チップセレクト領域の設定例を示します。
図 4.3-1 チップセレクト領域の設定例
( 初期値 )
(例)
00000000H
00000000H
00030000H
領域 1
64KB
領域 3
1MB
領域 2
256KB
00040000H
領域 0
00100000H
00200000H
0FFC0000H
0FFFFFFFH
FFFFFFFFH
FFFFFFFFH
179
第 4 章 外部バスインタフェース
4.4
エンディアンとバスアクセス
WR0/WR1 の制御信号は , ビッグエンディアン / リトルエンディアンやデータバス幅
に関係なくデータバスのバイト位置に常に 1 対 1 に対応します。以下に , バスモー
ド別に , 設定されたデータバス幅で使用される MB91307 シリーズのデータバスのバ
イト位置とそれに対応する制御信号をまとめます。
■ データバス幅と制御信号の関係
ここでは , バスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト
位置とそれに対応する制御信号をまとめます。
● 通常バスインタフェース
図 4.4-1 通常バスインタフェースでのデータバス幅と制御信号
a) 32 bit bus幅
data bus
D31
D0
制御信号
b) 16 bit bus幅
c) 8 bit bus幅
data bus
data bus
制御信号
WR0
(UUB)
WR0
(UUB)
WR1
(ULB)
WR1
(ULB)
制御信号
WR0
(UUB)
-
-
WR2
(LUB)
-
-
-
-
WR3
(LLB)
-
-
-
-
(D15~0は未使用)
(D23~0は未使用)
● 時分割入出力インタフェース
図 4.4-2 時分割入出力インタフェースでのデータバス幅と制御信号
a) 16 bit bus幅
b) 8 bit bus幅
data bus
出力アドレス 制御信号
data bus
出力アドレス 制御信号
D31
A7~0
A15~8
WR0
WR0
A7~0
WR1
-
-
-
D16
-
-
-
-
-
-
-
-
-
-
-
-
(D15~0は未使用)
180
(D23~0は未使用)
第 4 章 外部バスインタフェース
4.4.1
ビッグエンディアンのバスアクセス
MB91307 シリーズは CS0 領域を除いて , 各チップセレクトにビッグエンディアン
とリトルエンディアンを切り換えて使用することができます。ACR レジスタの
LEND ビットを "0" に設定した場合は , その領域はビッグエンディアンとして扱いま
す。通常 , MB91307 シリーズは , ビッグエンディアンで外部バスアクセスを行いま
す。
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
● ワードアクセス (LD, ST 命令実行時 )
図 4.4-3 ワードアクセスの内部レジスタと外部データバスの関係
内部レジスタ 外部バス
D31
AA
AA
BB
BB
CC
CC
DD
DD
D23
D31
D23
D15
D15
D7
D7
D0
D0
図 4.4-4 ハーフワードアクセスの内部レジスタと外部データバスの関係
a)出力アドレス下位"00"
内部レジスタ
D31
D23
D15
外部バス
D31
AA
D23
BB
D15
b)出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
D23
D15
AA
D7
D7
D0
D15
AA
AA
BB
BB
D7
BB
D0
D23
D0
D7
D0
181
第 4 章 外部バスインタフェース
図 4.4-5 バイトアクセスの内部レジスタと外部データバスの関係
a)出力アドレス下位"00"
内部レジスタ
D31
D23
b)出力アドレス下位"01"
c)出力アドレス下位"10"
d)出力アドレス下位"11"
外部バス 内部レジスタ 外部バス 内部レジスタ 外部バス 内部レジスタ 外部バス
D31 D31
D31 D31
D31 D31
D31
AA
D23 D23
D23 D23
D23 D23
D23
AA
D15
D15 D15
D15 D15
D15 D15
D15
AA
D7
D7
D7
AA
D7
D7
AA
D0
D0
D0
D7
D7
AA
D0
D7
AA
D0
D0
D0
■ データバス幅
● 16 ビットバス幅
図 4.4-6 16 ビットバス幅の内部レジスタと外部バスの関係
内部レジスタ
外部バス
出力アドレス下位
“00”“10”
D31
D23
D15
AA
BB
read/write
AA
CC
BB
DD
D31
D23
CC
D07
DD
● 8 ビットバス幅
図 4.4-7 8 ビットバス幅の内部レジスタと外部バスの関係
内部レジスタ
D31
AA
D23
D15
D07
182
BB
CC
DD
外部バス
出力アドレス下位
“00”“01”“10”“11”
read/write
D31
BB
CC
AA
DD
AA
D0
第 4 章 外部バスインタフェース
■ 外部バスアクセス
外部バスアクセス (16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バイトアクセ
ス別に , 図 4.4-8 および図 4.4-9 に示します。また , 以下の項目も合わせて図 4.4-8 およ
び図 4.4-9 に示します。
• アクセスバイト位置
• プログラムアドレスと出力アドレス
• バスアクセス回数
MB91307 シリーズは , ミスアラインエラーを検出しません。
したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット
が "00""01""10""11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" とな
り , ハーフワードアクセスの場合には "00""01" のときには "00" に , "00""01" のときに
は "10" になります。
● 16 ビットバス幅
図 4.4-8 16 ビット幅の場合の外部バスアクセス
(A) ワードアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="00"
②出力A1/A0="10"
②出力A1/A0="10"
②出力A1/A0="10"
②出力A1/A0="10"
LSB
MSB
①
00
01
①
00
01
①
00
01
①
00
01
②
10
11
②
10
11
②
10
11
②
10
11
16ビット
(B) ハーフワードアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="10"
→①出力A1/A0="10"
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
(C) バイトアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="01"
→①出力A1/A0="10"
→①出力A1/A0="11"
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
183
第 4 章 外部バスインタフェース
● 8 ビットバス幅
図 4.4-9 8 ビットバス幅の場合の外部バスアクセス
(A) ワードアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="00"
②出力A1/A0="01"
②出力A1/A0="01"
②出力A1/A0="01"
②出力A1/A0="01"
③出力A1/A0="10"
③出力A1/A0="10"
③出力A1/A0="10"
③出力A1/A0="10"
④出力A1/A0="11"
④出力A1/A0="11"
④出力A1/A0="11"
④出力A1/A0="11"
MSB LSB
①
00
①
00
①
00
①
00
②
01
②
01
②
01
②
01
③
10
③
10
③
10
③
10
④
11
④
11
④
11
④
11
8ビット
(B) ハーフワードアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="10"
→①出力A1/A0="10"
②出力A1/A0="01"
②出力A1/A0="01"
②出力A1/A0="11"
②出力A1/A0="11"
①
00
①
00
②
01
②
01
00
00
01
01
10
10
①
10
①
10
11
11
②
11
②
11
(C) バイトアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="10"
→①出力A1/A0="10"
①
00
00
00
00
01
01
01
10
10
10
10
11
11
01
184
①
①
11
①
11
第 4 章 外部バスインタフェース
■ 外部デバイスとの接続例
図 4.4-10 に , MB91307 シリーズと外部デバイスとの接続例を示します。
図 4.4-10 MB91307 シリーズと外部デバイスとの接続例
本LSI
D31
|
D24
D23
|
D16
WR0
00
D31
D15
|
D08
WR0
01
D24D23
D07
|
D00
WR0
10
D16D15
*)
16ビット/8ビットデバイスの場合は、本LSIの
MSB側のデータバスを使用します。
WR0
11
D08D07
0
D00
32ビットデバイス
(00~11 アドレス下位2ビット)
D15
*)
1
D08D07
0
D00
D07
D00
*)
16ビットデバイス
8ビットデバイス
(0/1 アドレス下位1ビット)
185
第 4 章 外部バスインタフェース
4.4.2
リトルエンディアンのバスアクセス
リトルエンディアン (LER) を設定した領域に対しては , リトルエンディアンで外部
バスアクセスを行います。
MB91307 シリーズのリトルエンディアンバスアクセスは , ビッグエンディアン時の
バスアクセス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順
番と制御信号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップ
することにより実現しています。
接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける
必要がありますので , 十分注意が必要です。
■ リトルエンディアンとビッグエンディアンの相違点
リトルエンディアンとビッグエンディアンの相違点を以下に説明します。
出力するアドレスの順番はビッグエンディアンとリトルエンディアンで変わりませ
ん。
16/8 ビットバス幅で使用するデータバス制御信号は , ビッグエンディアンとリトルエ
ンディアンで変わりません。
● ワードアクセス
ビッグエンディアンのアドレス "00" に対応する MSB 側のバイトデータが , リトルエン
ディアンでは LSB 側のバイトデータになります。
ワードアドレスの場合は, ワード内の4バイトすべてのバイト位置がひっくりかえりま
す。
"00" → "11", "01" → "10", "10" → "01", "11" → "00"
● ハーフワードアクセス
ビッグエンディアンのアドレス "0" に対応する MSB 側のバイトデータが , リトルエン
ディアンでは LSB 側のバイトデータになります。
ハーフワードアクセスの場合は, ハーフワード内の2バイトのバイト位置がひっくりか
えります。
"0" → "1", "1" → "0"
● バイトアクセス
ビッグエンディアン / リトルエンディアンとも同じです。
■ リトルエンディアン領域に対する制限事項
• リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に
対するアクセスは必ずワードアクセスで行ってください。プリフェッチバッファに
読み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が
行われず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構
のハードウェア的な制限によるものです。
• リトルエンディアン領域には , 命令コードを配置しないでください。
186
第 4 章 外部バスインタフェース
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
図 4.4-11 ワードアクセスの内部レジスタと外部データバスの関係
(1)ワードアクセス(LD,ST命令実行時)
内部レジスタ 外部バス
D31
D31
DD
AA
D23
D23
CC
BB
D15
D15
BB
CC
D7
D7
AA
DD
D0
D0
図 4.4-12 ハーフワードアクセスの内部レジスタと外部データバスの関係
(2)ハーフワードアクセス(LDUH,STH命令実行時)
a)出力アドレス下位"00"
b)出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
BB
D23
D23
AA
D15
D15
AA
D7
D7
BB
D0
D0
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
BB
BB
AA
D7
D7
D0
D0
図 4.4-13 バイトアクセスの内部レジスタと外部データバスの関係
(3)バイトアクセス(LDUB,STB命令実行時)
a)出力アドレス下位"00" b)出力アドレス下位"01"
内部レジスタ 外部バス 内部レジスタ 外部バス
D31
D31 D31
D31
AA
D23
D23 D23
D23
AA
D15
D15 D15
D15
c)出力アドレス下位"10"
d)出力アドレス下位"11"
内部レジスタ 外部バス 内部レジスタ 外部バス
D31
D31 D31
D31
D23
D15
D23 D23
D23
D15 D15
D15
AA
D7
D7
D7
AA
D0
D7
D7
AA
D0
D0
D7
D7
AA
D0
D0
D7
AA
D0
D0
AA
D0
187
第 4 章 外部バスインタフェース
■ データバス幅
データバス幅ごとに , 内部レジスタと外部データバスとの関係を示します。
● 16 ビットバス幅
図 4.4-14 16 ビットバス幅の内部レジスタと外部データバスの関係
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
D23
D15
D07
read/write
AA
BB
DD
BB
CC
AA
D31
D23
CC
DD
● 8 ビットバス幅
図 4.4-15 8 ビットバス幅の内部レジスタと外部データバスの関係
内部レジスタ
外部バス
出力アドレス下位
"00" "01" "10" "11"
D31
D23
D15
D07
188
AA
BB
CC
DD
read/write
DD
CC
BB
AA
D31
第 4 章 外部バスインタフェース
■ 外部デバイスとの接続例
MB91307 シリーズと外部デバイスとの接続例を , バス幅ごとに示します。
● 16 ビットバス幅
図 4.4-16 MB91307 シリーズと外部デバイスとの接続例 (16 ビットバス幅 )
本LSI
D31
|
D24
D23
|
D16
WR0
0
D15
WR0
1
D08D07
0
D00
big endian 領域
D15
1
D08D07
D00
little endian 領域
● 8 ビットバス幅
図 4.4-17 MB91307 シリーズと外部デバイスとの接続例 (8 ビットバス幅 )
本LSI
D31
|
D24
WR0
D07
D00
big endian 領域
D07
D00
little endian 領域
189
第 4 章 外部バスインタフェース
4.4.3
ビッグエンディアンとリトルエンディアンの外部ア
クセスの比較
バス幅に対するワードアクセス , ハーフワードアクセスおよびバイトアクセスにつ
いて , ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示します。
■ ワードアクセス
ビッグエンディアンモード
16 ビット
バス幅
内部Reg
外部端子
address: "0" "2"
D31
D31
AA
AA CC
BB
BB
DD
制御端子
リトルエンディアンモード
内部Reg
WR0
WR0
WR1
BB
CC
AA
WR1
CC
-
-
-
DD
-
-
-
①
②
D16
CC
-
-
-
DD
-
-
-
D00
D00
①
内部Reg
D31
②
外部端子
制御端子
address: "0" "1" "2" "3"
D31
AA
AA BB CC DD
D24
BB
- - - -
WR0
CC
DD
内部Reg 外部端子
制御端子
WR0
-
address: "0" "1" "2" "3"
D31
AA
DD CC BB AA
D24
BB
- - - -
- - - -
-
CC
- - - -
-
- - - -
-
DD
- - - -
-
D00
D31
D00
① ② ③ ④
190
制御端子
address: "0" "2"
D31
AA
DD BB
D31
D16
8 ビット
バス幅
外部端子
① ② ③ ④
-
第 4 章 外部バスインタフェース
■ ハーフワードアクセス
ビッグエンディアンモード
16 ビット
バス幅
内部Reg 外部端子
D31
address: "0"
D31
AA
D00
内部Reg 外部端子
制御端子
WR0
BB
WR1
AA
-
-
BB
-
-
D16
リトルエンディアンモード
address: "0"
D31
D31
BB
内部Reg 外部端子
address: "2"
D31
D31
CC
AA
WR1
AA
-
-
D00
BB
-
-
①
D00
制御端子
WR0
DD
WR1
CC
-
-
DD
-
-
D16
内部Reg 外部端子
address: "2"
D31
D31
DD
内部Reg 外部端子
端子
AA
D00
BB
CC
WR1
CC
-
-
D00
DD
-
-
内部Reg 外部端子
制御端子
WR0
-
-
- -
-
D00
address: "0" "1"
D31
D31
BB AA
D24
- -
AA
D00
BB
address: "2" "3"
D31
CC DD
D24
- -
CC
D00
DD
-
- -
-
- -
-
内部Reg 外部端子
制御端子
WR0
-
-
- -
-
① ②
WR0
① ②
- -
D00
制御端子
D00
① ②
D31
WR0
①
- -
内部Reg 外部端子
制御端子
D16
①
address: "0" "1"
D31
D31
AA BB
D24
- -
WR0
D16
①
8 ビット
バス幅
制御端子
address: "2" "3"
D31
D31
DD CC
D24
- -
CC
D00
DD
制御端子
WR0
-
- -
-
- -
-
D00
① ②
191
第 4 章 外部バスインタフェース
■ バイトアクセス
ビッグエンディアンモード
16 ビット
バス幅
内部Reg 外部端子
address: "0"
D31
D31
AA
A
リトルエンディアンモード
制御端子
WR0
内部Reg
-
D16
外部端子
address: "0"
D31
D31
AA
-
AA
-
D00
-
AA
①
①
内部Reg 外部端子
制御端子
address: "1"
D31
D31
内部Reg 外部端子
-
WR1
BB
D16
-
-
BB
D00
-
BB
①
①
内部Reg 外部端子
address: "2"
D31
D31
CC
制御端子
WR0
内部Reg 外部端子
address: "2"
D31
D31
CC
-
D16
D00
-
CC
①
内部Reg 外部端子
①
内部Reg 外部端子
制御端子
-
-
DD
DD
WR1
D16
-
DD
D00
①
192
WR1
-
-
D00
制御端子
address: "3"
D31
D31
address: "3"
D31
D31
D16
WR0
-
-
CC
制御端子
-
D16
-
D00
WR1
D16
-
D00
制御端子
address: "1"
D31
D31
-
BB
WR0
-
D16
-
D00
制御端子
-
DD
①
第 4 章 外部バスインタフェース
ビッグエンディアンモード
8 ビット
バス幅
内部Reg 外部端子
address: "0"
D31
D31
AA
D24
D00
リトルエンディアンモード
制御端子
WR0
内部Reg 外部端子
address: "0"
D31
D31
A
D24
-
-
-
D00
D31
D00
address: "1"
D31
BB
D24
①
内部Reg 外部端子
制御端子
D31
WR0
address: "1"
D31
BB
D24
D31
D00
address: "2"
D31
CC
D24
-
-
D00
内部Reg 外部端子
制御端子
WR0
address: "2"
D31
D31
CC
D24
D31
D00
address: "3"
D31
DD
D24
-
-
D00
-
CC
①
内部Reg 外部端子
制御端子
D31
WR0
address: "3"
D31
DD
D24
制御端子
WR0
-
-
-
-
D00
①
WR0
-
-
DD
制御端子
-
①
内部Reg 外部端子
-
BB
①
-
CC
WR0
-
①
内部Reg 外部端子
制御端子
-
-
BB
-
AA
①
内部Reg 外部端子
WR0
-
-
AA
制御端子
-
DD
①
193
第 4 章 外部バスインタフェース
4.5
通常バスインタフェースの動作
通常バスインタフェースの動作について説明します。
■ 通常バスインタフェース
通常バスインタフェースでは , 読出しアクセス / 書込みアクセスともに 2 クロックサイ
クルが基本バスサイクルになります。
通常バスインタフェースにおける以下の動作について , タイミングチャートを示して
説明します。
• 基本タイミング ( アクセスが連続する場合 )
• WE+ バイト制御タイプ
• 読出し→書込み
• 書込み→書込み
• 自動ウェイトサイクル
• 外部ウェイトサイクル
• 同期書込みイネーブル出力
- CS 遅延設定
- CS → RD / WE セットアップ , RD / WE → CS ホールド設定
- DMA フライバイ転送 (I/O →メモリ )
- DMA フライバイ転送 ( メモリ→ I/O)
194
第 4 章 外部バスインタフェース
4.5.1
基本タイミング
アクセスが連続する場合の基本タイミングを示します。
■ 基本タイミング ( アクセスが連続する場合 )
(TYP3 ∼ TYP0=0000B, AWR=0008H) の場合の基本タイミングを , 図 4.5-1 に示します。
図 4.5-1 基本タイミング ( アクセスが連続する場合 )
MCLK
A[24:0]
#2
#1
AS
CSn
RD
READ
D[31:16]
#1
#2
WRn
WRITE
D[31:16]
#1
#2
• AS は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A24 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス
をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0 ∼ CS7 は , AWR0 ∼ AWR7 レジスタの W02 ビットが "0" のときは , AS と同じ
タイミングでアサートし , 連続するアクセスがある場合 , CS0 ∼ CS7 がネゲートし
ません。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼
CS7 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネ
ゲートします。
• RD ,WR0, WR1 は , バスアクセス第 2 サイクルからアサートします。AWR レジスタ
W15 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD ,WR0, WR1
をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設定することにより
1 サイクル遅らせることができます。ただし , WR0, WR1 は内部状態により W01 ビッ
トを "0" に設定した場合も第 2 サイクルより遅れることがあります。
• TYP3 ∼ TYP0=0x0xB のように WR0, WR1 を使用する設定の場合 WE は "H" 固定で
す。
• 読出しアクセスの場合 ,
RD アサート後ウェイトサイクルが終了したサイクルの
MCLK の立上りで D31 ∼ D0 を取り込みます。
• ライトアクセスの場合 , WR0, WR1 をアサートしたタイミングから D31 ∼ D0 にデー
タを出力します。
195
第 4 章 外部バスインタフェース
4.5.2
WE+ バイト制御タイプの動作
WE+ バイト制御タイプの動作タイミングを示します。
■ WE+ バイト制御タイプの動作タイミング
(TYP3 ∼ TYP0=0010B, AWR=0008H) の場合の動作タイミングを , 図 4.5-2 に示します。
図 4.5-2
WE+ バイト制御タイプのタイミングチャート
MCLK
A[24:0]
AS
CSn *
RD
WR0
READ
WR1
D[31:16]
WE
WR0
WRITE
WR1
D[31:16]
• AS,CSn,RD, A24∼A0, D31∼D16は,「4.5.1 基本タイミング」と同様の動作をします。
WE は , バスアクセス第 2 サイクルからアサートします。AWR レジスタ W15 ∼ W12
ビットのウェイトサイクルを挿入した後ネゲートします。RD,WR0, WR1 をアサー
トするタイミングは , AWR レジスタ W01 ビットを "1" に設定することにより 1 サ
イクル遅らせることができます。ただし , 内部状態により W01 ビットを "0" に設定
した場合も第 2 サイクルより遅れることがあります (「4.5.1 基本タイミング」の
WR0, WR1 と同様の動作をします ) 。
196
第 4 章 外部バスインタフェース
• WR0, WR1 は , バイトイネーブル信号としてアクセスするバイト位置を負論理で示
します。バスアクセス開始サイクルからバスサイクル終了までアサートします。ア
ドレスと同じタイミングで変化します。読出し / 書込みアクセスともにアクセスす
るバイト位置を示します。
• 書込みアクセスの場合 , WE をアサートしたタイミングから D31 ∼ D16 にデータを
出力します。TYP3 ∼ TYP0=0x0xB ( WR0, WR1 使用 ) , TYP3 ∼ TYP0=0x1xB (WE +
バイト制御 ) の領域を混在させる場合には , 使用するすべての領域で , 必ず以下の設
定をしてください ( 詳細は「4.12 外部バスインタフェースの使用上の注意」を参照
してください ) 。
- 読出し→書込みアイドルサイクルを最低 1 サイクル以上設定してください。
- 書込みリカバリサイクルを最低 1 サイクル以上設定してください。
197
第 4 章 外部バスインタフェース
読出し→書込み動作
4.5.3
読出し→書込み動作のタイミングを示します。
■ 読出し→書込み動作タイミング
(TYP3 ∼ TYP0=0000B, AWR=0048H) の場合の動作タイミングを , 図 4.5-3 に示します。
図 4.5-3 読出し→書込みのタイミングチャート
リード
アイドル*
ライト
MCLK
A[24:0]
AS
CSn
RD
WRn
D[31:16]
• AWR レジスタ W07, W06 ビットの設定により , 0 ∼ 3 サイクルまでのアイドルサイ
クル挿入が可能です。
• 読出し側の CS 領域の設定が有効になります。
• 読出しアクセスの次のアクセスが書込みアクセスまたは別の領域へのアクセスで
ある場合 , このアイドルサイクルを挿入します。
198
第 4 章 外部バスインタフェース
書込み→書込み動作
4.5.4
書込み→書込み動作のタイミングを示します。
■ 書込み→書込み動作
(TYP3 ∼ TYP0=0000B, WR=0018H) の場合の動作タイミングを , 図 4.5-4 に示します。
図 4.5-4 書込み→書込み動作のタイミングチャート
ライト
ライトリカバリ*
ライト
MCLK
A[24:0]
AS
CSn
WRn
D[31:16]
• WR レジスタ W05, W04 ビットの設定により , 0 ∼ 3 サイクルまでの書込みリサイク
ルを挿入可能です。
• すべての書込みサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによって書込みアクセスが分割された場合も , 書込
みリカバリサイクルは発生します。
199
第 4 章 外部バスインタフェース
4.5.5
自動ウェイトサイクル
自動ウェイトサイクルの動作タイミングを示します。
■ 自動ウェイトサイクルタイミング
(TYP3 ∼ TYP0=0000B, AWR=2008H) の場合の動作タイミングを , 図 4.5-5 に示します。
図 4.5-5 自動ウェイトサイクルのタイミングチャート
基本サイクル
ウェイトサイクル *
MCLK
A[24:0]
AS
CSn
RD
D[31:16]
WRn
D[31:16]
AWR レジスタ W15 ∼ W12 ビット ( ファーストウェイトサイクル ) の設定によって自
動ウェイトサイクルを , 0 ∼ 15 まで設定できます。
図 4.5-5 では , 自動ウェイトサイクルを 2 サイクル挿入し , 合計 4 サイクルのアクセス
となっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル +
( ファーストウェイトサイクル ) となります。書込みの場合は内部状態によりさらに長
くなることがあります。
200
第 4 章 外部バスインタフェース
4.5.6
外部ウェイトサイクル
外部ウェイトサイクルの動作タイミングを示します。
■ 外部ウェイトサイクルタイミング
(TYP3 ∼ TYP0=0001B, AWR=2008H) の場合の動作タイミングを , 図 4.5-6 に示します。
図 4.5-6 外部ウェイトサイクルのタイミングチャート
基本サイクル
自動ウェイト
2サイクル
RDYによる
ウェイト
サイクル
MCLK
A[24:0]
AS
CSn
RD
D[31:16]
WR1
D[31:16]
RDY
解除
ウェイト
ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることによ
り , 外部ウェイトサイクルを挿入することができます。
201
第 4 章 外部バスインタフェース
4.5.7
同期書込みイネーブル出力
同期書込みイネーブル出力の動作タイミングを示します。
■ 同期書込みイネーブル出力の動作タイミング
(TYP3 ∼ TYP0=0000B, AWR=0000H) の場合の動作タイミングを , 図 4.5-7 に示します。
図 4.5-7 同期書込みイネーブル出力のタイミングチャート
MCLK
A[31:16]
#2
#1
AS
CSn *
RD
READ
D[31:16]
#1
#2
WRn
WRITE
D[31:16]
#1
#2
• 同期書込みイネーブルとした場合 (AWR の W03 ビットが "1") , 以下のような動作と
なります。
• WR0, WR1 , WE 端子出力は , AS 端子出力がアサートされているタイミングで , 同期
書込みイネーブル出力をアサートします。外部バスへの書込みが行われる場合 , 同
期書込みイネーブル出力は "L" を出力します。外部バスからの読出しが行われる場
合 , 同期書込みイネーブル出力は "H" を出力します。
• 同期書込みイネーブル出力をアサートした次のクロックサイクルで , 外部データ出
力端子から書込みデータを出力します。内部バスの都合により書込みデータを出力
することができなかった場合 , 書込みデータが出力できるまで同期書込みイネーブ
ル出力のアサートを延長することがあります。
• 読出しストローブ出力 (RD) は, WR0, WR1 ,WE出力タイミング設定の内容にかかわ
らず , 非同期読出しストローブとして機能します。データの入出力制御にそのまま
使用してください。
• 同期書込みイネーブル出力を使用する場合 , 以下の制限があります。
- 同期書込みイネーブル出力のタイミングが無意味なものとなりますので , 以下の
追加ウェイト設定はしないでください。
202
第 4 章 外部バスインタフェース
・CS → RD/WE セットアップ設定 (AWR の W01 ビットには , 常に "0" を書いて
ください )
・ファーストウェイトサイクル設定 (AWR の W15 ∼ W12 ビットには , 常に
"0000" を書いてください )
- 同期書込みイネーブル出力のタイミングが無意味なものとなりますので , 以下の
アクセスタイプ設定 (ACR レジスタ中の TYPE3 ∼ TYPE0 ビット ( ビット 3 ∼ビッ
ト 0) ) は設定しないでください。
・マルチプレクスバス設定 (ACR の TYPE2 ビットには , 常に "0" を書いてくだ
さい )
・RDY 入力有効設定 (ACR の TYPE0 ビットには , 常に "0" を書いてください )
• 同期書込みイネーブル出力の場合 , バースト長は常に "1" (BST1, BST0 ビットに "0")
を設定してください。
203
第 4 章 外部バスインタフェース
4.5.8
CS 遅延設定
CS 遅延設定の動作タイミングを示します。
■ CS 遅延設定の動作タイミング
(TYP3 ∼ TYP0=0000B, AWR=000CH) の場合の動作タイミングを , 図 4.5-8 に示します。
図 4.5-8 CS 遅延設定の動作タイミングチャート
MCLK
A[24:0]
AS
CSn
RD
READ
D[31:16]
WRn
WRITE
D[31:16]
W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続するアク
セスがある場合はネゲート期間を挿入します。
204
第 4 章 外部バスインタフェース
4.5.9
CS → RD/WE セットアップおよび RD/WE → CS
ホールド設定
CS → RD/WE セットアップおよび RD/WE → CS ホールド設定の動作タイミングを
示します。
■ CS → RD/WE セットアップ , RD/WE → CS ホールド設定の動作タイミング
(TYP3 ∼ TYP0=0000B, AWR=000BH) の場合の動作タイミングを , 図 4.5-9 に示します。
図 4.5-9 CS → RD/WE セットアップ , RD/WE → CS ホールド設定のタイミングチャート
MCLK
A[24:0]
AS
CSn
CS→RD/WR
Delay
RD/WR→CS
Delay
RD
READ
D[31:16]
WRn
WRITE
D[31:16]
• AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WE セットアッ
プディレイを設定可能です。チップセレクトアサート後 , 読出し / 書込みストロー
ブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RD/WE → CS ホールドディ
レイを設定可能です。
読出し / 書込みストローブネゲート後 , チップセレクトネゲー
トまでの期間を延長する場合に設定します。
• CS → RD/WE セットアップディレイ (W01 ビット ) と RD/WE → CS ホールドディレ
イ (W00 ビット ) は , 独立に設定できます。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CS → RD/WE セットアップディレイ , RD/WE → CS ホールドディ
レイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
205
第 4 章 外部バスインタフェース
4.5.10
DMA フライバイ転送 (I/O →メモリ )
DMA フライバイ転送 (I/O →メモリ ) の動作タイミングを示します。
■ DMA フライバイ転送 (I/O →メモリ ) の動作タイミング
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=51H) の場合の動作タイミングチャートを ,
図 4.5-10 に示します。このタイミングチャートは , メモリ側のウェイト設定なしの場
合です。
図 4.5-10 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド I/Oアイドル
サイクル * ウェイト* サイクル
基本サイクル
I/Oウェイト I/Oホールド
サイクル * ウェイト*
MCLK
A[24:0]
AS
CSn
WRn
D[31:16]
DACKnX(IORD)
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O 読出し
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい方の値をウェイトサイクルとし
て使用します。
206
第 4 章 外部バスインタフェース
4.5.11
DMA フライバイ転送 ( メモリ→ I/O)
DMA フライバイ転送 ( メモリ→ I/O) の動作タイミングを示します。
■ DMA フライバイ転送 ( メモリ→ I/O) の動作タイミング
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=51H) の場合の動作タイミングチャートを ,
図 4.5-11 に示します。このタイミングチャートは , メモリ側のウェイト設定なしの場
合です。
図 4.5-11 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド I/Oアイドル
サイクル *1 ウェイト*2 サイクル
基本サイクル
I/Oウェイト I/Oホールド
サイクル *1 ウェイト *2
MCLK
A[24:0]
AS
CSn
RD
D[31:16]
DACKnX(IOWR)
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O 読出し
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの WR1 ∼ WR0 ビットの設定により , 0 ∼ 3 サイクルま
での書込みリカバリサイクルを挿入することができます。
• 書込みリカバリサイクルを "1" 以上に設定した場合は , 書込みアクセスの後には必
ず書込みリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR2 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入することができます。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい方の値をウェイトサイクルとし
て使用します。
207
第 4 章 外部バスインタフェース
バーストアクセスの動作
4.6
外部バスインタフェースにおいては , 1 回のアクセスシーケンスで複数のデータを連
続して転送する動作を , バーストアクセスとよびます。バーストアクセス以外の通
常のアクセスサイクルを , シングルアクセスとよびます。1 回のアクセスシーケンス
とは , AS および CS のアサートから始まり , CS がネゲートされるまでを示します。
複数のデータとは , その領域に設定されたバス幅単位で 2 単位以上のデータを示し
ます。
本節では , バーストアクセスの動作について説明します。
■ バーストアクセスの動作
(first wait cycle=1, inpage access wait cycle=1, TYP3 ∼ TYP0=0000B, AWR=3208H) の場合
の動作タイミングチャートを , 図 4.6-1 に示します。
図 4.6-1 バーストアクセスのタイミングチャート
第一サイクル
ウェイト *1
インページアクセス
ウェイト*2
インページアクセス
ウェイト
インページアクセス
ウェイト
MCLK
A[24:0]
AS(LBA)
CSn
RD
WRn
WR
WRn
BAA
D[31:16]
• バーストサイクルは, ページモードROMなどの非同期メモリやバーストフラッシュ
メモリなど , まとまったデータを読む際のアクセスサイクルの効率化とともに , 通
常の非同期メモリからの読出しにも使用できます。
• バーストサイクル時のアクセスシーケンスは , 以下の 2 種類のサイクルに分かれま
す。
- ファーストアクセスサイクル
バーストアクセスの開始サイクルで , 通常のシングルアクセスサイクルと同じ動
作をします。
- ページアクセスサイクル
ファーストアクセスサイクルに引き続き , CS や RD ( 読出しストローブ ) をアサー
208
第 4 章 外部バスインタフェース
トしたまま行うサイクルです。シングルサイクル時とは異なるウェイトサイクル
を設定することができます。バースト長設定から決定されるアドレスバウンダリ
内にある間 , ページアクセスサイクルは繰り返し行われます。アドレスバウンダ
リ内のアクセスが終了するとバーストアクセスは終了し , CS がネゲートされま
す。
• AWR レジスタの W15 ∼ W12 ビットの設定により , 0 ∼ 15 サイクルの第 1 ウェイト
サイクルを挿入することができます。このとき , ファーストアクセスサイクルは最
小で , ウェイトサイクル +2 サイクルとなります ( 図 4.6-1 に示すタイミングチャー
トでは 3 サイクル ) 。
• AWR レジスタの W11 ∼ W8 ビットの設定により , 0 ∼ 15 サイクルのページウェイ
トサイクルを挿入することができます。このとき , ページアクセスサイクルは , ペー
ジウェイトサイクル +1 サイクルとなります ( 図 4.6-1 に示すタイミングチャートで
は 2 サイクル ) 。
• ACR レジスタの BST ビットの設定により , バースト長を 1, 2, 4, 8 に設定できます。
バースト長を "1" に設定するとシングルアクセスとなり , 第 1 サイクルのみが繰り
返されます。ただし , データバス幅 32 ビット (ACR レジスタの BST ビットを "10B")
に設定した場合は , バースト長を "4" 以下に設定してください ( バースト長 8 に設定
した場合は誤動作します ) 。
• バーストアクセスを有効にした場合 , プリフェッチアクセスまたは設定したデータ
バス幅よりも大きなサイズで転送するときにバーストアクセスを行います。例えば ,
データバス幅を 8 ビット , バースト長を "4" に設定した領域にワードアクセスした
場合バイトアクセスを 4 回ではなく , 4 バースト 1 回のアクセスを行います。
• バースト設定をした領域では RDY 入力は無視されますので , TYP3 ∼ TYP0=0xx1B
に設定しないでください。
• LBA , BAA 信号は , バースト Flash メモリ用で , LBA でアクセスの開始を示し BAA
でアドレスのインクリメントを指示します。
• バーストアクセス中設定したウェイト後に A24 ∼ A0 を更新します。
209
第 4 章 外部バスインタフェース
4.7
アドレス / データマルチプレクスインタフェース
アドレス / データマルチプレクスインタフェースの動作として , 以下の 3 つの場合に
ついて説明します。
・外部ウェイトなし
・外部ウェイトあり
・CS → RD/WE セットアップ設定
■ 外部ウェイトなし
(TYP3 ∼ TYP0=0100B, AWR=0008H) の場合の動作タイミングチャートを , 図 4.7-1 に示
します。
図 4.7-1 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトなし )
MCLK
A[24:0]
address[31:0]
AS
CSn
RD
READ
D[31:16]
address[15:0]
data[15:0]
WE
WRITE
D[31:16]
address[15:0]
data[15:0]
• ACR レジスタの TYP3 ∼ TYP0=01xxB に設定することにより , アドレス / データマ
ルチプレクスインタフェース設定が可能です。
• アドレス / データマルチプレクスインタフェースに設定した場合 , データバス幅
(DBW1, DBW0 ビット ) の設定は 8 ビットまたは 16 ビットに設定してください。
• アドレス / データマルチプレクスインタフェースでは , アドレス出力サイクル 2 サ
イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
• アドレス出力サイクルでは , 出力アドレスラッチ信号として を AS アサートします。
• A24 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先
頭を示すアドレスを出力しますので, アドレス/データマルチプレクスインタフェー
スで 8/16 ビット以上のアドレスを使用したい場合に使用してください。
• 自動ウェイト (AWR15 ∼ AWR12) , 読出し→書込みアイドルサイクル (AWR7,
210
第 4 章 外部バスインタフェース
AWR6) , 書込みリカバリ (AWR5, AWR4) , アドレス→ CS 遅延 (AWR2) , CS → RD/
WE セットアップ遅延 (AWR1) , RD/WE → CS ホールド遅延 (AWR0) の設定は , 通常
インタフェースと同様に設定することができます。
• アドレス / データマルチプレクスインタフェースを設定した領域では , バースト長
を "1" (DBW1, DBW0=00B) に設定してください。
■ 外部ウェイトあり
(TYP3 ∼ TYP0=0101B, AWR=1008H) の場合の動作タイミングチャートを , 図 4.7-2 に示
します。
図 4.7-2 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトあり )
MCLK
A[24:0]
address[31:0]
AS
CSn
RD
READ
D[31:16]
address[15:0]
data[15:0]
WE
WRITE
D[31:16]
address[15:0]
data[15:0]
ACR レジスタの TYP3 ∼ TYP0=01x1B と設定することにより , アドレス / データマルチ
プレクスインタフェースにおいて RDY 入力を有効とすることができます。
211
第 4 章 外部バスインタフェース
■ CS → RD/WE セットアップ設定
(TYP3 ∼ TYP0=0101B, AWR=100BH) の場合の動作タイミングチャートを , 図 4.7-3 に示
します。
図 4.7-3 アドレス / データマルチプレクスインタフェースのタイミングチャート
( CS → RD/WE セットアップ設定 )
MCLK
A[24:0]
address[31:0]
AS
CSn
RD
READ
D[31:16]
address[15:0]
data[15:0]
WE
WRITE
D[31:16]
address[15:0]
data[15:0]
CS → RD /WE セットアップ遅延 (AWR1) を "1" に設定すると , 図 4.7-3 に示すようにマ
ルチプレクスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上り
エッジで直接ラッチすることが可能となります。MCLK を使用せずに AS を ALE
(Address Latch Enable) ストローブとして使用したい場合にこの設定を用いてください。
212
第 4 章 外部バスインタフェース
4.8
プリフェッチ動作
プリフェッチ動作について説明します。
■ プリフェッチ動作
外部バスインタフェースコントローラは , 8 ビット× 16 本で構成されるプリフェッチ
バッファを内蔵しています。
TCR レジスタの PSUS ビットが "0" の場合 , ACR レジスタの PFEN ビットをセット ("1")
してある領域に対する読出しアクセスが発生すると , それ以降に続くアドレスに対し
てプリフェッチを行い , プリフェッチバッファ内に蓄積します。
蓄積されたアドレスに対して内部バスからのアクセスがあると , 外部アクセスをせず
にプリフェッチバッファに先読みされたデータを返します。これにより , 外部バス領域
への連続したアクセスでの待ち時間を少なくすることができます。
● プリフェッチによる外部アクセスを開始する基本条件
プリフェッチによる外部バスアクセスは , 以下の条件が揃っている場合に発生します。
• TCR レジスタの PSUS ビットが "0" であること。
• スリープまたはストップモードでないこと。
• プリフェッチ許可されたチップセレクト領域への外部バスの読出しアクセスが行
われたこと。ただし , DMA アクセスおよびリードモディファイライト系命令による
読出しアクセスを除きます。
• プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな
い領域への外部バス領域アクセスや , 外部バス領域との間の DMA 転送など ) が発生
していないこと。
• 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて
空であること。
以上の条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッチアク
セス後に , プリフェッチを許可していない領域への外部バス領域アクセスが発生した
後でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッチ許可領域へ
のプリフェッチアクセスは引き続き行われます。
複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス
している場合 , プリフェッチバッファは常に最後にアクセスされたプリフェッチ許可
領域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリ
フェッチ禁止領域へのアクセスは , プリフェッチバッファの状態には一切影響を及ぼ
さないため , プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチ
とが混在しても , プリフェッチバッファ内のデータを無駄にすることはありません。
213
第 4 章 外部バスインタフェース
● プリフェッチアクセスの一時停止と任意クリア
TCR レジスタの PSUS ビットに "1" をセットすると , プリフェッチは一時停止します。
PSUS ビットに "0" を設定すると再開します。このとき , ミス発生 , PCLR ビットのセッ
トなどのバッファクリアが発生しなければ , バッファ内容は保持されます。
TCR レジスタの PCLR ビットに "1" をセットすると , プリフェッチバッファをすべてク
リアします。バッファのクリアは , PSUS ビットをセットし , プリフェッチを中断して
いるときに行ってください。
アドレス上位 16 ビットが変化する境界 = チップセレクト領域の最小単位 (64K バイト
ごと ) では , プリフェッチは一度停止します。境界を超えた場合 , 一度バッファの読出
しミスが発生し , 引き続き新しい領域でプリフェッチを開始します。
● 1 回のプリフェッチアクセス動作の単位
1 回のプリフェッチアクセスの単位は , ACR レジスタの DBW ビット ( バス幅 ) と BST
ビット ( バースト長 ) によって決まります。
プリフェッチアクセスは常に DBW ビットで設定されたバス幅いっぱいのサイズでア
クセスし , BST ビットで設定されたバースト長の回数のアクセスを 1 回のアクセスで
行います。すなわち , BST ビットに "00B" 以外を設定した場合 , プリフェッチアクセス
は常にページモード / バーストモードでのアクセスとなります。対応していない ROM/
RAM やアクセスタイム不足には注意してください (AWR レジスタの W15 ∼ W08 ビッ
トに適切な値を設定してください ) 。
バーストアクセス時は , バースト長に依存したアドレスバウンダリ内でしか連続アク
セスをしません。
そのため , バッファの空きバイト数が例えば 4 バイトあったとしても ,
バウンダリをまたいでいる場合 , 4 バイト分を 1 回でアクセスすることはできません
( プリフェッチバッファ先頭が xxxxxx0EH で , バッファに 4 バイトの空きがあり , バス
幅 16 ビットであっても , 2 バーストを設定した場合は , 次のプリフェッチアクセスでは
xxxxxx0EH と xxxxxx0FH の 2 バイトしか取り込みません ) 。
以下に , 2 つの例を示します。
• バス幅 16 ビット , バースト長 2 を設定した領域
1 回のプリフェッチでバッファに読み込まれるデータ量は , 4 バイト分となります。
この場合 , プリフェッチバッファに 4 バイト分の空きができるまでプリフェッチア
クセスは行われません。
• バス幅 8 ビット , バースト長 8 を設定した領域
1 回のプリフェッチでバッファに読み込まれるデータ量は , 8 バイト分となります。
この場合 , プリフェッチバッファに 8 バイト分の空きができるまでプリフェッチア
クセスは行われません。
214
第 4 章 外部バスインタフェース
● バースト長設定とプリフェッチ効率
前項の「1 回のプリフェッチアクセス動作の単位」で説明した 1 回のプリフェッチアク
セスが行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や , プリ
フェッチバッファへのミスが発生した場合でも , 実行中のプリフェッチバッファのア
クセスが終了するまでは , それらのアクセス要求は待たされます。
そのため , バースト長をあまり大きく設定すると , プリフェッチ以外のバスアクセスの
効率や反応が低下します。反面 , バースト長を 1 に設定すると , バースト / ページアク
セスメモリを接続している場合でも常にシングルアクセスを行うため , 読込みサイク
ルの無駄が多く発生します。
また , 1 回のプリフェッチアクセスで読み込まれるデータが多い設定になっていると ,
それだけプリフェッチバッファの空きができないとプリフェッチアクセスが開始でき
ません。このため , プリフェッチバッファへのアクセス頻度が少ないと外部バスがアイ
ドル状態になり易くなります。例えば , バス幅が 16 ビット , バースト長 8 を設定した
場合 , 1 回のプリフェッチでバッファに読み込まれるデータ量は , 16 バイト分となるた
め , プリフェッチバッファがすべて空にならないと , 新たなプリフェッチアクセスがで
きなくなります。
これらのことを念頭に置いた上で , 使用状況や環境に応じて最適なバースト長設定を
調整してください。一般に , バースト / ページアクセスのできない非同期メモリを接続
する場合は , バースト長は 1 ( シングルアクセス ) を設定するのが最適です。逆に , バー
スト / ページアクセスサイクルの短いメモリを接続する場合は , バースト長は 1 ( シン
グルアクセス ) 以外を設定するのが最適です。こちらの場合は , バス幅に応じて 1 回で
8 バイト ( バッファの半分 ) を読み込む設定をするのが最適ですが , 外部アクセスの頻
度や外部アクセスクロックの分周比設定などによっても条件は変わってきます。
● プリフェッチバッファからの読込み
プリフェッチバッファ内にストアされたデータは , 内部バスからのアクセスでアドレ
スが一致したものがあれば読み出され , 外部へのアクセスを行いません。バッファの読
込みは , 順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16 バイト )
なので, 短い前方への分岐などでも極力外部バスへの2度読みが発生しないようになっ
ています。
内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 ,
プリフェッチアクセスが完了してデータが取り込まれるまでの間は , 内部に対して
ウェイトを返します。この場合 , バッファミス扱いにはなりません。
DMA 転送での読出しで , プリフェッチバッファ内のアドレスが一致した場合は , プリ
フェッチバッファ内のデータは使用されず , 外部バスから新たに読込みを行います。こ
の場合 , バッファミス扱いになりますが , 引き続きプリフェッチを継続はせずに , プリ
フェッチ許可領域への新たな外部アクセスが発生するまでは , プリフェッチアクセス
を行いません。
215
第 4 章 外部バスインタフェース
● プリフェッチバッファのクリア , 更新
プリフェッチバッファは , 以下の条件のいずれかが成立した場合にすべてクリアされ
ます。
• TCR レジスタの PCLR ビットに "1" が書き込まれたとき
• バッファ読出しミスが発生したとき
バッファ読出しミスとは , 以下のものをいいます。
- プリフェッチ許可領域への読出しアクセスで , バッファ内のアドレスに一致する
ものがない場合。この場合 , 外部バスに対して新たにアクセスを行います。この
際の読出しデータは , バッファ内にはストアされませんが , 続くアドレスからプ
リフェッチアクセスを開始し , バッファにストアしていきます。
- プリフェッチ許可領域への読出しアクセスで , リードモディファイライト系命令
による読出しである場合。この場合 , 外部バスに対して新たにアクセスを行いま
す。この際の読出しデータは , バッファ内にはストアされません。また , 続けて
プリフェッチアクセスは行いません ( 次にそのアドレスに対し書込みが行われる
ため ) 。
- プリフェッチ許可領域への読出しアクセスで , DMA 転送による読出しである場
合。この場合 , 外部バスに対して新たにアクセスを行います。この際の読出しデー
タは , バッファ内にはストアされません。また , 続けてプリフェッチアクセスは
行いません。
• バッファ書込みヒットが発生したとき
バッファ書込みヒットとは , 以下のものをいいます。
- プリフェッチ許可領域への書込みアクセスで , バッファ内のアドレスに 1 バイト
でも一致するものがあった場合。この場合 , 外部バスに対して新たにアクセスを
行いますが , プリフェッチアクセスは , 新たな読出しアクセスが発生するまでは
行われません。
プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。
• バッファ読出しヒットが発生したとき
この場合 , ヒットしたアドレス以前のバッファのみクリアされます。
● プリフェッチ許可領域に対する制限事項
リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に対
するアクセスは必ずワードアクセスで行ってください。プリフェッチバッファに読み
込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行われ
ず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構のハード
ウェア的な制限によるものです。
216
第 4 章 外部バスインタフェース
4.9
DMA アクセス動作
DMA アクセス動作について説明します。
■ DMA アクセス動作
以下の 5 つの DMA 動作について説明します。
• DMA フライバイ転送 (I/O →メモリ )
• DMA フライバイ転送 ( メモリ→ I/O)
• 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM)
• 2 サイクル転送 ( 外部→ I/O)
• 2 サイクル転送 (I/O →外部 )
217
第 4 章 外部バスインタフェース
DMA フライバイ転送 (I/O →メモリ )
4.9.1
DMA フライバイ転送 (I/O →メモリ ) の動作について説明します。
■ DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=41H) の場合の動作タイミングチャートを ,
図 4.9-1 に示します。
図 4.9-1 は , メモリ側のウェイト設定なしの場合です。
図 4.9-1 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート
I/Oウェイト I/Oホールド
基本サイクル サイクル *1 ウェイト*2
MCLK
A[24:0]
memory address
AS
CSn
WRn
D[31:16]
DACKn
FR30
互換
モード DEOPn
基本
モード
DACKn
DEOPn
IORD
DREQn
デマンドモード時の
センスタイミング
*1 I/Oウェイトサイクルとして0~15サイクルまで設定可能です。
*2 I/Oホールドウェイトのあり,なしを設定可能です。
• AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD /WE セットアッ
プディレイを設定できます。チップセレクトアサート後 , 読出し / 書込みストロー
ブまでの期間を延長する場合に設定します。
218
第 4 章 外部バスインタフェース
• AWR レジスタ W00 ビットを "1" に設定することにより , RD /WE → CS ホールド
ディレイを設定できます。読出し / 書込みストローブネゲート後 , チップセレクト
ネゲートまでの期間を延長する場合に設定します。
• CS → RD/WE セットアップディレイ (W01 ビット ) と RD /WE → CS ホールドディ
レイ (W00 ビット ) は , 独立に設定できます。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CS → RD/WE セットアップディレイ , RD/WE → CS ホールドディ
レイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ
クルにより延長された , 3 バスサイクル分の読出しストローブが発生しています。受取
り側であるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル分
の書込みストローブが発生しています。I/O ホールドウェイトサイクルは , 書込みスト
ローブには影響を与えません。ただし , アドレスと CS 信号は , フライバイによるバス
アクセスサイクル終了まで保持されます。
219
第 4 章 外部バスインタフェース
DMA フライバイ転送 ( メモリ→ I/O)
4.9.2
DMA フライバイ転送 ( メモリ→ I/O) の動作について説明します。
■ DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=41H) の場合の動作タイミングチャートを ,
図 4.9-2 に示します。
図 4.9-2 は , メモリ側のウェイト設定なしの場合です。
図 4.9-2 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド
サイクル *1 ウェイト*2
MCLK
A[24:0]
memory address
AS
CSn
RD
D[31:16]
DACKn
FR30
互換
モード DEOPn
基本
モード
DACKn
DEOPn
IORD
DREQn
デマンドモード時の
センスタイミング
*1 I/Oウェイトサイクルとして0~15サイクルまで設定可能です。
*2 I/Oホールドウェイトのあり,なしを設定可能です。
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O 読出し
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで
の書込みリカバリサイクルを挿入できます。
220
第 4 章 外部バスインタフェース
• 書込みリカバリサイクルを "1" 以上に設定した場合は , 書込みアクセスの後には必
ず書込みリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR2 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入できます。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい方の値をウェイトサイクルとし
て使用します。
参考:
データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェ
イトサイクルにより延長された , 3 バスサイクル分の読出しストローブが発生して
います。受取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バ
スサイクル分の書込みストローブが発生しています。I/O ホールドウェイトサイク
ルは , 書込みストローブには影響を与えません。ただし , アドレスと CS 信号は , フ
ライバイによるバスアクセスサイクル終了まで保持されます。
221
第 4 章 外部バスインタフェース
4.9.3
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM)
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) の動作について説明します。
外部 I/O, RAM →内部 RAM もタイミングは同じです。
■ 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM)
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H) の場合の動作タイミングチャートを ,
図 4.9-3 に示します。
図 4.9-3 は , I/O 側のウェイト設定なしの場合です。
図 4.9-3 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) のタイミングチャート
基本サイクル
MCLK
A[24:0]
I/O address
AS
CSn(I/O側)
WRn
D[31:16]
DACKn
FR30
互換
モード DEOPn
基本
モード
DACKn
DEOPn
DREQn
デマンドモード時の
センスタイミング
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• DACKn/DEOPn は , 内部 RAM アクセスのサイクルでは出力されません。
222
第 4 章 外部バスインタフェース
2 サイクル転送 ( 外部→ I/O)
4.9.4
2 サイクル転送 ( 外部→ I/O) の動作について説明します。
■ 2 サイクル転送 ( 外部→ I/O)
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H) の場合の動作タイミングチャートを ,
図 4.9-4 に示します。
図 4.9-4 は , メモリ , I/O のウェイト設定なしの場合です。
図 4.9-4 2 サイクル転送 ( 外部→ I/O) のタイミングチャート
基本サイクル
基本サイクル
MCLK
A[24:0]
memory address
idle
I/O address
AS
CSn
RD
CSn
WRn
D[31:16]
DACKn
FR30
互換
モード DEOPn
基本
モード
DACKn
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは, DACKn/DEOPnは転送元バスアクセス, 転送先バスアクセスの両方
で出力されます。
223
第 4 章 外部バスインタフェース
2 サイクル転送 (I/O →外部 )
4.9.5
2 サイクル転送 (I/O →外部 ) の動作について説明します。
■ 2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H) の場合の動作タイミングチャートを ,
図 4.9-5 に示します。
図 4.9-5 は , メモリ , I/O のウェイト設定なしの場合です。
図 4.9-5 2 サイクル転送 (I/O →外部 ) のタイミングチャート
基本サイクル
基本サイクル
MCLK
A[24:0]
I/O address
idle
memory address
AS
CSn
WRn
CSn
RD
D[31:16]
DACKn
FR30
互換
モード DEOPn
基本
モード
DACKn
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
224
第 4 章 外部バスインタフェース
4.10
バスアービトレーション
バス権開放およびバス権獲得のタイミングチャートを示します。
■ バス権開放
図 4.10-1 にバス権開放のタイミングチャートを , 図 4.10-2 にバス権獲得のタイミング
チャートを示します。
図 4.10-1 バス権開放のタイミングチャート
MCLK
A23~A0
AS
CSn *
RD
リード
D31~D16
BRQ
BGRNT
1サイクル
225
第 4 章 外部バスインタフェース
図 4.10-2 バス権獲得のタイミングチャート
MCLK
A23~A0
AS
CSn *
WE
ライト
D31~D16
BRQ
BGRNT
1サイクル
• TRC レジスタの BREN ビットを "1" に設定することにより , BRQ/BGRNT によるバ
スアービトレーションを行うことができます。
• バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を
アサートします。
• バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに
します。
• CSn は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ
ンピーダンスにします。
• CSER レジスタで許可している領域がすべて共有許可 (ACR レジスタの SREN ビッ
トが "1") の場合 , AS, BAA , RD,WE ,WR0, WR1 をハイインピーダンスにします。
226
第 4 章 外部バスインタフェース
4.11
レジスタの設定手順
レジスタの設定手順を説明します。
■ レジスタの設定手順
外部バスインタフェースに関する設定は , 以下の手順で行ってください。
(1) レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し
ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の
アクセスは保証されません。
(2) レジスタの変更は , 以下の手順で行ってください。
1) 該当領域に対応する CSER のビットを "0" に設定してください。
2) ASR と ACR をワードアクセスで同時に設定してください。
ASR, ACR をハーフワードでアクセスする場合は , ASR 設定後 , ACR を設定し
てください。
3) AWR を設定してください。
4) 該当領域に対応する CHER のビットを設定してください。
5) 該当領域に対する CSER のビットを設定してください。
(3) CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記 2) ∼ 4) の設定を行ってください。そのあと , クロッ
クを高速クロックに切り換えてください。
(4) プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくださ
い。
1) 該当領域に対応する CSER のビットを "0" に設定してください。
2) TCR レジスタの PSUS ビットおよび PCLR ビットをともに "1" に設定し
てください。
3) ASR と ACR をワードアクセスで同時に設定してください。ASR,ACR をハー
フワードでアクセスする場合は,ASR 設定後,ACR を設定してください。
4) AWR を設定してください。
5) 該当領域に対応する CHER のビットを設定してください。
6) TCR レジスタの PSUS ビットおよび PCLR ビットに "0" を設定してください。
7) 該当領域に対応する CSER のビットを "1" に設定してください。
227
第 4 章 外部バスインタフェース
4.12
外部バスインタフェースの使用上の注意
外部バスインタフェースを使用する上で注意しなければならない事項について説明
します。
■ 使用上の注意事項
WR0, WR1 を書込みストローブとして使用する領域 (TYP3 ∼ TYP0=0x0xB) と WE を書
込みストローブとして使用する領域 (TYP3 ∼ TYP0=0x1xB) を混在させる設定にした場
合 , 使用するすべての領域で , 必ず以下の設定をしてください。
• 読出し→書込みアイドルサイクルを最低 1 サイクル以上設定してください (AWR
W07, W06=00B 以外 ) 。
• 書込みリカバリサイクルを最低 1 サイクル以上設定してください (AWR W05, W04 =
00B 以外 ) 。
ただし , WR0, WR1 を書込みストローブとして使用する領域 (TYP3 ∼ TYP0=0x0xB) で
WR0, WR1 無効な (ROM のみ接続されている ) 場合は , 上記制限はありません。また ,
WEを書込みストローブとして使用する領域 (TYP3∼TYP0=0x1xB) の設定でアドレス→
RD/WE セ ッ ト ア ッ プ サ イ ク ル (W01=1) , RD/WE → ア ド レ ス ホ ー ル ド サ イ ク ル
(W00=1) をともに設定している場合も上記制限はありません。
制限する理由は , 以下のとおりです。
TYPE3 ∼ TYPE0=0x1xB と設定して WE を書込みストローブとして使用する領域では ,
WR0/ WR1 端子が , バイトイネーブル (UUB/ULB) 出力となります。この場合 , バイトイ
ネーブル出力はアドレスおよび CS 出力と同一のタイミングで , 各バイト位置のイネー
ブル信号を出力します。
このため , WR0/ WR1 端子を非同期書込みストローブとして使用している領域へのア
クセスが前後にあった場合 , そちらの領域において , CS と WR0/ WR1 間の交流規格を
満足できなくなり , 誤った書込みが発生する可能性があります。
読出し→書込みアイドルサイクルおよび書込みリカバリサイクルを設定した場合 , こ
れらのサイクルでは , CS はアサートされません ("H" レベルを維持 ) ので , 上記交流規
格を満足することができます。
WR0/ WR1 端子を非同期書込みストローブとして使用している領域で , CS と WR0/
WR1 間の交流規格 (セットアップおよびホールド) に対し余裕がある場合は, この制限
は必要ありません。
228
第5章
I/O ポート
この章では , I/O ポートの概要 , レジスタの構成お
よび機能について説明します。
5.1 I/O ポートの概要
5.2 I/O ポートのレジスタ
229
第 5 章 I/O ポート
5.1
I/O ポートの概要
I/O ポートの概要を説明します。
■ I/O ポートの基本ブロックダイヤグラム
MB91307 シリーズは , 各端子に対応する外部バスインタフェースやペリフェラルが入
出力として端子を使用しない設定になっているとき , I/O ポートとして使用することが
できます。
図 5.1-1 に , I/O ポートの基本的な構成を示します。
図 5.1-1 I/O ポートの基本ブロックダイヤグラム
ペリフェラル入力
Port Bus
0
1
ペリフェラル出力
PDR
1
Pin
0
PFR
DDR
PDR:Port Data Register
DDR:Data Drection Register
PFR:Port Function Register
I/O ポートは , PDR ( ポートデータレジスタ :Port Data Register) , DDR ( ポート方向レジ
スタ :Data Direction Register) および PFR ( ポート機能レジスタ :Port Function Register) か
ら構成されています。
■ I/O ポートのモード
I/O ポートには , 以下の 3 つのモードがあります。
• ポート入力モード時 (PFR="0" & DDR="0")
- PDR 読出し : 対応する外部端子のレベルが読み出されます。
- PDR 書込み :PDR に設定値が書き込まれます。
• ポート出力モード時 (PFR="0" & DDR="1")
- PDR 読出し :PDR の値が読み出されます。
- PDR 書込み :PDR の値が対応する外部端子に出力されます。
230
第 5 章 I/O ポート
• ペリフェラル出力モード時 (PFR="1" & DDR="x")
- PDR 読出し : 対応するペリフェラル出力の値が読み出されます。
- PDR 書込み :PDR に設定値が書き込まれます。
<注意事項>
• I/O ポート関連レジスタに対しては , バイトアクセスしてください。
• ポート 0 ∼ポート A ( ポート 9 のビット 3 を除く ) を外部バス端子として使用している
場合は , 外部バス機能が優先されます。このため , 外部バス端子として動作させている
ときに DDR レジスタを書き換えても入出力の切換えは起こりません。DDR レジスタ
の値が有効になるのは , PFR レジスタを切換えて汎用端子としたときです。
231
第 5 章 I/O ポート
5.2
I/O ポートのレジスタ
I/O ポートで使用するレジスタの構成および機能について説明します。
■ ポートデータレジスタ (PDR) の構成
ポートデータレジスタ (PDR:Port Data Register) の構成は , 以下のとおりです。
図 5.2-1 ポートデータレジスタ (PDR) の構成
PDR2
7
6
5
4
3
2
1
0
初期値
アドレス:00000002H
P27
P26
P25
P24
P23
P22
P21
P20
XXXXXXXXB
PDR6
7
6
5
4
3
2
1
0
初期値
アドレス:00000006H
P67
P66
P65
P64
P63
P62
P61
P60
XXXXXXXXB
PDR7
7
6
5
4
3
2
1
0
初期値
アドレス:00000007H
―
―
―
―
―
―
―
P70
- - - - - - - XB
PDR8
7
6
5
4
3
2
1
0
初期値
アドレス:00000008H
―
―
P85
―
―
P82
P81
P80
- - X - - XXXB
PDR9
7
6
5
4
3
2
1
0
初期値
アドレス:00000009H
P97
P96
P95
P94
P93
P92
P91
P90
XXXXXXXXB
PDRA
7
6
5
4
3
2
1
0
初期値
アドレス:0000000AH
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
XXXXXXXXB
PDRB
7
6
5
4
3
2
1
0
初期値
PB6
PB5
PB4
PB3
PB2
PB1
PB0
XXXXXXXXB
アドレス:0000000BH PB7
PDRG
7
6
5
4
3
2
1
0
初期値
アドレス:00000010H
―
―
―
―
―
PG2
PG1
PG0
- - - - - XXXB
PDRH
7
6
5
4
3
2
1
0
初期値
PH6
PH5
PH4
PH3
PH2
PH1
PH0
XXX00XXXB
アドレス:00000011H PH7
PDRI
7
6
5
4
3
2
1
0
初期値
アドレス:00000012H
―
―
PI5
PI4
PI3
PI2
PI1
PI0
- - XXXXXXB
PDRJ
7
6
5
4
3
2
1
0
初期値
PJ0
XXXXXXXXB
アドレス:00000013H
PJ7
PJ6
PJ5
PJ4
PJ3
PJ2
PJ1
• PDR2 ∼ PDRJ は , I/O ポートの入出力データレジスタです。
• 対応する DDR0 ∼ DDRJ, PFR6 ∼ PFRI で , 入出力制御が行われます。
232
第 5 章 I/O ポート
■ データ方向レジスタ (DDR) の構成
データ方向レジスタ (DDR:Data Direction Register) の構成は , 以下のとおりです。
図 5.2-2 データ方向レジスタ (DDR) の構成
DDR2
7
アドレス:00000602H P27
DDR6
7
アドレス:00000606H P67
6
5
4
3
2
1
0
P26
P25
P24
P23
P22
P21
P20
6
5
4
3
2
1
0
P66
P65
P64
P63
P62
P61
P60
0
DDR7
7
6
5
4
3
2
1
アドレス:00000607H
―
―
―
―
―
―
―
DDR8
7
6
5
4
3
2
1
アドレス:00000608H
―
―
P85
―
―
P82
P81
DDR9
7
6
5
4
3
2
1
0
P96
P95
P94
P93
P92
P91
P90
6
5
4
3
2
1
0
PA6
PA5
PA4
PA3
PA2
PA1
PA0
6
5
4
3
2
1
0
アドレス:00000609H P97
DDRA
7
アドレス:0000060AH PA7
DDRB
7
アドレス:0000060BH PB7 PB6 PB5
7
6
5
4
3
アドレス:00000400H
―
―
―
―
―
DDRH
7
6
5
4
3
0
初期値
アクセス
P80 - - 0 - - 000B
R/W
2
1
0
2
1
0
7
6
5
4
3
2
1
0
PI4
PI3
PI2
PI1
PI0
アドレス:00000402H
―
―
PI5
DDRJ
7
6
5
4
3
2
1
0
PJ6
PJ5
PJ4
PJ3
PJ2
PJ1
PJ0
アドレス:00000403H PJ7
初期値
アクセス
00000000B
R/W
初期値
アクセス
00000000B
R/W
初期値
アクセス
00000000B
R/W
初期値
アクセス
PG2 PG1 PG0 - - - - - 000B
R/W
アドレス:00000401H PH7 PH6 PH5 PH4 PH3 PH2 PH1 PH0
DDRI
初期値
アクセス
00000000B
R/W
初期値
アクセス
0
P70
R/W
B
PB4 PB3 PB2 PB1 PB0
DDRG
初期値
アクセス
00000000B
R/W
初期値
アクセス
00011000B
R/W
初期値
アクセス
- - 000000B
R/W
初期値
アクセス
00000000B
R/W
DDR2 ∼ DDRJ は , 対応する I/O ポートの入出力方向をビット単位で制御します。
• PFR=0 のとき
- DDR=0: ポート入力
- DDR=1: ポート出力
• PFR=1 のとき
- DDR=0: ペリフェラル出力
- DDR=1: ペリフェラル出力
233
第 5 章 I/O ポート
■ ポート機能レジスタ (PFR) の構成
ポート機能レジスタ (PFR:Port Function Register) の構成は , 以下のとおりです。
図 5.2-3 ポート機能レジスタ (PFR) の構成
PFR6
7
6
5
4
3
2
1
0
初期値
アクセス
アドレス:00000616H
A23E
A22E
A21E
A20E
A19E
A18E
A17E
A16E
11111111B
R/W
PFR7
7
6
5
4
3
2
1
0
初期値
アクセス
―
―
A24E
- - - - - - - 1B
R/W
1
0
初期値
アクセス
―
- - 1 - - 0- - B
R/W
0
初期値
アクセス
SYSE
0 - 001101B
R/W
アドレス:00000617H
―
―
PFR8
7
―
―
―
6
5
4
3
2
WRXE
―
BRQE
―
2
1
アドレス:00000618H
―
―
PFR9
7
6
5
4
3
―
BAAE
ASXE
MCIN
アドレス:00000619H WEXE
PFRA
7
アドレス:0000061AH CS7E
PFRB1
7
アドレス:0000061BH DES1
PFRB2
7
7
アドレス:00000410H
―
PFRH
MCKE MCEE
6
5
4
3
2
1
0
初期値
アクセス
CS6E
CS5E
CS4E
CS3E
CS2E
CS1E
CS0E
11111111B
R/W
6
5
4
3
2
1
0
初期値
アクセス
00000000B
R/W
AK12
AK11
AK10
DES0
AK02
AK01
AK00
6
5
4
3
2
1
0
初期値
アクセス
00 - - - - - - B
R/W
アドレス:0000061CH DRDE DWRE
PFRG
―
6
―
―
―
―
―
―
5
4
3
2
1
0
初期値
アクセス
- - - - 0000B
R/W
―
―
―
DES2
AK22
AK21
AK20
7
6
5
4
3
2
1
0
初期値
アクセス
アドレス:00000411H
TEST
I2CE
TOE2
TOE1
TOE0
SCE2
SOE2
―
0000000 - B
R/W
PFRI
7
6
5
4
3
2
1
0
初期値
アクセス
―
- - 00 - 00 - B
R/W
アドレス:00000412H
―
―
SCE1
SOE1
―
SCE0
SOE0
PFR6 ∼ PFRI は , 対応する外部バスインタフェースやペリフェラルの出力をビット単
位で制御します。
<注意事項>
PFRH のビット 7 (TEST) は必ず "0" にしてください。
234
第 5 章 I/O ポート
■ ポート機能レジスタ (PFR) の機能
以下に各 PFR について , その初期値と機能をまとめます。
表 5.2-1 ポート機能レジスタ (PFR) の機能 (1 / 5)
レジスタ名
ビット名
ビット値
機 能
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用 ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
0
汎用ポート
1
アドレス出力 ( 初期状態 )
―
なし (P82 ビットを BRQ 端子にし
た場合に BGRNT 専用端子になり
ます )
0
汎用ポート
1
BRQ
0
汎用ポート
1
WR1 出力
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
CS 出力 ( 初期値 )
A16E
A17E
A18E
A19E
PFR6 (A16E ∼ A23E)
[P60/A16 ∼ P67/A23]
A20E
A21E
A22E
A23E
PFR7 (A24)
[P70/A24]
PFR8 (BRQE)
[P81/ , BGRNT P82/
BRQ]
A24E
―
BRQE
PFR8 (WRXE)
[P85/WR1/ULB]
WRXE
PFRA (CS0E)
[PA0/CS0]
CS0E
PFRA (CS1E)
[PA1/CS1]
CS1E
235
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (2 / 5)
レジスタ名
ビット名
PFRA (CS2E)
[PA2/CS2]
CS2E
PFRA (CS3E)
[PA3/CS3]
CS3E
PFRA (CS4E)
[PA4/CS4]
CS4E
PFRA (CS5E)
[PA5/CS5]
CS5E
PFRA (CS6E)
[PA6/CS6]
CS6E
PFRA (CS7E)
[PA7/CS7]
CS7E
PFR9 (SYSE)
[P90/SYSCLK]
PFR9 (MCEE)
[P91]
PFR9 (MCKE)
[P92/MCLK]
PFR9 (MCKE)
[P92/MCLK]
PFR9 (MCIN) ,
DDR9 (P93)
[P93]
PFR9 (ASXE)
[P94/AS/LBA]
236
ビット値
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
CS 出力 ( 初期値 )
0
汎用ポート
1
SYSCLK 出力使用時 "1" を設定し
てください ( 初期値 ) 。
0
汎用ポート ( 初期値 )
1
設定禁止。
0
汎用ポート
1
メモリクロック出力使用時 "1" を
設定してください ( 初期値 ) 。
0
汎用ポート
1
メモリクロック出力使用時 "1" を
設定してください ( 初期値 ) 。
SYSE
MCEE
MCKE
MCKE
MCIN,
P93
機 能
0, 0
設定禁止。
0, 1
設定禁止。
1, 0
汎用入力ポート , MCLK は内部ク
ロック (MCLK) が入力されます
( 初期値 ) 。
1, 1
汎用出力ポート , MCLK は内部ク
ロック (MCLK) が入力されます。
0
汎用ポート ( 初期値 )
1
汎用メモリ / バーストモードメモ
リ使用時に設定してください。
ASXE
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (3 / 5)
レジスタ名
PFR9 (BAAE)
[P95/BAA]
PFRA (WEXE)
[P97/WE]
PFRB1 (AK02, 01, 00)
[PB1/DACK0]
PFRB1 (DES0) , DDRB
(PB2)
[PB2/DEOP0]
PFRB1
(AK12, AK11, AK10)
[PB4/DACK1]
ビット名
ビット値
0
汎用ポート ( 初期値 )
1
バーストモードメモリ使用時に設
定してください。
0
汎用ポート ( 初期値 )
1
16 ビットメモリ使用時に設定し
てください。
BAAE
WEXE
AK02,
AK01,
AK00 *
DES0,
PB2
AK12,
AK11,
AK10 *
機 能
0, 0, 0
汎用ポート ( 初期値 )
0, 0, 1
DACK0 出力 ( フライバイ転送時
FR30 互換 )
0, 1, 0
DACK0 出力 (2 サイクル転送 RD
タイミング FR30 互換 )
1, 0, 0
DACK0 出力 (2 サイクル転送 WE
タイミング FR30 互換 )
1, 1, 0
DACK0 出力 (2 サイクル転送 WE,
RD タイミング FR30 互換 )
1, 1, 1
DACK0 出力 ( チップセレクトタ
イミング )
0, 0
汎用ポート入力 ( 初期値 )
0, 1
汎用ポート出力
1, 0
DMAC:DSTP0 入力
1, 1
DMAC:DEOP0 出力
0, 0, 0
汎用ポート ( 初期値 )
0, 0, 1
DACK1 出力 (fly-by 転送時 FR30
互換 )
0, 1, 0
DACK1 出力 (two-cycle 転送 RD タ
イミング FR30 互換 )
1, 0, 0
DACK1 出力 (two-cycle 転送 WE
タイミング FR30 互換 )
1, 1, 0
DACK1 出力 (two-cycle 転送 WE,
RD タイミング FR30 互換 )
1, 1, 1
DACK1 出力 ( チップセレクトタ
イミング )
237
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (4 / 5)
レジスタ名
PFRB1 (DES1) ,
DDRB (PB5)
[PB5/DEOP1]
DES1,
PB5
PFRB2 (DWRE)
[PB6/IOWR]
DWRE
PFRB2 (DRDE)
[PB7/IORD]
DRDE
PFRG
(AK22, 21, 20)
[PG1/DACK2]
PFRG (DES2) , DDRG
(PG2)
[PG2/DEOP2]
238
ビット名
AK22,
AK21,
AK20 *
DES2,
PG2
PFRH (SOE2)
[PH1/SO2]
SOE2
PFRH (SCE2)
[PH2/SC2]
SCE2
PFRH (TOE0)
[PH3/TOT0]
TOE0
PFRH (TOE1)
[PH4/TOT1]
TOE1
ビット値
機 能
0, 0
汎用ポート入力 ( 初期値 )
0, 1
汎用ポート出力
1, 0
DMAC:DSTP1 入力
1, 1
DMAC:DEOP1 出力
0
汎用ポート ( 初期値 )
1
IOWR 出力
0
汎用ポート ( 初期値 )
1
IORD 出力
0, 0, 0
汎用ポート ( 初期値 )
0, 0, 1
DACK2 出力 ( フライバイ転送時
FR30 互換 )
0, 1, 0
DACK2 出力 (2 サイクル転送 RD
タイミング FR30 互換 )
1, 0, 0
DACK2 出力 (2 サイクル転送 WE
タイミング FR30 互換 )
1, 1, 0
DACK2 出力 (2 サイクル転送 WE,
RD タイミング FR30 互換 )
1, 1, 1
DACK2 出力 ( チップセレクトタ
イミング )
0, 0
汎用 PORT 入力 ( 初期値 )
0, 1
汎用 PORT 出力
1, 0
DMAC:DSTP2 入力
1, 1
DMAC:DEOP2 出力
0
汎用ポート ( 初期値 )
1
SO2 出力
0
汎用ポート ( 初期値 )
1
SC2 出力
0
汎用ポート ( 初期値 )
1
TOT0 出力
0
汎用ポート ( 初期値 )
1
TOT1 出力
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (5 / 5)
レジスタ名
PFRH (TOE2)
[PH5/TOT2]
ビット名
ビット値
0
汎用ポート ( 初期値 )
1
TOT2 出力
0
ポートとなります ( 初期値 ) 。
1
SDA 入出力
0
I2CE=0 のとき PH7 端子はポート
となります ( 初期値 ) 。
1
I2CE=1 のとき PH7 端子は SDL 入
出力となります。
0
必ず "0" にしてください。
( 初期値 )
1
テスト機能です。設定禁止。
0
汎用ポート ( 初期値 )
1
SO0 出力
0
汎用ポート ( 初期値 )
1
SC0 出力
0
汎用ポート ( 初期値 )
1
SO1 出力
0
汎用ポート ( 初期値 )
1
SC1 出力
TOE2
I2CE
PFRH (I2CE)
[PH6/SDA, PH7/SCL]
-
PFRH (TEST)
TEST
PFRI (SOE0)
[PI1/SO0]
PFRI (SCE0)
[PI2/SC0]
PFRI (SOE1)
[PI4/SO1]
PFRI (SCE1)
[PI5/SC1]
機 能
SOE0
SCE0
SOE1
SCE1
* :「第 14 章 DMA コントローラ」を参照してください。DEOP の出力タイミングは
DACK のタイミング設定と連動して変化します。
239
第 5 章 I/O ポート
240
第6章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , レ
ジスタの構成 / 機能および 16 ビットリロードタイ
マの動作について説明します。
6.1 16 ビットリロードタイマの概要
6.2 16 ビットリロードタイマのレジスタ
6.3 16 ビットリロードタイマの動作
6.4 カウンタの動作状態
6.5 16 ビットリロードタイマの使用上の注意
241
第 6 章 16 ビットリロードタイマ
6.1
16 ビットリロードタイマの概要
16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内
部カウントクロック作成用プリスケーラ , コントロールレジスタで構成されていま
す。
■ 16 ビットリロードタイマの概要
MB91307 シリーズは , 16 ビットリロードタイマを 0 ∼ 2 までの 3 チャネル内蔵してい
ます。
ch0 と ch1 は , 割込みによる DMA 転送の起動が可能です。
入力クロックとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ) と外部クロッ
クから選択できます。
出力端子 (TOUT) はリロードモード時にはアンダフロー発生ごとにトグル出力波形を
出力し , ワンショットモード時にはカウント中を示す矩形波を出力します。
入力端子 (TTG) は外部イベントカウントモード時にイベント入力となり , 内部クロッ
クモード時にはトリガ入力またはゲート入力として使用することができます。
外部イベントカウント機能をリロードモードで使用すると , 外部クロックモードの分
周器として利用することができます。
242
第 6 章 16 ビットリロードタイマ
■ ブロックダイヤグラム
図 6.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 6.1-1 16 ビットリロードタイマのブロックダイヤグラム
16
16ビットリロードレジスタ
8
16
R
b
u
s
リロード
16ビットダウンカウンタ UF
2
クロックセレクタ
2
φ φ φ
21 23 25
内部クロック
OUT
CTL.
GATE
EXCK
CSL1
CSL0
リトリガ
IN CTL.
プリスケーラ
クリア
2
RELD
OUTE
OUTL
INTE
UF
CNTE
TRG
IRQ
ポート(T1)
3
ポート(T0)
MOD0
MOD1
MOD2
3
243
第 6 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタ
6.2
16 ビットリロードタイマで使用するレジスタの構成と機能について説明します。
■ 16 ビットリロードタイマのレジスタ一覧
図 6.2-1 16 ビットリロードタイマのレジスタ一覧
15
14
13
12
11
―
―
―
―
CSL1
7
6
MOD0
―
15
5
4
OUTL RELD
10
9
8
CSL0 MOD2 MOD1
3
2
1
0
INTE
UF
CNTE
TRG
コントロールステータス
レジスタ
(TMCSR)
0
16 ビットタイマレジスタ
(TMR)
15
244
0
16 ビットリロードレジスタ
(TMRLR)
第 6 章 16 ビットリロードタイマ
コントロールステータスレジスタ (TMCSR)
6.2.1
コントロールステータスレジスタ (TMCSR) は , 16 ビットタイマの動作モードおよ
び割込みの制御をします。
■ コントロールステータスレジスタ (TMCSR) のビット構成
図 6.2-2 コントロールステータスレジスタ (TMCSR) のビット構成
TMCSR
アドレス
bit
11
10
9
8
7
6
5
4
3
2
1
0
0000004EH
初期値
----0000
00000056H CSL1
CSL0 MOD2 MOD1 MOD0
"0"
OUTL RELD
INTE
UF
CNTE
TRG
R/W
R/W
R/W
R/W
00000000B
0000005EH
R/W
R/W
R/W
R/W
R/W
R
R/W
R/W
UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにしてく
ださい。
コントロールステータスレジスタ (TMCSR) には , 同時書込みが可能です。
■ コントロールステータスレジスタ (TMCSR) のビット機能
以下に , コントロールステータスレジスタ (TMCSR) のビット機能を説明します。
[ ビット 11, ビット 10] CSL1, CSL0 (Count clock SLect)
これらのビットは , カウントクロックセレクトビットです。これらのビットによっ
て選択されるクロックソースを , 表 6.2-1 に示します。また , 外部イベントカウント
モードを設定した場合のカウント有効エッジは, MOD1, MOD0ビットにより設定さ
れます。
表 6.2-1 CSL ビット設定クロックソース
CSL1
CSL0
0
0
φ/21
0
1
φ/23
1
0
φ/25
1
1
外部クロック ( イベント )
クロックソース (φ: マシンクロック )
( 注意事項 ) 外部クロックに必要な最小パルス幅は , 2T (T: 周辺系クロッ
クマシンサイクル ) です。
245
第 6 章 16 ビットリロードタイマ
[ ビット 9, ビット 8, ビット 7] MOD2, MOD1, MOD0 (MODe)
これらのビットは , 動作モードおよび入出力端子の機能を設定するビットです。
MOD2 ビットは , 入力端子の機能を選択するビットです。"0" の場合入力端子はト
リガ入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウン
タへロードし , カウント動作を継続します。"1" の場合はゲートカウントモードにな
り , 入力端子はゲート入力となって有効レベルが入力されている間のみカウントを
します。
MOD1, MOD0 ビットは , 各モードにおける端子の機能を設定します。
MOD2, MOD1,
MOD0 ビットの設定内容を , 表 6.2-2 および表 6.2-3 に示します。
表 6.2-2 MOD2, MOD1, MOD0 ビットの設定方法 1
( 内部クロックモード時 (CSL0, CSL1=00, 01, 10) )
MOD2
MOD1
MOD0
入力端子機能
有効エッジ , レベル
0
0
0
トリガ禁止
―
0
0
1
0
1
0
0
1
1
1
×
0
1
1
×
立上りエッジ
トリガ入力
立下りエッジ
両エッジ
"L" レベル
ゲート入力
"H" レベル
表 6.2-3 MOD2, MOD1, MOD0 ビットの設定方法 2
( イベントカウントモード時 (CSL0, CSL1=11) )
MOD2
MOD1
MOD0
入力端子機能
有効エッジ , レベル
0
0
―
―
0
1
1
0
1
1
×
立上りエッジ
イベント入力
立下りエッジ
両エッジ
( 注意事項 ) 表中の×は , 任意の値
[ ビット 6] (reserved)
このビットは , 未使用ビットです。
読出し時 , 常に "0" が読めます。
[ ビット 5] OUTL
このビットは , TOUT 端子の出力レベルを設定します。このビットが "0" のときと
"1" のときとでは , 端子のレベルが逆になります。このビットとビット 4 (RELD ビッ
ト ) および I/O ポートの PFR レジスタの該当ビットの組合せによって出力波形を指
定します。表 6.2-4 に , これらのビットの組合せによる設定内容を示します。
246
第 6 章 16 ビットリロードタイマ
表 6.2-4 OUTE, RELD, OUTL の設定内容
MOD2
MOD1
MOD0
0
×
×
汎用ポート
1
0
0
カウント中 "H" 矩形波
1
1
0
カウント中 "L" 矩形波
1
0
1
カウンタスタート時 "L" のトグル出力
1
1
1
カウンタスタート時 "H" のトグル出力
出 力 波 形
( 注意事項 ) PFR は I/O ポートの PFR レジスタの該当ビット
[ ビット 4] RELD
このビットは , リロード許可ビットです。"1" のときリロードモードになり , カウン
タの値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカ
ウンタへロードしてカウント動作を続けます。
"0" のときカウンタの値が 0000H → FFFFH へのアンダフローによりカウント動作を
停止します。
[ ビット 3] INTE
このビットは , 割込み要求許可ビットです。INTE ビットが "1" のとき , UF ビット
が "1" になると割込み要求を発生します。
"0" のときは , 割込み要求を発生しません。
[ ビット 2] UF
このビットは , タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へ
のアンダフローにより"1"にセットされます。"0"の書込みによってクリアされます。
このビットに対して "1" の書込みは , 意味がありません。リードモディファイライ
ト系命令における読出し時には , "1" が読み出されます。
[ ビット 1] CNTE
このビットは , タイマのカウントイネーブルビットです。このビットに "1" を書き
込むと , 起動トリガ待ち状態になります。このビットへ "0" を書き込むと , カウント
動作は停止します。
[ ビット 0] TRG
このビットは , ソフトウェアトリガビットです。"1" の書込みによりソフトウェアト
リガがかかり , リロードレジスタの内容をカウンタへロードして , カウント動作を
開始します。
このビットに対して "0" の書込みは , 意味がありません。読出し値は , 常に "0" です。
このレジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0
のときには , 何も起こりません。
247
第 6 章 16 ビットリロードタイマ
6.2.2
16 ビットタイマレジスタ (TMR)
16 ビットタイマレジスタ (TMR) は , 16 ビットタイマのカウント値を読み出すこと
ができるレジスタです。初期値は不定です。
このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットタイマレジスタ (TMR) のビット構成
図 6.2-3 に , 16 ビットタイマレジスタ (TMR) のビット構成を示します。
図 6.2-3 16 ビットタイマレジスタ (TMR) のビット構成
15
0
TMR
アドレス: 00004AH
000052H
00005AH
初期値
248
∼
∼
∼
∼
R
R
R
R
・・・
R
R
R
R
×
×
×
×
・・・
×
×
×
×
第 6 章 16 ビットリロードタイマ
6.2.3
16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタ (TMRLR) は , カウントの初期値を保持するレジスタで
す。初期値は不定です。
このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットリロードレジスタ (TMRLR) のビット構成
図 6.2-4 に , 16 ビットリロードレジスタ (TMRLR) のビット構成を示します。
図 6.2-4 16 ビットリロードレジスタ (TMRLR) のビット構成
15
0
TMRLR
アドレス: 000048H
000050H
000058H
初期値
∼
∼
∼
∼
W
W
W
W
・・・
W
W
W
W
×
×
×
×
・・・
×
×
×
×
249
第 6 章 16 ビットリロードタイマ
6.3
16 ビットリロードタイマの動作
16 ビットリロードタイマの以下の動作について説明します。
• 内部クロック動作
• アンダフロー動作
• 入力端子機能の動作
• 出力端子機能の動作
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ
ンクロックの 2, 8, 32 分周のクロックから選択することができます。
外部入力端子は , レジスタの設定によりトリガ入力またはゲート入力に使用すること
ができます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビット
によるトリガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常
に有効です。
カウンタの起動および動作について , 図 6.3-1 に示します。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時間がかかります。
図 6.3-1 カウンタの起動および動作
カウントクロック
カウンタ
リロードデータ
-1
-1
-1
データロード
CNTE(レジスタ)
TRG(レジスタ)
T
■ アンダフロー動作
カウンタの値が 0000H から FFFFH になる場合をアンダフローとしています。したがっ
て , 〔リロードレジスタの設定値 +1〕カウントでアンダフローが発生することになり
ます。
アンダフロー発生時にコントロールステータスレジスタ (TMCSR) の RELD ビットが
"1" のとき 16 ビットリロードレジスタ (TMRLR) の内容をカウンタへロードして , カウ
250
第 6 章 16 ビットリロードタイマ
ント動作を継続します。RELD ビットが "0" のとき , カウンタは FFFFH で停止します。
アンダフローによりコントロールステータスレジスタ (TMCSR) の UF ビットがセット
され , INTE ビットが "1" のとき , 割込み要求を発生します。
アンダフロー動作のタイミングチャートを , 図 6.3-2 に示します。
図 6.3-2 アンダフロー動作のタイミングチャート
〔RELD=1〕の場合
カウントクロック
カウンタ
0000H
リロードデータ
-1
-1
-1
データロード
アンダフローセット
〔RELD=0〕の場合
カウントクロック
カウンタ
0000H
FFFFH
アンダフローセット
■ 入力端子機能の動作 ( 内部クロックモード時 )
クロックソースとして内部クロックを選択した場合 , TTG 端子はトリガ入力または
ゲート入力として使用することができます。
● トリガ入力の動作
トリガ入力として使用した場合, 有効エッジが入力されると, 16ビットリロードレジス
タ (TMRLR) の内容をカウンタにロードして内部プリスケーラをクリアした後 , カウン
ト動作を開始します。TTG は , 2T (T は周辺系クロックマシンサイクル ) 以上のパルス
を入力してください。
トリガ入力動作のタイミングチャートを , 図 6.3-3 に示します。
251
第 6 章 16 ビットリロードタイマ
図 6.3-3 トリガ入力動作のタイミングチャート
カウントクロック
TTG
立上りエッジ検出時
プリスケーラクリア
カウンタ
-1
リロードデータ
-1
-1
-1
ロード
2T~
2.5T
● ゲート入力の動作
ゲート入力として使用する場合 , コントロールステータスレジスタ (TMCSR) の MOD0
ビットによって設定される有効レベルが , TTG 端子から入力されている間のみカウン
トをします。このときカウントクロックは , 止まらずに動き続けます。ゲートモード時
のソフトウェアトリガは , ゲートレベルにかかわらず可能です。TTG 端子のパルス幅
は , 2T (T は周辺系クロックマシンサイクル ) 以上にしてください。
ゲート入力動作のタイミングチャートを , 図 6.3-4 に示します。
図 6.3-4 ゲート入力動作のタイミングチャート
カウントクロック
TTG
MOD0=‘1'とした場合(入力‘H'の間カウント)
カウンタ
-1
-1
-1
■ 外部イベントカウント動作
外部クロックをセレクトすると , TTG 端子は外部イベント入力端子となり , レジスタで
設定された有効エッジをカウントします。TTG 端子のパルス幅は , 2T (T は周辺系ク
ロックマシンサイクル ) 以上にしてください。
■ 出力端子機能の動作
TOUT 端子は , リロードモード時はアンダフローにより反転するトグル出力として , ワ
ンショットモード時はカウント中を示すパルス出力として機能します。出力極性は , コ
ン ト ロ ー ル ス テ ー タ ス レ ジ ス タ (TMCSR) の OUTL ビ ッ ト に よ り 設 定 で き ま す。
OUTL=0 の場合トグル出力は初期値が "0" で , ワンショットパルス出力は , カウント中
252
第 6 章 16 ビットリロードタイマ
"1" を出力します。OUTL=1 にすると出力波形は , 反転します。
図 6.3-5 に , 出力端子機能動作のタイミングチャートを示します。
図 6.3-5 出力端子機能動作のタイミングチャート
[RELD=1, OUTL=0] の場合
カウント開始
アンダフロー
OUTL=1のときは反転
TOUT
汎用ポート
CNTE
起動トリガ
[RELD=0, OUTL=0] の場合
アンダフロー
OUTL=1で反転
TOUT
汎用ポート
CNTE
起動トリガ
起動トリガ待ち状態
● その他の動作
16 ビットリロードタイマの ch0, ch1 は , その割込み要求信号で DMA 転送を起動するこ
とが可能です。
DMA コントローラは , 転送要求の受付けと同時にリロードタイマの割込みフラグをク
リアします。
割込み要求信号による DMA 転送起動は使用できません (MB91306R/307R のみ ) 。
253
第 6 章 16 ビットリロードタイマ
6.4
カウンタの動作状態
カウンタの状態は , コントロールステータスレジスタ (TMCSR) の CNTE ビットと
内部信号の WAIT 信号によって決まります。設定可能な状態として CNTE=0,
WAIT=1 の停止状態 (STOP 状態 ) , CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT
状態 ) , CNTE=1, WAIT=0 の動作状態 (RUN 状態 ) があります。
■ カウンタの動作状態
各状態の遷移を , 図 6.4-1 に示します。
図 6.4-1 カウンタの状態遷移
ハードウェアによる状態遷移
リセット
CNTE=’0’
STOP
CNTE=0, WAIT=1
T1:入力禁止
T0:汎用ポート
カウンタ:停止時の値を保持
リセット直後は不定
CNTE=’1’
TRG=’0’
CNTE=1, WAIT=1
WAIT
T1:トリガ入力のみ有効
T0:初期値出力
カウンタ:停止時の値を保持
リセット直後ロードするまで
は不定
CNTE=1, WAIT=0
RUN
T1:T1として機能
T0:T0として機能
カウンタ:動作
TRG=’1’
CNTE=1, WAIT=0
LOAD
リロードレジスタの内容を
TINからトリガ
カウンタへロード
254
CNTE=’0’
CNTE=’1’
TRG=’1’
RELD・UF
TRG=’1’
レジスタアクセスによる状態遷移
RELD・UF
ロード終了
第 6 章 16 ビットリロードタイマ
6.5
16 ビットリロードタイマの使用上の注意
16 ビットリロードタイマを使用する上で , 注意しなければならない事項について説
明します。
■ 使用上の注意事項
● 内部プリスケーラ
内部プリスケーラは , コントロールステータスレジスタ (TMCSR) のビット 1 ( タイマ
許可 :CNTE) が "1" に設定されている状態で , トリガ ( ソフトウェアトリガまたは外部
トリガ ) がかけられることにより動作可能となります。
ゲートカウントモードのみで使用する場合でも, 有効ゲートレベル入力前に必ず1度ト
リガをかけてください。
CNTE を設定するときに , TMCSR レジスタのビット 0 (TRG) に "1" を書き込むことを
推奨します。
● 割込み要求フラグのセットとクリアのタイミング
割込み要求フラグをセットするタイミングとクリアタイミングが重複した場合には ,
フラグのセットが優先し , クリア動作は無効となります。
● 16 ビットタイマレジスタ (TMR) /16 ビットリロードレジスタ (TMRLR)
16ビットタイマレジスタへの書込みと16ビットリロードレジスタへリロードのタイミ
ングが重なった場合には , 旧データがカウンタにロードされます。新データがカウンタ
にロードされるのは , 次のリロードのときになります。
● 16 ビットタイマレジスタ (TMR)
16ビットタイマレジスタは, ロードとカウントのタイミングが重なった場合には, ロー
ド ( リロード ) 動作の方が優先されます。
255
第 6 章 16 ビットリロードタイマ
256
第7章
U-TIMER
この章では , U-TIMER の概要 , レジスタの構成 , 機
能および動作について説明します。
7.1 U-TIMER の概要
7.2 U-TIMER のレジスタ
7.3 U-TIMER の動作
257
第 7 章 U-TIMER
7.1
U-TIMER の概要
U-TIMER (16 bit timer for UART baud rate generation) の概要とブロックダイヤグ
ラムを示します。
■ U-TIMER の概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動
作周波数と , U-TIMER のリロード値の組合せで任意のボーレートを設定できます。
また , カウントアンダフローで割込みを発生するので , インターバルタイマとしても使
用できます。
MB91307 シリーズは , U-TIMER を 3 チャネル内蔵しています。インターバルタイマと
して使用する場合 2 組の U-TIMER をカスケードして使用でき , 最大 232 × φ のインター
バルをカウントできます。カスケード接続できる組合せは , ch0 と ch1 および ch0 と ch2
のみです。
■ ブロックダイヤグラム
図 7.1-1 U-TIMER のブロックダイヤグラム
0
15
UTIMR(リロードレジスタ)
load
15
0
UTIM(timer)
clock
underflow
φ
(周辺系クロック)
MUX
Channel 0
のみ
under flow U-TIMER 1
258
control
f.f.
to UART
第 7 章 U-TIMER
7.2
U-TIMER のレジスタ
U-TIMER で使用するレジスタの構成および機能について説明します。
■ U-TIMER のレジスタ一覧
図 7.2-1 に , U-TIMER のレジスタ一覧を示します。
図 7.2-1 U-TIMER のレジスタ一覧
15
8 7
UTIM
UTIMR
0
(R)
(W)
(R/W)
UTIMC
■ U-TIMER (UTIM)
図 7.2-2 に , U-TIMER (UTIM) のビット構成を示します。
図 7.2-2 U-TIMER (UTIM) のビット構成
ch0 アドレス :0000 0064H
15
b15
14
b14
2
b2
1
b1
0
b0
R アクセス
0 初期値
ch1 アドレス :0000 006CH
ch2 アドレス :0000 0074H
UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。
■ リロードレジスタ (UTIMR)
図 7.2-3 に , リロードレジスタ (UTIMR) のビット構成を示します。
図 7.2-3 リロードレジスタ (UTIMR) のビット構成
ch0 アドレス :0000 0064H
15
b15
14
b14
ch1 アドレス :0000 006CH
ch2 アドレス :0000 0074H
2
b2
1
b1
0
b0
W アクセス
0 初期値
UTIMR は , UTIM がアンダフローしたときに UTIM にリロードされる値を格納するレ
ジスタです。
16 ビット転送命令でアクセスしてください。
259
第 7 章 U-TIMER
■ U-TIMER コントロールレジスタ (UTIMC)
図 7.2-4 に , U-TIMER コントロールレジスタ (UTIMC) のビット構成を示します。
図 7.2-4 U-TIMER コントロールレジスタ (UTIMC) のビット構成
7
UCC1
6
5
―
―
4
3
2
1
0
UTIE UNDR CLKS UTST UTCR
ch0 アドレス :0000 0067H
ch1 アドレス :0000 006FH
R/W
R/W
R/W
R/W
R/W
R/W
ch2 アドレス :0000 0077H
0
0
0
0
0
1
アクセス
初期値
UTIMC は , U-TIMER の動作を制御します。
以下に , U-TIMER コントロールレジスタ (UTIMC) の各ビットの機能を説明します。
[ ビット 7] UCC1 (U-timer Count Control 1)
このビットは , U-TIMER のカウント方法を制御します。
UCC1
動 作
0
通常動作 α=2n+2 〔初期値〕
1
+1 モード α=2n+3
( 注意事項 )・n は UTIMR の設定値
・α は UART に対する出力クロックの周期
U-TIMER は , UART に対して通常の 2 (n+1) の周期のクロックのほかに奇数分周を
設定できます。
UCC1 を 1 に設定すると , 2n+3 の周期を発生します。
設定例 : 1.UTIMR=5, UCC1=0 ──→ 発生周期 =2n+2= 12 サイクル
2.UTIMR=25, UCC1=1 ──→ 発生周期 =2n+3= 53 サイクル
3.UTIMR=60, UCC1=0 ──→ 発生周期 =2n+2=122 サイクル
U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し
てください。
[ ビット 6, ビット 5] (reserved)
このビットは , 予約ビットです。
[ ビット 4] UTIE (U-TIMER Interrupt Enable)
このビットは , U-TIMER のアンダフローによる割込み許可ビットです。
UTIE
260
動 作
0
割込み禁止
1
割込み許可
〔初期値〕
第 7 章 U-TIMER
[ ビット 3] UNDR (UNDeR flow flag)
このビットは , アンダフローが発生したことを示すフラグです。
ビット 4 の UTIE ビットが "1" のときに UNDR ビットがセットされると , アンダフ
ロー割込みが発生します。UNDR ビットは , リセットまたは "0" 書込みによりクリ
アされます。
リードモディファイライト系命令の読出し時は , 常に "1" が読み出されます。
また , UNDR ビットに対する "1" 書込みは無効です。
[ ビット 2] CLKS (clock select)
このビットは , U-TIMER の ch0 と ch1 のカスケード指定ビットです。
CLKS
動 作
0
クロックソースは周辺系クロック (φ) 〔初期値〕
1
U-TIMER ソースクロックタイミングとして , ch0 のアンダフロー信
号を使用
CLKS は ch1, ch2 でのみ有効です。ch0 では常に "0" にしてください。
φ( 周辺系クロック = clkp) は , ギアの設定により周期が変わります。
[ ビット 1] UTST (U-TIMER STart)
このビットは , U-TIMER の動作許可ビットです。
UTST
動 作
0
停止。動作中でも "0" の書込みで停止します。〔初期値〕
1
動作中に "1" を書き込んでも動作を続行します。
[ ビット 0] UTCR (U-TIMER CleaR)
UTCRに"0"を書き込むと, U-TIMERは0000H にクリアされます (f.f.も"0"にクリア) 。
このビットは , 常に "1" が読み出されます。
■ U-TIMER コントロールレジスタ (UTIMC) 使用上の注意事項
• ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリ
ロードします。
• ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートす
ると , カウンタを "0" にクリアして , 直後のカウントダウンでアンダフローが発生し
ます。
• 動作中にクリアビット UTCR をアサートすると , カウンタも "0" にクリアされます。
このため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART やカス
ケートモードの上位側の U-TIMER が誤動作する可能性があります。出力クロック
を使用している場合には , 動作中にクリアビットによってクリアしないでくださ
い。
261
第 7 章 U-TIMER
• カスケードモードで , 下位側の UTIMR ( リロ - ドレジスタ ) に "0" または "1" をセッ
トすると正しくカウントされません。
• U-TIMER コントロールレジスタのビット 1 (U-TIMER スタートビット :UTST) およ
びビット 0 (U-TIMER のクリアビット :UTCR) をタイマ停止状態で同時にアサート
すると , クリアした後のカウンタロードのタイミングで同レジスタのビット 3 ( アン
ダフローフラグ : UNDR) がセットされます。また , 内部ボーレートクロックは , 同
タイミングで "H" レベルになります。
• 割込み要求セットタイミングとクリアタイミングが重なった場合には , フラグセッ
トが優先され , クリア動作は無効となります。
• ch0 をカスケードモードで使用しない場合や本モジュールを単にタイマ機能として
使用する場合は, U-TIMERコントロールレジスタのビット2 (基準クロック選択ビッ
ト : CLKS) には常に "0" を書き込んでください。また , CLKS ビットの設定変更は ,
本モジュールが動作停止の状態で行ってください。
• U-TIMER リロードレジスタへの書込みとリロードのタイミングが重なった場合には ,
旧データがカウンタにロードされます。新データがカウンタにロードされるのは , 次
のリロードのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重なった場合には , タイ
マクリアが最優先されます。
262
第 7 章 U-TIMER
7.3
U-TIMER の動作
U-TIMER のボーレートの計算と , カスケードモードのタイミングを示します。
■ ボーレートの計算
UART は , 対応する U-TIMER (U-TIMER0 → UART0, U-TIMER1 → UART1) のアンダフ
ローフリップフロップ ( ブロックダイヤグラム中の f.f.) をボーレート用クロックソー
スとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 16 分周して使用します。
[UCC1=0 の場合 ]
φ
bps =
(2n+2) × 16
n :UTIMR ( リロード値 )
φ : 周辺系マシンクロック周波数
[UCC1=1 の場合 ]
φ
bps =
( ギアにより変動 )
(2n+3) × 16
最大 bps
20MHz 312500bps, 25MHz 390625bps
● CLK 同期モード
[UCC1=0 の場合 ]
bps =
φ
(2n+2)
n :UTIMR ( リロード値 )
φ : 周辺系マシンクロック周波数
263
第 7 章 U-TIMER
[UCC1=1 の場合 ]
bps =
φ
( ギアにより変動 )
(2n+3)
最大 bps
20MHz 5000000bps, 25MHz 6250000bps
■ カスケードモード
U-TIMER ch0 と ch1 は , カスケードモードで使用できます。
UTIMR ch0 を "0002" に , UTIMR ch1 を "0100" に設定した場合のタイミングチャート例
を , 図 7.3-1 に示します。
図 7.3-1 カスケードモードのタイミングチャート
φ
UTIM ch.0
01 00 02 01 00 02 01 00 02 01 00 02 01 00 02 01 00 02 01 00
f.f. ch.0
UTIM ch.1
f.f. ch.1
264
0002
0001
0000
0100
第8章
外部割込み /NMI 制御部
この章では , 外部割込み /NMI 制御部の概要 , レジ
スタの構成 / 機能および動作について説明します。
8.1 外部割込み /NMI 制御部の概要
8.2 外部割込み /NMI 制御部のレジスタ
8.3 外部割込み /NMI 制御部の動作
265
第 8 章 外部割込み /NMI 制御部
8.1
外部割込み /NMI 制御部の概要
外部割込み制御部は , NMI および INT0 ∼ INT7 に入力される外部割込み要求の制御
を行うブロックです。
検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下りエッジ " から選
択できます (NMI 以外 ) 。
■ 外部割込み /NMI 制御部のブロックダイヤグラム
図 8.1-1 に , 外部割込み /NMI 制御部のブロックダイヤグラムを示します。
図 8.1-1 外部割込み /NMI 制御部のブロックダイヤグラム
R-bus
8
割込み
要求
割込み許可レジスタ
9
8
8
266
ゲート
要因 F/F
割込み要因レジスタ
要求レベル設定レジスタ
エッジ検出回路
9
INT0~7
NMI
第 8 章 外部割込み /NMI 制御部
8.2
外部割込み /NMI 制御部のレジスタ
外部割込み /NMI 制御部で使用するレジスタの構成および機能について説明します。
■ 外部割込み /NMI 制御部のレジスタ一覧
図 8.2-1 に , 外部割込み /NMI 制御部のレジスタ一覧を示します。
図 8.2-1 外部割込み /NMI 制御部のレジスタ一覧
外部割込み許可レジスタ (ENIR)
ビット
7
EN7
6
EN6
5
EN5
4
EN4
3
EN3
2
EN2
1
EN1
0
EN0
13
ER5
12
ER4
11
ER3
10
ER2
9
ER1
8
ER0
外部割込み要因レジスタ (EIRR)
ビット
15
ER7
14
ER6
外部割込み要求レベル設定レジスタ (ELVR)
ビット
15
LB7
14
LA7
13
LB6
12
LA6
11
LB5
10
LA5
9
LB4
8
LA4
ビット
7
LB3
6
LA3
5
LB2
4
LA2
3
LB1
2
LA1
1
LB0
0
LA0
267
第 8 章 外部割込み /NMI 制御部
外部割込み許可レジスタ (ENIR)
8.2.1
外部割込み許可レジスタ (ENIR) は , 外部割込み要求出力のマスク制御を行います。
■ 外部割込み許可レジスタ (ENIR:ENable Interrupt request Register)
図 8.2-2 に , 外部割込み許可レジスタ (ENIR) のビット構成を示します。
図 8.2-2 外部割込み許可レジスタ (ENIR) のビット構成
7
6
5
4
3
2
1
0
初期値
ENIR アドレス : 000041H EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 00000000
ビット
(R/W)
このレジスタの "1" が書き込まれたビットに対応する割込み要求出力は許可され (INT0
の許可を EN0 が制御 ) , 割込みコントローラに対して割込み要求が出力されます。"0"
が書き込まれたビットに対応する端子は割込み要因を保持しますが , 割込みコント
ローラに対しては要求を発生しません。
<注意事項>
NMI に対するマスクビットは , 存在しません。
268
第 8 章 外部割込み /NMI 制御部
外部割込み要因レジスタ (EIRR)
8.2.2
外部割込み要因レジスタ (EIRR) のビット構成と機能を説明します。
■ 外部割込み要因レジスタ (EIRR:External Interrupt Request Register)
図 8.2-3 に , 外部割込み要因レジスタ (EIRR) のビット構成を示します。
図 8.2-3 外部割込み要因レジスタ (EIRR) のビット構成
15 14 13 12 11 10
9
8
初期値
EIRR アドレス : 000040H ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 00000000
ビット
(R/W)
EIRR は , 読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの
要求を示すフリップフロップ (NMI フラグ ) の内容をクリアするレジスタです。この
EIRR レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子に外
部割込み要求があることを示します。
また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク
リアされます。
"1" の書込みは無効です。
リードモディファイライト系命令の読出し時には , "1" が読み出されます。
<注意事項>
MI フラグは , ユーザから読出し / 書込みできません。
NMI フラグについては , 「8.3 外部割込み /NMI 制御部の動作」の「■ NMI」を参照して
ください。
269
第 8 章 外部割込み /NMI 制御部
8.2.3
外部割込み要求レベル設定レジスタ (ELVR)
外部割込み要求レベル設定レジスタ (ELVR) のビット構成と機能を説明します。
■ 外部割込み要求レベル設定レジスタ (ELVR:External LeVel Register)
図 8.2-4 に , 外部割込み要求レベル設定レジスタ (ELVR) のビット構成を示します。
図 8.2-4 外部割込み要求レベル設定レジスタ (ELVR) のビット構成
15 14 13 12 11 10
9
8
初期値
ELVR アドレス : 000042H LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 00000000
ビット
7
6
5
4
3
2
1
0
初期値
ELVR アドレス : 000043H LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 00000000
ビット
(R/W)
外部割込み要求レベル設定レジスタ (ELVR) は , 要求検出の選択を行うレジスタです。
INT0 ∼ INT7 に 2 ビットずつが割り当てられていて , 設定内容は表 8.2-1 のようになっ
ています。要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティ
ブレベルならば , 該当するビットは再びセットされます。
表 8.2-1 LBx, LAx ビットの設定内容
LBx
LAx
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
動 作
NMI は常にその立下りエッジが検出されます ( ストップ時を除く ) 。
ストップ時は , "L" レベル検出となります。
270
第 8 章 外部割込み /NMI 制御部
8.3
外部割込み /NMI 制御部の動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された
要求が入力されると , 本モジュールは割込みコントローラに対して割込み要求信号
を発生します。
■ 外部割込みの動作
割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本リソース
からの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。
図 8.3-1 に , 外部割込みの動作を示します。
図 8.3-1 外部割込みの動作
外部割込み
リソース要求
ELVR
割込みコントローラ
ICRyy
EIRR
ENIR
CPU
IL
CMP
ICRxx
CMP
ILM
要因
■ スタンバイからの復帰
クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要
求を "H" レベル要求としてください。"L" レベル要求では誤動作を起こす可能性があり
ます。
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
■ 外部割込みの動作手順
外部割込み部の内部に存在するレジスタの設定は , 次の手順で行ってください。
1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに設
定する。
2) 許可レジスタの対象となるビットをディセーブル状態にする。
3) 要求レベル設定レジスタの対象となるビットを設定する。
4) 要因レジスタの対象となるビットをクリアする。
5) 許可レジスタの対象となるビットをイネーブル状態にする。
ただし , 4) と 5) は , 16 ビットデータによる同時書込みができます。
本モジュール内のレジスタを設定するときには , 必ず許可レジスタをディセーブル状
態に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前
に必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込
み許可状態時に誤って割込み要因が起こってしまうことを避けるためです。
271
第 8 章 外部割込み /NMI 制御部
<注意事項>
外部割込みをスタンバイからの復帰に使う場合 , ch0 ∼ ch7 が使用できます。スタンバイ
に入る前に , 必要に応じて外部割込みの設定をしてください。
■ 外部割込み要求レベル
要求レベルがエッジ要求の場合 , エッジがあったことを検出するためには , パルス幅は
最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
要求入力レベルがレベル設定の場合 , 外部から要求入力が入ってその後取り下げられ
ても , 内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティブ
のままです。
割込みコントローラへの要求を取り下げるには , 外部割込み要因レジスタをクリアす
る必要があります。
図 8.3-2 にレベル設定時の外部割込み要因レジスタのクリアを , 図 8.3-3 に割込み許可
時の割込み要因と割込みコントローラへの割込み要求を示します。
図 8.3-2 レベル設定時の外部割込み要因レジスタのクリア
割込み入力
レベル検出
外部割込み要因レジスタ
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 8.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
"H"レベル
割込み入力
割込みコントローラ
への割込み要求
272
外部割込み要因レジスタのクリアによってinactiveとなる
第 8 章 外部割込み /NMI 制御部
■ NMI
NMI は , ユーザ割込みの中で最高レベルの割込みで , マスクすることはできません。例
外として , リセット直後から ILM を設定するまではマスクされます。
NMI の受付けは , 以下の条件で行われます。
• 通常時 : 立下りエッジ
• STOP 時 :"L" レベル
NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力さ
れるとストップ状態が解除され , 発振安定待ち時間が取られます。この発振安定待ち時
間内に端子を "H" レベルに戻すと , NMI 要因がなくなってしまい , 動作再開後 NMI 処
理が行われません。ストップ状態解除後に NMI 処理を行いたい場合は , NMI 端子を "L"
レベルのままにして , NMI 処理ルーチン内で "H" レベルに戻すようにしてください。
NMI 要求検出部には NMI フラグがあり , NMI 要求によりセットされて , NMI 自身の割
込みの受付けまたはリセットでのみクリアされます。なお , このビットは読出し / 書込
みできません。
図 8.3-4 に , NMI 要求検出部を示します。
図 8.3-4 NMI 要求検出部
(NMIフラグ)
0
NMI要求
Q SX
(ストップ解除)
R
立下り
エッジ検出
NMI
1
STOP
φ
clear (RST,interrupt acknowledge)
273
第 8 章 外部割込み /NMI 制御部
274
第9章
遅延割込みモジュール
この章では , 遅延割込みモジュールの機能と動作に
ついて説明します。
9.1 遅延割込みモジュールの概要
9.2 遅延割込みモジュールのレジスタ
9.3 遅延割込みモジュールの動作
275
第 9 章 遅延割込みモジュール
9.1
遅延割込みモジュールの概要
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで
す。本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発
生 / 取消しを行うことができます。
■ 遅延割込みモジュールのブロックダイヤグラム
図 9.1-1 に , 遅延割込みモジュールのブロックダイヤグラムを示します。
図 9.1-1 遅延割込みモジュールのブロックダイヤグラム
R-bus
割込み要求
276
DLYI
第 9 章 遅延割込みモジュール
9.2
遅延割込みモジュールのレジスタ
遅延割込みモジュールで使用するレジスタの構成および機能について説明します。
■ 遅延割込みモジュールのレジスタ
遅延割込みモジュールには , 遅延割込み制御レジスタ (DICR) があります。
図 9.2-1 に , 遅延割込み制御レジスタ (DICR) の構成を示します。
図 9.2-1 遅延割込み制御レジスタ (DICR) の構成
ビット
7
6
5
4
3
2
1
アドレス : 00000044H
―
―
―
―
―
―
―
0
DLYI
DICR
(R/W)
■ 遅延割込み制御レジスタ (DICR)
遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) は , 遅延割込みを制
御するレジスタです。
図 9.2-2 に , 遅延割込み制御レジスタ (DICR) のビット構成を示します。
図 9.2-2 遅延割込み制御レジスタ (DICR) のビット構成。
ビット
7
―
6
―
5
―
4
―
3
―
2
―
1
―
0
DLYI
初期値
-------0B
(R/W)
以下に , 遅延割込み制御レジスタ (DICR) のビット機能を説明します。
[ ビット 0] DLYI
DLYI
説 明
0
遅延割込み要因の解除・要求なし 〔初期値〕
1
遅延割込み要因の発生
このビットにより , 該当する割込み要因の発生 / 解除を制御します。
277
第 9 章 遅延割込みモジュール
9.3
遅延割込みモジュールの動作
遅延割込みは , タスク切換え用の割込みを発生するものです。この機能を使用する
ことにより , ソフトウェアで CPU に対して割込み要求の発生 / 取消しを行うことが
できます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
MB91307 シリーズでは , 遅延割込みを割込み番号 63 (3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことによって , 遅延割込み要因が発生します。また , "0" を
書き込むことによって , 遅延割込み要因を解除します。
このビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルー
チンの中でこのビットをクリアし , 合わせてタスクの切換えを行うようにしてくださ
い。
278
第 10 章
割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタ
の構成 / 機能 , 割込みコントローラの動作および
ホールドリクエスト取下げ要求機能の使用例につ
いて説明します。
10.1 割込みコントローラの概要
10.2 割込みコントローラのレジスタ
10.3 割込みコントローラの動作
10.4 ホールドリクエスト取下げ要求機能 (HRCR) の使用例
279
第 10 章 割込みコントローラ
10.1
割込みコントローラの概要
割込みコントローラは , 割込み受付け / 調停処理をつかさどります。
■ 割込みコントローラのハードウェア構成
割込みコントローラは , 以下のものから構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
割込みコントローラには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111" 以外の割込み発生によるストップモードからの復帰指
示 (CPU へ )
• バスマスタへのホールドリクエスト取下げ要求発生
280
第 10 章 割込みコントローラ
■ ブロックダイヤグラム
図 10.1-1 に , 割込みコントローラのブロックダイヤグラムを示します。
図 10.1-1 割込みコントローラのブロックダイヤグラム
UNMI
WAKEUP (LEVEL≠11111のとき"1")
優先度判定
5
/
NMI
処理
LEVEL4~0
LEVEL,
VECTOR
発生
LEVEL判定
RI00
・
・
・
RI47
(DLYIRQ)
ICR00
・
・
・
ICR47
VECTOR
判定
6
/
HLDREQ
取下げ
要求
MHALTI
VCT5~0
R-bus
281
第 10 章 割込みコントローラ
10.2
割込みコントローラのレジスタ
割込みコントローラで使用するレジスタの構成および機能について説明します。
■ 割込みコントローラのレジスタ一覧
図 10.2-1 に , 割込みコントローラのレジスタ一覧を示します。
図 10.2-1 割込みコントローラのレジスタ一覧
ビット
7
6
5
4
3
2
1
0
アドレス : 00000440H
―
―
―
初期値
ICR4 ICR3 ICR2 ICR1 ICR0 ICR00
アドレス : 00000441H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR01
アドレス : 00000442H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR02
アドレス : 00000443H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR03
アドレス : 00000444H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR04
アドレス : 00000445H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR05
アドレス : 00000446H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR06
アドレス : 00000447H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR07
アドレス : 00000448H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR08
アドレス : 00000449H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR09
アドレス : 0000044AH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR10
アドレス : 0000044BH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR11
アドレス : 0000044CH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR12
アドレス : 0000044DH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR13
アドレス : 0000044EH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR14
アドレス : 0000044FH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR15
アドレス : 00000450H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR16
アドレス : 00000451H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR17
アドレス : 00000452H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR18
アドレス : 00000453H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR19
アドレス : 00000454H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR20
アドレス : 00000455H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR21
アドレス : 00000456H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR22
アドレス : 00000457H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR23
アドレス : 00000458H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR24
アドレス : 00000459H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR25
アドレス : 0000045AH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR26
アドレス : 0000045BH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR27
アドレス : 0000045CH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR28
R
R/W R/W R/W R/W
( 続く )
282
第 10 章 割込みコントローラ
( 続き )
ビット
7
6
5
アドレス : 0000045DH
―
―
―
4
3
2
1
0
初期値
ICR4 ICR3 ICR2 ICR1 ICR0 ICR29
アドレス : 0000045EH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR30
アドレス : 0000045FH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR31
アドレス : 00000460H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR32
アドレス : 00000461H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR33
アドレス : 00000462H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR34
アドレス : 00000463H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR35
アドレス : 00000464H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR36
アドレス : 00000465H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR37
アドレス : 00000466H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR38
アドレス : 00000467H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR39
アドレス : 00000468H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR40
アドレス : 00000469H
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR41
アドレス : 0000046AH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR42
アドレス : 0000046BH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR43
アドレス : 0000046CH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR44
アドレス : 0000046DH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR45
アドレス : 0000046EH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR46
アドレス : 0000046FH
―
―
―
ICR4 ICR3 ICR2 ICR1 ICR0 ICR47
R
R/W R/W R/W R/W
アドレス : 0000045H
MHALT1
R/W
LVL4 LVL3 LVL2 LVL1 LVL0 HRCL
R
R/W R/W R/W R/W
283
第 10 章 割込みコントローラ
10.2.1
割込み制御レジスタ (ICR)
割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応す
る割込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ (ICR)
割込み制御レジスタ (ICR:Interrupt Control Register) のビット構成を , 図 10.2-2 に示しま
す。
図 10.2-2 割込み制御レジスタ (ICR) のビット構成
ビット
7
6
5
―
―
―
4
3
2
1
0
初期値
ICR4 ICR3 ICR2 ICR1 ICR0 ---11111B
R
R/W R/W R/W R/W
以下に , 割込み制御レジスタ (ICR) の各ビットの機能を説明します。
[ ビット 4 ∼ビット 0] ICR4 ∼ ICR0
これらのビットは割込みレベル設定ビットで , 対応する割込み要求の割込みレベル
を指定します。
このレジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された )
レベルマスク値以上の場合は , CPU 側で割込み要求はマスクされます。
リセットにより , 11111B に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を , 表 10.2-1 に示しま
す。
284
第 10 章 割込みコントローラ
表 10.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応
ICR4
ICR3
ICR2
ICR1
ICR0
0
0
0
0
0
0
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最高レベル
1
0
0
0
1
17
(高)
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
1
1
1
1
1
31
割込みレベル
システム予約
(低)
割込み禁止
( 注意事項 ) ICR4 はシステムにより固定されているため , 本レジスタに ICR4 ビッ
トは存在しません。
285
第 10 章 割込みコントローラ
10.2.2
ホールドリクエスト取下げ要求レベル設定レジスタ
(HRCL)
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) は , ホールドリクエス
ト取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL)
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のビット構成を , 図 10.2-3 に
示します。
図 10.2-3 ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のビット構成
ビット
7
アドレス : 0000045H MHALT1
6
―
5
―
4
3
2
1
0
初期値
LVL4 LVL3 LVL2 LVL1 LVL0 0--11111B
R
R/W
R/W
R/W
R/W
以下に , ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) の各ビットの機
能を説明します。
[ ビット 7] MHALTI
このビットは , NMI の要求による DMA 転送抑止ビットです。
NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後
で通常の割込みルーチンと同様にクリアしてください。
[ ビット 4 ∼ビット 0] LVL4 ∼ LVL0
これらのビットは , バスマスタへのホールドリクエスト取下げ要求を出すための割
込みレベルを設定します。
HRCL レジスタに設定した割込みレベルより高いレベルを持つ割込み要求が発生し
た場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
286
第 10 章 割込みコントローラ
割込みコントローラの動作
10.3
割込みコントローラの動作として , 以下の項目について説明します。
• 優先順位判定
• NMI
• ホールドリクエスト取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
割込みコントローラでは , 同時に発生している割込み要因の中で最も優先度の高い要
因を選択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 以下のとおりです。
• NMI
• 以下の条件を満たす要因
- 割込みレベルの数値が "31" 以外 ("31" は割込み禁止 ) 。
- 割込みレベルの数値が最も小さい要因。
- その中で , 最も小さい割込み番号を持つ要因。
上記の判定基準により割込み要因が一つも選択されなかった場合は , 割込みレベルと
して 31 ("11111B") を出力します。そのときの割込み番号は不定です。
割込み要因と割込み番号 , 割込みレベルの関係を , 表 10.3-1 に示します。
表 10.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 4)
割込みレベル
オフセット
TBR
デフォルトの
アドレス
00
―
3FCH
000FFFFCH
1
01
―
3F8H
000FFFF8H
システム予約
2
02
―
3F4H
000FFFF4H
システム予約
3
03
―
3F0H
000FFFF0H
システム予約
4
04
―
3ECH
000FFFECH
システム予約
5
05
―
3E8H
000FFFE8H
システム予約
6
06
―
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
―
3E0H
000FFFE0H
コプロセッサエラートラップ
8
08
―
3DCH
000FFFDCH
INTE 命令
9
09
―
3D8H
000FFFD8H
割込み番号
割込み要因
10 進
16 進
リセット
0
モードベクタ
287
第 10 章 割込みコントローラ
表 10.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 4)
割込みレベル
オフセット
TBR
デフォルトの
アドレス
0A
―
3D4H
000FFFD4H
11
0B
―
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
―
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
―
3C8H
000FFFC8H
未定義命令例外
14
0E
―
3C4H
000FFFC4H
NMI 要求
15
0F
FH 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
UART1 ( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
UART2 ( 受信完了 )
29
1D
ICR13
388H
000FFF88H
UART0 ( 送信完了 )
30
1E
ICR14
384H
000FFF84H
UART1 ( 送信完了 )
31
1F
ICR15
380H
000FFF80H
UART2 ( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
DMAC0 ( 終了 , エラー )
33
21
ICR17
378H
000FFF78H
DMAC1 ( 終了 , エラー )
34
22
ICR18
374H
000FFF74H
DMAC2 ( 終了 , エラー )
35
23
ICR19
370H
000FFF70H
DMAC3 ( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
DMAC4 ( 終了 , エラー )
37
25
ICR21
368H
000FFF68H
割込み番号
割込み要因
10 進
16 進
命令ブレーク例外
10
オペランドブレークトラップ
288
第 10 章 割込みコントローラ
表 10.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 4)
割込みレベル
オフセット
TBR
デフォルトの
アドレス
26
ICR22
364H
000FFF64H
39
27
ICR23
360H
000FFF60H
システム予約
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
システム予約
42
2A
ICR26
354H
000FFF54H
システム予約
43
2B
ICR27
350H
000FFF50H
U-TIMER0
44
2C
ICR28
34CH
000FFF4CH
U-TIMER0
45
2D
ICR29
348H
000FFF48H
U-TIMER2
46
2E
ICR30
344H
000FFF44H
タイムベースタイマオーバフ
ロー
47
2F
ICR31
340H
000FFF40H
システム予約
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
340H
000FFF10H
システム予約
60
3C
ICR44
30CH
000FFF0CH
システム予約
61
3D
ICR45
308H
000FFF08H
システム予約
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
システム予約
(REALOS で使用 )
64
40
―
2FCH
000FFEFCH
割込み番号
割込み要因
10 進
16 進
A/D 変換終了
38
I2C
289
第 10 章 割込みコントローラ
表 10.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (4 / 4)
割込みレベル
オフセット
TBR
デフォルトの
アドレス
41
―
2F8H
000FFEF8H
66
42
―
2F4H
000FFEF4H
システム予約
67
43
―
2F0H
000FFEF0H
システム予約
68
44
―
2ECH
000FFEECH
システム予約
69
45
―
2E8H
000FFEE8H
システム予約
70
46
―
2E4H
000FFEE4H
システム予約
71
47
―
2E0H
000FFEE0H
システム予約
72
48
―
2DCH
000FFEDCH
システム予約
73
49
―
2D8H
000FFED8H
システム予約
74
4A
―
2D4H
000FFED4H
システム予約
75
4B
―
2D0H
000FFED0H
システム予約
76
4C
―
2CCH
000FFECCH
システム予約
77
4D
―
2C8H
000FFEC8H
システム予約
78
4E
―
2C4H
000FFEC4H
システム予約
79
4F
―
2C0H
000FFEC0H
80
∼
255
50
∼
FF
2BCH
000FFEBCH
INT 命令で使用
―
∼
000H
∼
000FFC00H
割込み番号
割込み要因
10 進
16 進
システム予約
(REALOS で使用 )
65
システム予約
290
第 10 章 割込みコントローラ
■ NMI
NMI (Non Maskable Interrupt) は , 割込みコントローラが取り扱う割込み要因の中では ,
最も優先順位が高くなっています。そのため , ほかの割込み要因と同時発生の場合は ,
常に NMI が選択されます。
• NMI が発生すると , CPU に対して次の情報を伝えます。
- 割込みレベル :15 ("01111B")
- 割込み番号 :15 ("0001111B")
• NMI 検出
NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュール
では NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。
• NMI による DMA 転送の抑止
NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送
が抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後で
MHALTI ビットを "0" にクリアしてください。
■ ホールドリクエスト取下げ要求 (HRLC:Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中に行いたい場合は , ホールドリクエスト
発生元においてリクエストを取り下げてもらう必要があります。この取下げ要求発生
の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより高いレベルの割込み要因が発生した場合
は , ホールドリクエスト取下げ要求を発生します。
• HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル →取下げ要求発生
• HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル →取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。
また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている
ため , 取下げ要求が有効になっています。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生することになります。
ホールドリクエスト取下げ要求発生となる割込みレベルの設定を , 表 10.3-2 に示しま
す。
291
第 10 章 割込みコントローラ
表 10.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
16
(NMI のみ )
17
割込みレベル 16
18
割込みレベル 16 ∼ 17
∼
∼
31
割込みレベル 16 ∼ 30
〔初期値〕
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値
に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111" 以外 ) が一つでも
発生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部は , ストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 CPU は命令を実行することになります。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 割込みコントローラ内のレジスタはアクセス可能です。
<注意事項>
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力を検出するように NMI を設定してください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺
の制御レジスタで割込みレベルを "11111" にしてください。
292
第 10 章 割込みコントローラ
10.4
ホールドリクエスト取下げ要求機能 (HRCR) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホール
ドリクエストを取り下げてもらってホールド状態を解除する必要があります。ここ
では , 割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち ,
CPU の優先動作を実現します。
■ 制御レジスタ
● HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール
HRCL レジスタに設定した割込みレベルより高いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベルを
設定します。
● ICR: 本モジュール
使用する割込み要因に対応する ICR に , HRCL レジスタよりも高いレベルを設定しま
す。
■ ハードウェア構成
各信号の流れは , 次のようになっています。
図 10.4-1 各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
I-UNIT
DHREQ
DMA
B-UNIT
CPU
(ICR)
(HRCL)
DHREQ:Dバスホールドリクエスト
DHACK:Dバスホールドアクノリッチ
IRQ:割込み要求
DHACK
MHALTI:ホールドリクエスト取下げ要求
293
第 10 章 割込みコントローラ
■ ホールドリクエスト取下げ要求シーケンス
ホールドリクエスト取下げ要求のタイミングチャートを , 図 10.4-2 に示します。
図 10.4-2 ホールドリクエスト取下げ要求のタイミングチャート
RUN
バスホールド
割込み処理
バスホールド
(DMA転送)
CPU
バスアクセス要求
割込みルーチンの例
①割込み要因クリア
DHREQ
~
DHACK
②RETI
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルよりも高いと DMA に対して MHALTI をアクティブにします。これによって
DMA はアクセス要求を取り下げ , CPU はホールド状態から復帰して割込み処理を行い
ます。
多重割込みの場合のタイミングチャートを , 図 10.4-3 に示します。
図 10.4-3 割込みレベル HRCL > a > b の場合
RUN
バスホールド
CPU
割込みI
割込み処理II
③
④
割込み処理I
①
②
バスホールド
(DMA転送)
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
割込みルーチンの例
① , ③割込み要因クリア
∼
② , ④ RETI
上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した
場合を示しています。HRCL レジスタに設定した割込みレベルより高い割込みレベル
が発生している間は , DHREQ はさがっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
294
第 11 章
A/D コンバータ
この章では , A/D コンバータの概要 , レジスタの構
成 / 機能および A/D コンバータの動作について説
明します。
11.1 A/D コンバータの概要
11.2 A/D コンバータのレジスタ
11.3 A/D コンバータの動作
11.4 変換データ保護機能
11.5 A/D コンバータ使用上の注意
295
第 11 章 A/D コンバータ
11.1
A/D コンバータの概要
A/D コンバータは , 逐次比較変換方式でアナログ入力電圧をデジタル値に変換するモ
ジュールです。
入力信号は , 4 チャネルのアナログ入力端子から選択し , 変換起動はソフトウェア ,
外部トリガ ( 立下りエッジ ) , リロードタイマ ( 立上りエッジ ) から選択できます。
■ A/D コンバータの特長
アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す
る機能をもち , 以下の特長をもっています。
• 最小変換時間 :5.4µs/ チャネル ( マシンクロック 33MHz 時 =CLKP)
• サンプルホールド回路内蔵
• 分解能 :10 ビット ( 精度 :8 ビット )
• アナログ入力は 4 チャネルからプログラムで選択
- シングル変換モード :1 チャネルを選択変換
- スキャン変換モード : 連続した複数のチャネルを変換。最大 4 チャネルプログラ
ム可能
- 連続変換モード
: 指定チャネルを繰り返し変換
- 停止変換モード
:1チャネルを変換したら一時停止して次の起動が掛かるまで待
機 ( 変換開始の同期が可能 )
• 割込みによる DMA 転送の起動が可能
• 起動要因は , ソフトウェア , 外部トリガ ( 立下りエッジ ) , リロードタイマ ( 立上り
エッジ ) から選択
296
第 11 章 A/D コンバータ
■ ブロックダイヤグラム
図 11.1-1 に , A/D コンバータのブロックダイヤグラムを示します。
図 11.1-1 A/D コンバータのブロックダイヤグラム
AVCC AVRH
AVSS
内部電圧発生器
逐次比較レジスタ
R―
入力スイッチ
サンプル&ホールド回路
データレジスタ(ADCR)
チャネルデコーダ
b
u
s
A/D制御ステータスレジスタ(ADCS)
タイミング発生回路
クロック(CLKP)
プリスケーラ
ATG(外部端子トリガ)
リロードタイマ ch1(内部接続)
297
第 11 章 A/D コンバータ
11.2
A/D コンバータのレジスタ
A/D コンバータで使用するレジスタの構成および機能について説明します。
■ A/D コンバータのレジスタ一覧
図 11.2-1 に , A/D コンバータのレジスタ一覧を示します。
図 11.2-1 A/D コンバータのレジスタ一覧
A/D 制御ステータスレジスタ (ADCS)
ビット
ビット
15
BUSY
7
MD1
14
INT
13
12
11
10
9
INTE PAUS STS1 STS0 STRT
8
―
6
5
4
3
2
1
0
MD2 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
データレジスタ (ADCR)
ビット
ビット
298
15
14
13
12
11
10
―
9
9
8
8
―
―
―
―
―
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
第 11 章 A/D コンバータ
11.2.1
A/D 制御ステータスレジスタ (ADCS)
A/D 制御ステータスレジスタ (ADCS) は , A/D コンバータの制御およびステータス
の表示を行います。
■ A/D 制御ステータスレジスタ (ADCS)
図 11.2-2 に , A/D 制御ステータスレジスタ (ADCS) のビット構成を示します。
図 11.2-2 A/D 制御ステータスレジスタ (ADCS) のビット構成
アドレス : 00003AH
15
BUSY
0
初期値→
ビット属性→ R/W
14
INT
0
R/W
7
MD1
0
初期値→
R/W
ビット属性→
6
5
4
3
2
1
0
MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
0
0
0
0
0
0
0
R/W R/W R/W R/W R/W R/W R/W
ビット
13
12
11
10
9
INTE PAUS STS1 STS0 STRT
0
0
0
0
0
R/W R/W R/W R/W R/W
8
―
0
R/W
<注意事項>
A/D 制御ステータスレジスタ (ADCS) は , A/D 変換動作中に書き換えないでください。
以下に , A/D 制御ステータスレジスタ (ADCS) の各ビットの機能を説明します。
[ ビット 15] BUSY (BUSY flag and stop)
読出し時と書込み時で , 以下のように機能が変わります。
•読出し時 : A/D コンバータ動作表示用のビットです。A/D 変換起動でセットされ ,
終了でクリアされます。
•書込み時 : A/D 動作中にこのビットに "0" を書き込むと , 強制的に動作を停止しま
す。連続 , 停止モード時の強制停止に利用します。
動作表示用のビットに "1" を書き込むことはできません。RMW 系命令では "1" が
読まれます。単発モードでは A/D 変換終了でクリアされます。連続 , 停止モードで
は "0" 書込みで停止するまでクリアされません。
リセット時 "0" に初期化されます。
強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1) 。
299
第 11 章 A/D コンバータ
[ ビット 14] INT (INTerrupt)
このビットは , データ表示ビットです。変換データが ADCR に書き込まれるとセッ
トされます。
INTE ( ビット 13) が "1" のときにこのビットがセットされると , 割込み要求が発生
します。また , DMA 転送の起動を選択している場合は , DMA が起動されます。"1"
書込みは意味を持ちません。
クリアは "0" 書込みと DMAC からのクリア信号で行われます。
<注意事項>
このビットの "0" 書込みによるクリアは , A/D 停止中に行ってください。リセット時 "0"
に初期化されます。
リードモディファイライト系命令の読出しでは , "1" が読み出されます。
[ ビット 13] INTE (INTerrupt Enable)
このビットは , 変換終了による割込みの許可 / 不許可を指定します。
・0: 割込みの禁止
・1: 割込みの許可
割込み要求発生で DMA 転送を起動するときは , このビットをセットしてください。
リセット時 "0" に初期化されます。
[ ビット 12] PAUS (A/D converter PAUSe)
このビットは , A/D 変換動作が一時的に停止した場合にセットされます。
A/D 変換結果を格納するレジスタが 1 つのため , 連続で変換した場合に変換結果を
DMA 転送しなければ前データが壊れてしまいます。これを保護するため , データレ
ジスタの内容を DMA 転送しなければ次の変換データが格納されないようになって
います。この間 A/D 変換動作は停止します。DMA 転送を終了すると A/D コンバー
タは変換を再開します ( 実際には , INT=0 で再開 ) 。
このビットは, 割込み許可時 (INTE=1) にのみ有効です 「11.4
(
変換データ保護機能」
を参照してください ) 。
リセット時 "0" に初期化されます。
[ ビット 11, ビット 10] STS1, STS0 (STart Source select)
これらのビットは , リセット時 "00" に初期化されます。これらのビットの設定によ
り , A/D 変換起動要因を選択します。表 11.2-1 に , A/D 変換起動要因の設定内容を
示します。
300
第 11 章 A/D コンバータ
表 11.2-1 A/D 変換起動要因の設定内容
STS1
STS0
0
0
ソフトウェア起動
0
1
外部端子トリガでの起動またはソフトウェア起動
1
0
リロードタイマでの起動またはソフトウェア起動
1
1
外部端子トリガ , リロードタイマでの起動またはソフト
ウェア起動
機 能
起動が兼用になっているモードでは , 最初に検出した要因で起動します。
<注意事項>
起動要因は書換えと同時に変わりますので , A/D 変換動作中に書き換えるときは注意して
ください。
• 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のときに本
ビットを書き換えて外部トリガ起動にすると, A/Dコンバータが起動する場合がありま
す。
• タイマ選択時は , リロードタイマの ch1 が選択されます。リロードタイマの出力レベ
ルが "H" のときに本ビットを書き換えてタイマ起動にすると A/D コンバータが起動す
る場合があります。
[ ビット 9] STRT (STaRT)
このビットに "1" を書き込むことにより , A/D コンバータを起動します。再起動を
かけるときは , 再び書き込んでください。停止モード時は , 動作機能上再起動はか
かりません。
リセット時に "0" に初期化されます。
強制停止とソフトウェア起動を同時に行わないでください (BUSY=0, STRT=1) 。
リードモディファイライト系の命令では "0" が読まれます。それ以外では "1" が読
まれます。
[ ビット 8] 試験用ビット
このビットは , 試験用ビットです。書込み時は "0" を書き込んでください。
[ ビット 7, ビット 6] MD1, MD0 (A/D converter MoDe set)
これらのビットは , 動作モードを選択します。
表 11.2-2 に , 動作モードの設定内容を示します。
301
第 11 章 A/D コンバータ
表 11.2-2 動作モードの設定内容
MD1
MD0
0
0
単発モード , 動作中の再起動はすべて可能
0
1
単発モード , 動作中の再起動は不可
1
0
連続モード , 動作中の再起動は不可
1
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" を書き込むことにより行われます。
• 単発 , 連続 , 停止の各モードの「再起動不可」はタイマ , 外部トリガおよびソフトウェ
アのすべての起動に適用されます。
[ ビット 5, ビット 4, ビット 3] ANS2, ANS1, ANS0 (ANalog Start channel set)
これらのビットにより , A/D 変換の開始チャネルを設定します。
A/D コンバータを起動すると , このビットで選択されたチャネルから A/D 変換を始
めます。
表 11.2-3 に , A/D 変換開始チャネルの設定内容を示します。
表 11.2-3 A/D 変換開始チャネルの設定内容
302
ANS2
ANS1
ANS0
開始チャネル
0
0
0
AN0
0
0
1
AN1
0
1
0
AN2
0
1
1
AN3
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
第 11 章 A/D コンバータ
表 11.2-3 A/D 変換開始チャネルの設定内容
ANS2
ANS1
ANS0
開始チャネル
1
1
1
設定禁止
・読出し時 : これらのビットは , A/D 変換中は変換チャネルが読まれます。A/D 起動
とともに更新されます。
停止中は前の変換チャネルが読まれます。
リセット時 "000" に初期化されます。
[ ビット 2, ビット 1, ビット 0] ANE2, ANE1, ANE0 (ANalog End channel set)
これらのビットにより , A/D 変換の終了チャネルを設定します。
表 11.2-4 に , A/D 変換終了チャネルの設定内容を示します。
表 11.2-4 A/D 変換終了チャネルの設定内容
ANE2
ANE1
ANE0
開始チャネル
0
0
0
AN0
0
0
1
AN1
0
1
0
AN2
0
1
1
AN3
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
1
1
1
設定禁止
・ANS2 ∼ ANS0 と同じチャネルを設定すると , 1 チャネル変換になります ( シング
ル変換 ) 。
・連続モード , 停止モードを設定している場合は , これらのビットによって設定され
たチャネルの変換が終わると , ANS2 ∼ ANS0 で設定された開始チャネルに戻り
ます。
・設定チャネルは , ANS ≦ ANE としてください。
・リセット時に "000" に初期化されます。
設定例
チャネル設定 ANS=1 チャネル , ANE=3 チャネルで単発モードのとき
動作 変換チャネル 1 チャネル → 2 チャネル → 3 チャネル
303
第 11 章 A/D コンバータ
<注意事項>
ANalog Start channel set (ANS2, ANS1, ANS0) に開始チャネルを設定したあとに ,
A/D converter MoDe set (MD1, MD0) お よ び ANalog End channel set (ANE2, ANE1,
ANE0) をリードモディファイライト系命令で設定しないでください。
ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換チャネルが読
み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネルを設定したあとに , MD1,
MD0 ビットおよび ANE2, ANE1, ANE0 ビットをリードモディファイライト系命令で
設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。
304
第 11 章 A/D コンバータ
11.2.2
データレジスタ (ADCR)
データレジスタ (ADCR) は , A/D 変換結果を格納するレジスタです。変換結果であ
るデジタル値が格納されます。
■ データレジスタ (ADCR)
図 11.2-3 に , データレジスタ (ADCR) のビット構成を示します。
図 11.2-3 データレジスタ (ADCR) のビット構成
アドレス : 000078H
ビット
15
14
13
12
11
10
―
X
R
9
9
X
R
8
8
X
R
初期値→
ビット属性→
―
X
R
―
X
R
―
X
R
―
X
R
―
X
R
初期値→
ビット属性→
7
7
X
R
6
6
X
R
5
5
X
R
4
4
X
R
3
3
X
R
2
2
X
R
1
1
X
R
0
0
X
R
データレジスタ (ADCR) は , 変換格納レジスタで変換結果であるデジタル値が格納さ
れます。
データレジスタ (ADCR) の値は , 1 回の変換終了時ごとに更新されます。通常は , 最終
変換値が格納されています。
このレジスタは , リセット時は不定です。上位の 15 ∼ 10 ビットは , 読出し時は "0" です。
変換データ保護機能があります。「11.4 変換データ保護機能」を参照してください。
305
第 11 章 A/D コンバータ
11.3
A/D コンバータの動作
A/D コンバータは , 逐次変換方式で動作し 10 ビットの分解能をもっています。
この A/D コンバータは , 変換結果格納用のレジスタが 1 つ (16 ビット ) しかないた
め , 1 回の変換終了とともに変換データレジスタ (ADCR) が更新されてしまいます。
連続で変換する際は , DMA 転送を使用することが可能です。
A/D コンバータには , 単発変換モード , 連続変換モードおよび停止変換モードの 3 種
類のモードがあります。各モードでの動作を説明します。
■ 単発変換モード
このモードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
き , ANE ビットで設定された終了チャネルまで変換が終わると , 動作を停止します。
開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は , 1 チャネル変換動作になりま
す。
例:
ANS=000, ANE=011 の場合
開始 → AN0 → AN1 → AN2 → AN3 → 終了
ANS=010, ANE=010 の場合
開始 → AN2 → 終了
■ 連続変換モード
このモードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
き , ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に
戻り , A/D 変換動作を続けます。
開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は 1 チャネル変換を続けます。
例:
ANS=000, ANE=011 の場合
開始 → AN0 → AN1 → AN2 → AN3 → AN0 →→→→ 繰り返し
ANS=010, ANE=010 の場合
開始→ AN2 → AN2 → AN2 →→→→ 繰り返し
連続変換モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し , 続
けます。BUSY ビットに "0" を書き込むと , 強制動作停止します。強制動作停止を行う
と , 変換中のものは途中で止まってしまうため , 注意してください。強制動作停止した
場合は , 変換レジスタは変換完了した前データが格納されています。
306
第 11 章 A/D コンバータ
■ 停止変換モード
このモードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
きますが , 1 チャネル変換するごとに変換動作を一時停止します。一時停止を解除する
には , もう一度起動することにより行われます。
ANE ビットで設定された終了チャネルまで変換が終わると , ANS のアナログ入力に戻
り , A/D 変換動作を続けます。
開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は 1 チャネルを変換します。
例:
ANS=000, ANE=011
開始→ AN0 → 停止 → 起動 → AN1 → 停止 → 起動 → AN2 → 停止 →
起動 → AN3 → 停止 → 起動 → AN0 →→→→ 繰り返し
ANS=010, ANE=010 の場合
開始→ AN2 → 停止 → 起動 → AN2 → 停止 → 起動 → AN2
→→→→ 繰り返し
このときの起動要因は , STS1, STS0 で設定されたものだけです。
このモードを使用することにより , 変換開始の同期をかけることが可能です。
307
第 11 章 A/D コンバータ
11.4
変換データ保護機能
割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。
本節では , 変換データ保護機能について説明します。
■ 変換データ保護機能
この A/D コンバータは , 変換データ保護機能を持ち , DMAC を使って連続変換と複数
のデータを確保できることを特長としています。
この A/D コンバータのデータレジスタは 1 つですので , 連続で A/D 変換をすると 1 回
の変換終了とともに変換データが格納されて前データが失われます。これを保護する
ために , 変換が終了しても前データが DMAC を使ってメモリへ転送されていないと変
換データはレジスタに格納されず , A/D 変換は一時停止する機能を持っています。
一時停止の解除は , DMA 転送によってメモリへ転送された後に行われます。
前データが転送されていれば , 一時停止することなく A/D コンバータは連続して変換
します。
データ保護機能のフロー例を , 図 11.4-1 に示します。
<注意事項>
この機能は ADCS の INT, INTE ビットに関係しています。
データ保護機能は割込み許可 (INTE=1) 状態でしか動作しないようになっています。
割込み禁止 (INTE=0) の場合はこの機能は動作せず , 連続で A/D 変換を行った場合は次々
に変換データはレジスタに格納されて , 旧データは失われます。また , 割込み許可
(INTE=1) 状態で DMA 転送を使わない場合 , INT ビットはクリアされないためデータ保護
機能が働き , A/D コンバータは変換を一時停止状態にします。この場合は , 割込みシーケ
ンスで INT ビットをクリアすると停止状態が解除されます。
DMA 動作中で A/D コンバータが一時停止をしているときに割込みを禁止にすると , A/D
コンバータが動作し , 転送する前に変換データレジスタの内容が替わることがあります。
また , 一時停止中に再起動をかけると , 待機データが壊れます。
308
第 11 章 A/D コンバータ
図 11.4-1
データ保護機能フロー例 (DMA 転送を使用時 )
DMAC設定
A/D連続変換起動
1回変換終了
DMAC起動
データレジスタ格納
2回変換終了
No
A/D一時停止
転送終了
Yes
データレジスタ格納
3回変換終了
すべて変換終了
終了
No
Yes
転送終了
DMAC起動
DMAC起動,転送
A/D停止
DMAC終了割込み ルーチン
( 注意事項 ) 一時停止中に再起動をかけると , 待機中の変換データは壊れてしまいます。
309
第 11 章 A/D コンバータ
11.5
A/D コンバータ使用上の注意
A/D コンバータを使用するときの使用上の注意を示します。
■ A/D コンバータ使用上の注意
A/D コンバータを外部トリガまたは内部タイマを使って起動する場合 , ADCS レジスタ
の A/D 起動要因ビット STS1, STS0 で設定しますが , このときに外部トリガおよび内部
タイマの入力値はインアクティブ側にしてください。アクティブ側にしておくと誤動
作します。
STS1, STS0設定時は, ATG=1入力, リロードタイマ (ch2) =0出力の状態にしてください。
外部インピーダンスが指定値以上に高くなると , 規定のサンプリング時間内にアナロ
グ入力値をサンプリングできなくなり , 正しい変換結果が得られません。
310
第 12 章
UART
この章では , UART の概要 , レジスタの構成 / 機能
および UART の動作について説明します。
12.1 UART の概要
12.2 UART のレジスタ
12.3 UART の動作
12.4 UART の使用例
12.5 ボーレートと U-TIMER のリロード値の設定例
311
第 12 章 UART
12.1
UART の概要
UART は , 非同期 ( 調歩同期 ) 通信または CLK 同期通信を行うためのシリアル I/O
ポートです。
MB91307 シリーズは , UART を 3 チャネル内蔵しています。
■ UART の特長
UART は , 以下の特長をもっています。
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ) , CLK 同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート : 内蔵タイマにより任意のボーレートを設定可能
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• 割込みによる DMA 転送の起動が可能
• DRCL レジスタへの書込み動作による DMAC の割込み要因クリア
312
第 12 章 UART
■ ブロックダイヤグラム
図 12.1-1 に , UART のブロックダイヤグラムを示します。
図 12.1-1 UART のブロックダイヤグラム
制御信号
受信割込み
(CPUへ)
SC(クロック)
送信クロック
U-TIMERより
クロック
選択回路
受信クロック
送信割込み
(CPUへ)
外部クロック
SC
受信制御回路
SI(受信データ)
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SO(送信データ)
受信用シフタ
受信状態判定回路
送信用シフタ
送信開始
受信終了
SIDR
SODR
DMA用
受信エラー発生信号
(DMACへ)
R-bus
MD1
MD0
SMR
レジスタ
CS0
SCKE
SOE
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
RIE
TIE
制御信号
313
第 12 章 UART
UART のレジスタ
12.2
UART で使用するレジスタの構成および機能について説明します。
■ UART のレジスタ一覧
図 12.2-1 に , UART のレジスタ一覧を示します。
図 12.2-1 UART のレジスタ一覧
15
8 7
0
SCR
SSR
SMR
SIDR(R)/SODR(W)
DRCL
8 ビット
314
(R/W)
(R/W)
(W)
8 ビット
7
D7
6
D6
5
D5
4
D4
7
PE
6
ORE
5
FRE
7
MD1
6
MD0
5
4
―
7
PEN
6
P
7
―
3
D3
4
3
RDRF TDRE
2
D2
1
D1
0
D0
シリアルインプットデータレジスタ
シリアルアウトプットデータレジスタ
(SIDR/SODR)
2
1
RIE
0
TIE
シリアルステータスレジスタ
(SSR)
0
―
―
―
3
CS0
2
―
1
SCKE
5
SBL
4
CL
3
A/D
2
REC
1
RXE
0
TXE
6
5
4
3
2
1
0
―
―
―
―
―
―
―
シリアルモードレジスタ
(SMR)
シリアルコントロールレジスタ
(SCR)
(DRCL)
第 12 章 UART
シリアルモードレジスタ (SMR)
12.2.1
シリアルモードレジスタ (SMR) は , UART の動作モードを指定します。
動作モードの設定は動作停止中に行い , 動作中にこのレジスタへの書込みは行わな
いでください。
■ シリアルモードレジスタ (SMR)
図 12.2-2 に , シリアルモードレジスタ (SMR) のビット構成を示します。
図 12.2-2 シリアルモードレジスタ (SMR) のビット構成
7
アドレス ch0 000063H MD1
ch1 00006BH R/W
ch2 000073H
SMR
6
MD0
5
4
―
―
3
CS0
R/W
W
2
―
1
SCKE
0
―
初期値
00--0-0-B
R/W
以下に , シリアルモードレジスタ (SMR) の各ビットの機能を説明します。
[ ビット 7, ビット 6] MD1, MD0 (MoDe select)
これらのビットは , UART の動作モードを選択します。
表 12.2-1 に , UART 動作モードの設定内容を示します。
表 12.2-1 UART 動作モードの設定内容
モード
MD1
MD0
0
0
0
非同期 ( 調歩同期 ) ノーマルモード〔初期値〕
1
0
1
非同期 ( 調歩同期 ) マルチプロセッサモード
2
1
0
CLK 同期モード
―
1
1
設定禁止
動作モード
<注意事項>
• モード 1 の CLK 非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の
スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を
判別できません。したがって , マルチプロセッサモードのマスタのみをサポートしま
す。また , パリティチェック機能は使用できませんので , SCR レジスタの PEN は "0"
に設定してください。
• 動作モードの設定は , 動作停止中に行ってください。モード設定時に送受信したデータ
は保証されません。割込みによる DMA 転送を最初に起動する前に , DRCL レジスタに
書き込んでください。
315
第 12 章 UART
[ ビット 5, ビット 4] (reserved)
これらのビットは , 未使用ビットです。常に "1" を書き込んでください。
[ ビット 3] CS0 (Clock Select)
このビットは , UART の動作クロックを選択します。
CS0
動作クロック
0
内蔵タイマ (U-TIMER)
1
外部クロック
〔初期値〕
[ ビット 2] (reserved)
このビットは , 未使用ビットです。常に "0" を書き込んでください。
[ ビット 1] SCKE (SCLK Enable)
このビットは , CLK 同期モード ( モード 2) で通信をする場合 , SC 端子をクロック
入力端子にするか , クロック出力端子として使うかを指定します。
CLK 非同期モード時または外部クロックモード時では "0" に設定してください。
SCKE
機 能
0
クロック入力端子として機能します。〔初期値〕
1
クロック出力端子として機能します。
<注意事項>
クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択してお
く必要があります。
[ ビット 0] (reserved)
このビットは , 未使用ビットです。
316
第 12 章 UART
12.2.2
シリアルコントロールレジスタ (SCR)
シリアルコントロールレジスタ (SCR) は , シリアル通信を行う場合の転送プロトコ
ルを制御します。
この節では , シリアルコントロールレジスタ (SCR) の構成および機能について説明
します。
■ シリアルコントロールレジスタ (SCR)
図 12.2-3 に , シリアルコントロールレジスタ (SCR) のビット構成を示します。
図 12.2-3 シリアルコントロールレジスタ (SCR) のビット構成
SCR
アドレス ch0 000062H
ch1 00006AH
ch2 000072H
7
PEN
6
P
5
SBL
4
CL
3
A/D
2
REC
1
RXE
0
TXE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000100B
以下に , シリアルコントロールレジスタ (SCR) の各ビットの機能を説明します。
[ ビット 7] PEN (Parity Enable)
このビットは , シリアル通信において , パリティを付加してデータ通信を行うかど
うかを指定します。
PEN
機 能
0
パリティなし 〔初期値〕
1
パリティあり
<注意事項>
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では ,
パリティを付加することはできません。
[ ビット 6] P (Parity)
このビットは , パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指
定します。
317
第 12 章 UART
P
パリティ
0
偶数パリティ 〔初期値〕
1
奇数パリティ
[ ビット 5] SBL (Stop Bit Length)
このビットは , 非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである ,
ストップビットのビット長を指定します。
SBL
ストップビット長
0
1 ストップビット 〔初期値〕
1
2 ストップビット
[ ビット 4] CL (Character Length)
このビットは , 送受信する 1 フレームのデータ長を指定します。
CL
1 フレームのデータ長
0
7 ビットデータ 〔初期値〕
1
8 ビットデータ
<注意事項>
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モー
ド 0) のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2)
では , 8 ビットデータとしてください。
[ ビット 3] A/D (Address/Data)
このビットは , 非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) にお
いて , 送受信するフレームのデータ形式を指定します。
A/D
318
フレームのデータ形式
0
データフレーム 〔初期値〕
1
アドレスフレーム
第 12 章 UART
[ ビット 2] REC (Receiver Error Clear)
このビットに, "0"を書き込むことによって, SSRレジスタのエラーフラグ (PE, ORE,
FRE) をクリアします。
"1" 書込みは無効であり , 読出し値は常に "1" になります。
[ ビット 1] RXE (Receiver Enable)
このビットは , UART の受信動作を制御します。
RXE
受信動作の禁止 / 許可
0
受信動作を禁止します。 〔初期値〕
1
受信動作を許可します。
<注意事項>
受信中 (受信シフトレジスタにデータが入力されているとき) に受信動作を禁止した場
合には , そのフレームの受信を完了し , 受信データバッファレジスタ (SIDR) に受信
データをストアしたところで受信動作を停止します。
[ ビット 0] TXE (Transmitter Enable)
このビットは , UART の送信動作を制御します。
TXE
送信動作の禁止 / 許可
0
送信動作を禁止します。 〔初期値〕
1
送信動作を許可します。
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファレジスタ (SODR) にデータがなくなった後に送信動作を停止しま
す。
319
第 12 章 UART
シリアルインプットデータレジスタ (SIDR) /
シリアルアウトプットデータレジスタ (SODR)
12.2.3
本レジスタは , 受信 / 送信用のデータバッファレジスタです。
■ シリアルインプットデータレジスタ (SIDR) / シリアルアウトプットデータレジス
タ (SODR)
図 12.2-4 に , シリアルインプットデータレジスタ (SIDR) およびシリアルアウトプット
データレジスタ (SODR) のビット構成を示します。
図 12.2-4 シリアルインプットデータレジスタ (SIDR) /
シリアルアウトプットデータレジスタ (SODR) のビット構成
SIDR
アドレス ch0 000061H
ch1 000069H
ch2 000071H
SODR
アドレス : 同上
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
R
R
R
R
R
R
R
R
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
W
W
W
W
W
W
W
W
初期値
不定
不定
データ長が 7 ビットの場合ビット 7 (D7) は無効データとなります。SODR レジスタへ
の書込みは , SSR レジスタの TDRE ビットが "1" のときに書き込んでください。
<注意事項>
このアドレスへの書込みは SODR レジスタへの書込みを , 読出しは SIDR レジスタか
らの読出しを意味します。
320
第 12 章 UART
12.2.4
シリアルステータスレジスタ (SSR)
シリアルステータスレジスタ (SSR) は , UART の動作状態を表すフラグで構成され
ています。
この節では , シリアルステータスレジスタ (SSR) の構成と機能について説明します。
■ シリアルステータスレジスタ (SSR)
図 12.2-5 に , シリアルステータスレジスタ (SSR) のビット構成を示します。
図 12.2-5 シリアルステータスレジスタ (SSR) のビット構成
SSR
アドレス ch0 000060H
ch1 000068H
ch2 000070H
7
PE
6
ORE
5
FRE
R
R
R
4
3
RDRF TDRE
R
R
2
―
1
RIE
0
TIE
R/W
R/W
初期値
00001-00B
以下に , シリアルステータスレジスタ (SSR) の各ビットの機能を説明します。
[ ビット 7] PE (Parity Error)
このビットは , 受信時にパリティエラーが発生したときにセットされる , 割込み要
求フラグです。
PE
パリティエラーの有無
0
パリティエラーなし 〔初期値〕
1
パリティエラーが発生
一度セットされたフラグをクリアするには , SCR レジスタの REC ビット ( ビット
10) に "0" を書き込みます。
このビットがセットされた場合には , SIDR のデータは無効データとなります。
[ ビット 6] ORE (Over Run Error)
このビットは , 受信時にオーバランエラーが発生したときにセットされる , 割込み
要求フラグです。
ORE
オーバランエラーの有無
0
オーバランエラーなし 〔初期値〕
1
オーバランエラーが発生
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
321
第 12 章 UART
このビットがセットされた場合には , SIDR のデータは無効データとなります。
[ ビット 5] FRE (FRaming Error)
このビットは , 受信時にフレーミングエラーが発生したときにセットされる , 割込
み要求フラグです。
FRE
フレーミングエラーの有無
0
フレーミングエラーなし 〔初期値〕
1
フレーミングエラーが発生
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
このビットがセットされた場合には , SIDR のデータは無効データとなります。
<注意事項>
シリアルモードレジスタのビット 3 による内 / 外ボーレートクロックの切換えは , 書込
み後すぐに反映されるので , UART が動作停止状態のときに行ってください。
シリアルモードレジスタのビット 3 は書込み専用です。
[ ビット 4] RDRF (Receiver Data Register Full)
このビットは , SIDR レジスタに受信データがあることを示す , 割込み要求フラグで
す。
RDRF
受信データの有無
0
受信データなし 〔初期値〕
1
受信データあり
SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出
すと自動的にクリアされます。
[ ビット 3] TDRE (Transmitter Data Register Empty)
このビットは , SODR に送信データを書き込むことができることを示す , 割込み要
求フラグです。
TDRE
送信データの書込み禁止 / 許可
0
送信データの書込み禁止
1
送信データの書込み許可 〔初期値〕
SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送
322
第 12 章 UART
信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを
書き込むことができることを表します。
[ ビット 2] (reserved)
このビットは , 未使用ビットです。
[ ビット 1] RIE (Receiver Interrupt Enable)
このビットは , 受信割込みを制御します。
RIE
受信割込みの禁止 / 許可
0
受信割込みを禁止します。 〔初期値〕
1
受信割込みを許可します。
<注意事項>
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信が
あります。
[ ビット 0] TIE (Transmitter Interrupt Enable)
このビットは , 送信割込みを制御します。
TIE
送信割込みの禁止 / 許可
0
送信割込みを禁止します。 〔初期値〕
1
送信割込みを許可します。
<注意事項>
送信割込み要因は , TDRE による送信要求があります。
323
第 12 章 UART
12.2.5
DRCL レジスタ
DRCL レジスタは , DMAC の割込み要因をクリアするためのレジスタです。
■ DRCL レジスタ
図 12.2-6 に , DRCL レジスタの構成を示します。
図 12.2-6 DRCL レジスタの構成
DRCL
7
6
5
4
3
2
1
0
アドレス ch0 000066H
ch1 00006EH
ch2 000076H
―
W
―
W
―
W
―
W
―
W
―
W
―
W
W
初期値
--------B
DRCL レジスタに任意の値を書き込むことによって , DMAC への割込み要因がクリア
されます。初めて DMAC を起動する際またはそれ以前に UART を使用している場合 ,
このレジスタを利用して割込み要因をクリアしてください。
このレジスタは , 書込み専用です。
324
第 12 章 UART
12.3
UART の動作
UART には , 非同期 ( 調歩同期 ) モードと CLK モードの 2 種類の動作モードがあり
ます。
非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロセッサモードがありま
す。
この節では , 各動作モードにおける動作について説明します。
■ UART の動作モード
UART は , 表 12.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切り換えることができます。
表 12.3-1 UART の動作モード
モード
パリティ
データ長
動作モード
ストップビット長
0
あり / なし
7
あり / なし
8
非同期 ( 調歩同期 )
ノーマルモード
1 ビットまたは 2
ビット
1
なし
8+1
非同期 ( 調歩同期 )
マルチプロセッサ
モード
2
なし
8
CLK モード
なし
<注意事項>
非同期 ( 調歩同期 ) モードでのストップビット長については , 送信動作のみ指定が可能
です。受信動作については常に 1 ビット長となります。上記モード以外では動作しま
せんので , 設定しないでください。
■ UART のクロック選択
● 内部タイマ
CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で
ボーレートが決まります。このときのボーレートの算出式は , 次のとおりです。
非同期 ( 調歩同期 )
:φ/ (16 × β)
CLK 同期
:φ/β
φ: 周辺系マシンクロック周波数
β:U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 )
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの -1% ∼ +1% までの
範囲で転送が可能です。
325
第 12 章 UART
● 外部クロック
CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周
波数を f とすると次のようになります。
非同期 ( 調歩同期 ) :f/16
CLK 同期
:f
ただし , f は最大 3.125MHz までです。
326
第 12 章 UART
12.3.1
非同期 ( 調歩同期 ) モード
UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ
モード ) で使用するとき , 転送方式は非同期となります。
■ 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。
図 12.3-1 に , データフォーマットを示します。
図 12.3-1 転送データフォーマット ( モード 0, 1)
SI,SO
0 1 0
Start LSB
1
1
0
0
1
0 1 1
MSB Stop
A/D Stop
(モード0)
(モード1)
転送されたデータは 01001101B
図 12.3-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始
まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット
("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロック
を入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが
できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。
また, マルチプロセッサモードではパリティを付加することはできません。そのかわり,
A/D ビットが必ず付加されます。
■ 受信動作
SCR レジスタの RXE ビット ( ビット 1) が "1" ならば , 常に受信動作が行われています。
受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー
マットに従い , 1 フレームデータの受信が行われます。1 フレームの受信が終わると ,
エラーが発生した場合にはエラーフラグのセットが行われた後 RDRFフラグ (SSR レジ
スタのビット 4) がセットされます。このとき同じ SSR レジスタの RIE ビット ( ビット
1) が "1" にセットされていれば CPU に対して受信割込みが発生します。SSR レジスタ
の各フラグを調べ , 正常受信なら SIDR レジスタを読み出して , エラーが発生していれ
ば必要な処理を行うようにしてください。
RDRF フラグは , SIDR レジスタを読み出すとクリアされます。
■ 送信動作
SSR レジスタの TDRE フラグ ( ビット 3) が "1" のとき , SODR レジスタに送信データ
を書き込みます。ここで , SCR レジスタの TXE ビット ( ビット 0) が "1" なら送信が行
われます。
327
第 12 章 UART
SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開始さ
れると TDRE フラグが再びセットされ , 次の送信データをセットできるようになります。こ
のとき , 同じ SSR レジスタの TIE ビット ( ビット 0) が "1" にセットされていれば CPU に対
して送信割込みが発生して , SODR レジスタに送信データをセットするように要求します。
TDRE フラグは , SODR レジスタにデータをセットすると一度クリアされます。
■ スタートビット検出方法
スタートビットを検出するには , 以下のように設定してください。
• 通信期間直前は通信線を必ず "H" ( マークレベルを付加 ) にしてください。
• 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE="H") にしてください。
• 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE="H") にしないでください。正
しいデータが受信できません。
• ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H"( マークレ
ベル ) の間に受信禁止 (RXE="L") にしてください。
図 12.3-2 正常動作例
通信期間
非通信期間
マークレベル
SIN
スタートビット
ST
非通信期間
ストップビット
データ
D0
D1
D2
D3
D4
D5
D6
D7
SP
D7
SP
(01010101b送信)
RXE
受信クロック
サンプリングクロック
●受信クロック(8パルス)
マイコン側の認識
(01010101b受信)
ST
●受信クロックを16分周してサンプリングクロックを生成
D0
D1
D2
D3
D4
D5
D6
以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ (SIN) が
正しく認識されませんので注意してください。
• 通信線が "L" の期間に , 受信許可 (RXE="H") に設定した場合の動作例
図 12.3-3 異常動作例
通信期間
非通信期間
マークレベル スタートビット
SIN
(01010101b送信)
RXE
非通信期間
ストップビット
データ
ST
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
受信クロック
サンプリングクロック
マイコン側の認識
(10101010b受信)
ST認識
PE,ORE,FRE
●受信エラー発生
328
第 12 章 UART
12.3.2
CLK 同期モード
UART を動作モード 2 で使用するとき , 転送方式はクロック同期となります。
■ 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。
図 12.3-4 に , 送受信クロックとデータとの関係を示します。
図 12.3-4 転送データフォーマット ( モード 2)
SODR書込み
マーク
SC
RXE,TXE
SI,SO
1 0
LSB
1
1
0
0
1
0
MSB
(モード2)
転送されたデータは 01001101B
内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同期ク
ロックが自動的に生成されます。また , 外部クロックを選択している場合は , 送信側 UART
の送信用データバッファ SODR レジスタにデータがあること (TDRE フラグが "0") を確か
めた後 , 正確に 1 バイト分のクロックを供給する必要があります。また , 送信開始前と終了
後は , 必ずマークレベルにしてください。
データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スタート /
ストップビットがないのでオーバランエラー以外のエラー検出は行われません。
■ 初期化
CLK 同期モードを使用する場合の , 各制御レジスタの設定値を示します。
• SMR レジスタ
- MD1, MD0
:"10"
- CS
: クロック入力を指定
- SCKE
: 内部タイマの場合 "1", 外部クロックの場合 "0"
- SOE
: 送信を行う場合 "1", 受信のみの場合 "0"
• SCR レジスタ
- PEN
:"0"
- P, SBL, A/D
: これらのビットは意味を持ちません
329
第 12 章 UART
- CL
:"1"
- REC
:"0" ( 初期化するため )
- RXE, TXE : 少なくとも , どちらか一方を "1"
• SSR レジスタ
- RIE
: 割込みを使用する場合 "1", 割込みを使用しない場合 "0"
- TIE
:"0"
■ 通信開始
SODR レジスタへの書込みによって通信を開始します。
受信のみの場合でも , 必ず仮の送信データを SODR レジスタに書き込む必要がありま
す。
■ 通信終了
SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス
タの ORE ビットによって , 通信が正常に行われたかを判断してください。
330
第 12 章 UART
12.3.3
割込み発生およびフラグのセットタイミング
UART には , 5 つのフラグと 2 つの割込み要因があります。
5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE は
オーバランエラー , FRE はフレーミングエラーのことで , 受信時エラーが発生した
ときにセットされ , SCR レジスタの REC に "0" を書き込むとクリアされます。
RDRF は , 受信データが SIDR レジスタにロードされるとセットされ , SIDR レジス
タを読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モー
ド 2 ではパリティ検出機能とフレーミングエラー検出機能はありません。TDRE は ,
SODR レジスタが空になって書込み可能な状態になるとセットされ , SODR レジス
タへ書き込むとクリアされます。
■ 割込み発生およびフラグのセットタイミング
2 つの割込み要因は , 受信用のものと送信用のものです。受信時は , PE/ORE/FRE/RDRF
により割込みを要求します。送信時は , TDRE により割込みを要求します。各動作モー
ドによる割込みフラグのセットタイミングを以下に示します。
● モード 0 の受信動作時
PE, ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラ
グがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時は ,
SIDR のデータは無効データとなります。
図 12.3-5 に , モード 0 における ORE, FRE, RDRF のセットタイミングを示します。
図 12.3-5 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
D6
D7
Stop
PE,ORE,FRE
RDRF
受信割込み
● モード 1 の受信動作時
ORE, FRE, RDRF は , 受信転送が終了し最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ
トのため最後の 9 ビット目のアドレス / データを示すデータは無効データとなります。
ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。
図 12.3-6 に , モード 1 における ORE, FRE, RDRF のセットタイミングを示します。
331
第 12 章 UART
図 12.3-6 ORE, FRE, RDRF のセットタイミング ( モード 1)
データ
D6
アドレス/データ
Stop
ORE,FRE
RDRF
受信割込み
● モード 2 の受信動作時
ORE, RDRF は , 受信転送が終了し最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR のデータは無
効データとなります。
図 12.3-7 に , モード 2 における ORE, RDRF のセットタイミングを示します。
図 12.3-7 ORE, RDRF のセットタイミング ( モード 2)
データ
D5
D6
D7
ORE
RDRF
受信割込み
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書き込まれるとクリアされます。内部のシフトレジスタに
転送されて次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求
が発生します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含
む ) を書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止してか
ら UART の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード
2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き
込まれたデータは送信されます。
図 12.3-8 にモード 0, 1 における TDRE のセットタイミングを , 図 12.3-9 にモード 2 に
おける TDRE のセットタイミングを示します。
332
第 12 章 UART
図 12.3-8 TDRE のセットタイミング ( モード 0, 1)
SODR書込み
TDRE
CPUへ割込みを要求する。
SO割込み
ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3
A/D
SO出力
ST:スタートビット
SP:ストップビット
D0~D7:データビット
A/D :アドレス/データマルチプレクサ
図 12.3-9 TDRE のセットタイミング ( モード 2)
SODR書込み
TDRE
CPUへ割込みを要求する。
SO割込み
SO出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
D0~D7:データビット
■ 使用上の注意
動作モードの設定は , 動作停止中に行ってください。モード設定時に送受信したデータ
は保証されません。
割込みによるDMA転送を最初に起動する前に, DRCLレジスタに書き込んでください。
333
第 12 章 UART
12.4
UART の使用例
UART の使用例を示します。モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU
が接続されるような場合に使用されます。
■ UART の使用例
図 12.4-1 に , モード 1 を使用した場合のシステム構築例を示します。このリソースで
は , ホスト側の通信インタフェースのみサポートしています。
図 12.4-1 モード 1 を使用した場合のシステム構築例
SO
SI
ホストCPU
SO
SI
スレーブCPU#0
SO
SI
スレーブCPU#1
通信は , ホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , SCR レジスタの A/D が "1" のときのデータです。それにより通信先とな
るスレーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは ,
SCR レジスタの A/D が "0" のときのデータです。図 12.4-2 にそのフローチャートを示
します。
このモードにおいては , パリティチェック機能は使用できませんので , SCR レジスタの
PEN ビットは "0" としてください。
334
第 12 章 UART
図 12.4-2 モード 1 を使用した場合の通信フローチャート
(ホストCPU)
START
転送モードを"1"とする
D0~D7にスレーブCPUを
選択するデータ,
A/Dに"1"をセットし
1バイト転送
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
No
通信終了?
Yes
ほかの
スレーブCPU
と通信
No
Yes
受信動作禁止
END
335
第 12 章 UART
12.5
ボーレートと U-TIMER のリロード値の設定例
ボーレートと U-TIMER のリロード値の設定例を示します。
■ ボーレートと U-TIMER のリロード値の設定例
表 12.5-1 に , 非同期 ( 調歩同期 ) モードの設定値を , 表 12.5-2 に CLK 同期モードの設
定値を示します。
表中の周波数は , 周辺系マシンクロック周波数を表します。また , UCC1 は , U-TIMER
の UTIMC レジスタ UCC1 ビットに設定する値です。表中の「-」部は , 誤差が± 1% を
超えてしまうため使用できないことを示します。
表 12.5-1 非同期 ( 調歩同期 ) モードの設定値
ボーレート
ms
33MHz
20MHz
16.5MHz
10MHz
1200
833.33
858 (UCC1=0)
520 (UCC1=0)
428 (UCC1=1)
259 (UCC1=1)
2400
416.67
428 (UCC1=1)
259 (UCC1=1)
214 (UCC1=0)
129 (UCC1=0)
4800
208.33
214 (UCC1=0)
129 (UCC1=0)
106 (UCC1=0)
64 (UCC1=0)
9600
104.17
106 (UCC1=1)
64 (UCC1=0)
52 (UCC1=1)
31 (UCC1=1)
19200
52.08
52 (UCC1=1)
31 (UCC1=1)
26 (UCC1=0)
―
38400
26.04
26 (UCC1=0)
―
12 (UCC1=1)
―
57600
17.36
17 (UCC1=0)
―
8 (UCC1=0)
―
10400
96.15
98 (UCC1=0)
59 (UCC1=0)
48 (UCC1=1)
29 (UCC1=0)
31250
32.00
32 (UCC1=0)
19 (UCC1=0)
15 (UCC1=1)
9 (UCC1=0)
62500
16.00
15 (UCC1=1)
9 (UCC1=0)
―
4 (UCC1=0)
表 12.5-2 CLK 同期モードの設定値
ボーレート
ms
33MHz
20MHz
16.5MHz
10MHz
250k
4.00
65 (UCC1=0)
39 (UCC1=0)
32 (UCC1=0)
19 (UCC1=0)
500k
2.00
32 (UCC1=0)
19 (UCC1=0)
15 (UCC1=1)
9 (UCC1=0)
1M
1.00
15 (UCC1=1)
9 (UCC1=0)
7 (UCC1=0)*
4 (UCC1=0)
* : ± 1% 以上の誤差あり
336
第 13 章
I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタ
の構成 / 機能および I2C インタフェースの動作につ
いて説明します。
13.1 I2C インタフェースの概要
13.2 I2C インタフェースのレジスタ
13.3 I2C インタフェースの動作
13.4 動作フローチャート
337
第 13 章 I2C インタフェース
13.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC バスをサポートするシリアル I/O ポートです。
■ I2C インタフェースの特長
I2C バス上のマスタ / スレーブデバイスとして動作し , 以下の特長があります。
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• スタートコンディションの繰り返し発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビットマスタ / スレーブアドレス
• 標準モード ( 最高 100Kbps) / 高速モード ( 最高 400Kbps) に対応
• 転送終了割込み / バスエラー割込みの発生
■ ブロックダイヤグラム
図 13.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。
338
第 13 章 I2C インタフェース
R-bus
図 13.1-1 I2C インタフェースのブロックダイヤグラム
ICCR
EN
I2C動作許可
IDBL
DBL
ICCR
クロック許可
クロック分周2
2345
32
CS4
CS3
CS2
CS1
CS0
IBSR
BB
RSC
LRB
Sync
シフトクロック発生
クロック選択2(1/12)
シフトクロック
エッジ変化タイミング
バスビジー
リピートスタート スタート・ストップ
Last Bit コンディション検出
送/受
TRX
エラー
ADT
First Byte
アビトレーションロスト検出
AL
IBCR
SCL
BER
BEIE
INTE
INT
IBCR
SCC
MSS
ACK
GCAA
終了
スタート
マスタ
ACK許可
SDA
IRQ
割込み要求
スタート・ストップ
コンディション発生
GC-ACK許可
IDAR
IBSR
スレーブ
AAS
GCA
グローバルコール スレーブアドレス比較
ENTB
ISMK
RAL
ITBA
ITMK
ISBA
ISMK
339
第 13 章 I2C インタフェース
13.2
I2C インタフェースのレジスタ
I2C インタフェースで使用するレジスタの構成および機能について説明します。
■ I2C インタフェースのレジスタ一覧
図 13.2-1 に , I2C インタフェースのレジスタ一覧を示します。
図 13.2-1 I2C インタフェースのレジスタ一覧
バスコントロールレジスタ (IBCR)
アドレス : 000094H
15
BER
14
BEIE
13
SCC
12
MSS
11
ACK
10
GCAA
9
INTE
8
INT
初期値→
R/W
0
R/W
0
W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
バスステータスレジスタ (IBSR)
アドレス : 000095H
初期値→
15
BB
14
RSC
13
AL
12
LRB
11
TRX
10
AAS
9
GCA
8
ADT
R
0
R
0
R
0
R
0
R
0
R
0
R
0
R
0
10 ビットスレーブアドレスレジスタ (ITBA)
15
0
14
13
12
11
10
アドレス : 000096H
―
―
―
―
―
9
TA9
8
TA8
初期値→
―
―
―
―
―
―
R/W
0
R/W
0
7
6
5
4
3
2
1
0
アドレス : 000097H
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
初期値→
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
8
TM8
10 ビットスレーブアドレスマスクレジスタ (ITMK)
15
ENTB
14
RAL
R/W
0
R
0
―
―
7
6
5
アドレス : 000099H
TM7
TM6
初期値→
R/W
1
R/W
1
アドレス : 000098H
初期値→
13
12
11
10
―
―
―
―
9
TM9
―
―
R/W
1
R/W
1
4
3
2
1
0
TM5
TM4
TM3
TM2
TM1
TM0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
( 続く )
340
第 13 章 I2C インタフェース
( 続き )
7 ビットスレーブアドレスレジスタ (ISBA)
7
6
5
4
3
2
1
0
アドレス : 00009BH
―
SA6
SA5
SA4
SA3
SA2
SA1
SA0
初期値→
―
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
7 ビットスレーブアドレスマスクレジスタ (ISMK)
アドレス : 00009AH
初期値→
15
ENSB
14
SM6
13
SM5
12
SM4
11
SM3
10
SM2
9
SM1
8
SM0
R/W
0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
データレジスタ (IADR)
アドレス : 00009DH
初期値→
クロックコントロールレジスタ (ICCR)
アドレス : 00009EH
初期値→
15
TEST
W
0
14
―
13
EN
12
CS4
11
CS3
10
CS2
9
CS1
8
CS0
―
R/W
0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
クロックディセーブルレジスタ (IDBL)
15
14
13
12
11
10
9
8
アドレス : 00009FH
―
―
―
―
―
―
―
DBL
初期値→
―
―
―
―
―
―
―
R/W
0
341
第 13 章 I2C インタフェース
13.2.1
バスステータスレジスタ (IBSR)
バスステータスレジスタ (IBSR) は , I2C インタフェースの状態を示すレジスタです。
このレジスタは読出し専用です。
■ バスステータスレジスタ (IBSR)
図 13.2-2 に , バスステータスレジスタ (IBSR) のビット構成を示します。
図 13.2-2 バスステータスレジスタ (IBSR) のビット構成
アドレス : 000095H
初期値→
7
BB
6
RSC
5
AL
4
LRB
3
TRX
2
AAS
1
GCA
0
ADT
R
0
R
0
R
0
R
0
R
0
R
0
R
0
R
0
このレジスタは , インタフェースが動作停止状態 (ICCR の EN=0) になるとクリアされ
ます。
以下に , バスステータスレジスタ (IBSR) の各ビットの機能を説明します。
[ ビット 7] BB (Bus Busy)
このビットは , I2C バスの状態を示すビットです。
0
[STOP] 条件を検出した ( バスアイドル中 )
1
[START] 条件を検出した ( バスは使用されている )
[ ビット 6] RSC (Repeated Start Condition)
このビットは , 反復 [START] 検出ビットです。
0
反復 [START] 条件は検出されていない
1
バス使用中に , 反復 [START] 条件を検出した
このビットは , アドレスデータ転送終了 (ADT=0) または [STOP] 条件検出でクリア
されます。
[ ビット 5] AL (Arbitration Lost)
このビットは , アービトレーションロスト検出ビットです。
342
0
アービトレーションロストが検出されていない
1
マスタ送信中にアービトレーションロストが発生した
第 13 章 I2C インタフェース
INT ビットへの "0" 書込みまたは IBCR レジスタの MSS ビットに "1" 書き込むことで
クリアされます。
アービトレーションロストが検出されるのは , 以下の場合です。
• 送信データが , SCL の立上りエッジで SDA ライン上のデータと一致しない場合
• データの第 1 ビットで , 別のマスタにより反復 [START] 条件が発生した場合
• インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にドライブ
されているために , [START] 条件または [STOP] 条件が発生できない場合
[ ビット 4] LRB (Last Recieved Bit)
このビットは , アクノリッジ格納ビットです。受信側からのアクノリッジを格納し
ます。
0
スレーブアクノリッジを検出した
1
スレーブアクノリッジを検出していない
アクノリッジの検出 ( 受信 9 ビット ) により書き換えられます。[START] 条件また
は [STOP] 条件の検出でクリアされます。
[ ビット 3] TRX (Transferring Data)
このビットは , データ転送中の送信状態を示すビットです。
0
データ送信中でない
1
データ送信中
"1" にセットされるのは , 以下の場合です。
•
マスタモード時に , [START] 条件が発生したとき
•
スレーブモードでの第 1 バイトの転送終了時と読出しアクセス時またはマスタ
モードでのデータ送信時 "0" にセットされるのは , 以下の場合です。
•
バスがアイドル状態 (IBCR の BB=0)
•
アービトレーションロスが発生したとき
•
マスタ割込み時 (MSS=1, INT=1) に SCC ビットに "1" を書き込んだとき
•
マスタ割込み時 (MSS=1, INT=1) に MSS ビットがクリアされたとき
•
スレーブモード時に最後の転送バイトでアクノリッジが発生しなかったとき
•
スレーブモード時にデータ受信したとき
•
マスタモード時にスレーブからデータを受信したとき
[ ビット 2] AAS (Addressed As Slave)
このビットは , スレーブアドレッシング検出ビットです。
0
スレーブ時にアドレッシングされていない
1
スレーブ時にアドレッシングされた
343
第 13 章 I2C インタフェース
( 反復 ) [START] 条件または [STOP] 条件の検出でクリアされます。
7/10 ビットのスレーブアドレスを検出したときにセットされます。
[ ビット 1] GCA (General Call Address)
このビットは , ゼネラルコールアドレス (00H) 検出ビットです。
0
スレーブ時にゼネラルコールアドレスは受信していない
1
スレーブ時にゼネラルコールアドレスを受信した
( 反復 ) [START] 条件または [STOP] 条件の検出でクリアされます。
[ ビット 0] ADT (Adress Data Transfer)
このビットは , アドレスデータ検出ビットです。
0
受信データがアドレスでないとき ( またはバス開放中のとき )
1
受信データがアドレスのとき
[START] 条件の検出で "1" にセットされます。書込みアクセスでの 10 ビットスレー
ブアドレスのヘッダ部が検出された場合は , 第 2 バイトあとでクリアされます。そ
れ以外では , 第 1 バイトあとでクリアされます。
第 1 バイト / 第 2 バイトあととは , 以下のとおりです。
344
•
マスタ割込み中 (MSS=1, INT=1) に MCC ビットに "0" を書き込んだとき
•
マスタ割込み中 (MSS=1, INT=1) に SCC ビットに "1" を書き込んだとき
•
INT ビットがクリアしたとき
•
マスタおよびスレーブとしての転送対象でない場合の転送バイトの最初
第 13 章 I2C インタフェース
13.2.2
バスコントロールレジスタ (IBCR)
バスコントロールレジスタ (IBCR) の構成および機能について説明します。
■ バスコントロールレジスタ (IBCR)
図 13.2-3 に , バスコントロールレジスタ (IBCR) のビット構成を示します。
図 13.2-3 バスコントロールレジスタ (IBCR) のビット構成
アドレス : 000094H
15
BER
14
BEIE
13
SCC
12
MSS
11
ACK
10
GCAA
9
INTE
8
INT
初期値→
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
インタフェースが動作停止状態 (ICCRのEN=0) になると, BER, BEIEビット以外のビッ
トはクリアされます。
以下に , バスコントロールレジスタ (IBCR) の各ビットの機能を説明します。
[ ビット 15] BER (Bus ERror)
このビットは , バスエラー割込み要求フラグビットです。
リードモディファイ系命令では常に "1" が読み出されます。
書込み時
0
バスエラー割込み要求フラグをクリアする
1
関係なし
読出し時
0
バスエラーは検出されていない
1
バスエラーを検出した
このビットがセットされた場合 , CCR レジスタの EN ビットはクリアされ , I2C イン
タフェースは停止状態になりデータ転送は中断されます。また , BER, BEIE ビット
以外のビットはクリアされます。
このビットは , 再度動作許可 (ICCR の EN=1) をする前にクリアしておく必要があり
ます。
345
第 13 章 I2C インタフェース
"1" にセットされるのは , 以下の場合です。
•[START] 条件または [STOP] 条件が不正な場所で検出されたとき ( アドレス転送中 ,
データ転送中 ) *
•10ビット書込みアクセス前に10ビット読出しアクセスのヘッダ部を受信したとき*
•マスタモード時に [STOP] 条件を検出したとき
* : この検出は , 転送中に I2C インタフェースが動作許可されていると , 不正バスエ
ラーレポートを抑止するため , 最初の [STOP] 条件の受信後に行われます。
[ ビット 14] BEIE (Bus Error Interrupt Enable)
このビットは , バスエラー割込み許可ビットです。
0
バスエラー割込み禁止
1
バスエラー割込み許可
このビットが "1" のとき , BER ビットが "1" なら割込みを発生します。
[ ビット 13] SCC (Start Condition Continue)
このビットは , 反復 [START] 条件発生ビットです。
書込み時
0
関係なし
1
マスタ転送時に反復 [START] 条件を発生させる
このビットの読出し値は常に "0" です。
マスタモード時の割込み中に , このビットに "1" の書込み [START] 条件を発生させ
たとき , INT ビットは自動的にクリアされます。
[ ビット 12] MSS (Master Slave Select)
このビットは , マスタ / スレーブの選択ビットです。
0
1
スレーブモードとなります。
マスタモードとなり , [START] 条件を発生して IDAR レジスタの値をス
レーブアドレスとして送信します。
このビットは , マスタ送信中にアービトレーションロストが発生した場合クリアさ
れ , スレーブモードになります。
マスタ割込み中 (MSS=1, INT=1) にこのビットに "0" を書き込むと , INT ビットは自
動的にクリアされます。さらに [STOP] 条件を発生して転送が終了します。
346
第 13 章 I2C インタフェース
<注意事項>
MSS ビットは直接リセットされます。[STOP] 条件を検出するには IBSR レジスタの
BB ビットを調査してください。
バスが , アイドル状態 (MSS=0, BB=0) の間に , "1" を書き込むと , [START] 条件が発生
します。さらに , IDAR レジスタの内容も送信します。
バス使用中 (IBSR レジスタの BB=1, TRX=0, IBCR レジスタの MSS=0) に MSS ビット
に "1" を書き込むとインタフェースはバス開放まで待ってから送信を開始します。その
間に I2C インタフェースは書込みアクセスを伴うスレーブとしてアドレス指定される
と , 転送終了後にバスは開放されます。その間 , スレーブとして送信中の場合 (IBCS の
AAS=1, TRX=1) , バスが開放されてもデータ送信しません。
I2C インタフェースがスレーブ (IBSR の AAS=1) として指定されたか , 次の割込み時に
データ送信が正常であるか , 不正終了した (IBSR の AL=1) かどうかを確認することが
重要です。
本 LSI のほかにマスタモードとなる他の LSI がバス上に存在する場合 , 本 LSI をマス
タモードで使用できません。
• 使用可能な構成例
I2Cバス
MB91307
シリーズ
スレーブA
スレーブB
マスタ
I2Cバス
MB91307
シリーズ
スレーブA
マスタA
スレーブ
• 使用できない構成例
I2Cバス
MB91307
シリーズ
スレーブA
マスタA
マスタ
347
第 13 章 I2C インタフェース
下記条件で使用する場合,スレーブとして受信できませんのでゼネラルコールアドレスの
送信は禁止です。
• 本 LSI のほかにマスターモードとなるほかの LSI がバス上に存在し,本 LSI がマスタ
としてゼネラルコールアドレスを送信し,第 2 バイト目以降でアービトレーションロ
ストが発生する場合
[ ビット 11] ACK (ACKnowledge)
このビットは , データを受信した場合のアクノリッジ発生許可ビットです。
0
データ受信に対してアクノリッジ発生しない
1
データ受信に対してアクノリッジ発生する
このビットは , スレーブ時のアドレスデータ受信時には無効となります。
インタフェースが , 7 または 10 ビットのスレーブアドレスを検出したとき , イネー
ブルビット (ENTB の ITMK, ENSB の ISMK) がセットされていると , アクノリッジ
が発生します。
このビットへの書込みは , 割込みが発生している間 (INT=1) またはバスがアイドル
状態 (IBSR の BB=1) のときまたはインタフェースを動作禁止状態 (ICCR レジスタ
の EN=1) にしているときに行ってください。
[ ビット 10] GCAA (General Call Address Ackowledge)
このビットは , ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可
ビットです。
0
ゼネラルコールアドレス受信に対してアクノリッジ発生しない
1
ゼネラルコールアドレス受信に対してアクノリッジ発生する
このビットへの書込みは , 割込みが発生している間 (INT=1) またはバスがアイドル
状態 (IBSR の BB=1) のときまたはインタフェースを動作禁止状態 (ICCR レジスタ
の EN=1) にしているときに行ってください。
[ ビット 9] INTE (INTerrupt Enable)
このビットは , 割込み許可ビットです。
0
割込み禁止
1
割込み許可
このビットが "1" のとき , INT ビットが "1" なら割込みを発生します。
[ ビット 8] INT (INTerrupt)
このビットは , 転送終了割込み要求フラグビットです。リードモディファイ系命令
では "1" が読み出されます。
348
第 13 章 I2C インタフェース
書込み時
0
転送終了割込み要求フラグをクリアする
1
関係なし
読出し時
0
・転送が終了していない
・転送対象でない
・バスが開放状態
アクノリッジビットを含めた1バイト転送が終了したときに, 次の条件
1
に該当する場合セットされます。
・バスマスタである
・アドレスされたスレーブである
・ゼネラルコールアドレスを受信した
・アービトレーションロストが起こった
スレーブアドレスに指定されているとき , アクノリッジを含むスレー
ブアドレス受信の最後にセットされます。
このビットが "1" のとき , SCL ラインは「"L" レベル」に保たれます。このビットへ
"0" を書き込むことによりクリアされ , SCL ラインを開放して次バイトを転送しま
す。また , マスタ時には , 「START」条件または「STOP」条件を発生します。
このビットは , SCC ビットの "1" 書込みまたは MSS ビットのクリアでクリアされま
す。
<注意事項>
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 「START」条件の発生 ,
「STOP」条件の発生の競合が起こります。このときの優先度は次のようになります。
1. 次のバイト転送と「STOP」条件の発生
INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先され ,
「STOP」条件が発生されます。
2. 次のバイト転送と「START」条件の発生
INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先され ,
「START」条件が発生されます。
繰り返しスタートコンディションが, IDARレジスタに送られると, 競合が起こります。
3. 反復「START」条件の発生と「STOP」条件の発生
SCC ビットに "1", MSS ビットに "0" を同時に書き込むと , MSS ビットのクリアが優
先されます。
「STOP」条件が発生して , インタフェースがスレーブモードになります。
図 13.2-4 と図 13.2-5 に示したタイミングで , スタートコンディションを発生させる命
令を実行 (MSS ビットに "1" を設定 ) すると , アービトレーションロスト検出 (AL ビッ
ト =1) による割込み (INT ビット =1) が発生しません。
349
第 13 章 I2C インタフェース
• AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 1
スタートコンディション未検出 (BB ビット =0) 状態で , SDA 端子または SCL 端子レベ
ルが "L" のときに , スタートコンディションを発生させる命令を実行 (IBCR レジスタの
MSS ビットに "1" を設定 ) した場合。
図 13.2-4 AL ビット =1 検出による割込みが発生しないタイミング図
SCL 端子または SDA 端子が "L" レベル
SCL 端子
"L"
SDA 端子
"L"
I2C 動作許可状態 (EN ビット= 1)
1
マスタモード設定 (MSS ビット= 1)
アービトレーションロスト検出
(AL ビット= 1)
バスビジー (BB ビット )
0
割込み (INT ビット )
0
• AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 2
他のマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット =1) してスター
トコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに "1" を設定 )
した場合。
図 13.2-5 に示したとおり , I2C が動作禁止 (EN ビット =0) の状態で , I2C バス上の他のマ
スタが通信を開始すると , スタートコンディション未検出 (BB ビット =0) で I2C バスが占
有されている状態になるためです。
350
第 13 章 I2C インタフェース
図 13.2-5 AL ビット =1 検出による割込みが発生しないタイミング図
Start Condition
9 クロック目で INT ビット
割込みが発生しない
Stop Condition
SCL 端子
SDA 端子
SLAVE ADDRESS
ACK
DAT
ACK
EN ビット
MSS ビット
AL ビット
BB ビット
0
INT ビット
0
上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願
いします。
1. スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 )。
2. タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビッ
トデータ送信時間を待つ。*
例:I2C 転送周波数 100kHz の場合
3 ビットデータ送信時間 {1/(100 × 103)} × 3=30 µs
3. IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット =1,BB ビット =0 の場合
AL ビットと BB ビッ
には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。
トがその他の状態のときは通常処理を行う。
351
第 13 章 I2C インタフェース
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ (IBCR) の MSS ビットに "1" を設定
クロック制御レジスタ (ICCR) に設定されている
I2C 転送周波数で 3 ビットデータ送信時間待ち *
BB ビット= 0 でかつ AL ビット= 1
NO
YES
EN ビットを "0" にして I2C の初期化
通常処理へ
*:アービトレーションロストが検出された場合 , MSS ビット =1 設定後 I2C 転送周波
数での 3 ビットデータ送信時間後には確実に AL ビット =1 となります。
• AL ビット =1 検出による割込み (INT ビット =1) が発生する例
バスビジー検出 (BB ビット =1) されている状態で , スタートコンディションを発生さ
せる命令を実行 (MSS ビットに "1" を設定 ) しアービトレーションロストした場合には ,
AL ビット =1 検出時に INT ビット割込みが発生します。
352
第 13 章 I2C インタフェース
図 13.2-6 AL ビット =1 時に割込みが発生するタイミング図
9 クロック目で割込み
Start Condition
SCL 端子
SDA 端子
SLAVE ADDRESS
ACK
DAT
EN ビット
MSS ビット
AL ビット
ソフトでの AL ビットクリア
BB ビット
INT ビット
ソフトでの INT ビットクリア
クリアで SCL 開放
353
第 13 章 I2C インタフェース
クロックコントロールレジスタ (ICCR)
13.2.3
クロックコントロールレジスタ (ICCR) の構成および機能について説明します。
■ クロックコントロールレジスタ (ICCR)
図 13.2-7 に , クロックコントロールレジスタ (ICCR) のビット構成を示します。
図 13.2-7 クロックコントロールレジスタ (ICCR) のビット構成
アドレス : 00009EH
初期値→
15
TEST
W
0
14
―
13
EN
12
CS4
11
CS3
10
CS2
9
CS1
8
CS0
―
R/W
0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
以下に , クロックコントロールレジスタ (ICCR) の各ビットの機能を説明します。
[ ビット 15] テストビット
このビットは , テストビットです。
必ず "0" を書き込んでください。
[ ビット 14] 未使用ビット
このビットは , 未使用ビットです。
必ず "0" を書き込んでください。
[ ビット 13] EN (ENable)
このビットは , I2C インタフェースの動作許可ビットです。
0
動作禁止
1
動作許可
このビットが "0" のとき , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く )
の各ビットはクリアされます。バスエラーが発生して , BER ビットがセットされる
とこのビットはクリアされます。
<注意事項>
動作禁止にしたとき , インタフェースは直ちに送受信を停止し , I2C バスは好ましくな
い状態に陥ります。
354
第 13 章 I2C インタフェース
[ ビット 12 ∼ビット 8] CS4 ∼ CS0 (Clock Period Select 4 ∼ 0)
これらのビットは , シリアルクロックの周波数を設定するビットです。シフトク
ロックの周波数 fsck は次の計算式による結果が設定されます。
このビットは動作禁止 (EN=0) のときしか書き換えられません。
φ
fsck =
n × 12+16
φ : マシンクロック (CLKP) n > 1
表 13.2-1 シリアルクロック周波数の設定内容
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
2
0
0
0
1
0
3
0
0
0
1
1
•••
•••
•••
•••
•••
•••
31
1
1
1
1
1
CS4 ∼ CS0=00000 は設定禁止です。
100 Kbps
クロック周波数
CLKP [MHz]
400 Kbps
n
fsck
n
fsck
33
26
100.6
6
375
16.5
13
95.9
3
317.3
22
17
100
4
343.8
11
8
98.2
2
275
10
7
100
2
250
8
6
90.9
2
200
355
第 13 章 I2C インタフェース
13.2.4
10 ビットスレーブアドレスレジスタ (ITBA)
10 ビットスレーブアドレスレジスタ (ITBA) の構成および機能について説明します。
■ 10 ビットスレーブアドレスレジスタ (ITBA)
図 13.2-8 に , 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成を示します。
図 13.2-8 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成
アドレス : 000096H
15
14
13
12
11
10
―
9
TA9
8
TA8
―
―
―
―
―
R/W
0
―
―
―
―
―
―
R/W
0
アドレス : 000097H
7
TA7
6
TA6
5
TA5
4
TA4
3
TA3
2
TA2
1
TA1
0
TA0
初期値→
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
初期値→
ITBAH
ITBAL
このレジスタの書換えは動作停止中 (ICCR の EN=0) に行ってください。
以下に , 10 ビットスレーブアドレスレジスタ (ITBA) の各ビットの機能を説明します。
[ ビット 15 ∼ビット 10] 未使用ビット
これらのビットは , 未使用ビットです。
読出し時は "0" です。
[ ビット 9 ∼ビット 0] スレーブアドレスビット (A9 ∼ A0)
10 ビットアドレスが有効なとき (ITMK の ENTB=1) , スレーブアドレスデータ受信
後に ITBA レジスタとの比較が行われます。アクノリッジは , 10 ビット書込みアク
セスのアドレスヘッダ {11110, TA9, TA8, 0} 受信後にマスタに送信されます。第 2
受信バイトと ITBAL レジスタ値を比較して一致した場合には , マスタにアクノリッ
ジを送信するとともに AAS ビットをセットします。
このレジスタのスレーブアドレスは , ITMK レジスタの設定によりマスクすること
が可能です。
さらに , インタフェースはアクノリッジによって , 反復「START」条件の発生後に
読出しアクセスヘッダ {11110, TA9, TA8, 1} の 10 ビットのデータを受信します。
すべてのビットはストップアドレスによって , ITMK レジスタをマスクすることが
できます。
受信した 10 ビットスレーブアドレスは , ITBA レジスタへ書き込まれます。このビッ
トは , IBSR レジスタの ASS ビットが "1" のときに有効です。
356
第 13 章 I2C インタフェース
13.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMK)
10 ビットスレーブアドレスマスクレジスタ (ITMK) の構成および機能について説明
します。
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK)
図 13.2-9 に , 10 ビットスレーブアドレスマスクレジスタ (ITMK) のビット構成を示し
ます。
図 13.2-9 10 ビットスレーブアドレスマスクレジスタ (ITMK) のビット構成
15
アドレス : 000098H ENTB
R/W
0
初期値→
14
RAL
R
0
13
12
11
10
―
―
―
―
9
TM9
8
TM8
―
―
―
―
R/W
1
R/W
1
7
6
5
4
3
2
1
0
アドレス : 000099H
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
初期値→
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
以下に, 10ビットスレーブアドレスマスクレジスタ (ITMK) の各ビットの機能を説明し
ます。
[ ビット 15] ENTB (10 ビットスレーブアドレス許可ビット )
このビットは , 10 ビットスレーブアドレスの動作許可ビットです。
0
10 ビットスレーブアドレス動作禁止
1
10 ビットスレーブアドレス動作許可
インタフェースが , 動作禁止のとき (ICCR の EN=0) , 書込みアクセスが可能です。
[ ビット 14] RAL ( スレーブアドレス長ビット )
このビットは , スレーブアドレス長を示します。
0
7 ビットスレーブアドレス
1
10 ビットスレーブアドレス
10 ビットスレーブアドレス動作 , 7 ビットスレーブアドレス動作が両方許可
(ENTB=1 および ENSB=1) になっている場合にインタフェースされたアドレス長を
示します。このビットは AAS ビットが "1" のときに有効です。
このビットは , インタフェースの動作を禁止したときにクリアされます。
357
第 13 章 I2C インタフェース
このビットは読出しのみ可能です。
[ ビット 13 ∼ビット 10] 未使用ビット
このビットは , 未使用ビットです。読出し時は常に "1" が読み出されます。
[ ビット 9 ∼ビット 0] 10 ビットスレーブアドレスマスクビット
このビットは , 10 ビットスレーブアドレスレジスタ (ITBA) のビットをマスクしま
す。インタフェースが , 動作禁止のとき (ICCR の EN=0) , 書込みアクセスが可能で
す。
0
このビットは , スレーブアドレスの比較に使われない
1
このビットは , スレーブアドレスの比較に使われます
このビットを設定することにより , 一定空間の 10 ビットスレーブアドレスに対して
アクノリッジを送信することが可能になります。
ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており , TM9 ∼
TM0 の値が "1" のときは ITBA のアドレスが有効になり "0" のときは無効になります。
例 :ITBA アドレス 0010010111B
ITMK アドレス 1111111100B のとき
スレーブアドレスは 0010010100B ∼ 0010010111B の空間になります。
本レジスタはインタフェース停止時に書き換えてください (ICCR の EN=0) 。
<注意事項>
アドレスのマスクは , インタフェースが動作許可後に行われます。さらに , スレーブア
ドレスが再度セットされたときも , マスクされます。
358
第 13 章 I2C インタフェース
13.2.6
7 ビットスレーブアドレスレジスタ (ISBA)
7 ビットスレーブアドレスレジスタ (ISBA) の構成および機能について説明します。
■ 7 ビットスレーブアドレスレジスタ (ISBA)
図 13.2-10 に , 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成を示します。
図 13.2-10 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成
7
アドレス : 00009BH
―
6
SA6
初期値→
―
―
R/W
0
5
SA5
4
SA4
3
SA3
2
SA2
1
SA1
0
SA0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
このレジスタの書換えは動作停止中 (ICCR の EN=0) に行ってください。
以下に , 7 ビットスレーブアドレスレジスタ (ISBA) の各ビットの機能を説明します。
[ ビット 7] 未使用ビット
このビットは , 未使用です。
読出し時は , "0" が読み出されます。
[ ビット 6 ∼ビット 0] A6 ∼ A0 ( スレーブアドレスビット )
A6 ∼ A0 は , 7 ビットスレーブアドレスを指定するレジスタです。スレーブ時 , ア
ドレスデータ受信後に ISBA レジスタとの比較が行われ , 一致している場合はマス
タに対してアクノリッジを送信するとともに AAS ビットをセットします。
本レジスタのスレーブアドレスは , ISMK レジスタの設定によりマスクすることが
できます。
本レジスタは , 7 ビットスレーブアドレス動作が有効 (ISMK の ENSB=1) のときに機
能します。
359
第 13 章 I2C インタフェース
13.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK)
7 ビットスレーブアドレスマスクレジスタ (ISMK) の構成および機能について説明し
ます。
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK)
図 13.2-11 に, 7ビットスレーブアドレスマスクレジスタ (ISMK) のビット構成を示しま
す。
図 13.2-11 7 ビットスレーブアドレスマスクレジスタ (ISMK) のビット構成
アドレス : 00009AH
初期値→
15
ENSB
14
SM6
13
SM5
12
SM4
11
SM3
10
SM2
9
SM1
8
SM0
R/W
0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
このレジスタの書換えは動作停止中 (ICCR の EN=0) に行ってください。
以下に , 7 ビットスレーブアドレスマスクレジスタ (ISMK) の各ビットの機能を説明し
ます。
[ ビット 15] ENSB (7 ビットスレーブアドレス許可ビット )
このビットは , 7 ビットスレーブアドレスの動作許可ビットです。
0
7 ビットスレーブアドレス動作禁止
1
7 ビットスレーブアドレス動作許可
[ ビット 14 ∼ビット 8] 7 ビットスレーブアドレスマスクビット
このビットは , 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクしま
す。
0
このビットは , スレーブアドレスの比較に使われない
1
このビットは , スレーブアドレスの比較に使われます
このビットを設定することにより , 一定空間の 7 ビットスレーブアドレスに対して
アクノリッジを送信することが可能になります。
ISMK の SM6 ∼ SM0 の各ビットが ISBA のアドレスの各ビットに対応しており , SM6 ∼
SM0 の値が"1" のときは ISBA のアドレスが有効になり , "0" のときは無効になります。
例 : ISBA アドレス 0010111B
ISMK アドレス 1111100B のとき
スレーブアドレスは 0010100B ∼ 0010111B の空間になります。
360
第 13 章 I2C インタフェース
本レジスタは , インタフェース停止時 (ICCR の EN=0) に書き換えてください。
<注意事項>
アドレスのマスクは , インタフェースが動作許可後に行われます。さらに , スレーブア
ドレスが再度セットされたときでも , マスクされます。
361
第 13 章 I2C インタフェース
13.2.8
データレジスタ (IADR)
データレジスタ (IADR) の構成および機能について説明します
■ データレジスタ (IADR)
図 13.2-12 に , データレジスタ (IADR) のビット構成を示します。
図 13.2-12 データレジスタ (IADR) のビット構成
アドレス : 00009DH
初期値→
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
以下に , データレジスタ (IADR) の各ビットの機能を説明します。
[ ビット 7 ∼ビット 0] D7 ∼ D0 ( データビット )
D7 ∼ D0 は , シリアル転送に使用されるデータレジスタで , MSB から転送されます。
このレジスタの書込み側はダブルバッファになっており , バスが使用中 (BB=1) で
ある場合 , 書込みデータは各バイト転送時にシリアル転送用のレジスタにロードさ
れます。読出し時はシリアル転送用のレジスタを直接読み出すため , 受信データは
INT ビットがセットされている場合のみ有効です。
362
第 13 章 I2C インタフェース
クロックディセーブルレジスタ (IDBL)
13.2.9
クロックディセーブルレジスタ (IDBL) の構成および機能について説明します。
■ クロックディセーブルレジスタ (IDBL)
図 13.2-13 に , クロックディセーブルレジスタ (IDBL) のビット構成を示します。
図 13.2-13 クロックディセーブルレジスタ (IDBL) のビット構成
7
6
5
4
3
2
1
アドレス : 00009FH
―
―
―
―
―
―
―
0
DBL
初期値→
―
―
―
―
―
―
―
R/W
0
[ ビット 0] DBL ( クロックディセーブルビット )
このビットは , I2C インタフェース用の動作クロック供給の許可 , 停止を指示しま
す。
低消費電力時に使用できます。
0
I2C のクロックを供給します。
1
I2C のクロックを停止します。I2C ラインは開放されます。
<注意事項>
このビットを "1" にすると , I2C は送受信中でも直ちに停止します。
363
第 13 章 I2C インタフェース
13.3
I2C インタフェースの動作
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) の 2 本の双方向バスラインにより通信が行われます。I2C インタフェースはそ
れに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を有し , ワイヤード論理
を可能にします。
■「START」 条件
バスが開放されている状態 (IBSR の BB=0, IBCR の MSS=0) で MSS ビットに "1" を書
き込むと , I2C インタエースはマスタモードになり「START」条件を発生します。
バスがアイドル状態のとき (MSS=0, BB=0) に, MSSビットに"1"を書き込むと「START」
条件を発生して IDAR レジスタ値を送信します。
反復「START」条件を発生させるには , インタフェースがマスタモード時または割込
み処理時に SCC ビットに "1" を書き込みます。
バス使用中 (IBSR の BB=1 および TRX=0, IBCR の MSS=0 および INT=0) に MSS ビッ
トに "1" を書き込むと , インタフェースはバスが開放されるまで待ってから送信を開始
します。その間 , インタフェースがスレーブで書込みアクセス受信中であったら , 転送
が終了した後に送信を開始してバスを開放します。
また , インタフェースがスレーブデータを送信していたら , バスが開放されても送信を
開始しません。
使用するためには , 次の点をチェックすることが重要です。
• スレーブとして指定されているかどうか (IBCR の MSS=0, IBSR の AAS=1)
• 次の割込みでデータバイト送信が正常か (IBCR の MSS=1) , そうでないか (IBSR の
AL=1)
ほかの状態で MMS ビットまたは SCC ビットに "1" を書き込んでも無視されます。
■「STOP」 条件
マスタモード (IBCR の MSS=1, INT=1) 状態で MSS ビットに "0" を書き込むと ,「STOP」
条件を発生してスレーブモード状態に遷移します。ほかの状態で MSS ビットに "0" を
書き込んでも関係ありません。
MSS ビットがクリアされた後 , インタフェースは「STOP」条件を発生しようとします
が , その前に SDL ラインがほかのデバイスにより "L" にドライブされた場合には ,
「STOP」条件は発生しません。このときは , 次のバイトが転送された後に割込みが発生
します。
■ スレーブアドレス検出
スレーブモードでは , 「START」条件の発生後に BB=1 にセットされ , マスタデバイス
からの受信データは IDAR レジスタに格納されます。
364
第 13 章 I2C インタフェース
● 7 ビットスレーブアドレス動作許可時 (ISMK の ENSB=1)
8 ビットデータを受信後に , IDAR レジスタ値と ISBA レジスタ値を比較します。この
とき , ISMK レジスタでマスクされているビットは比較されません。
比較結果が一致していた場合 , ASS ビットに "1" がセットされてマスタに対してアクノ
リッジを返し , 受信データのビット 0 の値を反転して TRX ビットに格納します。
● 10 ビットスレーブアドレス動作許可時 (ITMK の ENTB=1)
10 ビットアドレスのヘッダ部 {11110, TA0, TA0, write} を検出すると , マスタに対して
アクノリッジを返して受信データの最終ビットの値を反転し , TRX ビットに格納しま
す。このとき , 割込みは発生しません。
それから , 次の受信バイトデータと ITBA レジスタ下位バイトとを比較します。このと
き , ITMK レジスタでマスクされているビットは比較されません。結果が一致していた
場合 , ASS ビットに "1" がセットされ , マスタに対してアクノリッジを返します。この
ときに割込みが発生します。
スレーブとしてアドレス指定されていて反復「START」条件を検出した場合 , 10 ビッ
トアドレスのヘッダ部 {11110, TA0, TA1, read} を受信後に , ASS ビットに "1" がセット
されて割込みを発生します。
本インタフェースは , 10 ビットアドレスレジスタ (ITBA) と 7 ビットアドレスレジスタ
(ISBA) を独立して搭載していますので , 両方の動作を許可 (ISMK の ENSB=1, ITMK の
ENTB=1) することにより , 10 ビット /7 ビット両方のアドレスに対してアクノリッジを
返すことができます。
受信スレーブアドレス長は , ITMK レジスタの RAL ビットにより判定することができ
ます。RAL ビットは ASS=1 のときに有効です
■ スレーブアドレスマスク
スレーブアドレスマスクレジスタ (ITMK/ISMK) は , スレーブアドレスレジスタの各ビット
に対してマスクすることができます。マスクレジスタに "1" がセットされたビットはアド
レス比較をしますが , "0" に設定されているビットは比較対象になりません。これにより ,
複数のスレーブアドレスに対してアクノリッジを返すことができます。
受信スレーブアドレスは, ASS=1のときにITBAレジスタ (10ビットアドレス受信時:RAL=1)
または ISBA レジスタ (7 ビットアドレス受信時 :RAL=0) を読み出すことにより認識するこ
とができます。
もし , マスクレジスタをすべてクリアした場合 , インタフェースはスレーブアドレスの
バスモニタとして使用することができます。しかし , どんなスレーブアドレスにもアク
ノリッジを返すので , リアルバスモニタとしては使用できません。
■ スレーブアドレッシング
マスタモードでは ,「START」条件を発生した後 BB=1, TRX=1 にセットされ , IDAR レ
ジスタ値を MSB から送信します。アドレスデータを送信後にスレーブデバイスからア
クノリッジを受信すると , 送信データのビット 0 ( 送信後の IDAR レジスタのビット 0)
を反転して TRX ビットに格納します。スレーブからのアクノリッジは , IBSR レジスタ
の LRB ビットに格納されます。この動作は , 反復「START」条件でも行われます。
書込みアクセスでの 10 ビットスレーブアドレスでは 2 バイト送信されますが , このと
365
第 13 章 I2C インタフェース
きの最初のバイトデータは 10 ビットアドレスのヘッダ部 {11110, A9, A8, 0} として構
成され , 2 バイト目のデータは 10 ビットアドレスの下位ビット {A7, A6, A5, A4, A3, A2,
A1, A0} として構成されます。
上記の一連の送信によってスレーブ側は読出しアクセス状態になり , 反復「START」条
件は読出しアクセスの 10 ビットアドレスヘッダ部 {11110, A9, A8, 1} とともに生成さ
れます。
• 7 ビットスレーブ , 書込みアクセス
:「START」条件 A6, A5, A4, A3, A2, A1, A0, 0
• 7 ビットスレーブ , 読出しアクセス
:「START」条件 A6, A5, A4, A3, A2, A1, A0, 1
• 10 ビットスレーブ , 書込みアクセス
:「START」条件 11110, A9, A8, 0, A7, A6, A5, A4, A3, A2, A1, A0
• 10 ビットスレーブ , 読出しアクセス
:「START」条件 11110, A9, A8, 1, A7, A6, A5, A4, A3, A2, A1, A0
反復スタート :11110, A9, A8, 1
■ アービトレーション
マスタモードで送信中に , ほかのマスタデバイスから同時にデータが送信されたとき ,
アービトレーションが起こります。もし , 自分の送信データが "1" のとき , SDA ライン
上のレベルが "L" であった場合 , アービトレーションロストと認識します。そして AL=1
にセットされます。
データの最初のビットで「START」条件を検出したとき , 同じ理由で [START] 条件ま
たは「STOP」条件を生成できないときにも AL ビットはセットされます。
アービトレーションロストの検出により , MSS ビットと TRX ビットはクリアされて即
時デバイスはスレーブモードに遷移し , 自分のスレーブアドレスを受信するとアクノ
リッジを返します。
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。
ACKビット (IBCR) は, データ受信時にアクノリッジを返すかどうかを設定するビット
です。
スレーブモード時のデータ送信 (ほかのマスタからの読出しアクセス) にマスタからの
アクノリッジが返らないとき , TRX ビットは "0" にクリアされ , デバイスは受信モード
になります。これにより , マスタはスレーブが SCL ラインを開放したときに「STOP」
条件を発生することができます。
マスタモード時は , LRB ビット (IBSR) を読み出すことにより , スレーブのアクノリッ
ジを確認できます。
■ バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
366
第 13 章 I2C インタフェース
• データ転送中 (Ack ビット含む ) の I2C バス上の基本規定違反の検出
• マスタ一時のストップコンディション検出
• バスアイドル時の I2C バス上における基本規定違反の検出
■ その他
● アービトレーションロスト後のアドレッシング
アービトレーションロストした後 , 自分がアドレッシングされている場合と , アドレッ
シングされていなかった場合をソフトウェアで判断しなければなりません。
アービトレーションロストするとハードウェア的にスレーブになるが , 1 バイト転送終
了後 , CLK ライン , DATA ライン双方を "L" に引っ張ります。このため , アドレッシン
グされていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシングさ
れていた場合には , スレーブ送信またはスレーブ受信の準備をしてから , CLK ライン ,
DATA ラインを開放する必要があります。これらは , すべてソフトウェアで処理する
必要があります。
● 1 バイト転送終了時点での割込み条件
I2C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点でまたは割込み条件に
該当していた場合 , 割込み要因がたつ仕様になっています。
1 つの割込みで , 複数の割込み条件を判断しなければならないため , 割込みルーチン内
で各フラグをチェックしなければなりません。1 バイト転送終了時点での割込み条件を
下記に示します。
• バスマスタであった場合
• アドレスされたスレーブであった場合
• ゼネラルコールアドレスを受信した場合
• アービトレーションロストが生じた場合
● アービトレーションロストと割込み要因
アービトレーションロストを検出した場合 , 即座に割込み要因が立つのではなく , 1 バ
イト転送終了した時点で割込み要因が立ちます。アービトレーションロストを検出す
るとハードウェア的にスレーブになりますが , スレーブになっても割込み要因を立て
るために , トータル 9 クロック出力します。したがって , 即座に割込み要因が立たない
ため , アービトレーションロスト後に処理することはできません。
367
第 13 章 I2C インタフェース
<注意事項>
MMS ビットに "0" を書き込んでから , 「STOP」条件を発生するまでに時間を要しま
す。「STOP」条 件 を 発 生 前 に I2C イ ン タ フ ェ ー ス を 動 作 禁 止 (DBL="1":IDAR or
EN="0":ICCR) にすると , 直ちに動作が停止し , SCL ラインに不正クロックが発生しま
す。
I2C インタフェースを動作禁止にするときは ,「STOP」条件の発生を確認 (BB="0":IBSR)
した後 , 動作を禁止 (DBL="1":IDAR or EN="0":ICCR) してください。
マスタモードでの送信時 , SCL ラインにノイズ等で不正クロックが発生すると , I2C イ
ンタフェースの送信ビットカウンタが速く進み , ACK サイクルでスレーブが SDA ライ
ンに "L" を出したままハングアップすることがあります。
このようなクロックの不正に対しては , エラー (AL="1", BER="1" が発生しません ) 。
このような場合 , 次の方法でエラー処理をしてください。
1) MSS="1", TRX="1", INT="1" のとき , LRB="1" であれば , 通信エラーと判断し
ます。
2) ここで , EN="0" とし , その後 EN="1" とすることにより , 擬似的に SCL が 1
クロック発生します。これにより , スレーブにバスを開放させます。
EN="0" から EN="1" の期間は , スレーブ側がクロックと認識できる期間 ( 送
信クロックの "H" 期間と同じ程度 ) としてください。
3) EN="0" の時点で , IBSR, IBCR はクリアされますので , 「START」コンディ
ションから再送信処理をしてください。このとき , BSS="0" による「STOP」
コンディションは生成されません。
このとき , EN="1" から MSS="1" (「START」コンディション ) までに , "n ×
7 × tCPP" 以上の時間を空けてください。
例 ) 高速モードの場合 : 6 × 7 × 30.3 ≒ 1.273µs
標準モードの場合 : 27 × 7 × 30.3 ≒ 5.727µs
BER がセットされている場合は , EN="0" でクリアされませんので , クリア後 , 再送信
してください。
368
第 13 章 I2C インタフェース
13.4
動作フローチャート
次の動作例のフローチャートを示します。
• スレーブアドレスとデータ転送
• 受信データ
• 割込み処理
369
第 13 章 I2C インタフェース
■ スレーブアドレスとデータ転送の例
図 13.4-1 スレーブアドレスとデータ転送フロー
7ビットスレーブアドレッシング
転送データ
スタート
スタート
BER ビットクリア(セット)
インタフェース動作許可 EN=1
ライトアクセスの
スレーブアドレス
IDAR =S.アドレス≪1+RW
MSS=1
INT=0
IDAR = バイトデータ
INT=0
N
INT=1?
INT=1?
Y
Y
N
Y
Y
バスエラー
BER=1?
BER=1?
N
N
AL=1?
Y
AASの検査
により再起動
転送
AASの検査
により再起動
転送
AL=1?
N
N
ACK?
N
(LRB=0?)
ACK?
N
(LRB=0?)
Y
Y
データ転送の準備
最終バイト
の転送
Y
N
スレーブはACKを発生しないが
反復「START」条件,「STOP」条件を
発生する
転送終了
反復「START」条件,「STOP」条件を
発生する
370
第 13 章 I2C インタフェース
■ 受信データの例
図 13.4-2 受信データのフロー
スタート
リードアクセスの
スレーブアドレス
スレーブからの最終
リードデータなら
ACKビットをクリアする。
INT=0
INT=1?
N
Y
BER=1?
Y
バスエラー
再起動
N
N
最終バイト
の転送
Y
転送終了
反復「START」条件,「STOP」条件を
発生する
371
第 13 章 I2C インタフェース
■ 割込み処理
図 13.4-3 割込み処理フロー
スタート
Y
Y
ほかのモジュール
からの受信割込み
INT=1?
N
BER=1?
Y
バスエラー
再起動
N
Y
GCA=1?
N
N
Y
転送の失敗
再トライを行う
スレーブ時にゼネラルコール検出
AAS=1?
Y
Y
AL=1?
AL=1?
N
N
Y
LRB=1?
Y
次の割込みで
新データ転送開始
必要であれば
ACKビットを変更
ADT=1?
スレーブのACKなし
「STOP」条件,反復
「START」条件の生成
N
N
TRX=1?
アビトレーションロスト
再転送
TRX=1?
Y
Y
N
N
IDARから受信データ
を読む。必要で
あればACKビット
を変更する
IDARに
次の送信
データを
ライト
IDARから受信データ
を読む。必要であれ
ばACKビットを変更
する
クリア INT ビット
ISR終了
372
IDARに次の送信
データをライト
またはMSSビット
のクリア
第 14 章
DMA コントローラ (DMAC)
この章では , DMA コントローラ (DMAC) の概要 ,
レジスタの構成 / 機能および DMA コントローラ
(DMAC) の動作について説明します。
14.1 DMA コントローラ (DMAC) の概要
14.2 DMA コントローラ (DMAC) のレジスタ
14.3 DMA コントローラ (DMAC) の動作
14.4 動作フローチャート
14.5 データバス
14.6 DMA 外部インタフェース
373
第 14 章 DMA コントローラ (DMAC)
14.1
DMA コントローラ (DMAC) の概要
DMA コントローラ (DMAC) は , FR ファミリデバイスで DMA (Direct Memory
Access) 転送を実現するためのモジュールです。本モジュールの制御による DMA
転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり , シス
テムのパフォーマンスを増加させます。
■ ハードウェア構成
DMA コントローラ (DMAC) は , おもに以下のブロックから構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネルアクセス制御回路
• 32 ビットアドレスレジスタ ( リロード指定可 : 各チャネル 2 本 )
• 16 ビット転送回数レジスタ ( リロード指定可 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 外部転送要求入力端子 :DREQ0, DREQ1, DREQ2 (ch0, ch1, ch2 のみ )
• l 外部転送要求受付け出力端子 :DACK0, DACK1, DACK2 (ch0, ch1, ch2 のみ )
• DMA 終了出力端子 :DEOP0, DEOP1, DEOP2 (ch0, ch1, ch2 のみ )
• フライバイ転送 (memory to I/O, memory to memory) (ch0, ch1, ch2 のみ )
• 2 サイクル転送
■ 主要機能
DMA コントローラ (DMAC) によるデータ転送には , おもに以下の機能があります。
• 優先順位 (ch0 > ch1 > ch2 > ch3 > ch4)
- 複数チャネルの独立したデータ転送が可能 (5 チャネル )
• 優先順位回転
• DMAC 起動要因
- 外部専用端子入力 ( エッジ検出 / レベル検出 ch0, ch1, ch2 のみ )
- 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- デマンド転送 / バースト転送 / ステップ転送 / ブロック転送
- アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
アドレス増減幅は -255 ∼ +255 まで指定可能
- データの種類 : バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
374
第 14 章 DMA コントローラ (DMAC)
■ ブロックダイヤグラム
図 14.1-1 に , DMA コントローラ (DMAC) のブロックダイヤグラムを示します。
図 14.1-1 DMA コントローラ (DMAC) のブロックダイヤグラム
カウンタ
バスコントローラへ
DMA転送要求
DMA起動
要因選択回路 ペリフェラル起動要求/停止入力
&
要求受付け制御 外部端子起動要求/停止入力
ライトバック
バッファ
セレクタ
DTC 2段レジスタ DTCR
カウンタ
アドレス
割込みコントローラへ
MCLREQ
周辺割込みクリア
BLK register
状態遷移
回路
TYPE.MOD,WS
DDNO register
DMAコントロール
DSAD 2段レジスタ
IRQ[4:0]
X-bus
セレクタ
ERIR,EDIR
セレクタ
セレクタ
カウンタバッファ カウンタバッファ
アクセス
アドレスカウンタ
DDNO
バス制御部
バスコン
トローラ
へ
リード/
ライト制御
SADM,SASZ[7:0] SADR
ライトバック
セレクタ
Read
Write
DSS[3:0]
優先度回路
バス制御部
バッファ
DDAD 2段レジスタ
DADM,DASZ[7:0] DADR
ライトバック
375
第 14 章 DMA コントローラ (DMAC)
14.2
DMA コントローラ (DMAC) のレジスタ
DMA コントローラ (DMAC) で使用するレジスタの構成および機能について説明しま
す。
■ DMA コントローラ (DMAC) のレジスタ一覧
図 14.2-1 に , DMA コントローラ (DMAC) のレジスタ一覧を示します。
図 14.2-1 DMA コントローラ (DMAC) のレジスタ一覧
( ビット ) 31
ch0 コントロール / ステータス レジスタ A DMACA0
00000200H
ch0 コントロール / ステータス レジスタ B DMACB0
00000204H
ch1 コントロール / ステータス レジスタ A DMACA1
00000208H
ch1 コントロール / ステータス レジスタ B DMACB1 0000020CH
ch2 コントロール / ステータス レジスタ A DMACA2
00000210H
ch2 コントロール / ステータス レジスタ B DMACB2
00000214H
ch3 コントロール / ステータス レジスタ A DMACA3
00000218H
ch3 コントロール / ステータス レジスタ B DMACB3 0000021CH
ch4 コントロール / ステータス レジスタ A DMACA4
00000220H
ch4 コントロール / ステータス レジスタ B DMACB4
00000224H
全体制御レジスタ
DMACR
00000240H
ch0
転送元 アドレスレジスタ
DMASA0
00001000H
ch0
転送先 アドレスレジスタ
DMADA0
00001004H
ch1
転送元 アドレスレジスタ
DMASA1
00001008H
ch1
転送先 アドレスレジスタ
DMADA1
0000100CH
ch2
転送元 アドレスレジスタ
DMASA2
00001010H
ch2
転送先 アドレスレジスタ
DMADA2
00001014H
ch3
転送元 アドレスレジスタ
DMASA3
00001018H
ch3
転送先 アドレスレジスタ
DMADA3
0000101CH
ch4
転送元 アドレスレジスタ
DMASA4
00001020H
ch4
転送先 アドレスレジスタ
DMADA4
00001024H
376
24
23
16
15
08
07
00
第 14 章 DMA コントローラ (DMAC)
■ レジスタ設定時の注意
DMA コントローラ (DMAC) の設定をする場合 , DMA が停止しているときに行う必要
があるビットがあります。動作中 ( 転送中 ) に設定した場合には , 正常な動作は保証さ
れません。
以降で説明する各レジスタのビット機能についている「* マーク」は , DMAC 転送中に
設定すると動作に影響するビットを示しています。このビットの書換えは , DMAC 転
送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR の DMAE=0 または DMACA の DENB=0 のとき )
で設定した場合は , 起動許可後に設定が有効になります。
DMA 転送の一時停止状態 (DMACR の DMAH [3:0] ≠ 0000 または DMACA の PAUS=1
のとき ) で設定した場合は , 一時停止解除後に設定が有効になります。
377
第 14 章 DMA コントローラ (DMAC)
コントロール / ステータスレジスタ A (DMACA0 ∼
DMACA4)
14.2.1
コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) は , DMAC 各チャネ
ルの動作を制御するレジスタで , チャネルごとに独立して存在します。
コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) の構成および機能に
ついて説明します。
■ コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4)
図 14.2-2 に , コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) のビット構
成を示します。
図 14.2-2 コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) のビット構成
bit
31
30
29
28
27
DENB PAUS STRG
bit
15
14
13
26
25
24
23
IS [4 : 0]
12
11
10
22
21
20
19
DDN0 [3 : 0]
9
8
7
6
5
18
17
16
BLK [3 : 0]
4
3
2
1
0
DTC [15:0]
( 初期値 : 00000000_0000XXXX_XXXXXXXX_XXXXXXXXB)
以下に , コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) の各ビットの機
能を説明します。
[ ビット 31] DENB (Dma ENaBle) :DMA 動作許可ビット
このビットは , 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは, 転送要求が発生し受け付けられるとDMA転送を開始します。
起動許可されていないチャネルに対して発生した転送要求は , すべて無効となります。
起動されたチャネルの転送が指定回数分すべて終了した場合 , このビットは "0" に
なり , 転送は停止します。
このビットに "0" を書き込むと強制停止しますが , 必ず PUAS ビット [DMACA の
ビット 30] で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。
一時停止しないで強制停止した場合は, DMAは停止しますが転送データは保証され
ません。停止の確認は DSS [2:0] ビット [DMACB のビット 18 ∼ビット 16] で行っ
てください。
DENB
機 能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。
• 読出し / 書込み可能です。
378
第 14 章 DMA コントローラ (DMAC)
DMAC 全体制御レジスタ (DMACR) のビット 15 (DMAE ビット ) により , 全チャネ
ルの動作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を
維持します。また , 本ビットにより動作が許可されている状態で前記ビットにより
動作が禁止された場合 , 本ビットは "0" となり , 転送は中断します ( 強制停止 ) 。
[ ビット 30] PAUS (PAUSe) *: 一時停止指示
このビットは , 対応するチャネルの DMA 転送の一時停止制御を行います。このビッ
トがセットされると , 再びこのビットがクリアされるまでの間は , DMA 転送を行い
ません (DMA が停止中は DSS ビットが "1xx" になります ) 。
起動前にこのビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。起動後 ( 動作中 ) に一時停止をする場合は , 一度全 DMA の動作を停止させたあ
とに (DMACR の DMAH [3:0] ≠ 0000) , このビットに "1" を書き込み , その後に
(DMACR の DMAH [3:0] =0000) にして動作を再開させてください。この理由は , 動
作中に書き込むことによってビット 31 の DENB 動作許可ビットに影響を与えるた
めです。
このビットがセットされている間に新たに発生した転送要求は受け付けられます
が , このビットをクリアしないと転送は開始しません (「14.3.9 開始∼終了 / 停止ま
での動作」を参照 ) 。
PAUS
機 能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 29] STRG (Software TRiGger) : 転送要求
このビットは , 対応するチャネルの DMA 転送要求を生成します。このビットに "1"
を書き込むと , レジスタへの書込みが終了した時点より転送要求が発生し , 対応
チャネルの転送を開始します。
ただし , 対応するチャネルが起動されていない場合は , このビットへの操作は無効
となります。
DMAE ビットの書込みによる起動と , このビットによる転送要求が同時の場合転送
要求は有効となり , 転送を開始します。また , PAUS ビットへの "1" 書込みと同時で
ある場合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送
は開始しません。
STRG
機 能
0
無効
1
DMA 起動要求
379
第 14 章 DMA コントローラ (DMAC)
•
リセット時 :"0" に初期化されます。
•
読出し値は常に "0" となります。
•
読出し値は "1" のみ有効で , "0" は動作に影響を与えません。
[ ビット 28 ∼ビット 24] IS4 ∼ IS0 (Input Select) *: 転送要因選択
このビットは , 転送要求の要因を表 14.2-1 のように選択します。STRG ビット機能
によるソフトウェア転送要求のときは IS=00000 に設定してください。
表 14.2-1 転送要求の要因設定
IS
機 能
00000
ソフトウェア起動 (STRG ビット )
00001
↓
01101
設定禁止
↓
設定禁止
01110
外部端子 "H" レベル または ↑エッジ
01111
外部端子 "L" レベル または ↓エッジ
10000
UART0 ( 受信完了 )
10001
UART1 ( 受信完了 )
10010
UART2 ( 受信完了 )
10011
UART0 ( 送信完了 )
10100
UART1 ( 送信完了 )
10101
UART2 ( 送信完了 )
10110
外部割込み 0*
10111
外部割込み 1*
11000
リロードタイマ 0*
11001
リロードタイマ 1*
11010
リロードタイマ 2*
11011
外部割込み 2*
11100
外部割込み 3*
11101
外部割込み 4*
11110
外部割込み 5*
11111
A/D
*: 割込み要求信号によるDMA転送起動は使用できません (MB91306R/307Rのみ) 。
380
•
リセット時 :"00000" に初期化されます。
•
読出し / 書込み可能です。
第 14 章 DMA コントローラ (DMAC)
<注意事項>
• 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxx) , 選択した周辺機能は
ICR レジスタで割込みを禁止状態にしてください。
• デマンド転送モードを選択した場合は , IS [4:0] =01110, 01111 のみ設定可能です。ほ
かの要因での起動は禁止です。
• 外部要求入力 (DREQx) は , ch0, ch1, ch2 のみ有効です。ch3, ch4 は外部要求入力の選
択はできません。また , レベル検出かエッジ検出かはモード設定により決定されます。
デマンド転送はレベル検出 , ほかはエッジ検出になります。
• 外部割込みで , DMA 転送を起動する場合は , クロック分周比は CLKB:CLKP=(1:2) また
は (1:1) にしてください。
例 : CLKB=66MHz, CLKP=33MHz
CLKB=33MHz, CLKP=33MHz
[ ビット 23 ∼ビット 20] DDNO3 ∼ DDNO0 ( ダイレクトアクセスナンバー ) *:
内蔵周辺へのフライバイ機能
これらのビットは , 対応するチャネルで使用する転送先 / 元の内蔵周辺を指定しま
す。
表 14.2-2 ダイレクトアクセスナンバーの設定内容
IS
機 能
0000
設定禁止
0001
未使用
0010
未使用
0011
未使用
0100
未使用
0101
未使用
0110
未使用
0111
未使用
1000
未使用
1001
未使用
1010
未使用
1011
未使用
1100
未使用
1101
未使用
1101
未使用
1110
未使用
1111
設定禁止
• リセット時 :"0000" に初期化されます。
381
第 14 章 DMA コントローラ (DMAC)
• 読出し / 書込み可能です。
<注意事項>
MB91307 シリーズは , この機能はサポートされません。書込みデータは無視されます。
[ ビット 19 ∼ビット 16] BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定
このビットは , 対応するチャネルのブロック転送時のブロックサイズを指定しま
す。このビットに設定した値が 1 回の転送単位におけるワード数 ( 正確には , デー
タ幅設定の繰返し回数 ) となります。ブロック転送を行わない場合は "01H" ( サイズ
1) を設定してください。デマンド転送時 , 本レジスタ値は無視されます。サイズ 1
となります。
BLK
XXXX
機 能
対応チャネルのブロックサイズ指定
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[ ビット 15 ∼ビット 0] DTC (Dma Terminal Count register) *: 転送回数レジスタ
DTC は , 転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成され
ています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
BLK
XXXX
機 能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに -1 カウントします ( 減算 ) 。DMA の転
送終了時にカウンタバッファの内容を本レジスタに書き戻してDMAは終了します。
したがって , DMA 動作中の転送回数値を読み出すことはできません。
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード
長でアクセスしてください。
• 読出し時の値は , カウント値となります。リロード値の読出しはできません。
382
第 14 章 DMA コントローラ (DMAC)
14.2.2
コントロール / ステータスレジスタ B (DMACB0 ∼
DMACB4)
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) は , DMAC 各チャネ
ルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) の構成および機能に
ついて説明します。
■ コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4)
図 14.2-3 に , コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット構
成を示します。
図 14.2-3 コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット構成
bit
31
30
TYPE [1 : 0]
bit
15
14
29
28
MOD [1 : 0]
13
12
27
26
WS [1 : 0]
11
10
25
24
23
22
21
20
19
18
SADM DADM DTCR SADR DADR ERIE EDIE
9
SASZ [7 : 0]
8
7
6
5
4
3
17
16
DSS [2 : 0]
2
1
0
DASZ [7 : 0]
( 初期値 : 00000000_00000000_XXXXXXXX_XXXXXXXXB)
[ ビット 31, ビット 30] TYPE (TYPE) *: 転送タイプ設定
これらのビットは転送タイプ設定ビットで , 対応するチャネルの動作タイプを設定
します。
• 2 サイクル転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA)
を設定して , 読出し動作と書込み動作を転送回数分繰り返して転送するモード。
転送元 / 転送先ともに全領域 (32 ビットアドレス ) 指定可能です。
• フライバイ転送モード : 転送先アドレス (DMADA) にメモリアドレスを設定する
ことにより , 外部⇔外部転送を 1 サイクルで行うモード。メモリアドレスは , 必
ず外部領域を指定してください。
表 14.2-3 転送タイプの設定内容
TYPE
機 能
00
2 サイクル転送 ( 初期値 )
01
フライバイ : メモリ→ I/O 転送
10
フライバイ :I/O →メモリ 転送
11
設定禁止
• リセット時 :"00" に初期化されます。
• 読出し / 書込み可能です。
383
第 14 章 DMA コントローラ (DMAC)
[ ビット 29, ビット 28] MODE (MODE) *: 転送モード設定
これらのビットは転送モード設定ビットで , 対応チャネルの動作モードを設定しま
す。
表 14.2-4 転送モードの設定内容
MOD
機 能
00
ブロック / ステップ転送モード
01
バースト転送モード
10
デマンド転送モード
11
設定禁止
•
リセット時 :"00" に初期化されます。
•
読出し / 書込み可能です。
[ ビット 27, ビット 26] WS (Word Size) *: 転送データ幅選択
これらのビットは転送データ幅選択ビットで , 対応チャネルの転送データ幅を選択
します。本レジスタに設定したデータ幅単位で指定回数分を転送します。
表 14.2-5 転送データ幅の選択
WS
機 能
00
バイト単位で転送 ( 初期値 )
01
ハーフワード単位で転送
10
ワード幅単位で転送
11
設定禁止
• リセット時 :"00" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 25] SADM (Source-ADdr. Count-Mode select) *:
転送元アドレスカウントモード指定
このビットは , 対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を
指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1
転送ごと転送後に加算 / 減算され , 転送終了時に次回アクセス用アドレスが対応す
るアドレスレジスタ (DMASA) に書き込まれます。
したがって , DMA 転送が終了されるまで転送元アドレスレジスタは更新されませ
ん。
アドレス固定にする場合は, 本レジスタを増減に指定してアドレスカウント幅を"0"
としてください。
384
第 14 章 DMA コントローラ (DMAC)
SADM
機 能
0
転送元アドレスは増加します ( 初期値 ) 。
1
転送元アドレスは減少します。
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 24] DADM (Destination-ADdr. Count-Mode select) *:
転送先アドレスカウントモード指定
このビットは , 対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を
指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1
転送ごと転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応する
アドレスレジスタ (DMADA) に書き込まれます。
したがって , DMA 転送が終了されるまで転送先アドレスレジスタは更新されませ
ん。
アドレス固定にする場合は, 本レジスタを増減に指定してアドレスカウント幅を"0"
としてください。
DADM
機 能
0
転送元アドレスは増加します ( 初期値 ) 。
1
転送元アドレスは減少します。
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 23] DTCR (DTC-reg. Reload) *: 転送回数レジスタリロード指定
このビットは , 対応するチャネルの転送回数レジスタのリロード機能を制御しま
す。
このビットによってリロード動作が許可されている場合 , 転送終了後に回数レジス
タ値を初期設定値に戻して停止し , 転送要求待ち状態になります。このビットが "1"
の場合 , DENB ビットはクリアされません。
停止させる場合は , DENB=0 または DMAE=0 にする必要がありますが , この場合は
強制停止になります。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了で停止するシングルショット動作となります。この場
合 , DENB ビットはクリアされます。
385
第 14 章 DMA コントローラ (DMAC)
DTCR
機 能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 22] SADR (Source-ADdr.-reg. Reload) *: 転送元アドレスレジスタリロード指定
このビットは , 対応するチャネルの転送元アドレスレジスタのリロード機能を制御
します。
このビットによってリロード動作が許可されている場合 , 転送終了後に転送元アド
レスレジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了で停止するシングルショット動作となります。この場
合 , アドレスレジスタ値は , 初期設定値がリロードされた状態で停止します。
このビットによってリロード動作が禁止されている場合は , 転送終了時のアドレス
レジスタ値は最終アドレスの次のアクセスアドレスとなります。アドレス増加を指
定している場合は , 増加したアドレスとなります。
SADR
機 能
0
転送元アドレスレジスタリロード禁止 ( 初期値 )
1
転送元アドレスレジスタリロード許可
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 21] DADR (Dest.-ADdr.-reg. Reload) *: 転送先アドレスレジスタリロード指定
このビットは , 対応するチャネルの転送先アドレスレジスタのリロード機能を制御
します。
このビットによってリロード動作が許可されている場合 , 転送終了後に転送先アド
レスレジスタ値を初期設定値に戻します。
その他 , 機能の詳細はビット 22 (SADR) の内容と同等です。
DADR
386
機 能
0
転送元アドレスレジスタリロード禁止 ( 初期値 )
1
転送元アドレスレジスタリロード許可
•
リセット時 :"0" に初期化されます。
•
読出し / 書込み可能です。
第 14 章 DMA コントローラ (DMAC)
[ ビット 20] ERIE (ERror Interrupt Enable) *: エラー割込み出力許可
このビットは , エラー発生による終了時の割込み発生を制御します。発生したエ
ラーの内容は , DSS2 ∼ DSS0 で示されます。すべての終了要因でこの割込みが発生
するのではなく , 特定の終了要因の際のみ割込みが発生することに注意してくださ
い ( ビット 18 ∼ビット 16 の DSS2 ∼ DSS0 ビットを参照してください ) 。
ERIE
機 能
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 19] EDIE (EnD Interrupt Enable) *: 終了割込み出力許可
このビットは , 正常終了時の割込み発生を制御します。
EDIE
機 能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
•
リセット時 :"0" に初期化されます。
•
読出し / 書込み可能です。
[ ビット 18 ∼ビット 16] DSS2 ∼ DSS0 (DMA Stop Status) *: 転送停止要因表示
これらのビットは , 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビッ
トのコード ( 終了コード ) を表示します。終了コードの内容は , 表 14.2-6 のとおり
です。
表 14.2-6 終了コードの内容
DSS
機 能
割込み発生
000
初期値
なし
x01
アドレスエラー ( アンダフロー / オーバフロー )
エラー
x10
転送停止要求
エラー
x11
正常終了
終了
1xx
DMA 一時停止中 (DMAH, PAUS ビット , 割込み等 )
下位 2 ビットに従う
転送停止要求は , 周辺装置からの要求と外部端子 DSTP 機能を使用した場合のみ
セットされます。
387
第 14 章 DMA コントローラ (DMAC)
「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
•
リセット時 :"000" に初期化されます。
•
"000" を書き込むことにより , クリアされます。
•
読出し / 書込み可能ですが , このビットへの書込みは "000" のみ有効となります。
[ ビット 15 ∼ビット 8] SASZ (Source Addr count SiZe) *: 転送元アドレスカウントサイズ
指定
これらのビットは , 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の
増減を指定します。このビットに設定した値が 1 回の転送単位におけるアドレス増
減となります。アドレスの増減は , 転送元アドレスカウントモード (SADM) の指定
に従います。
SASZ
XXXX
機 能
転送元アドレスの増減幅を指定します。0 ∼ 255
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。
[ ビット 7 ∼ビット 0] DASZ (Des Addr count size) *: 転送先アドレスカウントサイズ指定
これらのビットは , 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の
増減を指定します。このビットに設定した値が 1 回の転送単位におけるアドレス増
減となります。アドレスの増減は転送先アドレスカウントモード (DADM) の指定に
従います。
DASZ
XXXX
388
機 能
転送元アドレスの増減幅を指定します。0 ∼ 255
•
リセット時 : 初期化されません。
•
読出し / 書込み可能です。
第 14 章 DMA コントローラ (DMAC)
14.2.3
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) は , DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立
して存在します。
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) の構成および機能について説明します。
■ 転送元/転送先アドレス設定レジスタ (DMASA0∼DMASA4/DMADA0∼DMADA4)
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)
は , 転送元 / 先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成
されています。
図 14.2-4 に , 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) のビット構成を示します。
図 14.2-4 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)
のビット構成
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMASA [31 : 16]
bit
15
14
13
12
11
10
9
8
7
DMASA [15 : 0]
( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMADA [31 : 16]
bit
15
14
13
12
11
10
9
8
7
DMADA [15 : 0]
( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
以下に , 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) の各ビットの機能を説明します。
[ ビット 31 ∼ビット 0] DMASA (DMA Source Addr) *: 転送元アドレス設定
これらのビットは , 転送元アドレスを設定します。
[ ビット 31 ∼ビット 0] DMADA (DMA Destination Addr) *: 転送先アドレス設定
これらのビットは , 転送先アドレスを設定します。
DMA 転送が起動すると , このレジスタのデータを DMA 専用アドレスカウンタのカ
ウンタバッファに格納して 1 転送ごとに設定に従ってアドレスカウントします。
DMAの転送終了時にカウンタバッファの内容をこのレジスタに書き戻してDMAは
終了します。したがって , DMA 動作中のアドレスカウンタ値を読み出すことはでき
ません。
389
第 14 章 DMA コントローラ (DMAC)
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 先アドレ
スレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自動
的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影響
を与えません。
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。このレジスタは , 必ず 32 ビットデータでアクセスして
ください。
• 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値の読出しはできません。したがって , 転送アド
レスをリアルタイムで読み出すことはできません。
<注意事項>
このレジスタで , DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジ
スタに DMA 転送を行うことはできません。
390
第 14 章 DMA コントローラ (DMAC)
14.2.4
DMAC 全体制御レジスタ (DMACR)
DMAC 全体制御レジスタ (DMACR) は , DMAC5 チャネル分全体の動作を制御するレ
ジスタです。このレジスタは , 必ずバイト長でアクセスしてください。
DMAC 全体制御レジスタ (DMACR) の構成および機能について説明します。
■ DMAC 全体制御レジスタ (DMACR)
図 14.2-5 に , DMAC 全体制御レジスタ (DMACR) のビット構成を示します。
図 14.2-5 DMAC 全体制御レジスタ (DMACR) のビット構成
bit
31
DMAE
bit
30
29
28
27
26
25
15
―
14
―
13
PM01
12
11
10
9
―
―
―
―
―
―
―
24
23
22
21
20
19
18
17
16
8
―
7
―
6
―
5
―
4
―
3
―
2
―
1
―
0
DMAH [3 : 0]
―
―
―
―
―
―
―
―
―
( 初期値 : 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
以下に , DMAC 全体制御レジスタ (DMACR) の各ビットの機能を説明します。
[ ビット 31] DMAE (DMA Enable) : DMA 動作許可
このビットは , DMA 全チャネルの動作を制御します。
このビットによって DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止
の設定や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中で
あったチャネルは要求を取り下げ , ブロック境界で転送を停止します。禁止状態で ,
各チャネルに対して行われる起動操作はすべて無効となります。
このビットによって DMA 動作が許可されている場合 , チャネルごとに起動 / 停止
操作が有効となります。このビットで DMA 動作許可を行ったのみでは , 各チャネ
ルに対する起動は行われません。
このビットに"0"を書き込むと強制停止しますが, 必ずDMAH [3:0] ビット [DMACR
のビット 27 ∼ビット 24] で DMA を一時停止状態にしてから強制停止 ("0" 書込み )
してください。一時停止しないで強制停止した場合は , DMA は停止しますが転送
データは保証されません。停止の確認は DSS [2:0] ビット [DMACB のビット 18 ∼
ビット 16] で行ってください。
DMAE
機 能
0
全チャネル DMA 転送禁止 ( 初期値 )
1
全チャネル DMA 転送許可
•
リセット時 :"0" に初期化されます。
•
読出し / 書込み可能です。
391
第 14 章 DMA コントローラ (DMAC)
[ ビット 28] PM01 (Priority mode ch0, 1 robine) : チャネル優先度回転
このビットは , ch0, ch1 の優先度を転送ごとに順位を回転させるときに設定します。
PM01
機 能
0
優先順位固定 ( ch0 > ch1 ) ( 初期値 )
1
優先順位回転 ( ch1 > ch0 )
•
リセット時 :"0" に初期化されます。
•
読出し / 書込み可能です。
[ ビット 27 ∼ビット 24] DMAH (DMA Halt) :DMA 一時停止
これらのビットは , DMA 全チャネルの一時停止制御を行います。これらのビットが
セットされると , 再びこれらのビットがクリアされるまでの間は , 全チャネルの
DMA 転送を行いません。
起動前にこれらのビットをセットしてから起動した場合 , 全チャネルが一時停止の
ままとなります。
これらのビットがセットされている間に DMA 転送が許可 (DENB=1) されている
チャネルに発生した転送要求は , すべて有効となり , これらのビットをクリアする
ことにより転送を開始します。
DMAH
0000
0000 以外
機 能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 30, ビット 29, ビット 23 ∼ビット 0] (Reserved) : 未使用ビット
これらのビットは , 未使用ビットです。
•
392
読出し値は不定です。
第 14 章 DMA コントローラ (DMAC)
14.2.5
その他の機能
MB91307 シリーズは , 外部転送用として DACK, DEOP, DREQ の端子があります
が , 汎用ポートと兼用になっています。
■ DACK, DEOP, DREQ の端子機能
外部転送用として DACK, DEOP, DREQ の端子機能を使用するときは , ポート機能から
DMA 端子機能に切り換える必要があります。
PFR レジスタの設定で切り換えてください。
393
第 14 章 DMA コントローラ (DMAC)
14.3
DMA コントローラ (DMAC) の動作
DMA コントローラ (DMAC) は FR ファミリに内蔵され , CPU の命令動作を介するこ
となく高速にデータ転送を制御する多機能 DMA コントローラです。
本節では , DMA コントローラ (DMAC) の動作について説明します。
■ 主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対して DMA 転送要求を出力し , バスコン
トローラの制御によりバス権を取得して転送を開始します。
• 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ
ます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD [1:0] ビットで設定された
転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求で 1 ブロック転送単位のみを転送し , その後次の転送要求が受け付けら
れるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位とは , 設定されたブロックサイズ分 (DMACA の BLK [3:0] ) です。
● バースト転送
1 回の転送要求で指定転送回数終了まで連続して転送します。
指定転送回数とは , ブロックサイズ分×転送回数分 (DMACA の BLK [3:0] × DMACA
の DTC [15:0] ) です。
● デマンド転送
外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは
連続して転送します。
デマンド転送での指定転送回数は設定した転送回数分 (DMACA の DTC [15:0] ) となり
ます。ブロックサイズは "1" 固定となり , レジスタ値は無視されます。
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作します。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー
タを書き込みます。
394
第 14 章 DMA コントローラ (DMAC)
● フライバイ転送 ( メモリ→ I/O)
DMA コントローラの動作は , 読出し動作を 1 つの単位として動作します。
フライバイ転送を設定して DMA 転送を行うと , DMA はバスコントローラに対してフ
ライバイ転送 ( リード ) 要求を出し , バスコントローラは外部インタフェースにフライ
バイ転送 ( リード ) をさせます。
● フライバイ転送 (I/O →メモリ )
DMA コントローラの動作は , 書込み動作を 1 つの単位として動作します。
ほかはフライバイ転送 ( メモリ→ I/O) と同等です。
MB91307 シリーズでのフライバイ転送のアクセス領域は , 必ず外部領域でなければい
けません。
■ 転送アドレス
アドレッシングには以下に記述するものがあり , チャネル転送元 / 転送先ごとに独立に
設定します。
2 サイクル転送とフライバイ転送でのアドレス設定レジスタ (DMASA, DMADA) の指
定方法は異なります。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとして , アクセスします。転送要求を受け付けたら , DMA はレジスタからア
ドレスを一時記憶バッファに格納して転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタで次回アクセスアドレスを生成 ( 加算 /
減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの内容は ,
1ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へ書き戻されます。したがっ
て , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更新され
ませんので , 転送中のアドレスをリアルタイムに知ることはできません。
● フライバイ転送でのアドレスの指定
フライバイ転送では , 転送先アドレスレジスタ (DMADA) から読み出した値をアドレ
スとしてアクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定
するアドレスは , 必ず外部領域にしてください。
転送要求を受け付けたら , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタで次回アクセスアドレスを生成 ( 加算 /
減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの内容
は , 1 ブロック転送単位終了ごとにレジスタ (DMADA) へ書き戻されます。したがって ,
アドレスレジスタ (DMADA) 値は, 1ブロック転送単位ごとにしか更新されませんので,
転送中のアドレスをリアルタイムに知ることはできません。
395
第 14 章 DMA コントローラ (DMAC)
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。転送回
数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止または
再起動します *。
転送回数レジスタ値は, アドレスレジスタと同様に1ブロック転送単位ごとにしか更新
されません。
* : 転送回数レジスタリロード禁止に設定している場合は , 転送を終了します。許可さ
れている場合はレジスタ値を初期化して , 転送待ち状態になります (DMACB の
DTCR) 。
● 転送終了
転送終了要因には , 以下に記述するものがあり , 終了時は終了コードとして要因が表示
されます (DMACB の DSS [2:0] ) 。
• 指定転送回数の終了 (DMACA:BLK [3:0] × DMACA:DTC [15:0] ) => 正常終了
• 周辺回路または外部端子 (DSTP) からの転送停止要求の発生 => エラー
• アドレスエラーの発生 => エラー
• リセットの発生 => リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生できます。
396
第 14 章 DMA コントローラ (DMAC)
14.3.1
転送要求の設定
DMA 転送を起動する転送要求には , 以下の 3 種類があります。
• 外部転送要求端子
• 内蔵周辺要求
• ソフトウェア要求
ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが
できます。
■ 外部転送要求端子
各チャネルに 1 本用意された入力端子への入力により , 転送要求を発生します。
MB91307 シリーズでは ch0 ∼ ch3 のみ対応しています (DREQ0, DREQ1, DREQ2) 。
この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。
● エッジ検出
転送タイプがブロック / ステップ / バースト転送のときは , エッジ検出が選択されます。
• 立下りエッジ検出 : 転送要因選択レジスタで設定。DMACA の IS [4:0] =01110 のとき
• 立上りエッジ検出 : 転送要因選択レジスタで設定。DMACA の IS [4:0] =01111 のとき
● レベル検出
転送タイプがデマンド転送のときは , レベル検出が選択されます。
• "H" レベル検出 : 転送要因選択レジスタで設定。DMACA の IS [4:0] = 01110 のとき
• "L" レベル検出 : 転送要因選択レジスタで設定。DMACA の IS [4:0] = 01111 のとき
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA の IS [4:0] =1xxxx) 。
外部転送要求とは同時に使用することができません。
<注意事項>
・転送要求に使用した割込み要求は , CPU への割込み要求としても見えますので割込
みコントローラの設定を割込み禁止に設定してください (ICR レジスタ ) 。
・内蔵周辺回路のうち , 外部割込みおよびリロードタイマ割込み要求信号による DMA
転送起動は使用できません (MB91306R/307R のみ ) 。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより, 転送要求を発生します (DMACAのSTRG) 。
起動 ( 転送許可 ) と同時にソフトウェア要求を発生した場合 , 直後にバスコントローラ
に対し DMA 転送要求を出力し転送を開始します。
397
第 14 章 DMA コントローラ (DMAC)
14.3.2
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンス等を決定する転送タイプと転送
モードを独立して設定することができます (DMACB の TYPE [1:0] , MOD [1:0] の設
定)。
■ 転送シーケンスの選択
レジスタの設定により , 以下のシーケンスが選択可能である。
• バースト 2 サイクル転送
• デマンド 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
• バーストフライバイ転送
• デマンドフライバイ転送
• ブロック / ステップフライバイ転送
● バースト 2 サイクル転送
バースト 2 サイクル転送は , 1 回の転送要因で指定転送回数の転送を続けて行います。
2 サイクル転送の場合は , 転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出
要求を選択できます。
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
=>
32 ビット全領域指定可能
( 指定可能転送アドレス表 )
バースト転送の特長は , 以下のとおりです。
転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送を行い
ます。
転送回数は , ブロックサイズ分×転送回数分になります (DMACA の BLK [3:0] ×
DMACA の DTC [15:0] ) 。
転送中に再度要求が発生した場合 , 要求は無視されます。
転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求を
受け付けます。
転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転送
単位の境目でチャネルを切換え , そのチャネルの転送要求がクリアされるまで復帰し
ません。
398
第 14 章 DMA コントローラ (DMAC)
転送要求(↑エッジ)
バス動作
SA
CPU
転送回数
DA
SA
4
DA
3
SA
DA
2
SA
DA
CPU
1
0
転送終了
( 外部端子立上りエッジ起動 , ブロック数 =1, 転送回数 =4 のときのバースト転送例 )
● バーストフライバイ転送
転送領域が外部領域のみであること , 転送単位が読出し ( メモリ→ I/O) または書込み
(I/O →メモリ ) だけであること以外は 2 サイクル転送と同じです。
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
( 指定可能転送アドレス表 )
■ デマンド転送 2 サイクル転送
転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド
転送シーケンスとなります。レベル選択は , DMACA の IS [3:0] で設定します。
連続転送の特長は , 以下のとおりです。
• 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要
求レベルの間は , 要求をクリアせずに連続して転送を行います。外部入力が変化す
ると要求がクリアされ , 転送は転送の境目で停止します。これを指定転送回数終了
まで繰り返します。
• その他は , バースト転送と同等に動作します。
転送要求
("H"レベル)
バス動作
転送回数
CPU
SA
DA
3
SA
DA
2
CPU
SA
DA
1
0
転送終了
( 外部端子 "H" レベル起動 , ブロック数 =1, 転送回数 =3 のときのデマンド転送例 )
399
第 14 章 DMA コントローラ (DMAC)
転送元アドレス指定
方向
転送先アドレス指定
外部領域
=>
外部領域
外部領域
=>
内蔵 I/O
外部領域
=>
内蔵 RAM
内蔵 I/O
=>
外部領域
内蔵 RAM
=>
外部領域
( 指定可能転送アドレス表 )
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。デマンド転送モード時は , DMA 転送を外部バスタイミングに合わせている
ため , 必ず外部領域へのアクセスが必要になります。
● デマンド転送フライバイ転送
転送領域が外部領域のみであること , 転送単位が読出し ( メモリ→ I/O) または書込み
(I/O →メモリ ) である以外は 2 サイクル転送と同じです。
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
=>
32 ビット全領域指定可能
( 指定可能転送アドレス表 )
● ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
=>
32 ビット全領域指定可能
( 指定可能転送アドレス表 )
[ ステップ転送 ]
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
ステップ転送の特長は , 以下のとおりです。
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します ( バスコントローラに対し , DMA 転送要求を取り下げる ) 。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合は , 転送停止
後にチャネルを切り換えて続けて転送を開始します。ステップ転送における優先順
位は , 転送要求が同時に発生した場合のみ意味を持ちます。
400
第 14 章 DMA コントローラ (DMAC)
[ ブロック転送 ]
ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。
ブロック転送の特長は , 以下のとおりです。
• 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス
テップ転送と全く同じ動作となります。
転送要求(↑エッジ)
バス動作
ブロック数
CPU
SA
DA
SA
2
転送回数
DA
SA
CPU
1
2
0
2
DA
SA
DA
1
1
転送終了
( 外部端子立上りエッジ起動 , ブロック数 =2, 転送回数 =2 のときのブロック転送例 )
● ステップ / ブロック転送 2 サイクル転送フライバイ転送
転送領域が外部領域のみであること , 転送単位が読出し ( メモリ→ I/O) または書込み
(I/O →メモリ ) である以外は 2 サイクル転送と同じです。
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
( 指定可能転送アドレス表 )
401
第 14 章 DMA コントローラ (DMAC)
14.3.3
DMA 転送全般
DMA 転送のブロックサイズとリロード動作について説明します。
■ ブロックサイズ
• 転送データの1転送単位は, (ブロックサイズ指定レジスタに設定した数×データ幅)
のデータの集合となります。
• 1 転送サイクルで転送されるデータは , データ幅指定の値に固定されるため , 1 転送
単位はブロックサイズ指定値分の転送サイクル数から構成されることになります。
• 転送中により高い優先順位の転送要求が受け付けられた場合または転送の一時停
止要求が発生した場合は , ブロック転送時においても 1 転送単位の境界にならない
と停止しません。これにより分割 / 一時停止を希望しないデータブロックのデータ
保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させる原因と
もなります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容等は保
証されません。
■ リロード動作
本モジュールでは , チャネルごとに , 以下に示す 3 種類のリロード機能の設定が可能で
す。
● 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付
け待ちとなります。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のままとな
り , 以降の転送は行われません。
● 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定します。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終
了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
● 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定します。
転送先アドレス領域内で , 固定領域へ繰り返し転送する場合に設定します。
( 以下 , 上記の「転送元アドレスレジスタリロード機能」と同じ )
• 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了
後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
402
第 14 章 DMA コントローラ (DMAC)
● 動作モードとリロード動作の特殊な例
• 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ
スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ
のままリロードして転送を継続します。この場合も終了コードはセットされます。
• 転送終了でいったん停止し , 再度入力検出から行いたい場合は , リロード指定をし
ないでください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送が終了する
とリロード後いったん転送を中断し , 改めて転送要求入力が検出されるまで転送を
しません。
403
第 14 章 DMA コントローラ (DMAC)
アドレッシングモード
14.3.4
各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。
■ アドレスレジスタの指定
指定方法には , 以下の方法があります。転送シーケンスによって設定してください。
• 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド
レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく
ださい。
• フライバイ転送モードでは , 転送先アドレス設定レジスタ (DMASA) にはメモリア
ドレスを設定してください。このときの転送先アドレス設定レジスタ (DMADA) の
値は無視されます。
■ アドレスレジスタの特長
最大 32 ビット長のレジスタです。32 ビット長の場合メモリマップ上の全空間がアクセ
ス可能です。
■ アドレスレジスタの機能
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタで次回アクセス時のアドレス計算が行われ , 計算結果のア
ドレスでアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より
選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま
す (DMACB の SASZ, DASZ) 。
• 転送終了時のアドレスレジスタにはリロード機能を有効にしていない場合 , 最終ア
ドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<注意事項>
• 32 ビット長フルアドレス計算の結果オーバフロー / アンダフローが発生した場合 , アド
レスエラーとして検出され , そのチャネルの転送を中止します。詳細は , 「表 14.2-6 終
了コードの内容」を参照してください ( 制御ステータスレジスタ B DSS [2:0] ビット ) 。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
• デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先または両方に設定して
ください。
• DMAC により DMAC 自身のレジスタへは転送しないでください。
404
第 14 章 DMA コントローラ (DMAC)
14.3.5
データの種類
1 回で転送されるデータ長 ( データ幅 ) は , 以下の内から選択します。
• バイト
• ハーフワード
• ワード
■ データ長 ( データ幅 )
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは
無視されます。
• バイト :
実際のアクセスアドレスとアドレス指定が一致します。
• ハーフワード : 実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイト
となります。
• ワード :
実際のアクセスアドレスは下位 2 ビットが "00" から始まる 4 バイ
トとなります。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス
バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において ,
上記の決まりに従ってアドレスが修正されてアクセスされます。
405
第 14 章 DMA コントローラ (DMAC)
14.3.6
転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。
■ 転送回数制御
転送回数指定値は , 転送回数レジスタ (DMACA の DTC) に設定します。
レジスタ値は , 転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
転送回数レジスタ群の特長は , 以下のとおりです。
• 各レジスタ 16 ビット長です。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" のときに起動すると , 65536 回の転送を行います。
■ リロード動作
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタでカウントを行った際に "0" になると , 転送終了を通知するとと
もに , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
406
第 14 章 DMA コントローラ (DMAC)
CPU 制御
14.3.7
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発
行します。
バスコントローラはバス動作の切れ目で内部バス使用権を DMA に明け渡し , DMA
転送が開始されます。
■ DMA 転送と割込み
DMA 転送中は , 基本的には転送終了まで割込みの受付けは停止します。
また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転送
終了まで割込み処理動作は停止します。
例外として , NMI 要求または割込みコントローラで設定されたホールド抑止レベルよ
り高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロック ) の境
界でバスコントローラは転送要求を一時取り下げ , 割込み要求がクリアされるまで転
送を一時停止状態にします。この間 , 転送要求は内部で保持されます。割込み要求がク
リアされた後に再度 DMAC はバスコントローラに転送要求を発行してバス使用権を取
得し , DMA 転送を再開します。
■ DMA 抑止
FR ファミリは , DMA 転送中により優先度の高い割込み要因が発生すると , DMA 転送
を中断して該当割込みルーチンへ分岐します。この機構は割込み要求がある限り有効
ですが , 割込み要因をクリアすると抑止機構が働かなくなり , 割込み処理ルーチン内で
DMA 転送を再開します。このため , DMA 転送を中断するレベルの割込み要因の処理
ルーチン内で , 割込み要因クリア後の DMA 再転送開始を抑止したいときは , DMA 抑
止機能を使用します。DMA 抑止機能は , DMA 全体制御レジスタの DMAH [3:0] ビット
に "0" 以外の値を書き込むことで起動し , "0" を書き込むことで停止します。
この機能は , 主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込
み要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このように
すると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰する前
に DMAH [3:0] ビットの内容を 1 つ減少させます。もし , 多重割込みであれば DMAH
[3:0] ビットの内容は , まだ "0" にならないため , 引き続いて DMA 転送は抑止されます。
また , 多重割込みでなければ , DMAH [3:0] ビットの内容が "0" になるため , その後すぐ
に DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みでこの機能を
使用することができません。
• DMA タスクの優先順位は , 必ずほかの割込みレベルより 15 レベルは上に置いてくださ
い。
407
第 14 章 DMA コントローラ (DMAC)
14.3.8
ホールド調停
デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使
用可能となります。この際の , 外部ホールド要求と本モジュールによる DMA 転送要
求との関係は , 以下に示すとおりとなります。
■ 外部ホールド中の DMA 転送要求
DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA
転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。
■ DMA 転送中の外部ホールド要求
外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場
合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転
送を再開します。
■ DMA 転送要求と外部ホールド要求の同時発生
外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外
部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部
ホールドが解除され次第 , DMA 転送を再開します。
408
第 14 章 DMA コントローラ (DMAC)
14.3.9
開始∼終了 / 停止までの動作
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動
作を許可しておく必要があります。開始から終了 / 停止までの動作について説明しま
す。
■ 動作開始
● 全チャネル動作許可
DMAC 各チャネルを起動する前に , DMA 動作許可ビット (DMACR の DMAE) であら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態で行った
起動設定および発生した転送要求はすべて無効となります。
● 転送起動
チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードで DMA 転送動
作が開始されます。
● 一時停止状態よりの起動
チャネルごとまたは全チャネル制御で起動前に一時停止状態にしてあった場合 , 転送
動作を起動しても一時停止状態を維持します。この間に転送要求が発生した場合は , 要
求を受け付け , 保持します。一時停止を解除した時点から転送を開始します。
■ 転送要求の受付けと転送
• 起動後より , 各チャネルに対して設定した転送要求のサンプリングが開始されます。
• 外部端子起動要因でエッジ検出を選択した場合 , 転送要求が検出されると転送要求
のクリア条件を満たすまで DMAC 内部で要求を保持します ( ブロック / ステップ /
バースト転送で外部端子起動要因を選択したとき )。
外部端子起動要因でレベル検出または周辺割込み起動を選択した場合は , 転送要求が
クリアされるまで DMAC は転送を続けますが , クリアされたら 1 転送単位で転送を停
止します ( デマンド転送 / 周辺割込み起動 ) 。
周辺割込みは , レベル検出扱いとなりますので割込みは DMA による割込みクリアで行
うようにしてください。
転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に受け
付けられており , 優先順位の判断をして , 1 転送単位ごとに転送するチャネルを決定し
ています。
内蔵周辺回路のうち , 外部割込みおよびリロードタイマ割込み要求信号による DMA 転
送起動はできません (MB91306R/307R のみ )。
■ DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は , DMA 起動要因に
周辺割込みを選択したときに機能します (IS [4:0] =1xxxx のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち , IS [4:0] で設
409
第 14 章 DMA コントローラ (DMAC)
定された周辺機能のみクリアされます。
割込みクリアの発生タイミングは , 転送モードにより異なります (「14.4 動作フロー
チャート」を参照 ) 。
• ブロック / ステップ転送 : ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転
送ごとにクリア信号が発生します。
• バースト転送 : バースト転送を選択した場合は , 指定転送回数がすべて終了したら
クリア信号が発生します。
• デマンド転送 : デマンド転送では外部端子からの起動要求のみサポートするためク
リア信号はでません。
■ 一時停止
DMA 転送は , 以下の場合に一時停止します。
● 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に
設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
• 全チャネルを一度に一時停止させる場合
DMA 全チャネルを一時停止する場合は , DMACR の DMAH [3:0] を "0000" 以外に設
定してください。解除は , レジスタ値を "0000" にしてください。
• チャネルごとに一時停止させる場合
DMA 各チャネルを一時停止させる場合は , DMACR の DMAH [3:0] を "0000" 以外に
設定して全チャネルを一時停止してから DMACA の PAUS=1 にしてチャネルごとに
一時停止指示をし , DMACR の DMAH [3:0] を "0000" にして全チャネル一時停止を
解除してください。解除は PAUS を "0" に設定してください。
● NMI/ ホールド抑止レベル割込み処理中
NMI 要求またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界で一時停止し , バス権を開放して NMI/ 割込み
処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , そのま
ま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
■ 動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止す
ることも可能です。
● 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードで『正常終了』を表示した後 , 以降の転送要求は無効となります (DMACA の
DENB ビットをクリアする ) 。
リロード動作が有効である場合, 転送回数レジスタが"0"になると初期値をリロードし,
終了コードで『正常終了』を表示した後 , 再度転送要求待ちとなります (DMACA の
410
第 14 章 DMA コントローラ (DMAC)
DENB ビットをクリアしない ) 。
● 全チャネル動作禁止
DMA 動作許可ビット DMAE で全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動しなおさないと , 転送は行われません。この場合 ,
割込みは一切発生しません。
■ エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発
生による停止および強制停止があります。
● 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例 : 通信系周辺における受信 / 送信エラー等 ) 。
この転送停止要求を受け取った DMAC は , 終了コードで『転送停止要求』を表示して
対応するチャネルの転送を停止します。
IS
機能
転送停止要求
00000
↓
01111
ソフトウェア起動 (STRG ビット )
↓
外部端子 "L" レベル または ↓エッジ
↑
なし
↓
10000
↓
10010
↓
↑
あり
↓
10011
↓
11111
↓
↑
なし
↓
各転送停止要求の発生条件についての詳細は , 「12.2.5 DRCL レジスタ」を参照してく
ださい。
■ アドレスエラーの発生
各アドレッシングモードで , 以下に示すような不適切なアドレッシングが行われたと
き , アドレスエラーとして検出されます (32 ビットアドレス指定時に , アドレスカウン
タでオーバ / アンダフローが発生した場合 ) 。
アドレスエラーを検出すると , 終了コードで『アドレスエラーの発生』を表示して , 対
応するチャネルの転送を停止します。
411
第 14 章 DMA コントローラ (DMAC)
14.3.10
DMAC 割込み制御
転送要求となる周辺割込みとは独立に , DMAC のチャネルごとに割込みを出力する
ことができます。
■ DMAC 割込み制御
DMAC のチャネルごとに , 以下の割込みを出力することができます。
• 転送終了割込み : 正常終了した場合のみ発生する。
• エラー割込み : 周辺回路からの転送停止要求 ( 周辺に起因するエラー )
• エラー割込み : アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000" を書き込むこ
とにより行います。なお , 終了コードは , 再起動する際には必ず "000" を書き込んでク
リアしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードで表示できる終了要因は1種類のみですので, 複数の要因が同時に発生した
場合は , 優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
終了コードの表示の優先順位を , 以下に示します ( 上から , 優先度の高い順 ) 。
• リセット
• "000" 書込みによるクリア
• 周辺停止要求または外部端子入力 (DSTP) の停止要求
• 正常終了
• アドレスエラー検出による停止
• チャネル選択と制御
■ スリープ中の DMA 転送
• DMAC は , スリープモード中でも動作させることができます。
• スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
- CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は済ませておいてください。
- スリープモードは , 割込みで解除されますので , DMAC 起動要因で周辺での割込
みを選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
• DMAC 終了割込みでスリープモードを解除したくない場合は , 割込みを禁止にして
ください。
412
第 14 章 DMA コントローラ (DMAC)
14.3.11
チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定ができます。各チャネルは , 基本的に
各機能を独立に設定することが可能です。
■ チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。
順位設定には , 固定 / 回転の 2 モードがあり , チャネルグループ ( 後述 ) ごとに選択し
ます。
● 固定モード
チャネル番号の小さい順に固定されます。
(ch0 > ch1 > ch2 > ch3 > ch4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ
ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高
優先度側に切り替わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
ch0 転送要求
ch1 転送要求
CPU
バス動作
SA
DA
SA
ch1
転送ch
DA
SA
ch0
DA
SA
ch0
DA
CPU
ch1
ch0 転送終了
ch1 転送終了
● 回転モード (ch0 ∼ ch1 間のみ )
動作許可後の初期状態は「固定モード」と同じ順位に設定されますが , 1 転送終了ごと
にそのチャネルの優先度は逆転します。したがって , 同時に転送要求が出力されている
場合 , 1 転送単位ごとにチャネルが切り替わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
ch0 転送要求
ch1 転送要求
バス動作
転送ch
CPU
SA
DA
ch1
SA
DA
ch0
SA
DA
ch1
SA
DA
CPU
ch0
ch0 転送終了
ch1 転送終了
413
第 14 章 DMA コントローラ (DMAC)
■ チャネルグループ
優先順位の選択は , 下表に示す単位で設定します。
414
モード
優先度
固定
ch0 > ch1
回転
ch0 > ch1
↑↓
ch0 < ch1
備 考
初期状態は上側の順位です。上
側が転送されると反転します。
第 14 章 DMA コントローラ (DMAC)
14.3.12
外部端子と内部動作タイミングに関する補足
外部端子と内部動作タイミングに関して補足説明をします。
■ DREQ 端子入力の最小有効パルス幅
MB91307 シリーズは , 0, 1, 2 チャネルのみについて該当します。
バースト / ステップ / ブロック / デマンド転送すべての転送モードで , 動作時最小 5 シ
ステムクロックサイクル (DMA 動作クロック CLKB の 5 周期分 ) の幅が必要です。
<注意事項>
DACK 出力は , DREQ 入力の受付けを示すものではありません。DMA 許可状態で転送
前であれば , DREQ 入力は常に受け付けられます。そのため , DACK 出力のアサート
まで DREQ 入力を保持する必要はありません ( デマンド転送モードは除く ) 。
■ デマンド転送要求の停止時における DREQ 端子入力のネゲートタイミング
● 2 サイクル転送時
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先または両方に設定して
ください。
• 転送対象が外部⇔外部の場合 : 最後の DMA 転送の転送元アクセス時における外部
書込みストローブ端子出力が "L" 区間のクロック最後センスタイミング前にネゲー
トしてください。これより後に DREQ をネゲートした場合 , DMA リクエストがセ
ンスされて次の転送まで行う可能性があります。
• 転送対象が外部⇔内部の場合 : 最後の DMA 転送の転送元アクセス時における外部
RD 端子出力が "L" 区間のクロック最後センスタイミング前にネゲートしてくださ
い。これより後に DREQ をネゲートした場合 , DMA リクエストがセンスされて次
の転送まで行う可能性があります。
バス動作
CPU
領域
SA
DA
SA
DA
外部 内部 外部 内部
CPU
SA
DA
SA
DA
外部 内部 外部 内部
外部Dバス
DACK
DEOP
RD
WR
DREQ("H"レベル)
(2 サイクル転送外部 => 内部転送時の DREQ 端子入力のネゲートタイミング例 )
415
第 14 章 DMA コントローラ (DMAC)
• 転送対象が内部⇔外部の場合 : 最後の DMA 転送の転送元アクセス時における外部
書込みストローブ端子出力が "L" 区間のクロック最後センスタイミング前にネゲー
トしてください。これより後に DREQ をネゲートした場合 , DMA リクエストがセ
ンスされて次の転送まで行う可能性があります。
● フライバイ ( 読出し / 書込み ) 転送時
デマンド転送時は , 必ず外部領域のアドレスを転送先に設定してください。
• フライバイ ( 読出し ) 転送の場合 : 最後の DMA 転送の転送元アクセス時における外
部 RD 端子出力が "L" 区間の間にネゲートしてください (DACK="L" & RD="L" の区
間) 。これより後にDREQをネゲートした場合, 次の転送まで行う可能性があります。
• フライバイ ( 書込み ) 転送の場合 : 最後の DMA 転送の転送元アクセス時における外
部 WR 端子出力が "L" 区間の間にネゲートしてください (DACK="L" & RD="L" の区
間) 。これより後にDREQをネゲートした場合, 次の転送まで行う可能性があります。
バス動作
CPU
領域
DA
DA
DA
DA
CPU
外部 外部 外部 外部
DA
DA
DA
DA
外部 外部 外部 外部
外部Dバス
DACK
DEOP
RD
WR
転送要求("H"レベル)
( フライバイ ( 書込み ) 転送の場合の DREQ 端子入力のネゲートタイミング例 )
■ 同一チャネルで引き続き転送するための DREQ 端子入力のタイミング
● バースト / ステップ / ブロック / デマンド転送時
DREQ 端子入力によって同一チャネルの転送を連続させることは , 動作保証できませ
ん。転送終了によって内部に保持した要求をクリアするため , 最速タイミングで DREQ
が再度アサートされたとしても , 最低でも 1 システムクロックサイクル (CLK 出力の 1
周期分 ) は他チャネルの転送要求の検出が有効になっており , 結果ほかのチャネルの優
先度が高ければそちらの転送が開始されます。
また , それより以前に DREQ が再度アサートされても , 転送が終了していないので無視
されます。他チャネルの転送要求が発生していない場合であれば , DACK 端子出力が
アサートされた時点で DREQ を再度アサートすることにより , 同一チャネルでの転送
が再開します。
■ DACK 端子出力のタイミング
本 DMAC の DACK 出力は , 受け付けられた転送要求に対する転送が行われていること
を示します。
DACK の出力は , 基本的に外部バスアクセスタイミングのアドレス出力に同期してい
ます。DACK 出力を使用する場合は , ポートで DACK 出力イネーブルにする必要があ
ります。
416
第 14 章 DMA コントローラ (DMAC)
■ DEOP 端子出力のタイミング
• 本 DMA での DEOP 出力は , 受け付けられたチャネルの DMA 転送が指定転送回数
分終了したことを示すものです。
• DEOP 出力は , 最終転送ブロックの外部領域アクセスが開始されると出力されます。
そのため , ブロックサイズを "1" 以外に設定 ( ブロック転送モード ) している場合 ,
最終ブロックの最後のデータ転送時に DEOP が出力されます。この場合 , 転送がま
だ行われている間 (DEOP 出力される前 ) でも , DACK 端子出力がアサートされてい
れば , 次の DREQ の受付けは開始されています。
• DEOP の出力は外部バスアクセスタイミングに同期しています。しかし , 転送元 / 転
送先が内部アクセスであった場合 , DEOP は出力されません。DEOP 出力を使用する
場合は , ポートレジスタで DEOP 出力イネーブルにする必要があります。
■ DSTP 端子入力のタイミング
• バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時に , 最小
5 システムクロックサイクル (=1/2θ, DMA 動作クロック CLKB の 5 周期分 ) の幅が
必要です。
• DSTP の入力タイミングは , DREQ と同様に外部アクセスと同期させて使用すること
をお薦めします (DACK 出力と RD または WR でデコードした信号を使用してくだ
さい ) 。
• DMA の転送を強制的に停止する場合に使用します。この端子入力を使用すること
で転送を強制的に停止することができますが , ステータスレジスタ (DMACB の DSS
[2:0] ) は「転送停止要求」を示し , エラーとして扱われます。割込みを許可してい
れば割込みを発生します。
• この機能は DEOP 端子と兼用になっているので , 両方の機能を使用することはでき
ません。機能の切換えはポートレジスタで設定してください。
■ 転送中に外部端子転送要求が再度入力された場合
● バースト / ステップ / ブロック転送時
DACK 信号が DMAC 内部でアサートされるまでの間 , 次の転送要求は入力されても無
効となります。しかし , 外部バス制御ユニットと DMAC の動作は完全に同期してはい
ないため , DREQ 入力で転送要求を有効にするためには , DACK と DEOP 出力により
DREQ 端子入力を作成する回路を初期化する必要があります。
● デマンド転送時
全転送回数が終了した際に転送回数レジスタのリロードを指定している場合 , 再度転
送要求が受け付けられます。
■ ブロック転送中にほかの転送要求が発生した場合
指定したブロックの転送が終了するまでは , ほかの要求は検出されません。ブロックの
境界で , その時点で受け付けられている転送要求を評価し , 最も優先順位の高いチャネ
ルの転送を行います。
417
第 14 章 DMA コントローラ (DMAC)
■ 外部 I/O- 外部メモリ間の転送
本 DMAC の転送対象として , 外部 I/O と外部メモリの区別は存在しません。外部 I/O
は , アドレス固定の外部アドレスとして設定してください。
フライバイ転送を行う場合 , 外部メモリは転送先アドレスレジスタにアドレスを設定
してください。また , 外部 I/O に対しては DACK 出力と読出し信号 RD または書込み
信号 WRn 端子でデコードした信号を使用してください。
■ DMAC の AC 特性
DMAC に関連する外部端子は , DREQ 端子入力と DACK 端子出力 , DEOP 端子出力が
ありますが , 出力タイミングは外部バスアクセスに同期しています ( データシートの
DMAC の交流規格を参照してください ) 。
418
第 14 章 DMA コントローラ (DMAC)
14.4
動作フローチャート
次の各転送モードにおける動作フローチャートを示します。
• ブロック転送
• バースト転送
• デマンド転送
■ ブロック転送
図 14.4-1 に , ブロック転送の動作フローチャートを示します。
図 14.4-1 ブロック転送の動作フローチャート
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
起動要求
initial
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
周辺割込み
起動要因選択時のみ
割込みクリア
DTC=0
DMA転送終了
割込み
クリア発生
DMA割込み発生
ブロック転送
・すべての起動要因で起動できる(選択)。
・すべての領域へのアクセスができる。
・ブロック数の設定可能。
・ブロック数終了で割込みクリア発行。
・指定転送回数終了でDMA割込みを発行。
419
第 14 章 DMA コントローラ (DMAC)
■ バースト転送
図 14.4-2 に , バースト転送の動作フローチャートを示します。
図 14.4-2 バースト転送の動作フローチャート
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
起動要求
initial
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
fly-by時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込み
クリア
DMA転送終了
割込みクリア発生
DMA割込み発生
バースト転送
・すべての起動要因で起動できる(選択)。
・すべての領域へのアクセスができる。
・ブロック数の設定可能。
・指定転送回数終了で割込みクリア,DMA割込みを発行。
420
第 14 章 DMA コントローラ (DMAC)
■ デマンド転送
図 14.4-3 に , デマンド転送の動作フローチャートを示します。
図 14.4-3 デマンド転送の動作フローチャート
DMA停止
DENB=>0
なし
リロード許可
DENB=1
起動要求待機
起動要求あり
initial
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
DTC=0
割込み
クリア
DMA転送終了
周辺割込み起動要因選択時のみ
割込みクリア発生
DMA割込み発生
デマンド転送
・外部端子(DREQ)からの要求(レベル検出)のみ受付け。他の要因での起動禁止。
・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため)。
・ブロック数は,設定に関係なく1固定になる。
・指定転送回数終了で割込みクリア,DMA割込みを発行。
421
第 14 章 DMA コントローラ (DMAC)
データバス
14.5
2 サイクル転送時およびフライバイ転送時のデータの動きを図で示します。
■ 2 サイクル転送時のデータの動き
図 14.5-1 に , 2 サイクル転送時の 6 種類の転送例を示します。
図 14.5-1 2 サイクル転送の転送例
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
MB91xxx
ライトサイクル
I-bus
D-bus
F-bus
RAM
DMAC
X-bus
バスコントローラ
データバッファ
外部バス I/F
DMAC
CPU
MB91xxx
外部バス I/F
外部領域=>外部領域 転送
F-bus
I/O
RAM
I/O
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
MB91xxx
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
X-bus
バスコントローラ
データバッファ
外部バス I/F
DMAC
CPU
MB91xxx
外部バス I/F
外部領域=>内部RAM領域 転送
F-bus
I/O
RAM
I/O
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
F-bus
RAM
MB91xxx
DMAC
ライトサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
外部バス I/F
DMAC
CPU
MB91xxx
外部バス I/F
外部領域=>内蔵I/O領域 転送
F-bus
I/O
RAM
I/O
( 続く )
422
第 14 章 DMA コントローラ (DMAC)
( 続き )
CPU
リードサイクル
I-bus
X-bus
バスコントローラ
D-bus
MB91xxx
X-bus
バスコントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
外部バス I/F
DMAC
CPU
MB91xxx
外部バス I/F
内蔵I/O領域=>内部RAM領域 転送
F-bus
I/O
RAM
I/O
CPU
リードサイクル
I-bus
X-bus
バスコントローラ
D-bus
MB91xxx
X-bus
バスコントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
外部バス I/F
DMAC
CPU
MB91xxx
外部バス I/F
内部RAM領域=>外部領域 転送
F-bus
I/O
RAM
I/O
CPU
リードサイクル
I-bus
X-bus
バスコントローラ
D-bus
F-bus
RAM
MB91xxx
DMAC
ライトサイクル
I-bus
X-bus
バスコントローラ
D-bus
外部バス I/F
DMAC
CPU
MB91xxx
外部バス I/F
内部RAM領域=>内蔵I/O領域 転送
F-bus
I/O
RAM
I/O
423
第 14 章 DMA コントローラ (DMAC)
■ フライバイ転送時のデータの動き
図 14.5-2 に , フライバイ転送時の 2 種類の転送例を示します。
図 14.5-2 フライバイ転送の転送例
DMAC
CPU
リードサイクル
I-bus
X-bus
バスコントローラ
D-bus
memory
MB91xxx
外部バス I/F
フライバイ転送 (memory to I/O)
RDX,DACKでI/Oライトする。
I/O
F-bus
RAM
RDX,CSxXでmemoryリードする。
I/O
SDRAMでのfly-by転送は不可。
DMAC
CPU
リードサイクル
I-bus
X-bus
バスコントローラ
D-bus
memory
MB91xxx
外部バス I/F
フライバイ転送 (I/O to memory)
WR0X/1X,DACKでI/Oリードする。
I/O
I/O
F-bus
RAM
WR0X/1X,CSxXでmemoryライトする。
SDRAMでのfly-by転送は不可。
424
第 14 章 DMA コントローラ (DMAC)
14.6
DMA 外部インタフェース
DMA 外部インタフェースにおける動作タイミングチャートを示します。
■ DMA 外部インタフェースの端子
DMA ch0 ∼ ch2 は , 以下の DMA 専用端子 (DREQ, DACK, DEOP) をもっています。
• DREQ: デマンド転送を行うときの DMA 転送要求入力端子です。
1 入力で転送要求。
• DACK: DMA が外部インタフェースを通して外部領域にアクセスした場合にアクティブ
("L" 出力 ) になります。
• DEOP: DMA 転送がすべて終了する最後のアクセスに同期してアクティブ ("L" 出
力 ) になります。
また , IORD および IOWR 信号は , 次の条件でアクティブになります。
• IORD : フライバイ転送時 , I/O →メモリの方向選択時にアクティブになります。
• IOWR : フライバイ転送時 , メモリ→ I/O の方向選択時にアクティブになります。
425
第 14 章 DMA コントローラ (DMAC)
14.6.1
DMA 外部インタフェースの動作例 ( 簡易波形 )
DMA 外部インタフェースの動作例 ( 簡易波形 ) として以下の 3 例のタイミング
チャートを示します。
• 2 サイクル転送
• フライバイ転送 (I/O →メモリ )
• フライバイ転送 ( メモリ→ I/O)
■ 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 )
図 14.6-1 2 サイクル転送のタイミングチャート
A24~A0
#RD1
#WR1
#RD2
#WR2
RD
ライト信号は,外部バス
インタフェースの設定に
よる。
WE,WR0,WR1
DEOP
DACK
CS1
1回目リード 1回目ライト 2回目リード 2回目ライト
■ フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 )
図 14.6-2 フライバイ転送 (I/O →メモリ ) のタイミングチャート
A24~A0
CPU
#1
#2
#3
RD
WE,WR0,WR1
ライト信号は,外部バス
インタフェースの設定に
よる。
IORD
DEOP
DACK
CS1
CPUリード
426
fly-by1回目 fly-by2回目
fly-by3回目
第 14 章 DMA コントローラ (DMAC)
■ フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 )
図 14.6-3 フライバイ転送 ( メモリ→ I/O) のタイミングチャート
A24~A0
CP
#1
#2
#3
RD
ライト信号は,外部バス
インタフェースの設定に
よる。
WE,WR0,WR1
IOWR
DEOP
DACK
CS1
CPUリード
fly-by1回目 fly-by2回目
fly-by3回目
427
第 14 章 DMA コントローラ (DMAC)
14.6.2
DREQx 端子の入力タイミング
DREQx 端子は , DMA の起動要求信号です。ポートと兼用になっている場合は PFR
レジスタで DREQ 入力を許可してください。ここでは , DREQx 端子の入力タイミ
ングを示します。
■ デマンド転送以外のタイミング
デマンド転送以外の場合は , DMA の起動要因をエッジ検出に設定してください。立上
り / 立下りタイミングに規定はありませんが , DREQ 信号の保持時間は , 3 クロック以
上必要です。再度転送要求をする場合は , DMA 転送が終了した後に要求入力を入れて
ください (DEOP が出力されたあとに要求する ) 。
DEOP 出力前に要求を入れても無視されることがあります。
図 14.6-4 に , デマンド転送以外の場合のタイミングチャートを示します。
図 14.6-4 デマンド転送以外のタイミングチャート
DREQxエッジ要求時(2サイクル転送時)
MCLK
DREQ
A24~A0
#RD1
#WR1
#RD2
#WR2
RD
ライト信号は,
外部バスインタ
フェースの設定
による。
WE,WR0,WR1
DEOP
CPU動作
MAD転送
CPU
3サイクル以上
次の要求はDEOP出力後
■ デマンド転送のタイミング
デマンド転送の場合は , DMA の起動要因をレベル検出に設定してください。起動開始
時に規定はありませんが , 停止時は DMA 転送の RD /WR に同期させてください。セン
スタイミングは最終外部アクセスの MCLK の立上りになります。
図 14.6-5 に , デマンド転送の場合のタイミングチャートを示します。
428
第 14 章 DMA コントローラ (DMAC)
図 14.6-5 デマンド転送の場合のタイミングチャート
DREQxレベル要求時(2サイクル転送時)
MCLK
DREQ
A24~A0
#RD1
#WR1
#RD2
#WR2
RD
WE,WR0,WR1
CPU動作
DMA転送
CPU
ライト信号は,
外部バスインタ
フェースの設定
による。
3回目の転送要求のセンスポイント
<注意事項>
この場合は , 2 サイクル転送で転送元 / 転送先が外部領域のため , 2 回の DMA 転送で停
止させるときは #RD2 の立下りから #WR2 の最終の MCLK 立上り前までにネゲートし
てください。
429
第 14 章 DMA コントローラ (DMAC)
14.6.3
DACK (DEOP) の FR30 互換モード
この DACK の FR30 互換モードは , DACK のタイミングを FR30 の DMA と同じタ
イミングにするモードです。ここでは , FR30 互換モードにおける DACK (DEOP) 端
子のタイミングチャートを , 以下の転送モード設定例について示します。
• 2 サイクル転送モード
• フライバイ転送モード
■ 転送モードの設定
転送モードは , DACK 端子に対応する PFR レジスタで設定してください。
PFR 設定時は対応する DMA チャネルの転送モード (2 サイクル転送 , フライバイ転送 )
と合わせてください。
<注意事項>
FR30 互換モードで 2 サイクル転送の設定時 , RD または WE に同期します。WE を使
用する場合は , 外部インタフェース ACR レジスタの TYPE3 ∼ TYPE0 を "0x1x" にし
て WE を有効にしてください。
WR0/WR1を有効にしたとき (TYPE3∼TYPE0=0x0x) は, FR30互換モードは使用でき
ません。
● 2 サイクル転送モード
図 14.6-6 に , 2 サイクル転送モードにおけるタイミングチャートを示します。
図 14.6-6 2 サイクル転送モードにおけるタイミングチャート
RD
UUB/ULB
WE
DACK(AKxx=111) *
チップセレクトと同じタイミング
DACK(AKxx=001) * 2サイクル転送時設定禁止
DACK(AKxx=110) *
DACK(AKxx=100) *
DACK(AKxx=010) *
* :AKxx は , DMA チャネルに対応する PFR レジスタの設定値です。
430
第 14 章 DMA コントローラ (DMAC)
● フライバイ転送モード
図 14.6-7 に , フライバイ転送モードにおけるタイミングチャートを示します。
図 14.6-7 フライバイ転送モードにおけるタイミングチャート
RD
UUB/ULB
WE
IORD
IOWR
DACK(AKxx=111) *
DACK(AKxx=001)
チップセレクトと同じタイミング
*
DACK(AKxx=110) * フライバイ転送時設定禁止
DACK(AKxx=100) * フライバイ転送時設定禁止
DACK(AKxx=010) * フライバイ転送時設定禁止
memory to I/O
I/O to memory
memory to I/O
I/O to memory
* :AKxx は , DMA チャネルに対応する PFR レジスタの設定値です。
<注意事項>
DEOP のタイミングは , 各 DACK の設定と連動していますので , DACK と同じタイミ
ングとなります。
431
第 14 章 DMA コントローラ (DMAC)
432
第 15 章
ビットサーチモジュール
この章では , ビットサーチモジュールの概要 , レジ
スタ構成 / 機能およびビットサーチモジュールの動
作について説明しています。
15.1 ビットサーチモジュールの概要
15.2 ビットサーチモジュールのレジスタ
15.3 ビットサーチモジュールの動作
433
第 15 章 ビットサーチモジュール
15.1
ビットサーチモジュールの概要
入力レジスタに書き込まれたデータに対して , 0, 1 または変化点を検索し , 検出した
ビット位置を返します。
■ ビットサーチモジュールのブロックダイヤグラム
図 15.1-1 にビットサーチモジュールのブロックダイヤグラムを示します。
図 15.1-1 ビットサーチモジュールのブロックダイヤグラム
D-bus
入力ラッチ
アドレス
デコーダ
検出モ ー ド
1検出データ化
ビットサーチ回路
検索結果
434
第 15 章 ビットサーチモジュール
15.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタを示します。
■ ビットサーチモジュールのレジスタ一覧
図 15.2-1 ビットサーチモジュールのレジスタ一覧
31
0
BSD0
0 検出用データレジスタ
アドレス : 000003F4H
BSD1
1 検出用データレジスタ
アドレス : 000003F8H
BSDC
変化点検出用データレジスタ
アドレス : 000003FCH
BSRR
検出結果レジスタ
アドレス : 000003F0H
■ 0 検出用データレジスタ (BSD0)
0 検出用データレジスタ (BSD0) のレジスタ構成は以下のとおりです。
31
0
000003F0H
リード / ライト→ W
初期値→ 不定
書き込んだ値に対して , 0 検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください。
8 ビット長 , 16 ビット長のデータ転送命令は , 使わないでください。
■ 1 検出用データレジスタ (BSD1)
1 検出用データレジスタ (BSD1) のレジスタ構成は以下のとおりです。
31
0
000003F4H
リード / ライト→ R/W
初期値→ 不定
データ転送には , 32 ビット長のデータ転送命令を使用してください。
8 ビット長 , 16 ビット長のデータ転送命令は , 使わないでください。
● 書込み時
書き込んだ値に対して , "1" を検出します。
435
第 15 章 ビットサーチモジュール
● 読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハンド
ラ等がビットサーチモジュールを使用する場合に , 元の状態を退避復帰するときに使
用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ
ジスタのみ操作することで退避復帰できます。
リセットによる初期値は不定です。
■ 変化点検出用データレジスタ (BSDC)
変化点検出用データレジスタ (BSDC) のレジスタ構成は以下のとおりです。
。
31
0
000003F8H
リード / ライト→ W
初期値→ 不定
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください。
8 ビット長 , 16 ビット長のデータ転送命令は , 使わないでください。
■ 検出結果レジスタ (BSRR)
0 検出 , 1 検出または変化点検出の結果が読み出されます。どの検出結果が読み出され
るかは , 最後に書き込んだデータレジスタによって決定されます。
検出結果レジスタ (BSRR) のレジスタ構成は以下のとおりです。。
31
000003FCH
リード / ライト→ R
初期値→ 不定
436
0
第 15 章 ビットサーチモジュール
15.3
ビットサーチモジュールの動作
ビットサーチモジュールは , 次の 3 つの動作を行います。
• 0 検出
• 1 検出
• 変化点検出
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。検出結果は , 検出結果レジスタを読み出すことで得ら
れます。検出した位置と , 返す数値の関係は , 表 15.3-1 のとおりです。
"0" が存在しないとき , ( すなわち FFFFFFFFH という数値のとき , ) 32 という値をサー
チ結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B
(FFFFF000H)
→
20
11111000010010011110000010101010B
(F849E0AAH)
→
5
10000000000000101010101010101010B
(8002AAAAH)
→
1
11111111111111111111111111111111B
(FFFFFFFFH)
→
32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。検出結果は , 検出結果レジスタを読み出すことで得ら
れます。検出した位置と返す値との関係は , 表 15.3-1 のとおりです。
"1" が存在しないとき , ( すなわち 00000000H という数値のとき , ) 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B
(20000000H)
→
2
00000001001000110100010101100111B
(01234567H)
→
7
00000000000000111111111111111111B
(0003FFFFH)
→
14
00000000000000000000000000000001B
(00000001H)
→
31
00000000000000000000000000000000B
(00000000H)
→
32
437
第 15 章 ビットサーチモジュール
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを , ビット 30 から LSB へスキャン
し , MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。検出
結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は , 表 15.3-1 の示すとおりです。変化点が存在しないときは , 32
を返します。変化点検出では , 結果として "0" を返すことはありません。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B
(20000000H)
→
2
00000001001000110100010101100111B
(01234567H)
→
7
00000000000000111111111111111111B
(0003FFFFH)
→
14
00000000000000000000000000000001B
(00000001H)
→
31
00000000000000000000000000000000B
(00000000H)
→
32
11111111111111111111000000000000B
(FFFFF000H)
→
20
11111000010010011110000010101010B
(F849E0AAH)
→
5
10000000000000101010101010101010B
(8002AAAAH)
→
1
11111111111111111111111111111111B
(FFFFFFFFH)
→
32
表 15.3-1 ビット位置と返す値 (10 進 )
438
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
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
第 15 章 ビットサーチモジュール
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1)
検出用データレジスタを読み出し , この内容を保存する ( 退避 )
2)
ビッチサーチモジュールを使用
3)
1) で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により , 次に検出結果レジスタを読み出したときに得られる値は , 1) 以前
に , ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが0検出用または変化点検出用であっても, 上記手
順で正しく元に戻ります。
439
第 15 章 ビットサーチモジュール
440
付録
付録として , I/O マップ , 割込みベクタ , CPU ス
テートでの端子状態 , リトルエンディアン領域を利
用するときの注意事項および命令一覧について , 本
文に記載できなかった細かいところや , プログラミ
ングするときに参照することがらを記載していま
す。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C 各 CPU ステートにおける端子状態
付録 D リトルエンディアン領域を利用する際の注意事項
付録 E 命令一覧
441
付録
付録 A
I/O マップ
付表 A-1 にメモリ空間領域と周辺リソースの各レジスタの対応を示します。
■ I/O マップ
[ 表の見方 ]
アドレス
000000 H
+0
PDR0 [R/W]
XXXXXXXX
レジスタ
ブロック
+1
+2
+3
PDR1 [R/W] PDR2 [R/W] PDR3 [R/W]
T-unit
XXXXXXXX XXXXXXXX
XXXXXXXX ポートデータレジスタ
読出し/書込みの属性
リセット後のレジスタ初期値
レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+2番地…)
最左のレジスタ番地(ワードでアクセスした際は,1コラム目の
レジスタがデータのMSB側となる。)
<注意事項>
レジスタのビット値は , 以下のように初期値を表します。
"1": 初期値 "1"
"0": 初期値 "0"
"X": 初期値 "X"
"-": その位置に物理的にレジスタがない
442
付録 A I/O マップ
付表 A-1 I/O マップ (1 / 7)
アドレス
レジスタ
+0
+1
000000H
―
―
000004H
―
―
000008H
PDR8 [R/W]
--X--XXX
PDR9 [R/W]
XXXXXXX-
PDRG [R/W]
-----XXX
―――
PDRH [R/W]
PDRI [R/W]
XXX00XXX
---XXXXX
00000CH
000010H
000018H
|
00001CH
000020H
|
00003CH
+2
000050H
TMRLR [W]
XXXXXXXX XXXXXXXX
000058H
TMRLR [W]
XXXXXXXX XXXXXXXX
00005CH
――――
000060H
000064H
000068H
00006CH
000070H
000074H
000078H
00007CH
000080H
000084H
PDRJ [R/W]
XXXXXXXX
T-unit
ポートデータ
レジスタ
未使用
――――
――――
PDR7 [R/W]
-------X
PDRB [R/W]
XXXXXXXX
――――
00004CH
000054H
―
――――
000048H
000044H
PDR2 [R/W]
XXXXXXXX
PDR6 [R/W]
XXXXXXXX
PDRA [R/W]
XXXXXXXX
ブロック
R-bus
ポートデータ
レジスタ
EIRR [R/W]
ENIR [R/W]
00000000
00000000
DICR [R/W]
HRCL [R/W,R]
-------0
0--11111
TMRLR [W]
XXXXXXXX XXXXXXXX
000040H
+3
SSR [R/W,R] SIDR/SODR [R,W]
00001-00
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
SSR [R/W,R] SIDR/SODR [R,W]
00001-00
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
SSR [R/W,R] SIDR/SODR [R,W]
00001-00
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
ADCR [R]
XXXXXXXX XXXXXXXX
ELVR [R/W]
00000000
Ext int
――――
DLYI/I-unit
TMR [R]
XXXXXXXX XXXXXXXX
TMCSR [R/W,R]
----0000 00000000
TMR [R]
XXXXXXXX XXXXXXXX
TMCSR [R/W,R]
----0000 00000000
TMR [R]
XXXXXXXX XXXXXXXX
TMCSR [R/W,R]
----0000 00000000
SCR [R/W]
SMR [R/W,W]
00000100
00--0-0DRCL [W]
UTIMC [R/W]
-------0--00001
SCR [R/W]
SMR [R/W,W]
00000100
00--0-0DRCL [W]
UTIMC [R/W]
-------0--00001
SCR [R/W]
SMR [R/W,W]
00000100
00--0-0DRCL [W]
UTIMC [R/W]
-------0--00001
ADCS [R/W]
00000000 00000000
――――
――――
――――
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
UART0
U-TIMER 0
UART1
U-TIMER 1
UART2
U-TIMER 2
A/D コンバータ
逐次比較
未使用
未使用
443
付録
付表 A-1 I/O マップ (2 / 7)
アドレス
000088H
00008CH
000090H
000094H
000098H
00009CH
0000A0H
0000A4H
0000A8H
0000ACH
0000B0H
000200H
000204H
000208H
00020CH
000210H
000214H
000218H
00021CH
000220H
000224H
000228H
00022CH
|
00023CH
000240H
000244H
|
000274H
000278H
00027CH
000280H
|
0002FCH
444
レジスタ
+0
+1
+2
+3
――――
――――
――――
IBCR [W,R/W]
IBSR [R]
ITBA [R/W]
00000000
00000000
------00 00000000
ITMK [R,R/W]
ISBA [R/W]
ISMK [R/W]
01111111
00----11 11111111
-0000000
IDAR [R/W]
ICCR [W,R/W]
IDBL [R/W]
−
00000000
0-011111
-------0
________
________
________
――――
――――
DMACA0 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB0 [R/W]
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA1 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB1 [R/W]
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA2 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB2 [R/W]
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA3 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB3 [R/W]
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA4 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB4 [R/W]
00000000 00000000 XXXXXXXX XXXXXXXX
ブロック
未使用
未使用
未使用
I2C
インタフェース
未使用
未使用
未使用
未使用
未使用
DMAC
――――
――――
未使用
DMACR [R/W]
0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX
DMAC
――――
未使用
――――
――――
未使用
未使用
――――
未使用
付録 A I/O マップ
付表 A-1 I/O マップ (3 / 7)
アドレス
レジスタ
+0
000300H
――――
000308H
|
0003E0H
――――
0003E8H
|
0003ECH
0003F8H
0003FCH
000400H
000414H
000418H
00041CH
000420H
|
00043CH
PFRG [R/W]
----0000
――――
――――
――――
――――
I- キャッシュ
未使用
ICHCR [R/W]
0-000000
I- キャッシュ
未使用
BSD0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSD1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSDC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSRR [R]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DDRG [R/W]
DDRH [R/W]
DDRI [R/W]
DDRJ [R/W]
-----000
00011000
--000000
00000000
――――
――――
――――
PFRH [R/W]
PFRI [R/W]
0000000--00-00-
ブロック
未使用
ISIZE [R/W]
------00
――――
000404H
000408H
00040CH
000410H
+3
――――
0003E4H
0003F4H
+2
――――
000304H
0003F0H
+1
ビットサーチ
モジュール
R-bus
ポート方向
レジスタ
R-bus
ポート機能
レジスタ
未使用
445
付録
付表 A-1 I/O マップ (4 / 7)
アドレス
000440H
000444H
000448H
00044CH
000450H
000454H
000458H
00045CH
000460H
000464H
000468H
00046CH
レジスタ
+0
+1
+2
+3
ICR00 [R/W,R]
---11111
ICR04 [R/W,R]
---11111
ICR08 [R/W,R]
---11111
ICR12 [R/W,R]
---11111
ICR16 [R/W,R]
---11111
ICR20 [R/W,R]
---11111
ICR24 [R/W,R]
---11111
ICR28 [R/W,R]
---11111
ICR32 [R/W,R]
---11111
ICR36 [R/W,R]
---11111
ICR40 [R/W,R]
---11111
ICR44 [R/W,R]
---11111
ICR01 [R/W,R]
---11111
ICR05 [R/W,R]
---11111
ICR09 [R/W,R]
---11111
ICR13 [R/W,R]
---11111
ICR17 [R/W,R]
---11111
ICR21 [R/W,R]
---11111
ICR25 [R/W,R]
---11111
ICR29 [R/W,R]
---11111
ICR33 [R/W,R]
---11111
ICR37 [R/W,R]
---11111
ICR41 [R/W,R]
---11111
ICR45 [R/W,R]
---11111
ICR02 [R/W,R]
---11111
ICR06 [R/W,R]
---11111
ICR10 [R/W,R]
---11111
ICR14 [R/W,R]
---11111
ICR18 [R/W,R]
---11111
ICR22 [R/W,R]
---11111
ICR26 [R/W,R]
---11111
ICR30 [R/W,R]
---11111
ICR34 [R/W,R]
---11111
ICR38 [R/W,R]
---11111
ICR42 [R/W,R]
---11111
ICR46 [R/W,R]
---11111
ICR03 [R/W,R]
---11111
ICR07 [R/W,R]
---11111
ICR11 [R/W,R]
---11111
ICR15 [R/W,R]
---11111
ICR19 [R/W,R]
---11111
ICR23 [R/W,R]
---11111
ICR27 [R/W,R]
---11111
ICR31 [R/W,R]
---11111
ICR35 [R/W,R]
---11111
ICR39 [R/W,R]
---11111
ICR43 [R/W,R]
---11111
ICR47 [R/W,R]
---11111
000470H
|
00047CH
000480H
000484H
RSRR [R/W]
10000000 (**)
CLKR [R/W]
00000000 (*)
STCR [R/W]
00110011 (**)
WPR [W]
XXXXXXXX
クロック制御
ユニット
DDR7 [R/W]
-------0
DDRB [R/W]
00000000
――――
――――
PFR6 [R/W]
――――
11111111
PFR9 [R/W]
PFRA [R/W]
0-001101
11111111
PFR7 [R/W]
-------1
PFRB1 [R/W]
00000000
000604H
――――
――――
000608H
DDR8 [R/W]
--0--000
DDR9 [R/W]
00000000
00060CH
000610H
――――
PFR8 [R/W]
--1--0-PFRB2 [R/W]
00------
未使用
DDR2 [R/W]
00000000
DDR6 [R/W]
00000000
DDRA [R/W]
00000000
――――
446
CTBR [W]
XXXXXXXX
DIVR1 [R/W]
00000000 (*)
――――
――――
00061CH
TBCR [R/W]
00XXXX00 (*)
DIVR0 [R/W]
00000011 (*)
――――
000600H
000618H
割込み
コントローラ
――――
000488H
00048CH
|
0005FCH
000614H
ブロック
――――
T-unit
ポート方向
レジスタ
T-unit
ポート機能
レジスタ
付録 A I/O マップ
付表 A-1 I/O マップ (5 / 7)
アドレス
レジスタ
+0
+1
+2
+3
ブロック
000620H
――――
000624H
――――
T-unit
ポート機能
レジスタ
000628H
|
00063FH
――――
未使用
000640H
000644H
000648H
00064CH
000650H
000654H
000658H
00065CH
000660H
000664H
000668H
00066CH
ASR0 [R/W]
00000000 00000000 (*)
ASR1 [R/W]
XXXXXXXX XXXXXXXX (*)
ASR2 [R/W]
XXXXXXXX XXXXXXXX (*)
ASR3 [R/W]
XXXXXXXX XXXXXXXX (*)
ASR4 [R/W]
XXXXXXXX XXXXXXXX (*)
ASR5 [R/W]
XXXXXXXX XXXXXXXX (*)
ASR6 [R/W]
XXXXXXXX XXXXXXXX (*)
ASR7 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR0 [R/W]
011111111 11111111 (*)
AWR2 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR4 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR6 [R/W]
XXXXXXXX XXXXXXXX (*)
000670H
000674H
000678H
IOWR0 [R/W]
XXXXXXXX
00067CH
000680H
CSER [R/W]
000000001
000684H
000684H
|
0007F8H
0007FCH
000800H
|
000AFCH
ACR0 [R/W]
1111XX00 00000000 (*)
ACR1 [R/W]
XXXXXXXX XXXXXXXX (*)
ACR2 [R/W]
XXXXXXXX XXXXXXXX (*)
ACR3 [R/W]
XXXXXXXX XXXXXXXX (*)
ACR4 [R/W]
XXXXXXXX XXXXXXXX (*)
ACR5 [R/W]
XXXXXXXX XXXXXXXX (*)
ACR6 [R/W]
XXXXXXXX XXXXXXXX (*)
ACR7 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR1 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR3 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR5 [R/W]
XXXXXXXX XXXXXXXX (*)
AWR7 [R/W]
XXXXXXXX XXXXXXXX (*)
――――
――――
IOWR1 [R/W]
IOWR2 [R/W]
XXXXXXXX
XXXXXXXX
――――
CHER [R/W]
――――
11111111
T-unit
――――
TCR [R/W]
00000000
――――
――――
――――
MODR [R/W]
XXXXXXXX
――――
未使用
――――
未使用
447
付録
付表 A-1 I/O マップ (6 / 7)
アドレス
000B00H
000B04H
000B08H
000B0CH
000B10H
000B14H
|
000B1CH
000B20H
000B24H
000B28H
000B2CH
000B30H
000B34H
000B38H
000B3CH
000B40H
000B44H
000B48H
000B4CH
000B50H
000B54H
000B58H
000B5CH
000B60H
000B64H
448
レジスタ
+0
+1
+2
ESTS0 [R/W]
ESTS1 [R/W]
X0000000
XXXXXXXX
ECTL0 [R/W]
ECTL1 [R/W]
0X000000
00000000
ECNT0 [W]
ECNT1 [W]
XXXXXXXX
XXXXXXXX
EWPT [R]
00000000 00000000
EDTR0 [W]
XXXXXXXX XXXXXXXX
+3
ESTS2 [R]
1XXXXXXX
ECTL2 [W]
000X0000
EUSA [W]
XXX00000
ブロック
――――
ECTL3 [R/W]
00X00X11
EDTC [W]
0000XXXX
――――
EDTR1 [W]
XXXXXXXX XXXXXXXX
――――
EIA0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA2 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA3 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA4 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA5 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA6 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA7 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDTA [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDTM [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOA0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOA1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EPCR [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EPSR [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIAM0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIAM1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOAM0/EODM0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOAM1/EODM1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DSU
付録 A I/O マップ
付表 A-1 I/O マップ (7 / 7)
アドレス
000B68H
000B6CH
000B70H
|
000FFCH
001000H
001004H
001008H
00100CH
001010H
001014H
001018H
00101CH
001020H
001024H
レジスタ
+0
+1
+2
+3
ブロック
EOD0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOD1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DSU
――――
未使用
DMASA0 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMADA0 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMASA1 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMADA1 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMASA2 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMADA2 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMASA3 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMADA3 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMASA4 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMADA4 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DMAC
( 注意事項 )
• 書込み専用ビットのあるレジスタに対して RMW 系の命令を実行しないでください。
• Reserved または読出し専用のレジスタに対して , とくに断りがないかぎり書込みアクセスをしな
いでください。
• Reserved または (-) の領域のデータは不定です。
• RMW 系の命令 (RMW: リードモディファイライト )
AND
: Rj, @Ri
OR
: Rj, @Ri
EOR
: Rj, @Ri
ANDH : Rj, @Ri
OR
: HRj, @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
449
付録
付録 B
割込みベクタ
付表 B-1 に割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91307 の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載されて
います。
■ 割込みベクタ
付表 B-1 割込みベクタ (1 / 3)
450
割込み番号
オフセット
TBR デフォルト
のアドレス
10 進
16 進
割込み
レベル
リセット
0
00
−
3FCH
000FFFFCH
モードベクタ
1
01
−
3F8H
000FFFF8H
000FFFF4H
割込み要因
システム予約
2
02
−
3F4H
システム予約
3
03
−
3F0H
000FFFF0H
システム予約
4
04
−
3ECH
000FFFECH
システム予約
5
05
−
3E8H
000FFFE8H
システム予約
6
06
−
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
コプロセッサエラートラップ
8
08
−
3DCH
000FFFDCH
INTE 命令
9
09
−
3D8H
000FFFD8H
命令ブレーク例外
10
0A
−
3D4H
000FFFD4H
オペランドブレークトラップ
11
0B
−
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
−
3C8H
000FFFC8H
未定義命令例外
14
0E
3C4H
000FFFC4H
NMI 要求
15
0F
−
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
UART1 ( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
UART2 ( 受信完了 )
29
1D
ICR13
388H
000FFF88H
UART0 ( 送信完了 )
30
1E
ICR14
384H
000FFF84H
付録 B 割込みベクタ
付表 B-1 割込みベクタ (2 / 3)
割込み番号
10 進
16 進
割込み
レベル
オフセット
TBR デフォルト
のアドレス
UART1 ( 送信完了 )
31
1F
ICR15
380H
000FFF80H
UART2 ( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
DMAC0 ( 終了 , エラー )
33
21
ICR17
378H
000FFF78H
DMAC1 ( 終了 , エラー )
34
22
ICR18
374H
000FFF74H
DMAC2 ( 終了 , エラー )
35
23
ICR19
370H
000FFF70H
DMAC3 ( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
DMAC4 ( 終了 , エラー )
37
25
ICR21
368H
000FFF68H
A/D
38
26
ICR22
364H
000FFF64H
I2C
39
27
ICR23
360H
000FFF60H
システム予約
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
システム予約
42
2A
ICR26
354H
000FFF54H
システム予約
U-TIMER0
43
2B
ICR27
350H
000FFF50H
44
2C
ICR28
34CH
000FFF4CH
U-TIMER1
45
2D
ICR29
348H
000FFF48H
U-TIMER2
46
2E
ICR30
344H
000FFF44H
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
システム予約
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
000FFF1CH
割込み要因
システム予約
56
38
ICR40
31CH
システム予約
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 にて使用 )
64
40
−
2FCH
000FFEFCH
システム予約 (REALOS にて使用 )
65
41
−
2F8H
000FFEF8H
システム予約
66
42
−
2F4H
000FFEF4H
システム予約
67
43
−
2F0H
000FFEF0H
システム予約
68
44
−
2ECH
000FFEECH
システム予約
69
45
−
2E8H
000FFEE8H
システム予約
70
46
−
2E4H
000FFEE4H
451
付録
付表 B-1 割込みベクタ (3 / 3)
割込み番号
10 進
16 進
割込み
レベル
オフセット
TBR デフォルト
のアドレス
システム予約
71
47
−
2E0H
000FFEE0H
システム予約
72
48
−
2DCH
000FFEDCH
システム予約
73
49
−
2D8H
000FFED8H
システム予約
74
4A
−
2D4H
000FFED4H
システム予約
75
4B
−
2D0H
000FFED0H
システム予約
76
4C
−
2CCH
000FFECCH
システム予約
77
4D
−
2C8H
000FFEC8H
システム予約
78
4E
−
2C4H
000FFEC4H
システム予約
79
4F
−
2C0H
000FFEC0H
INT 命令で使用
80
|
255
50
|
FF
−
2BCH
|
000H
000FFEBCH
|
000FFC00H
割込み要因
( 注意事項 )
• ICR は , 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対する割込みレベル
を設定します。ICR は , 割込み要求のそれぞれに対応して用意されています。
• TBR は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレスとなり
ます。
• REALOS/FR は , システムコード用に 0x40, 0x41 の割込みを使用します。
参考 :
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよう
に表されます。
Vctadr = TBR + vctofs
= TBR + (3FCH - 4 × vct)
vctadr : ベクタアドレス
vctofs : ベクタオフセット
vct
452
: ベクタ番号
付録 C 各 CPU ステートにおける端子状態
付録 C
各 CPU ステートにおける端子状態
付表 C-2,付表 C-3 に各 CPU ステートにおける端子状態を示します。
■ 端子状態一覧表の語句の意味
端子の状態に対する語句は以下の意味を持ちます。
付表 C-1 端子状態一覧表の用語説明
用 語
説 明
入力可
入力機能が使用可能な状態であることを意味します。
入力 0 固定
端子からすぐの入力ゲートで , 外部入力を遮断します。
内部へは ”0” レベルが伝わります。
出力 Hi-Z
端子駆動用トランジスタを駆動禁止状態にし , 端子をハイイ
ンピーダンスにすることを意味します。
出力保持
このモードになる直前に出力していた状態をそのまま出力す
ることを意味します。
すなわち , 出力のある内蔵周辺が動作中であれば , その内蔵周
辺にしたがって出力を行い , ポートなどとして出力している
場合には , その出力を保持します。
直前の状態を保持
このモードになる直前に出力していた状態をそのまま出力 ,
あるいは入力であれば入力可能を意味します。
453
付録
■ 端子状態一覧表
付表 C-2 外部バス 16 ビットモード時の端子状態
端子名
機能
P20 ∼ P27
P60 ∼ P67
P70
P16 ∼ P23
D24 ∼ D31
A0 ∼ A7
A8 ∼ A15
A16 ∼ A23
A24
P85
WR1/ULB
-
WR0/UUB
-
RD
P82
BRQ
P81
BGRNT
P80
RDY
-
CS0
PA1 ∼ PA7
CS1 ∼ CS7
P90
SYSCLK
P91
-
P92
MCLK
P93
-
P94
LBA/AS
P95
BAA
P96
P97
PB0
PB1
WE
DREQ0
DACK0
DEOP0/
DSTP0
DREQ1
DACK1
DEOP1/
DSTP1
IOWR
IORD
DREQ2
DACK2
DEOP2/
DSTP2
SI2
SO2
SC2
TOT0
TOT1
TOT2
SDA
SCL
SI0
PB2
PB3
PB4
PB5
PB6
PB7
PG0
PG1
PG2
PH0
PH1
PH2
PH3
PH4
PH5
PH6
PH7
PI0
454
スリープ時
出力保持 or Hi-Z
ストップ時
HIZ=0
HIZ=1
バス開放
(BGRNT)
アドレス出力保持 同左
P, F ともに直前
状態保持
直前状態保持
同左
ハードウェア
スタンバイ時
出力 Hi-Z/
入力可
同左
P: 直前状態保持
F: アドレス出力
P: 直前状態保持
F: H 出力
イニシャライ
ズ時 (INIT)
モードベクタ
アドレス出力 *2
同左
出力 Hi-Z
H 出力
P: 直前状態保持
F: BRQ 入力
P: 直前状態保持
F: H 出力
P: 直前状態保持
F: RDY 入力
直前状態保持
P: 直前状態保持
F: CS 出力
P: 直前状態保持
F: SYSCLK 出力
BRQ 入力
P, F ともに直前
状態保持
L 出力
P: 直前状態保持
F: RDY 入力
同左
H 出力
出力 Hi-Z
CLK 出力 *3
出力 Hi-Z/
入力可
P: 直前状態保持
P: 直前状態保持
F: MCLK 出力
直前状態保持
P: 直前状態保持
F: LBA/AS 出力
P: 直前状態保持
F: BAA 出力
出力 Hi-Z/
入力可
CLK 出力 *3
P, F ともに直前
状態保持
出力 Hi-Z/
入力 0 固定
直前状態保持
出力 Hi-Z/
入力 0 固定
出力 Hi-Z
直前状態保持
出力 Hi-Z
出力 Hi-Z/
入力可
直前状態保持
直前状態保持
直前状態保持
出力 Hi-Z/
入力可
備考
付録 C 各 CPU ステートにおける端子状態
付表 C-2 外部バス 16 ビットモード時の端子状態
端子名
機能
PI1
PI2
PI3
PI4
PI5
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
SO0
SC0
SI1
SO1
SC1
INT0
INT1
INT2
INT3
INT4/TIN0
INT5/TIN1
INT6/TIN2
INT7/ATG
スリープ時
ストップ時
HIZ=0
直前状態保持
HIZ=1
バス開放
(BGRNT)
直前状態保持
出力 Hi-Z/
入力可 *1
ハードウェア
スタンバイ時
備考
出力 Hi-Z/
入力 0 固定
出力 Hi-Z/
入力 0 固定
直前状態保持
直前状態 /
入力可 *1
イニシャライ
ズ時 (INIT)
出力 Hi-Z/
入力可
出力 Hi-Z/
入力可
*1: 入力可状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用します。
*2: 電源投入直後の出力は不定です。
*3: INIT 端子に "L" 入力している期間 , SYSCLK 端子または MCLK 端子は L 出力です。
( 注意事項 )
P は汎用ポート選択時 , F は指定機能選択時です。
455
付録
付表 C-3 外部バス 8 ビットモード時の端子状態
端子名
機能
P20 ∼ P27
P60 ∼ P67
P70
P16 ∼ P23
D24 ∼ D31
A0 ∼ A7
A8 ∼ A15
A16 ∼ A23
A24
P85
WR1/ULB
-
WR0/UUB
スリープ時
直前状態保持
出力保持 or Hi-Z
P, F ともに直前
状態保持
直前状態保持
同左
BRQ
P81
BGRNT
P80
RDY
-
CS0
PA1 ∼ PA7
CS1 ∼ CS7
P90
SYSCLK
P91
-
P: 直前状態保持
P92
MCLK
P: 直前状態保持
F: MCLK 出力
LBA/AS
P95
BAA
P96
-
P97
WE
PB0
PB1
DREQ0
DACK0
DEOP0/
DSTP0
DREQ1
DACK1
DEOP1/
DSTP1
IOWR
IORD
DREQ2
DACK2
DEOP2/
DSTP2
SI2
SO2
SC2
TOT0
TOT1
TOT2
SDA
SCL
SI0
PB2
PB3
PB4
PB5
PB6
PB7
PG0
PG1
PG2
PH0
PH1
PH2
PH3
PH4
PH5
PH6
PH7
PI0
456
バス開放
(BGRNT)
直前状態保持
イニシャライ
ズ時 (INIT)
ハードウェア
スタンバイ時
出力 Hi-Z/
入力可
H 出力
出力 *2
同左
出力 Hi-Z
H 出力
RD
P94
直前状態保持
同左
P: 直前状態保持
F: アドレス出力
P: 直前状態保持
F: H 出力
P82
MCLKI
HIZ=1
アドレス出力保持 同左
-
P93
ストップ時
HIZ=0
P: 直前状態保持
F: BRQ 入力
P: 直前状態保持
F: H 出力
P: 直前状態保持
F: RDY 入力
直前状態保持
P: 直前状態保持
F: CS 出力
P: 直前状態保持
F: SYSCLK 出力
直前状態保持
BRQ 入力
P, F ともに直前
状態保持
L 出力
P: 直前状態保持
F: RDY 入力
出力 Hi-Z/
入力可
同左
H 出力
出力 Hi-Z
CLK 出力 *3
出力 Hi-Z/
入力可
CLK 出力 *3
P: 直前状態保持
F: RDY 入力
P, F ともに直前
状態保持
出力 Hi-Z/
入力 0 固定
P: 直前状態保持
F: LBA/AS 出力
P: 直前状態保持
F: BAA 出力
出力 Hi-Z/
入力 0 固定
出力 Hi-Z
直前状態保持
P: 直前状態保持
F: RDY 入力
P: 直前状態保持
F: WE 出力
出力 Hi-Z
出力 Hi-Z/
入力可
直前状態保持
直前状態保持
直前状態保持
備考
付録 C 各 CPU ステートにおける端子状態
付表 C-3 外部バス 8 ビットモード時の端子状態
端子名
機能
PI1
PI2
PI3
PI4
PI5
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
SO0
SC0
SI1
SO1
SC1
INT0
INT1
INT2
INT3
INT4/TIN0
INT5/TIN1
INT6/TIN2
INT7/ATG
スリープ時
ストップ時
HIZ=0
直前状態保持
HIZ=1
バス開放
(BGRNT)
直前状態保持
出力 Hi-Z/
入力可 *1
ハードウェア
スタンバイ時
備考
出力 Hi-Z/
入力 0 固定
出力 Hi-Z/
入力 0 固定
直前状態保持
直前状態 /
入力可 *1
イニシャライ
ズ時 (INIT)
出力 Hi-Z/
入力可
出力 Hi-Z/
入力可
*1: 入力端子状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用します。
*2: 電源投入直後の出力は不定です。
*3: INIT 端子に "L" 入力している期間 , SYSCLK 端子または MCLK 端子は "L" 出力です。
( 注意事項 )
P は汎用ポート選択時 , F は指定機能選択時です。
457
付録
付録 D
リトルエンディアン領域を利用する際の注意事項
リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明します。
本品種では , サポートしていません。
D.1 C コンパイラ (fcc911)
D.2 アセンブラ (fasm911)
D.3 リンカ (flnk911)
D.4 デバッガ (sim911, eml911, mon911)
458
付録 D リトルエンディアン領域を利用する際の注意事項
D.1
C コンパイラ (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);
}
459
付録
また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ
イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと
きには , 前述の方法においても正しい結果が得られません。
構造体のメンバの配置が一致しないときは,リトルエンディアン領域に構造体変数を配
置しないでください。
■ 文字列操作関数を使った文字型配列以外の操作
標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま
す。このためリトルエンディアン領域に配置された 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 オプションも同様に指定しな
いでください。
460
付録 D リトルエンディアン領域を利用する際の注意事項
■ 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 型データの転送
*/
*/
上記の実行結果は次のようになり , double 型データの転送結果としては誤りになりま
す。
(ビッグエンディアン領域)
3f
f0
00
00
00
00
00
(リトルエンディアン領域)
00
(正しい結果)
→
00 00
f0
3f
00
00
00
00
00
00
00
00
00
f0
3f
00
■ スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部または全部が配置された場合,動作を保証し
ません。
461
付録
D.2
アセンブラ (fasm911)
FR ファミリーのアセンブラ言語でプログラミングをする場合 , リトルエンディアン
領域に関して注意して頂きたい項目を以下に示します。
• セクション
• データのアクセス
■ セクション
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
リトルエンディアン領域にコードやスタック,初期値付きデータセクションなどの指定
をした場合 , MB91307 でのアクセス動作は保証できなくなります。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W 1
Little_Half:
.RES.H 1
Little_Byte:
.RES.B 1
462
付録 D リトルエンディアン領域を利用する際の注意事項
■ データのアクセス
リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン
ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー
タへのアクセスは , 必ずデータサイズと同じサイズで行ってください。
[例]
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
MB91307 シリーズでデータサイズと異なるサイズでアクセスした場合には , その値の
保証はできません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命
令を使って一度にアクセスした場合には , データの値の保証はできません。
463
付録
D.3
リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ
ン配置で注意して頂きたい項目を以下に示します。
• セクション種別の制限
• エラーの未検出
■ セクション種別の制限
リトルエンディアン領域には,初期値なしデータセクションのみ配置することができま
す。
リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび
コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。
■ エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ
アン領域に配置したセクションの内容を十分にご確認の上 , ご使用ください。
464
付録 D リトルエンディアン領域を利用する際の注意事項
D.4
デバッガ (sim911, eml911, mon911)
シミュレータデバッガとエミュレータデバッガ / モニタデバッガでの注意事項につい
て説明します。
■ シミュレータデバッガ
リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。
したがって , メモリ操作コマンドおよびメモリを操作する命令の実行は , ビッグエン
ディアンとして扱われます。
■ エミュレータデバッガ / モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合に,正常な値として扱わ
れませんので注意してください。
• set memory/show memory/enter/examine/set watch コマンド
浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定 / 表示ともにで
きません。
• search memory コマンド
ハーフワード , ワードのデータを検索した場合 , 指定した値で検索が行われません。
• 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む )
正常な命令コードが設定 / 表示ともにできません。
リトルエンディアン領域には , 命令コードを配置しないようにしてください。
• call/show call コマンド
スタック領域が , リトルエンディアン領域に置かれた場合 , 正常に動作しません。
リトルエンディアン領域にスタック領域を配置しないようにしてください。
465
付録
付録 E
命令一覧
FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事
項について説明します。
• 命令一覧表の読み方
• アドレッシングモードの記号
• 命令フォーマット
■ 命令一覧表の読み方
ニーモニック
型
OP
CYCLE
NZVC
動作
ADD
Rj, Rj
A
AG
1
CCCC
Ri + Rj → Rj
*ADD
#s5, Rj
C
A4
1
CCCC
Ri + s5 → Ri
↓
1)
,
,
,
,
,
,
,
,
,
,
,
,
↓
3)
↓
4)
↓
5)
↓
6)
↓
7)
↓
2)
備考
1) 命令名が示されています。
- * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
2) オペランドに指定可能なアドレッシングモードを記号で示されています。
- 記号の意味は ,「■アドレッシングモードの記号」を参照してください。
3) 命令フォーマットが示されています。
4) 命令コードが 16 進数表示されています。
5) マシンサイクル数を表しています。
- a: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。
- b: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。た
だし , LD 動作の対象となるレジスタを直後の命令が参照する場合にはインタ
ロックがかかり , 実行サイクル数が +1 増加します。
- c: 直後の命令が , R15, SSP または USP に対し , 読出しまたは書込みを行う命令で
あるときまたは命令フォーマット A の命令であるとき , インタロックがかかり ,
実行サイクル数は +1 増加して 2 となります。
- d: 直後の命令が MDH/MDL を参照する場合インタロックがかかり , 実行サイクル
数は増加して 2 となります。
ただし , DIV1 命令の直後に , 特殊レジスタ (TBR, RP, USP, SSP, MDH, MDL) を
ST Rs,@R15- 命令でアクセスすると , 常にインタロックが掛かって , 実行サイ
クル数は増加して 2 となります。
- a, b, c, d とも最小は 1 サイクルです。
466
付録 E 命令一覧
6) フラグ変化を表しています。
フラグ変化
C : 変化する
- : 変化しない
0 : クリア
1 : セット
フラグの意味
N : ネガティブフラグ
Z : ゼロフラグ
V : オーバフラグ
C : キャリフラグ
7) 命令動作が表記されています。
467
付録
■ アドレッシングモードの記号
付表 E-1 アドレッシングモードの記号説明
記号
Ri
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
Rj
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
R13
レジスタ直接 (R13, AC)
Ps
レジスタ直接 ( プログラムステータスレジスタ )
Rs
レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL)
CRi
レジスタ直接 (CR0 ∼ CR15)
CRj
レジスタ直接 (CR0 ∼ CR15)
#i8
符号なし 8 ビット即値 (-128 ∼ 255)
( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。
#i20
#s5
符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱い
ます。
符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF と
して扱います。
符号付き 5 ビット即値 (-16 ∼ 15)
#s10
符号付き 10 ビット即値 (-512 ∼ 508, 4 の倍数のみ )
#u4
符号なし 4 ビット即値 (0 ∼ 15)
#u5
符号なし 5 ビット即値 (0 ∼ 31)
#u8
符号なし 8 ビット即値 (0 ∼ 255)
#u10
符号なし 10 ビット即値 (0 ∼ 1020, 4 の倍数のみ )
@dir8
符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
@dir9
符号なし 9 ビット直接アドレス (0 ∼ 0X1FE, 2 の倍数のみ )
@dir10
符号なし 10 ビット直接アドレス (0 ∼ 0X3FC, 4 の倍数のみ )
label9
符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC, 2 の倍数のみ )
label12
符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC, 2 の倍数のみ )
label20
符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
label32
符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
@Ri
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@Rj
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@(R13,Rj)
レジスタ相対間接 (Rj:R0 ∼ R15, AC, FP, SP)
#i32
468
意味
@(R14,disp10)
レジスタ相対間接 (disp10:-0X200 ∼ 0X1FC 4 の倍数のみ )
@(R14,disp9)
レジスタ相対間接 (disp9:-0X100 ∼ 0XFE 2 の倍数のみ )
@(R14,disp8)
レジスタ相対間接 (disp8:-0X80 ∼ 0X7F)
@(R15,udisp6)
レジスタ相対間接 (udisp6:0 ∼ 60 4 の倍数のみ )
@Ri+
ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP)
@R13+
ポストインクリメント付きレジスタ間接 (R13, AC)
@SP+
@-SP
(reglist)
スタックポップ
スタックプッシュ
レジスタリスト
付録 E 命令一覧
■ 命令フォーマット
付表 E-2 命令フォーマット
型
命令フォーマット
MSB
A
B
LSB
16bit
OP
Rj
Ri
8
4
4
OP
i8/o8
Ri
4
8
4
OP
C
u4/m4
Ri
4
4
8
ADD, ADDN, CMP, LSL, LSR, ASR 命令のみ
* C"
OP
s5/u5
Ri
7
5
4
OP
D
u8/rel8/dir
/reglist
8
E
F
OP
5
8
OP
SUB-OP
Ri
8
4
4
rel11
11
469
付録
E.1
FR ファミリの命令一覧表
FR ファミリの命令一覧表を下記の命令順に記載します。
■ FR ファミリの命令一覧表
付表 E-3 加減算命令
付表 E-4 比較演算命令
付表 E-5 論理演算命令
付表 E-6 ビット操作命令
付表 E-7 乗除算命令
付表 E-8 シフト命令
付表 E-9 即値セット /16 ビット /32 ビット即値転送命令
付表 E-10 メモリロード命令
付表 E-11 メモリストア命令
付表 E-12 レジスタ間転送命令
付表 E-13 通常分岐 ( 遅延なし ) 命令
付表 E-14 遅延分岐命令
付表 E-15 その他の命令
付表 E-16 20 ビット通常分岐マクロ命令
付表 E-17 20 ビット遅延分岐マクロ命令
付表 E-18 32 ビット通常分岐マクロ命令
付表 E-19 32 ビット遅延分岐マクロ命令
付表 E-20 ダイレクトアドレッシング命令
付表 E-21 リソース命令
付表 E-22 コプロセッサ制御命令
470
付録 E 命令一覧
■ 加減算命令
付表 E-3 加減算命令
*ADD #s5, Ri
型 OP CYCLE NZVC
動作
A A6
1
CCCC Ri + Rj → Ri
C’ A4
1
CCCC Ri + s5 → Ri
ADD #u4, Ri
C
A4
1
ADD2 #u4, Ri
C
A5
1
ADDC Rj, Ri
A
A7
1
ADDN Rj, Ri
A
A2
1
----
Ri + Rj → Ri
*ADDN #s5, Ri
C’
A0
1
----
Ri + s5 → Ri
ADDN #u4, Ri
C
A0
1
----
Ri + extu(i4) → Ri
ADDN2 #u4, Ri
C
A1
1
----
SUB Rj, Ri
A
AC
1
SUBC Rj, Ri
A
AD
1
SUBN Rj, Ri
A
AE
1
ニーモニック
ADD Rj, Ri
CCCC Ri + extu(i4) → Ri
CCCC Ri + extu(i4) → Ri
CCCC Ri + Rj + c → Ri
Ri + extu(i4) → Ri
CCCC Ri - Rj → Ri
CCCC Ri - Rj - c → Ri
---Ri - Rj → Ri
備考
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き加算
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き減算
■ 比較演算命令
付表 E-4 比較演算命令
ニーモニック
CMP Rj, Ri
*CMP #s5, Ri
型 OP CYCLE NZVC
動作
A AA
1
CCCC Ri - Rj
C’ A8
1
CCCC Ri - s5
CMP #u4, Ri
CMP2 #u4, Ri
C
C
A8
A9
1
1
CCCC Ri - extu(i4)
CCCC Ri - extu(i4)
備考
アセンブラでは上位
1 ビットを符号と見る
ゼロ拡張
マイナス拡張
■ 論理演算命令
付表 E-5 論理演算命令
型 OP CYCLE NZVC
動作
A 82
1
CC-- Ri &= Rj
ワード
Rj, @Ri
*
A
84
1+2a
CC--
(Ri) &= Rj
ワード
ANDH Rj, @Ri
*
A
85
1+2a
CC--
(Ri) &= Rj
ハーフワード
ANDB Rj, @Ri
OR
Rj, Ri
*
A
86
1+2a
CC--
(Ri) &= Rj
バイト
A
92
1
CC--
Ri | = Rj
ワード
OR
Rj, @Ri
*
A
94
1+2a
CC--
(Ri) | = Rj
ワード
ORH
Rj, @Ri
*
A
95
1+2a
CC--
(Ri) | = Rj
ハーフワード
ORB
EOR
Rj, @Ri *
Rj, Ri
A
96
1+2a
CC--
(Ri) | = Rj
バイト
A
9A
1
CC--
Ri ^ = Rj
ワード
EOR
Rj, @Ri *
A
9C
1+2a
CC--
(Ri) ^ = Rj
ワード
EORH
Rj, @Ri *
A
9D
1+2a
CC--
(Ri) ^ = Rj
ハーフワード
EORB
Rj, @Ri *
A
9E
1+2a
CC--
(Ri) ^ = Rj
バイト
ニーモニック
AND
Rj, Ri
AND
備考
*: これらの命令をアセンブラで記述する場合 , Rj には R15 以外の汎用レジスタを指定してください。
471
付録
■ ビット操作命令
付表 E-6 ビット操作命令
ニーモニック
BANDL #u4, @Ri
型 OP
C 80
BANDH #u4, @Ri
C
*BAND #u8, @Ri
BORL #u4, @Ri
81
CYCLE NZVC
1+2a
----
動作
(Ri)&=(0xF0+u4)
1+2a
----
(Ri)&=((u4<<4)+0x0F)
----
(Ri)&=u8
*1
BORH #u4, @Ri
備考
下位 4 ビットを操作
上位 4 ビットを操作
C
90
1+2a
----
(Ri) | = u4
下位 4 ビットを操作
C
91
1+2a
----
(Ri) | = (u4<<4)
上位 4 ビットを操作
----
(Ri) | = u8
*2
*BOR #u8, @Ri
BEORL #u4, @Ri
C
98
1+2a
----
(Ri) ^ = u4
下位 4 ビットを操作
BEORH #u4, @Ri
C
99
1+2a
----
(Ri) ^ = (u4<<4)
上位 4 ビットを操作
----
(Ri) ^ = u8
*BEOR #u8, @Ri *3
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 乗除算命令
MULH Rj,Ri
型 OP CYCLE NZVC
A AF
5
CCC- Ri × Rj
A AB
5
CCC- Ri × Rj
A BF
3
CC-- Ri × Rj
MULUH Rj,Ri
A
BB
3
CC--
DIV0S Ri
E 97-4
1
----
DIV0U Ri
DIV1 Ri
DIV2 Ri
DIV3
DIV4S
E
E
E
E
E
1
d
1
1
1
36
----C-C
-C-C
-------C-C
ニーモニック
MUL Rj,Ri
MULU Rj,Ri
*DIV Ri *1
97-5
97-6
97-7
9F-6
9F-7
動作
備考
→ MDH,MDL
32bit × 32bit=64bit
→ MDH,MDL
符号なし
→ MDL
16bit × 16bit=32bit
Ri × Rj → MDL
符号なし
ステップ演算
32bit/32bit=32bit
MDL / Ri → MDL ,
MDL % Ri → MDH
*DIVU Ri
*2
-C-C
MDL / Ri → MDL ,
MDL % Ri → MDH
*1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。
*2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。
472
付録 E 命令一覧
■ シフト命令
付表 E-8 シフト命令
ニーモニック
LSL Rj, Ri
型
A
OP CYCLE
NZVC
B6
1
CC-C
Ri << Rj → Ri
*LSL #u5, Ri (u5:0 ∼ 31)
LSL #u4, Ri
C’
B4
1
CC-C
Ri << u5 → Ri
C
B4
1
CC-C
Ri << u4 → Ri
LSL2 #u4, Ri
C
B5
1
CC-C
Ri <<(u4+16) → Ri
LSR Rj, Ri
A
B2
1
CC-C
Ri >> Rj → Ri
*LSR #u5, Ri (u5:0 ∼ 31)
LSR #u4, Ri
C’
B0
1
CC-C
Ri >> u5 → Ri
C
B0
1
CC-C
Ri >> u4 → Ri
LSR2 #u4, Ri
C
B1
1
CC-C
Ri >>(u4+16) → Ri
ASR Rj, Ri
A
BA
1
CC-C
Ri >> Rj → Ri
*ASR #u5, Ri (u5:0 ∼ 31)
ASR #u4, Ri
C’
B8
1
CC-C
Ri >> u5 → Ri
C
B8
1
CC-C
Ri >> u4 → Ri
ASR2 #u4, Ri
C
B9
1
CC-C
Ri >>(u4+16) → Ri
動作
備考
論理シフト
論理シフト
算術シフト
■ 即値セット /16 ビット /32 ビット即値転送命令
付表 E-9 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
LDI:32
#i32, Ri
LDI:20
#i20, Ri
LDI:8
#i8, Ri
*LDI #{i8 | i20 | i32},Ri
*
型 OP CYCLE NZVC
動作
E 9F-8
3
---i32 → Ri
C 9B
2
---i20 → Ri
上位 12 ビットはゼロ拡張
B
上位 24 ビットはゼロ拡張
C0
1
----
i8 → Ri
備考
{i8 | i20 | i32} → Ri
*: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。
473
付録
■ メモリロード命令
付表 E-10 メモリロード命令
LD
ニーモニック
@Rj, Ri
型
A
OP
CYCLE NZVC
動作
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
CCCC (R15) → PS, R15+=4
---(Rj) → Ri
備考
Rs: 特殊レジスタ *
LD
@R15+, PS
E
07-9
1+a+b
LDUH
@Rj, Ri
A
05
b
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 は , 符号なしです。
474
付録 E 命令一覧
■ メモリストア命令
付表 E-11 メモリストア命令
ST
ニーモニック
Ri, @Rj
型
A
OP
CYCLE NZVC
動作
備考
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 レジスタ間転送命令
ニーモニック
MOV Rj, Ri
型
A
OP
CYCLE
NZVC
8B
1
----
Rj → Ri
汎用レジスタ間転送
MOV Rs, Ri
A
B7
1
----
Rs → Ri
Rs: 特殊レジスタ *
MOV Ri, Rs
E
B3
1
----
Ri → Rs
Rs: 特殊レジスタ *
MOV PS, Ri
E
17-1
1
----
PS → Ri
MOV Ri, PS
E
07-1
c
CCCC
Ri → PS
動作
備考
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
475
付録
■ 通常分岐 ( 遅延なし ) 命令
付表 E-13 通常分岐 ( 遅延なし ) 命令
OP
CYCLE NZVC
ニーモニック
JMP
@Ri
型
E
動作
97-0
2
----
Ri → PC
CALL
label12
F
D0
2
----
PC+2 → RP ,
CALL
@Ri
E
97-1
2
----
PC+2 → RP ,Ri → PC
E
97-2
2
----
RP → PC
D
1F
3+3a
----
SSP-=4,PS → (SSP),
備考
PC+2+(label12-PC-2) → PC
RET
INT
#u8
リターン
SSP-=4,PC+2 → (SSP),
0 → I フラグ , 0 → S フラグ ,
(TBR+0x3FC-u8 × 4) → PC
INTE
E
9F-3
3+3a
----
SSP-=4,PS → (SSP),
エミュレータ用
SSP-=4,PC+2 → (SSP),
0 → S フラグ ,
(TBR+0x3D8) → PC
RETI
E
97-3
2+2A
CCCC (R15) → PC,R15-=4,
(R15) → PS,R15-=4
BRA
label9
D
E0
2
----
PC+2+(label9-PC-2) → PC
BNO
label9
D
E1
1
----
BEQ
label9
D
E2
2/1
----
非分岐
if(Z==1) then
BNE
label9
D
E3
2/1
----
BC
label9
D
E4
2/1
----
↑ s/C==1
BNC
label9
D
E5
2/1
----
↑ s/C==0
BN
label9
D
E6
2/1
----
↑ s/N==1
BP
label9
D
E7
2/1
----
↑ s/N==0
BV
label9
D
E8
2/1
----
↑ s/V==1
BNV
label9
D
E9
2/1
----
↑ s/V==0
BLT
label9
D
EA
2/1
----
↑ s/V xor N==1
BGE
label9
D
EB
2/1
----
↑ s/V xor N==0
BLE
label9
D
EC
2/1
----
↑ s/(V xor N) or Z==1
BGT
label9
D
ED
2/1
----
↑ s/(V xor N) or Z==0
BLS
label9
D
EE
2/1
----
↑ s/C or Z==1
BHI
label9
D
EF
2/1
----
↑ s/C or Z==0
PC+2+(label9-PC-2) → PC
↑ s/Z==0
<注意事項>
• CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき 1 であることを示します。
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• RETI 命令を実行するときは , S フラグが "0" であることが必要です。
476
付録 E 命令一覧
■ 遅延分岐命令
付表 E-14 遅延分岐命令
ニーモニック
JMP:D @Ri
OP
型
E
9F-0
CYCLE NZVC
1
----
Ri → PC
CALL:D label12
F
D8
1
----
PC+4 → RP ,
CALL:D @Ri
E
9F-1
1
----
PC+4 → RP ,Ri → PC
RET:D
E
9F-2
1
----
RP → PC
BRA:D label9
D
F0
1
----
PC+2+(label9-PC-2) → PC
非分岐
if(Z==1) then
動作
備考
PC+2+(label12-PC-2) → PC
BNO:D label9
D
F1
1
----
BEQ:D label9
D
F2
1
----
リターン
PC+2+(label9-PC-2) → PC
BNE:D label9
BC:D
D
F3
1
----
↑ s/Z==0
label9
D
F4
1
----
↑ s/C==1
BNC:D label9
D
F5
1
----
↑ s/C==0
BN:D
label9
D
F6
1
----
↑ s/N==1
BP:D
label9
D
F7
1
----
↑ s/N==0
BV:D
label9
D
F8
1
----
↑ s/V==1
BNV:D label9
D
F9
1
----
↑ s/V==0
BLT:D
label9
D
FA
1
----
↑ s/V xor N==1
BGE:D label9
D
FB
1
----
↑ s/V xor N==0
BLE:D label9
D
FC
1
----
↑ s/(V xor N) or Z==1
BGT:D label9
D
FD
1
----
↑ s/(V xor N) or Z==0
BLS:D label9
D
FE
1
----
↑ s/C or Z==1
BHI:D
D
FF
1
----
↑ s/C or Z==0
label9
<注意事項>
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
• 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令
です。
複数サイクル命令は置けません。
477
付録
■ その他の命令
付表 E-15 その他の命令
OP
CYCLE
NZVC
NOP
型
E
9F-A
1
----
ANDCCR#u8
D
83
c
CCCC
CCR and u8 → CCR
ORCCR #u8
D
93
c
CCCC
CCR or u8 → CCR
STILM
D
87
1
----
D
A3
1
----
E
97-8
1
----
符号拡張 8 → 32bit
EXTUB Ri
E
97-9
1
----
ゼロ拡張 8 → 32bit
EXTSH
E
97-A
1
----
符号拡張 16 → 32bit
1
ニーモニック
#u8
ADDSP #s10
EXTSB Ri
*1
Ri
動作
備考
何も変化しない
i8 → ILM
R15 += s10
EXTUH Ri
E
97-B
----
ゼロ拡張 16 → 32bit
LDM0
(reglist)
D
8C
----
(R15) → reglist,
LDM1
(reglist)
D
8D
----
*LDM
(reglist) *2
STM0
(reglist)
D
8E
----
STM1
(reglist)
D
8F
----
ILM 即値セット
ADD SP 命令
ロードマルチ R0-R7
R15 インクリメント
(R15) → reglist,
ロードマルチ R8-R15
R15 インクリメント
----
(R15) → reglist,
ロードマルチ R0-R15
R15 インクリメント
R15 ディクリメント ,
ストアマルチ R0-R7
reglist → (R15)
R15 ディクリメント ,
ストアマルチ R8-R15
reglist → (R15)
*STM
(reglist) *3
ENTER
#u10 *4
----
R15 ディクリメント ,
----
R14 → (R15 - 4),
ストアマルチ R0-R15
reglist → (R15)
D
0F
1+a
関数の入口処理
R15 - 4 → R14,
R15 - u10 → R15
LEAVE
E
9F-9
b
----
R14 + 4 → R15,
関数の出口処理
(R15 - 4) → R14
XCHB
@Rj, Ri *5
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 は符号なしです。
*5: この命令をアセンブラで記述する場合 , Ri には R15 以外の汎用レジスタを指定してください。
<注意事項>
• LDM0(reglist), LDM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*(n-1)+b+1 サイクルとなります。
• STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*n+1 サイクルとなります。
478
付録 E 命令一覧
■ 20 ビット通常分岐マクロ命令
付表 E-16 20 ビット通常分岐マクロ命令
ニーモニック
*CALL20 label20,Ri
*BRA20
*BEQ20
*BNE20
*BC20
*BNC20
*BN20
*BP20
*BV20
*BNV20
*BLT20
*BGE20
*BLE20
*BGT20
*BLS20
*BHI20
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
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 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
( 参考 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
LDI:20
JMP
false:
false
#label20,Ri
@Ri
xcc は , cc の背反条件
479
付録
■ 20 ビット遅延分岐マクロ命令
付表 E-17 20 ビット遅延分岐マクロ命令
ニーモニック
*CALL20:D label20,Ri
*BRA20:D
*BEQ20:D
*BNE20:D
*BC20:D
*BNC20:D
*BN20:D
*BP20:D
*BV20:D
*BNV20:D
*BLT20:D
*BGE20:D
*BLE20:D
*BGT20:D
*BLS20:D
*BHI20:D
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
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 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
( 参考 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
LDI:20
JMP:D
false:
480
false
#label20,Ri
@Ri
xcc は , cc の背反条件
付録 E 命令一覧
■ 32 ビット通常分岐マクロ命令
付表 E-18 32 ビット通常分岐マクロ命令
ニーモニック
*CALL32 label32,Ri
*BRA32
*BEQ32
*BNE32
*BC32
*BNC32
*BN32
*BP32
*BV32
*BNV32
*BLT32
*BGE32
*BLE32
*BGT32
*BLS32
*BHI32
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
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 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
( 参考 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
LDI:32
JMP
false:
false
#label32,Ri
@Ri
xcc は , cc の背反条件
481
付録
■ 32 ビット遅延分岐マクロ命令
付表 E-19 32 ビット遅延分岐マクロ命令
ニーモニック
*CALL32:D
label32,Ri
*BRA32:D
*BEQ32:D
*BNE32:D
*BC32:D
*BNC32:D
*BN32:D
*BP32:D
*BV32:D
*BNV32:D
*BLT32:D
*BGE32:D
*BLE32:D
*BGT32:D
*BLS32:D
*BHI32:D
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
動作
次の命令のアドレス +2 → RP,
label32 → PC
label32 → PC
if(Z==1c 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 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
( 参考 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
LDI:32
JMP:D
false:
482
false
#label32,Ri
@Ri
xcc は , cc の背反条件
付録 E 命令一覧
■ ダイレクトアドレッシング命令
付表 E-20 ダイレクトアドレッシング命令
ニーモニック
DMOV @dir10, R13
型
D
OP CYCLE NZVC
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
DMOVB @R13+, @dir8
D
0E
2a
----
(dir8) → (R13),R13++
バイト
1E
2a
----
(R13) → (dir8),R13++
バイト
<注意事項>
dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8 → dir, dir9/2 → dir, dir10/4 → dir dir8, dir9, dir10 は符号なしです。
■ リソース命令
付表 E-21 リソース命令
ニーモニック
LDRES
@Ri+, #u4
型
C
OP
BC
a
----
(Ri) → u4 のリソース
Ri+=4
u4: チャネル番号
STRES
C
BD
a
----
u4 のリソース→ (Ri)
Ri+=4
u4: チャネル番号
#u4, @Ri+
CYCLE NZVC
動作
備考
<注意事項>
MB91307 シリーズでは , チャネル番号を持つリソースを搭載していないので , 使用できま
せん。
483
付録
■ コプロセッサ制御命令
付表 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:= コマンド指定
- MB91307 シリーズでは , コプロセッサを搭載していないため使用できません。
484
索引
索引
Numerics
A
0 検出
0 検出 ......................................................................437
0 検出用データレジスタ (BSD0) ........................435
0 検出用データレジスタ
0 検出用データレジスタ (BSD0) ........................435
10 ビットスレーブアドレスマスクレジスタ
10 ビットスレーブアドレスマスクレジスタ
(ITMK) .............................................................357
10 ビットスレーブアドレスレジスタ
10 ビットスレーブアドレスレジスタ
(ITBA) ..............................................................356
16 ビット
即値セット /16 ビット /32 ビット即値
転送命令 ..........................................................473
16 ビットタイマレジスタ
16 ビットタイマレジスタ (TMR) の
ビット構成 ......................................................248
16 ビットリロードタイマ
16 ビットリロードタイマの概要 ........................242
16 ビットリロードタイマのレジスタ一覧 ........244
16 ビットリロードレジスタ
16 ビットリロードレジスタ (TMRLR) の
ビット構成 ......................................................249
1 検出
1 検出 ......................................................................437
1 検出用データレジスタ (BSD1) ........................435
1 検出用データレジスタ
1 検出用データレジスタ (BSD1) ........................435
20 ビット遅延分岐マクロ命令
20 ビット遅延分岐マクロ命令 ............................480
20 ビット通常分岐マクロ命令
20 ビット通常分岐マクロ命令 ............................479
2 サイクル転送
2 サイクル転送 (I/O →外部 ) ...............................224
2 サイクル転送 ( 外部→ I/O) ...............................223
2 サイクル転送 ( 外部→外部転送時 ,
転送回数 =2 の場合 ) ......................................426
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................222
2 サイクル転送時のデータの動き ......................422
32 ビット
即値セット /16 ビット /32 ビット即値
転送命令 ..........................................................473
32 ビット遅延分岐マクロ命令
32 ビット遅延分岐マクロ命令 ............................482
32 ビット通常分岐マクロ命令
32 ビット通常分岐マクロ命令 ............................481
7 ビットスレーブアドレスマスクレジスタ
7 ビットスレーブアドレスマスクレジスタ
(ISMK) ..............................................................360
7 ビットスレーブアドレスレジスタ
7 ビットスレーブアドレスレジスタ
(ISBA) ...............................................................359
A/D コンバータ
A/D コンバータ ........................................................4
A/D コンバータ使用上の注意 ............................310
A/D コンバータの特長 ........................................ 296
A/D コンバータのレジスタ一覧 ........................ 298
A/D 制御ステータスレジスタ
A/D 制御ステータスレジスタ (ADCS) ..............299
ACR0 ∼ ACR7
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7)
の構成 .............................................................. 156
AC 特性
DMAC の AC 特性 ................................................418
ADCR
データレジスタ (ADCR) ...................................... 305
ADCS
A/D 制御ステータスレジスタ (ADCS) ..............299
ASR0 ∼ ASR7
領域選択レジスタ (ASR0 ∼ ASR7)
のビット機能 ..................................................155
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)
の構成 .............................................................. 154
AWR0 ∼ AWR7
領域ウェイトレジスタ (AWR0 ∼ AWR7)
の構成 .............................................................. 163
B
BSD0
0 検出用データレジスタ (BSD0) ........................ 435
BSD1
1 検出用データレジスタ (BSD1) ........................ 435
BSDC
変化点検出用データレジスタ (BSDC) ..............436
BSRR
検出結果レジスタ (BSRR) ..................................436
C
CHER
キャッシュイネーブルレジスタ (CHER)
の構成 .............................................................. 174
CLKB
CLKB クロックを分周する場合の注意点 ......... 128
CPU クロック (CLKB) .........................................106
CLKP
周辺クロック (CLKP) .......................................... 106
CLKR
クロックソース制御レジスタ (CLKR) ..............120
CLKS
SDRAM クロック (CLKS) ................................... 107
CLKT
外部バスクロック (CLKT) ..................................107
CPU
CPU クロック (CLKB) .........................................106
485
索引
FR CPU .......................................................................2
CS
CS → RD/WE セットアップ ,
RD/WE → CS ホールド設定の
動作タイミング ..............................................205
CS → RD/WE セットアップ設定 ........................212
CSER
チップセレクトイネーブルレジスタ (CSER)
の構成 ..............................................................172
チップセレクトイネーブルレジスタ (CSER) の
ビット機能 ......................................................172
CS 遅延設定
CS 遅延設定の動作タイミング ...........................204
CTBR
タイムベースカウンタクリアレジスタ
(CTBR) .............................................................119
D
DACK
DACK,DEOP,DREQ の端子機能 .........................393
DACK 端子出力のタイミング ............................416
DDR
データ方向レジスタ (DDR) の構成 ...................233
DEOP
DACK,DEOP,DREQ の端子機能 .........................393
DEOP 端子出力のタイミング .............................417
DICR
DICR の DLYI ビット ...........................................278
遅延割込み制御レジスタ (DICR) .......................277
DIVR
基本クロック分周設定レジスタ 1
(DIVR1) ............................................................126
DIVR0
基本クロック分周設定レジスタ 0
(DIVR0) ............................................................124
DLYI
DICR の DLYI ビット ...........................................278
DMA
DMAC (DMA Controller) ..........................................3
DMA 外部インタフェースの端子 ......................425
DMA による周辺割込みクリア ..........................409
外部ホールド中の DMA 転送要求 .....................408
スリープ中の DMA 転送 .....................................412
DMAC
DMAC (DMA Controller) ..........................................3
DMAC の AC 特性 ................................................418
DMA コントローラ (DMAC) の
レジスタ一覧 ..................................................376
DMACA0 ∼ DMACA4
コントロール / ステータスレジスタ A
(DMACA0 ∼ DMACA4) ................................378
DMACB0 ∼ DMACB4
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4) ................................383
DMACR
DMAC 全体制御レジスタ (DMACR) .................391
DMAC 全体制御レジスタ
DMAC 全体制御レジスタ (DMACR) .................391
DMAC 用 I/O ウェイトレジスタ
DMAC用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
の構成 ..............................................................169
486
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
のビット機能 ..................................................169
DMAC 割込み制御
DMAC 割込み制御 ............................................... 412
DMADA0 ∼ DMADA4
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) ................................. 389
DMASA0 ∼ DMASA4
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) ................................. 389
DMA アクセス
DMA アクセス動作 .............................................. 217
DMA コントローラ
DMA コントローラ (DMAC) の
レジスタ一覧 ..................................................376
DMA 転送
DMA 転送中の外部ホールド要求 ...................... 408
DMA 転送と割込み .............................................. 407
DMA 転送要求
DMA 転送要求と外部ホールド要求の
同時発生 .......................................................... 408
DMA フライバイ転送
DMA フライバイ転送 (I/O →メモリ ) ............... 218
DMA フライバイ転送 (I/O →メモリ ) の
動作タイミング .............................................. 206
DMA フライバイ転送 ( メモリ→ I/O) ............... 220
DMA フライバイ転送 ( メモリ→ I/O) の
動作タイミング .............................................. 207
DMA 抑止
DMA 抑止 .............................................................. 407
double 型
double 型 /long double 型の利用 .......................... 461
DRCL レジスタ
DRCL レジスタ ..................................................... 324
DREQ
DACK,DEOP,DREQ の端子機能 .........................393
DREQ 端子入力の最小有効パルス幅 ................ 415
デマンド転送要求の停止時における DREQ 端子
入力のネゲートタイミング .......................... 415
同一チャネルで引き続き転送するための
DREQ 端子入力のタイミング ...................... 416
DSTP
DSTP 端子入力のタイミング ..............................417
E
EIRR
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) .............................................. 269
EIT
EIT ( 例外 , 割込み , トラップ ) ............................ 74
EIT からの復帰 ....................................................... 74
EIT の動作 ...............................................................86
EIT の割込みレベル ...............................................75
EIT ベクタテーブル ...............................................79
EIT 要因 ................................................................... 74
EIT 要因受理の優先度 ...........................................83
ELVR
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
索引
ENable Interrupt request Register
外部割込み許可レジスタ
(ENIR:ENable Interrupt request Register) .......268
ENIR
外部割込み許可レジスタ
(ENIR:ENable Interrupt request Register) .......268
External Interrupt Request Register
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) ..............................................269
External LeVel Register
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
F
FPT-120P-M21
FPT-120P-M21 の外形寸法図 ..................................7
FR
FR CPU .......................................................................2
FR ファミリの命令一覧表 ...................................470
H
Hold Request Cancel Request
ホールドリクエスト取下げ要求
(HRLC:Hold Request Cancel Request) ............291
HRCL
ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) ............................................286
HRLC
ホールドリクエスト取下げ要求
(HRLC:Hold Request Cancel Request) ............291
HST
HST 端子入力 ( ハードウェアスタンバイ端子 )
MB91307B のみ ................................................93
I
I/O
2 サイクル転送 (I/O →外部 ) ...............................224
2 サイクル転送 ( 外部→ I/O) ...............................223
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................222
DMAC用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
の構成 ..............................................................169
DMAC用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
のビット機能 ..................................................169
DMA フライバイ転送 (I/O →メモリ ) ...............218
DMA フライバイ転送 (I/O →メモリ ) の
動作タイミング ..............................................206
DMA フライバイ転送 ( メモリ→ I/O) ...............220
DMA フライバイ転送 ( メモリ→ I/O) の
動作タイミング ..............................................207
I/O ピン ..................................................................151
I/O ポート ..................................................................4
I/O ポートの基本ブロックダイヤグラム ..........230
I/O ポートのモード ..............................................230
I/O マップ ..............................................................442
外部 I/O―外部メモリ間の転送 ..........................418
フライバイ転送 (I/O →メモリ転送時 ,
転送回数 =3 の場合 ) ......................................426
フライバイ転送 ( メモリ→ I/O 転送時 ,
転送回数 =3 の場合 ) .....................................427
I/O ポート
I/O ポート .................................................................. 4
I/O ポートの基本ブロックダイヤグラム ..........230
I/O ポートのモード .............................................. 230
I/O マップ
I/O マップ .............................................................. 442
I2C インタフェース
I2C インタフェース .................................................. 4
I2C インタフェースの特長 ..................................338
I2C インタフェースのレジスタ一覧 .................. 340
IADR
データレジスタ (IADR) .......................................362
IBCR
バスコントロールレジスタ (IBCR) ...................345
IBSR
バスステータスレジスタ (IBSR) ........................ 342
ICCR
クロックコントロールレジスタ (ICCR) ........... 354
ICHCR
命令キャッシュコントロールレジスタ
(ICHCR) .............................................................53
ICR
割込み制御レジスタ (ICR) ..................................284
割込み制御レジスタ (ICR) のビット構成 ........... 77
割込み制御レジスタ (ICR) のマッピング ........... 77
IDBL
クロックディセーブルレジスタ (IDBL) ........... 363
ILM
割込みレベルマスクレジスタ (ILM) ................... 76
INIT
設定初期化リセット (INIT) ................................... 91
設定初期化リセット (INIT)
解除シーケンス ................................................ 94
設定初期化リセット (INIT) 状態 ........................ 136
INIT 端子入力
INIT 端子入力 ( 設定初期化リセット端子 ) ........ 92
INTE 命令
INTE 命令の動作 ....................................................87
INT 命令
INT 命令の動作 ....................................................... 87
IOWR0 ∼ IOWR2
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
の構成 .............................................................. 169
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
のビット機能 ..................................................169
ISBA
7 ビットスレーブアドレスレジスタ
(ISBA) .............................................................. 359
ISIZE
キャッシュサイズレジスタ (ISIZE)
のビット構成 ....................................................51
ISMK
7 ビットスレーブアドレスマスクレジスタ
(ISMK) .............................................................360
ITBA
10 ビットスレーブアドレスレジスタ
(ITBA) .............................................................. 356
ITMK
10 ビットスレーブアドレスマスクレジスタ
(ITMK) .............................................................357
487
索引
I フラグ
I フラグ ....................................................................75
R
MB91306R,MB91307R
電源投入 / 切断時の注意事項
(MB91306R,MB91307R) ...................................34
MB91307B
HST 端子入力 ( ハードウェアスタンバイ端子 )
MB91307B のみ ................................................93
ハードウェアスタンバイ解除シーケンス
(MB91307B) .......................................................95
MB91307B,MB91V307B
電源投入時のハードウェアスタンバイ
(MB91307B,MB91V307B のみ ) ......................34
MB91307 シリーズ
MB91307 シリーズ ...................................................5
MDH/MDL
乗除算結果レジスタ (MDH/MDL) ........................61
RAM
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................222
内蔵 RAM .................................................................. 3
メモリ空間内の内蔵 RAM 領域 ...........................39
RD
CS → RD/WE セットアップ ,
RD/WE → CS ホールド設定の
動作タイミング .............................................. 205
CS → RD/WE セットアップ設定 ........................ 212
REALOS
ビットサーチモジュール (REALOS 使用 ) ........... 3
リロードタイマ
(REALOS 用 1 チャネルを含む ) ...................... 3
RETI 命令
RETI 命令の動作 ....................................................89
RP
リターンポインタ (RP) .......................................... 60
RSRR
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) .................................... 110
RST
動作初期化リセット (RST) ................................... 91
動作初期化リセット (RST) 解除シーケンス ...... 94
動作初期化リセット (RST) 状態 ........................ 136
発振安定待ちリセット (RST) 状態 .................... 135
RUN
RUN 状態 ( 通常動作 ) .........................................134
RUN 状態
発振安定待ち RUN 状態 ...................................... 135
N
S
NMI
NMI .................................................................273, 291
ユーザ割込み /NMI の動作 ....................................86
割込み・NMI に対するレベルマスク ..................76
NMI 制御部
外部割込み /NMI 制御部の
ブロックダイヤグラム ..................................266
外部割込み /NMI 制御部のレジスタ一覧 ..........267
SCR
シリアルコントロールレジスタ (SCR) ............. 317
SDRAM クロック
SDRAM クロック (CLKS) ................................... 107
SIDR
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................320
SMR
シリアルモードレジスタ (SMR) ........................ 315
SODR
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................320
SRST
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................92
SSP
システムスタックポインタ (SSP) .................. 60, 78
SSR
シリアルステータスレジスタ (SSR) .................. 321
START
「START」条件 ......................................................364
STCR
スタンバイ制御レジスタ (STCR) .......................113
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................92
K
-K lib オプション
文字列操作関数使用時の -K lib オプション
の指定 ..............................................................460
L
long double 型
double 型 /long double 型の利用 ...........................461
M
P
PC
プログラムカウンタ (PC) ......................................59
PDR
ポートデータレジスタ (PDR) の構成 ................232
PFR
ポート機能レジスタ (PFR) の構成 .....................234
PLL
PLL 逓倍率 .............................................................102
PLL 動作許可 .........................................................101
PS
プログラムステータスレジスタ (PS) ..................62
488
索引
STOP
STOP モード使用時の注意 ....................................35
「STOP」条件 .........................................................364
T
TBCR
タイムベースカウンタ制御レジスタ
(TBCR) .............................................................116
TBR
テーブルベースレジスタ (TBR) .....................60, 79
TCR
端子 / タイミングコントロールレジスタ (TCR) の
構成 ..................................................................175
端子 / タイミングコントロールレジスタ (TCR) の
ビット機能 ......................................................175
TMCSR
コントロールステータスレジスタ (TMCSR) の
ビット機能 ......................................................245
コントロールステータスレジスタ (TMCSR) の
ビット構成 ......................................................245
TMR
16 ビットタイマレジスタ (TMR) の
ビット構成 ......................................................248
TMRLR
16 ビットリロードレジスタ (TMRLR) の
ビット構成 ......................................................249
W
WE
CS → RD/WE セットアップ ,
RD/WE → CS ホールド設定の
動作タイミング .............................................. 205
CS → RD/WE セットアップ設定 ........................ 212
WE+ バイト制御タイプ
WE+ バイト制御タイプの動作タイミング ....... 196
WPR
ウォッチドッグリセット発生延期レジスタ
(WPR) ...............................................................123
U
UART
UART ..........................................................................3
UART のクロック選択 .........................................325
UART の使用例 .....................................................334
UART の動作モード .............................................325
UART の特長 .........................................................312
UART のレジスタ一覧 .........................................314
USP
ユーザスタックポインタ (USP) ............................61
UTIM
U-TIMER (UTIM) ..................................................259
UTIMC
U-TIMER コントロールレジスタ (UTIMC) ......260
U-TIMER コントロールレジスタ (UTIMC)
使用上の注意事項 ..........................................261
U-TIMER
U-TIMER (UTIM) ..................................................259
U-TIMER コントロールレジスタ (UTIMC) ......260
U-TIMER コントロールレジスタ (UTIMC)
使用上の注意事項 ..........................................261
U-TIMER の概要 ...................................................258
U-TIMER のレジスタ一覧 ...................................259
ボーレートと U-TIMER のリロード値の
設定例 ..............................................................336
U-TIMER コントロールレジスタ
U-TIMER コントロールレジスタ (UTIMC) ......260
U-TIMER コントロールレジスタ (UTIMC)
使用上の注意事項 ..........................................261
UTIMR
リロードレジスタ (UTIMR) ................................259
489
索引
あ
アービトレーション
アービトレーション .............................................366
アクノリッジ
アクノリッジ .........................................................366
アドレスエラー
アドレスエラーの発生 .........................................411
アドレスレジスタ
アドレスレジスタの機能 .....................................404
アドレスレジスタの指定 .....................................404
アドレスレジスタの特長 .....................................404
アドレッシング
アドレッシングモードの記号 .............................468
スレーブアドレッシング .....................................365
ダイレクトアドレッシング命令 .........................483
アンダフロー動作
アンダフロー動作 .................................................250
い
一時停止
一時停止 .................................................................410
イベントカウント
外部イベントカウント動作 .................................252
インターバルタイマ
その他のインターバルタイマ .................................4
う
ウォッチドッグ
ウォッチドッグリセット .......................................93
ウォッチドッグタイマ
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) ....................................110
ウォッチドッグタイマ制御レジスタ
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) ....................................110
ウォッチドッグリセット発生延期レジスタ
ウォッチドッグリセット発生延期レジスタ
(WPR) ...............................................................123
え
エミュレータデバッガ
エミュレータデバッガ / モニタデバッガ .........465
エラー
エラーによる停止 .................................................411
エラーの未検出 .....................................................464
エントリ更新
命令キャッシュのエントリ更新 ...........................55
か
外形寸法図
FPT-120P-M21 の外形寸法図 ..................................7
解除シーケンス
設定初期化リセット (INIT)
解除シーケンス ................................................94
動作初期化リセット (RST) 解除シーケンス .......94
490
ハードウェアスタンバイ解除シーケンス
(MB91307B) ....................................................... 95
外部 I/O
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................222
外部 I/O―外部メモリ間の転送 .......................... 418
外部イベントカウント
外部イベントカウント動作 ................................252
外部インタフェース
DMA 外部インタフェースの端子 ...................... 425
外部ウェイト
外部ウェイトあり ................................................211
外部ウェイトなし ................................................210
外部ウェイトサイクルタイミング
外部ウェイトサイクルタイミング .................... 201
外部クロック
外部クロックモード時 ........................................ 104
外部端子転送要求
転送中に外部端子転送要求が
再度入力された場合 ...................................... 417
外部デバイス
外部デバイスとの接続例 ............................185, 189
外部転送要求端子
外部転送要求端子 ................................................397
外部バスアクセス
外部バスアクセス ................................................183
外部バスクロック
外部バスクロック (CLKT) ..................................107
外部ホールド
外部ホールド中の DMA 転送要求 .....................408
外部ホールド要求
DMA 転送中の外部ホールド要求 ...................... 408
DMA 転送要求と外部ホールド要求の
同時発生 .......................................................... 408
外部メモリ
外部 I/O―外部メモリ間の転送 .......................... 418
外部割込み
外部割込み /NMI 制御部の
ブロックダイヤグラム ..................................266
外部割込み /NMI 制御部のレジスタ一覧 ......... 267
外部割込み許可レジスタ
(ENIR:ENable Interrupt request Register) ....... 268
外部割込みの動作 ................................................271
外部割込みの動作手順 ........................................ 271
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) .............................................. 269
外部割込み要求レベル ........................................ 272
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
外部割込み許可レジスタ
外部割込み許可レジスタ
(ENIR:ENable Interrupt request Register) ....... 268
外部割込み要因レジスタ
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) .............................................. 269
外部割込み要求
外部割込み要求レベル ........................................ 272
外部割込み要求レベル設定レジスタ
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
概要
概要 ..........................................................................47
索引
概略仕様
概略仕様 ...................................................................48
カウンタ
カウンタの動作状態 .............................................254
書込み
書込み→書込み動作 .............................................199
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................92
同期書込みイネーブル出力の
動作タイミング ..............................................202
読出し→書込み動作タイミング .........................198
各状態遷移要求
各状態遷移要求の優先順位 .................................136
各動作モードにおける命令キャッシュ
各動作モードにおける命令キャッシュの
状態 ....................................................................55
加減算命令
加減算命令 .............................................................471
カスケードモード
カスケードモード .................................................264
き
基本クロック分周設定レジスタ
基本クロック分周設定レジスタ 0
(DIVR0) ............................................................124
基本クロック分周設定レジスタ 1
(DIVR1) ............................................................126
基本タイミング
基本タイミング
( アクセスが連続する場合 ) ..........................195
キャッシュイネーブルレジスタ
キャッシュイネーブルレジスタ (CHER)
の構成 ..............................................................174
キャッシュサイズレジスタ
キャッシュサイズレジスタ (ISIZE)
のビット構成 ....................................................51
く
クロック
CLKB クロックを分周する場合の注意点 .........128
CPU クロック (CLKB) ..........................................106
SDRAM クロック (CLKS) ....................................107
UART のクロック選択 .........................................325
外部クロックモード時 .........................................104
基本クロック分周設定レジスタ 0
(DIVR0) ............................................................124
基本クロック分周設定レジスタ 1
(DIVR1) ............................................................126
クロック分周 .........................................................108
周辺クロック (CLKP) ...........................................106
内部クロック動作 .................................................250
入力端子機能の動作
( 内部クロックモード時 ) ..............................251
クロックコントロールレジスタ
クロックコントロールレジスタ (ICCR) ............354
クロック選択
UART のクロック選択 .........................................325
クロックソース制御レジスタ
クロックソース制御レジスタ (CLKR) ..............120
クロックディセーブルレジスタ
クロックディセーブルレジスタ (IDBL) ........... 363
クロック発生制御
クロック発生制御 ................................................100
クロックモード
外部クロックモード時 ........................................ 104
入力端子機能の動作
( 内部クロックモード時 ) ............................. 251
け
検出結果レジスタ
検出結果レジスタ (BSRR) ..................................436
原発振入力
電源投入時の原発振入力の処理 .......................... 34
こ
構造体代入
構造体代入 ............................................................ 459
コプロセッサ
コプロセッサエラートラップ ..............................89
コプロセッサ不在トラップ ..................................89
コプロセッサ制御命令
コプロセッサ制御命令 ........................................ 484
コントロール / ステータスレジスタ
コントロール / ステータスレジスタ A
(DMACA0 ∼ DMACA4) ................................378
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4) ................................383
コントロールステータスレジスタ
コントロールステータスレジスタ (TMCSR) の
ビット機能 ......................................................245
コントロールステータスレジスタ (TMCSR) の
ビット構成 ......................................................245
さ
最小有効パルス幅
DREQ 端子入力の最小有効パルス幅 ................ 415
し
システムスタックポインタ
システムスタックポインタ (SSP) .................. 60, 78
自動ウェイトサイクルタイミング
自動ウェイトサイクルタイミング .................... 200
シフト命令
シフト命令 ............................................................ 473
シミュレータデバッガ
シミュレータデバッガ ........................................ 465
周辺クロック
周辺クロック (CLKP) .......................................... 106
周辺割込みクリア
DMA による周辺割込みクリア .......................... 409
受信データ
受信データの例 ....................................................371
受信動作
受信動作 ................................................................ 327
出力端子
出力端子機能の動作 ............................................ 252
491
索引
主要機能
主要機能 .................................................................374
割込みコントローラの主要機能 .........................280
主要動作
主要動作 .................................................................394
使用上
使用上の注意事項 .........................................228, 255
使用上の注意
A/D コンバータ使用上の注意 .............................310
使用上の注意 ...................................................25, 333
乗除算結果レジスタ
乗除算結果レジスタ (MDH/MDL) ........................61
乗除算命令
乗除算命令 .............................................................472
初期化
INIT 端子入力 ( 設定初期化リセット端子 ) ........92
初期化 .....................................................................329
設定初期化リセット (INIT) ...................................91
設定初期化リセット (INIT)
解除シーケンス ................................................94
設定初期化リセット (INIT) 状態 ........................136
ユーザプログラムの初期化 ...................................40
リセット ( デバイスの初期化 ) .............................90
初期値
初期値付き変数の配置 .........................................459
シリアルアウトプットデータレジス
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................320
シリアルインプットデータレジスタ
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................320
シリアルコントロールレジスタ
シリアルコントロールレジスタ (SCR) .............317
シリアルステータスレジスタ
シリアルステータスレジスタ (SSR) ..................321
シリアルモードレジスタ
シリアルモードレジスタ (SMR) ........................315
自励発振モード
自励発振モード時 .................................................103
す
スタートビット検出方法
スタートビット検出方法 .....................................328
スタック
スタックのリトルエンディアン領域への
配置 ..................................................................461
割込みスタック .......................................................78
スタンバイ
スタンバイからの復帰 .........................................271
スタンバイモード ( ストップ / スリープ ) からの
復帰 ..................................................................292
スタンバイ制御レジスタ
スタンバイ制御レジスタ (STCR) .......................113
ステップトレーストラップ
ステップトレーストラップの動作 .......................88
ストップ
スタンバイモード ( ストップ / スリープ ) からの
復帰 ..................................................................292
ストップ状態 .........................................................134
492
ストップモード ....................................................139
スリープ
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 292
スリープ状態 ........................................................ 134
スリープ中の DMA 転送 .....................................412
スリープモード ....................................................137
スレーブアドレス
スレーブアドレスとデータ転送の例 ................ 370
スレーブアドレス検出
スレーブアドレス検出 ........................................ 364
スレーブアドレスマスク
スレーブアドレスマスク .................................... 365
スレーブアドレッシング
スレーブアドレッシング .................................... 365
せ
制御信号
データバス幅と制御信号の関係 ........................ 180
制御レジスタ
制御レジスタ ........................................................ 293
制限事項
制限事項 .................................................................. 27
セクション
セクション ............................................................ 462
セクション種別の制限 ........................................ 464
接続例
外部デバイスとの接続例 ............................185, 189
切断時
電源投入 / 切断時の注意事項
(MB91306R,MB91307R) ................................... 34
設定初期化リセット
設定初期化リセット (INIT) ................................... 91
設定初期化リセット (INIT)
解除シーケンス ................................................ 94
設定初期化リセット (INIT) 状態 ........................ 136
設定初期化リセット端子
INIT 端子入力 ( 設定初期化リセット端子 ) ........ 92
設定手順
設定手順 .................................................................. 56
セットタイミング
割込み発生およびフラグのセット
タイミング ......................................................331
専用レジスタ
専用レジスタ一覧 ..................................................59
そ
送信動作
送信動作 ................................................................ 327
ソースクロック
ソースクロック ....................................................100
即値
即値セット /16 ビット /32 ビット即値
転送命令 .......................................................... 473
その他
その他 ....................................................................367
その他のインターバルタイマ ................................4
その他の特長 ............................................................ 4
その他の命令
その他の命令 ........................................................ 478
索引
ソフトウェア要求
ソフトウェア要求 .................................................397
ソフトウェアリセット
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................92
た
退避
退避・復帰の処理 .................................................439
タイマ
16 ビットタイマレジスタ (TMR) の
ビット構成 ......................................................248
16 ビットリロードタイマの概要 ........................242
16 ビットリロードタイマのレジスタ一覧 ........244
リロードタイマ
(REALOS 用 1 チャネルを含む ) ......................3
タイミング
CS 遅延設定の動作タイミング ...........................204
CS → RD/WE セットアップ ,
RD/WE → CS ホールド設定の
動作タイミング ..............................................205
DACK 端子出力のタイミング ............................416
DEOP 端子出力のタイミング .............................417
DMA フライバイ転送 (I/O →メモリ ) の
動作タイミング ..............................................206
DMA フライバイ転送 ( メモリ→ I/O) の
動作タイミング ..............................................207
DSTP 端子入力のタイミング ..............................417
WE+ バイト制御タイプの動作タイミング .......196
基本タイミング
( アクセスが連続する場合 ) ..........................195
デマンド転送以外のタイミング .........................428
デマンド転送のタイミング .................................428
同一チャネルで引き続き転送するための
DREQ 端子入力のタイミング ......................416
同期書込みイネーブル出力の
動作タイミング ..............................................202
読出し→書込み動作タイミング .........................198
タイムベースカウンタ
タイムベースカウンタ .........................................130
タイムベースカウンタクリアレジスタ
タイムベースカウンタクリアレジスタ
(CTBR) .............................................................119
タイムベースカウンタ制御レジスタ
タイムベースカウンタ制御レジスタ
(TBCR) .............................................................116
タイムベースタイマ
タイムベースタイマ .............................................131
ダイレクトアドレッシング命令
ダイレクトアドレッシング命令 .........................483
端子 / タイミングコントロールレジスタ
端子 / タイミングコントロールレジスタ (TCR) の
構成 ..................................................................175
端子 / タイミングコントロールレジスタ (TCR) の
ビット機能 ......................................................175
端子機能
DACK,DEOP,DREQ の端子機能 .........................393
端子機能説明
端子機能説明 ...........................................................10
端子状態一覧表
端子状態一覧表 .....................................................454
端子状態一覧表の語句の意味 ............................453
端子処理
端子処理 .................................................................. 24
端子配列図
端子配列図 ................................................................ 8
単発変換モード
単発変換モード ....................................................306
ち
遅延スロット
遅延スロット付きの分岐命令 ..............................70
遅延スロット付き分岐命令の制限事項 ..............72
遅延スロット付き分岐命令の動作 ...................... 71
遅延スロットなしの分岐命令 ..............................70
遅延スロットなし分岐命令の動作 ...................... 73
遅延スロットの注意事項 ...................................... 89
遅延なし
通常分岐 ( 遅延なし ) 命令 ..................................476
遅延分岐
20 ビット遅延分岐マクロ命令 ........................... 480
32 ビット遅延分岐マクロ命令 ........................... 482
遅延分岐命令 ........................................................ 477
遅延割込み
遅延割込み制御レジスタ (DICR) .......................277
遅延割込みモジュールの
ブロックダイヤグラム ..................................276
遅延割込みモジュールのレジスタ .................... 277
遅延割込み制御レジスタ
遅延割込み制御レジスタ (DICR) .......................277
チップセレクト
チップセレクト領域の設定例 ............................178
チップセレクトイネーブルレジスタ
チップセレクトイネーブルレジスタ (CSER)
の構成 .............................................................. 172
チップセレクトイネーブルレジスタ (CSER) の
ビット機能 ......................................................172
チャネル
チャネル間優先順位 ............................................ 413
チャネルグループ
チャネルグループ ................................................414
注意
A/D コンバータ使用上の注意 ............................310
CLKB クロックを分周する場合の注意点 ......... 128
STOP モード使用時の注意 ....................................35
U-TIMER コントロールレジスタ (UTIMC)
使用上の注意事項 .......................................... 261
使用上の注意 ..................................................25, 333
使用上の注意事項 ........................................228, 255
遅延スロットの注意事項 ...................................... 89
デバッガ関連の注意事項 ...................................... 31
電源投入 / 切断時の注意事項
(MB91306R,MB91307R) ................................... 34
レジスタ設定時の注意 ........................................ 377
つ
通常動作
RUN 状態 ( 通常動作 ) .........................................134
通常バス
通常バスインタフェース .................................... 194
493
索引
通常分岐
20 ビット通常分岐マクロ命令 ............................479
32 ビット通常分岐マクロ命令 ............................481
通常分岐 ( 遅延なし ) 命令 ..................................476
通常リセット
通常リセット動作 ...................................................98
通信開始
通信開始 .................................................................330
通信終了
通信終了 .................................................................330
て
停止
エラーによる停止 .................................................411
動作終了 / 停止 ......................................................410
停止変換モード
停止変換モード .....................................................307
低消費電力モード
低消費電力モード .........................................133, 137
データ
データのアクセス .................................................463
データアクセス
データアクセス .......................................................68
データ長
データ長 ( データ幅 ) ...........................................405
データ転送
スレーブアドレスとデータ転送の例 .................370
データバス幅
データバス幅 .................................................182, 188
データバス幅と制御信号の関係 .........................180
データ幅
データ長 ( データ幅 ) ...........................................405
データフォーマット
データフォーマット .....................................181, 187
データ方向レジスタ
データ方向レジスタ (DDR) の構成 ...................233
データレジスタ
0 検出用データレジスタ (BSD0) ........................435
1 検出用データレジスタ (BSD1) ........................435
データレジスタ (ADCR) ......................................305
データレジスタ (IADR) .......................................362
変化点検出用データレジスタ (BSDC) ..............436
ポートデータレジスタ (PDR) の構成 ................232
テーブルベースレジスタ
テーブルベースレジスタ (TBR) .....................60, 79
デバイス
外部デバイスとの接続例 .............................185, 189
デバイス状態 .........................................................133
リセット ( デバイスの初期化 ) .............................90
デバッガ
デバッガ関連の注意事項 .......................................31
デマンド
デマンド転送要求の停止時における DREQ 端子
入力のネゲートタイミング ..........................415
デマンド転送
デマンド転送 .........................................................421
デマンド転送 2 サイクル転送 .............................399
デマンド転送以外のタイミング .........................428
デマンド転送のタイミング .................................428
494
電源投入
電源投入 / 切断時の注意事項
(MB91306R,MB91307R) ................................... 34
電源投入時の原発振入力の処理 .......................... 34
電源投入時の処理 ..................................................34
電源投入時のハードウェアスタンバイ
(MB91307B,MB91V307B のみ ) ...................... 34
転送
転送中に外部端子転送要求が
再度入力された場合 ...................................... 417
転送アドレス
転送アドレス ........................................................ 395
転送回数
転送回数制御 ........................................................ 406
転送回数と転送終了 ............................................ 396
転送シーケンス
転送シーケンスの選択 ........................................ 398
転送終了
転送回数と転送終了 ............................................ 396
転送タイプ
転送タイプ ............................................................ 394
転送データフォーマット
転送データフォーマット ............................327, 329
転送モード
転送モード ............................................................ 394
転送モードの設定 ................................................430
転送元 / 転送先アドレス設定レジスタ
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) ................................. 389
転送要求
転送要求の受付けと転送 .................................... 409
ブロック転送中にほかの転送要求が
発生した場合 ..................................................417
と
同一チャネル
同一チャネルで引き続き転送するための
DREQ 端子入力のタイミング ...................... 416
同期書込みイネーブル
同期書込みイネーブル出力の
動作タイミング .............................................. 202
同期リセット
同期リセット動作 ..................................................98
動作開始
動作開始 ................................................................ 409
動作終了
動作終了 / 停止 ..................................................... 410
動作初期化リセット
動作初期化リセット (RST) ................................... 91
動作初期化リセット (RST) 解除シーケンス ...... 94
動作初期化リセット (RST) 状態 ........................ 136
動作モード
動作モード ............................................................ 143
同時発生
DMA 転送要求と外部ホールド要求の
同時発生 .......................................................... 408
特長
A/D コンバータの特長 ........................................ 296
I2C インタフェースの特長 ..................................338
UART の特長 .........................................................312
索引
アドレスレジスタの特長 .....................................404
その他の特長 .............................................................4
特長 ...................................................................42, 148
トラップ
EIT ( 例外 , 割込み , トラップ ) .............................74
コプロセッサエラートラップ ...............................89
コプロセッサ不在トラップ ...................................89
な
内蔵 DC-DC レギュレータ
内蔵 DC-DC レギュレータ ....................................34
内蔵 RAM
内蔵 RAM ...................................................................3
メモリ空間内の内蔵 RAM 領域 ...........................39
内蔵周辺要求
内蔵周辺要求 .........................................................397
内部 RAM
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................222
内部アーキテクチャ
内部アーキテクチャ ...............................................43
内部クロック
内部クロック動作 .................................................250
入力端子機能の動作
( 内部クロックモード時 ) ..............................251
に
入出力回路形式
入出力回路形式 .......................................................19
入力端子
入力端子機能の動作
( 内部クロックモード時 ) ..............................251
ね
ネゲートタイミング
デマンド転送要求の停止時における DREQ 端子
入力のネゲートタイミング ..........................415
は
バーストアクセス
バーストアクセスの動作 .....................................208
バースト転送
バースト転送 .........................................................420
ハードウェア
ハードウェア構成 .........................................293, 374
割込みコントローラのハードウェア構成 .........280
ハードウェアスタンバイ
HST 端子入力 ( ハードウェアスタンバイ端子 )
MB91307B のみ ................................................93
電源投入時のハードウェアスタンバイ
(MB91307B,MB91V307B のみ ) ......................34
ハードウェアスタンバイ解除シーケンス
(MB91307B) .......................................................95
ハードウェアスタンバイ状態 .............................135
ハードウェアスタンバイモード
ハードウェアスタンバイモード .........................142
ハーフワードアクセス
ハーフワードアクセス ........................................ 191
バイトアクセス
バイトアクセス ....................................................192
バイトオーダリング
バイトオーダリング .............................................. 67
バス
バス権開放 ............................................................ 225
バスインタフェース
通常バスインタフェース .................................... 194
バスインタフェース ................................................ 2
バスエラー
バスエラー ............................................................ 366
クロック
外部バスクロック (CLKT) ..................................107
バスコントロールレジスタ
バスコントロールレジスタ (IBCR) ...................345
バスステータスレジスタ
バスステータスレジスタ (IBSR) ........................ 342
バスモード
バスモード ............................................................ 143
発振安定待ち
発振安定待ち RUN 状態 ...................................... 135
発振安定待ち時間の選択 ...................................... 97
発振安定待ち発生要因 .......................................... 96
発振安定待ちリセット (RST) 状態 .................... 135
汎用レジスタ
汎用レジスタ .......................................................... 66
ひ
比較演算命令
比較演算命令 ........................................................ 471
ビッグエンディアン
リトルエンディアンとビッグエンディアンの
相違点 .............................................................. 186
ビットオーダリング
ビットオーダリング .............................................. 67
ビットサーチモジュール
ビットサーチモジュール (REALOS 使用 ) ........... 3
ビットサーチモジュールの
ブロックダイヤグラム ..................................434
ビットサーチモジュールのレジスタ一覧 ........435
ビット操作命令
ビット操作命令 ....................................................472
ふ
復帰
EIT からの復帰 ....................................................... 74
スタンバイからの復帰 ........................................ 271
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 292
退避・復帰の処理 ................................................439
フライバイ転送
フライバイ転送 (I/O →メモリ転送時 ,
転送回数 =3 の場合 ) .....................................426
フライバイ転送 ( メモリ→ I/O 転送時 ,
転送回数 =3 の場合 ) .....................................427
フライバイ転送時
フライバイ転送時のデータの動き .................... 424
495
索引
フラグ
割込み発生およびフラグのセット
タイミング ......................................................331
プリフェッチ
プリフェッチ動作 .................................................213
プログラムアクセス
プログラムアクセス ...............................................68
プログラムカウンタ
プログラムカウンタ (PC) ......................................59
プログラムステータスレジスタ
プログラムステータスレジスタ (PS) ..................62
ブロックサイズ
ブロックサイズ .....................................................402
ブロックダイヤグラム
I/O ポートの基本ブロックダイヤグラム ..........230
外部割込み /NMI 制御部の
ブロックダイヤグラム ..................................266
遅延割込みモジュールの
ブロックダイヤグラム ..................................276
ビットサーチモジュールの
ブロックダイヤグラム ..................................434
ブロックダイヤグラム
..............6, 109, 150, 243, 258, 297, 313, 338, 375
ブロック転送
ブロック転送 .........................................................419
ブロック転送中にほかの転送要求が
発生した場合 ..................................................417
分岐命令
遅延スロット付きの分岐命令 ...............................70
遅延スロット付き分岐命令の制限事項 ...............72
遅延スロット付き分岐命令の動作 .......................71
遅延スロットなしの分岐命令 ...............................70
遅延スロットなし分岐命令の動作 .......................73
遅延分岐命令 .........................................................477
へ
ベクタテーブル
EIT ベクタテーブル ...............................................79
変化点検出
変化点検出 .............................................................438
変化点検出用データレジスタ (BSDC) ..............436
変化点検出用データレジスタ
変化点検出用データレジスタ (BSDC) ..............436
変換データ保護機能
変換データ保護機能 .............................................308
ほ
ポート機能レジスタ
ポート機能レジスタ (PFR) の構成 .....................234
ポートデータレジスタ
ポートデータレジスタ (PDR) の構成 ................232
ホールド
CS → RD/WE セットアップ ,
RD/WE → CS ホールド設定の
動作タイミング ..............................................205
ホールドリクエスト取下げ要求
ホールドリクエスト取下げ要求
(HRLC:Hold Request Cancel Request) ............291
496
ホールドリクエスト取下げ要求レベル設定レジスタ
ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) ............................................ 286
ボーレート
ボーレートと U-TIMER のリロード値の
設定例 .............................................................. 336
ボーレートの計算 ................................................263
み
未検出
エラーの未検出 ....................................................464
未定義命令
未定義命令例外の動作 .......................................... 88
め
命令
20 ビット遅延分岐マクロ命令 ........................... 480
20 ビット通常分岐マクロ命令 ........................... 479
32 ビット遅延分岐マクロ命令 ........................... 482
32 ビット通常分岐マクロ命令 ........................... 481
FR ファミリの命令一覧表 ..................................470
INTE 命令の動作 ....................................................87
INT 命令の動作 ....................................................... 87
RETI 命令の動作 ....................................................89
各動作モードにおける命令キャッシュの
状態 .................................................................... 55
加減算命令 ............................................................ 471
コプロセッサ制御命令 ........................................ 484
シフト命令 ............................................................ 473
乗除算命令 ............................................................ 472
即値セット /16 ビット /32 ビット即値
転送命令 .......................................................... 473
その他の命令 ........................................................ 478
ダイレクトアドレッシング命令 ........................ 483
遅延スロット付きの分岐命令 ..............................70
遅延スロット付き分岐命令の制限事項 ..............72
遅延スロット付き分岐命令の動作 ...................... 71
遅延スロットなしの分岐命令 ..............................70
遅延スロットなし分岐命令の動作 ...................... 73
遅延分岐命令 ........................................................ 477
通常分岐 ( 遅延なし ) 命令 ..................................476
比較演算命令 ........................................................ 471
ビット操作命令 ....................................................472
未定義命令例外の動作 .......................................... 88
命令概要 .................................................................. 45
命令キャッシュコントロールレジスタ
(ICHCR) .............................................................53
命令キャッシュタグ .............................................. 49
命令キャッシュのキャッシュ可能領域 ..............47
命令キャッシュの構成 .......................................... 48
メモリストア命令 ................................................475
メモリロード命令 ................................................474
リソース命令 ........................................................ 483
レジスタ間転送命令 ............................................ 475
論理演算命令 ........................................................ 471
命令一覧表
FR ファミリの命令一覧表 ..................................470
命令一覧表の読み方 ............................................ 466
命令キャッシュ
命令キャッシュ ........................................................3
索引
命令キャッシュタグ ...............................................49
命令キャッシュのエントリ更新 ...........................55
命令キャッシュのキャッシュ可能領域 ...............47
命令キャッシュの構成 ...........................................48
命令キャッシュコントロールレジスタ
命令キャッシュコントロールレジスタ
(ICHCR) .............................................................53
命令フォーマット
命令フォーマット .................................................469
メモリ
外部 I/O―外部メモリ間の転送 ..........................418
メモリ空間内の内蔵 RAM 領域 ...........................39
メモリストア命令
メモリストア命令 .................................................475
メモリマップ
メモリマップ .....................................................38, 69
メモリロード命令
メモリロード命令 .................................................474
も
モード
モード設定 .............................................................144
文字列操作関数
文字列操作関数使用時の -K lib オプション
の指定 ..............................................................460
文字列操作関数を使った
文字型配列以外の操作 ..................................460
モニタデバッガ
エミュレータデバッガ / モニタデバッガ .........465
ゆ
ユーザスタックポインタ
ユーザスタックポインタ (USP) ............................61
ユーザプログラム
ユーザプログラムの初期化 ...................................40
ユーザ割込み
ユーザ割込み /NMI の動作 ....................................86
優先順位判定
優先順位判定 .........................................................287
よ
要求レベル設定レジスタ
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) ............................................286
読出し
読出し→書込み動作タイミング .........................198
ら
ラッチアップ
ラッチアップ防止 ...................................................24
ウォッチドッグリセット ...................................... 93
ウォッチドッグリセット発生延期レジスタ
(WPR) ...............................................................123
設定初期化リセット (INIT) ................................... 91
設定初期化リセット (INIT)
解除シーケンス ................................................ 94
設定初期化リセット (INIT) 状態 ........................ 136
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................92
通常リセット動作 ..................................................98
同期リセット動作 ..................................................98
動作初期化リセット (RST) ................................... 91
動作初期化リセット (RST) 解除シーケンス ...... 94
動作初期化リセット (RST) 状態 ........................ 136
発振安定待ちリセット (RST) 状態 .................... 135
リセット ( デバイスの初期化 ) ............................. 90
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) .................................... 110
リセット動作
通常リセット動作 ..................................................98
同期リセット動作 ..................................................98
リセット要因レジスタ
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) .................................... 110
リソース命令
リソース命令 ........................................................ 483
リターンポインタ
リターンポインタ (RP) .......................................... 60
リトルエンディアン
スタックのリトルエンディアン領域への
配置 .................................................................. 461
リトルエンディアンとビッグエンディアンの
相違点 .............................................................. 186
リトルエンディアン領域に対する
制限事項 .......................................................... 186
領域ウェイトレジスタ
領域ウェイトレジスタ (AWR0 ∼ AWR7)
の構成 .............................................................. 163
領域構成レジスタ
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7)
の構成 .............................................................. 156
領域選択レジスタ
領域選択レジスタ (ASR0 ∼ ASR7)
のビット機能 ..................................................155
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)
の構成 .............................................................. 154
リロードタイマ
リロードタイマ
(REALOS 用 1 チャネルを含む ) ...................... 3
リロード値
ボーレートと U-TIMER のリロード値の
設定例 .............................................................. 336
リロード動作
リロード動作 ................................................402, 406
リロードレジスタ
16 ビットリロードレジスタ (TMRLR) の
ビット構成 ......................................................249
リロードレジスタ (UTIMR) ................................259
り
リセット
INIT 端子入力 ( 設定初期化リセット端子 ) ........92
497
索引
れ
例外
EIT ( 例外 , 割込み , トラップ ) .............................74
レジスタ
0 検出用データレジスタ (BSD0) ........................435
10 ビットスレーブアドレスマスクレジスタ
(ITMK) .............................................................357
10 ビットスレーブアドレスレジスタ
(ITBA) ..............................................................356
16 ビットタイマレジスタ (TMR) の
ビット構成 ......................................................248
16 ビットリロードタイマのレジスタ一覧 ........244
16 ビットリロードレジスタ (TMRLR) の
ビット構成 ......................................................249
1 検出用データレジスタ (BSD1) ........................435
7 ビットスレーブアドレスマスクレジスタ
(ISMK) ..............................................................360
7 ビットスレーブアドレスレジスタ
(ISBA) ...............................................................359
A/D コンバータのレジスタ一覧 .........................298
A/D 制御ステータスレジスタ (ADCS) ..............299
DMAC 全体制御レジスタ (DMACR) .................391
DMAC用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
の構成 ..............................................................169
DMAC用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
のビット機能 ..................................................169
DMA コントローラ (DMAC) の
レジスタ一覧 ..................................................376
DRCL レジスタ .....................................................324
I2C インタフェースのレジスタ一覧 ..................340
UART のレジスタ一覧 .........................................314
U-TIMER コントロールレジスタ (UTIMC) ......260
U-TIMER コントロールレジスタ (UTIMC)
使用上の注意事項 ..........................................261
U-TIMER のレジスタ一覧 ...................................259
アドレスレジスタの機能 .....................................404
アドレスレジスタの指定 .....................................404
アドレスレジスタの特長 .....................................404
ウォッチドッグリセット発生延期レジスタ
(WPR) ...............................................................123
外部割込み /NMI 制御部のレジスタ一覧 ..........267
外部割込み許可レジスタ
(ENIR:ENable Interrupt request Register) .......268
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) ..............................................269
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
基本クロック分周設定レジスタ 0
(DIVR0) ............................................................124
基本クロック分周設定レジスタ 1
(DIVR1) ............................................................126
キャッシュイネーブルレジスタ (CHER)
の構成 ..............................................................174
キャッシュサイズレジスタ (ISIZE)
のビット構成 ....................................................51
クロックコントロールレジスタ (ICCR) ............354
クロックソース制御レジスタ (CLKR) ..............120
クロックディセーブルレジスタ (IDBL) ............363
検出結果レジスタ (BSRR) ...................................436
コントロール / ステータスレジスタ A
(DMACA0 ∼ DMACA4) ................................378
498
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4) ................................383
コントロールステータスレジスタ (TMCSR) の
ビット機能 ......................................................245
コントロールステータスレジスタ (TMCSR) の
ビット構成 ......................................................245
乗除算結果レジスタ (MDH/MDL) .......................61
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................320
シリアルコントロールレジスタ (SCR) ............. 317
シリアルステータスレジスタ (SSR) .................. 321
シリアルモードレジスタ (SMR) ........................ 315
スタンバイ制御レジスタ (STCR) .......................113
制御レジスタ ........................................................ 293
専用レジスタ一覧 ..................................................59
タイムベースカウンタクリアレジスタ
(CTBR) .............................................................119
タイムベースカウンタ制御レジスタ
(TBCR) .............................................................116
端子 / タイミングコントロールレジスタ (TCR) の
構成 .................................................................. 175
端子 / タイミングコントロールレジスタ (TCR) の
ビット機能 ......................................................175
遅延割込み制御レジスタ (DICR) .......................277
遅延割込みモジュールのレジスタ .................... 277
チップセレクトイネーブルレジスタ (CSER)
の構成 .............................................................. 172
チップセレクトイネーブルレジスタ (CSER) の
ビット機能 ......................................................172
データ方向レジスタ (DDR) の構成 ...................233
データレジスタ (ADCR) ...................................... 305
データレジスタ (IADR) .......................................362
テーブルベースレジスタ (TBR) .....................60, 79
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) ................................. 389
バスコントロールレジスタ (IBCR) ...................345
バスステータスレジスタ (IBSR) ........................ 342
汎用レジスタ .......................................................... 66
ビットサーチモジュールのレジスタ一覧 ........435
プログラムステータスレジスタ (PS) .................. 62
変化点検出用データレジスタ (BSDC) ..............436
ポート機能レジスタ (PFR) の構成 .....................234
ポートデータレジスタ (PDR) の構成 ................ 232
ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) ............................................ 286
命令キャッシュコントロールレジスタ
(ICHCR) .............................................................53
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) .................................... 110
領域ウェイトレジスタ (AWR0 ∼ AWR7)
の構成 .............................................................. 163
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7)
の構成 .............................................................. 156
領域選択レジスタ (ASR0 ∼ ASR7)
のビット機能 ..................................................155
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)
の構成 .............................................................. 154
リロードレジスタ (UTIMR) ................................259
レジスタ一覧 ........................................................ 152
レジスタの種類 ....................................................153
レジスタの設定手順 ............................................ 227
索引
割込みコントローラのレジスタ一覧 .................282
割込み制御レジスタ (ICR) ..................................284
割込み制御レジスタ (ICR) のビット構成 ...........77
割込み制御レジスタ (ICR) のマッピング ...........77
割込みレベルマスクレジスタ (ILM) ....................76
レジスタ一覧
16 ビットリロードタイマのレジスタ一覧 ........244
A/D コンバータのレジスタ一覧 .........................298
DMA コントローラ (DMAC) の
レジスタ一覧 ..................................................376
I2C インタフェースのレジスタ一覧 ..................340
UART のレジスタ一覧 .........................................314
U-TIMER のレジスタ一覧 ...................................259
外部割込み /NMI 制御部のレジスタ一覧 ..........267
専用レジスタ一覧 ...................................................59
ビットサーチモジュールのレジスタ一覧 .........435
レジスタ一覧 .........................................................152
割込みコントローラのレジスタ一覧 .................282
レジスタ間転送命令
レジスタ間転送命令 .............................................475
レジスタ設定
レジスタ設定時の注意 .........................................377
レベルマスク
割込み・NMI に対するレベルマスク ..................76
連続変換モード
連続変換モード .....................................................306
ろ
論理演算命令
論理演算命令 .........................................................471
わ
割込み制御レジスタ (ICR) のビット構成 ........... 77
割込み制御レジスタ (ICR) のマッピング ........... 77
割込み発生およびフラグのセット
タイミング ......................................................331
割込み番号 ............................................................ 278
割込みベクタ ........................................................ 450
割込みレベルマスクレジスタ (ILM) ................... 76
割込み・NMI に対するレベルマスク .................. 76
割込みコントローラ
割込みコントローラ ................................................ 4
割込みコントローラの主要機能 ........................ 280
割込みコントローラのハードウェア構成 ........280
割込みコントローラのレジスタ一覧 ................ 282
割込み処理
割込み処理 ............................................................ 372
割込み制御
DMAC 割込み制御 ............................................... 412
遅延割込み制御レジスタ (DICR) .......................277
割込み制御レジスタ
割込み制御レジスタ (ICR) ..................................284
割込み制御レジスタ (ICR) のビット構成 ........... 77
割込み制御レジスタ (ICR) のマッピング ........... 77
割込みベクタ
割込みベクタ ........................................................ 450
割込み要因
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) .............................................. 269
割込み要求
外部割込み要求レベル ........................................ 272
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
割込みレベルマスクレジスタ
割込みレベルマスクレジスタ (ILM) ................... 76
ワードアクセス
ワードアクセス .....................................................190
割込み
DMAC 割込み制御 ................................................412
DMA 転送と割込み ..............................................407
DMA による周辺割込みクリア ..........................409
EIT ( 例外 , 割込み , トラップ ) .............................74
EIT の割込みレベル ...............................................75
外部割込み /NMI 制御部の
ブロックダイヤグラム ..................................266
外部割込み /NMI 制御部のレジスタ一覧 ..........267
外部割込み許可レジスタ
(ENIR:ENable Interrupt request Register) .......268
外部割込みの動作 .................................................271
外部割込みの動作手順 .........................................271
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) ..............................................269
外部割込み要求レベル .........................................272
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................270
遅延割込み制御レジスタ (DICR) .......................277
遅延割込みモジュールの
ブロックダイヤグラム ..................................276
遅延割込みモジュールのレジスタ .....................277
ユーザ割込み /NMI の動作 ....................................86
割込み処理 .............................................................372
割込みスタック .......................................................78
割込み制御レジスタ (ICR) ..................................284
499
索引
500
CM71-10111-6
富士通半導体デバイス • CONTROLLER MANUAL
FR60
32 ビット・マイクロコントローラ
MB91307 Series
ハードウェアマニュアル
2006 年 3 月 第 6 版発行
発行
富士通株式会社
編集
営業推進部
電子デバイス事業本部